[技术问答] 新唐无感FOC方案 角度一圈为何用65536表示

[复制链接]
1437|18
 楼主| 天灵灵地灵灵 发表于 2020-1-7 21:59 | 显示全部楼层 |阅读模式
如果一圈用360度表示,那么当角度=361度,721度,1081度......时,与1度是相同位置,就要增加判断
while(Angle_q > 360) Angle_q -= 360 ;

一圈用 65536表示,32位的数,低16位是一圈中的角度位置,高16位就是圈数。
16384表示 90度,
32768表示 180度, 看成符号数就是-32768,  即-180度
16384*3表示 270度, 16384*3看成16位符号数时,刚好是 -16384, 即-90度

好处:
1>,角度 Angle_q 直接转换为 16位数,就是一圈中的角度位置,
2>,右移16位就得高位,就是转的圈数。这个在启转阶段很有用。
3>,角度差看成符号数,有正有负,可判断超前,还是滞后。

在角度估算时,一圈用 65536表示,计算的中间变量精度很高,在查余弦表时,角度再右移6位,因为余弦表一圈有 1024个值,精度已很高了。
 楼主| 天灵灵地灵灵 发表于 2020-1-7 22:00 | 显示全部楼层
946705e148edb773a6.png
果然16位,最大是65536
 楼主| 天灵灵地灵灵 发表于 2020-1-7 22:01 | 显示全部楼层
182就代表1度了。
643757107 发表于 2020-1-7 23:13 | 显示全部楼层
这个方法很不错
643757107 发表于 2020-1-7 23:13 | 显示全部楼层
低16位是一圈中的角度位置,高16位就是圈数。
一个变量就搞定了两个数据。
可以用结构体,位,或者说是联合体
643757107 发表于 2020-1-7 23:14 | 显示全部楼层
位段表示。
八层楼 发表于 2020-2-5 11:41 | 显示全部楼层
非常感谢楼主分享
观海 发表于 2020-2-5 11:45 | 显示全部楼层
非常感谢楼主分享
guanjiaer 发表于 2020-2-5 11:46 | 显示全部楼层
非常感谢楼主分享
heimaojingzhang 发表于 2020-2-5 11:49 | 显示全部楼层
非常感谢楼主分享
keaibukelian 发表于 2020-2-5 11:50 | 显示全部楼层
非常感谢楼主分享
labasi 发表于 2020-2-5 11:52 | 显示全部楼层
非常感谢楼主分享
小明的同学 发表于 2020-2-12 20:56 | 显示全部楼层
0xFFFF ,是这个原因吧
 楼主| 天灵灵地灵灵 发表于 2020-2-12 21:32 | 显示全部楼层
好熟悉的数字
yiy 发表于 2020-2-12 21:58 | 显示全部楼层
需要认真计算计算。
 楼主| 天灵灵地灵灵 发表于 2020-2-13 11:42 | 显示全部楼层
这个应用非常火。
yiyigirl2014 发表于 2020-2-14 11:28 | 显示全部楼层
深入学习一下,挺有趣。
zhuotuzi 发表于 2020-2-16 18:57 | 显示全部楼层
闭关修炼,学习学习
捉虫天师 发表于 2020-2-16 20:11 | 显示全部楼层
FOC没学过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

183

主题

3475

帖子

13

粉丝
快速回复 在线客服 返回列表 返回顶部