实验三用Matlab进行状态空间分析及设计一、实验目的:掌握使用MATLAB进行及状态空间分析及状态反馈控制系统的设计。二、实验内容实验内容一:系统状态空间模型如下:0100016116A;001B;100C(1)求其传递函数,由传递函数求系统的极点;(2)由上述状态空间模型,求系统的特征值;(3)求上述系统状态转移矩阵;(4)求其在x0=[2;1;2],u为单位阶跃输入时x及y的响应;(5)分析上述系统的可控性、可观性;(6)将上述状态空间模型转换为其他标准形式;(7)取T=[124;010;001]对上述状态空间模型进行变换,分析变换后的系统。实验matlab程序:A=[010;001;-6-11-6];B=[001]';C=[100];D=0;%输入矩阵ABCDsys1=ss(A,B,C,D)%显示ABCD构成的状态空间模型[num,den]=ss2tf(A,B,C,D)%实现状态空间模型到传递函数模型的转换sys2=tf(num,den)%得到系统按分子分母多项式降幂排列的传递函数P=roots(den)%求出系统的极点eig(sys1)%由状态空间模型得到系统的特征值symst1expm(A*t1)%求系统状态转移矩阵x0=[2;1;2]%系统的初始状态t=[0:0.1:20]';%定义时间tu(1,1:201)=1*ones(1,201);%输入单位阶跃[ytx]=lsim(sys1,u,t,x0);%计算系统的单位阶跃响应figure(1)plot(t,x(:,1),'-',t,x(:,2),'-',t,x(:,3),'-')%绘制系统单位输入响应状态曲线xlabel('t/秒');ylabel('x(t)');title('单位阶跃输入响应状态曲线')gridtext(6,0.3,'x_1(t)')text(6,-1.5,'x_2(t)')text(6,1.8,'x_3(t)')figure(2)plot(t,y);grid;%绘制系统单位输入响应输出曲线xlabel('t/秒');ylabel('y(t)');title('系统单位输入响应输出曲线')s=ctrb(A,B)%计算可控性矩阵Sf=rank(s)%通过rank命令求可控矩阵的秩n=length(A)%计算矩阵A的维数iff==n%判断系统的可控性disp('systemiscontrolled')elsedisp('systemisnocontrolled')endv=obsv(A,C)%计算可观性矩阵vm=rank(v)%通过rank命令求可控矩阵的秩ifm==n%判断系统的可观性disp('systemisobservable')elsedisp('systemisnoobservable')Endsys3=canon(sys1,'modal')%将系统转化成对角线的标准形式sys4=canon(sys1,'companion')%将系统转化成为A为伴随矩阵的标准形式T=[124;010;001]%输入变换矩阵sys5=ss2ss(sys1,T)%得到变换后的状态空间模型实验结果:(1)传递函数及由此得到的系统的极点极点p=[-3.0000-2.0000-1.0000](2)根据状态空间模型得到的系统的特征值(由语句eig(sys1)求出)ans=[-1.0000-2.0000-3.0000]系统的特征值全部位于s平面的左半部分,由此判断出系统是一个稳定系统(3)求系统的状态转移矩阵(由语句symst1;expm(A*t1)求出)(4)求系统在x0=[2;1;2],u为单位阶跃输入时x及y的响应记录曲线如下:A:单位阶跃输入时状态变量X的响应曲线:B:单位阶跃输入时系统输出y响应曲线(5)系统的可控性,可观性分析A.系统的可控性矩阵s为:s=00101-61-625则系统可控性矩阵的秩f=3,矩阵A的维数为n=3得到系统的结果是systemiscontrolled即系统是可控的B.系统的可观性矩阵v为:v=100010001则系统可观性矩阵的秩m=3,矩阵A的维数为n=3得到系统的结果是systemisobservable即系统是可观测的实验结论:由运行结果可知该系统既可控也可观(6)将原来的系统状态空间模型转化为以下俩种标准形式A.转化为对角线的标准形式(由语句sys3=canon(sys1,'modal')求出)B.转化成为A为伴随矩阵的标准形式(由语句sys4=canon(sys1,'companion')求出)(6)T=[124;010;001]对上述状态空间模型进行变换,分析变换后的系统的空间模型为(有语句T=[124;010;001];sys5=ss2ss(sys1,T)实现)对变换后的系统的空间模型进行可控可观性分析得到的结果是系统的可控性矩阵s为s=100010001可控性矩阵的秩f=3得到系统的结果是systemiscontrolled即系统是可控的系统的可观性矩阵v为v=00101-61-625系统的可观测矩阵的秩m=3得到系统的结果是systemisobservable即系统是可观测的系统的特征根ans=[-1.0000-2.0000-3.0000]综上实验结果分析:对变换后的系统进行可控性,可观性分析得到可控性矩阵的秩f=n-=3,可观测性矩阵的秩m=n=3由此经过变换后的系统仍即可控也可观,变换后系统的特征根仍为:ans=[1.0000-2.0000-3.0000]与原来系统相同。为了便于研究系统的一些固有的特性,常常需要引进线性变换,例如在实验内容(5)中将A阵对角化,但是通过实验内容(6)知道经过线性变换后系统的一些固有特性:系统的特征值,传递矩阵,可控性,可观性等重要性质保持不变。特征值不变也说明系统的稳定性也不会发生变化。实验内容二:分析下列系统的可控性、可观性(1),0001130002100020A01001001B;01000010C实验程序如下:A=[0200;01-20;0031;1000];B=[10;00;01;10];C=[0100;0010];D=0;sys1=ss(A,B,C,D)s=ctrb(A,B)f=rank(s)n=length(A)iff==ndisp('systemiscontrolled')elsedisp('systemisnocontrolled')endv=obsv(A,C)m=rank(v)ifm==ndisp('systemisobservable')elsedisp('systemisnoobservable')End实验结果如下:系统的可控性矩阵s为:s=10000-4-4-16000-2-2-8-10-2601134912271010000-4可控性矩阵的秩f=4系统的维数n=4得到系统的结果是systemiscontrolled即系统是可控的系统的可观性矩阵v为:v=0100001001-20003101-8-21093-21-26-832279系统的可观性矩阵秩m=4得到系统的结果是systemisobservable即系统是可观测的综上说明该系统即是可控的也是可观测的(2)5000000015000000001000000011000000004000000014000000003000000013A0029006100347531B1700204163005013C实验程序如下:A=[-31000000;0-3000000;00-410000;000-40000;0000-1100;00000-100;000000-51;00000005]B=[13;57;43;00;16;00;92;00]C=[31050036;14020071]D=0sys1=ss(A,B,C,D)s=ctrb(A,B)f=rank(s)n=length(A)iff==ndisp('systemiscontrolled')elsedisp('systemisnocontrolled')endv=obsv(A,C)m=rank(v)ifm==ndisp('systemisobservable')elsedisp('systemisnoobservable')End实验结果如下:系统的可控性矩阵s为:可控性矩阵的秩f=5系统的维数n=8得到系统的结果是systemisnocontrolled即系统是不可控的系统的可观性矩阵v为:系统的可观性矩阵秩m=5得到系统的结果是systemisnoobservable即系统是不可观测的综上说明该系统即是不可控的也是不可观测的(3)0103C;2100B;4214020100320001A实验程序如下:A=[-1000;2-300;10-20;4-12-4]B=[0012]';C=[3010];D=0;sys1=ss(A,B,C,D)s=ctrb(A,B)f=rank(s)n=length(A)iff==ndisp('systemiscontrolled')elsedisp('systemisnocontrolled')endv=obsv(A,C)m=rank(v)ifm==ndisp('systemisobservable')elsedisp('systemisnoobservable')End实验结果如下:系统的可控性矩阵s为:s=000000001-24-82-620-72可控性矩阵的秩f=2系统的维数n=4得到系统的结果是systemisnocontrolled即系统是不可控的系统的可观性矩阵v为:v=3010-20-20004040-80系统的可观性矩阵秩m=2得到系统的结果是systemisnoobservable即系统是不可观测的综上说明该系统即是不可控的也是不可观测的实验内容三:系统状态空间模型如下,(1)判别系统的可控性;(2)设计状态反馈控制器使闭环极点为p=[-1,-10,-12];(3)求出闭环系统的传递函数和动态方程;(4)比较反馈前后系统的阶跃响应。010001502512A;001B;100C实验程序如下:A=[010;001;-50-25-12];B=[001]';C=[100];D=0;%输入矩阵ABCDsys1=ss(A,B,C,D)%显示ABCD构成的状态空间模型s=ctrb(A,B)%计算可控性矩阵Sf=rank(s)%通过rank命令求可控矩阵的秩n=length(A)%计算矩阵A的维数iff==n%判断系统的可控性disp('systemiscontrolled')elsedisp('systemisnocontrolled')endv=obsv(A,C)%计算可观性矩阵vm=rank(v)%通过rank命令求可控矩阵的秩ifm==n%判断系统的可观性disp('systemisobservable')elsedisp('systemisnoobservable')Endp=[-1,-10,-12]%希望配置的闭环极点k=place(A,B,p)%求状态反馈矩阵A1=A-B*k%求状态反馈控制系统闭环状态矩阵[num,den]=ss2tf(A,B,C,D)%实现原来状态空间模型到传递函数模型的转换sys2=tf(num,den)%求原来状态空间模型的传递函数[num1,den1]=ss2tf(A1,B,C,D)%实现配置后状态空间模型到传递函数模型的转换sys3=tf(num1,den1)%求配置后状态空间模型的传递函数sys4=ss(A,B,C,D)%原来系统的动态方程即状态空间模型Sys5=ss(A1,B