线性系统状态空间分析与运动解
- 格式:docx
- 大小:221.81 KB
- 文档页数:9
第九章 线性系统的状态空间分析与综合在第一章至第七章中,我们曾详细讲解了经典线性系统理论以及用其设计控制系统的方法。
可以看到,经典线性理论的数学基础是拉普拉斯变换和z 变换,系统的基本数学模型是线性定常高阶微分方程、线性常系数差分方程、传递函数和脉冲传递函数,主要的分析和综合方法是时域法、根轨迹法和频域法,分析的主要内容是系统运动的稳定性。
经典线性系统理论对于单输入-单输出线性定常系统的分析和综合是比较有效的,但其显著的缺点是只能揭示输入-输出间的外部特性,难以揭示系统内部的结构特性,也难以有效处理多输入-多输出系统。
在50年代蓬勃兴起的航天技术的推动下,在1960年前后开始了从经典控制理论到现代控制理论的过渡,其中一个重要标志就是卡尔曼系统地将状态空间概念引入到控制理论中来。
现代控制理论正是在引入状态和状态空间概念的基础上发展起来的。
在现代控制理论的发展中,线性系统理论首先得到研究和发展,已形成较为完整成熟的理论。
现代控制理论中的许多分支,如最优控制、最优估计与滤波、系统辨识、随机控制、自适应控制等,均以线性系统理论为基础;非线性系统理论、大系统理论等,也都不同程度地受到了线性系统理论的概念、方法和结果的影响和推动。
现代控制理论中的线性系统理论运用状态空间法描述输入-状态-输出诸变量间的因果关系,不但反映了系统的输入—输出外部特性,而且揭示了系统内部的结构特性,是一种既适用于单输入--单输出系统又适用于多输入—多输出系统,既可用于线性定常系统又可用于线性时变系统的有效分析和综合方法。
在线性系统理论中,根据所采用的数学工具及系统描述方法的不同,又出现了一些平行的分支,目前主要有线性系统的状态空间法、线性系统的几何理论、线性系统的代数理论、线性系统的多变量频域方法等。
由于状态空间法是线性系统理论中最重要和影响最广的分支,加之受篇幅限制,所以本章只介绍线性系统的状态空间法。
9-1 线性系统的状态空间描述1. 系统数学描述的两种基本类型这里所谓的系统是指由一些相互制约的部分构成的整体,它可能是一个由反馈闭合的整体,也可能是某一控制装置或受控对象。
线性系统状态空间分析和运动解状态空间分析方法是一种用来描述线性系统的分析方法。
它将系统的动态特性用一组状态变量来表示,并通过矩阵形式的状态方程进行分析和求解。
状态空间方法是目前广泛应用于自动控制系统设计与分析的一种方法,它可以对系统的稳定性、可控性、可观性以及性能等进行定量分析。
在状态空间分析方法中,首先需要将系统的微分方程表示为矩阵形式的状态方程。
状态方程描述了各个状态变量和它们的变化率之间的关系。
假设系统有n个状态变量x1, x2, ..., xn和m个输入变量u1, u2, ..., um,状态方程可以表示为:dx/dt = Ax + Bu其中,dx/dt是状态变量的变化率,A是状态矩阵,描述状态变量之间的耦合关系,B是输入矩阵,描述输入变量对状态变量的影响。
状态空间分析方法的基本思想是将系统转化为状态空间表达式,然后通过对状态方程进行分析和求解来得到系统的特性和响应。
常见的分析方法包括对系统的稳定性、可控性和可观性进行评估。
稳定性是系统的基本性质之一,用来描述系统在受到扰动时是否能够恢复到平衡状态。
在状态空间方法中,通过研究系统的特征根(或特征值)可以判断系统的稳定性。
特征根是状态方程的解的根,系统的稳定性与特征根的实部有关。
如果特征根的实部都小于零,则系统是稳定的;如果特征根存在实部大于零的情况,则系统是不稳定的。
可控性是指系统是否可以通过输入变量来控制系统的状态变量。
在状态空间方法中,通过可控性矩阵来判断系统的可控性。
如果可控性矩阵的秩等于系统的状态变量个数,则系统是可控的;如果可控性矩阵的秩小于系统的状态变量个数,则系统是不可控的。
可观性是指系统的状态变量是否可以通过观测变量来测量得到。
在状态空间方法中,通过可观性矩阵来判断系统的可观性。
如果可观性矩阵的秩等于系统的状态变量个数,则系统是可观的;如果可观性矩阵的秩小于系统的状态变量个数,则系统是不可观的。
除了稳定性、可控性和可观性外,状态空间分析方法还可以用来分析系统的性能指标,如系统的响应时间、稳态误差和系统的最大误差等。
【实验地点】课外(宿舍) 【实验目的】1、学会利用MATLAB 实现离散系统传递函数模型的生成2、学会利用MATLAB 将连续系统离散化 【实验设备与软件】1、MATLAB/Simulink 数值分析软件2、计算机一台 【实验原理】1、求矩阵特征值和特征向量命令格式[V J]=eig (A ) Cv=eig(A)说明:V 特征向量,J 是Jordan 型,cv 是特征值列向量 2、求运动的方法(1)利用Laplace 逆变换----适合于连续/离散线性系统采用ilaplace/iztrans 对传递函数求逆,这种方法一般是零输入情况下求响应。
(2)用连续(离散)状态转移矩阵表示系统解析解----适合于线性定常系统 对连续定常系统有:假设初始时刻为零,LTI 系统的解析解为dt Bu eex e t x tAtAtAt⎰⎰+=0)()0()(τ。
若u (t )是单位阶跃输入,则上述解可写成dtBu ee x e t x tAtAt At ⎰⎰+=0)()0()(τ。
进一步简化为:Bu A Bu A x e t x At 11))0(()(---+=对离散线性定常系统有:∑---+=11)()0()(k i kki Hu G x G k x(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)(t x t y t u t x t x +-----•已知线性系统1、利用Matlab 求零状态下的阶跃响应(包括状态和输出),生成两幅图:第一幅绘制各状态响应曲线并标注;第二幅绘制输出响应曲线。
状态响应曲线:A=[-21 19 -20;19 -21 20;40 -40 -40]; B=[0;1;2]; C=[1 0 2];D=[0]; %输入状态空间模型各矩阵,若没有相应值,可赋空矩阵 X0=[0;0;0]; % 输入初始状态 sys=ss(A,B,C,D); %构造传递函数[y,x,t]=step(sys); % 绘以时间为横坐标的状态响应曲线图 plot(t,x); grid;title('状态响应曲线') 输出响应程序:A=[-21 19 -20;19 -21 20;40 -40 -40]; B=[0;1;2]; C=[1 0 2]; D=0; X0=[0;0;0][num,den]=ss2tf(A,B,C,D,1); sys=tf(num,den); step(sys) gridtitle('输出响应曲线')图一(状态响应曲线)图二(输出响应曲线)2、利用Matlab求零状态下的冲激响应(包括状态和输出),生成两幅图:第一幅绘制各状态响应曲线并标注;第二幅绘制输出响应曲线。
状态响应曲线程序:A=[-21 19 -20;19 -21 20;40 -40 -40];B=[0;1;2];C=[1 0 2];D=[]; %输入状态空间模型各矩阵,若没有相应值,可赋空矩阵x0=[0;0;0]; % 输入初始状态sys=ss(A,B,C,D); %构造传递函数[y,x,t]= impulse(sys);plot(t,x);grid;title('状态响应曲线')输出响应曲线程序:A=[-21 19 -20;19 -21 20;40 -40 -40];B=[0;1;2];C=[1 0 2];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)).*(t<3)+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)).*(t<3)+1*(t>=3);t=t';u=u';A=[-21 19 -20;19 -21 20;40 -40 -40];B=[0;1;2];C=[1 0 2];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软件Command Window窗口中输入以下程序A=[-21 19 -20;19 -21 20;40 -40 -40];B=[0;1;2];C=[1 0 2];D=0;[num,den]=ss2tf(A,B,C,D,1);printsys(num,den)程序运行结果为图七6、若采用K增益负反馈,绘制闭环根轨迹图,并对根轨迹加以描述说明。
A=[-21 19 -20;19 -21 20;40 -40 -40];B=[0;1;2];C=[1 0 2];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=[-21 19 -20;19 -21 20;40 -40 -40];B=[0;1;2];C=[1 0 2];D=0;sys=tf(num,den)bode(num,den)gridtitle('Bode图')汇出的波特图如图所示,由图可知,对复制响应分析可得,交越频率在转折频率之后,故复制的变化主要发生在低频段。
对相频特性进行分析,可知此系统的相频特性角度均为负值,并且最后的相角是趋于-90度的。
绘制Nyquist图:nyquist(sys)title('Nyquist图 ')图十(波特图)图十一(Nyquist图)画出的奈奎斯特图如上所示,根据此图可知,此系统是稳定的系统,由奈奎斯特曲线可以分析出此系统的稳定性。
【实验结论与总结】经过本次试验我们了解了线性系统状态空间,知道如何在simulink中用状态方程搭建系统仿真模型,以及调用模型。
不同输入对对系统有着一定的影响。
如何把方程转换成simulink中的方块模型是非常重要的,在本次实验中,最困难的地方在于运用Simulink生成图形,在这过程中由于要利用到sim函数,不熟悉导致出错后来经过检查才改正错误。