第七章线性系统状态空间分析自动控制原理.docx
《第七章线性系统状态空间分析自动控制原理.docx》由会员分享,可在线阅读,更多相关《第七章线性系统状态空间分析自动控制原理.docx(17页珍藏版)》请在冰点文库上搜索。
第七章线性系统状态空间分析自动控制原理
第七章线性系统状态空间分析
例1 已知实际力学模型的状态方程为
求其系统的状态空间表达式。
程序代码:
num=[121];
den=[1321];
G=tf(num,den);
Gss=ss(G)
由结果显示可知,系统的状态空间表达式
:
例2已知控制系统的状态空间表达式为
试绘制系统的单位阶跃输出轨线和脉冲输出轨线。
绘制系统的单位阶跃输出轨线,程序代码如下:
A=[-5-1;3-1];
B=[25]';
C=[12];
D=0;
G=ss(A,B,C,D);
[y,t,x]=step(G);
plot(t,x,'r',t,y,'b');
grid;
text(2,-0.1,'x_2(t)');
text(2,4.2,'x_1(t)');
text(2,7.6,'y(t)');
绘制系统的脉冲信号输出轨线,程序代码如下:
A=[-5-1;3-1];
B=[25]';
C=[12];
D=0;
G=ss(A,B,C,D);
[y,t,x]=impulse(G);
plot(t,x,'r',t,y,'b');
axis([-0.13-213]);
grid;
text(0.52,0.1,'x_2(t)');
text(0.52,3.2,'x_1(t)');
text(0.52,6,'y(t)');
例3 已知缠绕装置张力控制系统的传递函数的状态空间表达式为
绘制状态响应
其中输入信号为
初始条件为
。
绘制状态响应曲线,程序代码如下:
A=[-2-2.5-0.5;100;010];
B=[1;0;0];
C=[01.51];
D=0;
G=ss(A,B,C,D);
t=[0:
0.1:
20]';
x0=[102];%非零初始条件
u(1:
21)=2*ones(21,1);%输入0u(21:
201)=0.5*ones(181,1);%输入t>2
[y,t,x]=lsim(G,u,t,x0);%初始条件引起的响应
plot(t,x(:
1),'-r',t,x(:
2),'-b',t,x(:
3),'-m');%用不同的线条和颜色
绘制状态响应轨线
gridon;
text(6,0.25,'x_1(t)');%标识曲线,用“_”表示下标
text(6,-0.5,'x_2(t)');
text(8,1.7,'x_3(t)');
title('状态响应轨线');
xlabel('t(s)');
ylabel('x(t)');
例4 已知某自动装置的控制系统的状态方程为:
试确定其系统的稳定性。
程序代码如下:
a=[12-12;2630;47-8-5;7216];
b=[-1001]';
c=[-2561];
d=7;
[z,p,k]=ss2zp(a,b,c,d)
ii=find(real(z)>0)%检验零点的实部;求取零点实部大于零的个数
n1=length(ii);
jj=find(real(p)>0)%检验极点的实部;求取极点实部大于零的个数
n2=length(jj);
%判断系统是否稳定
if(n2>0)
disp('此系统不稳定极点是:
')
disp(p(jj))
else
disp('系统是稳定的!
')
end
%判断系统是否为最小相位系统
if(n1>0)
disp('此系统不是最小相位系统!
')
else
disp('此系统是最小相位系统!
')
end
%绘制零极点图pzmap(p,z)
例4试用李雅普诺夫第二方法确定系统
的稳定性。
程序代码如下:
symsx1x2v;
A=[-1-1;1-4];%设置系统矩阵A
v=x1^2+x2^2;%选取李雅普诺夫函数
v1=A(1,1)*x1+A(1,2)*x2;%计算状态方程导数项
v2=A(2,1)*x1+A(2,2)*x2;%计算状态方程导数项
vder=simplify(jacobian([v],[x1])*v1+jacobian([v],[x2])*v2)%计算李雅
普诺夫函数的导数
即,表明系统是渐近稳定的。
例5判定下述实际控制系统的状态可控性。
(1)
(2)
(3)
判断可控性,子程序代码如下:
functionstr=pdctrb(A,B)
S=ctrb(A,B);
r=rank(S);
l=length(A);
ifr==1
str='系统是状态完全可控的!
';
else
str='系统是状态不完全可控的!
';
end
主程序代码如下:
A1=[110;010;011];
B1=[010]';
str=pdctrb(A1,B1)
A2=[132;020;012];
B2=[21;11;-1-1];
str=pdctrb(A2,B2)
G=[-210;0-20;00-3];
H=[103;200]';
str=pdctrb(G,H)
例6已知系统的状态空间表达式为
,当采样时间T=5s,10.5s时,确定离散化后系统的可控性。
程序代码如下:
a=[11;2-1];
b=[1;2];
c=[11];
d=0;
str=pdctrb(a,b)
G=ss(a,b,c,d);
T=5;
Gd1=c2d(G,T);
g=Gd1.a;h=Gd1.b;
str=pdctrb(g,h)
T=10.5;
Gd2=c2d(G,T);
g=Gd2.a;h=Gd2.b;
str=pdctrb(g,h)
由运行结果可知,此连续系统是状态完全可控的;当采样时间T=5s时,此离
散系统是状态完全可控的;当采样时间T=10.5s时,此离散系统不是状态完
全可控的。
因此,离散系统不同的采样时间影响着系统状态可控性。
例7已知系统的系数矩阵如下:
试判断该系统的可观性。
判断该系统的可观性,子函数代码如下:
functionstr=pdobsv(A,C)
s=obsv(A,C);
r=rank(s);
l=size(A,1);
ifr==1
str='此系统是状态完全可观的!
';
else
str='此系统不是状态完全可观的!
';
end
主程序代码:
a=[010;001;-6-11-6];
c=[451];
pdobsv(a,c)
系统是状态不完全可观的,输出可以观测二维状态
例8已知控制系统的状态状态空间表达式为
试判断其状态可观性、可控性和传递函数之间的关系。
程序代码如下:
a=[-3-4;-10];
b=[41]';
c=[-1-1];
d=1;
G=ss(a,b,c,d);
Gz=zpk(G)
str=pdctrb(a,b)
str=pdobsv(a,c)
[y,t,x]=step(G,36);
plot(t,x,'r',t,y,'b');
gridon;
axis([036-34]);
title('系统状态和单位阶跃输出曲线');
xlabel('t(s)');
ylabel('y(t)/x(t)');
由运行结果可知,该系统的传递函数为
,发生了s=1的零
极点对消。
因此,系统是不完全可控和不完全可观的。
由系统的单位阶跃输出
曲线可知,输出保持不变式,状态x1(t)和x2(t)却有很大变化,但正
、反正好相互抵消。
因此,不能从输出观测到系统状态的变化。
例9已知实际控制系统的系数矩阵
试判断它的可控性,并进行可控性分解。
程序代码如下:
A=[-22-1;0-20;1-40];
B=[001]';
C=[1-11];
pdctrb(A,B)
[Ab,Bb,Cb,T,K]=ctrbf(A,B,C)
例11 已知控制系统的传递函数为
,试求其
约当规范型。
程序代码如下:
num=[21];
den=[17148];
[r,p,k]=residue(num,den);
A=diag(p)
B=ones(length(r),1)
C=rat(r)
D=0
由运行结果可得到状态空间表达式的约当规范型:
例12 已知系统系数矩阵:
,试判断它的可控性。
如果完全可控将它化为可控规范型;如果不完全可
控找出它的可控子系统。
程序代码如下:
a=[200;041;004];
b=[1;0;1];
c=[110];
str=pdctrb(a,b)
由运行结果可知,系统是状态完全可控的,故可将它规范型。
T1=ctrb(a,b)
symss
dets=det(s*diag(diag(ones(size(a))))-a);
dets=expand(dets)
计算第一可控规范型,程序代码如下:
Ac1=inv(T1)*a*T1
Bc1=inv(T1)*b
Cc1=c*T1
计算第二可控规范型,程序代码如下:
m=[100;-1010;32-101];
n=fliplr(T1);
T2=n*m;
Ac2=inv(T2)*a*T2
Bc2=inv(T2)*b
Cc2=c*T2
由运行结果可知,控制器规范Ⅰ型为:
由运行结果可知,控制器规范Ⅱ型为:
习题1 已知某伺服控制系统的传递函数为
,求
其系统的状态空间表达式。
程序代码如下:
z=[-2-5];
p=[0-1-8];
k=1;
Gz=zpk(z,p,k);
Gs=ss(Gz)
由结果显示可知,系统的状态空间表达式为:
习题2 已知采样控制系统的状态空间表达式为
试绘制系统的单位阶跃输出轨线。
绘制系统的单位阶跃输出轨线,程序代码如下:
a=[132;020;013];
b=[21;11;-11];
c=[100];
d=0;
G=ss(a,b,c,d);
figure
(1)
step(G)
[y,t,x]=step(G);
figure
(2)
plot(t,x(:
:
1),'r',t,y(:
:
1),'b');
grid;
figure(3)
plot(t,x(:
:
2),'r',t,y(:
:
2),'b');
gridon;
习题3 已知采样控制系统的状态方程为
试求其离散系统的传递函数矩阵。
程序代码如下:
G=[-1-3-2;020;012];
H=[2;1;-1];
C=[100];
symszn;
Gd=inv(z*eye(size(G))-G)*z
传递函数矩阵为:
习题4 已知控制系统的系统矩阵,确定其系统的稳定性。
(1);
(2)
判定系统稳定性的子函数代码如下:
functionstr=pdwdx(A)
sys_root=eig(A);
i=find(real(sys_root)>0);
if~isempty(i)
str='此系统是不稳定!
';break;
else
str='此系统是稳定的!
';
end
主程序代码如下:
A1=[-2-2.5-0.5;100;010];
str=pdwdx(A1)
A2=[01;-35];
str=pdwdx(A2)
习题5 已知系统状态方程
,确定其李雅普诺夫函数。
程序代码如下:
symsx1x2v;
A=[-11;23];
a11=A(1,1);
a12=A(1,2);
a21=A(2,1);
a22=A(2,2);
H=[2*a11a21a210;0a12a122*a22;...
a12a22+a110a21;a120a11a22+a21];%计算矩阵H
B=[-1-100]';
p=inv(H)*B;%计算矩阵B
P=[p(1,1)p(2,1);p(3,1)p(4,1)];
v=P(1,1)*x1^2+P(2,2)*x2^2+(P(1,2)+P(2,1))*x1*x2;%设置李雅普诺夫函数
v1=A(1,1)*x1+A(1,2)*x2;%计算状态导数项
v2=A(2,1)*x1+A(2,2)*x2;%计算状态导数项
vder=simplify(jacobian([v],[x1])*v1+jacobian([v],[x2])*v2)
由运行结果可知,
,不是正定函数,由李雅普诺夫
第二方法可知,此系统不是稳定的。
习题6 已知实际控制系统的系数矩阵为
试判断它的可观性,并进行其可观测性分解,找出它的可观测子系统。
程序代码如下:
A=[12-1;010;1-43];
B=[001]';
C=[1-11];
pdobsv(A,C)
[Ab,Bb,Cb,T,K]=obsvf(A,B,C)
习题7已知系统的状态空间表达式为
当采样时间T=5s,20s时,确定离散化后系统的可观性。
程序代码如下:
a=[11;2-1];
b=[1;2];
c=[11];
d=0;
str=pdobsv(a,c)
G=ss(a,b,c,d);
T=5;
Gd1=c2d(G,T);
g=Gd1.a;c=Gd1.c;
str=pdobsv(g,c)
T=20;
Gd2=c2d(G,T);
g=Gd2.a;c=Gd2.c;
str=pdobsv(g,c)
由运行结果可知,离散系统不同的采样时间影响着系统状态可观性
习题8 已知控制系统的传递函数为
,试求其的约当规范型。
程序代码如下:
num=1;
den=conv([1331],[169]);
G=tf(num,den);
G=ss(G);
a=G.a
A=jordan(a)
习题9 已知控制系统的传递函数为
,将此系统
转换为观测器规范型。
程序代码如下:
num=[135];
den=[1794];
a=flipud(rot90(compan(den)))%求分母多项式的伴随阵,旋转九十度后将其
上、下反转
b=num'
c=zeros(1,length(a));
c(1,1)=1
d=0
由运行结果可知,观测器规范型如下: