利用MATLAB对状态空间模型进行分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 ⎡⎤=⎢⎥⎣⎦

相关文档
最新文档