版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ch.2线性系统的时域分析3.6Matlab问题状态方程的解Matlab问题(1/3)3.6Matlab问题本章中涉及的计算问题主要有矩阵指数函数的计算、系统运动轨迹的计算(即状态空间模型的求解)以及连续系统的离散化(采样)。基于Matlab的基本函数和工具箱,可以进行上述系统运动分析的计算和仿真。3.6Matlab问题状态方程的解Matlab问题(2/3)为更好地进行动态系统运动分析的计算和仿真,编著者设计了一个Matlab符号化和图形化的控制系统运动分析软件平台lti_analysis。这里将涉及新的Matlab程序设计方法,如使用符号计算工具箱进行矩阵指数函数和运动轨迹的符号计算、使用图形用户界面(GUI)设计控制系统仿真与实验的软件平台。3.6Matlab问题状态方程的解Matlab问题(3/3)下面分别介绍基于Matlab的上述问题的程序编制和计算方法,主要有矩阵指数函数的计算线性定常连续系统的状态空间模型求解
连续系统的离散化线性定常离散系统的状态空间模型求解
线性定常系统的运动分析的符号计算和仿真平台
3.6Matlab问题状态方程的解矩阵指数函数的计算(1/1)3.6.1矩阵指数函数的计算矩阵指数函数的计算问题有两类,一类是数值计算,即给定矩阵A和具体的时间t的值,计算矩阵指数eAt的值;另一类是符号计算,即在给定矩阵A下,计算矩阵指数函数eAt的封闭的(解析的)矩阵函数表达式。数值计算问题可由基本的Matlab函数完成,符号计算问题后一类则需要用到Matlab的符号工具箱。下面就分别介绍eAt的数值计算eAt的符号计算3.6Matlab问题状态方程的解eAt的数值计算(1/4)1.eAt的数值计算在Matlab中,给定矩阵A和时间t的值,计算矩阵指数eAt的值可以直接采用基本矩阵函数expm()。Matlab的expm()函数采用帕德(Pade)逼近法计算矩阵指数eAt,精度高,数值稳定性好。expm()函数的主要调用格式为Y=expm(X)其中,X为输入的需计算矩阵指数的矩阵,Y为计算的结果。3.6Matlab问题状态方程的解eAt的数值计算(2/4)Matlab问题3-1试在Matlab中计算例3-1中矩阵A在t=0.3时的矩阵指数eAt的值。Matlab程序m3-1如下。Matlab程序m3-1执行结果如下。A=[01;-2-3];t=0.3;eAt=expm(A*t)eAt=0.93280.1920-0.38400.35683.6Matlab问题状态方程的解在Matlab中还有3个计算矩阵指数eAt的函数,分别是expmdemo1(),expmdemo2()和expmdemo3()。expmdemo1()就是expm(),采用帕德逼近法计算矩阵指数;而expmdemo2()采用3.2.1节中介绍的利用泰勒级数展开法来计算,精度较低;expmdemo3()采用3.2.2节中介绍的利用特征值和特征向量来计算对角线矩阵,进而通过对角线矩阵的矩阵指数计算原矩阵的矩阵指数。eAt的数值计算(3/4)3.6Matlab问题状态方程的解eAt的数值计算(4/4)expmdemo3()的计算精度取决于特征值、特征向量、指数函数exp()的计算精度,由于这3种计算有良好的计算方法,因此expmdemo3()的计算精度最高。但expmdemo3()只能计算矩阵的独立特征向量数等于矩阵的维数,即矩阵能变换为对角线矩阵的情况,因此,在不能判定矩阵是否能变换为对角线矩阵时,尽量采用函数expm()。3.6Matlab问题状态方程的解eAt的符号计算(1/8)2.eAt的符号计算在Matlab中,对给定矩阵A,可通过符号计算工具箱的函数expm()计算变量t的矩阵指数函数eAt的表达式。在使用Matlab的符号计算工具箱计算时,需要定义符号变量,输入符号表达式与符号矩阵。下面介绍使用符号计算工具箱需要的基本操作。3.6Matlab问题状态方程的解eAt的符号计算(2/8)1)定义符号变量定义(指定)符号变量的语句的格式为symstsx...该语句将符号t,s,x,…定义为符号变量。在该语句后,就可以输入和计算符号表达式与符号矩阵。3.6Matlab问题状态方程的解eAt的符号计算(3/8)2)输入符号表达式符号表达式的输入可采用赋值语句的方式,如赋值语句f1=sin(x)^2+cos(y)^3-3为定义符号表达式变量f1为表达式。在Matlab中,符号表达式的输入采用符号串的形式,其表达式的格式与Matlab的数值计算的格式基本一致。3.6Matlab问题状态方程的解eAt的符号计算(4/8)3)输入符号矩阵Matlab中符号矩阵的输入采用函数sym()。sym()的调用格式为S=sym(A)该函数的功能为将符号串A转换为符号矩阵,其中符号串A的格式与使用Matlab进行数值计算时矩阵的计算公式格式基本一致。如f2=sym([x^2+sqrt(1-x)y*x;1+zx+z^3])的函数sym()将符号串[x^2+sqrt(1-x)y*x;1+zx+z^3]转换为如下表示的符号矩阵3.6Matlab问题状态方程的解eAt的符号计算(5/8)在给符号表达式变量和符号矩阵变量赋值后,在Matlab7.0中就可以像数值计算公式那样直接采用算术运算符“+”,“-”,“*”,“/”,“^”,以及exp(),expm()等函数进行符号计算。如,在前面的符号表达式变量f1和符号矩阵变量f2赋值后,执行符号计算公式f3=f1*f2就进行如下符号表达式的计算3.6Matlab问题状态方程的解eAt的符号计算(6/8)使用Matlab的符号工具箱的函数expm()可直接计算关于符号矩阵变量A的矩阵指数函数eA的表达式。符号计算函数expm()的调用格式为expA=expm(A)其中,输入矩阵A为Matlab的符号矩阵,输出矩阵expA为计算所得的eA的Matlab符号矩阵。Matlab问题3-2试在Matlab中计算例3-1中矩阵A的矩阵指数eAt。3.6Matlab问题状态方程的解eAt的符号计算(7/8)Matlab程序m3-2如下。其中t定义为符号变量,输入矩阵A为一般Matlab的数值矩阵,表达式A*t即为Matlab的符号矩阵。Matlab程序m3-2执行结果如下。上述计算结果与例3-1的计算结果完全一致。symst;A=[01;-2-3];eAt=expm(A*t)%定义符号变量t%计算矩阵A对应的矩阵指数函数eAt=[2*exp(-t)-exp(-2*t),-exp(-2*t)+exp(-t)][2*exp(-2*t)-2*exp(-t),-exp(-t)+2*exp(-2*t)]例3-1的计算结果3.6Matlab问题状态方程的解eAt的符号计算(8/8)Matlab有着功能非常强大的符号计算功能,包括符号微分、符号积分、符号矩阵运算、符号线性方程组解、符号非线性方程组解、符号常微分方程组解等,还可以与符号计算软件Maple混合编程,调用Maple的其他符号计算功能。3.6Matlab问题状态方程的解线性定常连续系统的状态空间模型求解(1/2)3.6.2线性定常连续系统的状态空间模型求解
Matlab提供了非常丰富的线性定常连续系统的状态空间模型求解(即系统运动轨迹的计算)的功能,主要的函数有初始状态响应函数initial()、阶跃响应函数step()以及可计算任意输入的系统响应函数lsim(),但这里主要是计算其系统响应的数值解。3.6Matlab问题状态方程的解线性定常连续系统的状态空间模型求解(2/2)对系统运动分析问题,有时需要求解系统响应的函数表达式。为此,编著者编写了专门用于求解系统响应函数表达式的Matlab符号计算函数sym_lsim()。下面将分别介绍状态空间模型求解的Matlab程序编制和计算问题,主要内容有:初始状态响应函数initial()、阶跃响应函数step()、任意输入的系统响应函数lsim(),以及任意输入的符号响应函数sym_lsim()。3.6Matlab问题状态方程的解初始状态响应函数initial()(1/8)1.初始状态响应函数initial()初始状态响应函数initial()主要是计算状态空间模型(A,B,C,D)的初始状态响应,其主要调用格式为initial(sys,x0,t)[y,t,x]=initial(sys,x0,t)其中sys为输入的状态空间模型;x0为给定的初始状态;t为指定仿真计算状态响应的时间区间变量(数组)。第1种调用格式的输出格式为输出响应曲线图,第2种调用格式的输出为数组形式的输出变量响应值y,仿真时间坐标数组t,状态变量响应值x。3.6Matlab问题状态方程的解初始状态响应函数initial()(2/8)Matlab中,时间区间变量(数组)t有三种格式:t=Tintial:dt:Tfinal表示仿真时间段为[Tintial,Tfinal],仿真时间步长为dtt=Tintial:Tfinal表示仿真时间段为[Tintial,Tfinal],仿真时间步长dt缺省为1t=Tfinal表示仿真时间段为[0,Tfinal],系统自动选择仿真时间步长dt若时间数组缺省(没有指定),表示系统自动选择仿真时间区间[0,Tfinal]和仿真时间步长dt。3.6Matlab问题状态方程的解初始状态响应函数initial()(3/8)Matlab问题3-3试在Matlab中计算例3-1中如下系统在[0,5s]的初始状态响应。Matlab程序m3-3如下。其中,最后一句语句plot(t,x)是以时间坐标数组t为横坐标,绘出x中存储的2维状态向量x(t)的随时间变化的轨迹。A=[01;-2-3];B=[];C=[];D=[];x0=[1;2];sys=ss(A,B,C,D);[y,t,x]=initial(sys,x0,0:5);plot(t,x)%输入状态空间模型各矩阵,若没有相应值,可赋空矩阵%输入初始状态%求系统在[0,5s]的初始状态响应%绘以时间为横坐标的状态响应曲线图3.6Matlab问题状态方程的解初始状态响应函数initial()(4/8)Matlab程序m3-3执行结果如图3-4所示。图3-4Matlab问题3-3的状态响应曲线图3.6Matlab问题状态方程的解初始状态响应函数initial()(5/8)Matlab提供的函数initial()只能计算出状态响应的计算值,若需要计算状态响应的表达式则需要根据前面介绍的符号工具箱,自己编程实现状态响应函数表达式的求解。Matlab问题3-4
试在Matlab中计算Matlab问题3-3的初始状态响应表达式。Matlab程序m3-4如下。A=[01;-2-3];sysmt;x0=[1;2];xt=expm(A*t)*x03.6Matlab问题状态方程的解初始状态响应函数initial()(6/8)Matlab程序m3-4执行结果如下。在Matlab程序m3-3中运用了绘图函数plot()。Matlab提供了非常强大的绘图功能,可以绘2维曲线图、3维曲面图、4维切片图以及动态图形(动画),其中函数plot()是主要的2维曲线绘图函数,主要调用格式为:plot(Y)plot(X,Y)plot(X,Y,LineSpec,'PropertyName',PropertyValue)xt=-3*exp(-2*t)+4*exp(-t)
-4*exp(-t)+6*exp(-2*t)例3-3的计算结果3.6Matlab问题状态方程的解初始状态响应函数initial()(7/8)第1种调用格式的输入Y为mn矩阵,其输出为矩阵Y的每一列画一条曲线,共n条曲线的曲线图。该曲线图的横坐标为1至m的自然数。对第2种调用格式,若X和Y为向量,则长度必须相等,输出为一条X为横坐标轴的曲线。若X为向量,Y为矩阵,则X的长度等于Y的行数或者列数。这时输出为Y的列向量或者行向量对应的,以X为横坐标轴的一组曲线。若Y为向量,X为矩阵,则Y的长度等于X的行数或者列数。这时输出为X的列向量或者行向量对应的,以Y为纵坐标轴的一组曲线。3.6Matlab问题状态方程的解初始状态响应函数initial()(8/8)第3种调用格式的LineSpec为指定输出曲线的线型、颜色、曲线数据点的标记符号。而'PropertyName'和PropertyValue则用于指定图的一些特性,如图名、坐标名与刻度等。3.6Matlab问题状态方程的解阶跃响应函数step()(1/2)2.阶跃响应函数step()阶跃响应函数step()可用于计算在单位阶跃输入和零初始状态(条件)下传递函数模型的输出响应,或状态空间模型的状态和输出响应,其主要调用格式为step(sys,t)[y,t]=step(sys,t)[y,t,x]=step(sys,t)其中,对第1、2种调用格式,sys为传递函数模型变量或状态空间模型变量;对第3种方式,sys为状态空间模型变量。t为指定仿真计算状态响应的时间数组,其格式与初始状态响应函数initial()一样,也可以缺省。3.6Matlab问题状态方程的解阶跃响应函数step()(2/2)第1种调用格式的输出为输出响应的图形输出,而第2、3种调用格式的输出为将输出响应、时间坐标数组、状态响应赋值给指定的数组变量。阶跃响应函数step()的使用方法与前面介绍的initial()函数相似,这里不再赘述。3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(1/10)3.任意输入的系统响应函数lsim()任意输入的系统响应函数lsim()可用于计算在给定的输入信号序列(输入信号函数的采样值)下传递函数模型的输出响应,或状态空间模型的状态和输出响应,其主要调用格式为lsim(sys,u,t,x0)[y,t,x]=lsim(sys,u,t,x0)其中,sys为传递函数模型变量或状态空间模型变量;t为时间坐标数组;u是输入信号u(t)对应于时间坐标数组t的各时刻输入信号采样值组成的数组,是求解系统响应必须给定的;3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(2/10)x0是初始状态向量。当输入的sys为传递函数模型时,x0的值不起作用,可以缺省。函数lsim()的第1种调用格式的输出为将输出响应和输入信号序列绘在一起的曲线图,第2种调用格式的输出与前面介绍的2个响应函数一样。3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(3/10)输入变量u(t)的值u可以为用户需要的任意输入函数根据时间坐标数组t进行采样获得,也可以采用Matlab中的信号生成函数gensig()产生。gensig()的调用格式为[u,t]=gensig(type,tau)[u,t]=gensig(type,tau,Tf,Ts)其中,type为选择信号类型的符号串变量;tau为以秒为单位的信号周期;Tf和Ts分别为产生信号的时间长度和信号的采样周期。gensig函数可以产生的信号类型type为正弦信号sin、方波信号square、周期脉冲信号pulse。所有信号的幅值为1。3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(4/10)Matlab问题3-5试在Matlab中计算如下系统在[0,10s]内周期为3s的单位方波输入下的状态响应
。Matlab程序m3-5如下。A=[01;-2-3];B=[0;1];C=[];D=[];x0=[1;2];sys=ss(A,B,C,D);[ut]=gensig(square,3,10,0.1)[y,t,x]=lsim(sys,u,t,x0)plot(t,u,t,x);%产生周期为3s,时间为10s,采样周期为0.1s的方波信号%计算系统在输入序列u下的响应%将输入和状态响应绘于一张图内3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(5/10)Matlab程序m3-5执行结果如图3-5所示。图3-5Matlab问题3-5的状态响应曲线图3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(6/10)Matlab提供的函数lsim()只能计算出状态响应的计算值,若需要计算状态响应的表达式则需要根据前面介绍的符号工具箱,自己编程实现状态响应函数表达式的求解。Matlab问题3-6试在Matlab中计算Matlab问题3-5的系统的单位阶跃状态响应表达式。Matlab程序m3-6如下。A=[01;-2-3];B=[0;1];x0=[1;2];ut=1;%输入ut为单位阶跃信号symsttau;%指定符号变量%求系统的状态响应函数表达式xt=expm(A*t)*x0+int(expm(A*(t-tau))*B*ut,tau,0,t)3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(7/10)Matlab程序m3-6执行结果如下。xt=-5/2*exp(-2*t)+3*exp(-t)+1/2-3*exp(-t)+5*exp(-2*t)例3-3的计算结果3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(8/10)在Matlab程序m3-6中涉及符号积分的计算函数int(),该函数的调用格式为:R=int(S)R=int(S,v)R=int(S,a,b)R=int(S,v,a,b)其中,输入S为待求积分的符号表达式,v为积分变量,a和b分别为积分变量的下限和上限。符号积分函数int()的意义为求解符号表达式S对应于积分变量v在积分区间[a,b]内的积分,积分结果R为符号表达式。3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(9/10)符号积分函数int()的积分变量v和积分上限a与下限b可以缺省。当v缺省时,则积分变量为程序中指定的惟一符号变量,或由符号工具箱符号变量自动确定规则确定符号表达式S的符号变量.符号工具箱符号变量自动确定规则为:符号变量为符号x或与x最近的单文字符号,如y,z,w,v,…。当积分限a与b缺省时(只能同时缺省),则符号积分函数int()求解为S的不定积分式。3.6Matlab问题状态方程的解任意输入的系统响应函数lsim()(10/10)在Matlab程序m3-6中符号积分计算int(expm(A*(t-tau))*B*ut,tau,0,t)中,待积分函数为eA(t-tau),积分变量指定为tau,积分区间为[0,t]。该积分式计算的是零状态响应函数的表达式,进行的是卷积的符号计算。3.6Matlab问题状态方程的解任意输入的符号响应函数sym_lsim()(1/9)4.任意输入的符号响应函数sym_lsim()Matlab提供的函数lsim()只能计算出状态响应的计算值,若需要计算状态响应的表达式,则需要根据前面介绍的符号工具箱,自己编程实现状态响应函数表达式的求解。编著者开发了专门进行任意输入下系统响应函数的符号表达式的符号计算函数sym_lsim(),以计算任意输入下的线性系统响应函数。3.6Matlab问题状态方程的解任意输入的符号响应函数sym_lsim()(2/9)sym_lsim()的主要调用格式为:[yt,xt]=sym_lsim(sys,x0,in_signal,a,b,amplit)[yt,xt]=sym_lsim(sys,x0,in_signal,a,b)[yt,xt]=sym_lsim(sys,x0,in_signal)其中,sys为系统状态空间模型;x0、amplit、a和b分别为系统的初始状态、输入信号幅值、求解的系统状态轨迹的起始时间和结束时间;in_signal为输入信号符号串。输出项yt和xt的格式为符号表达式(矩阵)。由于采用符号工具箱计算,因此,x0,a,b和amplit可以为数值与数值变量,也可以为符号表达式或符号变量。3.6Matlab问题状态方程的解任意输入的符号响应函数sym_lsim()(3/9)在sym_lsim中,in_signal可以是表示系统输入函数的符号表达式或符号变量,但为方便输入常用的阶跃信号和脉冲信号,分别规定这两类输入信号的in_signal为step和impulse。通过in_signal和amplit这两个输入项,可以实现任意的系统输入信号设置。如,当输入信号u(t)=sin(2t+0.5)+e-3t时,in_signal为符号表达式sin(2*t+0.5)+exp(-3*t)当输入信号为5个单位脉冲信号时,in_signal和amplit分别为in_signal=impulse;amplit=53.6Matlab问题状态方程的解任意输入的符号响应函数sym_lsim()(4/9)Matlab问题3-7试在Matlab中计算如下系统在输入u(t)=e-2t下的输出响应表达式。Matlab程序m3-7如下。A=[01;-2-3];B=[0;1];C=[10];D=0;x0=[1;2];sys=ss(A,B,C,D);symst;yt=sym_lsim(sys,x0,exp(-2*t),0,t,1)%指定符号变量%计算输入exp(-2t)下系统的输出响应函数3.6Matlab问题状态方程的解任意输入的符号响应函数sym_lsim()(5/9)Matlab程序m3-7执行结果如下。在Matlab中,计算得到符号表达式后,可以使用函数subs()和ezplot()很方便地求取所需要的函数值和绘出函数图形。下面加以简单介绍.yt=5*exp(-t)-4*exp(-2*t)-t*exp(-2*t)3.6Matlab问题状态方程的解任意输入的符号响应函数sym_lsim()(6/9)1)
函数subs()。函数subs()可用于符号表达式的函数值计算和变量代换,其主要调用格式为R=subs(S,new)R=subs(S,old,new)其中,S为要计算或代换的符号表达式(矩阵);old为要计算或被代换的符号变量;new为要计算的变量的值或代换的新变量。在第1种调用格式中没有指定需计算或代换的变量,系统自动根据符号变量自动确定规则确定符号表达式S的变量。3.6Matlab问题状态方程的解任意输入的符号响应函数sym_lsim()(7/9)如,欲计算Matlab程序m3-7计算好的输出响应的符号表达式yt在t=0.6时刻的值,只需执行subs(yt,t,0.6)即可得系统输出响应y(t)在t=0.6时刻的值为1.3586。3.6Matlab问题状态方程的解任意输入的符号响应函数sym_lsim()(8/9)2)
函数ezplot()。符号表达式绘图函数ezplot()可以直接绘制符号表达式所表示的函数的2维曲线图,其主要调用格式为ezplot(f,[min,max])ezplot(f,[xmin,xmax,ymin,ymax])其中,f为给定的符号表达式;[min,max]为需绘图曲线的自变量的区间;[xmin,xmax,ymin,ymax]为绘图曲线的2维变量的区间。当[min,max]缺省时,系统自动设置绘图区间为[-2,2]。3.6Matlab问题状态方程的解任意输入的符号响应函数sym_lsim()(9/9)如,欲绘出Matlab程序m3-7得到的符号表达式yt在[0,4s]内的曲线,只需执行ezplot(yt,[0,4])即可得系统输出响应y(t)在[0,4s]内的曲线图如图3-6所示。图3-6输出响应的符号表达式的函数图3.6Matlab问题状态方程的解连续系统的离散化(1/6)3.6.3连续系统的离散化Matlab语言提供了连续系统经采样而进行离散化的函数c2d()。该函数的功能为将连续系统的传递函数模型和状态空间模型变换为离散系统的传递函数模型和状态空间模型,其主要调用格式为sysd=c2d(sys,Ts)sysd=c2d(sys,Ts,method)其中,sys为输入的连续系统传递函数模型或状态空间模型;sysd为离散化所得的离散系统传递函数模型或状态空间模型;3.6Matlab问题状态方程的解连续系统的离散化(2/6)Ts为采样周期;method为离散化方法选择变量,它可以为zoh、foh、tustin和matched等,分别对应于基于0阶和1阶保持器的离散化法、双线性法和零极点匹配法。与3.4.1节精确离散法对应的method的值为zoh,其意义为采样系统的输入信号采样后将通过0阶保持器。3.6Matlab问题状态方程的解连续系统的离散化(3/6)Matlab问题3-8试在Matlab中计算例3-11的如下系统在采样周期为0.1s时的离散化状态方程。Matlab程序m3-8如下。A=[01;0-2];B=[0;1];C=[];D=[];Ts=0.1;sys=ss(A,B,C,D);sys_d=c2d(sys,Ts,zoh)%赋值采样时间%对连续系统sys进行离散化,其中保持器为0阶3.6Matlab问题状态方程的解连续系统的离散化(4/6)Matlab程序m3-8执行结果如下。a=x1x2x110.09063x200.8187b=u1x10.004683x20.09063Samplingtime:0.1Discrete-timemodel.3.6Matlab问题状态方程的解连续系统的离散化(5/6)对近似离散法,可以根据近似离散化公式,直接编程实现。Matlab问题3-9试用近似离散化方法计算Matlab问题3-8的系统的离散化状态方程。Matlab程序m3-9如下。A=[01;0-2];B=[0;1];C=[];D=[];Ts=0.1;[n,m]=size(A);A_d=eye(n)+A*Ts;B_d=B*Ts;sys_d=ss(A_d,B_d,C,D,Ts)
%查询矩阵A的各维的大小%计算近似离散法的系统矩阵%计算输入矩阵3.6Matlab问题状态方程的解连续系统的离散化(6/6)Matlab程序m3-9执行结果如下。a=x1x2x110.1x200.8b=u1x10x20.1Samplingtime:0.1Discrete-timemodel.3.6Matlab问题状态方程的解线性定常离散系统的状态空间模型求解(1/5)3.6.4线性定常离散系统的状态空间模型求解
Matlab提供的初始状态响应函数initial()、阶跃响应函数step()和任意输入的系统响应函数lsim()也同样适用于线性定常离散系统,其使用方法与连续系统时基本一致。下面简单介绍如何运用任意输入的系统响应函数lsim()计算线性定常离散系统的响应。3.6Matlab问题状态方程的解线性定常离散系统的状态空间模型求解(2/5)在计算离散系统的系统响应时,函数lsim()的主要调用格式为lsim(sys,u,t,x0,type)[yt,t,xt]=lsim(sys,u,t,x0,type)其中sys为离散系统的传递函数模型或状态空间模型;t为时间坐标数组;u为时间坐标数组t指定时刻的输入信号序列,其采样周期需与离散系统模型sys的采样周期定义一致;x0为初始状态;type为输入信号采样保持器的选择变量,type=zoh和foh分别表示为0阶和1阶采样信号保持器。3.6Matlab问题状态方程的解线性定常离散系统的状态空间模型求解(3/5)若type缺省,Matlab将采用高阶保持器对输入的采样信号进行光滑处理后,再进行系统响应求解。对应于前面3.5.1节求取离散系统的状态响应方法,type变量应为zoh。3.6Matlab问题状态方程的解线性定常离散系统的状态空间模型求解(4/5)Matlab问题3-10试在Matlab中计算例3-14的线性离散系统在采样周期为0.1s,系统输入为sin(t)时的[0,6s]的状态响应。Matlab程序m3-10如下。G=[01;-0.16-1];H=[1;1];C=[];D=[];x0=[1;-1];Ts=0.1;sys=ss(G,H,C,D,Ts);[u,t]=gensig(sin,2,6,Ts);[y,t,x]=lsim(sys,u,t,x0,zoh)plot(t,u,t,x);%定义采样周期%建立离散系统状态空间模型%产生周期为2s,时间为6s的正弦信号%计算离散系统在给定输入下的响应%将输入与状态绘于一张图内3.6Matlab问题状态方程的解线性定常离散系统的状态空间模型求解(5/5)Matlab程序m3-10执行结果如图3-7所示。图3-7Matlab问题3-10的状态响应曲线图根据符号计算函数sym_lsim()的思想和源程序,读者可自行扩展,用于求解计算任意输入的线性定常离散系统的状态响应的符号表达式。3.6Matlab问题状态方程的解线性定常系统的运动分析的符号计算和仿真平台(1/6)3.6.5线性定常系统的运动分析的符号计算和仿真平台
根据本章的主要内容和线性定常系统的运动分析的需要,编著者基于Matlab的图形用户界面(GUI)技术,开发了一个线性定常系统运动分析的符号计算和图形仿真软件lti_analysi)。该软件的主要功能有
可以对连续和离散2种线性定常系统运动的状态、输出响应实现符号计算和数值计算2种运动轨迹分析,系统可以是SISO的,也可以是MIMO的。系统的输入信号可以是常用的阶跃、脉冲、正弦、方波、白噪声等,特点的是可以实现任意输入信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多媒体课件制作教案
- 第六章氧族元素环境保护教案(人教版)
- 研发质量管理办法
- 生态养殖山坡地租赁合同
- 六年级计算机上册教案
- 农业设施地面施工合同
- 农业发展资金扶持办法
- 绿色建筑房产交易合同样本
- 拆除消防班组施工合同
- 工业区护栏施工合同模板
- 部队战时政治工作-PPT课件
- 平板显示技术:TFT-LCD工艺
- 动火安全作业票填写模板2022年更新
- 外研版九年级英语上册全套ppt课件
- 沟槽开挖支护专项施工方案(46页)
- Matlab基本介绍
- 部编版四年级语文上册专项复习课外阅读专项
- 横道图施工进度计划
- 110kV大司线更换43#44#导地线及横担施工方案
- 新国标电动汽车充电CAN报文协议解析
- abaqus-铝合金A357切削加工有限元模拟
评论
0/150
提交评论