广西大学实验报告纸序号学号姓名贡献排名实验报告分数1(组长):130212012(组员):1302122实验项目线性系统状态空间分析与运动解【实验时间】2015年11月12日【实验地点】课外(宿舍)【实验目的】1、学会利用MATLAB实现离散系统传递函数模型的生成2、学会利用MATLAB将连续系统离散化【实验设备与软件】1、MATLAB/Simulink数值分析软件2、计算机一台【实验原理】1、求矩阵特征值和特征向量命令格式[VJ]=eig(A)Cv=eig(A)说明:V特征向量,J是Jordan型,cv是特征值列向量2、求运动的方法(1)利用Laplace逆变换----适合于连续/离散线性系统采用ilaplace/iztrans对传递函数求逆,这种方法一般是零输入情况下求响应。(2)用连续(离散)状态转移矩阵表示系统解析解----适合于线性定常系统对连续定常系统有:假设初始时刻为零,LTI系统的解析解为dtBueexetxtAtAtAt0)()0()(。若u(t)是单位阶跃输入,则上述解可写成dtBueexetxtAtAtAt0)()0()(。进一步简化为:广西大学实验报告纸BuABuAxetxAt11))0(()(对离散线性定常系统有:11)()0()(kikkiHuGxGkx(3)状态方程的数值分析方法----适合于连续线性系统和非线性系统采用直接数值积分很容易的处理各种定常/时变和线性/非线性系统。有很多数值积分方法,其中有一类预测-修正数值积分方法+自适应步长调整的算法比较有效。在MATLAB/Simulink中包含的多种有效的、适用于不同类型的ODE求解算法,典型的是Runge-Ktuta算法,其通常使用如下的函数格式:[t,x]=ode45(odefun,[ti,tf],x0,options)----采用四阶、五阶Runge-Ktuta算法[t,x]=ode23(odefun,[ti,tf],x0,options)----采用二阶、三阶Runge-Ktuta算法说明:a.这两个函数是求解非刚性常微分方程的函数。b.参数options为积分的误差设置,取值为相对误差‘reltol’和绝对误差‘abstol’;[ti,tf]求解的时间范围;x0是初值是初值向量;[t,x]是解。(4)利用CotrolToolBox的离散化求解函数----适合于TLI系统用step()/impulse()函数求取阶跃输入/冲激输入时系统的状态响应:当系统G是连续的情况下:调用[y,t,x]=step/impulse(G)会自动对连续系统G选取采样时间范围和周期;调用[y,t,x]=step/impulse(G,ti:Ts:tf)由用户自己定义对连续系统G的样时间范围和周期;当系统G是离散的情况下:调用[y,t,x]=step/impulse(G)会按离散系统G给出的采样周期计算;调用[y,t,x]=step/impulse(G,ti:Ts:tf)是Ts必须与离散系统G的采样时间范围和周期一致。另外lsim()函数调用格式:[y,x,t]=lsim(G,u,ti,TS,tf,x0)零输入响应调用函数initial(),格式:[y,x,t]=(G,x0)(5)利用simulink环境求取响应----适用于所有系统求取响应广西大学实验报告纸使用simulink求取线性或非线性系统的响应,调用格式如下:[t,x,y]=sim(‘XX.mdl’,ti:Ts:tf,options,u)【实验内容】已知线性系统:)(201)()(210)(404040202119201921)(txtytutxtx已知线性系统1、利用Matlab求零状态下的阶跃响应(包括状态和输出),生成两幅图:第一幅绘制各状态响应曲线并标注;第二幅绘制输出响应曲线。状态响应曲线:A=[-2119-20;19-2120;40-40-40];B=[0;1;2];C=[102];D=[0];%输入状态空间模型各矩阵,若没有相应值,可赋空矩阵X0=[0;0;0];%输入初始状态sys=ss(A,B,C,D);%构造传递函数[y,x,t]=step(sys);%绘以时间为横坐标的状态响应曲线图plot(t,x);grid;title('状态响应曲线')输出响应程序:A=[-2119-20;19-2120;40-40-40];B=[0;1;2];C=[102];D=0;X0=[0;0;0][num,den]=ss2tf(A,B,C,D,1);sys=tf(num,den);step(sys)gridtitle('输出响应曲线')广西大学实验报告纸图一(状态响应曲线)图二(输出响应曲线)2、利用Matlab求零状态下的冲激响应(包括状态和输出),生成两幅图:第一幅绘制各状态响应曲线并标注;第二幅绘制输出响应曲线。状态响应曲线程序:A=[-2119-20;19-2120;40-40-40];B=[0;1;2];C=[102];D=[];%输入状态空间模型各矩阵,若没有相应值,可赋空矩阵x0=[0;0;0];%输入初始状态sys=ss(A,B,C,D);%构造传递函数[y,x,t]=impulse(sys);plot(t,x);grid;title('状态响应曲线')输出响应曲线程序:A=[-2119-20;19-2120;40-40-40];B=[0;1;2];C=[102];D=0;X0=[0;0;0][num,den]=ss2tf(A,B,C,D,1);sys=tf(num,den);impulse(sys);grid;title('')广西大学实验报告纸图三(状态响应曲线')图四(输出响应曲线)3、若控制输入为,且初始状态为,求系统的响应,要求a.在simulink只能够画出模型求响应,生成两幅图:第一幅绘制各状态响应曲线并标注;第二幅绘制输出响应曲线。程序如下:t=[0:0.01:5];u=(1+exp(-t).*cos(5*t)).*(t3)+1*(t=3);t=t';u=u';ut=[t,u];[t1,x,y]=sim('shiyan5.mdl',t,[],ut);plot(t1,x)figure(2);plot(t1,y)创建的模型图如下:图五(模型图)b.编写.m文件求响应,生成两幅图:第一幅绘制各状态响应曲线并标注;第二幅绘制输出响应曲线。状态响应曲线:广西大学实验报告纸t=[0:0.02:5];u=(1+exp(-t).*cos(5*t)).*(t3)+1*(t=3);t=t';u=u';A=[-2119-20;19-2120;40-40-40];B=[0;1;2];C=[102];D=[0];%输入状态空间模型各矩阵,若没有相应值,可赋空矩阵X0=[0.2;0.2;0.2];%输入初始状态u=(t==0);%就是个条件判断,只有t=0的时候,u才为“1”sys=ss(A,B,C,D);%构造传递函数plot(t,x);grid;title('状态响应曲线')输出响应曲线:plot(t,y);grid;title('输出响应曲线')图六(状态响应曲线)图七(输出响应曲线)4、以阶跃输入情况下的,分析各模块对响应有什么影响。广西大学实验报告纸图八(阶跃输入时)阶跃输入的图像到答稳定时间快,曲线平滑5、求系统的传递函数在MATLAB软件CommandWindow窗口中输入以下程序A=[-2119-20;19-2120;40-40-40];B=[0;1;2];C=[102];D=0;[num,den]=ss2tf(A,B,C,D,1);printsys(num,den)程序运行结果为图七6、若采用K增益负反馈,绘制闭环根轨迹图,并对根轨迹加以描述说明。A=[-2119-20;19-2120;40-40-40];B=[0;1;2];C=[102];D=0;[num,den]=ss2tf(A,B,C,D,1);rlocus(num,den);广西大学实验报告纸gridtitle('K增益负反馈闭环根轨迹图')图九(K增益负反馈闭环根轨迹图)采用K增益负反馈,画出如图所示的根轨迹图。由图可知,共有3条根轨迹,第一条最终趋于原点;第二条收敛在20~60之间;第三条最终趋于无穷远处。7、在Matlab中绘制Bode图和Nyquist图,并对图给予说明。绘制Bode图:A=[-2119-20;19-2120;40-40-40];B=[0;1;2];C=[102];D=0;sys=tf(num,den)bode(num,den)gridtitle('Bode图')汇出的波特图如图所示,由图可知,对复制响应分析可得,交越频率在转折频率之后,故复制的变化主要发生在低频段。对相频特性进行分析,可知此系统的相频特性角度均为负值,并且最后的相角是趋于-90度的。绘制Nyquist图:nyquist(sys)title('Nyquist图')广西大学实验报告纸图十(波特图)图十一(Nyquist图)画出的奈奎斯特图如上所示,根据此图可知,此系统是稳定的系统,由奈奎斯特曲线可以分析出此系统的稳定性。【实验结论与总结】经过本次试验我们了解了线性系统状态空间,知道如何在simulink中用状态方程搭建系统仿真模型,以及调用模型。不同输入对对系统有着一定的影响。如何把方程转换成simulink中的方块模型是非常重要的,在本次实验中,最困难的地方在于运用Simulink生成图形,在这过程中由于要利用到sim函数,不熟悉导致出错后来经过检查才改正错误。