公众号上有几位朋友提到了PID控制器参数调节的问题,一直没正面回答,想着什么时候写一篇自己的经验分享,供大家参考,今天就是兑现承诺日子。
PID控制器由比例调节、积分调节、微分调节三部分组成。比例调节根据偏差的大小调节输出,积分调节根据偏差进行积分累计来调节输出,微分调节根据偏差的微分来调节输出。PI控制器的表达式为:u(t) = Kp*e(t) + Ki*∫e(t) dt+Kd*de(t)/dt
对于一个控制系统,我们期望的响应结果是稳(系统稳定不震荡不发散)、快(系统响应快速)、准(系统静态误差小)。对PID控制器的调节结果评价也是如此。
比例系数Kp:
三个参数中的绝对主力,不可或缺。Kp增大可以加快系统响应,减小静差,但系统超调量会加大,稳定性变差。比例控制是一种立即控制,只要有偏差,就立即输出控制量。大部分系统只需要P控制即可实现基本的稳快准需求。
积分系数Ki:
三个参数中的一般主力,用于消除静差、Ki减小可以降低超调量,使系统的稳定性增强。积分控制是一种修复控制,只要有偏差,就会逐渐去往消除偏差的方向去控制。
微分系数Kd:
三个参数中的预备人员,一般不用,在反馈量噪声比较大时可能会使系统震荡。Kd增大可以加快系统响应,减小超调量,适用于迟滞系统或无阻尼系统。微分控制是一种提前控制,以偏差的变化率为基准进行控制。
基本调试方法:先比例(从中间到两边)、后积分(从0到大)、再微分(从0到大)。
下面将以电机的转速PID控制为例,进行仿真调试,来具体理解这个调试过程。
PID控制器模型
基于上面的公式,PID控制器Simulink模型可表示为下图:
直流电机模型
我们需要一个被控对象模型,这里选择一个12V直流电机作为被控对象。直流电机的数学表达式为:
U=I*R+Ke*φ*w+L*dI/dt
Te=Kt*φ*I
Te-TL=J*dw/dt+B*w
基于上述表达式,直流电机的Simulink模型可表示为下图所示:
仿真调试
把以上的控制器模型和直流电机模型组合起来,一个通过PI控制器控制电机转速的仿真模型可表示如下(目标转速1000rpm):
电机参数设置如下:
准备工作完成,开始调试。
第一步:先比例,从中间到两边。
其实可以先定量计算中间值取多少。
把电机稳定控制在1000rpm(104.7rad/s)±50rpm所对应的电机扭矩:
Te=W*B+TL=104.7*0.01+1=2.047 Nm
电机电流:
I=Te/Kt/φ=2.047/0.9529/0.1=21.482A
电机电压:
U=I*R+Ke*φ*w=21.482*0.1+0.1*0.1*104.7=3.1952V
比例系数Kp:
Kp=U/e=3.1952/50=0.0639
用Kp=0.0639,Ki=0,Kd=0,仿真结果如下图,稳态偏差刚好50rpm左右,符合期望。
以Kp=0.06为中间,向两边缩小或放大3倍左右观察。所以我们分别给定Kp=0.02、0.06、0.2,看看仿真结果如下图:kp为0.02时,虽然稳态误差较大,但是超调量较小,响应速度不慢,综合效果最好。kp太大时超调量偏大且响应速度也没有明显提高。所以Kp暂定为0.02左右(如果系统不太在意超调量大小,Kp取0.06也可,这个取决于你对控制系统的要求,即对稳、快、准的需求有优先级)。
第二步:后积分,从0到大。
我们取Ki=0、0.006、0.02、0.06,仿真观察。随着Ki的增大,系统达到稳定时间越来越短,所以我们可以暂定Ki=0.06。
第三步,再微分,从0到大。
我们取Kd=0、0.0001、0.001、0.01,仿真观察。随着Kd的增大,系统稳定性先变好再变差,Kd为0.001时效果最好,所以我们定Kd=0.001。
到这里,三个参数都有了,分别是Kp=0.02,Ki=0.06,Kd=0.001,系统响应曲线如下图,感觉还可以。
但是,实际的反馈信号往往有噪声,微分控制有失稳的风险,所以用微分时一定要慎重。
一般实际工程控制中,微分控制使用确实较少。假如我们不能加微分调节,还有没有其他办法能让响应曲线更好呢?答案肯定是有的,先介绍其中一种。
把目标转速1000rpm进行一个低通滤波后,再给到PID控制器,选取Kp=0.005,Ki=0.015(参数调试过程同上),仿真结果如下图,响应虽不及PID控制快速,但是与PI控制器相比,超调量大大减小,稳定性有所提高。
以上,就是个人对PI控制参数调节的部分经验,下次可以接着继续聊。
欢迎关注微信公众号"新能源汽车控制",了解更多内容。
四大“醒”,包括 wake,waken,awake 和 awaken,它們意思相近,有的時候甚至感覺它們是一樣的,那怎麼區分它們呢?一、wake1....