手把手带你玩串级PID仿真实验

写在前面的话

由于在设计四旋翼飞行器的时候用到了串级PID控制,因此花了一点时间搞了搞,真正想学相关的理论的,当然是去看胡寿松的红皮《自动控制原理》啦,只是感觉书上的纯理论推导很不直观,之后查了一些乱七八糟的文档,实验之类的,感觉还是用仿真实际调一调,看看波形比较直观,便于学习和理解。于是整理一下学习笔记,发上来保存,同时也希望能让想了解串级PID(尤其是做四旋翼控制的盆友们)得到一丢丢帮助。能力有限,文章浅显,甚是惭愧。 

                                                                                                                      串级PID仿真实验
        本文以某燃烧室温度控制为例,利用SIMULINK放着工具,分别建立单级PID控制系统与串级PID控制系统,来对比分析两种PID控制的特点。
        某燃烧系统由主副两个燃烧室构成,以主燃烧室的温度为主变量,副燃烧室温度为副变量,主副燃烧室的传递函数如下:

         
下面针对以上系统,在SIMULINK中首先建立单级PID控制系统,如下图所示:
                                                                                                                                手把手带你玩串级PID仿真实验_第1张图片
在系统中,输入信号取阶跃信号r1,输出连接到示波器c2上,G4与G3为燃烧室系统的主副传递函数,q4、q3为施加在系统上的一次、二次扰动信号(取单位阶跃的形式),PID_controller3是PID控制,其设置界面如下图:

上述对话框可以直接设置PID的三个参数,通过调整三个参数,得到最佳响应的曲线,如下图。可以看到,在单级PID系统中,系统对于给定的输入阶跃信号在振动两次之后趋于稳定。调节PID参数,可以控制系统响应的超调量,稳定时间,衰减比等等一系列相关参数。
 
手把手带你玩串级PID仿真实验_第2张图片

再令一次扰动信号单独作用,观察系统的响应波形,从波形上我们可以看出,一次扰动信号使系统产生的振幅在0.1---0.12之间:
 
手把手带你玩串级PID仿真实验_第3张图片

再单独令二次扰动作用于系统,观察系统对二次扰动信号的响应曲线。
  手把手带你玩串级PID仿真实验_第4张图片
从图中可以看出,二次扰动使系统产生的振幅达到了0.16多,可见单级PID控制系统对二次扰动的抑制效果并不理想。下面针对这个系统,改用串级PID控制来仿真测试一下其控制效果。
首先结合系统,构建串级PID控制的仿真结构图,如下:
  手把手带你玩串级PID仿真实验_第5张图片
其中的关键元件与单级PID类似,PID控制器用了两个,分别位于两层反馈回路之间,q2、q1分别为一次扰动、二次扰动。通过调整两个PID控制器的参数(具体调试方法采用从内环到外环的顺序,先断开外环,输入信号直接作用于内环,内环调好之后加上外环继续调试即可)可以得到较为理想的输出曲线:
  手把手带你玩串级PID仿真实验_第6张图片
可以看到,在串级PID控制中,系统对阶跃信号的响应速度比单级PID快了4倍左右,超调量也小了很多,二次震荡的波峰几乎为0,系统能够比单级PID更快速的趋于稳定。下面类比于单级PID控制,分别观察扰动信号单独作用下系统的响应,一次来分析系统与扰动信号的抑制能力。
在一次扰动单独作用下的输出曲线如下图所示:
  手把手带你玩串级PID仿真实验_第7张图片
从图中可以看出,串级PID控制系统对一次扰动信号产生的响应,其振幅的量级在10的负3次方,对应最大振幅为0.0022,对比单级PID的一次扰动响应,可以很清晰的看出,串级PID对一次扰动的抑制效果要远远强于单级PID。
下面再让二次扰动单独作用。可以看到其响应曲线如下图:
  手把手带你玩串级PID仿真实验_第8张图片
从图中可以看出,串级PID对二次扰动的响应其振幅不到0.1,对比单级PID,可以看出,串级PID的效果也是远好于单级PID。
本文以一个温度系统为例,利用Simulink,分别建立单级PID控制系统与串级PID控制系统的仿真结构图,通过调整参数,实现最优输出,并且对比研究了两种控制算法的相关特性。更深层次的串级PID理论分析,详见胡寿松《自动控制原理》。

你可能感兴趣的:(PID控制,串级PID,自动控制,四旋翼飞行器)