針對PMSM的FOC控制,ST官方提供了FOC固件庫。
stm32 foc firwmare libraries v2.0.1中還提供了SVPWM_3ShuntCalcDutyCycles()函數,根據輸入的Valpha,Vbeta來計算扇區,然后計算比較值和電流AD觸發點比較值和方向。
在函數中,有這么幾段代碼:
里面有一個131072的系數。這個系數是如何來的??
反park變化得到的Valpha和Vbeta是以Q15格式來表示的,這應該是標幺值的運算方式了,在計算PWM比較值時需要轉換成Q0格式(即常用的數字形式),右移15位,即2^15 = 32768;
然后code中有一個#define T (PWM_PERIOD * 4)宏定義,這里有一個4倍的放大;
在計算PWM比較值前,數值上有兩個放大,即4*32768 = 101372,所以最后有一個分母101372。