现代控制理论实验报告二〇一六年五月实验一线性定常系统模型一实验目的1.掌握线性定常系统的状态空间表达式。学会在MATLAB中建立状态空间模型的方法。2.掌握传递函数与状态空间表达式之间相互转换的方法。学会用MATLAB实现不同模型之间的相互转换。3.熟悉系统的连接。学会用MATLAB确定整个系统的状态空间表达式和传递函数。4.掌握状态空间表达式的相似变换。掌握将状态空间表达式转换为对角标准型、约当标准型、能控标准型和能观测标准型的方法。学会用MATLAB进行线性变换。二实验内容1.已知系统的传递函数)3()1(4)(2ssssG(1)建立系统的TF或ZPK模型。(2)将给定传递函数用函数ss()转换为状态空间表达式。再将得到的状态空间表达式用函数tf()转换为传递函数,并与原传递函数进行比较。(3)将给定传递函数用函数jordants()转换为对角标准型或约当标准型。再将得到的对角标准型或约当标准型用函数tf()转换为传递函数,并与原传递函数进行比较。(4)将给定传递函数用函数ctrlts()转换为能控标准型和能观测标准型。再将得到的能控标准型和能观测标准型用函数tf()转换为传递函数,并与原传递函数进行比较。2.已知系统的传递函数uxx106510xy11(1)建立给定系统的状态空间模型。用函数eig()求出系统特征值。用函数tf()和zpk()将这些状态空间表达式转换为传递函数,记录得到的传递函数和它的零极点。比较系统的特征值和极点是否一致,为什么?(2)用函数canon()将给定状态空间表达式转换为对角标准型。用函数eig()求出系统特征值。比较这些特征值和(1)中的特征值是否一致,为什么?再用函数tf()和zpk()将对角标准型或约当标准型转换为传递函数。比较这些传递函数和(1)中的传递函数是否一致,为什么?(3)用函数ctrlss()将给定的状态空间表达式转换为能控标准型和能观测标准型。用函数eig()求系统的特征值。比较这些特征值和(1)中的特征值是否一致,为什么?再用函数tf()将它们转换为传递函数。比较这些传递函数和(1)中的传递函数是否一致,为什么?三实验结果1.已知系统的传递函数)3()1(4)(2ssssGnum=4;den=[15730];G=tf(num,den)Transferfunction:4-------------------------s^4+5s^3+7s^2+3sz=[];p=[0-1-1-3];k=4;G=zpk(z,p,k)Zero/pole/gain:4---------------s(s+1)^2(s+3)Gss=ss(G)a=x1x2x3x4x10100x20-110x300-11x4000-3b=u1x10x20x30x42c=x1x2x3x4y12000d=u1y10Gtf=tf(Gss)Transferfunction:4-------------------------s^4+5s^3+7s^2+3sGzpk=zpk(Gtf)Zero/pole/gain:4---------------s(s+3)(s+1)^22.uxx106510xy11A=[01;-5-6];B=[0;1];C=[11];D=0;G=ss(A,B,C,D)a=x1x2x101x2-5-6b=u1x10x21c=x1x2y111d=u1y10Continuous-timemodel.a=[01;-5-6]a=01-5-6eig(a)ans=-1-5Gtf=tf(G)Transferfunction:s+1-------------s^2+6s+5Gzpk=zpk(Gtf)Zero/pole/gain:(s+1)-----------(s+5)(s+1)结论:由上述结果可看出系统的特征值和极点是一致的。A=[01;-5-6];B=[0;1];C=[11];D=0;G=ss(A,B,C,D);G1=canon(G,'modal')a=x1x2x1-10x20-5b=u1x10.559x21.346c=x1x2y100.7428d=u1y10Continuous-timemodel.Gtf=tf(G1)Transferfunction:1-----s+5Gzpk=zpk(Gtf)Zero/pole/gain:1-----(s+5)实验二线性定常系统状态方程的解一实验目的1.掌握状态转移矩阵的概念。学会用MATLAB求解状态转移矩阵。2.掌握线性系统状态方程解的结构。学会用MATLAB求解线性定常系统的状态响应和输出响应,并绘制相应曲线。二实验内容1.求下列系统矩阵A对应的状态转移矩阵0410A.令初始状态为01)0(x,输入为零。a)用MATLAB求状态方程的解析解。选择时间向量t,绘制系统的状态响应曲线。观察并记录这些曲线。b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线,然后将这一状态响应曲线与a)中状态响应曲线进行比较。c)根据b)中所得的状态响应的数值解,用命令plot(x(:,1),x(:,2))绘制系统的状态轨迹。记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。2.已知系统uxx105610xy01(1)令初始状态为01)0(x,输入为零。a)用MATLAB求状态方程的解析解。选择时间向量t,绘制系统的状态响应曲线。观察并记录这些曲线。b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线,然后将这一状态响应曲线与a)中状态响应曲线进行比较。c)根据b)中所得的状态响应的数值解,用命令plot(x(:,1),x(:,2))绘制系统的状态轨迹。记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。(2)令初始状态为零,输入为)(1)(ttu。a)用MATLAB求状态方程的解析解。选择时间向量t,绘制系统的状态响应曲线。观察并记录这些曲线。b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线,然后将这一状态响应曲线与a).中状态响应曲线进行比较。c)根据b)中所得的状态响应的数值解,用命令plot(x(:,1),x(:,2))绘制系统的状态轨迹。记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。(3)令初始状态为11)0(x,输入为)(1)(ttu。求系统状态响应和输出响应的数值解,绘制系统的状态响应曲线、输出响应曲线和状态轨迹。观察和分析这些响应曲线和状态轨迹是否是(1)和(2)中的响应曲线和状态轨迹的叠加。(4)令初始状态为零,输入为)5sin(3)(ttu。用函数lsim()计算状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。3.已知系统uxx1006116100010xy006且初始状态为101)0(x。(1)当输入为)()(ttu时,用函数initial()和impulse()求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。(2)当输入为)(1)(ttu时,用函数initial()和step()求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。(3)当输入为ttu)(时,用函数initial()和lsim()求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。(4)当输入为)sin()(ttu时,用函数initial()和lsim()求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。三实验结果1.3210AA=[01;-2-3];symst;phet=expm(A*t)phet=[-exp(-2*t)+2*exp(-t),exp(-t)-exp(-2*t)][-2*exp(-t)+2*exp(-2*t),2*exp(-2*t)-exp(-t)]A=[01;-2-3];symss;G=inv(s*eye(size(A))-A);phet=ilaplace(G);X0=[1-1]';Xt1=phet*X0;B=[01]';Xt2=ilaplace(G*B*(1/s))ex22xt1=[exp(-t)][-exp(-t)]xt2=[1/2-exp(-t)+1/2*exp(-2*t)][exp(-t)-exp(-2*t)]2.已知系统为uxx103210xy11A=[01;-2-3];B=[0;1];C=[11];D=0;G=ss(A,B,C,D)a=x1x2x101x2-2-3b=u1x10x21c=x1x2y111d=u1y10Continuous-timemodel.t=0:0.5:10;x0=[1;-1];[yo,t,xo]=initial(G,x0,t);plot(t,xo,':',t,yo,'-')figure('pos',[5050200150],'color','w');u=ones(size(t));[yu,t,xu]=lsim(G,u,t);plot(t,xu,':',t,yu,'-')实验三线性定常系统的能控性和能观性一实验目的1.掌握能控性和能观测性的概念。学会用MATLAB判断能控性和能观测性。2.掌握系统的结构分解。学会用MATLAB进行结构分解。3.掌握最小实现的概念。学会用MATLAB求最小实现二实验内容1.已知系统uxx140143xy11(1)判断系统状态的能控性和能观测性,以及系统输出的能控性。说明状态能控性和输出能控性之间有无联系。(2)令系统的初始状态为零,系统的输入分别为单位阶跃函数和单位脉冲函数。用MATLAB函数计算系统的状态响应和输出响应,并绘制相应的响应曲线。观察和记录这些曲线。当输入改变时,每个状态变量的响应曲线是否随着改变?能否根据这些曲线判断系统状态的能控性?(3)将给定的状态空间表达式变换为对角标准型,判断系统的能控性和能观测性,与(1)的结果是否一致?为何?(4)令(3)中系统的初始状态为零,输入分别为单位阶跃函数和单位脉冲函数。用MATLAB函数计算系统的状态响应和输出响应,并绘制响应的曲线。观察和记录这些曲线。当输入改变时,每个状态变量曲线是否随着改变?能否根据这些曲线判断系统以及各状态变量的能控性?不能控和能控状态变量的响应曲线有何不同?(5)根据(2)和(4)所得曲线能否判断系统状态以及各状态变量的能观测性?2.已知系统uxx00124000020000300001xy0101(1)将给定的状态空间模型转换为传递函数模型。令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,绘制和记录相应的曲线。(2)按能控性分解给定的状态空间模型并记录所得的结果,然后再将其转换为传递函数模型。它与(1)中所得的传递函数模型是否一致?为何?令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应曲线。这一曲线与(1)中的输出曲线是否一致?为何?(3)按能观测性分解给定的状态空间模型并记