matlab现代控制理论实验报告高立群

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验1用MATLAB分析状态空间模型1、实验设备PC计算机1台,MATLAB软件1套。2、实验目的①学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;②通过编程、上机调试,掌握系统状态空间表达式与传递函数相互转换方法。3、实验原理说明参考教材P56~59“2.7用MATLAB分析状态空间模型”4、实验步骤①根据所给系统的传递函数或A、B、C矩阵,依据系统的传递函数阵和状态空间表达式之间的关系式,采用MATLAB编程。②在MATLAB界面下调试程序,并检查是否运行正确。题1.1已知SISO系统的传递函数为243258()2639ssgsssss(1)将其输入到MATLAB工作空间;(2)获得系统的状态空间模型。代码num=[1,5,8];den=[1,2,6,3,9];TFG=tf(num,den);SG=ss(TFG)运行结果a=x1x2x3x4x1-2-1.5-0.75-2.25x24000x30100x40010b=u1x12x20x30x40c=x1x2x3x4y100.1250.6251d=u1y10题1.2已知SISO系统的状态空间表达式为112233010100134326xxxxuxx,123100xyxx(1)将其输入到MATLAB工作空间;(2)求系统的传递函数。代码:A=[0,1,0;0,0,1;-4,-3,-2];%系统状态参数;B=[1;3;-6];C=[1,0,0];D=0;SG=ss(A,B,C,D);%构建状态方程;TFG=tf(SG);%由状态方程得到传递函数;TFG运行结果:Transferfunction:s^2+5s+3---------------------s^3+2s^2+3s+4实验2利用MATLAB求解系统的状态方程1、实验设备PC计算机1台,MATLAB软件1套。2、实验目的①学习系统齐次、非齐次状态方程求解的方法,计算矩阵指数,求状态响应;②通过编程、上机调试,掌握求解系统状态方程的方法,学会绘制状态响应曲线;③掌握利用MATLAB导出连续状态空间模型的离散化模型的方法。3、实验原理说明参考教材P99~101“3.8利用MATLAB求解系统的状态方程”4、实验步骤(1)根据所给系统的状态方程,依据系统状态方程的解的表达式,采用MATLAB编程。(2)在MATLAB界面下调试程序,并检查是否运行正确。题2.1已知SISO系统的状态方程为01323011xxuyx(1)0u,101x,求当t=0.5时系统的矩阵系数及状态响应;(2)1()ut,000x,绘制系统的状态响应及输出响应曲线;代码:A=[0,1;-2,-3];%系统状态参数B=[3;0];C=[1,1];D=[0];SG=ss(A,B,C,D);t=0.5;X0=[1;-1];%1EA=expm(A*t)%t=0.5时的状态转移矩阵e^At|t=0.5Response1=EA*X0%u=0,t=0.5时的状态响应运行结果:EA=0.84520.2387-0.47730.1292Response1=0.6065-0.6065代码:t=[0:0.02;10];%阶跃响应[y,t,x]=step(SG);plot(t,x,t,y,':r')(3)1cos3tuet,000x,绘制系统的状态响应及输出响应曲线;(4)0u,102x,绘制系统的状态响应及输出响应曲线;运行结果代码:u3=1+exp(-t).*cos(3*t);%零状态响应,u3=1+exp(-t3).*cos(3*t3);[y,t,x]=lsim(SG,u3,t);plot(t,x,t,y,':r')%状态响应曲线%输出响应曲线xlabel('时间t'),ylabel('响应'),title('');运行结果:X1X2YX1X2Y(5)在余弦输入信号和初始状态101x下的状态响应曲线。代码:x04=[1;2];[y,t,x]=initial(SG,x04,t);%零输入响应plot(t,x,t,y,':r')%状态响应曲线%输出响应曲线运行结果:代码:x04=[1;2];[y,t,x]=initial(SG,x04,t);%零输入响应plot(t,x,t,y,':r')%状态响应曲线%输出响应曲线x0=[1;1];u=cos(t);[y,t,x]=lsim(SG,u,t,x0);subplot(2,1,1),plot(t,x(:,1))xlabel('Time(sec)'),ylabel('X_1')subplot(2,1,2),plot(t,x(:,2))xlabel('Time(sec)'),ylabel('X_2')运行结果:X1X2Y题2.2已知一个连续系统的状态方程是0102541xxu若取采样周期0.05T秒(1)试求相应的离散化状态空间模型;(2)分析不同采样周期下,离散化状态空间模型的结果。代码:A=[0,1;-25,-4];B=[0;1];t=[0:0.05:4];T=0.05;A=[01;-25-4];B=[0;1];[G,H]=c2d(A,B,T)%离散化状态方程:x[k+1]=G*x(k)+H*u(k)运行结果:G=0.97090.0448-1.12120.7915H=0.00120.0448实验3系统的能控性、能观测性分析、实验设备PC计算机1台,MATLAB软件1套。2、实验目的①学习系统状态能控性、能观测性的定义及判别方法;②通过用MATLAB编程、上机调试,掌握系统能控性、能观测性的判别方法,掌握将一般形式的状态空间描述变换成能控标准形、能观标准形。3、实验原理说明参考教材P117~118“4.2.4利用MATLAB判定系统能控性”P124~125“4.3.3利用MATLAB判定系统能观测性”4、实验步骤①根据系统的系数阵A和输入阵B,依据能控性判别式,对所给系统采用MATLAB编程;在MATLAB界面下调试程序,并检查是否运行正确。②根据系统的系数阵A和输出阵C,依据能观性判别式,对所给系统采用MATLAB编程;在MATLAB界面下调试程序,并检查是否运行正确。③构造变换阵,将一般形式的状态空间描述变换成能控标准形、能观标准形。题3.1&题3.2已知系数阵A和输入阵B分别如下,判断系统的状态能控性与能观性2101013333.06667.10666.6A,110B,201C代码:A=[6.666,-10.6667,-0.3333;1,0,1;0,1,2];C=[1,0,2];Uo=[C;C*A;C*A^2];n=length(A);flag1=rank(Uo);Uc=[B,A*B,A^2*B];n=length(A);flag2=rank(Uc);disp('系统状态::');ifflag2==ndisp('系统可控');elsedisp('系统不可控');endifflag1==ndisp('系统可观');elsedisp('系统不可观');end运行结果:系统状态::系统可控系统可观题3.3已知系统状态空间描述如下021151202001110xxuyx(1)判断系统的状态能控性;(2)判断系统的状态能观测性;(3)构造变换阵,将其变换成能控标准形;(4)构造变换阵,将其变换成能观测标准形;A=[0,2,-1;5,1,2;-2,0,0];B=[1;0;-1];C=[1,1,0];n=length(A);Uc=[B,A*B,A^2*B];Uco=[C;C*A;C*A^2];flagC=rank(Uc);flagO=rank(Uco);ifn==flagCdisp('系统可控');endifn==flagOdisp('系统可观');endNi_Uc=inv(Uc);%Uc的逆矩阵P1=[0,0,1]*Ni_Uc;P=[P1;P1*A;P1*A^2];Ni_P=inv(P);%P的逆矩阵Ac=P*A*Ni_PBc=P*BT1=inv(Uco)*[0;0;1];T=[T1,A*T1,A^2*T1];Ao=inv(T)*A*TCo=C*T运行结果:系统可控系统可观Ac=01.0000000.00001.0000-10.000012.00001.0000Bc=001.0000Ao=00-101012011Co=001实验4系统稳定性分析实验设备PC计算机1台,MATLAB软件1套。2、实验目的①学习系统稳定性的定义及李雅普诺夫稳定性定理;②通过用MATLAB编程、上机调试,掌握系统稳定性的判别方法。3、实验原理说明参考教材P178~181“5.3.4利用MATLAB进行稳定性分析”4、实验步骤(1)掌握利用李雅普诺夫第一方法判断系统稳定性;(2)掌握利用李雅普诺夫第二方法判断系统稳定性。题4.1某系统状态空间描述如下021151202001110xxuyx(1)利用李雅普诺夫第一方法判断其稳定性;(2)利用李雅普诺夫第二方法判断其稳定性。代码:A=[0,2,-1;5,1,2;-2,0,0];B=[1;0;-1];C=[1,1,0];D=0;flag1=0;flag2=0;[z,p,k]=ss2zp(A,B,C,D,1);n=length(A);%利亚普诺夫第一方法fori=1:nifreal(p(i))0flag1=1;endend%利亚普诺夫第二方法Q=eye(3,3);%Q=IP=lyap(A,Q);%求解矩阵Pfori=1:ndet(P(1:i,1:i));if(det(P(1:i,1:i))=0)flag2=1;endend运行结果:flag1flag2flag1=1flag2=1///flag=1说明系统稳定实验5利用MATLAB实现极点配置、设计状态观测器1、实验设备PC计算机1台,MATLAB软件1套。2、实验目的①学习闭环系统极点配置定理及算法,学习全维状态观测器设计方法;②通过用MATLAB编程、上机调试,掌握极点配置算法,设计全维状态观测器。3、实验原理说明参考教材P204~207“6.2.5利用MATLAB实现极点配置”P227~230“6.4.4利用MATLAB设计状态观测器”4、实验步骤(1)掌握采用直接计算法、采用Ackermann公式计算法、调用place函数法分别进行闭环系统极点配置;(2)掌握利用MATLAB设计全维状态观测器题5.1某系统状态方程如下010100134326100xxuyx理想闭环系统的极点为123,试(1)采用直接计算法进行闭环系统极点配置;(2)采用Ackermann公式计算法进行闭环系统极点配置;(3)采用调用place函数法进行闭环系统极点配置。代码: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);A1=A-B*K;KA1运行结果:K=1.48090.7481-0.0458A1=-1.48090.25190.0458-4.4427-2.24431.13744.88551.4885-2.2748K为配置增益参数,A1为配置后的系统A阵题5.2某系统状态空间描述如下010100134326100xxuyx设计全维状态观测器,要求状态观测器的极点为123。代码:A=[0,1,0;

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功