1.对于Kp系数的理解: u(t) - u(t-1)是两次偏差之间的差值, Kp就是系数, P = (1/Kp)*[u(t) - u(t-1)], 我们调节的就是Kp这个值。
从公式可以明白,P表示的就是偏差的趋势,如果偏差的趋势增大了(正数),就要增大调节量让当前值更快的接近目标值从而抑制偏差增大。如果偏差的趋势减小了(负数),就要减小调节量让当前值更快的接近目标值从而抑制偏差增大;
2.对于Ki系数的理解: u(t)=目标值 - 实际值, Ki就是系数, I = (1/Ki)* u(t), 我们调节的就是Ki这个值。从公式可以明白,I表示
的就是当前的偏差值,如果当前的实际值大于目标值,那么I<0,就要减小调节量抑制偏差增大。如果当前的实际值小于目标值,那么I>0,就要增大调节量抑制偏差增大;
3.最终的输出公式,假如占空比的值用y表示,则y(t) = y(t-1) + P + I,实际中,y往往表示定时器PWM高电平周期的装载数;
4.明白上面原理后,我们再理解Kp,Ki 取值对于调节量的意义。 假如占空比的范围是0 - 100. 那么如果我们取Kp=5, 那么速度的偏差趋势超过5rpm我们就增加或者减小1个占空比(5 / 5 =1),如果取Ki = 20, 那么目标值和实际值相差20rpm,我们就调节1个占空比。可以看出Kp取值越小,那么调节的速度就会越快,也就是从当前值达到目标值的时间越短,整个系统越加灵敏,Kp值过小会导致严重的震荡。另外,如果Ki取值越小,那么最终的值就约接近目标值。如果Ki=20,那么目标值跟实际值会靠近20rpm的偏差,如果Ki=500,那么就是接近500rpm的偏差。同样,Kp值过小会导致严重的震荡;
5.启动占空比的确定,BLDC启动的时候要按一个相对可靠的占空比启动,换句话说,在需要启动BLDC的时候,要发送一个稳定可靠启动的占空比值比如duty=20%稳定20秒左右,再开始PID速度调节,这样做可以提高电机的启动速度,以及调速的稳定性。
6.关于加减速度,比如从0rpm 到达 10000rpm, 我们的目标值直接设为10000rpm, 那么速度会增加得非常的块,所以我们需要设置一个步长step,调节这个step,sstep的值越大,加速度就越大,反之亦然。
7.关于系统的响应,周期: 这里牵涉到几个时间的参数: 转速采集周期t1, PI调节周期t2,电机的响应时间t3。t3必须尽可能的小,t1最好是小于t2,表示采样速度快于PI的调节速度, 理想的关系是: t3 < t1 < t2。
8.问题:我们在调节PID的时候,主要存在三个问题:
8.1震荡问题:一种是边震荡边接近目标值,还有一种是在目标值附近震荡,电机转速忽高忽低噪音明显;
解决方法:先让step尽量小些甚至从1开始,让Ki,Kp尽量大些,比如Ki=100,Kp=100,如果此时系统稳定,则减小Ki的值,如果不稳定,继续增加Kp,Ki的值直到系统稳定,然后逐步减低Kp,Ki的值得到尽可能快的加减速时间和尽可能接近目标值。同时,还需要注意占空比的分辨率,比如占空比0-100对应的定时器装载值也是0-100,且对应转速0-10000,那么占空比的分辨率就是100rpm,也就是调节一个占空比值就会导致100rpm的变化,那样系统是相当灵敏的,特别是在低速阶段容易产生震荡。可以把占空比对应的装载值放大10倍,0-100的占空比对应装载值是0-1000,然后0-1000对应0-10000rpm。公式:y(t) = y(t-1) + P + I 计算的一般是定时器的装载值。这样就会给系统带来很好的稳定性,特别是低速阶段。
8.2目标值偏差大:这个通过调节Ki值来缩小偏差。
8.3加减速时间问题:这个可以通过step值来调节。假如step=10,每隔50ms调节一次,那么目标值5000rpm,n = 5000/50=100,那么就是100个周期5秒目标值变为5000,根据自己的需要来调节这个值。在低速段可以减小这个step的值来提高系统稳定性。
9.关于PWM的频率:PWM的频率会影响占空比和速度曲线的对应关系,并且影响启动和停止的占空比值。具体的意思是:PWM的频率f=1kHz的时候,duty=22%,此时的速度值是3000rpm,电机需要在duty>15%才可以启动,启动后duty<10%电机会停止。PWM的频率f=25kHz的时候,duty=20%,此时的速度值是3000rpm,电机需要在duty>12%才可以启动,启动后duty<11%电机会停止。
如果频率很高,那么响应的速度非常快但是在低速段震荡明显,因为稍微调节下占空比的值转速变化很大,比如f=25kHz,那么占空比只有在高于20%的时候才可以得到稳定的转速,低于20%的时候,系统震荡很明显。另外一个因素是这个时候定时器的装载值范围比较小,1/8us的定时器时钟源得到25kHz的PWM频率装载值是320,占空比的分辨率比较大对应转速敏感.
如果频率比较低,那么响应的速度比较慢但是在低速段容易稳定,因为稍微调节下占空比的值转速变化不大,比如f=1kHz,那么占空比只有在低于20%的时候也可以得到稳定的转速,低于20%的时候,系统震荡不明显,甚至可以得到很低的稳定转速。另外一个因素是这个时候定时器的装载值范围比较大,1/8us的定时器时钟源得到1kHz的PWM频率装载值是8000,占空比的分辨率比较小对应转速不敏感。
|