资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第2章 线性系统动态分析,21,引言,22,线性定常齐次状态方程的解,23,状态转移矩阵的性质及其计算方法,24,线性定常非齐次状态方程的解,25,线性时变系统状态方程的解,26,离散状态方程的解,27,连续状态方程的离散化,28,MATLAB在线性系统动态分析中的应用,21,引言,对线性系统动态性能进行定量分析,实质上是求解其动态数学模型方程并分析解的性质,有传递函数法和状态空间分析法两种方法。状态空间分析法是现代控制理论的主要分析方法,其直接将系统的微分方程或差分方程化为描述系统输入,、,输出与内部状态关系的动态数学模型状态方程,运用矩阵方法求解状态方程,直接,确定其动态响应,,研究系统状态方程的解法及分析解的性质是现代控制理论的主要任务之一。,22 线性定常齐次状态方程的解,线性定常系统在输入 为零时,由初始状态引起的运动称为自由运动,其可用式(,2-1,)所示的齐次状态方程描述,即:,(,2-1,),式中,线性定常系统的,n,维状态向量;,n,维状态向量在 初始时刻的初值;,线性定常系统的 维系统矩阵。,式(,2-1,)的解 (其中 )称为自由运动的解或零输入响应。,设式(,2-1,)的解为式(,2-5,)所示的向量幂级数,即,(,2-5,),将式(,2-5,)代入式(,2-1,),得,(,2-6,),若所设解为真实解,则式(,2-6,)两边同幂次项系数应相等,即,(,2-7,),将初始条件 代入式(,2-5,),得 ,则式(,2-1,)的解为,(,2-8,),式(,2-8,)中,,I,为,n,阶单位矩阵。定义式(,2-8,)括号中的,n,阶矩阵无穷级数为矩阵指数 ,即,(,2-9,),式中,规定 。,则式(,2-1,)的解可用系统矩阵,A,的矩阵指数表达为,(,2-10,),式(,2-10,)表明,线性定常系统在无输入作用即,时,任一时刻,t,的状态 是由起始时刻,的初始状态 在 时间内通过矩阵指数 演化而来的,。,鉴于此,将矩阵指数称为状态转移矩阵,并记为,(,2-11,),状态转移矩阵是现代控制理论最重要概念之一,由此可将齐次状态方程的解表达为统一形式,即,(,2-12,),式(,2-12,)的物理意义是:自由运动的解仅是初始状态的转移,状态转移矩阵包含了系统自由运动的全部信息,其唯一决定了系统中各状态变量的自由运动。,若 ,则对应初始状态为 ,自由运动的解为,(,2-13,),23 状态转移矩阵的性质及其计算方法,2.3.1 线性定常系统状态转移矩阵的运算性质,1,证明,这一性质表明,,满足齐次状态方程,,且 与 满足交换律,。,2,这一性质可由,的定义式中令 得证。,结合性质,1,,有,gtext(x3),A=4,0,0;0,3,1;0,1,3;,由矩阵指数性质1及导数运算法则,式(2-38)即为,联立求解式(2-33)及式(2-34),可求得待定的标量函数,sx(2,1)=x(1);%sx是与x同维的列向量,时变齐次状态方程式(2-48)的解为,解 MATLAB Program 2_4a建立了描述系统状态方程的m函数。,满足如下矩阵微分方程和初始条件,对多输入系统,u为数值矩阵,其列数等于输入信号数,第j个输入信号对应于t的离散序列构成u的第j列,行数等于时间向量t的维数。,应该指出,时变系统状态转移矩阵用,方法二 运用拉普拉斯变换法求解,1 线性定常系统状态转移矩阵的运算性质,联立求解式(2-33)及式(2-34),可求得待定的标量函数,方法二 应用待定系数法求解,function sx=ode_example(t,x)%sx为状态列向量x的导数,3,证明,这一性质表明,,状态转移矩阵具有分解性,。,由此分解性,易推知,若,n,为整数,则 。,由二项式定理,有,故,4,证明,由状态转移矩阵的分解性,有,又由逆矩阵定义得,或,这一性质表明,,状态转移矩阵非奇异,系统状态的转移是双向、可逆的,。,5,证明,由状态转移矩阵的分解性,有,这一性质表明,,系统状态的转移具有传递性,。,232线性定常系统状态转移矩阵的计算方法,级数展开法,拉普拉斯变换法,利用特征值标准型及相似变换计算,化为,A,的有限项多项式计算,直接根据矩阵指数的定义式计算,即,(,2-14,),级数展开法具有编程简单、适合于计算机数值求解的优点,但若采用手工计算,因需对无穷级数求和,难以获得解析表达式。,设 ,对式(,2-1,)两边取拉普拉斯变换得,取拉普拉斯反变换,得 时,式(,2-1,)的解为,(,2-15,),与式(,2-13,)对比,得,(,2-16,),1),若,n,阶方阵,A,的特征值为,,且互异,设对应的变换矩阵为,(,2-17,),式中,列向量,V,i,为对应于特征值 的特征向量,且有,则,(,2-18,),2),若,n,阶方阵,A,有重特征值时,只有在,A,有,n,个线性无关的特征向量的条件下,,A,才可能经相似变换化为对角线标准型 ;否则,存在非奇异变换阵,P,,使相似变换后的矩阵,为约当标准形,J,,即,J,=,(,2-23,),不失一般性,设,(,2-24,),式中,(,i,=1,2,l,)为形如式(,2-25,)所示的 维约当块,即,(,2-25,),式(,2-25,)中的 (,i,=1,2,l,)为方阵,A,的,重特征值,且,对应于式(,2-23,),有,(,2-26,),式中,维子矩阵 (,i,=1,2,l,)为式(,2-25,)所示约当块 的矩阵指数。,(,2-27,),A,的有限项多项式计算,1),凯莱哈密顿(CayleyHamilton)定理,n,阶方阵,A,满足其特征方程,,即设,n,阶方阵,A,的特征方程为,则,2)待定系数法计算,根据凯莱哈密顿定理,对,n,阶方阵,A,,当,时,可用,A,的(,n-,1,)次多项式表示,故 可用,A,的(,n-,1,)次多项式表示,即,(,2-28,),式中,为待定的一组关于,t,的标量函数,其求解需要先计算,A,的特征值。,若,n,阶方阵,A,的特征值为 ,且互异,则采用式(,2-17,)的模态矩阵,V,对式(,2-28,)作相似变换,得,(,2-29,),由式(,2-20,)、式(,2-22,),式(,2-29,)化简为,(,2-30,),将式(,2-30,)展开,得,(,2-31,),式(,2-31,)为关于 的,n,个独立方程,解之,得,(,2-32,),若,n,阶方阵,A,有重特征值,这时由式(,2-31,)构成的关于 的独立方程数将小于,n,,必须补充新的方程。,不失一般性,设,A,有一个,m,重的特征值 ,其余(,n,-,m,),个特征值 为单特征值,则由式(,2-31,)构成的关于 的独立方程数为,(,n,-,m,+1),个,即,(233),这时可对下式,两边在 处从一阶到,m,-1阶逐阶求导(,m,-1)次,以补充(,m,-1)个独立方程,即,联立求解式,(2-33),及式,(2-34),可求得待定的标量函数,。,【例2-1】,已知 ,求,解,方法一 运用级数展开法求解,方法二 运用拉普拉斯变换法求解,方法三 利用特征值标准型及相似变换求解,矩阵,A,的特征方程,特征值 ,可求得其对应的特征向量分别为,,,则,则,方法四 待定系数法计算,式中,则,【例2-2】,已知,及相似变换、待定系数法,求,分别应用特征值标准型,解,矩阵,A,的特征方程,特征值 ,(二重),方法一 应用特征值标准型及相似变换计算,简单计算表明,,A,只有2个线性无关的特征向量,故其不能与对角阵相似,只能与约当阵相似,易求得相似变换矩阵,,,则,方法二 应用待定系数法求解,因为 ,由式(,2-31,)仅构成两个关于 的独立方程,即,需对下式,两边在 处求一阶导数,以补充一个独立方程,即,联立求解,得,则,【,例2-4,】已知线性定常系统 的状态转移矩阵,求系统矩阵,A,解,方法一,由线性定常系统状态转移矩阵的运算性质,:,方法二,由线性定常系统状态转移矩阵的运算性质,:,【例2-5】,线性定常系统齐次状态方程为 ,其中,A,为,2,2,的常数阵。,已知当 时,,状态方程的解 ;,当,时,,状态方程的解 ,,求系统状态转移矩阵 及系统矩阵,A,解,对应初始状态 ,自由运动的解为:,由题意,得,即,则,2,4,线性定常非齐次状态方程的解,线性定常系统在输入信号作用下的运动称为强迫运动,其可用式(,2-36,)描述,(,2-36,),非齐次状态方程 可改写为式(,2-37,),即,(,2-37,),式(,2-37,)两边左乘 ,得,(,2-38,),由矩阵指数性质,1,及导数运算法则,式(,2-38,)即为,(,2-39,),对式(2-39)两边在 到,t,闭区间进行积分,得,(,2-40,),即,(,2-41,),式(,2-41,)两边左乘 ,由矩阵指数性质,4,及性质,3,得式(,2-36,)的解为,(,2-42a,),由式(,2-11,),式(,2-42a,)也可写为,(,2-42b,),若 ,对应初始状态为 ,则非齐次状态方程的解为,(,2-43,),事实上,对初始时刻 的情况,也可应用拉普拉斯变换法求解非齐次状态方程,即,(,2-46,),【例2-6】,已知系统状态方程为,设初始时刻 时,=,0,,,试求 为单位阶跃函数时系统的响应。,解,方法一,应用式(2-43)直接求解,在例2-1中,已求得此系统的状态转移矩阵,则根据式(,2-43,)得,方法二,应用拉普拉斯变换法求解,在例2-1中,已求得,则根据式(,2-46,)得,2,5,线性时变系统状态方程的解,线性时变系统的结构参数随时间而变化,其一般形式的状态方程为时变非齐次状态方程,即,(,2-47,),式中,、分别为 、时变实值矩阵,若输入控制 ,式(,2-47,)则变为时变齐次状态方程,即,(,2-48,),时变齐次状态方程式(,2-48,)的解为,(,2-53,),式中,为式(,2-48,)所描述时变系统状态转移矩阵。将式(2-53)代入式(2-48)得,(,2-54,),由式(,2-53,)及式(,2-54,)可推知状态转移矩阵,满足如下矩阵微分方程和初始条件,(,2-55,),应用经典控制理论分析时变系统较为困难,而采用状态空间分析法的优点之一在于可将线性定常系统的求解方法推广到线性时变系统,且,应用状态转移矩阵的概念和性质,可使时变系统的解在形式上与定常系统统一,即自由运动均可视为初始状态的转移。,应该指出,时变系统状态转移矩阵用,表示,反映其为,t,和 的函数;但定常系统状态转移矩阵用 表示,反映其为 的函数。,2.8 MATLAB,在线性系统动态分析中的应用,2.8.1,应用MATLAB计算线性定常系统的矩阵,指数(状态转移矩阵),2.8.2,应用MATLAB 求定常系统时间响应,2.8.3,应用MATLAB 变连续状态空间模型为离,散状态空间模型,2.8.1 应用MATLAB计算矩阵指数,1.应用MATLAB 符号数学工具箱求矩阵指数闭合解析式,基于节矩阵指数的拉普拉斯变换求解法,可调用,MATLAB,符号数学工具箱(,Symbolic Math Toolbox,)中的符号运算函数先算出“预解矩阵”,再对“预解矩阵”进行拉普拉斯反变换即求得 。,另外,,MATLAB,符号数学工具箱中有专用于计算矩阵指数的指令,expm,()可调用。,【例2-13】,已知 ,应用,MATLAB求,%MATLAB Program 2_1a,syms s t%,定义基本符号变量s 和t,A=4,0,0;0,3,1;0,1,3;,FS=inv(s*eye(3)-A);%,求预解矩阵,eAt=ilaplace(FS,s,t);,%,求,eAt=simplify(eAt)%,化简 的表达式,解,MATLAB Program 2_1a,给出了基于拉普拉斯变换,求,的,MATLAB,程序。,2.应用数值矩阵的指数运算函数expm()求 对应于 (为某一常数)的值,MATLAB Program 2_2,给出了调用,expm,()求例2-13中矩阵,A,的矩阵指数 对应于 的值 的,MATLAB,程序。,%MATLAB Program 2_2,A=4,0,0;0,3,1;0,1,3;,T=0.1;,eAT=expm(A*T),2.8.2 应用MATLAB 求定常系统时间响应,常微分方程数值解一般使用逐步积分的方法实现,RungeKutta法是应用最多的一种微分方程数值解法。MATLAB提供的ode23()、ode45()是分别采用2/3阶、4/5阶RungeKutta法的常微分方程数值求解的函数,一般ode45()较ode23()运算速度快,两者调用格式相同,即,其中,xfun为由,m,函数定义的一阶微分方程组的,m,函数名,该,m,函数必须以状态向量,x,的一阶导数为输出。若原方程为高阶微分方程,,,应通过第1章的“实现”方法将其转换为一阶微分方程组,即状态空间表达式;,t,0和,tf,分别为积分的起始和终止时间,单位为秒;,x,0,为状态向量的初始值;,t,和,x,均为返回值,其中,t,为离散时间列向量;,x,为解向量构成的矩阵,其第,j,列为第,j,个状态变量与,t,相对应的解向量,,,j,=1,2,n,。,【例2-15】,已知系统状态空间表达式为,设,x,(0),=,0,,,试求,u,(,t,)=1(,t,)为单位阶跃函数时系统时间响应的数值解。,解,MATLAB Program 2_4a,建立了描述系统状态方程的,m,函数。,%MATLAB Program 2_4a,%,function sx=ode_example(t,x),%sx为状态列向量,x,的导数,sx(1,1)=-10*x(1)-35*x(2)-50*x(3)-24*x(4)+1;,%sx应按状态方程编写,sx(2,1)=x(1);,%,sx是,与,x,同维的列向量,sx(3,1)=x(2);,sx(4,1)=x(3);,将,MATLAB Program 2_4am,文件,且将保存ode_example.m的路径设置成当前路径。,MATLAB Program 2_4b,为调用求解函数求状态方程和输出响应数值解的程序,图,2-4,所示为状态方程和输出响应数值解曲线。,%MATLAB Program 2_4b,x0=0;0;0;0;,%设置初值条件,t0=0;tf=6;tspan=t0,tf,%设置积分起始和终止时间,t,x=ode45(,ode_example,tspan,x0);,%,调用,求解函数求状态方程,数值解,y=24*x(:,4);,%据输出方程求输出,响应的数值解,subplot(1,2,1),plot(t,x(:,1),k,t,x(:,2),t,x(:,3),:b,t,x(:,4),-k,),%绘状态方程,数值解曲线,gtext(x1),gtext(x2),gtext(x3),gtext(x4),subplot(1,2,2),plot(t,y,k,),%绘输出响应数值解曲线,gtext(y),图,2-4,状态方程和输出响应数值解曲线,2状态方程的解析解,MATLAB,Symbolic Math Toolbox,提供的,dsolve,()为求常微分方程解析解的指令,其调用格式为,S=dsolve,(,eqn1,,,eqn2,,),其中,eqn1,eqn2,为输入参数,其为描述常微分方程、初始条件及独立变量的字符表达式。微分方程是必不可少的输入参数,多个方程或初始条件可在一个输入参数内联立输入,且以逗号分隔;若独立变量默认,则小写字母,t,为独立变量;若要定义其它独立变量,则由全部输入参数eqn1,eqn2,中的最后一个参数定义。,在输入参数中,描述常微分方程规定用字符,D,代表对独立变量的导数(因此,用户所定义的字符变量不应含有字符,D,),例如若,t,为独立变量,,y,为,t,的函数,则,D,y,代表,d,y,/d,t,,D2,y,代表,,,D3,y,代表,;初始条件可采用形如y(a)=b或Dy(a)=b的字符(串)表达式给出。,S,为返回的存放符号微分方程解的构架数组。,若原方程为高阶微分方程,应通过第1章的“实现”方法将其转换为一阶微分方程组,即状态空间表达式;,两边在 处从一阶到m-1阶逐阶求导(m-1)次,以补充(m-1)个独立方程,即,可用A的(n-1)次多项式表示,故 可用A的(n-1)次多项式表示,即,应用数值矩阵的指数运算函数expm()求 对应于 (为某一常数)的值,sx(1,1)=-10*x(1)-35*x(2)-50*x(3)-24*x(4)+1;%sx应按状态方程编写,t0=0;tf=6;tspan=t0,tf%设置积分起始和终止时间,只有在A有n个线性无关的特征向量的条件下,A才可能经相似变换化为对角线标准型 ;,%MATLAB Program 2_2,线性时变系统的结构参数随时间而变化,其一般形式的状态方程为时变非齐次状态方程,即,%MATLAB Program 2_6a,1 线性定常系统状态转移矩阵的运算性质,级数展开法具有编程简单、适合于计算机数值求解的优点,但若采用手工计算,因需对无穷级数求和,难以获得解析表达式。,24 线性定常非齐次状态方程的解,特征值 ,(二重),的初始状态 在 时间内通过矩阵指数 演化而来的。,解 矩阵A的特征方程,3 应用MATLAB 变连续状态空间模型为离,A=4,0,0;0,3,1;0,1,3;,MATLAB Control System Toolbox,提供了连续系统单位阶跃响应计算函数,step(),、单位脉冲响应计算函数,impulse(),、零输入响应计算函数,initial(),、任意输入(包括系统初始状态)响应计算函数,lsim(),,与此对应,,dstep(),、,dimpulse(),、d,initial(),、d,lsim(),分别为计算离散系统单位阶跃响应、单位脉冲响应、零输入响应、任意输入(包括系统初始状态)响应的函数。,例如,若给定线性定常连续系统、离散系统分别如式(,2-83,)、式(,2-84,)所示,则,执行,step(,A,,,B,,,C,,,D,),指令,,可得一组单位阶跃响应曲线,每条曲线对应于式(,2-83,)所示连续系统的输入,/,输出组合即在某一输入端单独施加单位阶跃信号作用下的某一输出响应,时间向量,t,的范围自动设定,;,执行,step(,A,,,B,,,C,,,D,,,t,),指令与执行,step(,A,,,B,,,C,,,D,),指令一样,可得一组单位阶跃响应曲线,但时间向量,t,是由用户设定的,;,执行,step(,A,B,C,D,,,iu),指令,可得式(,2-83,)所示连续系统从第,iu,个输入到所有输出的单位阶跃响应曲线;,执行,y,x,t,=step(,A,B,C,D,,,iu),指令,,可得式(,2-83,)所示连续系统从第,iu,个输入到所有输出,y,及状态,x,的单位阶跃响应数据,且返回函数自动设定的时间向量,t,,但不绘制响应曲线;,执行dinitial(,G,H,C,D,x,0,)指令,可得式(,2-84,)所示离散系统每一个输出的零输入响应曲线,取样点数由函数自动设定;,执行,lsim,(,A,B,C,D,u,t,x,0,)指令可针对系统初始状态,x,0和输入,u,绘制系统所有输出(全)响应曲线,其中,t,为用户设定的线性等间距的时间向量;对多输入系统,u,为数值矩阵,其列数等于输入信号数,第,j,个输入信号对应于,t,的离散序列构成,u,的第,j,列,行数等于时间向量,t,的维数。,【例2-17】,设双输入双输出系统状态空间表达式为,且设 、,,,系统初始状态为零。,1)分别求,、,单独作用下系统的输出响应;,2),求 和 共同作用下系统的输出响应。,解,1,),MATLAB Program 2_6a,为调用,step,()函数求,、,单独作用下系统输出响应曲线的程序,图2-5为程序运行结果。,%MATLAB Program 2_6a,A=-1,-1;25,-2;B=1,1;0,2;,C=1,0;0,1;D=0,0;0,0;,step(A,B,C,D),grid,图2-5 、单独作用下系统输出响应,2,),MATLAB Program 2_6b,为求 和 共同作用下系统输出响应的,MATLAB,程序,图2-6为程序运行结果。,%MATLAB Program 2_6b,A=-1,-1;25,-2;B=1,1;0,2;,C=1,0;0,1;D=0,0;0,0;,t=0:0.01:4;,%生成时间向量t,LT=length(t);,%求时间向量t的维数(长度),u1=ones(1,LT);,u2=ones(1,LT);,%生成单位阶跃信号对应于向量t的离散,序列,u1和u2均为与向量t同维的向量,u=u1;u2;,%u1和u2的转置分别构成u的第1和第2列,lsim(A,B,C,D,u,t),grid,图2-6 和 共同作用下系统输出响应,
展开阅读全文