利用MATLAB对状态空间模型进行分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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 ∫∫−−+=+=t
t t t
t t e e e
e
e t 0
)(0
d )()0(d )()0()(τ
ττ
τττ
Bu x Bu x x A A A A A (2.2)
输出为
)(d )()0()(0
)(t e e t t
t 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 界面下调试程序,并检查是否运行正确。
例2.1 考虑由以下状态方程描述的系统:
⎥⎦
⎤
⎢⎣⎡=⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡−−=⎥⎦⎤⎢⎣⎡12)0()0(,51010212121x x x x x x && 求该系统状态对初始状态的时间响应。
编写和执行以下m-文件
A=[0 1;-10 –5]; B=[0;0]; D=B; C=[1 0;0 1]; x0=[2;1];
[y,x,t]=initial(A,B,C,D,x0); plot(t,x(:,1),t,x(:,2)) grid
title(‘Response to Initial Condition’) xlabel(‘Time (sec)’) ylabel(‘x1, x2’) text(0.55,1.15,’x1’) text(0.4,-2.9,’x2’)
得到如图2.1所示的系统状态对初始条件的响应曲线。
图2.1 系统状态对初始条件的响应
例2.2 考虑以下系统:
⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣
⎡−−=⎥⎦⎤⎢⎣⎡212121011105.611u u x x x x
&& ⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣
⎡=⎥⎦⎤⎢⎣⎡21211001x x y y
试给出该系统的单位阶跃响应曲线。
编写和执行以下的m-文件
A=[-1 –1;6.5 0];
B=[1 1;1 0]; C=[1 0;0 1]; D=[0 0;0 0]; step(A,B,C,D)
可以得到如图2.2所示的4条单位阶跃响应曲线:
图2.2 单位阶跃响应曲线
例2.3 试求以下系统
[])
(01)()(02)(3120)(t t y t u t t x x x =⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡−−=& 在余弦输入信号和初始状态下的状态响应。
T ]11[=x 编写和执行以下的m-文件:
A=[0 -2;1 -3];B=[2;0];C=[1 0];D=[0]; sys=ss(A,B,C,D); x0=[1;1]; t=[0:0.01:20]; u=cos(t);
[y,T,x]=lsim(sys,u,t,x0);
subplot(2,1,1),plot(T,x(:,1)) xlabel(‘Time(sec)’),ylabel(‘X_1’) subplot(2,1,2),plot(T,x(:,2)) xlabel(‘Time(sec)’),ylabel(‘X_2’)
得到以下的状态响应曲线:
图2.3 余弦输入信号下的状态响应曲线
2.5 实验要求
在运行以上程序的基础上,应用MATLAB 验证一个振动现象可以由以下系统产生:
011
0x
x ⎡⎤=⎢⎥−⎣⎦
& 证明该系统的解是
cos sin ()(0)sin cos t t x t x t t ⎡⎤
=⎢⎥
−⎣⎦
假设初始条件,用Matlab 观察该系统解的形状。
0(0)1x ⎡⎤=⎢⎥⎣⎦。