现代控制理论Word格式文档下载.docx
《现代控制理论Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《现代控制理论Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
这些信息对于确定系统未来的行为是充分且必要的。
状态变量——确定系统状态的最小一组变量,如果知道这些变量在任意初始时刻t0的值以及t≥t0的系统输入,便能够完整地确定系统在任意时刻t的状态。
(状态变量的选择可以不同)
状态空间——以所选择的一组状态变量为坐标轴而构成的正交线性空间,称为状态空间。
状态空间表达式——系统的状态方程和输出方程一起,称为系统状态空间表达式,或称为系统动态方程,或称系统方程。
一般表达式为
1.2传递函数与状态空间表达式之间的转换
1.连续系统的状态空间表达式
描述系统输入、输出和状态变量之间关系的方程组成为系统的状态空间表达式。
在MATLAB软件中,可以用ss命令来建立状态空间模型。
对于连续系统,其格式为sys=ss(A,B,C,D),其中A,B,C,D为描述线性连续系统的矩阵。
当sys1是一个用传递函数表示的线性定常系统时,可以用命令sys=ss(sys1)将其转换为状态空间形式,也可以用命令sys=ss(sys1,‘min’)计算出系统sys的最小实现
例1-1控制系统微分方程为
y(4)+10
求其状态空间表达式。
解可以先将其转换成传递函数
输入下列命令
num=[172424];
den=[110355024];
G=tf(num,den);
sys=ss(G)
语句执行结果为:
a=
x1x2x3x4
x1-10-2.188-0.7813-0.1875
x216000
x30200
x40010
b=
u1
x11
x20
x30
x40
c=
y110.43750.3750.1875
d=
y10
Continuous-timemodel.
该结果表示,该系统的状态空间表达式为
注意,在输入命令中,sys=ss(G)也可以改用[A,B,C,D]=tf2ss(num,den),在本例中其作用和sys=ss(G)近似,也可以计算出矩阵A、B、C、D。
2.离散系统的状态空间表达式
离散系统的状态空间表达式为
和连续系统状态空间表达式的输入方法类似,如果要输入离散系统的状态空间表达式,首先要输入矩阵G、H、C、d,然后输入语句sys=ss(G、H、C、d、T),即可将其输入到MATLAB的workspace中,并且用变量名sys来表示这个离散系统,其中T为采样时间。
如果Gyu表示一个以脉冲传递函数描述的离散系统,也可以用ss(Gyu)命令,将脉冲传递函数模型转换成状态空间表达式。
1.3求传递函数矩阵
在经典控制理论中,单输入—单输出线性定常系统的传递函数,是系统初始松弛(初始条件为零的系统称初始松弛系统)时,输出量的拉普拉斯变换与输入量拉普拉斯之比。
这是一种用系统结构和参数表示的线性定常系统的输入量和输出量之间的关系式,它表达了系统本身的特性。
线性定常系统,其状态空间表达式为
那么,状态变量对输入向量(输入到状态)的传递函数矩阵为
系统输出向量对输入向量(输入到输出)的传递函数矩阵:
其结构为
在MATLAB中可以运用语句:
G=simple(simple(C*F*B)+D)
来求解,其中F=inv(s*I-A),inv()函数是求矩阵的逆矩阵,而simple()函数是对符号运算结果进行简化。
1.4线性变换
我们知道,状态变量的选取是非唯一的。
选择不同的状态变量,则得到的状态空间表达式也不相同。
由于它们都是同一个系统的状态空间描述,它们之间必然存在某种关系。
这个关系就是矩阵中的线性变换关系。
求线性变换的目的:
将系统矩阵变成为标准形,便于求解状态方程。
这里所指的标准形是指矩阵A为对角形、约当形和模态形。
线性变换的基本性质:
1)线性变换不改变系统的特征值
线性定常系统
系统的特征方程为
等价系统的特征方程为
可见线性变换不改变系统的特征值
2)经过线性变换不改变系统的传递函数矩阵
当D=0时的传递函数矩阵为
可见,经过线性变换,系统的传递函数矩阵不改变
1.化矩阵A为对角矩阵
函数eig()可以计算出矩阵A的特征值以及将矩阵A转换成对角矩阵的线性变换矩阵。
其语句格式为[Q、D]=eig(A),则D对角阵并且对角线上各元素为矩阵A的特征值,满足Q-1AQ=D,因为Q-1=P-1,即:
PAP-1=D
例1-2线性控制系统的状态方程为
试做线性变换,要求变换后系统矩阵A为对角阵。
解先求出系统矩阵的特征值,Q阵可以选择为由特征值构成的范德蒙矩阵。
输入语句
A=[010;
001;
-6-11-6];
eig(A)
执行结果为
ans=
-1.0000
-2.0000
-3.0000
因此,输入以下语句
A=[000;
B=[0;
0;
1];
Q=[111;
-1-2-3;
149];
P=inv(Q);
A1=P*A*Q,B1=P*B
执行结果为:
A1=
-1.00006.00000.0000
0.0000-2.00000.0000
0.00000.0000-3.0000
B1=
0.5000
由以上计算数据可得系统经过线性变换后的方程为
也可以输入语句
[QD]=eig(A)
运行结果为:
Q=
-0.57740.2182-0.1048
0.5774-0.43640.3145
-0.57740.8729-0.9435
D=
-1.000000
0-2.00000
00-3.0000
再计算线性变换矩阵,并且验证结果如下
>
P=inv(Q)
P=
-5.1962-4.3301-0.8660
-13.7477-18.3303-4.5826
-9.5394-14.3091-4.7697
A1=P*A*Q
-1.0000-0.00000.0000
-0.0000-2.0000-0.0000
-0.00000-3.0000
B1=P*B
-0.8660
-4.5826
-4.7697
可见,两种线性变换虽然不同,却都可以将A阵转换为对角阵。
2.化矩阵A为约当阵
在MATLAB中用函数命令jordan()来求矩阵的约当标准形。
其命令格式为:
[Q,J]=jordan(A)。
输入参量A是系数矩阵,输出参量J是矩阵A的约当标准形矩阵,而P=Q-1就是线性变换矩阵,满足J=Q-1AQ=PAP-1。
例1-3将矩阵化为标准型矩阵。
解首先输入语句
2-54];
[Q,D]=eig(A)得出
Q=
-0.57740.5774-0.2182
-0.57740.5774-0.4364
-0.57740.5774-0.8729
1.000000
01.00000
002.0000
可见,Q不满秩,即矩阵A的特征值中有重特征值,并且A的独立特征向量的个数小于n。
因此输入语句
[Q,J]=jordan(A)
语句执行结果为
1-20
2-2-2
4-2-4
J=
200
011
001
Q=[1-20;
2-2-2;
4-2-4];
P=inv(Q);
J1=P*A*Q
J1=
200
表明,所计算出的结果满足-1
第2章利用MATLAB求解系统方程
2.1线性齐次状态方程的解
1)线性定常系统齐次状态方程是指系统输入向量为零时的状态方程
当初始时刻t0=0时,齐次状态方程的解为
其中,
如果初始状态t0≠0,则
矩阵指数函数又称为状态转移矩阵,记作
2)线性时变系统方程为
,初始状态为
其解为
使用MATLAB可以方便地求出状态方程的解。
我们通过例子来说明。
例2-1已知线性系统齐次状态方程为
求系统状态方程的解。
解用以下MATLAB程序计算齐次状态方程的解,其中collect()函数的作用是合并同类项,而ilaplace()函数的作用是求取拉普拉斯逆变换,函数det()的作用是求方阵的行列式。
symsstx0taophiphi0;
A=[01;
-2-3];
I=[10;
01];
E=s*I-A;
C=det(E);
D=collect(inv(E));
phi0=ilaplace(D)
x0=[1;
0];
x=phi0*x0
程序执行后
phi0=
[]
[]
x=
即
,
2.2线性非齐次状态方程的解
1)线性定常系统非线性齐次状态方程为
初始时刻t0=0则
更一般的情况,当t0≠0时
2)线性时变系统非线性齐次状态方程的解
其解为
或
例2-2已知系统状态方程为
求系统状态方程的解
解用以下MATLAB程序求系统方程的解。
其中,语句phi=subs(phi0,’t’,(t-tao))表示将符号变量phi0中的自变量t用(t-tao)代换就构成了符号变量phi,而语句x2=int(F,tao,0,t)表示符号变量F对tao在0到t的积分区间上求积分,运算结果返回到x2。
symsstx