1.模型建立
打开MATLAB2014a,如上图运行Simulink库,弹出Simulink Library Blocks,点击Continuous,在里面将会看到今天所要探究的PID Controller模块。
在Simulink Library Blocks菜单栏创建slx文件(2012版以下为mdl)。
将新建文件选择文件夹保存并将之命名PIDkzq。
将PID Controller加入到PIDkzq.slx。
1)如下图Add to PIDkzq载入其中。
2)鼠标左击PID Controller按住拖动到其中。
完善PID Controller系统控制模型,通过Sources→Signal Generator加入信号发生器。
通过Continuous→Transfer Fcn加入控制对象。
通过Commonly Used Blocks加入Scope观测装置。
为构建PID控制器反馈机制,通过Commonly→Sum加入求和模块。
为实现负反馈功能,将其由|++变为|+-以此实现,通过round可设置图标形状为圆形。
将上述拖入模块连接,构成系统模型图如下:
为了对PID控制信号前后进行对比,通过Commonly Used Blocks→Mux加入信号混合模块。
完善后的系统仿真模型如下所示:
2、参数详解
主要对上图参数进行配置及研究。
A、Signal Generator设置
打开Signal Generator,根据Wave form设置波形为sine正弦波。
设置Amplitude幅值为1,Frequency频率为1Hz。
同时设置仿真时间为10s,这样10内将会有10个正弦信号。
B、Transfer Fcn选择
打开Transfer Fcn对控制对象进行设计。
如上所示,Numerator coefficient为传函分子,Denominator coefficient为传函分母,设计分子为[1],分母为[1 1 1]。
C、PID参数介绍
打开PID Controller。其默认模式为Controller:PID,时间为连续时间控制。Kp=1,Ki=1,Kd=0。
点击Run运行仿真,图如下,其中黄色线为原始信号y=sin(t),粉红色线为经过PID控制后,传入传函T即被控对象后的输出信号y1。
由图可知道没有调节参数的PID控制效果极差。
D、PID参数优化
对PID控制器三个参数进行设计,这个过程需要多次带值调试,最终选择Kp=22,Ki=1,Kd=3仿真结果较为良好。
如下图所示可以看到原始信号y与经过传函T后的输出信号y1波形保持一直良好,不过存在时滞,y1滞后一定相位角。
E、PID控制类型选择
由Controller可知PID控制器存在五种模式:PID,PI,PD,P,I。注意没有单独的D微分控制器。
选择PI控制模式,取Kp=22,Ki=1,如下所示。
系统PID Controller图标变为如下。
系统仿真结果见下图。
可以看出单纯的PI控制已经满足不了对控制对象T的信号跟随。
选择PD控制模式,取Kp=22,Kd=3,如下所示。
系统PID Controller图标变为如下。
系统仿真结果见下图。
可以看出通过PD控制就可以满足对控制对象T的信号跟随,不需要加入I积分。
选择P控制模式,系统PID Controller图标变为如下。
选择I控制模式,系统PID Controller图标变为如下。
由于缺少D微分作用,单一的P或者I对系统传函T不能很好的调试,在此不给出系统仿真图了。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删