针对PMSM的FOC控制,ST官方提供了FOC固件库。
stm32 foc firwmare libraries v2.0.1中还提供了SVPWM_3ShuntCalcDutyCycles()函数,根据输入的Valpha,Vbeta来计算扇区,然后计算比较值和电流AD触发点比较值和方向。
在函数中,有这么几段代码:
![](https://images0.cnblogs.com/blog/630674/201406/051756395058068.png)
里面有一个131072的系数。这个系数是如何来的??
反park变化得到的Valpha和Vbeta是以Q15格式来表示的,这应该是标幺值的运算方式了,在计算PWM比较值时需要转换成Q0格式(即常用的数字形式),右移15位,即2^15 = 32768;
然后code中有一个#define T (PWM_PERIOD * 4)宏定义,这里有一个4倍的放大;
![](https://images0.cnblogs.com/blog/630674/201406/051756409118540.png)
在计算PWM比较值前,数值上有两个放大,即4*32768 = 101372,所以最后有一个分母101372。
转载于:https://www.cnblogs.com/derek32/p/3770861.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)