现代控制理论实验报告

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

现代控制理论实验报告

组员:

院系:信息工程学院

专业:

指导老师:

年月日

实验1 系统的传递函数阵和状态空间表达式的转换

[实验要求]

应用MATLAB 对系统仿照[例]编程,求系统的A 、B 、C 、阵;然后再仿照[例]进行验证。并写出实验报告。

[实验目的]

1、学习多变量系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;

2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。

[实验内容]

1 设系统的模型如式示。

p m n R y R u R x D Cx y Bu Ax x ∈∈∈⎩⎨⎧+=+=&

其中A 为n ×n 维系数矩阵、B 为n ×m 维输入矩阵 C 为p ×n 维输出矩阵,D 为传递阵,一般情况下为0,只有n 和m 维数相同时,D=1。系统的传递函数阵和状态空间表达式之间的关系如式示。

D B A SI C s den s num s G +-==-1)()

()(()( 式中,)(s num 表示传递函数阵的分子阵,其维数是p ×m ;)(s den 表示传递函数阵的按s 降幂排列的分母。

2 实验步骤

① 根据所给系统的传递函数或(A 、B 、C 阵),依据系统的传递函数阵和状态空间表达式之间的关系如式,采用MATLA 的编程。注意:ss2tf 和tf2ss 是互为逆转换的指令;

② 在MATLA 界面下调试程序,并检查是否运行正确。

③ [] 已知SISO 系统的状态空间表达式为,求系统的传递函数。

,2010050010000100001043214321u x x x x x

x x x ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡&&&&[]⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=43210001x x x x y

程序: A=[0 1 0 0;0 0 -1 0;0 0 0 1;0 0 5 0];

B=[0;1;0;-2];

C=[1 0 0 0];

D=0;

[num,den]=ss2tf(A,B,C,D,1)

程序运行结果:

num =

den =

0 0 0

从程序运行结果得到:系统的传递函数为:

24253)(s

s s S G --= ④ [] 从系统的传递函数式求状态空间表达式。

程序:

num =[0 0 1 0 -3];

den =[1 0 -5 0 0];

[A,B,C,D]=tf2ss(num,den)

程序运行结果:

A =

0 5 0 0

1 0 0 0

0 1 0 0

0 0 1 0

B =

1

C =

0 1 0 -3

D =

⑤ [] 对上述结果进行验证编程

%将[]上述结果赋值给A、B、C、D阵;

A=[0 5 0 0;1 0 0 0;0 1 0 0;0 0 1 0];

B=[1;0;0;0];

C=[0 1 0 -3];

D=0;

[num,den]=ss2tf(A,B,C,D,1)

实验结果:

num =

den =

0 0 0

程序运行结果与[]完全相同。

[实验分析]

当已知系统的状态空间表达式,我们可以求得系统的传递函数。当已知系统的传递函数式,我们也可以求得状态空间表达式。由于一个系统的状态空间表达式并不唯一,所以程序运行结果有可能不等于原式中的矩阵,但该结果与原式是等效的。验证结果证明了这个结论。

实验2 状态空间控制模型系统仿真及状态方程求解

[实验要求]

1、进行模型间的相互转换。

2、绘出系统单位阶跃及脉冲曲线。

[实验目的]

1、熟悉线性定常离散与连续系统的状态空间控制模型的各种表示方法。

2、熟悉系统模型之间的转换功能。

3、利用MATLAB 对线性定常系统进行动态分析

[实验内容]

1、 给定系统1

25.032)(2323++++++=s s s s s s s G ,求系统的零极点增益模型和状态空间模型,并求其单位脉冲响应及单位阶跃响应。

2、 已知离散系统状态空间方程:

[]⎪⎪⎩

⎪⎪⎨⎧=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=+)(021)()(102)(101110221)1(k x k y k u k x k x 采样周期s T s 05.0=。在Z 域和连续域对系统性能进行仿真、分析。

[实验结果及分析]

1、

程序:

num=[1 2 1 3];

den=[1 2 1];

sys=tf(num,den)

[z,p,k]=tf2zp(num,den)

[A,B,C,D]=tf2ss(num,den)

impulse(sys),hold on

step(sys)

程序运行结果:

Transfer function:

s^3 + 2 s^2 + s + 3

-----------------------

s^3 + s^2 + 2 s + 1

z =

+

-

p =

0 +

0 -

k =

1

A =

0 0

0 0

B =

1

C =

D =

1

单位脉冲响应/单位阶跃响应:

2、

程序:

g=[-1 -2 2;0 -1 1;1 0 -1];

h =[2;0;1];

c =[1 2 0];

d=0;

u=1;

sysd=ss(g,h,c,d,

dstep(g,h,c,d,u)

程序运行结果:

a =

相关文档
最新文档