《现代控制理论实验报告中南大学.pdf》由会员分享,可在线阅读,更多相关《现代控制理论实验报告中南大学.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、中南大学 现代控制实验报告 指导老师 设 计 者 学 号 专业班级 设计日期 实验一 用 MATLAB 分析状态空间模型 1、实验设备 PC 计算机 1 台,MATLAB 软件 1 套。2、实验目的 学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;通过编程、上机调试,掌握系统状态空间表达式与传递函数相互转换方法。3、实验原理说明 线性系统数学模型的常见的形式有,输入输出模式数学模型(传递函数和微分方程)和状态空间模式数学模型(状态空间表达式或动态方程)。传递函数模型一般可表示为:若上式中分子分母各项系数为常数,则系统称为线性定常系统(linear time i
2、nvariant,LTI)利用下列命令可轻易地将传递函数模型输入 MATLAB 环境中。num=b0,b1,bn;den=1,a1,a2,an;而调用 tf()函数可构造出对应传递函数对象。调用格式为:G=tf(num,den);其中(num,den)分别为系统的分子和分母多项式系数的向量,返回变量 G 为系统传递函数对象。线性定常系统的状态空间模型可表示为 表示状态空间模型的基本要素是状态向量和常数矩阵 A,B,C,D。用类似的方法可将其输入 MATLAB 环境,对单输入单输出系统,)()()()()()()()(1111110tastastastbstbstbstbsgnnnnmmmmDu
3、CxyBuAxxA=a11,a12,a1n;a21,a22,a2n;an1,an2,ann;B=b1;b2;bn;C=c1,c2,cn;D=d;调用 ss()状态方程对象可构造状态方程模型,调用格式如下:ss(A,B,C,D)对于两种模型之间的转换,则可分别调用 tf()和 ss()完成,即:G1=tf(G)G2=ss(G)4、实验步骤 根据所给系统的传递函数或 A、B、C 矩阵,依据系统的传递函数阵和状态空间表达式之间的关系式,采用 MATLAB 编程。在 MATLAB 界面下调试程序,并检查是否运行正确。题 已知 SISO 系统的传递函数为 243258()2639ssg sssss(1)
4、将其输入到 MATLAB 工作空间;(2)获得系统的状态空间模型。题 已知 SISO 系统的状态空间表达式为 112233010100134326xxxxuxx,123100 xyxx(1)将其输入到 MATLAB 工作空间;(2)求系统的传递函数。题代码及结果 num=1,5,8;den=1,2,6,3,9;G=tf(num,den);G1=ss(G)a=x1 x2 x3 x4 x1 -2 x2 4 0 0 0 x3 0 2 0 0 x4 0 0 1 0 b=u1 x1 1 x2 0 x3 0 x4 0 c=x1 x2 x3 x4 y1 0 1 d=u1 y1 0 Continuous-ti
5、me model.题代码及结果 A=0,1,0;0,0,1;-4,-3,-2;B=1;3;-6;C=1,0,0;D=0;G=ss(A,B,C,D);G1=tf(G)Transfer function:s2+5 s+3-s3+2 s2+3 s+4 实验二 利用 MATLAB 求解系统的状态方程 1、实验设备 PC 计算机 1 台,MATLAB 软件 1 套。2、实验目的 学习系统齐次、非齐次状态方程求解的方法,计算矩阵指数,求状态响应;通过编程、上机调试,掌握求解系统状态方程的方法,学会绘制状态响应曲线;掌握利用 MATLAB 导出连续状态空间模型的离散化模型的方法。3、实验原理说明 在 MAT
6、LAB 中,调用 expm(A)可求得矩阵指数 ;调用 step()可求取阶跃输入时系统的状态响应;调用 lsim()可求取零状态响应;调用 initial()可求取零输入响应。它们的调用格式分别如下:expm(A)Aey,t,x=step(G)y,t,x=lsim(G,u,t)y,t,x=initial(G,x0)4、实验步骤(1)根据所给系统的状态方程,依据系统状态方程的解的表达式,采用 MATLAB 编程。(2)在 MATLAB 界面下调试程序,并检查是否运行正确。题 已知 SISO 系统的状态方程为 0132301 1xxuyx (1)0u,101x,求当 t=时系统的矩阵系数及状态响
7、应;(2)1()ut,000 x ,绘制系统的状态响应及输出响应曲线;(3)1cos3tuet,000 x ,绘制系统的状态响应及输出响应曲线;(4)0u,102x ,绘制系统的状态响应及输出响应曲线;(5)在余弦输入信号和初始状态 101x 下的状态响应曲线。题 已知一个连续系统的状态方程是 0102541xxu 若取采样周期0.05T 秒(1)试求相应的离散化状态空间模型;(2)分析不同采样周期下,离散化状态空间模型的结果。题代码及结果 (1).A=0,1;-2,-3;expm(A*ans=x0=1;-1;x=expm(A*x0 x=(2).A=0,1;-2,-3;B=3;0;C=1,1;
8、D=0;G=ss(A,B,C,D);y,t,x=step(G);plot(t,x)状态响应:plot(t,y)输出响应:(3).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);plot(t,x)状态响应: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);plot(t,x)状态响应:plot(t,y)输出响应
9、:(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);状态响应:题代码及结果 A=0,1;-25,-4;B=0;1;Gz,Hz=c2d(A,B,Gz=Hz=实验三 系统的能控性、能观测性分析 1、实验设备 PC 计算机 1 台,MATLAB 软件 1 套。2、实验目的 学习系统状态能控性、能观测性的定义及判别方法;通过用 MAT
10、LAB 编程、上机调试,掌握系统能控性、能观测性的判别方法,掌握将一般形式的状态空间描述变换成能控标准形、能观标准形。3、实验原理说明 由系统状态方程求能控性矩阵 Uc,调用函数 rank()可求得 Uc 的秩,从而判断系统的能控性,同理求得能观性矩阵 Uo,用 rank()求其秩,再判断系统的能观性。4、实验步骤 根据系统的系数阵 A 和输入阵 B,依据能控性判别式,对所给系统采用 MATLAB 编程;在 MATLAB 界面下调试程序,并检查是否运行正确。根据系统的系数阵 A 和输出阵 C,依据能观性判别式,对所给系统采用 MATLAB 编程;在 MATLAB 界面下调试程序,并检查是否运行
11、正确。构造变换阵,将一般形式的状态空间描述变换成能控标准形、能观标准形。题 已知系数阵 A 和输入阵 B 分别如下,判断系统的状态能控性 2101013333.06667.10666.6A,110B 题 已知系数阵 A 和输出阵 C 分别如下,判断系统的状态能观性。2101013333.06667.10666.6A,201C 题 已知系统状态空间描述如下 0211512020011 10 xxuyx(1)判断系统的状态能控性;(2)判断系统的状态能观测性;(3)构造变换阵,将其变换成能控标准形;(4)构造变换阵,将其变换成能观测标准形;题代码及结果 A=,;1,0,1;0,1,2;B=0;1;
12、1;Uc=B,A*B,A2*B;rank(Uc)ans=3 题代码及结果 A=,;1,0,1;0,1,2;C=1,0,2;Uo=C;C*A;C*A2;rank(Uo)ans=3 题代码及结果 A=0,2,-1;5,1,2;-2,0,0;B=1;0;-1;C=1,1,0;Uc=B,A*B,A2*B;Uo=C;C*A;C*A2;(1).判断能控性:rank(Uc)ans=3(2).判断能观性:rank(Uo)ans=3 (3).构造变换阵,转化成能控标准型:A=0,2,-1;5,1,2;-2,0,0;B=1;0;-1;C=1,1,0;Uc=B,A*B,A2*B;rank(Uc);p1=0,0,1*
13、inv(Uc);P=p1;p1*A;p1*A2 P=Ac=P*A*inv(P)Ac=0 0 0 Bc=P*B Bc=0 0 (4).构造变换阵,转化成能观标准型:A=0,2,-1;5,1,2;-2,0,0;B=1;0;-1;C=1,1,0;Uo=C;C*A;C*A2;rank(Uo);T1=inv(Uo)*0;0;1;T=T1,A*T1,A2*T1 T=0 0 0 Ao=inv(T)*A*T Ao=0 0 -10 1 0 12 0 1 1 Co=C*T Co=0 0 1 实验四 系统稳定性分析 1、实验设备 PC 计算机 1 台,MATLAB 软件 1 套。2、实验目的 学习系统稳定性的定义及
14、李雅普诺夫稳定性定理;通过用 MATLAB 编程、上机调试,掌握系统稳定性的判别方法。3、实验原理说明 根据李雅普诺夫第一第二方法判断系统的稳定性。4、实验步骤(1)掌握利用李雅普诺夫第一方法判断系统稳定性;(2)掌握利用李雅普诺夫第二方法判断系统稳定性。题 某系统状态空间描述如下 0211512020011 10 xxuyx(1)利用李雅普诺夫第一方法判断其稳定性;(2)利用李雅普诺夫第二方法判断其稳定性。题代码及结果 (1)李雅普诺夫第一方法:%存为%输入系统状态方程 A=0,2,-1;5,1,2;-2,0,0;B=1;0;-1;C=1,1,0;D=0;%设立标志变量,判断是否稳定 fla
15、g=0;%求解零极点及增益 z,p,k=ss2zp(A,B,C,D,1);%显示结果 disp(System zero-points,pole-points and gain are:);z p k%判断是否稳定 n=length(A);for i=1:n if real(p(i)0 flag=1;end end if flag=1 disp(System is unstable);else disp(System is stable);end%运行 stability System zero-points,pole-points and gain are:z=p=k=1 System is
16、unstable (2)李雅普诺夫第二方法:%存为%系统状态方程模型 A=0,2,-1;5,1,2;-2,0,0;%选 Q=I Q=eye(3,3);%求解矩阵 P P=lyap(A,Q);%显示矩阵 P 的各阶主子式的值并判断是否稳定 flag=0;n=length(A);for i=1:n det(P(1:i,1:i)if(det(P(1:i,1:i)stability2 ans=ans=ans=System is unstable 实验五 利用 MATLAB 实现极点配置、设计状态观测器 1、实验设备 PC 计算机 1 台,MATLAB 软件 1 套。2、实验目的 学习闭环系统极点配置定
17、理及算法,学习全维状态观测器设计方法;通过用 MATLAB 编程、上机调试,掌握极点配置算法,设计全维状态观测器。3、实验原理说明 采用直接计算反馈矩阵、Ackermann 公式计算法、调用 place 函数法进行闭环系统极点配置。设计全维状态观测器。4、实验步骤(1)掌握采用直接计算法、采用 Ackermann 公式计算法、调用 place 函数法分别进行闭环系统极点配置;(2)掌握利用 MATLAB 设计全维状态观测器。题 某系统状态方程如下 010100134326100 xxuyx 理想闭环系统的极点为123,试(1)采用直接计算法进行闭环系统极点配置;(2)采用 Ackermann
18、公式计算法进行闭环系统极点配置;(3)采用调用 place 函数法进行闭环系统极点配置。题 某系统状态空间描述如下 010100134326100 xxuyx 设计全维状态观测器,要求状态观测器的极点为123。题代码及结果 (1)直接计算法:%存为%系统状态方程模型 A=0,1,0;0,0,1;-4,-3,-2;B=1;3;-6;C=1,0,0;D=0;%理想闭环极点 P=-1,-2,-3;syms k1 k2 k3 s;K=k1,k2,k3;eg=simple(det(s*diag(diag(ones(size(A)-A+B*K);f=1;for i=1:3 f=simple(f*(s-P(
19、i);end f=f-eg;k1,k2,k3=solve(subs(f,s,0),subs(diff(f,s),s,0),diff(f,s,2)%运行 pole k1=194/131 k2=98/131 k3=-6/131 (2)采用 Ackermann 公式计算:%存为%系统状态方程模型 A=0,1,0;0,0,1;-4,-3,-2;B=1;3;-6;C=1;0;0;%理想闭环极点 P=-1,-2,-3;K=acker(A,B,P)A-B*K%运行 bihuan K=ans=(3)调用 place 函数法:%存为%系统状态方程模型 A=0,1,0;0,0,1;-4,-3,-2;B=1;3;-
20、6;C=1;0;0;eig(A)%理想闭环极点 P=-1,-2,-3;K=place(A,B,P)eig(A-B*K)%运行 bihuan ans=-+K=ans=题代码及结果:%存为%系统状态方程 A=0,1,0;0,0,1;-4,-3,-2;B=1;3;-6;C=1,0,0;n=3;%计算能观性矩阵 ob=obsv(A,C);%计算能观性矩阵的秩 roam=rank(ob);%判断系统能观性 if roam=n disp(System is observable);elseif roam=n disp(System is not observable);end%运行 quanwei Sys
21、tem is observable%设计全维状态观测器%系统状态方程 A=0,1,0;0,0,1;-4,-3,-2;B=1;3;-6;C=1,0,0;%理想闭环极点 P=-1,-2,-3;A1=A;B1=C;C1=B;K=acker(A1,B1,P);%求解系统矩阵 E=(K)aEc=A-E*C%运行 quanwei E=4 0 -10 aEc=-4 1 0 0 0 1 6 -3 -2 实验心得:通过这次实验,我对于 Matlab 的使用更加熟悉,深深的感受到了这个软件的魅力所在。它强大的运算功能让我深深的折服了!在自己编程的过程中,我对于相关的知识有了更深的认知,系统的能控性、能观测性,系统的极点配置等等,掌握的更加熟悉!我相信,这对于以后的学习,会有更大的帮助!