[技术问答]

電機,sin波,轉速太低,相關問題

[复制链接]
381|2
手机看帖
扫描二维码
随时随地手机跟帖
powerantone|  楼主 | 2021-3-3 09:34 | 显示全部楼层 |阅读模式
您好,
跟您請教一下,
電機弦波部分
目前我使用您範例的方式,
因我司馬達為2對級,
故我將sin表相對成hall,6步,剛好180度的sin表對應6步的半圈
目前跑起來1500轉以上沒有問題
但,轉速太低,會造成pwm中斷,每次+不到1度,
造成無法查表(因sin表,1個值=1度)
造成最低轉速太高...
這部分,您有什麼解決方式嗎~~~
以上在麻煩您,有空時不吝嗇指教
感謝

使用特权

评论回复
onlycook| | 2021-3-3 10:00 | 显示全部楼层
每来一个 Hall 信号中断,记下 Timer1 的时刻,两次相减,得电机转过60度角的时间 T,假定一个 PWM 周期时间是 P,则每过一个 PWM 时间,电机转过的角度是 AngleStep =  60*P/T。 每次 PWM 中断,电机转子角度 AngleOff 都要加一次 AngleStep,然后用这个角度去查 SIN 表。不管电机多快多慢,每次 PWM 中断都可以得到准确角度。
   算出来的 AngleStep 是有舍入误差的,假定60度内有 N 次 PWM 中断,第 N 次 PWM 角度的误差累积了 N 倍,这个值不能超过 1 度,否则就达不到清细到1度的分辩率。代码中, AngleOff,AngleStep 低 8 位是小数,舍入误差是 1/256 度。查表时只用整数部分查 SIN 表,AngleOff 要右移 8 位。

使用特权

评论回复
小灵通2018| | 2021-3-3 22:34 | 显示全部楼层
这个操作,电机控制。

使用特权

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

本版积分规则

404

主题

1423

帖子

4

粉丝