打印
[应用方案]

使用PID调速的理解

[复制链接]
444|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lzmm|  楼主 | 2024-4-21 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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,占空比的分辨率比较小对应转速不敏感。

使用特权

评论回复
沙发
21mengnan| | 2024-4-21 17:56 | 只看该作者
控制基础,必须会PID。带DSP内核的MCU都会提供PID库函数。

使用特权

评论回复
板凳
robincotton| | 2024-4-29 16:58 | 只看该作者
包含的三个主要环节:比例(Proportional)、积分(Integral)、微分(Derivative)。这三个环节各自有不同的作用,共同协作以达到精确控制的目的。

使用特权

评论回复
地板
zerorobert| | 2024-5-1 20:09 | 只看该作者
比例控制依据当前的偏差大小来调整控制量。偏差越大,控制作用越强,反之亦然。这有助于系统快速响应外部变化。

使用特权

评论回复
5
averyleigh| | 2024-5-1 22:32 | 只看该作者
积分控制主要用于消除静态误差。当系统存在静态误差时,积分控制作用会不断累积,直到误差为零。积分系数(Ki)决定了积分作用的强弱和消除静态误差的速度。然而,积分控制可能会导致超调和振荡,尤其是在响应速度较快的系统中。

使用特权

评论回复
6
janewood| | 2024-5-2 16:38 | 只看该作者
微分控制是根据误差的变化率来产生控制作用的一种控制规律。微分控制可以预测误差的未来趋势,从而提前采取措施来减小误差。微分系数(Kd)决定了微分作用的强弱。微分控制可以提高系统的稳定性,但也可能对噪声敏感。

使用特权

评论回复
7
belindagraham| | 2024-5-2 18:11 | 只看该作者
PID调速的基本思想是通过不断地测量系统的实际输出(例如电机的转速),并将其与期望的设定值(目标转速)进行比较,然后根据这个差值(误差)来调整电机的输入(例如电机的电压或电流),以使实际输出尽可能地接近设定值。

使用特权

评论回复
8
chenci2013| | 2024-5-2 20:29 | 只看该作者
积分控制考虑到偏差的历史积累,有助于消除稳态误差。
它通过对过去偏差的积分来调整控制信号,使得系统能够达到期望的设定点。
过度的积分可能导致振荡或不稳定,因此与其他部分配合使用很重要。

使用特权

评论回复
9
jimmhu| | 2024-5-3 12:53 | 只看该作者
PID控制可以通过模拟电路或数字算法实现。位置式PID是数字PID的一种形式,它根据系统实际位置与预期位置的偏差来进行控制。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

386

主题

8579

帖子

11

粉丝