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