MATLAB实验指导书

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

num1= 0 1 4
3
0 den1= 1 num2= 0 0 den2= 1
0 4
-25 25 5.0000 -25.0000
1.0000 1.0000 4 25
因此,所求的 4 个传递函数是 Y1 (s) s+4 = 2 , U 1 (s) s + 4s + 25 Y1 (s) s+5 = , U 2 ( s) s 2 + 4s + 25 例 1.3 试给出以下传递函数的状态空间实现
利用 MATLAB 对状态空间模型进行分析
1、根据状态空间模型分析系统由初始状态和外部激励所引起的响应; 2、通过编程、上机调试,掌握系统运动的分析方法。 2.3 实验原理说明 给定系统的状态空间模型:
& (t ) = Ax(t ) + Bu (t ) x y (t ) = Cx(t ) + Du(t )
A= -6 1 0 B= 1 0 0 C= 0 D= 0 因此,所考虑传递函数的一个状态空间实现是 10 10 -5 0 1 -10 0 0
4
&1 ⎤ ⎡− 6 − 5 − 10⎤ ⎡ x1 ⎤ ⎡1⎤ ⎡x ⎢& ⎥ = ⎢ ⎢ ⎥ ⎢ ⎥ 0 0⎥ ⎢x2 ⎥ ⎢ 1 ⎥ ⎢ x 2 ⎥ + ⎢0 ⎥ u ⎢ &3 ⎥ 1 0⎥ ⎣x ⎦ ⎢ ⎣ 0 ⎦⎢ ⎣ x3 ⎥ ⎦ ⎢ ⎣0 ⎥ ⎦ ⎡ x1 ⎤ ⎥ y = [0 10 10] ⎢ ⎢x2 ⎥ ⎢ ⎣ x3 ⎥ ⎦
6
⎡ x1 (0) ⎤ ⎡2⎤ ⎢ x ( 0) ⎥ = ⎢ ⎥ ⎣ 2 ⎦ ⎣1 ⎦
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 所示的系统状态对初始条件的响应曲线。
《现代控制理论》
实验指导书
俞立
徐建明 编
浙江工业大学信息工程学院
2007 年 4 月
1
实验 1
利用 MATLAB 进行传递函数和状态空间模型间的转换
1.1 实验设备 PC 计算机 1 台(要求 P4-1.8G 以上) ,MATLAB6.X 或 MATLAB7.X 软件 1 套。 1.2 实验目的 1、 学习系统状态空间模型的建立方法、 了解状态空间模型与传递函数相互转换的方法; 2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。 1.3 实验原理说明 设系统的状态空间模型是
0
t
(2.3)
x(t ) 包括两部分,第一部分是由系统自由运动引起的,是初始状态对系统运动的影响; 第二部分是由控制输入引起的,反映了输入对系统状态的影响。输出 y (t ) 由三部分组成。 第一部分是当外部输入等于零时,由初始状态 x(t 0 ) 引起的,故为系统的零输入响应;第二
部分是当初始状态 x(t 0 ) 为零时,由外部输入引起的,故为系统的外部输入响应;第三部分 是系统输入的直接传输部分。 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) 给出了一个状态空间模型对任意输入 u 的响 应,其中的 sys 表示贮存在计算机内的状态空间模型,它可以由函数 sys=ss(A,B,C,D) 得到,x0 是初始状态。 2.4 实验步骤 1、构建系统的状态空间模型,采用 MATLA 的 m-文件编程; 2、求取系统的状态和输出响应; 3、在 MATLA 界面下调试程序,并检查是否运行正确。 例 2.1 考虑由以下状态方程描述的系统: &1 ⎤ ⎡ 0 1⎤ ⎡ x1 ⎤ ⎡x =⎢ ⎢x ⎥ ⎥ ⎢ ⎥, ⎣ & 2 ⎦ ⎣− 10 − 5⎦ ⎣ x 2 ⎦ 求该系统状态对初始状态的时间响应。 编写和执行以下 m-文件
试给出该系统的单位阶跃响应曲线。 编写和执行以下的 m-文件 A=[-1 –1;6.5 0];
7
B=[1 1;1 0]; C=[1 0;0 1]; D=[0 0;0 0]; step(A,B,C,D) 可以得到如图 2.2 所示的 4 条单位阶跃响应曲线:
Step Response
From: U(1) 0.6 0.4 To: Y(1) 0.2 0 -0.2 -0.4 2 1.5 To: Y(2) 1 0.5 0 0 4 8 120 4 8 12 From: U(2)
1.5 实验要求 在运行以上例程序的基础上,应用 MATLAB 求下面传递函数阵的状态空间实现
⎡ s+2 ⎤ ⎢ s 2 + 5s + 3⎥ ⎦ G ( s ) = 3⎣ 2 s + 2 s + 3s + 4
提示:num =[0 0 1 2;0 1 5 3]。
5
实验 2
2.1 实验设备 同实验 1。 2.2 实验目的
& = Ax + Bu ⎧x ⎨ ⎩ y = Cx + Du
(1.1)
其中: x ∈ R n 是系统的状态向量, u ∈ R m 是控制输入, y ∈ R p 是测量输出, A 是 n × n 维状 态矩阵、 B 是 n × m 维输入矩阵、 C 是 p × n 维输出矩阵、 D 是直接转移矩阵。系统传递函 数和状态空间模型之间的关系如式(1.2)所示。 G( s) = C ( sI − A)−1 B + D 表示状态空间模型和传递函数的 MATLAB 函数。 函数 ss(state space 的首字母)给出了状态空间模型,其一般形式是 SYS = ss(A,B,C,D) 函数 tf(transfer function 的首字母)给出了传递函数,其一般形式是 G=tf(num,den) 其中的 num 表示传递函数中分子多项式的系数向量(单输入单输出系统) ,den 表示传递函 数中分母多项式的系数向量。 函数 tf2ss 给出了传递函数的一个状态空间实现,其一般形式是 [A,B,C,D]=tf2ss(num,den) 函数 ss2tf 给出了状态空间模型所描述系统的传递函数,其一般形式是 [num,den]=ss2tf(A,B,C,D,iu) 其中对多输入系统, 必须确定 iu 的值。 例如, 若系统有三个输入 u1 , u 2 和 u 3 , 则 iu 必须是 1、 2 或 3,其中 1 表示 u1 ,2 表示 u 2 ,3 表示 u 3 。该函数的结果是第 iu 个输入到所有输出的传 递函数。 1.4 实验步骤 1、根据所给系统的传递函数或(A、B、C、D) ,依据系统的传递函数阵和状态空间模 型之间的关系(1.2) ,采用 MATLAB 的相关函数编写 m-文件。 2、在 MATLAB 界面下调试程序。 例 1.1 求由以下状态空间模型所表示系统的传递函数, &1 ⎤ ⎡ 0 1 0⎤ ⎡ x1 ⎤ ⎡ 0⎤ ⎡x ⎢& ⎥ ⎢ ⎢ ⎥ ⎢ ⎥ 0 1⎥ ⎢ x 2 ⎥ + ⎢ 25⎥ ⎢x2 ⎥ = ⎢ 0 ⎥u ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ & ⎦ ⎣ x 3 ⎦ ⎣− 5 − 25 − 5⎦ ⎣ x 3 ⎦ ⎣− 120⎥ ⎡ x1 ⎤ ⎢ ⎥ y = [1 0 0] ⎢ x 2 ⎥ ⎢ ⎣ x3 ⎥ ⎦
8
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’) 得到以下的状态响应曲线:
Baidu Nhomakorabea
图 2.3
余弦输入信号下的状态响应曲线
求其传递函数矩阵。 解 个传递函数: ⎡Y1 ( s ) U 1 ( s ) Y1 ( s ) U 2 ( s ) ⎤ ⎢Y ( s ) U ( s ) Y ( s ) U ( s )⎥ 1 2 2 ⎣ 2 ⎦ 当考虑输入 u1 时,可设 u 2 为零,反之亦然。执行以下的 m-文件:
A=[0 1;-25 –4]; B=[1 1;0 1]; C=[1 0;0 1]; D=[0 0;0 0]; [num1,den1]=ss2tf(A,B,C,D,1) [num2,den2]=ss2tf(A,B,C,D,2) 得到:
设系统的初始时刻 t 0 = 0 ,初始状态为 x (0) ,则系统状态方程的解为
(2.1)
x(t ) = e At x(0) + e At ∫ e − Aτ Bu(τ )dτ
0
t
= e At x(0) + ∫ e A ( t −τ ) Bu(τ )dτ
0
t
(2.2)
输出为
y (t ) = Ce At x(0) + C∫ e A (t −τ ) Bu(τ )dτ + Du(t )
因此,所求系统的传递函数是
G( s) =
例 1.2
25s + 5 s + 5s 2 + 25s + 5
3
考虑由以下状态空间模型描述的系统: &1 ⎤ ⎡ 0 1⎤ ⎡ x1 ⎤ ⎡1 1⎤ ⎡u1 ⎤ ⎡x ⎢& ⎥ = ⎢ ⎥⎢ ⎥ + ⎢ ⎥⎢ ⎥ ⎣ x 2 ⎦ ⎣− 25 − 4⎦ ⎣ x 2 ⎦ ⎣0 1⎦ ⎣u 2 ⎦ ⎡ y1 ⎤ ⎡1 0⎤ ⎡ x1 ⎤ ⎢ ⎥=⎢ ⎥⎢ ⎥ ⎣ y 2 ⎦ ⎣0 1 ⎦ ⎣ x 2 ⎦ 这是一个 2 输入 2 输出系统。 描述该系统的传递函数是一个 2 × 2 维矩阵, 它包括 4
2
(1.2)
编写并执行以下的 m-文件: A=[0 1 0;0 0 1;-5 –25 –5]; B=[0;25;-120]; C=[1 0 0]; D=[0]; [num,den]=ss2tf(A,B,C,D) 得到:
num= 0 -0.0000 den= 1.0000 5.0000 25.0000 5.0000 25.0000 5.0000
2.5 实验要求 在运行以上程序的基础上,应用 MATLAB 验证一个振动现象可以由以下系统产生:
⎡ 0 &=⎢ x ⎣ −1
Amplitude
Time (sec.)
图 2.2 单位阶跃响应曲线
例 2.3
试求以下系统
⎡0 − 2 ⎤ ⎡2 ⎤ & (t ) = ⎢ x x (t ) + ⎢ ⎥u (t ) ⎥ ⎣1 − 3 ⎦ ⎣0 ⎦ y (t ) = [1 0]x (t )
在余弦输入信号和初始状态 x = [1 1]T 下的状态响应。 编写和执行以下的 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);
Response to Initial Condition 3
2
1
x1
x1, x2
0
-1
-2
-3
0
x2 0.5
1 Time (sec)
1.5
2
2.5
图 2.1
系统状态对初始条件的响应
例 2.2
考虑以下系统:
&1 ⎤ ⎡ − 1 − 1⎤ ⎡ x1 ⎤ ⎡1 1⎤ ⎡ u1 ⎤ ⎡x ⎢x ⎥ = ⎢6.5 0⎥ ⎢ x ⎥ + ⎢1 0⎥ ⎢u ⎥ & ⎦⎣ 2 ⎦ ⎣ ⎦⎣ 2 ⎦ ⎣ 2⎦ ⎣ ⎡ y1 ⎤ ⎡1 0⎤ ⎡ x1 ⎤ ⎢ y ⎥ = ⎢0 1 ⎥ ⎢ x ⎥ ⎦⎣ 2 ⎦ ⎣ 2⎦ ⎣
G (s) =
Y2 ( s ) − 25 = 2 U 1 (s) s + 4s + 25 Y2 ( s ) s − 25 = U 2 (s) s 2 + 4s + 25
10 s + 10 s + 6 s 2 + 5s + 10
3

执行以下的 m-文件:
num=[0 0 10 10]; den=[1 6 5 10]; [A,B,C,D]=tf2ss(num,den) 得到
相关文档
最新文档