第9讲 基于Matlab的系统状态空间分析与设计
实验八matlab状态空间分析
![实验八matlab状态空间分析](https://img.taocdn.com/s3/m/66b2eeff581b6bd97e19ea4b.png)
实验八 线性系统的状态空间分析§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对状态空间模型进行分析](https://img.taocdn.com/s3/m/0d02cc834128915f804d2b160b4e767f5acf802b.png)
利用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语言的非线性系统相空间分析](https://img.taocdn.com/s3/m/7601c96111661ed9ad51f01dc281e53a580251d7.png)
基于MATLAB语言的非线性系统相空间分析一、简述非线性系统相空间分析是研究非线性系统的动力学行为和稳定性的一种方法。
在MATLAB语言中,我们可以通过构建合适的数学模型来描述非线性系统,并利用其强大的数值计算和绘图功能进行相空间分析。
本文将介绍如何使用MATLAB语言对非线性系统进行相空间分析的基本步骤和技巧,包括:建立非线性系统方程、求解方程组、绘制相空间轨迹图等。
通过这些内容的学习,读者可以掌握MATLAB 在非线性系统相空间分析中的应用方法,为进一步深入研究非线性系统提供基础支持。
1. 非线性系统的概念和特点非线性系统是指其行为不能通过线性组合得到的系统,在自然科学、工程技术和社会科学等领域中,非线性系统无处不在,例如:自然生态系统、经济市场、生物医学过程等。
非线性系统的特点是它的输出不仅仅取决于输入,还受到内部状态的影响,这种影响通常是复杂的、难以预测的。
非线性系统的相空间分析是一种处理非线性系统的方法,在MATLAB语言中,我们可以通过使用各种工具箱进行相空间分析,包括解常微分方程(ODE)、解偏微分方程(PDE)以及求解复杂动力学系统等。
首先我们需要理解非线性系统的数学模型,这通常通过将系统的动态方程表示为微分方程来完成。
然后我们可以使用MATLAB的ODE 求解器来求解这些方程,得到系统的相空间轨迹。
此外我们还可以使用MATLAB的PDE工具箱来求解偏微分方程,得到系统的相空间曲面。
除了基本的数值方法外,MATLAB还提供了多种高级功能,如优化工具箱、控制工具箱等,这些都可以用于非线性系统的分析和设计。
例如我们可以使用优化工具箱来寻找最优的控制策略,或者使用控制工具箱来设计自适应控制器。
MATLAB为非线性系统的相空间分析提供了强大的支持,无论是对于理论研究还是实际应用都具有很高的价值。
2. 相空间分析的基本概念和方法相空间分析是一种研究非线性系统动态行为的方法,它通过将系统的微分方程组表示为相空间中的轨迹方程来描述系统的演化过程。
MATLAB在 状态空间分析中的应用
![MATLAB在 状态空间分析中的应用](https://img.taocdn.com/s3/m/a8580f17ec630b1c59eef8c75fbfc77da26997bc.png)
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:经典控制系统的分析和设计](https://img.taocdn.com/s3/m/b9eea39a767f5acfa0c7cdc8.png)
MATLAB:经典控制系统的分析和设计9.3.1 基本操作及命令1. 访问和退出MATLAB在大多数系统中,一旦安装了MATLAB,在调用时,应执行命令MATLAB。
退出MATLAB应执行命令exit或quit。
2. 如何应用MATLAB通常以命令驱动方式应用MATLAB。
当输入单个命令时,MATLAB会立即对其进行处理,并且显示处理结果。
MATLAB 也能够执行存储在文件中的命令序列。
通过键盘输入的命令,应用向上箭头键可以被存取。
通过输入某个最新命令和调用特定的命令行,可以使屏幕内容向上滚动。
3. MATLAB的变量MATLAB的一个特点是变量在应用之前不必是维数确定的。
在MATLAB中,变量一旦被采用,会自动产生(如果必要,变量的维数以后还可以改变)。
在命令exit或quit输入之前,这些变量将保留在存储器中。
为了得到工作空间内的变量清单,可以通过键盘输入命令who,当前存放在工作空间内的所有变量便会显示在屏幕上。
命令clear能从工作空间中清除所有非永久性变量。
如果只需要从工作空间中清除某个特定变量,比如“x”,则应输入命令clear x。
4. 以“%”开始的程序行在本书中,许多MATLAB程序在编写时附有注解和说明,这些注解和说明阐明了发生在程序中的具体进程。
在MATLAB 中以“%”开始的程序行,表示注解和说明。
符号“%”类似于BASIC中“REM”。
以“%”开始的行,用来存储程序的注解或说明,这些注解和说明是不执行的。
这就是说,在MATLAB程序行中,出现在“%”以后的一切内容都是可以忽略的。
如果注解或说明需要一行以上程序行,则每一行均需以“%”为起始。
5. 应用分号操作符分号用来取消打印。
如果语句的最后一个符号是分号,则打印被取消,但是命令仍在执行,而结果不再显示。
这是一个有益的特性,因为打印中间结果可能不必要。
此外,在输入矩阵时,除非最后一行,分号用来指示一行的结束。
6. 应用冒号操作符冒号操作符在MATLAB中起着重要作用。
(完整版)matlab第九讲教案
![(完整版)matlab第九讲教案](https://img.taocdn.com/s3/m/22b098e358fafab068dc023e.png)
西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab入门及应用授课教师:徐中慧班级:专业:安全技术及工程第九章 高级绘图课型:新授课 教具:多媒体教学设备,matlab 教学软件一、目标与要求掌握matlab 如何处理三种不同类型的图形文件,使用句柄图形指定绘图的句柄并调整特性,通过matlab 两种技术的任意一种创建动画。
二、教学重点与难点本堂课教学的重点与难点在于引导学生掌握句柄图形的使用,并掌握matlab 创建动画的方法。
三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。
四、教学内容(1)火箭垂直向上发射。
在t=0时火箭发动机关闭,此时火箭的高度为海拔500,速度为125m/s ,考虑重力加速度,根据等式29.8()125500,02h t t t t =-++f ①创建函数heigh t ,以时间为输入变量,火箭的飞行高度为输出变量。
利用函数对下面的②和③进行求解。
②时间增量为0.5秒,变化范围0到30秒,画出函数height 与时间的关系曲线。
③计算火箭开始向地面降落的时间(可以使用函数max )。
④创建函数height 的函数句柄height_handle 。
⑤以height_handle 作为函数fplot 的输入参数,画出0到60秒内的函数曲线。
⑥用函数fzero 求火箭返回地面所用的时间(当火箭返回地面时,函数height 的值应该等于0)。
fzero 是复合函数,可以用函数或函数句柄作为输入参数。
调用方法如下:fzero(function_handl e ,x_guess)函数fzero 的两个输入参数分别是函数句柄和函数值接近0时的x 的估算值。
读者可以根据绘出的曲线选择合理的x_guess 值。
①function output=height(t)output=-4.9.*t.^2+125.*t+500;②%% two t=0:0.5:30; h=height(t); plot(t,h,'o-r') hold on %% three [a,b]=max(h); t_max=t(b) %% fourheight_handle=@(t) height(t);%% fivefplot(height_handle,[0,60]);%% sixfzero(height_handle,30)(2)①创建匿名函数my_function,计算下式:253x---+x x e②用函数fplot画出x在-5到+5之间的函数曲线。
基于MATLAB的系统分析
![基于MATLAB的系统分析](https://img.taocdn.com/s3/m/b4d5e450b94ae45c3b3567ec102de2bd9705de50.png)
图3-66 二阶系统的单位阶跃响应曲线
基于MATLAB的系统分析
1.2 基于MATLAB的根轨迹分析
使用 rlocus 命令可以得到连续单输入单输出系统的根轨迹图,此命令有两种基本形式: rlocus(num,den) 或 rlocus(num,den,k) 用 MATLAB 绘制根轨迹图时,具有 x,y 坐标轴自动定标功能。如果希望自行设置显示 图形的坐标范围,可以用 axis 命令定义绘制图形的轴线区域。例如, axis([-2.5,1 -3,3]); 表示 x 轴的显示范围是 2.5~1,y 轴的显示范围是 3~3 。
其中,z 为系统的零点;p 为系统的极点;k 为增益;num 为分子多项式降幂排列的系数向
量;den 为分母多项式降幂排列的系数向量。
基于MATLAB的系统分析
1.1 基于MATLAB的时域分析
2. 用MATLAB求取连续系统的输出响应
MATLAB提供了多种求取连续系统输出响应的函数,它们在MATLAB中的调用格 式分别为
1.1 基于MATLAB的时域分析
2. 用MATLAB求取连续系统的输出响应
【例 3-13】
已知典型二阶系统的传递函数为
G(s)
s2
n2 2n s
n2
其中 n 6 ,试绘制系统在 0.1,0.3,0.5,0.7,1.0 时的单位阶跃响应曲线。
【解】 输入以下MATLAB程序,运行结果如图3-66所示 wn=6; num=[wn^2] t=[0:0.1:10]; zeta1=0.1;den1=[1,2*zeta1*wn,wn^2]; zeta2=0.3;den2=[1,2*zeta2*wn,wn^2];
图3-68 连续系统的伯德图
基于MATLAB的系统分析
第九章 状态空间分析方法 matlab simulink与控制系统仿真 第三版 课件
![第九章 状态空间分析方法 matlab simulink与控制系统仿真 第三版 课件](https://img.taocdn.com/s3/m/8e5aff19e518964bce847c08.png)
用 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分析和设计
![Matlab分析和设计](https://img.taocdn.com/s3/m/a8fdc355be1e650e53ea9910.png)
倒立摆系统的主要变量和参数
旋臂位置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对状态空间模型进行分析
![利用MATLAB对状态空间模型进行分析](https://img.taocdn.com/s3/m/70a6b762caaedd3383c4d324.png)
实验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 界面下调试程序,并检查是否运行正确。
10第九章线性系统状态空间分析
![10第九章线性系统状态空间分析](https://img.taocdn.com/s3/m/fcd2618d71fe910ef12df8cf.png)
选择状态变量如下:
x1 y1 (1) x y 1 x1 2 ( 2) 2 x y x 3 1 xn y1( n 1) x n 1
1 x2 x x 2 x3 x n 1 xn n a0 x1 a1 x2 ... an 1 xn u (t ) x
9.2 线性系统状态空间基础
整理成状态空间表达式,得:
1 x 1 0 x1 0 C ui (t ) 1 R x2 1 / L 2 x L L x1 Y [1 0] x 2 1 0 0 C X ui (t ) 或简写成: X 1 R 1 / L L L Y [1 0] X
9.2 线性系统状态空间基础
(1)式和(2)式已经化成没有零点/极点的形 式,分别进行拉氏变换得:
(1) y1( n ) an1 y1( n1) ... a1 y1(1) a0 y1 u (t ) 1 y1( n1) bn 2 y1( n2) ... b1 y1(1) b0 y1 (2) z (t ) bn
9.2 线性系统状态空间基础
9.2.2 状态空间的实现
【例9-1】如下图所示的RLC电路,输入是 ui (t ),输出 是 u0 (t )。试建立该电路的状态空间表达式。
i (t )
R L
解:根据基尔霍夫电压定律、 电流定律,得
C
ui (t )
u0 (t )
di(t ) L R * i (t ) u0 (t ) ui (t ) dt i (t ) C du0 (t ) dt
基于MATLAB的控制系统状态空间分析
![基于MATLAB的控制系统状态空间分析](https://img.taocdn.com/s3/m/def00c7d7e21af45b307a8c9.png)
现代控制理论实验报告学院专业班级姓名指导教师年月日基于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进行控制系统设计和分析
![利用Matlab进行控制系统设计和分析](https://img.taocdn.com/s3/m/37ed3717e3bd960590c69ec3d5bbfd0a7956d56a.png)
利用Matlab进行控制系统设计和分析控制系统是各个工程领域中不可或缺的一部分。
它可以用来控制机器人、飞行器、电机以及其他众多的实际工程应用。
Matlab作为一种功能强大的数值计算软件,提供了丰富的工具和函数来进行控制系统设计和分析。
本文将介绍如何利用Matlab来进行控制系统的设计和分析。
一、控制系统基本概念在开始之前,我们先来了解一些控制系统的基本概念。
控制系统由三个基本组成部分构成:输入、输出和反馈。
输入是指信号或者指令,输出则是系统对指令的响应,而反馈则是输出信号对系统输入的影响。
二、Matlab中的控制系统工具箱Matlab提供了专门用于控制系统设计和分析的工具箱。
其中最重要的是Control System Toolbox。
该工具箱中包含了一系列用于控制系统设计和分析的函数和工具。
使用Control System Toolbox,我们可以很方便地进行控制系统的建模、设计和分析。
三、控制系统的建模控制系统的建模是指将实际系统抽象为数学模型。
在Matlab中,我们可以使用State Space模型、Transfer Function模型以及Zero-Pole-Gain模型来描述控制系统。
1. 状态空间模型状态空间模型是一种常用的描述系统动态响应的方法。
在Matlab中,我们可以使用stateSpace函数来创建状态空间模型。
例如,我们可以通过以下方式创建一个简单的二阶状态空间模型:A = [0 1; -1 -1];B = [0; 1];C = [1 0];D = 0;sys = ss(A, B, C, D);2. 传递函数模型传递函数模型是另一种常用的描述系统动态响应的方法。
在Matlab中,我们可以使用tf函数来创建传递函数模型。
例如,我们可以通过以下方式创建一个简单的一阶传递函数模型:num = 1;den = [1 2];sys = tf(num, den);3. 零极点增益模型零极点增益模型是用来描述系统频域特性的一种方法。
用MATLAB分析状态空间模型
![用MATLAB分析状态空间模型](https://img.taocdn.com/s3/m/7504b43c30b765ce0508763231126edb6f1a760b.png)
用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中使用状态空间模型进行设计](https://img.taocdn.com/s3/m/dc88c8c7c9d376eeaeaad1f34693daef5ef713a6.png)
在MATLAB中使用状态空间模型进行设计MATLAB是一种功能强大的计算机工具,可以用于各种科学计算、数据可视化和算法开发等任务。
在控制系统设计中,MATLAB也是一个重要的工具,可以用来建立和分析控制系统模型。
其中,状态空间模型是一种常用的表示方法,可以描述系统的动态行为和状态变化。
状态空间模型是一种数学模型,用一组微分方程描述系统的动态行为。
它通过将系统内部的状态变量以及输入和输出变量进行关联,来描述系统的演化过程。
状态空间模型可以用矩阵形式表示,这种表示方法直观而且方便进行计算。
在MATLAB中,可以使用StateSpace类来构建状态空间模型。
StateSpace类可以接受系统的系数矩阵作为输入,然后根据这些系数矩阵构建一个状态空间模型对象。
这个对象可以用来进行模型分析、设计和模拟等操作。
下面我们将介绍一些常用的MATLAB函数和命令,帮助读者了解如何在MATLAB中使用状态空间模型进行设计。
首先,我们可以使用`ss`函数来创建一个状态空间模型对象。
这个函数可以接受系统的系数矩阵作为输入,然后返回一个StateSpace对象。
例如,我们可以使用如下命令创建一个二阶系统的状态空间模型:```matlabA = [0 1; -1 -1];B = [0; 1];C = [1 0];D = 0;sys = ss(A, B, C, D);```在上述代码中,矩阵A、B、C和D分别表示系统的状态方程、输入矩阵、输出矩阵和直接传递矩阵。
通过使用`ss`函数,我们可以将这些矩阵传递给StateSpace对象,并得到一个表示系统的状态空间模型对象sys。
接下来,我们可以使用MATLAB提供的函数和方法来对状态空间模型进行各种操作。
例如,我们可以使用`tf`函数将状态空间模型转换为传输函数模型。
传输函数模型是一种常用的控制系统表示方法,可以用来分析系统的频率响应和稳定性等特性。
下面是一个将状态空间模型转换为传输函数模型的示例代码:```matlabtf_sys = tf(sys);```在上述代码中,我们使用`tf`函数将状态空间模型sys转换为传输函数模型tf_sys。
【实验报告】《自动控制原理》实验三 用Matlab进行状态空间分析及设计
![【实验报告】《自动控制原理》实验三 用Matlab进行状态空间分析及设计](https://img.taocdn.com/s3/m/b80a1773bcd126fff7050bd3.png)
实验三用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)。
其中
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 ] 必须是有限的但不确定。
线性系统状态空间分析
七、极点配置 如果系统 (A,B) 完全可控,则选择合适的K 矩 阵,可以将闭环系统矩阵 A-BK 的特征值配置 到任意地方。
线性系统状态空间分析
设给定线性定常系统:
x = Ax + Bu
若给定n个反馈系统的期望闭环极点:{p1,p2,…,pn} 则极点配置问题就是确定一个p×n状态反馈增益矩阵 K,使得闭环系统 x = ( A − B k ) x + B v 的极点为 {p1,p2,…,pn},即
线性系统状态空间分析
四、状态方程求解 4.1 线性连续定常齐次方程求解 考虑状态方程
X = AX ,
X(t)的解为:
其中
X
t=0
= X0
X ( t ) = φ ( t − t0 ) X ( t0 )
φ ( t − t0 ) = e A ( t − t
0)
线性系统状态空间分析
4.2 线性定常非齐次状态方程求解 线性定常非齐次状态方程为:
控制系统计算机仿真
dx = rx dt
李瑞 电子科大 自动化学院
Email: lirui@
线性系统状态空间分析
一、线性系统的状态空间描述
⎧ x = Ax + Bu ⎨ ⎩ y = Cx + Du
其中,x=[x1,x2,….,xn]´表示n维状态向量; y=[y1,y2,….,ym]´表示m维输出向量; u=[u1,u2,….,ur]´ 表示r维输出向量。
RM =3
RN = 3
线性系统状态空间分析
六、 状态反馈控制
线性系统状态空间分析
原系统动态方程为
⎧ x = Ax + Bu ⎨ ⎩ y = Cx + Du
状态反馈控制律为
u = v( x) − Kx
线性系统状态空间分析
将u(t)=v(t)-Kx(t) 代入开环系统的状态方程模型,则 在状态反馈矩阵 K 下,系统的闭环状态方程模型可以写 成
Bs = -7.7621 -14.6969 8.6168 Cs = 0.2577 -0.2041 0.0000;Ds = 0
Ts = -7.7621 -11.6431 -3.8810 -14.6969 -19.5959 -4.8990 8.6168 7.1807 1.4361
线性系统状态空间分析
由运算结果可知系统的对角标准型为:
[
]
说明
(1)定义中没有规定 t f 及输入的值,只要它们存在,就认 为系统是可控的。 (2)定义中没有规定 x 0 到x ( t f )的路径,只要能到达就行。 (3)能控性说明系统的每个状态变是否可由输入来影响。
线性系统状态空间分析
定义(能观) 系统称为状态完全能观的,如果对于确定的 时刻 t0,存在一个时刻 t f > t 0 ,使能由在区间 [t , t ]上的控制输
线性系统状态空间分析
输出结果如图所示:
线性系统状态空间分析
五、线性系统的状态可控性和状态可观测性 5.1 状态可控性,可观性 设单输入n阶线性定常系统为:
⎧ x ( t ) = A ( t ) x ( t ) + B ( t )u ( t ) ⎨ ⎩ y (t ) = C (t ) x(t )
(*)
X = AX + BU , X
解为:
t=0
= X ( t0 )
X (t ) = Φ(t − t0 ) X (t0 ) + ∫ Φ(t − τ )BU (τ )dτ
t0
t
线性系统状态空间分析
例3 已知系统的状态空间模型为
⎡−2 A=⎢ 1 ⎢ ⎢ 0 ⎣ − 2.5 0 1 − 0.5 ⎤ ⎡1⎤ 0 ⎥ , B = ⎢ 0 ⎥ , C = [0 ⎥ ⎢ ⎥ ⎢0 ⎥ 0 ⎥ ⎦ ⎣ ⎦ 1] , D = 0
⎧ X = JX + B U ⎨ ⎩Y = C X + D U
其中,J为约当矩阵,即J=T-1AT=diag[J1 J2…. Jk].
B = T −1B , C = C T
Ji为mi重特征根λi所对应的约当块,即
⎡λi ⎢ Ji = ⎢ ⎢ ⎢ ⎣0 1
λi
0⎤ ⎥ ⎥ 1⎥ ⎥ λi ⎦ ( m ×m ) i i
x = Tz
⎨ ⎩ y = C Tz + D u
有, ⎧ Tz = A Tz + B u 令 A = T −1 AT , B = T −1B, C = CT
⎧ z = T −1 ATz + T −1Bu 则 ⎨ ⎩ y = CTz + Du
线性系统状态空间分析
三、状态空间的标准型 3.1 对角标准型(A有n个不相等的实根)
试判断系统是否可控?是否可观?
线性系统状态空间分析
解 程序如下 A=[1,0,-1;-1,-2,0;3,0,1];B=[1,0;2,1;0,2]; C=[1,0,0;0,-1,0]v(A,C) RN=rank(N)
线性系统状态空间分析
M =1 2 0 N =1 0 1 1 -2 -1 0 1 2 0 -1 0 2 0 -4 1 -5 3 0 0 -1 0 -2 -1 -2 -2 2 -2 9 6 -4 6 -4
线性系统状态空间分析
例1 已知系统的状态空间模型为
1 0 ⎤ ⎧ ⎡ 0 ⎡1 ⎤ ⎪ X =⎢ 0 0 1 ⎥ X + ⎢0 ⎥U ⎪ ⎢ ⎥ ⎢ ⎥ ⎨ ⎢ − 6 − 11 − 6 ⎥ ⎢0 ⎥ ⎣ ⎦ ⎣ ⎦ ⎪ ⎪ Y = [1 1 0 ] X ⎩
求系统的对角标准型。
线性系统状态空间分析
线性系统状态空间分析
输出结果如图所示:
线性系统状态空间分析
x0=[1;0;2]; A=[-2 -2.5 -0.5;1 0 0;0 1 0];B=[1;0;0];C=[0 1.5 1]; D=0;G=ss(A,B,C,D);t=[0:0.1:20]'; u(1,1:20)=2*ones(1,20);u(1,21:201)=0.5*ones(1,181); [y,t,x]=lsim(G,u,t,x0); plot(t,x(:,1),'-',t,x(:,2),'--',t,x(:,3),'-.') xlabel('时间秒');ylabel('幅值'); grid text(6,0.3,'x_1(t)');text(6,-0.5,'x_2(t)'); text(8,1.8,'x_3(t)')
所谓可控性,就是指系统的状态是可以被控制的还是不 能被控制的;而可观性是指系统状态的变化是否能由输 出检测出来。
线性系统状态空间分析
5.2 可控判据 单输入n阶连续系统可控的充要条件为可控判别阵
M = [b
的秩等于n.
Ab
A
n −1
b ]n × n
对于多输入n阶连续定常系统: X = A X + B U A:n×n; B:n ×r. 系统可控的充要条件为可控判别阵
解 程序代码如下: A=[0 1 0;0 0 1;-6 -11 -6];B=[1;0;0];C=[1 1 0];D=0; [As,Bs,Cs,Ds,Ts]=canon(A,B,C,D) 运行结果如下:
线性系统状态空间分析
As = -3.0000 0 -2.0000 0 0 0 0
0 -1.0000
线性系统状态空间分析
将系统直接转化为对角型的函数canon() Matlab 提供了函数 canon() 可以将系统直接转化为 对角型,其常用的调用格式为: [As,Bs,Cs,Ds,Ts]=canon(A,B,C,D) 其中,A,B,C和D是变化前系统的状态空间形式, As,Bs,Cs和Ds是变换后的对角型,Ts表示所作的线性 变换。 将系统直接转化为约当型的函数jordan() 调用格式为:[T,J]=jordan(A), 其中J=T-1AT