我是靠谱客的博主 舒适店员,最近开发中收集的这篇文章主要介绍使用MATLAB的simulink仿真PID整定过程(单/双级、有/无扰动),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

本文介绍无干扰单环PID、有干扰单环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的最佳值,当然那需要过硬的自控知识哈哈哈。

最后

以上就是舒适店员为你收集整理的使用MATLAB的simulink仿真PID整定过程(单/双级、有/无扰动)的全部内容,希望文章能够帮你解决使用MATLAB的simulink仿真PID整定过程(单/双级、有/无扰动)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部