【PID精讲12】基于MATLAB和Simulink的仿真教程 |
您所在的位置:网站首页 › pid绘制的步骤 › 【PID精讲12】基于MATLAB和Simulink的仿真教程 |
文章目录
写在前面一、基于Simulink的仿真1. 新建Simulink模型2. 保存Simulink模型3. 建模4. 运行
二、基于MATLAB的仿真1. 编码2. 运行3. 调整曲线格式4. 导出图窗
写在前面
第11讲介绍的连续系统的数字PID仿真是基于 Matlab的 M 语言实现的,对于初学者或者工程应用人员来说,可能不是很清楚是怎样实现的?本文以单P仿真为例详细介绍基于 MATLAB 和 Simulink 的实现过程。 特别说明:本文为我的首评老师机器人梦想家所整理,希望不负所望。 一、基于Simulink的仿真测试系统的传递函数: G ( s ) = 2 ( 3 s + 1 ) ( 2 s + 1 ) = 2 6 s 2 + 5 s + 1 G(s)=\frac{2}{(3s+1)(2s+1)}=\frac{2}{6s^2+5s+1} G(s)=(3s+1)(2s+1)2=6s2+5s+12 1. 新建Simulink模型(1)双击【MATLAB图标】(测试版本为2021b) (2)单击【新建】》【Simulink模型】》【空白模型】 (1)调用模型库:单击【库浏览器】 (2)找到单位阶跃信号源:单击【Sources】》【Step】,并将Step图元拖到新建的模型中。 (3)找到 Sum 运算图元:单击【Math Operations】》【Sum】,并将Sum图元拖到模型中。 (4)找到PID控制器图元:单击【Continuous】》【PID Controller】,并将PID Controller图元拖到模型中。 (5)设置PID控制器,因为咱们以单P为例测试,所以将控制器改成P,比例系数,可以根据系统的走势来调节(在调参过程中主要通过这个设置来更改系数值),本例中设置为 5,然后确定。 (6)找到传递函数图元:单击【Continuous】》【Transfer Fcn】,并将Transfer Fcn图元拖到模型中。 (7)修改传递函数:双击【Transfer Fcn】弹出设置对话框,将默认的传递函数改成目标传递函数,将分子改成2,分母改成6、5、1,然后确定。 (8)第7步修改后的传递函数默认显示如下图,并没有完整显示目标传递函数,是因为显示不开的原因,只需要将图元拖拉大一些,就可以正常显示了。 (9)选择示波器图元:【Sinks】》【Scope】,并将Scope图元拖拽到模型中。 (10)所有图元都找到并拖到模型中设置完成之后,下一步就是连线,连线过程及连线完成测试中随时修改配置。比如,我在连线时发现Sum的运算未修改,应该是负反馈,所以做一下修改。 双击Sum图元,将符号列表的 ++ 改成 ± 确认即可。 然后连线。 双击【Scope】,弹出示波器对话框,单击【运行】可以观察信号曲线。如果需要调试参数,就修改PID控制器的参数后再次运行验证直到达到理想曲线。 新建一个.m文件,源码如下: Gs = tf(2,conv([3,1],[2,1])); %Gs是传递函数,conv是可以理解为因式分解(3s+1)(2s+1) Kp = [0.5,2,5,10]; %取不同的比例系数,类似数组 for m = 1:4 sys = feedback(Kp(m)*Gs,1); %feedback(G,H),(G,H需事先设定)。 %其中G是传递函数,H为反馈函数,表示一个控制系统G,对其进行负反馈H(要求正反馈用-H)。这里前面写上比例环节与系统的串联,后面的1表示负反馈 step(sys); %求阶跃响应,可以用形如step(feedback(G,H)) title( 'P控制仿真' ); legend('P=0.5','P=2','P=5','P=10','Location','northeast' ); xlabel( '时间' ); ylabel( '振幅' ); hold on end 2. 运行单击【运行】按钮,弹出运行窗口。 (1)前文中的线条比较粗,怎么调节呢?方法如下: 首先将鼠标单击一下【箭头】,让鼠标变成一个箭头模式,然后,选中曲线,右击鼠标选择【Line Width】,选择合适的线的尺寸,比设置为2。然后依次将四根线都设置完成。 (2)通过【编辑】》【复制选项】来调整图像显示效果 单击【编辑】》【复制图窗】,就可以将图窗曲线复制在了粘贴板。 本节完 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |