887799 发表于 2022-3-22 13:05:37

求教FOC控制出现角度变化不均匀问题的原因

请教各 位FOC电机高手一个问题:本人用一个普通的BLDC电机作FOC控制,用TLE5012B 作FOC 的位置传感器,在20K pwm 中断程序中 检测本次与上次角度之差值 ,截图如下,角度变化不均匀

确认不是传感器的问题,个人认为是电机特性造成的。可请各位高手指点一下,原因和应对方法?
转速计算 (70/32768)*60*20k=2563rpm ,尖峰处计算(140/32768)*60*20k=2*2563rpm 。

天下乌鸦一般黑 发表于 2022-3-22 13:08:07

搬个板凳,看楼下大神怎么说。

887799 发表于 2022-3-22 13:15:25

天下乌鸦一般黑 发表于 2022-3-22 13:08
搬个板凳,看楼下大神怎么说。
(引用自2楼)

高手指点一下嘛。

dukelec 发表于 2022-3-22 14:27:31

本帖最后由 dukelec 于 2022-3-22 14:29 编辑

有沒有異响?
有的話,可能是 MOS 的 gate 腳驅動太強,導致干擾太大,從而導致數據被干擾錯亂。

也可能只是角度差值計算方法有問題,譬如你的原始數據沒有用滿 16 bits,譬如數據是不斷增大的,當前值超過最大後又回到 0 附近,而上一次值還在最大處,此時計算就容易出事

這種事情,你自己把傳感器原始數據的波形看一下,自然就能自己定位到問題

天下乌鸦一般黑 发表于 2022-3-22 14:39:02

887799 发表于 2022-3-22 13:15
高手指点一下嘛。
(引用自3楼)

你附图那个测速的速度,是怎么测出来的。2倍的偏差,有点夸张啊。

887799 发表于 2022-3-22 14:57:19

天下乌鸦一般黑 发表于 2022-3-22 14:39
你附图那个测速的速度,是怎么测出来的。2倍的偏差,有点夸张啊。
(引用自5楼)

20K HZ PWM中断:
               
                temp = Tle5012ReadAngle();//磁编码5012b读数最小为0,最大32767
                temp= THETA_OFFSET - temp ;//方向是数值不断减小的方向
                if(temp<0) temp = temp+32768;//处理0突变到360度边界
                //if (temp>32768) temp -= 32768;
                angle = temp;
                {
                static float delta;               
                delta        = angle-lastAngle;//本次角度-上次角度
                lastAngle = angle;//保存本次角度
                if (delta<0)
                delta += 32768;//边界处理
            ...输出delta
                }

20K HZ PWM中断程序里,delta本次角度-上次角度

887799 发表于 2022-3-22 14:58:29

dukelec 发表于 2022-3-22 14:27
有沒有異响?
有的話,可能是 MOS 的 gate 腳驅動太強,導致干擾太大,從而導致數據被干擾錯亂。

(引用自4楼)

有边界处理,是读编码器的原始数据。程序处理见上面。

dukelec 发表于 2022-3-22 15:29:46

887799 发表于 2022-3-22 14:58
有边界处理,是读编码器的原始数据。程序处理见上面。
(引用自7楼)

沒仔細看,可能有 bug

建議原始數據不足 16 位,左移到 16 位 unsigned 型,這樣邊界處理方便很多,基本不用處理就行。

ahfong2006 发表于 2022-3-22 16:53:03

Tle5012ReadAngle() 这个执行时间多长?

887799 发表于 2022-3-22 17:02:08

ahfong2006 发表于 2022-3-22 16:53
Tle5012ReadAngle() 这个执行时间多长?
(引用自9楼)

之前测好像是2~4 个uS。

洞洞幺 发表于 2022-3-22 17:18:24

本帖最后由 洞洞幺 于 2022-3-22 21:56 编辑

887799 发表于 2022-3-22 17:02
之前测好像是2~4 个uS。
(引用自10楼)

有那么短?
你先把spi时钟搞到1us周期看看位置数据对不对再说。

qwe2231695 发表于 2022-3-22 17:20:22

看下磁编码器SPI原始数据,用开环svpwm进行低速拖动来验证

ddplys 发表于 2022-3-23 08:46:05

70多对应的上次角度和本次角度
140多对应的上次角度和本次角度
看原始数据是否正常
页: [1]
查看完整版本: 求教FOC控制出现角度变化不均匀问题的原因