当前位置:
文档之家› 现代控制理论实验指导书2017年_学生版
现代控制理论实验指导书2017年_学生版
G( s )
num( s) C ( sI A)1 B D den( s)
(1.2)
式(1.2)中, num (s) 表示传递函数阵的分子阵,其维数是 p×m; den (s) 表示传递函数阵的按 s 降幂排列的分母。 四、实验内容与步骤 1、采用 MATLAB 编程,求系统的传递函数阵或状态空间表达式。 2、在 MATLAB 下调试程序,并检查是否运行正确。 3、例 1:已知 SISO 系统的传递函数为
G ss( A, B, C, D) 返回连续系统的状态空间模型 G 。 G ss( A, B, C, D, Ts) 返回离散系统的状态空间模型 G 。Ts 为采样周期,当 Ts=1 或
者 Ts=[]时,系统的采样周期未定义。
Gss ss(G) 可将任意的 LTI 模型 G 转换为状态空间模型 Gss 。
实验三 小车倒立摆控制系统仿真实验
一、实验设备
计算机、Mtalab 软件
t
e At x(0) 或 L1{( sI A) 1}x(0)
e
0
A( t )
Bu ( )d 或 L1{( sI A) 1 Bu (s)}
L1{C (sI A) 1 x(0) C (sI A) 1 Bu (s)} Du (t )
2、 MATLAB 提供的函数 step( )、lsim( )和 initial( )可以求得系统响应的数值解。 (1)Matlab 中,时间区间变量(数组) t 有三种格式: t=Tintial:dt:Tfinal 表示仿真时间段为[Tintial,Tfinal],仿真时间步长为 dt t=Tintial:Tfinal 表示仿真时间段为[Tintial,Tfinal],仿真时间步长 dt 缺省为 1 t=Tfinal 表示仿真时间段为[0,Tfinal],系统自动选择仿真时间步长 dt 若时间数组缺省(没有指定),表示系统自动选择仿真时间区间[0,Tfinal]和仿真时间步长 dt。 (2) 阶跃响应函数 step( ),可用于计算在单位阶跃输入和零初始状态(条件)下传递函数模型 的输出响应,或状态空间模型的状态和输出响应,其主要调用格式为 step(sys,t) [y,t] = step(sys,t) [y,t,x] = step(sys,t) 其中,对第 1、2 种调用格式,sys 为传递函数模型变量或状态空间模型变量;对第 3 种方式,sys 为状态空间模型变量。t 为指定仿真计算状态响应的时间数组,可以缺省。 (3)初始状态响应函数 initial( ),主要是计算状态空间模型(A,B,C,D)的初始状态响应,其 主要调用格式为
1 0 0 x x u 2 3 1
y 1 1x
1 x(0) 1 ,试求系统在初始状态作用下的状态响应和输出响应,并绘制状态 初始状态为
响应曲线和输出响应曲线。 (1)程序
A=[0 1;-2 -3]; B=[0;1]; C=[1 1]; D=0; sys=ss(A,B,C,D); t=0:0.5:10; x0=[1;-1]; [yo,t,xo]=initial(sys,x0,t); plot(t,xo,'*',t,yo,'-')
Ax Bu x
y Cx Du
且初始状态为 x(0) ,那么状态方程解的拉氏变换式为
x(s) (sI A) 1 x(0) (sI A) 1 Bu (s)
其解为
x(t ) e At x(0) e A(t ) Bu ( )d
0
t
其中零输入响应为 零状态响应为 系统的输出响应为
0 den =
1.0000
5.0000
3.0000
1.0000 2.0000 5、给定系统的开环传递函数为
3.0000
4.0000
G(s )
10 (0.2s 1) s(0.1s 1)(0.5s 1)
用 MATLAB 编 程 求 得 单 位 负 反 馈 系 统 的 状 态 空 间 方 程 。 (提示:函数 [numc,denc]=cloop(num,den,sign)做单位负反馈,先求单位负反馈系统的传递函数,再求系统 的状态空间方程) (1)实验程序为: clear close all clc num=[2,10];%系统描述 den=[0.05,0.6,1,0]; [numc,denc]=cloop(num,den,-1);%作系统的单位负反馈 printsys(numc,denc); [a,b,c,d]=tf2ss(numc,denc)%单位负反馈系统的状态空间方程 (2)运行结果为: num/den = 2 s + 10 ----------------------------0.05 s^3 + 0.6 s^2 + 3 s + 10 a = -12.0000 -60.0000 -200.0000 1.0000 0 0 0 1.0000 0 b= 1 0 0 c= 0 40 200 d= 0 五、思考题 例 1 中得到的状态空间模型和例 2 的状态空间表达式不一致, 是运行结果出错了吗?请 说明原因。
运行结果: z= -4.3028 -0.6972 p= -1.6506 + 0.0000i -0.1747 + 1.5469i -0.1747 - 1.5469i k= 1 A= -2 -3 -4 1 0 0 0 1 0 B= 1 0 0 C= 1 5 3 D= 0 4、例 2:已知 SISO 系统的状态空间表达式为
x1 y 1 0 0 x2 x3
[num,den]=ss2tf(A,B,C,D,1) %或[num,den]=ss2tf(A,B,C,D) %状态空间表达式转换成传递函数的格式为[num,den]=ss2tf(a,b,c,d,u) %对多输入系统,必须具体化 u,即指定第 n 个输入;单输入系统可忽略 u (4)运行结果: num =
实验一
一、实验设备
利用 MATLAB 分析系统状态空间模型
计算机,MATLAB 软件。 二、实验目的 1、熟悉 MATLAB 编程环境和基本语法,了解控制系统工具箱的常用函数; 2、通过编程、上机调试,掌握系统状态空间表达式与传递函数相互转换方法。 三、实验原理说明 1、打开 Matlab,选择“File\New\Script”可建立 M 文件;选择“File\New\Model”可建 信 息的重要窗口。 2、设系统的模型如式(1.1)示。
实验二
一、实验设备
利用 MATLAB 求解系统的状态方程
计算机,MATLAB 软件。 二、实验目的 1、通过编程、上机调试,掌握求解系统状态方程的方法,学会绘制状态响应曲线; 2、掌握利用 MATLAB 导出连续状态空间模型的离散化模型的方法。 三、实验原理说明 1、线性定常连续系统的状态方程求解 如果线性定常连续系统的状态空间表达式为
A=[0 1;-2 -3];
1 2
B=[0;1];C=[1 1];D=[]; x0=[1;2]; sys=ss(A,B,C,D); [u,t]=gensig('square',3,10,0.1) [y,t,x]=lsim(sys,u,t,x0); plot(t,u,’red’,t,x,’green’,t,y,’blue’)
1 0 1 0 x1 1 x x 0 1 2 0 x2 3 u, 3 x 4 3 2 x3 6
(1)将其输入到 MATLAB 工作空间; (2)求系统的传递函数。 (3)程序: clear close all clc A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;-6]; C=[1 0 0]; D=0;
(2)运行结果:
2、在 Matlab 中计算如下系统在[0,10s]内,周期 T=3s 的单位方波输入下的状态响应和输出 响应,绘制输入信号、状态响应和输出响应曲线。
0 0 1 y 1 1x x x u , 2 3 1
初始状态 x 0 (1)思路:获得系统状态空间模型;生成输入方波信号;产生系统的状态响应和输出响应。 (2)程序: clear close all clc
initial(sys,x0,t) [y,t,x] = initial(sys,x0,t) 其中 sys 为输入的状态空间模型;x0 为给定的初始状态;t 为指定仿真计算状态响应的 时间区间变量(数组)。 第 1 种调用格式的输出格式为输出响应曲线图, 第 2 种调用格式的输出为数组形式的输 出变量响应值 y,仿真时间坐标数组 t,状态变量响应值 x。 (4)任意输入的系统响应函数 lsim( ),用于计算在给定的输入信号序列(输入信号函数的采 样值)下传递函数模型的输出响应,或状态空间模型的状态和输出响应,其主要调用格式为 lsim(sys,u,t,x0) [y,t,x] = lsim(sys,u,t,x0) 其中,sys 为传递函数模型变量或状态空间模型变量;t 为时间坐标数组;u 是输入信号 u(t)对应于时间坐标数组 t 的各时刻输入信号采样值组成的数组,是求解系统响应必须给定 的。 (5)信号生成函数 gensig( ),gensig( )的调用格式为 [u,t] = gensig(type,tau) [u,t] = gensig(type,tau,Tf,Ts) 其中,type 为选择信号类型的符号串变量; tau 为以秒为单位的信号周期; Tf 和 Ts 分别为产生信号的时间长度和信号的采样周期。 gensig 函数可以产生的信号类型 type 为正弦信号sin、方波信号square、周期脉冲 信号pulse。 所有信号的幅值为 1。 (6)在 MATLAB 中,连续系统和离散系统的状态空间模型都用 MATLAB 提供的函数 ss ( ) 建立。函数 ss ( )不仅能用于建立系统的状态空间模型,也能用于将系统的传递函数模型和 零极点增益模型转换为状态空间模型。该函数的调用格式如下: