实验八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、实验设备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分析和设计

倒立摆系统的主要变量和参数
旋臂位置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
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
①求当 t 0.2 时,状态转移矩阵即 e At >> A=[0 -2;1 -3];
;
5
>> dt=0.2; >> phi=expm(A*dt) 得到如下结果 phi = 0.9671 0.1484 -0.2968 0.5219
②计算 t 0.2 时系统的状态响应
x1 e At x 2 t 0.2
8
rcam=rank(CAM); if rcam==n disp('system is controlled') disp('system is not controlled')
elseif rcam<n end
执行结果 system is controlled
2 2 2 0 Ax bu , A 0 1 0 , b 1 例 8.7 x 2 6 1 2
3
1.14 s #1: --------------------s^2 + 0.56 s + 0.0125 -0.285 #2: --------------------s^2 + 0.56 s + 0.0125 Zero/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 考虑下面给定的单变量系统传递函数
试用矩阵组[a,b,c,d]表示系统,并求出传递函数。 % MATLAB Program example 6.2.m
2
a=[-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 x2 x1 -0.56 0.05 x2 -0.25 0
Ax Bu x y Cx Du C CA 可观性矩阵 U 0 n 1 CA
系统可观 rankU 0 n 在 MATLAB 中,可用函数 obsv(A,C) 确定可观性矩阵。 例 8.8
2 3 1 1 2 1 x x u,y x 确定可观性。 2 2 1 1 1 2
0.2
运行结果
7
§8.3 系统的可控性与可观性分析
1. 线性定常系统的可控性分析
Ax Bu x y Cx Du
可控性矩阵
uc [ B, AB, A 2 B, , A n 1B ] ,
系统完全可控 rank uc n 。 在 MATLAB 中,可用 ctrb ( A, B ) 函数求可控性矩阵 uc
1.0000 0 -3.0000
-0.0000 1.0000 -2.0000
b1 = 0 0 1.0000 这样可得可控标准型矩阵
9
0 1 0 0 Ac A1 0 0 1 , bc b1 0 2 3 2 1
2. 线性定常系统的可观性分析
求系统的单位阶跃响应 % MATLAB Program of example 4.5.m
A=[-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('振幅')
§8.2 利用 MATLAB 求解系统的状态方程
线性定常连续系统状态方程
Ax Bu , x(0) x0 , t 0 x
状态响应
x(t ) (t ) x0 (t ) Bu ( ) d , t 0
0 t
式中状态转移矩阵 (t ) e At ,则有
实验八 线性系统的状态空间分析
§8.1 用 MATLAB 分析状态空间模型
1、状态空间模型的输入 线性定常系统状态空间模型
Ax Bu x y Cx Du
将各系数矩阵按常规矩阵形式描述。
A a11 a12 a1 n B b0 b1 bn C c0 D d; c1 c n
将该系统状态方程转换为可控标准型。
P 1 PA 1 , P [0, , 0,1]u 1 变换矩阵 P c 1 n 1 P 1A
℅MATLAB Program of example 6.7.m A=[-2 2 -2;0 -1 0;2 -6 1]; b=[0;1;2]; s=ctrb(A,b); if det(s)~=0 s1=inv(s); end P=[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 -0.0000 -2.0000
G (s)
s 3 7 s 2 24s 24 s 4 10s 3 35s 2 50s 24
由下面的 MATLAB 语句直接获得状态空间模型。 >> num=[1 7 24 24]; >> den=[1 10 35 50 24]; >> G=tf(num,den); >> sys=ss(G) 运行后得到如下结果: a= x1 x2 x3 x4 x1 -10 -4.375 -3.125 -1.5 x2 8 0 0 0 x3 0 2 0 0 x4 0 0 1 0
; ; a n1 a n2 a nn
在 MATLAB 里,用函数 SS()来建立状态空间模型
sys ss ( A, B , C , D )
例 8.1 已知某系统微分方程
d2 y dy 3 7 y 5u 2 dt dt
求该系统的状态空间模型。 解:将上述微分方程写成状态空间形式
运行结果
6
3. 用 initial()函数,求系统的零输入响应 [y,t,x]=initial(sys,x0) 6.5 例中,当输入 u 0 时,状态初值 x (0) 0.2
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)
状态空间表达式向传递函数形式的转换
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.2
Байду номын сангаас
4
b= x1 x2 x3 x4 u1 2 0 0 0
c= y1 x1 x2 0.5 0.4375 x3 0.75 x4 0.75
d= u1 y1 0 Continuous-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)分别为变换前、后系统的状态空间模型的系数矩阵。
运行后得到如下结果 a= x1 x2 x1 0 1 x2 -7 -3
1
b= x1 x2 c= y1 d= y1 u1 0 x1 5 x2 0 u1 0 1
Continuous-time model. 2、状态空间模型与传递函数模型转换 状态空间模型用 sys 表示,传递函数模型用 G 表示。
G=tf(sys) sys=ss(G)
ctrb(A, B) 1 2 0 0 1 1 1 0 x 1 0 u , 判断系统的可控性。 x 0 0 1 1 1
例 8.6
℅MATLAB program of example 6.6.m A=[1 2 0;1 1 0;0 0 1]; B=[0 1;1 0;1 1]; n=3; CAM=ctrb(A,B);
1 0.56 0.05 x1 0.03 1.14 u1 x x 0 x2 0.11 0 u2 2 0.25 y1 1 0 x1 y 0 1 x 2 2
0 1 0 A ,B 7 3 1 C 5 0 , D 0