• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

使用MATLAB的simulink仿真PID整定过程(单/双级、有/无扰动)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Matlab Simulink是一个用来对动态系统进行建模、仿真和分析的软件包。使用Simulink来建模、分析和仿真各种动态系统。它提供了一种图形化、模块化的搭建平台,利用框图和箭头等就可以相对于代码更加简单地、直接地实现连续系统、离散系统和混合系统等的仿真。其模块库包含了绝大部分系统所需的模块。并且在使用过程中会体会到其界面十分友好。

本文介绍无干扰单环PID、有干扰单环PID以及串级PID的简单仿真。

仿真的系统框图如图所示:


其中,红色框代表K,黄色代表I,蓝色代表D。

这个为被控系统的传函。

被控系统的输出要负反馈到起始位置,与设定量(step的输出)相减,相减后的结果送入PID整定部分。

以下是simulink中的mux,作用是把多个信号集成为一个信号,方便我们把多个点的输出信号放到同一个示波器中做比较。

一 无外界干扰PID

我们用尝试的方法调PID的参数时候,一般都是先调P,再调I,最后再调D。所以我们第一步是把系统框图中的I和D的线删掉或者给其增益gain赋值为0。那么P的作用是什么呢,什么样波形结果才算理想,要怎么调???

1.1 首先我们调P

本文的第一张的图片就是无外接干扰PID的仿真框图,运行后双击右上角的示波器,可以得到以下波形:
示波器scope曲线颜色对应的线路 :1-黄 2-蓝 3-红(数字在图1中标出了)
这个是P=10,I=0,D=0时候的波形。

  • P=10,I=0,D=0

  • P=5
  • P=12
  • P=20

    可以通过多次调整P的大小来观察其作用。我们可以发现当P较小的时候红线和黄线的稳态误差始终存在,而P较大的时候曲线稳定之前的震荡次数明显较多,且P越大,超调量越大。综上我们选定P=10~12左右比较合适,我选择P=10。

1.2 然后调I

把I的线连起来,这个时候我的I大小是0.1

波形如下:

  • I=0.1
  • I=5

    调节过程中发现 ,I的值不可过大,太大了也会产生不必要的震荡,虽然看起来加了I与不加I的波形差不多,但是在某些特定情况下(外部扰动对系统产生误差),I可以起到明显的作用,增强系统的鲁棒性。
    D就不加了,因为对于这个系统来说,加入D会使系统反应速度加快很多,以至于纵坐标轴的大小都10的10次方级别了,而对于不同的系统来说,D的范围是很大的,只能说是这个系统不适合使用D。

二 加入外界干扰的PID

在系统中加入一个延时10的step=5的扰动,观察我们之前设置的参数是否合适以及各个参数的作用。

绿色曲线对应扰动的状态

  • P=10,I=2,D=0

    可以观察到在T=10之后输入一个扰动,会使系统产生误差,但是经过一段时间后,趋于稳定,从输入扰动到稳定的时间主要取决于I的大小,下面我们调I,P和D不变:
  • P=10,I=5,D=0

    我们发现加大I后,红线(系统输出)比I=2时稳态误差(红线-黄线)更小了。
  • P=10,I=0.5,D=0

    而减小I,稳态误差变大

现在我们假设P=10,I=5,不变,调节D的大小来观察D的作用:

  • D=0.000000000001


发现蓝色线在开始时候有比较不合理的情况,这是因为D对于系统太大了,系统对于扰动的反应过激烈

  • D=0.0000000000001

    相比于之前的数据,这个D会比较缓和一些,但是其实D的作用不是很稳定,虽然会加快系统的反应速度,但是对于不同的系统来说,D的值变化范围很大,忽高忽低。一般来说,系统加入的D越小越好,甚至不加。

三 串级PID

相比于单级PID调节,串级PID效果有时候会更加明显,比如在使用部分电机时,可能会使用上电流环、速度环、位置环等等多级PID调节,这边对串级PID(两级)做出实验仿真。
我的系统传函是借用了该博主的参数
https://blog.csdn.net/Rick_Grimes/article/details/75095315

仿真分为内环和外环,用以比拟电机控制过程,假设内环控制电机的电流环,外环控制电机的速度环。调PID时,应该先调内环再调外环。

3.1 内环PID

首先将外环PID值设定为1,0,0,然后采取之前的方法对内环PID进行调节
黄色为系统输入,蓝色为内环输出,红色为外环输出即为系统输出
能调到最好的状态为12 , 0.5,5

3.2 再调外环PID

外环PID最佳参数为8,0.15,1

我觉得这个系统相比于最前面举例的单级框图更能说明PID各个参数的作用,由于之前已经很详细了,所以这边就不介绍过程了,多实践一下就上手了。

3.3 内环加入扰动(T=40,大小为5的扰动)



曲线还算稳定,适当微调内环PID参数为12,0.8,8,得到以下图像

3.4 外环加入扰动(T=70,大小为5)



观察到曲线不稳定,红线不能达到黄色设定值,所以对外环PID做出调整:
外环PID参数8,0.6,8为最佳状态,红线能较快达到黄线。

以上就是PID的实验过程及结果,整个调PID的过程大概就是这样,当然现实中由于很多因素的存在,所以调试的过程其实更加复杂,也可以使用计算的方法算出PID的最佳值,当然那需要过硬的自控知识哈哈哈。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi中的哈希表(2):TStringHash发布时间:2022-07-18
下一篇:
DelphiStringGrid控件的属性及使用说明发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap