使用MATLAB程序、Simulink对控制系统进行仿真
程序员文章站
2024-01-09 23:52:22
...
一、 采用Simulink建立系统仿真
如图所示建立一阶、二阶系统控制模型,其参数双击Zero-Pole可以设置,分子分母采用零点、极点的方式改变,在没有任何零极点时为[],即里面不写。s前的系数也可以自己设计。
图1,一阶、二阶系统控制Simulink仿真模型
通过双击Scope可以观察到输入波形及一阶、二阶的输出波形
图2、阶跃响应输入波形
图3、阶跃响应经过一阶系统后输出波形
可以看出经过系统有,阶跃响应的高频部分变得圆滑了。即该系统相当于一阶数字滤波器。
图4、阶跃响应经过二阶系统后输出波形
跟一阶系统的输出波形进行对比,发现进过二阶系统的输出波形具有衰减振荡的瞬态过程。并且具有相对较高的超调量和较长的调整时间。查资料可知,二阶系统引入速度反馈校正以后,可以减小系统的超调量和调整时间,但有时会增大系统的上升时间。
二、用Matlab程序建立系统控制模型
一阶系统如下:
MATLAB程序如下:
%模型建立
%模型建立
num=[12]; %传递函数分子
den=[1 -4]; %传递函数分母
T=0.1; %采样周期
step(num,den)
gs=tf(num,den) %传递函数模型建立
gz=c2d(gs,T,'zoh') %转化为离散系统脉冲传递函数模型
%模型特性
figure(1);
[z,p,k]=tf2zp(num,den) %求零极点
pzmap(gs) %零极点图
grid
pzmap(gz) %零极点图
grid
rlocus(gs) %根轨迹图
grid
rlocus(gz) %根轨迹图
grid
%时间响应
figure(2);
impulse(gs) %单位脉冲响应
impulse(gz) %离散单位脉冲响应
step(gs) %单位阶跃响应
step(gz) %离散单位阶跃响应
% %频率响应
figure(3);
freqs(num,den) %频率响应
freqz(num,den) %频率响应
%close
figure(4);
bode(gs) %波特图
bode(gz) %波特图
建立传递函数模型gs和转化为离散系统脉冲传递函数模型gz如下;gs =
12
-----
s - 4
Continuous-time transfer function.
gz =
1.475
---------
z - 1.492
Sample time: 0.1 seconds
Discrete-time transfer function.
z =Empty matrix: 0-by-1
p = 4
k =12
图5、 零极点分布图
图6、时域相应
图7、频域响应
其二阶的MATLAB仿真程序将一阶的传递函数分子改为num=[30],传递函数分母改为den=[1 7 0]即可。
采用Simulink要比编写程序简单的多,Simulink库中有很多的东西,为以后进一步的研究打下基础。