欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用MATLAB程序、Simulink对控制系统进行仿真

程序员文章站 2024-01-09 23:52:22
...

一、 采用Simulink建立系统仿真

   如图所示建立一阶、二阶系统控制模型,其参数双击Zero-Pole可以设置,分子分母采用零点、极点的方式改变,在没有任何零极点时为[],即里面不写。s前的系数也可以自己设计。

使用MATLAB程序、Simulink对控制系统进行仿真

                    图1,一阶、二阶系统控制Simulink仿真模型

通过双击Scope可以观察到输入波形及一阶、二阶的输出波形

使用MATLAB程序、Simulink对控制系统进行仿真

                             图2、阶跃响应输入波形

使用MATLAB程序、Simulink对控制系统进行仿真

              图3、阶跃响应经过一阶系统后输出波形

可以看出经过系统有,阶跃响应的高频部分变得圆滑了。即该系统相当于一阶数字滤波器。

使用MATLAB程序、Simulink对控制系统进行仿真

   图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
使用MATLAB程序、Simulink对控制系统进行仿真
                                         图5、 零极点分布图

使用MATLAB程序、Simulink对控制系统进行仿真

                                             图6、时域相应

使用MATLAB程序、Simulink对控制系统进行仿真
                                              图7、频域响应

其二阶的MATLAB仿真程序将一阶的传递函数分子改为num=[30],传递函数分母改为den=[1 7 0]即可。

采用Simulink要比编写程序简单的多,Simulink库中有很多的东西,为以后进一步的研究打下基础。