嵌入式合集(需要语雀账户,建议黑色配色阅读)

资料获取:电机控制资料获取

数据标么化处理

由于大部分单片机并没有运算浮点数的专门硬件,因此将浮点数转化成整数可以使计算效率得到极大的提升。而这就是标幺化要做的事。

简单来说,标么化就是将-1~1之间的值平分到-32768~32767之间。但实际上数据转化最大值并不包含+1,而是$1-2^{15}$。

查表计算三角函数

-有一说一,这真是最暴力的办法了,暴力到出乎我的意料……

-暴力但管用。

只需要经过简单的对称计算,这256个数据足以表示0~Π的所有三角函数值。

判断方法

  1. 传入角度数据,取值-32768~32767
  2. 角度加32768,此时取值范围为0~65535,也就是消去了符号位的干扰
  3. 转换类型为uint16_t
  4. 由于表的精度为1024,因此过高精度无意义,只取高10位
  5. 通过判断前两位确定范围,在根据后面的具体数值查表。

为什么10对应第一区间而不是00?

因为我们加上32768时,从二进制来看是在第16位加了一个1,因此原本的00变成了10,01变成了11……依此类推。

溢出检测

Q1.15与Q1.15做运算时很容易发生溢出,所以最好做一个溢出检测。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


目录