您當前的位置:首頁 > 歷史

有霍爾感測器SVPWM學習總結

作者:由 學海無涯 發表于 歷史時間:2021-03-21

SVPWM:空間向量脈衝寬度調製為什麼要使用SVPWM來控制電機呢?傳統的六拍換相控制方式使逆變器的輸出呈方波變化,該種控制方式在電機空間形成的旋轉磁場為一個正六邊形,與我們期望的理想的圓形旋轉磁場並不相符,可見六拍換相控制的方式並不是最理想的控制方式,因此本著我們期望的獲得圓形旋轉磁場的目標,在人們的探索下,SVPWM控制方式就得以實現了。SVPWM的控制方式就是透過交替使用不同的電壓空間向量來得到一個更趨近於圓形磁場的一個磁鏈軌跡。這裡需要明確,為什麼透過使用不用的電壓空間向量就可以得到圓形磁鏈軌跡呢?下面我們就來推導下具體過程:

有霍爾感測器SVPWM學習總結

圖一:定子電壓空間矢量表示

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

而我們知道,當電機用三相平衡的正弦電壓供電時,電機的定子磁鏈的幅值不變,其合成的空間向量以恆速旋轉,其向量的頂端的運動軌跡呈圓形,也就是常說的磁鏈圓,所以磁鏈旋轉向量就可表示如下:

有霍爾感測器SVPWM學習總結

上式表明,當磁鏈的幅值一定時,合成的空間電壓向量的大小與磁鏈的旋轉角速度(或電機供電電壓的頻率)成正比,其方向與磁鏈軌跡正交,所以我們可以用下圖表示上式:

有霍爾感測器SVPWM學習總結

圖二:合成磁鏈向量與合成空間電壓向量的關係

有霍爾感測器SVPWM學習總結

接下來講解模擬正弦波的PWM的產生方法:

因為我們所用的電機不是交流電機,而是直流電機,所以我們在電機的三相供電端不可能供交流正弦電壓,所以我們只能去模擬正弦電壓的規律,在三相供電端通與正弦電壓規律一樣的PWM,這樣也能達到我們最初的產生趨於圓形的旋轉磁場。那麼我們要模擬這種規律,就不能像六步換相那種兩個管子導通了(兩相通電),而是要三個管子導通(三相都通電),這樣才能滿足類似交流電機供正弦電的規律。所以下面我們就來推導下怎麼利用PWM去模擬正弦波。

有霍爾感測器SVPWM學習總結

圖三:MOSFET逆變電路

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

圖四:電壓空間矢量表示

為了方便分析,我們把六個電壓空間向量所表示的一個電週期劃分為六個區域,稱其為扇區,每個扇區對應的時間均是60°的時間。扇區劃分如下圖所示:

有霍爾感測器SVPWM學習總結

圖五:扇區劃分圖

對於六拍換相的逆變器來說,每個電週期內,六種有效的電壓狀態各出現一次,每隔60°就換一個狀態(也就是我們說的換相),在這60°的時間裡,該種狀態不會發生改變,直到60°時間到,然後切換為下一個狀態,也就對應著電壓向量狀態的切換,在切換過程中,電壓向量的幅值不變,而相位每次變化60°直到一個電週期的結束。

當電壓向量走過一個電週期時(360°),就形成了一個封閉的正六邊形,如下圖所示:

有霍爾感測器SVPWM學習總結

圖六:空間電壓向量供電時圍成的圖

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

所以我們就可得出,如果我們想得到趨近於圓形的旋轉磁場的話,就必須在一個扇區內出現多種電壓向量狀態,這樣可以將正六邊形的每一條邊再細分,形成相位不同的電壓空間向量。

有霍爾感測器SVPWM學習總結

假定我們把正六邊形的每一條邊再細分四次,也即是再合成四個相位不同的電壓空間向量,這四個相位不同的電壓空間向量可以利用已有的電壓空間向量進行線性組合得到,示意圖如下所示:

有霍爾感測器SVPWM學習總結

圖八:趨於圓形的磁鏈增量軌跡

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

圖九:電壓空間向量的線性組合

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

但是在實際系統中,應該儘量減少開關狀態變化時引起的開關損耗,因此不同開關狀態的順序必須遵守下述原則:

任意一次電壓向量的變化只能有一個橋臂的開關動作,表現在二進位制矢量表示中只有一位變化

,以

滿足最小開關損耗。

這是因為如果允許有兩個或三個橋臂同時動作,則線上電壓的半週期內會出現反極性的電壓脈衝,產生反向轉矩,引起轉矩脈動和電磁噪聲。

所以上面的順序是不對的,我們應該將其調整為71288217,也即是000,100,110,111,111,110,100,000,這樣就能滿足

最小開關損耗原則了。

這樣我們就可以得到各個扇區對應的PWM波,如下圖所示:

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

圖十:各扇區對應的PWM

這樣我們就能在電機三相端模擬出一個正弦波了。

基於STMF051實現SVPWM演算法學習總結:

上面我們推導了SVPWM的原理,下面我們就來看怎麼把上面的推導用程式實現的,我們知道實現SVPWM演算法重要的是合成的空間電壓向量所在扇區的判斷和用來合成空間電壓向量的相鄰兩個基本電壓向量線性組合的時間的計算,扇區判斷是根據霍爾值來判斷的,程式實現如下:

有霍爾感測器SVPWM學習總結

得到了合成的空間電壓向量所處的扇區後,我們可以根據扇區號找到對應的扇區起始角(這裡的角為電角度)

有霍爾感測器SVPWM學習總結

得到了扇區對應的電角度後,我們再去計算基本空間電壓向量線性組合的時間,然後給到PWM值,輸出正弦波,時間計算被封裝成了一個函式,這個函式的實現過程,就跟我們推導的結果是一致的,只不過這裡需要說明一點,該函式是用一個扇區推廣到多個扇區,實現我們所需的功能。

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

有霍爾感測器SVPWM學習總結

首先定義了各個扇區的起始電角度值,調製比限制值,和正弦表,其中電角度值就是把16位無符號整型65536六等分了,調製比就是我們上文推導過的M,這裡是讓M不能大於1,防止過調現象,正弦表給出了0-60度的Q15格式的值,這裡為什麼只用0-60呢,是因為,該該函式是用不同扇區計算時間,而每個扇區結果都是一樣的,所以我們只需根據判斷好所處的扇區後,根據第一個扇區的方法計算出時間就行了。

有霍爾感測器SVPWM學習總結

我們以第一扇區時間計算為例,首先是查表,因為我們的電角度是0-65536對應的值,我們需要轉換到0-1024,所以這裡除了64,就轉換過來了,volts的作用是調速的,程式裡先把它轉換到PWM週期,右移15位的作用是兩個Q15相乘後變成了Q30,這裡需要再轉換到Q15格式,所以需要右移15位,然後計算t就結束了。整個SVPWM的演算法就結束了。

下面給出程式的流程:

有霍爾感測器SVPWM學習總結

這個是主定時中斷,用來計算轉速、電角度增量。

有霍爾感測器SVPWM學習總結

這個是霍爾捕獲中斷,用來獲取霍爾值及找到對應的扇區和初始電角度和計算捕獲週期。

有霍爾感測器SVPWM學習總結

這裡根據PWM中斷用來產生正弦波。

標簽: 扇區  向量  電壓  磁鏈  我們