资源描述:
《现代控制理论实验报告中南大学.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中南大学现代控制实验报告指导老师设计者学号专业班级设计日期实验一用MATLAB分析状态空间模型1、实验设备PC计算机1台,MATLAB软件1套。2、实验目的①学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;②通过编程、上机调试,掌握系统状态空间表达式与传递函数相互转换方法。3、实验原理说明线性系统数学模型的常见的形式有,输入输出模式数学模型(传递函数和微分方程)和状态空间模式数学模型(状态空间表达式或动态方程)。传递函数模型一般可表示为:若上式中分子分母各项系数为常数,则系统称为线性定常系统(linea
2、rtimeinvariant,LTI)利用下列命令可轻易地将传递函数模型输入MATLAB环境中。>>num=[b0,b1,…,bn];>>den=[1,a1,a2,…,an];而调用tf()函数可构造出对应传递函数对象。调用格式为:>>G=tf(num,den);其中(num,den)分别为系统的分子和分母多项式系数的向量,返回变量G为系统传递函数对象。线性定常系统的状态空间模型可表示为表示状态空间模型的基本要素是状态向量和常数矩阵A,B,C,D。用类似的方法可将其输入MATLAB环境,对单输入单输出系统,>>A=[a11,a12,…a
3、1n;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界面下调试程序,并检查是否运行正确。题1.1已知SISO系统的传递函
4、数为(1)将其输入到MATLAB工作空间;(2)获得系统的状态空间模型。题1.2 已知SISO系统的状态空间表达式为,(1)将其输入到MATLAB工作空间;(2)求系统的传递函数。题1.1代码及结果num=[1,5,8];den=[1,2,6,3,9];G=tf(num,den);G1=ss(G)a=x1x2x3x4x1-2-1.5-0.375-1.125x24000x30200x40010b=u1x11x20x30x40c=x1x2x3x4y100.250.6251d=u1y10Continuous-timemodel.题1.2代码及
5、结果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)Transferfunction:s^2+5s+3-------------------------s^3+2s^2+3s+4实验二利用MATLAB求解系统的状态方程1、实验设备PC计算机1台,MATLAB软件1套。2、实验目的①学习系统齐次、非齐次状态方程求解的方法,计算矩阵指数,求状态响应;②通过编程、上机调试,掌握求解系统状态方程的方法,学会绘制状态响应曲线;③掌握利用MATLAB导出
6、连续状态空间模型的离散化模型的方法。3、实验原理说明在MATLAB中,调用expm(A)可求得矩阵指数;调用step()可求取阶跃输入时系统的状态响应;调用lsim()可求取零状态响应;调用initial()可求取零输入响应。它们的调用格式分别如下:>>expm(A)>>[y,t,x]=step(G)>>[y,t,x]=lsim(G,u,t)>>[y,t,x]=initial(G,x0)4、实验步骤(1)根据所给系统的状态方程,依据系统状态方程的解的表达式,采用MATLAB编程。(2)在MATLAB界面下调试程序,并检查是否运行正确。题
7、2.1已知SISO系统的状态方程为(1),,求当t=0.5时系统的矩阵系数及状态响应;(2),,绘制系统的状态响应及输出响应曲线;(3),,绘制系统的状态响应及输出响应曲线;(4),,绘制系统的状态响应及输出响应曲线;(5)在余弦输入信号和初始状态下的状态响应曲线。题2.2已知一个连续系统的状态方程是若取采样周期秒(1)试求相应的离散化状态空间模型;(2)分析不同采样周期下,离散化状态空间模型的结果。题2.1代码及结果(1).>>A=[0,1;-2,-3];>>expm(A*0.5)ans=0.84520.2387-0.47730.12
8、92>>x0=[1;-1];>>x=expm(A*0.5)*x0x=0.6065-0.6065(2).>>A=[0,1;-2,-3];B=[3;0];C=[1,1];D=0;>>G=ss(A,B,C,D);