用MATLAB分析状态状态空间模型

合集下载

实验八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]表示系统,并求出传递函数。

matlab状态空间表达式的解

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中的求解方法。

利用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实现

现代控制理论的MATLAB实现现代控制理论是控制工程中一门重要的学科,它研究如何设计和分析控制系统以满足一定的性能指标。

MATLAB是一种功能强大的科学计算和工程仿真软件,广泛应用于控制系统设计与分析。

本文将介绍现代控制理论的一些常见方法在MATLAB中的实现。

1.线性系统的状态空间表示线性系统的状态空间表示是现代控制理论的核心内容之一、在MATLAB中,可以使用`ss`命令创建线性系统的状态空间模型。

例如,假设存在一个二阶线性时不变系统,其传递函数为:![Transfer Function](transfer_function.png)可以使用以下代码将其转换为状态空间模型:```matlabnum = [1];den = [1, 1, 1];sys = tf(num, den);ss_sys = ss(sys);```2.线性系统的传递函数表示传递函数是描述线性系统输入输出关系的一种常用表示方法。

在MATLAB中,可以使用`tf`命令创建线性系统的传递函数模型。

例如,假设存在一个二阶线性时不变系统,其状态空间描述为:```matlabA=[0,1;-1,-1];B=[0;1];C=[1,0];D=0;ss_sys = ss(A, B, C, D);```可以使用以下代码将其转换为传递函数模型:```matlabtf_sys = tf(ss_sys);```3.常见控制器的设计与分析现代控制理论中常用的控制器设计方法包括PID控制器、根轨迹法、频率域分析等。

在MATLAB中,可以使用`pid`命令创建PID控制器,并使用`rlocus`命令绘制根轨迹图。

例如,创建一个PID控制器:```matlabKp=1;Kd=0.1;pid_controller = pid(Kp, Ki, Kd);```绘制根轨迹图:```matlabsys = tf([1], [1, 1, 1]);rlocus(sys);```4.系统的频率响应分析频率响应分析是现代控制理论中常用的系统性能评估方法之一、在MATLAB中,可以使用`bode`命令绘制系统的频率响应曲线。

实验三利用MATLAB求取状态空间模型的相似变换及其标准型、控制系统的不同状态模型实现

实验三利用MATLAB求取状态空间模型的相似变换及其标准型、控制系统的不同状态模型实现

现代控制理论第一次上机实验报告实验三 利用MATLAB 求取状态空间模型的相似变换及其标准型、控制系统的不同状态模型实现实验目的:1、通过实验掌握线性系统的对角线标准型、约旦标准型、模态标准型以及伴随矩阵标准型的表示及相应变换阵的求解;2、通过编程、上机调试,掌握系统可控性和可观测性的判别方法、系统的可控性和可观测性分解等;3、加深理解由控制系统传递函数建立能控、能观、约当标准型等不同状态模型的方法。

实验要求:1.实现同一系统传递函数的状态模型是唯一的吗?2.系统传递函数除上面三种不同状态模型实现外,常见的还有串连实现,对否? 3.对于上述系统传递函数,其输出稳态值与输入阶跃信号幅值有何关系? 实验步骤:1. 根据所给系统的已知条件(可自行参阅选择刘豹教材中的例题或习题),如传递函数、零极点模型或(A 、B 、C 、D ),实现状态空间模型之间的相似变换、写出其对角线标准型、约当标准型、模态标准型以及伴随矩阵标准型的表示及求解相应变换阵,采用MATLAB 的相关函数编写m-文件。

已知系统的传递函数如下:3211()(1)( 2.5)(5)8.52012.5160.270.11 2.55G s s s s s s s s s s ==++++++-=+++++运行如下m-文件,得到传递函数的状态空间模型: num=[0 0 0 1]; den=[1 8.5 20 12.5]; [A,B,C,D]=tf2ss(num,den) 得到 A =-8.5000 -20.0000 -12.5000 1.0000 0 0 0 1.0000 0 B = 1 0 0 C =D =因此,传递函数的一个状态空间实现是G=ss(A,B,C,D);(1)对角线标准型:计算矩阵A的特征值及与特征值对应的对角型变换矩阵D的m-如下:[V,D]=eig(A)[V,D]=eig(A)V =-0.9798 0.9184 0.57740.1960 -0.3674 -0.5774-0.0392 0.1469 0.5774D =-5.0000 0 00 -2.5000 00 0 -1.0000由对角线标准型的变换阵D,运行下列m-文件的到对角线标准型矩阵系数:G1=ss2ss(G,D)a =x1 x2 x3x1 -8.5 -40 -62.5x2 0.5 0 0x3 0 0.4 0b =u1x1 -5x2 0x3 0c =x1 x2 x3d =u1y1 0Continuous-time model.由上可得,对角线标准型:对角型变换矩阵为:(2)约旦标准型:计算矩阵A变换为约当标准型J,并得到变换矩阵V,运行下列m-文件:>> [V,J]=jordan(A)V =2.5000 -1.6667 0.1667-0.5000 0.6667 -0.16670.1000 -0.2667 0.1667J =-5.0000 0 00 -2.5000 00 0 -1.0000根据得到的约当标准型的变换矩阵V,运行下列文件得到约当标准型的矩阵系数:G1=ss2ss(G,V)a =x1 x2 x3x1 -104 -613.6 -697.1x2 21 123.1 139.6x3 -4.2 -24.28 -27.58b =u1x1 2.5x2 -0.5x3 0.1c =x1 x2 x3y1 1 7.5 12.5d =u1y1 0Continuous-time model由上可得,约旦标准型:约旦标准型的变换矩阵为:(3)模态标准型运行以下m-程序可得到模态标准型系数矩阵和其变换矩阵:>> [G1,V]=canon(G,'modal')a =x1 x2 x3x1 -5 0 0x2 0 -2.5 0x3 0 0 -1b =u1x1 -0.825x2 -0.95x3 0.375c =x1 x2 x3y1 -0.1212 0.2807 0.4444d =u1y1 0Continuous-time model.V =-0.8250 -2.8875 -2.0625-0.9500 -5.7000 -4.75000.3750 2.8125 4.6875由上可得,模态标准型:模态标准型的变换矩阵为:(4)伴随矩阵标准型运行以下m-程序可得到伴随矩阵标准型系数矩阵和其变换矩阵:>> [G1,V]=canon(G,'companion')a =x1 x2 x3x1 0 0 -12.5x2 1 0 -20x3 0 1 -8.5b =u1x1 1x2 0x3 0c =x1 x2 x3y1 0 0 1d =u1y1 0Continuous-time model.V =1.0000 8.5000 20.00000 1.0000 8.50000 0 1.0000由上可得,伴随矩阵标准型:模态标准型的变换矩阵为:2.根据所给系统的已知条件(可自行参阅选择刘豹教材中的例题或习题),如(A、B、C、D)模型,判断其可控性和可观测性并进行可控性和可观测性分解。

第9讲 基于Matlab的系统状态空间分析与设计

第9讲 基于Matlab的系统状态空间分析与设计
⎧ X = A ′ X + B ′U ⎨ ⎩ Y = C ′X + D ′U
其中
A′ = M
−1
A M = diag [ λ1 , λ 2 ,....λ n ], B ′ = M
−1
B, C ′ = CM
λi为A的特征根;M为A的特征矩阵.
线性系统状态空间分析
3.2 约当标准型(系统有k个mi重特征值λi)
线性系统状态空间分析
对于同一物理系统,动态方程的建立,在状态变量的 选取方面有很大的不同,导致求得的系统状态方程也 不尽相同。 然而, 状态变量的个数是相同的。因此,各种不同 的动态方程间又有一定的联系,这种联系就是变量间 的线性变化。
线性系统状态空间分析
二、线性变换
对于系统 令
⎧ x = Ax + Bu ⎨ ⎩ y = Cx + Du
⎡0 1 0 ⎤ 2s + 1 G( s) = 3 , X = ⎢0 0 1 ⎥ X 2 ⎢ ⎥ s + 7 s + 14 s + 8 ⎢ 2 −5 4 ⎥ ⎣ ⎦
试分别求系统的约当标准型。
线性系统状态空间分析
解 (1)程序如下 num1=[2,1];den1=[1,7,14,8]; [A,B,C,D]=tf2ss(num1,den1); [V,J]=jordan(A) V1=inv(V) B1=V1*B
0 f
入 u(t) 和系统输出 y( t ) 的信息唯一地确定任意初始状 态 x(t0 ) = x0。
这个定义规定: 对于时刻 t 0,若存在时刻 t f ,系统的任意 [t 0 , t上的 u 和 y 的信息来决定就 f ] 初始状态能唯一地由区间 tf 是状态完全能观的,没有对 施加限制,这意味着区间 [t 0 , t f ] 必须是有限的但不确定。

matlab ss指令

matlab ss指令

matlab ss指令
在MATLAB中,ss指令用于创建一个状态空间模型对象。

状态空间模型是一种描述动态系统的数学模型,它由状态方程和输出方程组成。

通过使用ss指令,您可以定义系统的状态变量、输入变量、输出变量和系统矩阵,然后使用这些信息来分析系统的动态行为。

以下是使用ss指令创建状态空间模型的示例代码:
matlab复制代码
% 定义系统矩阵
A = [0 1; -2 -3];
B = [0; 1];
C = [1 0];
D = 0;
% 创建状态空间模型对象
sys = ss(A, B, C, D);
在上面的示例中,A是状态矩阵,B是输入矩阵,C是输
出矩阵,D是直接矩阵。

这些矩阵描述了系统的动态行为。

通过将这些矩阵传递给ss指令,您可以创建一个状态空间
模型对象sys。

一旦创建了状态空间模型对象,您可以使用MATLAB的
各种工具和函数来分析系统的性能、稳定性、频率响应等。

例如,您可以使用step函数模拟系统的阶跃响应,使用bo de函数绘制系统的频率响应等。

请注意,ss指令只是创建状态空间模型对象的一种方式。

MATLAB还提供了其他函数和方法来创建和分析状态空间模型,具体取决于您的需求和使用的MATLAB版本。

实验一 用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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验名称用MATLAB分析状态状态空间模型

自动化
专业
自动化

1204
姓名
叶吉东
学号
0909121616
授课老师
袁艳
预定时间
实验时间
2014年5月21号
实验台号
一、目的要求
1、掌握线性定常系统的状态空间表达式。学会在MATLAB中建立状态空间模型的方
法。
2、掌握传递函数与状态空间表达式之间相互转换的方法。学会用MATLAB实现不同
a =
x1 x2 x3
x1 -1 0 0
x2 0 -2 0
x3 0 0 -3
b =
u1
x1 0.25
x2 0.25
x3 0.25
c =
x1 x2 x3
y1 12 -24 12
d =
u1
y1 0
七、分析讨论
通过本次试验,第一:掌握线性定常系统的状态空间表达式,学会在MATLAB中建立状态空间模型的各种方法。第二:知道传递函数与状态空间表达式之间相互转换的方法。掌握了不同模型之间的相互转换。第三:掌握了状态空间表达式的相似变换。掌握了将状态空间表达式转换为对角标准型、约当标准型、能控标准型和能观测标准型的方法。学会用MATLAB进行线性变换。因为实验指导书写的特别的详细,写的特别好,我们只要把实验指导书的例题看懂,然后模仿着例题思路解题就基本没有大问题。通过这次试验我们把书上抽象的东西实际化,进一步加深了对书上知识的掌握,很多书上讲的很模糊的地方通过实验就能够切实的掌握。
4
-------------------------
s^4 + 5 s^3 + 7 s^2 + 3 s
(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;
z=[];p=[0 -1 -1-3];k=4;G=zpk(z,p,k)
Zero/pole/gain:
4
---------------
s (s+1)^2 (s+3)
(2)将给定传递函数用函数ss( )转换为状态空间表达式。再将得到的状态空间表达式
用函数tf( )转换为传递函数,并与原传递函数进源自比较。五、内容步骤、数据处理
题1-1已知系统的传递函数
(1)建立系统的TF与ZPK模型。
运行结果如下:
>>num=4; den=[1 5 7 3 0]; Gtf=tf(num,den);
>> Gtf
Transfer function:
4
-------------------------
s^4 + 5 s^3 + 7 s^2 + 3 s
(2)Gss=ss(G)
a =
x1 x2 x3 x4
x1 0 1 0 0
x2 0 -1 1 0
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:
x3 0
c =
x1 x2 x3
y1 0 0 0.375
d =
u1
y1 0
(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;
sys=ss(A,B,C,D);[V,J]=jordan(A);sys1=ss2ss(sys,inv(V))
模型之间的相互转换。
3、熟悉系统的连接。学会用MATLAB确定整个系统的状态空间表达式和传递函数。
4、掌握状态空间表达式的相似变换。掌握将状态空间表达式转换为对角标准型、约当标准型、能控标准型和能观测标准型的方法。学会用MATLAB进行线性变换。
二、原理简述
三、仪器设备
PC计算机,MATLAB软件
四、线路示图
sys=ss(A,B,C,D);[V,J]=jordan(A);sys1=ss2ss(sys,inv(V))
a =
x1 x2 x3 x4
x1 0 0 0 0
x2 0 -3 0 0
x3 0 0 -1 1
x4 0 0 0 -1
b =
u1
x1 2
x2 2
x3 0
x4 2
c =
x1 x2 x3 x4
y1 0.6667 -0.1667 -1 -0.5
d =
u1
y1 0
题1-2已知系统的传递函数为:
(1)建立其状态空间模型
num=6; den=[1 6 11 6]; Gtf=tf(num,den); Gss=ss(Gtf),
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
相关文档
最新文档