线性系统理论相关的matlab应用
- 格式:docx
- 大小:313.21 KB
- 文档页数:54
使用Matlab进行线性系统辨识与控制的技巧引言:线性系统辨识和控制是现代控制理论和工程应用中的重要内容。
Matlab作为一种强大的数学计算和编程软件,为我们提供了丰富的工具和函数,方便了线性系统辨识与控制的实现。
本文将介绍一些使用Matlab进行线性系统辨识与控制的技巧。
一、线性系统辨识1. 数据采集与预处理对于线性系统辨识,首先需要采集系统的输入输出数据。
在Matlab中可以使用内置函数来进行数据采集,如"sim"函数进行仿真实验,或者使用数据采集卡等外部设备来获取现实世界中的数据。
采集到的数据通常需要进行预处理,如去除噪声、滤波或数据归一化等。
在Matlab中有丰富的信号处理工具箱,可以方便地进行数据预处理。
2. 系统模型的选择线性系统辨识的目标是找到一个数学模型来描述实际系统的动态行为。
在选择系统模型时,可以根据应用需求选择合适的模型种类,如ARX模型、ARMA模型、ARMAX模型等。
在Matlab中,可以使用System Identification Toolbox来进行系统模型的选择和参数估计。
这个工具箱提供了多种模型结构和参数估计算法,方便用户根据系统特性进行模型的选择。
3. 参数估计与模型验证在选择好系统模型后,需要进行参数估计和模型验证。
在Matlab中,可以使用System Identification Toolbox中的函数来进行参数估计,如"armax"函数和"arx"函数等。
参数估计结果可以通过模型验证来评估模型的拟合程度和预测性能。
Matlab中的"compare"函数可以绘制真实输出和模型输出的对比曲线,帮助用户评估模型的准确性。
二、线性系统控制1. 控制器设计线性系统控制的目标是设计一个控制器来使得系统达到所期望的性能要求。
在Matlab中,可以使用Control System Toolbox来进行控制器设计。
线性系统理论Matlab实验报告1、本题目是在已知状态空间描述的情况下要求设计一个状态反馈控制器,从而使得系统具有实数特征根,并要求要有一个根的模值要大于5,而特征根是正数是系统不稳定,这样的设计是无意义的,故而不妨设采用状态反馈后的两个期望特征根为-7,-9,这样满足题目中所需的要求。
(1)要对系统进行状态反馈的设计首先要判断其是否能控,即求出该系统的能控性判别矩阵,然后判断其秩,从而得出其是否可控;判断能控程序设计如下:>> A=[-0.8 0.02;-0.02 0];B=[0.05 1;0.001 0];Qc=ctrb(A,B)Qc =0.0500 1.0000 -0.0400 -0.80000.0010 0 -0.0010 -0.0200Rc=rank(Qc)Rc =2Qc =0.0500 1.0000 -0.0400 -0.80000.0010 0 -0.0010 -0.0200得出结果能控型判别矩阵的秩为2,故而该系统是完全可控的,故可以对其进行状态反馈设计。
(2)求取状态反馈器中的K,设的期望特征根为-7,-9;其设计程序如下:>> A=[-0.8 0.02;-0.02 0];B=[0.05 1;0.001 0];P=[-7 -9];k=place(A,B,P)k =1.0e+003 *-0.0200 9.00000.0072 -0.4500程序中所求出的k即为所求状态反馈控制器的状态反馈矩阵,即由该状态反馈矩阵所构成的状态反馈控制器能够满足题目要求。
2、(a)要求求该系统的能控型矩阵,并验证该系统是不能控的。
设计程序:>> A=[0 1 0 0 0;-0.1 -0.5 0 0 0;0.5 0 0 0 0;0 0 10 0 0;0.5 1 0 0 0];>> B=[0;1;0;0;0];>> C=[0 0 0 1 0];>> Qc=ctrb(A,B)Qc =0 1.0000 -0.5000 0.1500 -0.02501.0000 -0.5000 0.1500 -0.0250 -0.00250 0 0.5000 -0.2500 0.07500 0 0 5.0000 -2.50000 1.0000 0 -0.1000 0.0500>> Rc=rank(Qc)Rc =4从程序运行的结果可得,系统能控型判别矩阵的秩为4,而系统为5阶系统,故而就验证了该系统为不可控的。
实验二 LTI 系统的响应一、实验目的1. 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法2. 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法3. 熟悉应用MATLAB 实现求解系统响应的方法 二、实验原理 1.连续时间系统对于连续的LTI 系统,当系统输入为f(t),输出为y(t),则输入与输出之间满足如下的线性常系数微分方程:()()00()()nmi j ij i j a yt b f t ===∑∑,当系统输入为单位冲激信号δ(t)时产生的零状态响应称为系统的单位冲激响应,用h(t)表示。
若输入为单位阶跃信号ε(t)时,系统产生的零状态响应则称为系统的单位阶跃响应,记为g(t),如下图所示。
系统的单位冲激响应h(t)包含了系统的固有特性,它是由系统本身的结构及参数所决定的,与系统的输入无关。
我们只要知道了系统的冲激响应,即可求得系统在不同激励下产生的响应。
因此,求解系统的冲激响应h(t)对我们进行连续系统的分析具有非常重要的意义。
在MATLAB 中有专门用于求解连续系统冲激响应和阶跃响应, 并绘制其时域波形的函数impulse( ) 和step( )。
如果系统输入为f(t),冲激响应为h(t),系统的零状态响应为y(t),则有:()()()y t h t f t =*。
若已知系统的输入信号及初始状态,我们便可以用微分方程的经典时域求解方法,求出系统的响应。
但是对于高阶系统,手工计算这一问题的过程非常困难和繁琐。
在MATLAB 中,应用lsim( )函数很容易就能对上述微分方程所描述的系统的响应进行仿真,求出系统在任意激励信号作用下的响应。
lsim( )函数不仅能够求出连续系统在指定的任意时间范围内系统响应的数值解,而且还能同时绘制出系统响应的时域波形图。
以上各函数的调用格式如下: ⑴ impulse( ) 函数 函数impulse( )将绘制出由向量a 和b 所表示的连续系统在指定时间范围内的单位冲激响应h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解impulse(b,a) 以默认方式绘出由向量a 和b 所定义的连 统的冲激响应的时域波形。
基于MATLAB的线性系统稳定性分析及应用线性系统稳定性分析及应用是控制理论中的重要内容之一、MATLAB是一种强大的数学计算工具,可以用于线性系统的稳定性分析和应用。
本文将介绍线性系统稳定性分析的基本理论,以及如何使用MATLAB进行稳定性分析和应用。
一、线性系统稳定性分析基本理论1.线性系统稳定性定义:线性系统是指系统的输入和输出满足线性关系的系统。
线性系统稳定性是指当系统的输入有界时,系统输出也是有界的,不会发散或震荡。
2.线性时不变系统:线性时不变系统是指系统的特性不随时间变化而变化,可以通过线性时间不变微分方程来描述。
3.BIBO稳定性:BIBO代表有界输入有界输出,是指当系统的输入信号是有界的时候,系统输出也是有界的。
BIBO稳定性是判断线性系统稳定性的一种方法。
4.线性系统稳定性判据:-零输入稳定性(ZIS):当系统的输入为零时,系统输出是否趋于零,来判断系统的稳定性。
-零状态稳定性(ZSS):当系统的初始状态为零时,系统输出是否趋于零,来判断系统的稳定性。
-有界输入有界输出稳定性(BIBO稳定性):当系统的输入信号是有界的时,系统输出是否有界,来判断系统的稳定性。
二、MATLAB线性系统稳定性分析方法1. 频率域法:通过计算系统的传递函数的频率响应来分析系统的稳定性。
MATLAB提供了函数freqresp来计算系统的频率响应,并可以使用bode函数来绘制频率响应曲线。
2. 极点分析法:通过分析系统的极点位置来判断系统的稳定性。
MATLAB提供了函数pole来计算系统的极点,并可以使用pzmap函数来绘制极点分布图。
3.等价传递函数法:将系统的状态空间方程转化为等价的传递函数形式,然后通过分析传递函数的特性来判断系统的稳定性。
MATLAB提供了ss2tf函数来将状态空间方程转化为传递函数形式。
三、MATLAB线性系统稳定性应用1.控制系统设计:将线性系统的稳定性分析方法应用于控制系统的设计中,可以通过稳定性判据来选择合适的控制策略,以保证系统的稳定性。
§1 线性规划在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。
此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。
自从1947年G. B. Dantzig 提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。
特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。
1.1 线性规划的实例与定义 例1 某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000元与3000元。
生产甲机床需用B A 、机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用C B A 、、三种机器加工,加工时间为每台各一小时。
若每天可用于加工的机器时数分别为A 机器10小时、B 机器8小时和C 机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?上述问题的数学模型:设该厂生产1x 台甲机床和2x 乙机床时总利润最大,则21,x x 应满足(目标函数)2134m ax x x z += (1)s.t.(约束条件)⎪⎪⎩⎪⎪⎨⎧≥≤≤+≤+0,781022122121x x x x x x x (2)这里变量21,x x 称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式是问题的约束条件,记为s.t.(即subject to)。
上述即为一规划问题数学模型的三个要素。
由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题。
总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。
在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往也是困难的一步,模型建立得是否恰当,直接影响到求解。
而选取适当的决策变量,是我们建立有效模型的关键之一。
MATLAB在线性系统理论中的应⽤MATLAB在线性系统理论中的应⽤第⼀章传递函数与状态空间表达式1.1 传递函数与状态空间表达式之间的转换⽤ss命令来建⽴状态空间模型。
对于连续系统,其格式为sys=ss(A,B,C,D),其中a,b,c,d 为描述线性连续系统的矩阵。
当sys1是⼀个⽤传递函数表⽰的线性定常系统时,可以⽤命令sys=ss(sys1)将其转换成为状态空间形式,也可以⽤命令sys=ss(sys1,’min’)计算出系统sys的最⼩实现。
example1:系数传递函数到状态空间表达式>>num=[1 7 24 24];den=[1 10 35 50 24];g=tf(num,den);sys=ss(g)the answer is:a =x1 x2 x3 x4x1 -10 -4.375 -3.125 -1.5x2 8 0 0 0x3 0 2 0 0x4 0 0 1 0b =u1x1 2x2 0x3 0x4 0c =x1 x2 x3 x4y1 0.5 0.4375 0.75 0.75d =u1y1 0Continuous-time model.example2:由传递函数系数,将离散系统脉冲传递函数模型转换成状态空间表达式>>num=[0.31 0.57 0.38 0.89];den=[1 3.23 3.98 2.22 0.47];Transfer function:0.31 z^3 + 0.57 z^2 + 0.38 z + 0.89-----------------------------------------z^4 + 3.23 z^3 + 2.98 z^2 + 2.22 z + 0.47Sampling time: 0.1Pzmap(gyu)%绘制零极点分布图sys=ss(gyu)%将离散系统脉冲传递函数模型转换成状态空间表达式。
The answer is:a =x1 x2 x3 x4x1 -3.23 -1.49 -1.11 -0.235x2 2 0 0 0x3 0 1 0 0x4 0 0 1 0b =u1x1 1x2 0x3 0x4 0c =x1 x2 x3 x4y1 0.31 0.285 0.19 0.445d =u1Discrete-time model.Example 3:⽤s求逆矩阵法从系统矩阵a,b,c,d求得传递函数>>syms s;a=[0 1;-2 -3];b=[1 0;1 1 ];c=[2 1;1 1;-2 -1];d=[3 0;0 0;0 1];i=[1 0;0 1];f=inv(s*i-a)g=simple(simple(c*f*b)+d)The answer is:f =[ (s+3)/(s^2+3*s+2), 1/(s^2+3*s+2)][ -2/(s^2+3*s+2), s/(s^2+3*s+2)]g =[ 3/(s+1)+3, 1/(s+1)][ 2/(s+2), 1/(s+2)][ -3/(s+1), -1/(s+1)+1]Example 4 eig()指令,求特征根矩阵和特征向量矩阵函数eig()Example 5 约旦标准型函数jordan()>> a=[0 1 0;0 0 1;2 -5 4]a =0 1 00 0 12 -5 4>> [q,j]=jordan(a)q =1 -2 02 -2 -24 -2 -4j =2 0 00 1 1a=[0 1 0;0 0 1;-6 -11 -6];b=[0;0;1];c=[ 1 1 1];d=[0];v=ss(a,b,c,d)[num,den]=ss2tf(a,b,c,d);printsys(num,den)[z,p,k]=ss2zp(a,b,c,d);zpk(z,p,k)x0=[2;0;1];figure(1)step(v)figure(2)initial(v,x0)t=0:0.1:60;u=t;figure(3)lsim(v,u,t);%figure(3)第⼆章状态转移矩阵与状态⽅程的解Example 1Collect函数的作⽤是合并同类项,ilaplace()函数的作⽤的求取laplace反变换,函数det ()的作⽤是求⽅阵的⾏列式。
实验一 MATLAB 线性系统建模及分析一、实验目的1、 学会在matlab 中建立线性系统的数学模型。
2、 学会线性系统的simulink 模型的建立方法。
3、 学会用MATLAB 求解线性定常系统的输出响应,并绘制相应的曲线。
4、 学会用MATLAB 判断系统的稳定性、计算性能指标、分析系统的动态性能和稳态性能。
5、 学会用Matlab 绘制根轨迹,并由根轨迹分析系统性能。
6、 学会用Matlab 绘制奈奎斯特图和伯德图,并计算开环频域指标,对系统性能进行频域分析。
二、实验环境安装有MATLAB 和simulink 软件的计算机一台三、实验内容3.1 线性系统的数学模型的建立1、传递函数和脉冲传递函数的建立已知系统的传递函数为(a) 3486)(22++++=s s s s s G (b) )3()1(4)(2++=s s s s G (c) 61161)(232+++++=z z z z z z G (1)利用函数tf ( )或函数zpk( )建立上述系统的传递函数。
(2)利用函数zpk( )将多项式比值形式的传递函数转换为零极点形式,利用函数tf ( )将零极点形式的传递函数转换为多项式比值形式。
2、组合系统的传递函数已知两个子系统的传递函数为441)(21+++=ssssG21()1G ss=+建立两个子系统的传递函数模型。
求它们串联、并联、反馈连接时, 组合系统的传递函数模型。
3、 simulink模型的建立已知系统的开环传递函数为2()(4)G ss s=+建立单位负反馈系统的simulink模型,其中输入信号为单位阶跃函数,输出通过示波器观测。
仿真,并记录simulink模型和响应曲线。
系统的建模图形如下点击运行,后点击示波器,系统的响应曲线如下2.2 线性系统的时域分析1、已知系统的传递函数为326()4106G ss s s=+++(1)当初始状态为零,输入为时,用函数step( )求解系统的输出响应的数值解(记录写出前十个值),并绘制系统的输出响应曲线。
控制系统的分析方法>早期的控制系统分析过程复杂而耗时,如想得到一个系统的冲激响应曲线,首先需要编写一个求解微分方程的子程序,然后将已经获得的系统模型输入计算机,通过计算机的运算获得冲激响应的响应数据,然后再编写一个绘图程序,将数据绘制成可供工程分析的响应曲线。
> MATLAB控制系统工具箱和SIMULINK辅助环境的出现, 给控制系统分析带来了福音。
>控制系统的分析包括系统的稳定性分析、时域分析、频域分析及根轨迹分析。
本课件是关于状态空间的时域分析利用MATLAB进行模型转换MATLAB是当今世界上最优秀的科技应用软件之一,它以强大的科学计算能力和可视化功能,简单易用的编程语言以及开放式的编程环境等一些显著的优点,使得它在当今许许多多科学技术领域中成为计算机辅助分析和设计、算法研究和应用开发的基本工具和首选平台。
在本书中,用它作为系统分析和设计的软件平台,更显示出独特的优毎。
本节利用MATLAB实现数学模型的转换。
1 -1传递函数与状态空间表达式之间的转换1).连续系统状态空间表达式可以用ss命令来建立状态空间模型。
对于连续系统,其格式为sys=ss(A5B5C5D),其中A, B, C, D为描述线性连续系统的矩阵。
当sys1是一个用传递函数表示的线性定常系统时,可以用命令sys=ss(sys1),将其转换成为状态空间形式。
也可以用命令sys=ss(sys1/ mirf )计算出系统sys的最小实现。
例1控制系统微分方程为y ⑷ +1 oy + 35》+ 50$ + 24y = u+ lit + 24w + 24u 求其状态空间表达式。
可以先将其转换成传递函数,+7异+24$ + 2454+1053+3552+5054-24输入下列命令num=[l 7 24 24]; den=[l 10 35 50 24]; % 另子"分母多项式G=tf^ den); 菠荻得系统的传递函数模型sys=ss(G;l语句执行结果为b =ul xl 1 x2 0 x3 0 x4 0xl x2 x3 x4 ulyl 1 0.4375 0.3T5 0. 1875 y i oContinuouE-time model.这个结果表示,该系统的状态空间表达式为■-10一2」88-0.7813 -0.1875116000x +004000_ 0020_0_y =0.43750.3750.1875|x + [0]w[l注意,在输入命令中,sys=ss(G)也可以改用[A5B5C5D]=tf2ss(num5den),右本例中其作用和sys=ss(G)近似,也可以计算出矩阵A、B、C、Do2).离散系统的状态空间表达式(不要求)x(k + 1) = Gx伙)+离散系统的状态空间表达式为y(k) = Cr伙)+ du(k)和连续系统状态空间表达式的输入方法相类似,如果要输入离散系统的状态空间表达式,首先需要输入矩阵G、H、C、d, 然后输入语句sw = ss(G,H,CJT),即可将其输入到M ATLAB的workspace中,并且用变量名来表示这个离散系统,其中T为釆样时间。
如果Gyu表示一个以脉冲传递函数描述的离散系统,也可以用ss(Gyu )命令,将脉冲传递函数模型转换成状态空间表达式。
例2假设某离散系统的脉冲传递函数为0.3 lz3+0.57z2+0.38z +0.89>,M ' _ / + 3.23兰 + 3.9防 + 2.22z + 0.47采样周期为将其输入到MATLAB的workspace中,并且绘制零、极点分布图。
并且将该离散系统脉冲传递函数模型转换成状态空间表达式。
输入下列语句num=[0.31 0.57 0.38 0.89]; den=[l 3.23 3.98 2.22 0.47];Gyu.=t£ (num, den,Is' u 0. 1) %输入并且现实系统脉冲传递函数Transfer fimctioiL :0.31 丁3 + 0.57 讥 + 0.38 z + 0.89 z A4 + 3.23 z A3 + 3.98 £2 + 2. 22 z + 0.47Sampling time : 0・1再输入语句P 跡ap (Gyu)绘制出零、极点分布图如下1.5 1Pole-Zero Mapo.1.5o.5-LIw_x < -1.5 语句执行的结果为在执行完上述语句后,GyuB 经存在于MATLAB 的 workspace 中,这时再执行语句 Eys=ss (Gyn) 执行结果为B =xl x2 x3 x4IllX1-3.23 -1.99 -0.555 -0.235 xl 1x2 2 0 0 0 x2 0 x3 0 20 0 x3 0 x40 00.5 0x4d 二ulxl x2 K 3x4 yl 0710.31 0.285 0 095 0.445Sanipling timm : 0. 1Discrete-timey(k) = [0.31 0.285 0.095 0・44勺兀伙)结果表75,离散系统的状态空间表达式为兀伙+ 1)=_-3.23 -1.99 -0.555 -0.235_~r2 0 0 0x(k)0 2 0 0 0 0 00.5 0系统的传递函数矩阵可以按下式求出G(s)=凹=C[sl - A]-1B + D 比(s)例3已知系统状态方程为_2输入以下语句syms s; %声明符号变量A=[0 1; -2 -3]; B=[l 0; 1 1]; D=[3 0;0 0;0 1]; I=[l 0;0 1]; G^simple (simple (C*F*B)+D)1-2求传递函数矩阵在已知线性定常系统中的A 、、C 和D 矩阵之后,则该 -2一1 兀]C=[2 1;1 1;-2 -1]; F=inv(s*I-A)其中inv()函数是求矩阵的逆矩阵,而simple()函数是 对符号运算结果进行简化。
执行结果如下 .(3/(5+ 1)) + 3G(s)二 2/($+ 2)—3 /(s +1)[(S +3)/(SA2+3*s+2),[ -2/(s A2+3*s+2),l/(s A2+3*s+2)] s/ (s"2+3*s+2)] [3/(S +l)+3? [ 2/ (s+2), [-3/(s +l)?1/31)] l/(s+2)l -l/(s+l)+l]这表示[si - A]'11 「s + 3"+3S + 2L —21 /(5 + 1) 1/($+ 2) (-1/(5+ 1))+11-3.线性变换1)化为对角矩阵函数eig()可以计算出矩阵A 的特征值以及将A 阵转换成对角阵的 线性变换矩阵。
其语句格式为[Q,G 二eig(4),则D 为对角阵并且 对角线上各元素为矩阵4的特征值,满足Q~'AQ=D f 因为Q = P -^ 即:PAP~X=D 。
例4线性控制系统的状态方程为试作线性变换x = P lx = Qx ,要求变换后系统矩阵4为对角阵。
解 先求出系统矩阵的特征值,Q 阵可以选择为由特征值构成 的范德蒙特矩阵。
输入语句A=[0 1 0;0 0 1;-6 -11 -6]; eigOl)■ 0 1 0 ■■MB0 X =0 0 1 兀+ 0-6-11-61U可以求出A阵的特征值为一1、一2和一3。
因此1 1-2 -34 9A=[0 1 0;0 0 l;-6 -11 -6]; B=[O;O;1]; Q=[l 1 1;-1 -2 -3;1 4 9]; P=inv(Q);A1=P*A*QB1=P*B由以上计算数据可得系统经过线性变换后的方程为_-1 00 _"0.5_ 0 -2 0 X + -1-30.5输入以下语句 执行结果如下Al =Bl 二-1.0000 0.0000 -0.0000 0.0000 -2.0000 0. 0000 -0.0000 -o.0000 -3.00000.5000-1.0000 0.5000也可以输入语句 A=[0 1 0;0 0 1;-6 -11 -6];[Q,D]=eig(k)运行结果为可见,两种线性变换虽然不同,却都可以将A 阵转换为对角阵-0-5774 0.2182 -0.1048 -1.00000.5774 -0.4364 0.3145 0 -2.0000 -0.57740.8729-0.9435-3. 0 00000再计算线性变换矩阵P,>〉P=inv(Q)并且验证结果如下» A1=P*A*Q-5.1962 -4.3301 -0.8660 -1.0000 -0.0000 0.0000 -13.74TT -18.3303 -4.5826 -0.0000 -2.0000-0.0000 -9.5394-14.3091 -4.7697 -0.0000 0 -3. 0000-0.8660 -4.5826 -4.7697A12)化为约当矩阵在MATLAB 中用函数命令jordan()来求矩阵的约当标准形。
其 命令格式为:[Q, J]=jordan(A)。
输入参量A 是系数矩阵,输出参 量J 是矩阵A 的约当标准形矩阵,而P = Q l 就是线性变换矩阵, 满足 J=Q [AQ = P A P [。
0 1 0 4=00 1化为标准形矩阵。
2-5 4可见,不满秩,即矩阵A 的特征值中有重特征值,并且A 的独立特 征向量的个数小于门。
解 首先输入语句运行结果为A=[0 1 0;0 0 1;2 -5 4]; [Q J E]=eigi :A)-0.5774 0.5774 -0.2182 1.00000 0 -0.5774 0.5774 -0.4364 0 1.00000 -0.57740.5774-0.87292.0000Ii二语句执行结果为Q =1 2 40 -2 -4计算结果表明,矩阵A的约当阵为丿= 我们验证如下2 0 00_ 1 1丸二[0 1 0;0 0 1;2 -5 4];Q=[1 -2 0;2 -2 ~2;4 -2 -4]; F二iw(Q);JTl 二执行结果为2所计算出的结果表明,满足J=P A P X二用MATLAB求解系统方程2.1线性齐次状态方程的解使用MATLAB可以方便地求出状态方程的解。
我们通过例子来说明。
例已知线性系统齐次状态方程为t -3}初始条件X(°)=求系统状态方程的解。
解用以下MATLAB程序计算齐次状态方程的解,其中collect) 函数的作用是合并同类项,ffiilaplace()函数的作用是求取拉普拉斯逆变换,函数det()的作用是求方阵的行列式。
syms s t xO x tao phi phiO; % 声明符号变量A=[0 l;-2 -3]; I=[l0;0 1];E=E*I-A; C=det (E); D=collect (invCE)); phiO=ilapl&ce CD)xO=[l;0]; x=phiO*xO程序执行结果phiO 二[ -exp (一2*t)+2*exp〔一七〕, [-2* exp (-t) +2* exp (-2* t ;l」[ -exp C"2*t)+2*exp (?t〕][-2*exp (?t)+2*exp (-2*t)] exp〔-t〕-旳)〔-2*t〕] 2*exp (-2*t)-exp (-1)]这表示—e J'r + 2e'2z线性非齐次状态方程的解 通过以下例子说明。