实验八MATLAB状态空间分析
实验八matlab状态空间分析

实验八 线性系统的状态空间分析§8.1 用MATLAB 分析状态空间模型1、状态空间模型的输入线性定常系统状态空间模型x Ax Buy Cx Du =+=+将各系数矩阵按常规矩阵形式描述。
[][][]11121120101;;;n n n nn n n A a a a a a a B b b b C c c c D d ====在MATLAB 里,用函数SS()来建立状态空间模型(,,,)sys ss A B C D =例8.1 已知某系统微分方程22d d 375d d y yy u t t ++=求该系统的状态空间模型。
解:将上述微分方程写成状态空间形式0173A ⎡⎤=⎢⎥--⎣⎦,01B ⎡⎤=⎢⎥⎣⎦[]50C =,0D =调用MATLAB 函数SS(),执行如下程序% MATLAB Program example 6.1.mA=[0 1;-7 -3];B=[0;1];C=[5 0];D=0;sys=ss(A,B,C,D)运行后得到如下结果a =x1 x2x1 0 1x2 -7 -3b =u1x1 0x2 1c =x1 x2y1 5 0d =u1y1 0Continuous-time model.2、状态空间模型与传递函数模型转换状态空间模型用sys表示,传递函数模型用G表示。
G=tf(sys)sys=ss(G)状态空间表达式向传递函数形式的转换G=tf(sys)Or [num,den]=ss2tf(A,B,C,D)多项式模型参数[num,den]=ss2tf(A,B,C,D,iu)[z,p,k]=ss2zp(A,B,C,D,iu)零、极点模型参数iu用于指定变换所需的输入量,iu默认为单输入情况。
传递函数向状态空间表达式形式的转换sys=ss(G)or [A,B,C,D]=tf2ss(num,den)[A,B,C,D]=zp2ss(z,p,k)例8.211122211220.560.050.03 1.140.2500.1101001x x u x x u y x y x -⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦⎣⎦⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦试用矩阵组[a ,b ,c ,d]表示系统,并求出传递函数。
状态空间模型分析实验报告

den = 1 0 -3 2
z =3.0000
2.0000
p = -2.0001
1.3397
0.999999984416603
k = 5
ssG =
a =
x1 x2 x3
x1 0 1.5 -1
x2 2 0 0
x3 0 1 0
b =
u1
x1 8
x2 0
x3 0
c =
x1 x2 x3
den=conv(conv([1,-1],[1 -1]),[1 2])%传递函数分母多项式
tfG=tf(num,den);%传函的分式形式
zpG=zpk(tfG);%转换成零极点模型
[z,p,k]=zpkdata(zpG,'v')%列出零极点及比例系数
ssG=ss(tfG)%转换成状态空间形式
结果:
代码:
A=[0 1;-3 -4];
B=[0;1];
co=ctrb(A,B);
det(ob)
结果:
det(ob)=-1;所以系统是能控的
代码:
A=[0 1;-3 -4];
B=[0;1];
C=[3 2];
D=[0];
P=[-4 -5]
K=place(A,B,P)
t=0:0.01:5;
U=0.025*ones(size(t));%幅值为0.025输入阶跃信号
按能控性分解后的系统状态空间表达式为:
故此二维子系统是能控的。
能观性分解
代码:
[a2,b2,c2,t,k]=obsvf(A,B,C)%能观性分解
结果:
a2 = -1.0000 1.3416 3.8341
matlab状态空间表达式的解

标题:MATLAB状态空间表达式的解析一、概述MATLAB是一种非常常用的数学软件,用于分析、设计和模拟动态系统。
在控制系统理论中,状态空间表达式是描述线性系统动态行为的重要方法。
本文旨在介绍如何使用MATLAB对状态空间表达式进行解析和分析。
二、状态空间表达式简介状态空间表达式是一种描述线性时不变系统的数学模型。
通常由状态方程和输出方程组成。
状态方程描述了系统的演化规律,而输出方程则描述了系统状态和输出之间的关系。
三、MATLAB中的状态空间表示在MATLAB中,状态空间表示可以使用ss函数进行表达。
该函数的输入参数包括系统的状态方程系数矩阵A、输入矩阵B、输出矩阵C 和前馈矩阵D。
四、求解状态空间表达式1. 稳态响应分析在MATLAB中,可以使用sys = ss(A,B,C,D)定义一个状态空间模型,然后使用step(sys)绘制系统的阶跃响应曲线。
通过阶跃响应曲线可以分析系统的稳态性能。
2. 传递函数表示使用tf(sys)可以将状态空间表示转换为传递函数表示,这样可以更方便地分析系统的特性。
3. 稳定性分析使用eig(A)可以计算状态方程系数矩阵A的特征值,从而判断系统的稳定性。
如果系统的所有特征值都是负实数,那么系统是稳定的。
4. 频域特性分析使用bode(sys)可以绘制系统的频率响应曲线,这样可以分析系统在不同频率下的特性。
五、应用实例以电机控制系统为例,假设系统的状态空间表达式为:A = [-2 -1; 3 -4]B = [1; 0]C = [0 1]D = [0]可以使用以下代码在MATLAB中求解该系统:sys = ss(A,B,C,D)step(sys)tf_sys = tf(sys)eig(A)bode(sys)六、结语本文介绍了MATLAB中状态空间表达式的解析方法,并以电机控制系统为例进行了说明。
希望本文能够帮助读者更好地理解和应用状态空间表达式在MATLAB中的求解方法。
第8章MATLAB系统空间分析法

第8章MATLAB系统空间分析法MATLAB系统空间分析法是一种基于MATLAB软件进行地理空间数据处理和分析的方法。
该方法结合了地理信息系统(GIS)和MATLAB工具箱的功能,提供了一种强大的工具来处理和分析地理数据。
在MATLAB系统空间分析法中,首先需要导入地理空间数据。
可以使用MATLAB的文件读取和处理功能,导入各种地理空间数据格式,如Shapefile、Raster等。
导入数据后,可以使用MATLAB的地理数据处理函数对这些数据进行处理和分析。
例如,可以使用地理点对象、地理线对象和地理多边形对象等来表示不同类型的地理空间数据,并使用相关工具箱函数计算地理距离、区域面积等。
接下来,可以使用MATLAB的空间分析函数进行各种空间分析。
其中包括邻接分析、缓冲区分析、空间插值、空间统计等多种方法。
例如,可以使用邻接矩阵和地理网络分析函数计算地理空间网络的邻接关系和最短路径。
可以使用缓冲区分析函数计算地理空间数据的缓冲区范围,并分析其中包含的其他地理实体。
可以使用空间插值函数进行地理空间数据的空间插值,以预测和分析地理现象的分布和变化。
可以使用空间统计函数计算地理空间数据的聚集性、相关性、分布模式等。
MATLAB系统空间分析法还支持可视化分析。
可以使用MATLAB的绘图功能将地理空间数据展示为地图,结合地图投影和符号制图方法进行地理数据的可视化。
可以使用图层控制和标注功能对地图进行图层管理和标记。
可以使用交互操作和动画效果来浏览和分析地理空间数据。
总之,MATLAB系统空间分析法提供了一种综合利用MATLAB软件和地理信息系统功能进行地理空间数据处理和分析的方法。
通过这种方法,可以快速高效地处理和分析地理空间数据,并从中提取有用的信息和知识,为地理学、环境科学、城市规划等领域的研究和决策提供支持。
利用MATLAB对状态空间模型进行分析

利用MATLAB对状态空间模型进行分析(一)状态空间模型的引入
状态空间模型是一种概率统计模型,它利用了状态变量和观测变量来描述系统的特性,可以用来模拟复杂的或不可观测的动态过程。
状态空间模型的核心思想是,将动态系统的状态变量和观测变量分别建模,并用一组数学方程表示整个系统。
这样,状态空间模型可以更好地揭示动态系统的特性,从而更好地进行控制和优化。
(二)状态空间模型的形式
状态空间模型由两部分组成:状态转移方程和观测方程。
状态转移方程用于描述系统的状态变量的动态变化,而观测方程则用于表示系统的观测变量的变化趋势。
状态转移方程可以表示为:
x_t = A_tx_{t-1} + B_tu_t + ν_t
其中,x_t表示状态变量的确定值,A_t表示状态转移矩阵,B_t表示输入矩阵,u_t表示输入信号,ν_t表示噪声。
观测方程可以表示为:
y_t = C_tx_t + D_tu_t + ε_t
其中,y_t表示观测变量的确定值,C_t表示观测矩阵,D_t表示输出矩阵,u_t表示输入信号,ε_t表示噪声。
(三)MATLAB绘制状态空间模型
1.为了完成状态空间模型的绘制,首先需要利用MATLAB来定义状态转移方程与观测方程的矩阵参数。
MATLAB在 状态空间分析中的应用

MATLAB在状态空间分析中的应用
1.1 建立状态空间模型
利用MATLAB提供的ss函数,可以建立系统的状态空间模型;利用tf2ss函数, 可以将系统的传递函数转换为状态空间表达式,它们在MATLAB中的调用格式分别 为
sys=ss(A,B,C,D) [A,B,C,D]=tf2ss(num,den)
1.3 求解极点配置问题
针对单输入系统和多输入系统,MATLAB分别提供了acker函数和place函数, 用来求解系统的状态反馈增益矩阵K。其中acker函数多用于求解多重极点配置问 题,但只适用于10阶以下的单输入系统,其调用格式如下。
K=acker(A,B,P) 其中,K为状态反馈增益矩阵;A,B分别为系统矩阵和输入矩阵;P为期望闭环 极点组成的向量。
运行结果为
A=[-3,-4,-2;1,0,0;0,1,0] B=[1,0,0] C=[2,5,7] D=0
因此,该系统等效的状态空间表达式为
其中
X AX BU Y CX
x1
3 4 2
1
X
x2
,
A
1
0
0
,
B 0 , C 2
5
7
x3
0 1 0
0
1.2 判断系统的能控性和能观性
利用MATLAB提供的ctrb函数和obsv函数,可求取线性定常系统的能控性矩 阵M和能观性矩阵N,然后再用rank函数求取矩阵的秩,并与n比较后来判别系统 的能控性和能观性。各函数的调用格式分别如下。
M=ctrb(A,B) N=obsv(A,C) nc=rank(M) no=rank(N)
【例 9-12】设控制系统的状态空间表达式为
运行结果为 K=[5 7.33 5]
实验一 用MATLAB分析状态空间模型

实验一 用MATLAB 分析状态空间模型1、实验设备MATLAB 软件2、实验目的① 学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;② 通过编程、上机调试,掌握系统状态空间表达式与传递函数相互转换方法。
3、实验原理说明用MATLAB 分析状态空间模型4、实验步骤① 根据所给系统的传递函数或A 、B 、C 矩阵,依据系统的传递函数阵和状态空间表达式之间的关系式,采用MATLAB 编程。
② 在MATLAB 界面下调试程序,并检查是否运行正确。
习题1:已知系统的传递函数为(1) 将其输入到MATLAB 工作空间;(2) 获得系统的状体空间模型。
解:在MATLAB 工作空间中输入num=[2];den=[1 6 11 6];G=tf(num,den) G1=ss(G) 322()6116G s s s s =+++得到系统的状态空间模型:num=[2];den=[1 6 11 6];G=tf(num,den)G1=ss(G)[A,B,C,D]=tf2ss(num,den)因此,所考虑传递函数的一个状态空间实现是:1611611210020301030x x x x x x μ---⎛⎫⎛⎫⎛⎫⎛⎫ ⎪ ⎪⎪ ⎪=+ ⎪ ⎪⎪ ⎪ ⎪ ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭习题2:已知系统的状态空间模型为(1) 将其输入到MATLAB 工作空间;(2) 求系统的传递函数。
A=[-5 -1;3 -1];B=[2;5];C=[1 2];D=[0];G=ss(A, B, C, D)G1=tf(G)所以系统的传递函数为:G =x1y u x x ]2[521315=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡---='12 s + 59 -------------s^2 + 6 s + 8。
用MATLAB分析状态状态空间模型

a =
x1 x2 x3
x1 -6 -1.375 -0.09375
x2 8 0 0
x3 0 8 0
b =
u1
x1 0.25
x2 0
x3 0
c =
x1 x2 x3
y1 0 0 0.375
d =
u1
y1 0
(3)将给定传递函数转换为对角标准型或约当标准型。再将得到的对角标准型或约当
标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。
(3)A=[0 1 0 0;0 -1 1 0;0 0 -1 1;0 0 0 -3];B=[0 0 0 2]';C=[2 0 0 0];D=0;
sys=ss(A,B,C,D);[V,J]=jordan(A);sys1=ss2ss(sys,inv(V))
x2 0 -1 10
x3 0 0 -1 1
x4 0 0 0 -3
b =
u1
x1 0
x2 0
x3 0
x4 2
c =
x1 x2 x3 x4
y1 2 0 0 0
d =
u1
y1 0
Gtf=tf(Gss)
Transfer function:
4
-------------------------
s^4 + 5 s^3 + 7 s^2 + 3 s
(2)用ss2ss函数进行相似变换将其转换为对角标准型。
>> A=[-6 -1.375 -0.09375;8 0 0;0 8 0];B=[0.25 0 0]';C=[0 0 0.375];D=0;
第九章 状态空间分析方法 matlab simulink与控制系统仿真 第三版 课件

用 e At 左乘上式两边
t
x(t)eAtx(0) eA(t)B(u )d (9-54)
0
则式(9-54)可以写成
t
x (t) Φ (t)x (0 ) (t)B u ()d (9-55) 0
41
讨论非齐次状态方程的拉氏变换解法
s x (s ) x 0 A (s ) x B s u x ( s ) ( s I A ) 1 x 0 ( s I A ) 1 B s u
(4) [ (t)]k (kt)
32
性质3
图9-8 状态转移特性
33
例9-5
设系统的状态方程为
x1 x2
0 0
1 0
x1 x2
试求状态转移矩阵。
34
解:
求状态转移矩阵为
(t) e A t I A t 1A 2 t21A k tk
2 !
k !
其中
0 A 0
1 0
, A2
A3
I A A2
Ak
s s2 s3 sk1
30
最终得到
x(t)eAtx(0) (t)x(0)
(9-41)
式中
teA t expA t
• 与前一种解法所得结果一致。
31
状态转移矩阵具有以下性质:
(1) (0)I
(2) 1(t)(t) ( 3 ) ( t 2 t 1 ) ( t 1 t 0 ) ( t 2 t 0 )
0
0
1
0
0 0
x
,
A
,
B
xn
0 0 0 1 a0 a1 a2 an1
0
(9-19)
15
系统结构图如图所示
Matlab分析和设计

倒立摆系统的主要变量和参数
旋臂位置1 旋臂质量m1 0.200kg 摆杆位置2 摆杆质量m2 0.052kg
旋臂长度R
旋臂质心到转轴 距离L1
0.20m
0.1m
摆臂长度R2
摆杆质心到转轴 距离L2
0.25m
0.12m
电机力矩系数Km
旋臂绕轴转动的 转动惯量J1 旋臂绕轴转动的 摩擦力矩系数f1
利用Matlab进行 状态空间分析和 设计
状态空间分析
ctrb(A,B)----能控性矩阵 obsv(A,C)----能观性矩阵 [A1,B1,C1,P]=ctrbf[A,B,C]----能控性结构分解
(与计算得到的略有区别,这里不可控状态在前面部分)
[A1,B1,C1,P]=obsvf[A,B,C]----能观性结构分解
0.0236 Nm/V
0.004 kgm2 0.01 Nms
电机饭电势系数 Ke
摆杆绕轴转动的 转动惯量J2 摆杆绕轴转动的 摩擦力矩系数f2
0.2865 Vs
0.001 kgm2 0.001 Nms
对摆杆
f J 2 2 2 2 M 12 m2 gL2 sin 2
M12是旋臂对摆杆的力矩,为惯性力矩,满足
2 sin( ) R cos( )] M 12 m2 L2 [ R 1 1 2 1 1 2
对旋臂 M0是为电机输出转矩,满足
) M 0 K m (u K e 1 f J1 1 1 1 M 0 M 21 m1 gL1 sin 1
状态反馈与观测器
极点配置: K=place(A,B,p) 或 K=acker(A,B,p) 使得A-B*K的特征值为p 观测器 利用对偶性原理 H’=place(A’,C’,p) 或 H’=acker(A’,C’,p) 使得A-H*C的特征值为p
利用MATLAB对状态空间模型进行分析

实验2 利用MATLAB 对状态空间模型进行分析2.1 实验设备 同实验1。
2.2 实验目的1、根据状态空间模型分析系统由初始状态和外部激励所引起的响应;2、通过编程、上机调试,掌握系统运动的分析方法。
2.3 实验原理说明给定系统的状态空间模型:)()()()()()(t t t t t t Du Cx y Bu Ax x+=+=& (2.1)设系统的初始时刻,初始状态为,则系统状态方程的解为)0(x 00=t ∫∫−−+=+=tt t tt t e e eee t 0)(0d )()0(d )()0()(ττττττBu x Bu x x A A A A A (2.2)输出为)(d )()0()(0)(t e e t tt t Du Bu C x C y A A ++=∫−τττ (2.3))(t x 包括两部分,第一部分是由系统自由运动引起的,是初始状态对系统运动的影响;第二部分是由控制输入引起的,反映了输入对系统状态的影响。
输出由三部分组成。
第一部分是当外部输入等于零时,由初始状态引起的,故为系统的零输入响应;第二部分是当初始状态为零时,由外部输入引起的,故为系统的外部输入响应;第三部分是系统输入的直接传输部分。
)(t y )(0t x )(0t x MATLAB 函数:函数initial(A,B,C,D,x0)可以得到系统输出对初始状态x0的时间响应; 函数step(A,B,C,D)给出了系统的单位阶跃响应曲线; 函数impulse(A,B,C,D) 给出了系统的单位脉冲响应曲线;函数 [y,T,x]=lsim(sys,u,t,x0) 给出了一个状态空间模型对任意输入的响应,其中的sys 表示贮存在计算机内的状态空间模型,它可以由函数sys=ss(A,B,C,D)得到,x0是初始状态。
u 2.4 实验步骤1、构建系统的状态空间模型,采用MATLA 的m-文件编程;2、求取系统的状态和输出响应;3、在MATLA 界面下调试程序,并检查是否运行正确。
用MATLAB分析状态空间模型

a= x1 x2 x3 x4 b= u1 x1 4 x2 2 x3 2 x4 0 x1 2.25 2.25 0.25 1.25 x2 x3 x4 -5 -1.25 -0.5 -4.25 -1.25 -0.25 -0.5 -1.25 -1 -1.75 -0.25 -0.75 c=
u2 6 4 2 2
0 0 x 0 0 y 1 1 0 0 0 0 0 0 1 0 1 x u 0 0 1 5 0 2 0 0 x 0
可由下列语句得出系统相应的传递函数模 型 • >> A=[0,1,0,0;0,0,-1,0;0,0,0,1;0,0,5,0]; • >> B=[0;1;0;-2]; • >> C=[1,0,0,0]; • >> D=0; • >> G=ss(A,B,C,D);G1=tf(G)
可由下列语句输入到MATLAB工作空间 >>A=[2.25,-5,-1.25,-0.5;2.25,-4.25,1.25,-0.25;0.25,-0.5,-1.25,-1;1.25,-1.75,0.25,-0.75]; >>B=[4,6;2,4;2,2;0,2]; >>C=[0,0,0,1;0,2,0,2]; >>D=zeros(2,2); >>G=ss(A,B,C,D)
Ax Bu x y Cx Du
>>A=[a11,a12,…,a1n;a21,a22,…,a2n;…;an1, …,ann]; >>B=[b0,b1,…,bn]; >>C=[c1,c2,…,cn]; >>D=d; 构造状态空间模型 >>ss(A,B,C,D)
状态空间综合实验报告(3篇)

第1篇一、实验目的本次实验旨在通过MATLAB软件,掌握状态空间模型的基本概念,包括状态变量、状态空间、状态方程、输出方程等。
通过实验,学会构建状态空间模型,进行状态空间变换,求解状态转移矩阵,分析系统的可控性和可观测性,并实现系统的控制律设计。
二、实验内容1. 状态空间模型的构建与状态空间变换2. 状态转移矩阵的求解3. 系统的可控性和可观测性分析4. 系统的控制律设计三、实验步骤1. 构建状态空间模型以一个简单的二阶系统为例,其传递函数为:\[ G(s) = \frac{1}{s^2 + 2s + 2} \]根据传递函数,我们可以得到系统的状态空间模型如下:\[ \begin{cases}\dot{x}_1 = x_2 \\\dot{x}_2 = -x_1 - x_2\end{cases} \]其中,\( x_1 \) 和 \( x_2 \) 分别为系统的状态变量。
2. 状态空间变换为了方便分析系统的可控性和可观测性,我们需要对状态空间模型进行对角化。
通过求解特征值和特征向量,我们可以得到对角化后的状态空间模型:\[ \begin{cases}\dot{x}_1 = -2x_1 \\\dot{x}_2 = -2x_2\end{cases} \]其中,\( \lambda_1 = \lambda_2 = -2 \) 为系统的特征值。
3. 状态转移矩阵的求解根据状态空间模型,我们可以求解状态转移矩阵 \( P \):\[ P = e^{At} \]其中,\( A \) 为系统的状态矩阵。
4. 系统的可控性和可观测性分析通过计算系统的可控性和可观测性矩阵,我们可以判断系统的可控性和可观测性。
- 可控性矩阵 \( C \):\[ C = \begin{bmatrix}B & AB\end{bmatrix} \]- 可观测性矩阵 \( C^T \):\[ C^T = \begin{bmatrix}C^T & C^T A\end{bmatrix} \]通过计算 \( C \) 和 \( C^T \) 的秩,我们可以判断系统的可控性和可观测性。
基于MATLAB的控制系统状态空间分析

现代控制理论实验报告学院专业班级姓名指导教师年月日基于MATLAB的控制系统状态空间分析一、实验目的1、根据线性定常系统的微分方程或传递函数阵,通过MATLAB函数实现其状态空间表达式;2、将线性定常系统状态空间表达式转化为传递函数阵;3、通过MATLAB命令实现状态方程的求解;4、通过线性变换将状态空间表达式转化为对角标准型和约当标准型。
二、实验原理1、状态空间表达式建立与状态方程求解:运用适当的MATLAB指令语言可求得状态空间表达式或是传递函数以及状态方程求解,其过程比人工计算简单得多,而且结果准确,从而大降低了了人工计算的失误率;2、线性变换:若A的特征值没有重根,则可以将A变换为对角阵,变换矩阵为每个特征值对应特征向量所组成的矩阵;若矩阵A的n个特征值中有重特征值时,可分为两种情况。
一般情况是,有特征值,但矩阵A仍有n个独立的特征向量,即每个重特征值所对应的独立特征向量数恰好等于特征值的重数,这时就同没有重特征值的情况一样。
另一种,A有重特征值,矩阵A的独立特征向量个数小于n。
这时不能化为对角形,只能化为约当形。
三、实验题目1、1-5题已知微分方程+5+7+3y=+3+2u, 写其相应的状态空间表达式.2、1-7题给定下列状态空间表达式=+uY=求系统的传递函数。
3、1-9试求下列状态空间表达式的传递函数阵=+u。
4、求下列状态空间表达式的解:=x+u,Y=,初始状态x=,输入u是单位阶跃函数。
四、实验内容题目1:函数程序:num=[1,3,2];den=[1,5,7,3];[A,B,C,D]=tf2ss(num,den)执行结果:A =-5 -7 -31 0 00 1 0B =1C =1 3 2D =题目2:解输入Matlab 语句如下:A=[0 1 0;-2 -3 0;-1 1 -3];B=[0;1;2];C=[0 0 1];D=[0];执行结果:[num,den]=ss2tf(A,B,C,D)num =0 2.0000 7.0000 3.0000den =1 6 11 6所以由此可得系统的传递函数为=题目3:函数程序:syms s;A=[4 1 2;1 0 2;1 -1 3];B=[3 1;2 7;5 3];C=[1 2 0;0 1 1];D=[0];F=inv(s*eye-A)G=simple(simple(C*F*B)+D)执行结果:F =[ -2/5, (3*s - 5)/(5*(s - 1)), -(s - 2)/(5*(s - 1))] [ 1/5, -(4*s - 10)/(5*(s - 1)), (3*s - 6)/(5*(s - 1))] [ 1/5, (s + 5)/(5*(s - 1)), -(2*s + 1)/(5*(s - 1))] G =[ 3 - 1/(s - 1), 11/(s - 1) - 4][ 1 - 6/(5*(s - 1)), 66/(5*(s - 1)) - 16/5]题目4:函数程序:syms s t x0 tao phi phi0;A=[0 1;0 0];B=[0;1];I=[1 0;0 1];E=s*I-A;C=det(E);D=collect(inv(E));phio=ilaplace(D);x0=[1;1];x1=phio*x0;phi=subs(phio,'t',(t-tao));F=phi*B*1;x2=int(F,tao,0,t);x=collect(x1+x2)执行结果:x =t^2/2 + t + 1t + 1可得相应的输出为:Y=x=+t+1五、实验总结通过本次实验课,我熟练的掌握了用MATLAB软件在已知传递函数的条件下,求状态空间表达式。
MATLAB实验报告_8

实验一基本操作和简单语句输入一、实验环境计算机MATLAB软件二、实验目的1.熟悉MA TLAB的命令窗口。
2、掌握MATLAB的一些基本操作, 能够进行一般的数值计算。
3.实现语句的重调和修改。
三、实验内容与步骤1.启动MA TLAB2.观察MA TLAB窗口的各个组成部分(1)了解菜单栏各窗口项的功能, 用鼠标打开MA TLAB的各个菜单, 在状态栏里显示当前鼠标所指的菜单项的含义。
(2)用鼠标指向常用工具栏的每个工具按钮, 了解各工具按钮的含义。
3.命令窗口的打开和关闭(1)查看菜单窗口中有哪些菜单命令。
(2)在命令窗口中输入命令a=3;b=4;y=a*b+a/b, 然后回车, 查看命令显示结果。
>> a=3;b=4;y=a*b+a/b,y =12.7500(3)利用MA TLAB中编辑命令时常用的按键功能, 调用上一个语句, 对它进行修改(如把分号改成逗号, 看运行结果), 并把运行结果复制到word中保存。
>> a=3,b=4,y=a*b+a/b,a =3b =4y =12.7500(4)关闭命令窗口。
(5)打开命令窗口。
4.使用MA TLAB帮助熟悉MATLAB的帮助系统, 通过帮助系统了解有关内容。
5、在命令窗口中输入demo, 将出现MA TLAB的演示窗, 通过演示窗, 对MATLAB的功能进行一次浏览。
四、练习1.计算y=x^3+(x-0.98)^2/(x+1.25)^3-5*(x+1/x), x=2, x=3时的值。
>> x=2;y=x^3+(x-0.98)^2/(x+1.25)^3-5*(x+1/x)y =-4.4697>> x=3;y=x^3+(x-0.98)^2/(x+1.25)^3-5*(x+1/x)y =10.38652.计算cos(pi/3)-sqrt(9-sqrt(2))>> cos(pi/3)-sqrt(9-sqrt(2))ans =-2.25423.已知: a=3,A=4,b=a^2,B=b^2-1,c=a+A-2*B,C=a+B+2*c, 求: C>> a=3;A=4;b=a^2;B=b^2-1;c=a+A-2*B;C=a+B+2*cC =-2234.复数z1=1+3*i,z2=1+2*i,z3=2*exp((pi/6)*i),求z=(z1*z2)/z3>> z1=1+3*i;z2=1+2*i;z3=2*exp((pi/6)*i);z=(z1*z2)/z3z =-0.9151 + 3.4151i实验二矩阵和数组的操作一、实验环境计算机MATLAB软件二、实验目的1.掌握矩阵和数组的一般操作, 包括创建、保存、修改和调用等。
第8章MATLAB系统空间分析法

EX2 已知控制系统 求控制系统的特征方程
A=[2 1 -1;1 2 -1;-1 -1 2]; I=[1 0 0;0 1 0;0 0 1];
2 1 1 A 1 2 1 1 1 2
syms s %符号计算
det(s*I-A)
ans = s^3-6*s^2+9*s-4 s= [ 4] [ 1] [ 1]
1
AZ Bu Z y C Z Du
EX3
A=[0 -2;1 -3];B=[2 0]';C=[0 3]; A1 = 0 P=[6 2;2 0];%变换矩阵x=Pz -2 P1=inv(P); A1=P1*A*P %z坐标系的模型 B1=P1*B C1=C*P B1 = 0 1 -3
第8章 系统状态空间分析法
8.4节和8.5节
内容
系统特征方程及解 关于系统相似变换 关于系统可观性、可控性判别的 状态反馈极点配置 状态观测器
8.1 系统状态方程的解
X(t ) e X0 e
At 0 t A ( t )
BsI A]1}
A X B u Equals to X Model A , B , C Model y CX AX Bu X A, B, C y CX
u
u
B
x
x
C
A
y
But x in model is different from x in the origin system A, B, C, because x0 is/are unmeasured directly.
若状态方程是齐次的,即有:
Ax x x(t ) e x(0)
现代控制实验(Matlab)

实验1:用MATLAB 语言对状态空间模型进行分析一.实验目的:1.掌握状态方程和输出方程输入语句G=ss(A,B,C,D)的用法2.求状态方程的解3.判断系统的能控性与能观性4.判断系统的稳定性二.实验原理:1.掌握状态方程和输出方程输入语句G=ss(A,B,C,D)的用法对于线性时不变系统来说,其状态方程为⎩⎨⎧+=+=Du Cx y Bu Ax x在Matlab 下只需将各系数矩阵输到工作空间即可。
调用格式: G=ss(A,B,C,D)例1. 双输入双输出系统的状态方程表示为u x x ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--=112501327204123526134021, x y ⎥⎦⎤⎢⎣⎡=10221200该状态方程可以由下面语句输入到MATLAB 工作空间去。
A=[1,2,0,4;3,-1,6,2;5,3,2,1;4,0,-2,7];B=[2,3;1,0;5,2;1,1];C=[0,0,2,1;2,2,0,1];D=zeros(2,2);G=ss(A,B,C,D)2.矩阵eAt 的数值计算在Matlab 中,给定矩阵A 和时间t 的值,计算矩阵指数e At的值可以直接采用基本矩阵函数expm()。
Matlab 的expm()函数采用帕德(Pade)逼近法计算矩阵指数e At ,精度高,数值稳定性好。
expm()函数的主要调用格式为:Y = expm(X)其中,X 为输入的需计算矩阵指数的矩阵,Y 为计算的结果。
例2.(1)试在Matlab 中计算矩阵0123A ⎡⎤=⎢⎥--⎣⎦ 的矩阵指数e At 。
syms tA=[0 1;-1 -3];eAt=expm(A*t)(2)求在t=0.3时的矩阵指数e At 的值。
A=[0 1;-1 -3];eAt=expm(A*t)t=0.3 ;eAt03=expm(A*t)3.求状态方程的解例3.已知SISO 系统的状态方程为[]01323011xx u y x ⎡⎤⎡⎤=+⎢⎥⎢⎥--⎣⎦⎣⎦=(选作)(1)0u =,()101x ⎡⎤=⎢⎥-⎣⎦,求当t=0.5时系统的矩阵指数及状态响应; 矩阵指数:A=[0,1;-2,-3]; expm(A*0.5)状态响应:x0=[1;-1];x=expm(A*0.5)*x0(选作)(2)1()u t =,()000x ⎡⎤=⎢⎥⎣⎦,绘制系统的状态响应及输出响应曲线; 程序: A=[0,1;-2,-3];B=[3;0];C=[1,1];D=0;G=ss(A,B,C,D);[y,t,x]=step(G);figure(1);plot(t,x) ; %状态响应:figure(2);plot(t,y);%输出响应:(选作)(3)1cos 3t u e t -=+,()000x ⎡⎤=⎢⎥⎣⎦,绘制系统的状态响应及输出响应曲线; 程序:A=[0,1;-2,-3];B=[3;0];C=[1,1];D=0;t=[0:.04:4];u=1+exp(-t).*cos(3*t);G=ss(A,B,C,D);[y,t,x]=lsim(G,u,t);figure(1);plot(t,x) %状态响应:figure(2);plot(t,y) %输出响应:(选作)(4)0u =,()102x ⎡⎤=⎢⎥⎣⎦,绘制系统的状态响应及输出响应曲线; 程序:A=[0,1;-2,-3];B=[3;0];C=[1,1];D=0;t=[0:.04:7];u=0;x0=[1;2];G=ss(A,B,C,D);[y,t,x]=initial(G,x0,t);figure(1);plot(t,x) %状态响应:figure(2);plot(t,y)%输出响应:(5)在余弦输入信号和初始状态()101x ⎡⎤=⎢⎥⎣⎦下的状态响应曲线。
用MATLAB分析状态空间模型

用MATLAB分析状态空间模型状态空间模型是一种用于描述动态系统的数学模型。
在MATLAB中,可以使用状态空间方法对系统进行分析和控制。
本文将从状态空间模型的定义、矩阵表示、稳定性以及控制器设计等方面进行详细介绍。
一、状态空间模型的定义状态空间模型是一种描述动态系统的数学模型,其中系统的行为是通过状态变量的演化来表示的。
状态空间模型通常由一组一阶微分方程表示,形式如下:dx(t)-------------------=Ax(t)+Bu(t)dty(t)=Cx(t)+Du(t)其中,x(t)是状态变量向量,表示系统的内部状态;u(t)是输入向量,表示对系统的外部输入;y(t)是输出向量,表示观测到的系统输出;A、B、C和D分别是系统的状态矩阵、输入矩阵、输出矩阵和直接传递矩阵。
二、状态空间模型的矩阵表示在MATLAB中,可以使用矩阵表示状态空间模型。
假设有一个由状态变量x、输入变量u和输出变量y组成的系统,可以通过矩阵表示如下:x'=Ax+Buy=Cx+Du其中,x'表示状态变量x的导数。
在MATLAB中,可以使用matrix函数创建状态矩阵A、输入矩阵B、输出矩阵C和直接传递矩阵D。
例如,可以使用如下代码定义一个状态空间模型:A=[12;34];B=[1;1];C=[10];D=0;sys = ss(A, B, C, D);在上述代码中,创建了一个状态空间模型sys,其中状态矩阵A是一个2×2的矩阵,输入矩阵B是一个2×1的矩阵,输出矩阵C是一个1×2的矩阵,直接传递矩阵D是一个标量。
三、状态空间模型的稳定性分析在控制系统设计中,稳定性是一个重要的指标。
对于线性时不变系统,可以使用状态空间模型进行稳定性分析。
MATLAB提供了一些函数用于稳定性分析,如eig、pole和isstable等。
eig函数用于计算系统的特征值,特征值的实部决定了系统的稳定性。
【实验报告】《自动控制原理》实验三 用Matlab进行状态空间分析及设计

实验三用Matlab进行状态空间分析及设计1.A=[0 1 0;0 0 1;-6 -11 -6];B=[0;0;1];C=[1 0 0];sys1=ss(A,B,C,0);[num,den]=ss2tf(A,B,C,0);sys2=tf(num,den);[z,p,k]=tf2zp(num,den);e=eig(sys1);t=0;F=expm(A*t);t=[0:0.1:5];t0=0;x0=[2;1;2];u=stepfun(t,t0);[y,x]=lsim(sys1,u,t,x0);figure(1);plot(t,x);grid;title('step response of x');figure(2);plot(t,y);grid;title('step response of y');Qc1=ctrb(sys1);c=rank(Qc1);if c==3disp('sys1 is controlled');endQo1=obsv(sys1);o=rank(Qo1);if o==3disp('sys1 is observable');endsys3=ss(A',C',B',0);T=[1 2 4;0 1 0;0 0 1] ;sys4=ss2ss(sys1,T);Qc4=ctrb(sys4);c=rank(Qc4);if c==3disp('sys4 is controlled');endQo4=obsv(sys4);o=rank(Qo4);if o==3disp('sys4 is observable');end(1)传递函数及由此得到的系统的极点极点p =[-3.0000-2.0000-1.0000](2)根据状态空间模型得到的系统的特征值(由语句eig(sys1)求出)ans=[-1.0000-2.0000-3.0000]系统的特征值全部位于s平面的左半部分,由此判断出系统是一个稳定系统(3)求系统的状态转移矩阵(由语句symst1 ;expm(A*t1)求出)(4)求系统在x0=[2; 1; 2], u为单位阶跃输入时x及y的响应记录曲线如下:A:单位阶跃输入时状态变量X的响应曲线:B:单位阶跃输入时系统输出y响应曲线(5)系统的可控性,可观性分析A.系统的可控性矩阵s为:s = 0 0 10 1 -61 -6 25则系统可控性矩阵的秩f=3,矩阵A的维数为n=3得到系统的结果是system is controlled即系统是可控的B.系统的可观性矩阵v为:v =1 0 00 1 00 0 1则系统可观性矩阵的秩m=3,矩阵A的维数为n=3得到系统的结果是system is observable即系统是可观测的实验结论:由运行结果可知该系统既可控也可观(6)将原来的系统状态空间模型转化为以下俩种标准形式A.转化为对角线的标准形式(由语句sys3=canon(sys1,'modal')求出)B.转化成为A为伴随矩阵的标准形式(由语句sys4=canon(sys1,'companion')求出)(6)T=[1 2 4;0 1 0;0 0 1] 对上述状态空间模型进行变换,分析变换后的系统的空间模型为(有语句T=[1 2 4;0 1 0;0 0 1] ;sys5=ss2ss(sys1,T)实现)对变换后的系统的空间模型进行可控可观性分析得到的结果是系统的可控性矩阵s为s=1 0 00 1 00 0 1可控性矩阵的秩f=3得到系统的结果是system is controlled即系统是可控的系统的可观性矩阵v为v =0 0 10 1 -61 -6 25系统的可观测矩阵的秩m =3得到系统的结果是system is observable即系统是可观测的系统的特征根ans=[ -1.0000 -2.0000 -3.0000 ]2.A1=[0 2 0 0;0 1 -2 0;0 0 3 1;1 0 0 0];B1=[1 0;0 0;0 1;1 0];C1=[0 1 0 0;0 0 1 0];sys1=ss(A1,B1,C1,0);Qc1=ctrb(sys1);c=rank(Qc1);if c==4disp('sys1 is controlled');endQo1=obsv(sys1);o=rank(Qo1);if o==4disp('sys1 is observable');end系统的可控性矩阵s为:s =1 0 0 0 0 -4 -4 -160 0 0 -2 -2 -8 -10 -260 1 1 3 4 9 12 271 0 1 0 0 0 0 -4可控性矩阵的秩f = 4系统的维数n =4得到系统的结果是system is controlled即系统是可控的系统的可观性矩阵v为:v =0 1 0 00 0 1 00 1 -2 00 0 3 10 1 -8 -21 0 9 3-2 1 -26 -83 2 27 9系统的可观性矩阵秩m =4得到系统的结果是system is observable即系统是可观测的综上说明该系统即是可控的也是可观测的A2=[-3 1 0 0 0 0 0 0;0 -3 0 0 0 0 0 0;0 0 -4 1 0 0 0 0;0 0 0 -4 0 0 0 0;0 0 0 0 -1 1 0 0;0 0 0 0 0 -1 0 0;0 0 0 0 0 0 -5 1;0 0 0 0 0 0 0 5];B2=[1 3;5 7;4 3;0 0;1 6;0 0;9 2;0 0];C2=[3 1 0 5 0 0 3 6;1 4 0 2 0 0 7 1];sys2=ss(A2,B2,C2,0);Qc2=ctrb(sys2);c2=rank(Qc2);if c2==8disp('sys2 is controlled');endQo2=obsv(sys2);o2=rank(Qo2);if o2==8disp('sys2 is observable');end[A21,B21,C21,T21,K21]=ctrbf(A2,B2,C2);[A22,B22,C22,T22,K22]=obsvf(A2,B2,C2);系统的可控性矩阵s为:可控性矩阵的秩f=5系统的维数n =8得到系统的结果是system is no controlled即系统是不可控的系统的可观性矩阵v为:系统的可观性矩阵秩m =5得到系统的结果是system is no observable即系统是不可观测的综上说明该系统即是不可控的也是不可观测的A3=[-1 0 0 0;2 -3 0 0;1 0 -2 0;4 -1 2 -4];B3=[0;0;1;2];C3=[3 0 1 0];sys3=ss(A3,B3,C3,0);Qc3=ctrb(sys3);c3=rank(Qc3);if c3==4disp('sys3 is controlled');endQo3=obsv(sys3);o3=rank(Qo3);if o3==4disp('sys3 is observable');end[A31,B31,C31,T31,K31]=ctrbf(A3,B3,C3);[A32,B32,C32,T32,K32]=obsvf(A3,B3,C3);系统的可控性矩阵s为:s =0 0 0 00 0 0 01 -2 4 -82 -6 20 -72可控性矩阵的秩f = 2系统的维数n =4得到系统的结果是system is no controlled即系统是不可控的系统的可观性矩阵v为:v =3 0 1 0-2 0 -2 00 0 4 04 0 -8 0系统的可观性矩阵秩m =2得到系统的结果是system is no observable即系统是不可观测的综上说明该系统即是不可控的也是不可观测的3.A=[0 1 0; 0 0 1; -50 -25 -12];B=[0;0;1];C=[1 0 0];sys1=ss(A,B,C,0);Qc1=ctrb(sys1);c=rank(Qc1);if c==3disp('sys1 is controlled');endQo1=obsv(sys1);o=rank(Qo1);if o==3disp('sys1 is observable');endp=[-1,-10,-12];k=place(A,B,p);sys2=ss(A-B*k,B,C,0);[num,den]=ss2tf(A-B*k,B,C,0);G=tf(num,den);figure(1);step(sys1);grid;hold on;step(sys2);grid;legend('sys1','sys2');hold o ff;(1)判别系统的可控性系统的可控性矩阵s为:s =0 0 10 1 -121 -12 119可控性矩阵的秩f = 3系统的维数n =3得到系统的结果是system is controlled即系统是可控的系统的可观性矩阵v为:v =1 0 00 1 00 0 1系统的可观性矩阵秩m =3得到系统的结果是system is observable即系统是可观测的综上说明该系统即是可控的也是可观测的(2)设计状态反馈控制器使闭环极点为p=[-1,-10,-12];所求状态反馈增益矩阵为k=[70.0000 117.0000 11.0000] 状态反馈控制系统闭环状态矩阵:A1 =0 1 00 0 1-120-142 -23(3)求出闭环系统的传递函数和动态方程改变前系统传递函数改变后系统传递函数改变前系统的动态方程改变后系统动态方程(4)比较反馈前后系统的阶跃响应A.系统的单位阶跃响应状态曲线B.系统的单位阶跃响应输出曲线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八 线性系统的状态空间分析§8.1 用MATLAB 分析状态空间模型1、状态空间模型的输入线性定常系统状态空间模型x Ax Bu y Cx Du=+=+ 将各系数矩阵按常规矩阵形式描述。
[][][]11121120101;;;n n n nn n n A a a a a a a B b b b C c c c D d ====在MA TLAB 里,用函数SS()来建立状态空间模型(,,,)sys ss A B C D =例8.1 已知某系统微分方程22d d 375d d y y y u t t++= 求该系统的状态空间模型。
解:将上述微分方程写成状态空间形式0173A ⎡⎤=⎢⎥--⎣⎦,01B ⎡⎤=⎢⎥⎣⎦[]50C =,0D =调用MATLAB 函数SS(),执行如下程序% MATLAB Program example 6.1.mA=[0 1;-7 -3];B=[0;1];C=[5 0];D=0;sys=ss(A,B,C,D)运行后得到如下结果a =x1 x2x1 0 1x2 -7 -3b =u1x1 0x2 1c =x1 x2y1 5 0d =u1y1 0Continuous-time model.2、状态空间模型与传递函数模型转换状态空间模型用sys 表示,传递函数模型用G 表示。
G=tf(sys)sys=ss(G)状态空间表达式向传递函数形式的转换G=tf(sys)Or [num,den]=ss2tf(A,B,C,D) 多项式模型参数[num,den]=ss2tf(A,B,C,D,iu)[z,p,k]=ss2zp(A,B,C,D,iu) 零、极点模型参数iu 用于指定变换所需的输入量,iu 默认为单输入情况。
传递函数向状态空间表达式形式的转换sys=ss(G)or [A,B,C,D]=tf2ss(num,den)[A,B,C,D]=zp2ss(z,p,k)例 8.211122211220.560.050.03 1.140.2500.1101001x x u x x u y x y x -⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦⎣⎦⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 试用矩阵组[a ,b ,c ,d]表示系统,并求出传递函数。
% MATLAB Program example 6.2.ma=[-0.56 0.05;-0.25 0];b=[0.03 1.14;0.11 0];c=[1 0;0 1];d=zeros(2,2);sys=ss(a,b,c,d)G1=tf(sys)G2=zpk(sys)运行后得到如下结果a =x1 x2x1 -0.56 0.05x2 -0.25 0b =u1 u2x1 0.03 1.14x2 0.11 0c =x1 x2y1 1 0y2 0 1d =u1 u2y1 0 0y2 0 0Continuous-time model.Transfer function from input 1 to output...0.03 s + 0.0055#1: ---------------------s^2 + 0.56 s + 0.01250.11 s + 0.0541#2: ---------------------s^2 + 0.56 s + 0.0125Transfer function from input 2 to output...1.14 s#1: ---------------------s^2 + 0.56 s + 0.0125-0.285#2: ---------------------s^2 + 0.56 s + 0.0125Zero/pole/gain from input 1 to output...0.03 (s+0.1833)#1: ----------------------(s+0.5367) (s+0.02329)0.11 (s+0.4918)#2: ----------------------(s+0.5367) (s+0.02329)Zero/pole/gain from input 2 to output...1.14 s#1: ----------------------(s+0.5367) (s+0.02329)-0.285#2: ----------------------(s+0.5367) (s+0.02329)例8.3 考虑下面给定的单变量系统传递函数3243272424()10355024s s s G s s s s s +++=++++ 由下面的MATLAB 语句直接获得状态空间模型。
>> num=[1 7 24 24];>> den=[1 10 35 50 24];>> G=tf(num,den);>> sys=ss(G)运行后得到如下结果: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.3. 线性系统的非奇异变换与标准型状态空间表达式syst=ss2ss(sys,T)sys, syst 分别为变换前、后系统的状态空间模型,T 为非奇异变换阵。
[At,Bt,Ct,Dt]=ss2ss(A,B,C,D,T)(A,B,C,D)、(At,Bt,Ct,Dt )分别为变换前、后系统的状态空间模型的系数矩阵。
§8.2 利用MATLAB 求解系统的状态方程线性定常连续系统状态方程x Ax Bu =+,0(0)x x =,0t ≥状态响应00()()()()d tx t t x t Bu φφτττ=+-⎰, 0t ≥ 式中状态转移矩阵()At t e φ=,则有()0()(0)()d tAt A t x t e x e Bu τττ-=+⎰, 0t ≥ 1. 用MATLAB 中expm(A)函数计算状态转移矩阵At e例8.4 022130x x u -⎡⎤⎡⎤=+⎢⎥⎢⎥-⎣⎦⎣⎦,1(0)1x ⎡⎤=⎢⎥⎣⎦,0u = ①求当0.2t =时,状态转移矩阵即0.2Att e=;>> A=[0 -2;1 -3];>> dt=0.2;>> phi=expm(A*dt)得到如下结果phi =0.9671 -0.29680.1484 0.5219②计算0.2t =时系统的状态响应110.2220.2(0)0.96710.29680.6703(0)(0)0.14840.52190.6703At t t x x e x x x ==-⎡⎤⎡⎤⎡⎤⎡⎤=⋅==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦2. 用step(),impulse() 求阶跃输入,脉冲输入响应例8.5 连续二阶系统[]111222120.75240.7268110.72680022.87768.9463x x u x x u x y x ---⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦⎣⎦⎡⎤=⎢⎥⎣⎦求系统的单位阶跃响应% MATLAB Program of example 4.5.mA=[-0.7524 -0.7268;0.7268 0];B=[1 -1;0 2];C=[2.8776 8.9463];D=0;step(A,B,C,D);figure(1)grid on ;title('单位阶跃响应')xlabel('时间')ylabel('振幅')运行结果3. 用initial()函数,求系统的零输入响应[y,t,x]=initial(sys,x 0)6.5例中,当输入0u =时,状态初值[](0)0.20.2x =A=[-0.7524 -0.7268;0.7268 0];B=[1 -1;0 2];C=[2.8776 8.9463];D=0;t=[0:0.01:15];u=0;sys=ss(A,B,C,D);x0=[0.2 0.2];[y,t,x]=initial(sys,x0,t)plot(t,x) 运行结果§8.3 系统的可控性与可观性分析1. 线性定常系统的可控性分析x Ax Bu y Cx Du=+=+ 可控性矩阵21[,,,,]n c u B AB A B A B -=,系统完全可控 rank c u n =。
在MA TLAB 中,可用(,)ctrb A B 函数求可控性矩阵c u ctrb(A,B)例 8.6 120011101000111x x u ⎡⎤⎡⎤⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦, 判断系统的可控性。
℅MA TLAB program of example 6.6.mA=[1 2 0;1 1 0;0 0 1];B=[0 1;1 0;1 1];n=3;CAM=ctrb(A,B);rcam=rank(CAM);if rcam==ndisp('system is controlled') elseif rcam<ndisp('system is not controlled') end执行结果system is controlled例8.72220,010,12612 x Ax bu A b--⎡⎤⎡⎤⎢⎥⎢⎥=+=-=⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦将该系统状态方程转换为可控标准型。
变换矩阵111111,[0,,0,1]cnPP AP P u P A--⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎣⎦℅MA TLAB Program of example 6.7.mA=[-2 2 -2;0 -1 0;2 -6 1];b=[0;1;2];s=ctrb(A,b);if det(s)~=0s1=inv(s);endP=[s1(3,:);s1(3,:)*A;s1(3,:)*A*A]; PT=inv(P);A1=P*A*PT%(Ac=PAP^)b1=P*b%(bc=P*b)运行结果A1 =0.0000 1.0000 -0.0000-0.0000 0 1.0000-2.0000 -3.0000 -2.0000b1 =1.0000这样可得可控标准型矩阵110100001,02321c c A A b b ⎡⎤⎡⎤⎢⎥⎢⎥====⎢⎥⎢⎥⎢⎥⎢⎥---⎣⎦⎣⎦2. 线性定常系统的可观性分析x Ax Bu y Cx Du =+⎧⎨=+⎩可观性矩阵01n C CA U CA -⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦系统可观 0rankU n =在MA TLAB 中,可用函数obsv(A,C)确定可观性矩阵。