线性系统状态空间分析的MATLAB实现.doc_第1页
线性系统状态空间分析的MATLAB实现.doc_第2页
线性系统状态空间分析的MATLAB实现.doc_第3页
线性系统状态空间分析的MATLAB实现.doc_第4页
线性系统状态空间分析的MATLAB实现.doc_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四川师范大学本科毕业论文线性系统状态空间分析的MATLAB实现学生姓名院系名称工学院专业名称电气工程及其自动化班 级2008 级 1 班学 号2008180124指导教师杨 楠完成时间年 月 日线性系统状态空间分析的MATLAB实现内容摘要线性系统的状态空间分析在20世纪50年代航天技术的推动下得到迅速发展,现代控制理论在上世纪60年代得到迅速发展。现代控制理论的重要标志和基础就是状态空间法。现代控制理论用状态空间法描述输入、状态、输出等各种变量间的因果关系。本文主要研究线性系统状态空间分析的MATLAB实现,包括用MATLAB求解系统状态方程、对系统状态方程进行线性变换的实现方法、对线性系统的可控性与可观测性进行判断的实现方法、将线性系统转换成能控标准形和能观标准形的方法、实现极点配置的方法,并利用MATLAB 举例进行论证。关键词:线性系统 状态空间 MATLAB The enforce of using MATLAB to analyze the state space of the linear systemAbstractUnder the impulsion of the space technology in the 50s of the last century, the space analysis of the linear system developed speedily, and also did the modern control theory in the 60s of the last century. The important symbol and foundation of the modern control theory is the state space law. The modern control theory use the state space law to describe the causal relationship of the input, state and output. The article discussed how to use MATLAB software to enforce t the space analysis of the linear system, include use MATLAB software to solve the equations of the system mode, enforce the linear transformation of the equations of the system mode, study the way of judging the controllability and measurable of the system mode, and also study the way to switch the system mode into controllable normal form and measurable normal form, and study the way to enforce the pole allocation as well, and use MATLAB software to make examples to expound and prove at the same time.Keywords: linear system state space MATLAB 目录内容摘要- 2 -1 MATLAB简介- 4 -1.1 MATLAB概况- 4 -1.2 MATLAB 产生的历史背景- 4 -1.3 MATLAB 功能和组成简介- 5 -2 线性系统状态空间的描述- 6 -2.1 线性系统的描述- 6 -2.2 状态空间的描述- 6 -2.3 线性定常系统状态空间表达式的建立- 7 -3 系统状态方程求解- 12 -3.1 线性定常系统齐次方程求解- 12 -3.2 线性定常系统非齐次方程求解- 14 -4 系统状态方程的线性变换- 17 -4.1 等价系统方程- 17 -4.1.1 线性定常系统的描述- 17 -4.1.2 线性时变系统的描述- 17 -4.2 线性变换的基本特性- 19 -4.2.1 不改变系统特征值- 19 -4.2.2 经过线性变换不改变系统的传递函数矩阵- 19 -4.3 状态空间方程的线性变换- 20 -4.3.1 化矩阵A为对角形- 20 -4.3.2 化矩阵A为约当形- 22 -4.3.3 矩阵A为模态形- 24 -5 线性系统的能控性与能观性的判断- 25 -5.1 线性系统的可控性及其判据- 25 -5.1.1 能控性的定义- 25 -5.1.2 能控性判据- 26 -5.2 线性系统的可观性及其判据- 28 -5.2.1 能观测性的定义- 28 -5.2.2 能观测性判据- 29 -6 线性系统能控标准形和能观标准形的转化- 31 -6.1 线性系统能控标准形的转化- 31 -6.2 线性系统能观测标准形的转化- 34 -7 极点配置- 37 -结束语- 41 -参考文献- 42 -线性系统状态空间分析的MATLAB实现1 MATLAB简介1.1 MATLAB概况MATLAB 是矩阵实验室(Matrix Laboratory)之意。它是除具备卓越的数值计算能力以外,还提供专业水平的符号计算,文字处理,可视建模仿真和实时控制等功能的一款功能强大的计算机软件。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用 C,FORTRAN 等语言完成相同的事情简捷得多。当前流行的 MATLAB 5.3/Simulink 3.0 包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充 MATLAB 的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。 开放性使 MATLAB 广受用户欢迎.除内部函数外,所有 MATLAB 主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。1.2 MATLAB 产生的历史背景在 70 年代中期,Cleve Moler 博士和其同事在美国国家科学基金的资助下开发了调用 EISPACK 和 LINPACK 的 FORTRAN 子程序库。EISPACK 是特征值求解的 FOETRAN 程序库,LINPACK 是解线性方程的程序库。到 70 年代后期,身为美国 New Mexico 大学计算机系主任的Cleve Moler,编写了EISPACK 和 LINPACK 的接口程序。Cleve Moler 给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实验室(laboratory)两个英文单词的前三个字母的组合,以后的数年里,MATLAB 在多所大学里作为教学辅助软件使用,作为面向大众的免费软件广为流传。 1983 年,Cleve Moler 到 Standford 大学讲学,MATLAB 深深地吸引了工程师John Little,他和Cleve Moler,Steve Bangert 一起,用C语言开发了第二代专业版。这一代的MATLAB 语言同时具备了数值计算和数据图示化的功能。 1984 年,Cleve Moler 和 John Little 成立了Math Works 公司,正式把 MATLAB 推向市场,并继续进行MATLAB 的研究和开发。在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类,一类是数值计算型软件,如MATLAB,Xmath,Gauss 等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,Mathematical,Maple 等, 这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时,效率较低。MathWorks 公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件 MATLAB。经过多年的国际竞争,MATLAB 以经占据了数值软件市场的主导地位。MATLAB 的出现,为各国科学家开发学科软件提供了新的基础。在 MATLAB 问世不久的80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。MathWorks 公司 1993年推出了 MATLAB 4.0 版 ,1995年推出 4.2C 版(for win3. X),1997 年推出5.0版。1999 年推出 5.3版。MATLAB 5.X较 MATLAB 4.X无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF 格式,在Netscape 3.0 或 IE 4.0及以上版本,Acrobat Reader 中可以方便地浏览。 时至今日,经过 MathWorks 公司的不断完善,MATLAB 已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,MATLAB 已经经受了多年考验。在欧美等高校,MATLAB 已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB 被广泛用于科学研究和解决各种具体问题。1.3 MATLAB 功能和组成简介 MATLAB 产品组是支持从概念设计、算法开发、建模仿真、实时实现的理想的集成环境。MATLAB主要产品构成包括 MATLAB、MATLAB TOOLBOX、MATLAB C0MPILER、SIMULINK、STATEFLOW和SIMULINK BLOCKSET。MATLAB 是所有MathWorks 公司产品的数值分析和图形基础环境,MATLAB 将2D和3D 图形、MATLAB语言能力集成到一个单一的、易学易用的环境之中。MATLAB TOOLBOX 一系列专用的MATLAB 函数库,解决特定领域的问题,工具箱是开放的可扩展的:你可以查看其中的算法,或开发自己的算法。MATLAB COMPILER 将 MATLAB 语言编写的 I11文件自动转换成C 或C+文件,支持用户进行独立应用开发,结合 Mathworks提供的C/C+数学库和图形库,用户可以利用MATLAB快速地开发出功能强大的独立应用。SIMULINK 是结合了框图界面和交互仿真能力的非线性动态系统仿真工具,以 MATLAB 的核心数学、图形和语言为基础。STATEFLOW 与 Simulink 框图模型相结合,描述复杂事件驱动系统的逻辑行为,驱动系统在不同的模式之间进行切换。REATIME WORKSHOP 直接从Simulink 框图自动生成Ad代码,用于快速原型和硬件在回路仿真,整个代码生成可以根据需要完全定制。SIMULINK BLOCKSET 专门为特定领域设计的Simulink功能块的集合, 用户也可以利用已有的块或自编写的C和MATLAB程序建立自己的块或库。2 线性系统状态空间的描述2.1 线性系统的描述线性系统(linear system)是一种数学模型,是由线性运算组成的系统。线性,从相互关联的两个角度来界定,其一:叠加原理成立;其二:物理变量间的函数关系是直线,变量间的变化率是恒量。叠加原理是指:如果系统相应于任意两种输入和初始状态(u1,x01)和(u2(t),x02)时的状态和输出分别为(x1(t),y1(t)和(x2(t),y2(t), 则当输入和初始状态为(C1u1(t)C2u2(t),C1x01C2x02)时,系统的状态和输出必为(C1x1(t)C2x2(t),C1y1(t)C2y2(t),其中x表示状态,y表示输入,u表示输出,C1和C2为任意实数。线性系统:状态变量和输出变量对于所有可能的输入变量和初始状态都满足叠加原理的系统。一个由线性元部件所组成的系统必是线性系统。但是,相反的命题在某些情况下可能不成立。线性系统的状态变量(或输出变量)与输入变量间的因果关系可用一组线性微分方程或差分方程来描述,这种方程称为系统的数学模型。严格地说,实际的物理系统都不可能是线性系统。但是,通过近似处理和合理简化,大量的物理系统都可在足够准确的意义下和一定的范围内视为线性系统进行分析。2.2 状态空间的描述状态和状态变量:系统在时间域中的行为或运动信息的集合状态。确定系统状态的一组独立(数目最小)变量称为状态变量。如果知道这些变量在任意初始时刻t0的值以及tt0的系统输入,便能完整地确定系统在确定时刻t的状态。这样一组最小的变量称为系统的状态变量。状态变量的选取不具有唯一性,同一种系统可能有多种不同的选取方式。状态空间:以选择的一组状态变量为坐标轴而构成的正交空间,称为状态空间。系统在任意时刻的状态可以用状态空间中的一个点来表示。例如t1时刻的状态,在状态空间中的表示为M(i(t1)、uc(t1)点。状态方程:描述系统输入、输出和状态变量之间关系的方程组称为系统的状态空间表达式。状态方程表征了系统由输入所引起的内部状态变化,其一般形式为:xt=fxt,ut,t 或 xtk+1=f(xtk,utk,tk)状态空间表达式: 状态方程与输出方程的结合称为状态空间表达式,又称动态方程,其一般表达式为: xt=fxt,ut yt=gxt,ut 或xtk+1=fxtk,utk ytk=gxtk,utk (1)线性系统:若在系统的状态空间表达式中,f和g均是线性函数,则系统称为线性系统,否则为非线性系统。线性系统状态空间表达式:线性系统的状态方程式是一阶向量线性微分方程或一阶线性差分方程,输出方程是向量代数方程。线性系统状态空间方程的一般表达式为:xt=Axt+Bu(t)yt=Cxt+Du(t) 或xk+1=Gxk+Hu(k)yk=Cxk+Du(k) (2)2.3 线性定常系统状态空间表达式的建立建立状态空间表达式的方法一般有两种:一是直接根据系统的机理建立相应的微分方程或差分方程,继而选择有关的物理量作为状态变量,从而导出其状态空间表达式;二是由已知的系统其它模型经过转化而得到状态空间表达式。 直接根据系统的机理建立相应的状态空间表达式 由系统微分方程建立相应的状态空间表达式 系统输入量中不含导数项。若系统的微分方程为y(n)+an-1y(n-1)+an-2y(n-2)+a2y+a1y+a0y=b0u (3)如果选取系统的输出变量 y,y,y,y(n-1)为状态变量,x1=yx1=x2=yx2=x3=yxn-1=xn=y(n-1)xn=y(n)=-an-1y(n-1)-an-2y(n-2)-a2y-a1y-a0y+b0u=-an-1xn-an-2xn-1-a2x3-a1x2-a0x1+b0u则方程(3) 可以写成n个一阶微分方程x1=x2x2=x3xn-1=xnxn=-an-1y(n-1)-an-2y(n-2)-a2y-a1y-a0y+b0u记成向量、矩阵形式为x1x2xn-1xn=010000010000001-a0-a1-a2-a3-an-1 x1x2xn-1xn+000b0u (4a)y=1000x1x2xn-1xn (4b)系统输入量中含有导数项。若系统微分方程为y(n)+an-1y(n-1)+an-2y(n-2)+a2y+a1y+a0y=bnu(n)+bn-1u(n-1)+b2u+b1u+b0u (5)选取n个状态变量为x1=y-0ux2=x1-1ux3=x2-2uxn=xn-1-n-1u则系统方程为x1x2xn-1xn=010000010000001-a0-a1-a2-a3-an-1 x1x2xn+12nu (6a)y=1000x1x2xn-1xn+0u (6b)其中0=bn1=bn-1-an-102=bn-2-an-20-an-11 n=b0-a00-a11-an-1n-1 (7)可见。由人工运算求解解系统的状态空间表达式很麻烦,而MATLAB为求解系统的状态空间表达式提供了非常方便的工具,下面给出MATLAB语句在求解系统的状态空间表达式的应用。例1 控制系统微分方程为y+5y+10y+6y=u+8u+3u求其状态空间表达式。解 先求出其传递函数Gs=y(s)u(s)=s2+8s+3s3+5s2+10s+6在MATLAB的工作界面中执行以下命令:num=1,8,3;den=1,5,10,6;A,B,C,D=tf2ss(num,den); tf2ss意思为将传递函数转换为状态空间模型其执行结果如下:A = -5 -10 -6 1 0 0 0 1 0B = 1 0 0C = 1 8 3D = 0此结果说明该系统的状态空间表达式为x=-5-10-6100010000x+1000uy=183x+0u上述示例为给出了已知传递函数求状态空间表达式的例子,下面给出已知状态空间表达式,用MATLAB求传递函数的应用。例2 已知状态空间方程如下x1x2x3=-2000-3000-4x1x2x3+1-15uy=101x1x2x3试求系统的传递函数矩阵。解 输入Matlab 语句如下:A=-2 0 0;0 -3 0;0 0 -4;B=1;-1;5;C=1 0 1;D=0;num,den=ss2tf(A,B,C,D); ss2tf意思为将状态空间模型转换成传递函数的形式其执行结果如下所示:num = 0 6.0000 32.0000 42.0000den = 1 9 26 24所以由此可得系统的传递函数为 YsUs=6s2+32s+42s3+9s2+26s+24上述示例2为单输入单输出的系统,下面介绍求解多输入多输出的系统传递函数矩阵。例3 已知系统状态方程为x1x2=21-13x1x2+1011u1u2y1y2y3=3111-3-2x1x2+200011u1u2求传递函数矩阵。解:在MATLAB环境下,输入以下语句syms s; 声明符号变量sA=2 1;-1 3;B=1 0;1 1;C=3 1;1 1;-3 -2;D=2 0;0 0;1 1;F=inv(s*eye-A) F为系统的状态转移矩阵, inv()是求矩阵的逆矩阵G=simple(simple(C*F*B)+D) G为多输入多输出系统的传递函数矩阵, simple()函数是对符号运算结果进行简化 其运行结果如下: F = -(s-3)/(5*s-7), (s-1)/(5*s-7) (s+1)/(5*s-7), -(s-2)/(5*s-7) G = 9/(5*s-7)+2, (2*s-1)/(5*s-7) 5/(5*s-7), 1/(5*s-7) -12/(5*s-7)+1, -(s+1)/(5*s-7)+1所以该多输入多输出的系统传递函数矩阵为 G=9/(5*s-7)+2(2*s-1)/(5*s-7)5/(5*s-7)1/(5*s-7)-12/(5*s-7)+1 -(s+1)/(5*s-7)+1由上述三个示例可知,运用MATLAB指令语言就可求得状态空间表达式或是传递函数,其过程比人工计算简单得多,而且结果准确,从而大降低了了人工计算的失误率。因而,使用的非常广泛。3 系统状态方程求解3.1 线性定常系统齐次方程求解线性定常系统齐次状态方程是指系统输入向量为零时的状态方程 x=Ax (8)其中,x为n维状态向量;A为nn系数矩阵。设初始时刻t0=0,系统的初始状态x(t0)=x(0)。齐次方程(8)的解xt=I+At+12!A2t2+1k!AKtk+x0 (9)上式右边括号内的系数是nn矩阵指数函数,记做eAt,即eAt= I+At+12!A2t2+1k!AKtk+ (10)故式(9)可写成 xt=eAt x0 (11)求状态矩阵eAt的方法较多,这里只简单介绍拉氏变换法xt=Axt 若初始时刻t0=0,初始状态为x0。对上式进行拉氏变换,得sxs-x0=AxssI-Axs=x0若sI-A非奇异,等式两边左乘sI-A-1,得到xs=sI-A-1x0取拉氏反变换,得到xt=L-1sI-A-1x0=L-1sI-A-1x0 t0由微分方程的唯一性可知t=eAt=L-1sI-A-1由上述内容可知,手工求解系统方程过程十分复杂,计算量也非常大, 而且容易出错,用MATLAB求解系统方程则方便简单,下面给出两种方法,进行对比。例4 线性定常系统齐次方状态程为x1x2=01-2-3x1x2x0=10求齐次状态方程的解。用拉氏变换法求解状态转移矩阵:t=eAt=L-1sI-A-1而 sI-A-1=s-12s+3-1=adjs-12s+3dets-12s+3=1ss+3+2s+31-2s=s+3s+1(s+2)1s+1(s+2)-2s+1(s+2)ss+1(s+2)=2s+1-1s+21s+1-1s+2-2s+1+2s+2-1s+1+2s+2于是 t=eAt=L-1sI-A-1=2e-t-e-2te-t-e-2t-2e-t+2e-2t-e-t+2e-2t而 xt=eAt x0所以 xt=eAt x0=2e-t-e-2te-t-e-2t-2e-t+2e-2t-e-t+2e-2t10=-e-2t+2e-t-2e-t+2e-2t这里用MATLAB中的expm函数进行求解。解 t=eAt。在MATLAB的工作界面中执行以下命令:syms tA=0,1;-2,-3; F=expm(A*t) x0=1;0; F*x0其输出结果为F = -exp(-2*t)+2*exp(-t), exp(-t)-exp(-2*t) -2*exp(-t)+2*exp(-2*t), 2*exp(-2*t)-exp(-t) ans = -exp(-2*t)+2*exp(-t) -2*exp(-t)+2*exp(-2*t) 其中Syms的作用为:定义符号变量。expm函数作用为:求矩阵的以e为底数的指数函数。由此可见两种运算的结果是一样的,而手动运算求解状态转移矩阵是非常困难的,不但要求矩阵的逆、状态转移矩阵,还要对结果进行拉式反变换,手工运算不仅很有难度,运算量也非常大,并且无法得到方程的解析解,而应用MATLAB软件运算则非常方便就可得出结果,从而大大地减少了人工运算的复杂程度,并且也降低了人工运算带来的失误。因而MATLAB在理工科以及工程上的应用都十分广泛。3.2 线性定常系统非齐次方程求解线性定常系统非齐次方程是指系统输入向量不等于零时的状态方程。即 x=Axt+Bu(t) (12)在初始时刻t0=0,初始状态为x0,则xt=tx0+0teAt-Bu()d (13)如果t00,即一般情况下方程(12)的解为xt=eAt-t0xt0+t0teAt-Bu()d (14)或 xt=t-t0xt0+t0tt-Bu()d (15)以下是用MATLAB求解系统的状态方程的示例:例5 线性定常系统的状态方程为x=Ax+Bu , x0=10 , ut=1t其中 A=01-2-3,B=01求系统状态方程的解。解 先计算系统的状态转移矩阵t-t0,由于t0=0,则状态转移矩阵t=eAt。t=eAt=L-1sI-A-1而 sI-A-1=s-12s+3-1=adjs-12s+3dets-12s+3=1ss+3+2s+31-2s=s+3s+1(s+2)1s+1(s+2)-2s+1(s+2)ss+1(s+2)=2s+1-1s+21s+1-1s+2-2s+1+2s+2-1s+1+2s+2于是 t=eAt=L-1sI-A-1=2e-t-e-2te-t-e-2t-2e-t+2e-2t-e-t+2e-2txt=tx0+0teAt-Bu()d=2e-t-e-2te-t-e-2t-2e-t+2e-2t-e-t+2e-2t10 +0t2e-t-e-2t-e-t-e-2t-2e-t-+2e-2t-e-t-+2e-2t-101d=2e-t-e-2t-2e-t+2e-2t+0t2e-t-e-2t-2e-t-+2e-2t-d=2e-t-e-2t-2e-t+2e-2t+12-e-t+12e-2te-t-e-2t=12+e-t-12e-2t-e-t+e-2t由此可见如手动计算的话非常复杂,以下用MATLAB程序进行计算在MATLAB的工作界面中执行以下命令:syms s t x0 tao phi phi0;A=0 1;-2 -3;B=0;1;I=1 0;0 1;E=s*I-A;C=det(E);D=collect(inv(E);phio=ilaplace(D);x0=1;0;x1=phio*x0;phi=subs(phio,t,(t-tao); 表示将符号变量phi0中的自变量t用(t-tao)替换就构成变量phiF=phi*B*1;x2=int(F,tao,0,t); 表示符号变量F对tao在0到1的积分区间上求积分,运算结果返回到x2x=collect(x1+x2)其结果如下 x =-1/2* exp(-2*t)+ exp(-t)+1/2 -exp(-t)+ exp(-2*t)其中 Syms为定义符号函数;det()的作用是求矩阵的行列式;ilaplace()的作用是求取拉普拉斯反变换;collect()的作用是合并同类项;inv()的作用是求逆矩阵;int()的作用是求积分。4 系统状态方程的线性变换4.1 等价系统方程4.1.1 线性定常系统的描述若线性定常系统以某个基底的系统方程为x=Ax+Buy=Cx+Du (16)其中x为n维状态向量;u为r维输入向量;y为m 维输出向量;A 、B、 C 和D为满足矩阵运算的矩阵。引入nn非奇异变换矩阵P,对状态变量x进行线性变换x=Px (17)x=P-1x (18)或x=Px=PAx+Bu=PAx+PBu=PAP-1x+PBu=Ax+Bu比较上式两边对应项,可得到A=PAP-1 (19)B=PBy=Cx+Du=CP-1x+Du=Cx+Du比较上式两边对应项可得到C= CP-1 (20)D=D于是系统方程x=Ax+Buy=Cx+Du (21) 4.1.2 线性时变系统的描述x=A(t)x+B(t)uy=C(t)x+D(t)u (22)其中x为n维状态向量;u为r维输入向量;y为m 维输出向量;A(t)、B(t)、C(t) 和D(t)为满足矩阵运算的矩阵,且它们的元素都是t的连续函数。引入nn非奇异变换矩阵P(t),且P(t)、P(t)对所有t都是非奇异且连续的。令 x=P(t)x (23)或 x=P-1(t)x (24)由式(18)x=Ptx+P(t)x=PtP-1tx+ P(t)A(t)x+B(t)u=PtP-1tx+ PtAtx+ P(t)B(t)u=PtP-1tx+PtAtP-1tx+ P(t)B(t)u=A(t)x+B(t)u比较上式两边对应项,可以得到At=PtP-1t+ PtAtP-1t=PtAt+Pt P-1t (25) Bt= Pt B(t)又由 yt= C(t)x+D(t)u= CtP-1tx+ Dtu= Ctx+D(t)u比较上式两边对应项,可得到 Ct= CtP-1t (26) Dt= Dt于是系统方程x=At+ Btu (27)y= Ctx+D(t)4.2 线性变换的基本特性4.2.1 不改变系统特征值 系统方程如下x=Ax+Buy=Cx+Du系统的特征多项式为 =detI-A=n+an-1n-1+a22+a1+a0 (28)而 =detI-A=n+an-1n-1+a22+a1+a0=i=1n(-i)=0称A为特征方程或系统的特征方程。特征方程的根i称为A的特征值或系统的特征值。求方程(16)的等价系统方程(21)的系统特征值=detI-A=detI-PAP-1= detPP-1-PAP-1= detPP-1-PAP-1 =detPdetI-AdetP-1= detI-A=0 (29)可见,经过线性变换,其特征值是不变的。或者说,等价系统的矩阵A和A是相似矩阵,即它们有相同的特征值。4.2.2 经过线性变换不改变系统的传递函数矩阵 方程 x=Ax+Buy=Cx+Du 中,D=0时的传递函数矩阵为Gyus=CsI-A-1B而方程 x=Ax+Buy=Cx+Du 的传递函数矩阵Gyus=CsI-A-1B=CP-1sI-PAP-1-1PB= CP-1(sI-PAP-1)P-1B= CP-1sIP-A-1B =CsI-A-1B=Gyus (30)可见,经过线性变换,其系统的传递函数矩阵是不变的。4.3 状态空间方程的线性变换线性变换就是把状态空间方程矩阵化为标准形,即矩阵A的对角形、约当形、和模态形。将矩阵化为标准形可以由A 的特征值对应的特征向量来构成。 设i是nn矩阵A的特征值,若存在一个n维非零向量qi使Aqi=iqi (i=1,2,3,n) (31)或 iI-Aqi=0 (32)成立,则称qi为A的对应于特征值i的特征向量。4.3.1 化矩阵A为对角形当nn矩阵A的n个特征值i(i=1,2,3,n)互异时,每一个特征值对应一个特征向量。这是矩阵A共有n个独立的特征向量。即iI-Aqi=0 i=1,2,3,n) (33)Q=q1 q2 qn (34)取变换矩阵P=Q-1=q1 q2 qn -1 (35)则 =PAP-1=i00n (36)下面给出用MATLAB对矩阵进行线性变换的示例。例6 将矩阵A=0-123 化为对角阵。一般解法解 矩阵A的特征方程为=detI-A=det1-2-3=-1-2=0所以特征值1=1,2=2。由式(4-18)可得1I-Aq1= 1001-0-123q11q12=0得到 q11+q12=0-2q11-2q12=0故得 q11=-q12选取 q11=1 则 q12=-1当1=1时,得到特征向量为q1T=1-1,再用2=2代入式 (31),又可得到对应2=2时的特征向量q2T=1-2故 Q=q1 q2 =11-1-2变换矩阵 P=Q-1=11-1-2-1=21-1-1则 =PAP-1=21-1-10-12311-1-2=1002 用MATLAB求解上式程序如下A=0 -1;2,3;V,D=eig(A)P=inv(D)其输出结果为V = -0.7071 0.4472 0.7071 -0.8944D = 1 0 0 2P = 1.0000 0 0 0.5000其中V是A的特征向量组成的矩阵,D就是矩阵A的对角形矩阵,P是变换矩阵。例7 将矩阵A=103351224化为对角形。解 这里直接用matlab求解 在matlab界面中输入以下程序A=1,0,3;3,5,1;2,2,4;V,D=eig(A)P=inv(D)其结果如下V = -0.3075 -0.8439 0.5654 -0.7085 0.5032 -0.7773 -0.6352 0.1861 0.2758D = 7.1985 0 0 0 0.3384 0 0 0 2.4631P = 0.1389 0 0 0 2.9551 0 0 0 0.4060其中V是A的特征向量组成的矩阵,D为矩阵A的对角形矩阵,P为转换矩阵。4.3.2 化矩阵A为约当形若矩阵A的n个特征值中有重特征值时,可分为两种情况。一般情况是,有特征值,但矩阵A仍有n个独立的特征向量,即每个重特征值所对应的独立特征向量数恰好等于特征值的重数,这时就同没有重特征值的情况一样。另一种,A有重特征值,矩阵A的独立特征向量个数小于n。这时不能化为对角形,只能化为约当形。这时矩阵A通过线性变换化为如下形式的约当阵J=1101101nn= PAP-1 (34)如果nn矩阵A有m个重特征值1,(n-m)个互异特征值m+1,n-1,n.此时变换矩阵为P=Q-1=q1qmqm+1qn-1 (35)这时 PAP-1=1111100m+1n (36)下面是用MATLAB求矩阵的约当形矩阵的示例。例8 化A=0100012-54为标准形。特征向量V满秩,系统的标准形矩阵为解 在matlab界面中输入以下程序 A=0 1 0;0 0 1;2 -5 4;V,D=eig(A) disp ( 由矩阵D可知,矩阵A有重特征值,所以A的标准形矩阵为约当形) V,J=jordan(A); disp (其标准形矩阵为)J其执行结果如下:V = -0.5774 0.5774 -0.2182 -0.5774 0.5774 -0.4364 -0.5774 0.5774 -0.8729D = 1.0000 0 0 0 1.0000 0 0 0 2.0000 由矩阵D可知,矩阵A有重特征值,所以A的标准形矩阵为约当形其标准形矩阵为J = 2 0 0 0 1 1 0 0 1可得 矩阵A的约当阵如下J=PAP-1=2000110014.3.3 矩阵A为模态形当矩阵A有复数特征值时,设A只有一对复数特征值的情况。例如1=+j, 2=-j,在此情况下,A的模态形为 M=- (37)例9 将矩阵A=-2117-4化为模态阵。解 先求对应的特征向量在matlab界面中输入以下程序 A=-2,1;-17,-4; E=eig(A)其结果如下E = -3.0000 + 4.0000i -3.0000 - 4.0000i所以其特征值为1= -3.0000 + 4.0000i,2= -3.0000 - 4.0000i由式(37)可得矩阵A的模态形如下 M=PAP-1=-34-43 5 线性系统的能控性与能观性的判断5.1 线性系统的可控性及其判据5.1.1 能控性的定义 线性定常系统状态方程为 x=Ax+Bu (38) 其中x、u分别为n、r维向量;A、B为满足矩阵运算的常值矩阵。若给定系统的一个初始状态xt0( t0课为0),如果在t1t0的有限时间区间t0,t1内存在容许控制u(t)使xt0=0,则称系统在t0时刻是能控的;如果系统对任意一个初始状态都能控,则称系统是完全能控的,简称系统是状态能控或者系统能控。由这个定义可知: 系统能控性定义中的初始状态xt0是状态空间中任意的非零有限点,控制的目标是状态空间坐标原点。 如果在时间区间t0,t1内存在容许控制u(t),使系统从状态空间坐标原点推向预先指定的状态xt1,则称为能达性。能控性与能达性是等价的。 在能控性研究中,考察的并不是xt0推向 xt1=0的时变形式,而是考察能控状态在状态空间中的分布。只有整个状态空间中所有的有限点都是能控的,系统才是能控的。 若t0=0,xt0=x(0),系统状态方程的解为xt=eAtx0+0teAt-Bud=0若系统是能控的,则容许存在控制u(t),使得xt1=eAt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论