大家好,我是程序小羊。
不知道大家在學(xué)習(xí)有感FOC時,有沒有產(chǎn)生過這樣一個疑問,磁編安裝好后,怎么確定零點位置。首先我們定義電機轉(zhuǎn)一圈值為0~65536。比如:一個三對極的電機,磁編讀出來的值范圍是0~4096。那么我們將其值擴大到65536。我們知道電角度=機械角度*極對數(shù)。則三對極電機轉(zhuǎn)一圈,電角度經(jīng)過三次65536(如圖1),我們可以根據(jù)這個電角度的值有沒有到達65536附近,以此來確定定子與轉(zhuǎn)子有沒有對齊。然后我們給Id軸一個定值,角度自加,電機就可以轉(zhuǎn)動。當(dāng)?shù)竭_電角度在65536附近停一下,以此來通過磁編讀取機械角度,我們將每一個轉(zhuǎn)子與定子對齊時的角度讀取出來與理論角度((65536/3)=21845*(目前處于哪對極))進行差值運算。算出差值的平均值再轉(zhuǎn)化為電角度到代碼中參與運算。具體實現(xiàn)過程如下。
圖1:
圖2:
圖3:考慮到剛上電時,定子與轉(zhuǎn)子可能并沒用對齊,而是有一個角度偏差θ。怎么辦呢,所以第一步,我們需要先定位。強行給Id讓其拖到與定子對齊的位置。代碼實現(xiàn)如下
圖4:給完Id之后,轉(zhuǎn)子會轉(zhuǎn)動到與其最近的一個定子對齊,如下圖:
圖5:第一步定位完成之后,現(xiàn)在開始轉(zhuǎn)動轉(zhuǎn)子與下一個定子對齊。轉(zhuǎn)一圈如同6所示。通過磁編讀取角度
圖6:每轉(zhuǎn)動到與定子對齊時,停一下以此來讀取角度,計算角度偏差
最后將偏差角度進行平均值運算,換算為電角度參與后面運算。