一、为什么P的值太小会有稳态误差?

举个例子,假如一个温度控制系统,就比如控制烙铁的温度。
1.我们在烙铁电源线中间串一个继电器作为自动开关,继电器用单片机控制。
2.烙铁头上绑一个热电偶,作为温度反馈元件。
首先假设:
1.给定值Sv=100度。
2.PWM的周期T=1000,对应单片机电压U=5V。
3.最低动作电压,或者叫死区电压为2.5V。


假如一开始烙铁上电,烙铁温度是10度,那么此时偏差Ek=100-10=90 比例控制公式:Pout=Kp * Ek 1、若Kp设为1,Pout=1*90=90,电压:90/1000*5V=0.9V<2.5V 所以温度不会升高 2、若Kp设为10,Pout=10*90=900,电压:900/1000*5V=4.5V>2.5V 所以温度会升高,但随着温度身高,Pout会减低,当温度升高到50℃时,Pout=10*50=500,电压:500/1000*5V=2.5V,此时电压无法让温度升高了,此刻就达到了稳态误差,也就是50。 3、若Kp设为50,Pout=50*90=4500>1000,电压:5V,满负荷升温。 当温度升高到90℃时,Pout=50*10=500,电压:500/1000*5V=2.5V,此 时电压无法让温度升高了,此刻就达到了稳态误差,也就是90。 增大Kp的系数,可以减小稳态误差,但无法消除。Kp太小,系统存在过大的稳态误差;而Kp过大,则会使系统有超调,并且出现震荡。 2.为什么Kp过大时系统会超调、震荡? 当Kp=200时,假如温度升到了90度,此时偏差为10,但此时系统输出电压U=200*10 /1000 *5 =10V,但因为最大5V,所以系统仍以5V的电压高度运行,然后逐渐高速接近100度,此时注意,温度越高偏差越小输出越小。 通过计算,可以得到,当温度为97.5℃时,Pout=2.5*200=500,电压:500/1000·5V=2.5V,此时停止加热,但实际情况是余热会让温度继续上升,并不会停止,所以温度会很快地超过100℃,然后又会降温,升温从而产生震荡。 3.为什么积分项可以消除稳态误差?

积分的几何意义是求面积即求和,
积分公式如下:Iout = Kp * 1/Ti * T * ∑ Ek
Iout=∑ Ek ,k∈( 0 , n )
只要反馈值和设定值之间有误差,就会一直求和,直至反馈值和设定值一致。


4.为什么微分项可以抑制震荡、限制超调、以及可以作为超前控制系统的主要输出?

微分的数学意义是求导,速度的导数是加速度,即反应单位时间内的变化量。
微分公式如下:Dout=Kp * Td * [ E(k)-E(k-1) ]/ T
核心公式是:[ E(k)-E(k-1) ]/ T,“本次偏差减去上次偏差,再除以两次间隔的时间”,直至变化率为0才会没有输出。
只要将微分项的输出量的符号设为负值。注意了,那么一旦系统有变化率,此时微分项输出多少,系统就得从总输出中减去多少。若前两次偏差的变化率非常大,那么本次总输出减去的值也就对应的非常多,也就是大大削弱了总输出量,这就相当于微分项作为一个阻尼,抑制了系统的输出


5.PID调试口诀

参数整定找最佳,从小到大顺序查
先是比例后积分,最后再把微分加
曲线振荡很频繁,比例度盘要放大
曲线漂浮绕大湾,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长
曲线振荡频率快,先把微分降下来
动差大来波动慢,微分时间应加长
理想曲线两个波,前高后低四比一
一看二调多分析,调节质量不会低