PID控制 Simulink仿真
基础信息说明:
- 电脑:win10系统
- Matlab:R2023a(软件下载)
- 本人纯小白,只是单纯记录软件使用过程,很基础,有任何问题请各位大佬指出
- 本文内容:使用simulink做最简单的PID控制仿真
- 传递函数: G ( s ) = 1 s 2 + 0.8 s + 1 G(s) =\frac{1}{s~2~+0.8s+1} G(s)=s 2 +0.8s+11
PID控制简介
-
PID控制(即Proportional Integral Derivative Control) 实际上是三种反馈控制:比例控制,积分控制与微分控制的统称。比例控制只考虑此刻预设值与实际值之间有无误差,存在稳态误差问题;积分控制只考虑历史误差,无稳态误差,但存在震荡明显,大部分时间处于超调,系统稳定的时间延长;微分控制,存在对高频噪声敏感的问题。控制结构框图如下:
-
打开matlab->Simulink,新建空白模型
-
在库浏览器中输入transfer function,下滑找到Transfer Fun (with initial states)即带初始条件的传递函数,单击拖入工作区。
-
在库->simulink->Commonly used Blocks中找到:Constant,Sum,Scope,四个模块,库中搜索PID,找到PID Controller模块,按如图连线。(模块说明:Constant作为系统输入的预设值,Sum为预设值与系统实际值的差值,PID:设置P I D 三个参数;Transfer:传递函数;Scope:观测误差和PID控制器的曲线)(比例、积分、微分控制的区别只在于PID控制器参数的调节,其他模块的参数一致)
-
比例控制:双击修改模块参数,Constant:10;Sum:±;PID:P:10;I:0;D:0.;transfer function:分母:[1 0.8 1].
-
点击运行,完成后,双击Scope1。
-
关闭该图,在工作区空白处单击,然后Ctrl+e,配置参数->求解器->求解器选择:变步长,求解器:ode45;求解器详细信息:最大步长:0.01;最小步长:0.001,初始步长保持默认,然后确定(可以让曲线更加平滑)。修改停止时间为50.
-
再次运行,双击Scope1。发现PID 控制器的输出最终稳定在一个非零值,即稳态误差。
-
PI控制:修改第二个PID控制器:比例:10;积分:5;微分0;PID控制:修改第三个PID控制器:比例:10;积分:5;微分:3
-
点击运行,可分别查看P,PI,PID控制的效果图Scope。(如果看不全曲线,双击scope->第二排工具栏有缩放x,y轴 可以试试。)