在22kw及11kw OBC中,通常會使用SVPWM調製算法,系統控制框圖如下;首先需要對三相電流採樣,通過Clark變換得到alpha和beta軸電流,再通過Park,PI控制及反Park變換,將控制後的alpha和beta軸電壓輸入SVPWM,進而得到三相電壓占空比;在整個流程中,Park和反Park變換需要用到多次三角函數計算,三角函數的計算量較大,會限制PFC中的電流環路帶寬;本文介紹StellarE1的Cordic加速器,來加快三角函數計算,提升PFC電流環帶寬。 CORDIC(坐標旋轉數字計算機),也稱為Volder算法,是一種用於評估三角函數和雙曲函數的低成本逐次逼近算法。在三角(或圓形)模式中,角度θ的正弦和餘弦是通過旋轉矢量[1,0]來確定的,通過減小角度atan(2-n)(n=0,1,2,…),直到旋轉角度的累積總和等於輸入角度。旋轉矢量的x和y笛卡爾分量分別對應於餘弦θ的正弦。 使用Cordic加速器來計算Park和反Park變換流程: 1.配置Cordic 2.編寫輸入參數: 3.讀取sincos計算結果 對於Park和反Park變換我們需要每個電流環周期計算一次sin和cos的結果,對此我們使用arm底層的 arm_sin_cos_q31函數進行對比: 通過對比可以發現,使用cordic計算park和反park變換可以明顯降低CPU 負載,同時軟體也只需要配置很少的指令就可以完成,計算精度也可以很容易的修改;在OBC應用中可以利用這一特性,來提高PFC的開關頻率,進而提升OBC的性能。 |