基于胡寿松主编的《自动控制原理》(第七版)附录的 M A T L A B {\rm MATLAB} MATLAB控制系统简单教程,快速了解 M A T L A B {\rm MATLAB} MATLAB在控制理论的应用,下载链接: MATLAB辅助分析与设计方法基础.
连续系统的离散化
c2d命令:将连续系统模型转换为离散系统模型;
d2c命令:将离散系统模型转换为连续系统模型;
命令格式:
sysd=c2d(sys,Ts,'zoh')
sys=d2c(sysd,'zoh')
参数说明:
sys:连续系统模型;
sysd:离散系统模型;
Ts:离散化采样时间;
'zoh':采用零阶保持器,可缺省;
实例分析:最小拍系统设计
E
x
a
m
p
l
e
B
−
7
{\rm ExampleB-7}
ExampleB−7: 设单位反馈线性定常离散系统的连续部分和零阶保持器的传递函数分别为:
G
0
(
s
)
=
1
s
(
s
+
1
)
,
G
h
(
s
)
=
1
−
e
−
s
T
s
G_0(s)=\frac{1}{s(s+1)},G_h(s)=\frac{1-{\rm e}^{-sT}}{s}
G0(s)=s(s+1)1,Gh(s)=s1−e−sT
采样周期
T
=
1
s
T=1s
T=1s;若要求系统在单位斜坡输入时实现最少拍控制,求数字控制器脉冲传递函数
D
(
z
)
D(z)
D(z)。
解:
确定有零阶保持器的开环系统脉冲传递函数 G ( z ) G(z) G(z);
由于
r
(
t
)
=
t
r(t)=t
r(t)=t,可得最小拍系统应具有的闭环脉冲传递函数和误差脉冲传递函数为:
Φ
(
z
)
=
2
z
−
1
(
1
−
0.5
z
−
1
)
,
Φ
e
(
z
)
=
(
1
−
z
−
1
)
2
\Phi(z)=2z^{-1}(1-0.5z^{-1}),\Phi_e(z)=(1-z^{-1})^2
Φ(z)=2z−1(1−0.5z−1),Φe(z)=(1−z−1)2
确定数字脉冲传递函数
D
(
z
)
=
Φ
(
z
)
G
(
z
)
Φ
e
(
z
)
D(z)=\frac{\Phi(z)}{G(z)\Phi_e(z)}
D(z)=G(z)Φe(z)Φ(z)
M A T L A B {\rm MATLAB} MATLAB实现:
G=zpk([],[0 -1],1); % 开环连续系统模型;
Gd=c2d(G,1,'zoh'); % 开环连续系统离散化模型G(z);
z=tf([1 0],[1],1);
phi1=(1-1/z)^2; % 最小拍系统的误差脉冲传递函数;
phi=2/z-(1/z)^2; % 最小拍系统的闭环传递函数;
D=phi/(Gd*phi1) % 计算数字控制器传递函数D(z);
sys0=feedback(Gd,1); % 校正前系统的闭环传递函数;
sys=feedback(Gd*D,1); % 校正后系统的闭环传递函数;
t=0:1:5;u=t; % 设定仿真时间5s,输入为斜坡信号;
figure(1)
lsim(sys0,u,t,0);grid % 绘制校正前系统的单位斜坡响应曲线;
xlabel('t');ylabel('c(t)');title('ramp response');
figure(2)
lsim(sys,u,t,0);grid % 绘制校正后系统的单位斜坡响应曲线;
xlabel('t');ylabel('c(t)');title('ramp response');