如何补偿电机角度的估算误差呢?

工业控制

1210人已加入

描述

在电机控制应用领域,常用的DSP芯片,会有影子寄存器,一般设置为映射模式,即常规的TI的那一套,每次写入PWM寄存器的比较值,会延时一个开关周期周期生效。

在ARM中,这个功能叫做预装载preload,代码如下:

DSP芯片

领芯微预装载使能代码

按照底层的配置,假设在三角波计算器的底点触发ADC采样,即 CTR = ZERO 的时刻,然后每次三角波计数器的底点更新PWM比较值。

那么说明FOC计算完毕后,从采样触发计算到占空比更新后的生效,延时了一个开关周期Ts。

如果在 CTR = ZERO 的时刻触发采样,半个开关周期完成了FOC计算,并且更新了PWM占空比比较值,设置在三角波计数器的顶点生效,那么占空比生效延时了Ts/2,即半个开关周期。

DSP芯片

生效延时和配置,计算时间相关

如果在 CTR = ZERO 的时刻触发采样,超过半个周期完成了FOC计算,那么要等到下次 CTR = PRD 的时刻更新后的占空比才会生效。这个延时是1.5Ts。

DSP芯片

延时周期数

所以说,一般常规的应用,是一个开关周期内完成FOC计算,并且延时1个开关周期让更新的比较值生效。

因为离散造成的延时,导致了估算存在较大误差。因为估算的角度是根据采样时刻的电流,电压计算的,对应是采样时刻的角度。

根据这个角度计算的电压,延时了整整 Ts 才生效,在这个延时的过程中,实际电机已经走过了一定的角度,这个角度增量导致了电压最后生效的时候,和生效时刻电机的真实角度不对应的。

这个角度并不是算法或者参数不准导致,完全是因为离散导致的。并且这个误差对整体影响的影响较大,尤其是低载波比,高速下的时候。

实际的补偿措施,也比较容易,就是对于 Ud 和 Uq 的反变换,考虑到根据当前角度计算的电压要延时一个 Ts 才起作用。那么就对这个角度补偿 Ts 过程中的角度增量,假设速度不变,用速度 We*Ts 得到 Δθ ,补偿到估算角度就行了。

有的厂家补偿就复杂了,会直接通过编码器和估算结果对比,直接把误差写入flash,实际运行的时候查表去解决问题。

某川的代码是有对角度作离散补偿的。

当然,如果是 FPGA 的硬件电流环,占空比算完即时生效,这个补偿就没有必要了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分