打印
[疑难问答]

单片机关于BLDC使用PID调速的理解

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

使用特权

评论回复
沙发
梅花香自123| | 2024-8-23 00:15 | 只看该作者
系统的响应时间、转速采集周期和 PI 调节周期之间的关系至关重要。理想状态是电机响应时间 (t3) 小于转速采集周期 (t1),而采集周期又小于 PI 调节周期 (t2),即 t3 < t1 < t2。

使用特权

评论回复
板凳
10299823| | 2024-9-13 16:44 | 只看该作者
无刷直流电机(BLDC)由于其高效率、低维护和良好的调速性能,在许多应用中得到了广泛的使用。在单片机控制BLDC电机进行调速时,比例-积分-微分(PID)控制器是一种常用的控制算法。

使用特权

评论回复
地板
pentruman| | 2024-9-13 20:33 | 只看该作者
在实际应用中,可能需要结合其他控制策略或对PID控制器进行改进,以满足特定的控制要求。

使用特权

评论回复
5
mollylawrence| | 2024-9-14 10:26 | 只看该作者
可以使用位置式或增量式PID算法,根据具体应用场景选择合适的方式。

使用特权

评论回复
6
geraldbetty| | 2024-9-14 14:49 | 只看该作者
使用单片机和PWM模块来控制电机的转速。通过调整PWM的占空比来改变电机的转速。

使用特权

评论回复
7
uiint| | 2024-9-15 09:10 | 只看该作者
实际应用中,如果积分项过大,可能会导致积分饱和,因此需要限制积分项的范围。

使用特权

评论回复
8
pl202| | 2024-9-15 09:29 | 只看该作者
PID控制器的采样时间决定了控制器运行的频率。采样时间太长会导致控制不够精确,太短则可能会引起不必要的计算负担。

使用特权

评论回复
9
febgxu| | 2024-9-15 10:12 | 只看该作者
通过合理配置PID参数并结合合适的硬件,可以实现对BLDC电机的有效控制。PID控制是一种强大的工具,可以大大提高电机控制的精度和响应速度。

使用特权

评论回复
10
bestwell| | 2024-9-15 15:36 | 只看该作者
理解并正确实现PID控制对于确保BLDC电机在单片机控制下的高效和稳定运行至关重要。

使用特权

评论回复
11
febgxu| | 2024-9-15 17:59 | 只看该作者
单片机关于无刷直流电机(BLDC)使用PID调速的理解,主要涉及PID控制算法在无刷直流电机速度控制中的应用。

使用特权

评论回复
12
hearstnorman323| | 2024-9-15 20:54 | 只看该作者
PID调速是一种基于反馈控制的方法,通过调整控制器的输出信号,使被控对象的实际值尽可能接近目标值。在无刷直流电机控制中,PID调速可以实现对电机转速的精确控制。

使用特权

评论回复
13
yorkbarney| | 2024-9-15 21:17 | 只看该作者
在 BLDC 控制中,PID 控制器通常用于调节电机的速度。通过调整 PWM 信号的占空比来改变施加到电机的电压,从而控制电机的速度。

使用特权

评论回复
14
cashrwood| | 2024-9-16 19:03 | 只看该作者
通过合理调整比例系数、积分系数和微分系数,可以使系统具有良好的稳定性,避免出现振荡和不稳定现象。

使用特权

评论回复
15
iyoum| | 2024-9-16 21:08 | 只看该作者
通过精确调整控制量,可以使电机速度稳定在设定值附近。

使用特权

评论回复
16
beacherblack| | 2024-9-16 21:27 | 只看该作者
PID控制器通过调整电机的输入电压或电流,来控制电机的转速。速度传感器(如编码器)提供反馈,与设定的目标速度进行比较,得到误差信号。

使用特权

评论回复
17
abotomson| | 2024-9-18 10:25 | 只看该作者
为了实现精确的调速控制,需要使用传感器对电机的转速进行实时监测。常见的传感器有霍尔传感器、编码器等。这些传感器可以将电机的转速转换为电信号,输入到单片机中。

使用特权

评论回复
18
everyrobin| | 2024-9-18 13:25 | 只看该作者
单片机通过读取传感器的信号,获取电机的实际转速,并与目标转速进行比较,计算出误差。

使用特权

评论回复
19
10299823| | 2024-9-18 20:22 | 只看该作者
PID 控制可以适应不同的电机负载和工作条件,具有较强的鲁棒性。

使用特权

评论回复
20
qiufengsd| | 2024-9-18 22:01 | 只看该作者
PID算法是一种常用的反馈控制算法,通过计算目标值与实际值之间的偏差,并结合比例(P)、积分(I)和微分(D)三个控制项来调整控制量。
公式:u(t) = Kp * e(t) + Ki * ∫e(t) dt + Kd * de(t)/dt,其中u(t)是控制量,e(t)是偏差,Kp、Ki和Kd是PID控制器的增益系数。

使用特权

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

本版积分规则

403

主题

8896

帖子

11

粉丝