《现代控制实验(Matlab).doc》由会员分享,可在线阅读,更多相关《现代控制实验(Matlab).doc(5页珍藏版)》请在金锄头文库上搜索。
1、实验1:用MATLAB语言对状态空间模型进行分析一实验目的:1.掌握状态方程和输出方程输入语句G=ss(A,B,C,D)的用法2.求状态方程的解3.判断系统的能控性与能观性4.判断系统的稳定性二实验原理:1掌握状态方程和输出方程输入语句G=ss(A,B,C,D)的用法对于线性时不变系统来说,其状态方程为在Matlab下只需将各系数矩阵输到工作空间即可。 调用格式: G=ss(A,B,C,D)例1 双输入双输出系统的状态方程表示为,该状态方程可以由下面语句输入到MATLAB工作空间去。A=1,2,0,4;3,-1,6,2;5,3,2,1;4,0,-2,7;B=2,3;1,0;5,2;1,1;C=
2、0,0,2,1;2,2,0,1;D=zeros(2,2);G=ss(A,B,C,D)2.矩阵eAt的数值计算在Matlab中,给定矩阵A和时间t的值,计算矩阵指数eAt的值可以直接采用基本矩阵函数expm()。Matlab的expm()函数采用帕德(Pade)逼近法计算矩阵指数eAt,精度高,数值稳定性好。expm()函数的主要调用格式为:Y = expm(X)其中,X为输入的需计算矩阵指数的矩阵,Y为计算的结果。例2.(1)试在Matlab中计算矩阵 的矩阵指数eAt。syms tA=0 1;-1 -3;eAt=expm(A*t)(2)求在t=0.3时的矩阵指数eAt的值。A=0 1;-1
3、-3;eAt=expm(A*t)t=0.3;eAt03=expm(A*t)3.求状态方程的解例3.已知SISO系统的状态方程为(选作)(1),求当t=0.5时系统的矩阵指数及状态响应;矩阵指数:A=0,1;-2,-3; expm(A*0.5)状态响应:x0=1;-1;x=expm(A*0.5)*x0(选作)(2),绘制系统的状态响应及输出响应曲线;程序: A=0,1;-2,-3;B=3;0;C=1,1;D=0;G=ss(A,B,C,D);y,t,x=step(G);figure(1);plot(t,x) ; %状态响应:figure(2);plot(t,y);%输出响应: (选作)(3),绘制
4、系统的状态响应及输出响应曲线;程序:A=0,1;-2,-3;B=3;0;C=1,1;D=0;t=0:.04:4;u=1+exp(-t).*cos(3*t);G=ss(A,B,C,D);y,t,x=lsim(G,u,t);figure(1);plot(t,x) %状态响应:figure(2);plot(t,y) %输出响应:(选作)(4),绘制系统的状态响应及输出响应曲线;程序:A=0,1;-2,-3;B=3;0;C=1,1;D=0;t=0:.04:7;u=0;x0=1;2;G=ss(A,B,C,D);y,t,x=initial(G,x0,t);figure(1);plot(t,x) %状态响应
5、:figure(2);plot(t,y)%输出响应:(5)在余弦输入信号和初始状态下的状态响应曲线。程序:A=0,1;-2,-3;B=3;0;C=1,1;D=zeros(1,1);x0=1;1;t=0:.04:15; u=cos(t);G=ss(A,B,C,D);G1=tf(G);y1,t,x1=initial(G,x0,t);y2,t,x2=lsim(G,u,t);y=y1+y2;x=x1+x2;plot(t,x);4.应用MATLAB变连续系统状态空间模型为离散状态空间模型MATLAB Control system Toolbox 提供的c2d()函数可简化线性定常连续状态方程离散化系数矩
6、阵的求解,设控制输入采用零阶保持器,T为采样周期,其调用格式为G,H=c2d(A,B,T)例4连续系统离散花已知一个连续系统的状态方程是若取采样周期秒(1)试求相应的离散化状态空间模型;程序:syms TA=0,1;-25,-4;B=0;1; G,H=c2d(A,B,T)(2)分析不同采样周期下,离散化状态空间模型的结果。A=0,1;-25,-4;B=0;1; Gz,Hz=c2d(A,B,0.05)5.状态能控性能观性判定Matlab提供的函数ctrb()可根据给定的系统模型,计算能控性矩阵Qc=B AB An-1B能控性矩阵函数ctrb()的主要调用格式为:Qc = ctrb(A,B)Qc
7、= ctrb(sys)无论对连续还是离散的线性定常系统,采用代数判据判定状态能观性需要计算定义的能观性矩阵 和 并要求能观性矩阵Qo的秩等于状态空间维数。Matlab提供的函数obsv()可根据给定的系统模型计算能观性矩阵。能观性矩阵函数obsv()的主要调用格式为Qo = obsv(A,C)Qo = obsv(sys)判断系统能控性程序:A=-2,2,-1;0,-2,0;1,-4,0;B=0,0;0,1;1,0;Qc=ctrb(A,B);n=rank(Qc);L=length(A);if n= =L str=系统是状态完全能控else str=系统是状态不完全能控end 判断系统能观性程序:A=-3,1,0;0,-3,0;0,0,-1;B=1,-1;0,0;2,0;C=1,0,1;-1,1,0;q1=C;q2=C*A;%将CA的结果放在q2中q3=C*A2;%将CA2的结果放在q3中,Qo=q1;q2;q3%将能观矩阵Qo显示在MATLAB的窗口Q=rank(Qo)%能观矩阵Qo的秩放在Q三实验内容已知系统的状态方程和输出方程如下: (1) 矩阵指数eAt;(2) 求状态方程的解;(3) 离散状态空间模型;(4) 求单位阶跃输入信号和初始状态下的状态响应曲线。四实验报告1.写出将实验内容的程序和运行结果。2.实验体会。