新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > STM32上SVPWM輸出的實(shí)現(xiàn)方案

STM32上SVPWM輸出的實(shí)現(xiàn)方案

作者: 時間:2018-09-07 來源:網(wǎng)絡(luò) 收藏

摘要:32F103VET6上實(shí)現(xiàn)了輸出。介紹了的優(yōu)點(diǎn)及原理。結(jié)合32F103VET6上的硬件資源,給出了在高級定時器上實(shí)現(xiàn)的方式和三相橋式驅(qū)動電路的設(shè)計。分析了該方案所占用的CPU資源。實(shí)驗(yàn)結(jié)果表明,該設(shè)計方案可行,能夠?qū)崿F(xiàn)SVPWM輸出。
關(guān)鍵詞:SVPWM;32;定時器;三相橋式驅(qū)動

引言
SVPWM與SPWM相比,是一種比較新穎的控制方法,能夠使輸出電流波形盡可能接近于理想的正弦波形,使直流母線電壓的利用率有了很大提高。SVPWM主要應(yīng)用在變頻器領(lǐng)域,控制過程中需要對坐標(biāo)進(jìn)行變換及計算輸出時間,所以整個過程有一定的計算量,使得51單片機(jī)力不從心。人們只能采用價格昂貴、內(nèi)部資源偏少的DSP作為控制芯片。隨著STM32系列芯片的出現(xiàn),其豐富的片內(nèi)資源、較高的處理能力、極低的價格,使其得到開發(fā)人員的青睞。

1 SVPWM原理
在傳統(tǒng)的三相橋式驅(qū)動電路中,MOS管的開關(guān)狀態(tài)一共有8種組合。如果將這幾種開關(guān)方式加到三個相差120°的繞組上,則會產(chǎn)生8個電壓矢量。這8個電壓矢量被稱為基本空間電壓矢量,如圖1所示。為了能夠得到一個圓形旋轉(zhuǎn)磁場,SVPWM可以通過控制8個基本空間電壓矢量的作用時間,來合成每個扇區(qū)內(nèi)的任意電壓矢量。

本文引用地址:http://www.butianyuan.cn/article/201809/388702.htm



2 系統(tǒng)設(shè)計方案
2.1 控制芯片
采用STMicroelectronics公司的STM32F103VET6作為其控制芯片,其內(nèi)核為ARM公司Cortex—M3,最高時鐘頻率可達(dá)72 MHz,包括512K片內(nèi)FLASH、64K片內(nèi)RAM、ADC、SPI、CAN、FSMC等豐富的內(nèi)部資源。STM32F103VET6內(nèi)部包含8個定時器,其中有2個高級定時器,所有的定時器都包含一個16位自動裝載寄存器。高級定時器支持嵌入死區(qū)時間的互補(bǔ)PWM,而且支持剎車信號的輸入,所以非常適合應(yīng)用在變頻器、電機(jī)控制器等場合。
2.2 定時器工作模式
根據(jù)SVPWM的快速算法可以得到各個基本空間電壓矢量的作用時間和輸出順序。知道輸出順序后,就可以確定高級定時器的工作模式。由于SVPWM的輸出波形是很對稱的,所以選用TIM1的中央對齊模式:
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAlignedl;
此模式下,計數(shù)器從0開始計數(shù)到自動加載值減1,同時產(chǎn)生一個計數(shù)器溢出事件。然后向下計數(shù)到1,并且產(chǎn)生一個計數(shù)器下溢事件,再從0開始重新計數(shù)。
2.3 定時器計數(shù)周期
為了提高定時器的分辨率,直接將72 MHz作為定時器的計數(shù)時鐘,沒有任何預(yù)分頻。假設(shè)SVPWM的調(diào)制頻率為frq,則可以計算時間基的計數(shù)值tpwm:

TIM_CLOCK是定時器的計數(shù)頻率,本系統(tǒng)為72 MHz。如果調(diào)制頻率設(shè)為20 kHz,則計數(shù)器的值則為3 600。
2.4 波形輸出
TIM1的CH1、CH1N、CH2、CH2N、CH3、CH3N通道對應(yīng)的GPIO引腳須設(shè)為GPIO_Mode_AF_PP模式才能正常輸出。根據(jù)各個基本空間電壓矢量的作用時間,可以計算出TIM1上三個通道各自的OCRx值。圖2為各個通道OCRx的值對應(yīng)的輸出波形。


2.5 中斷子程序
為了減少中斷的時間,在中斷程序中僅保留了輸出SVPWM所必要的運(yùn)算及對TIM1必要的操作。整個程序中的所有的電壓量全部轉(zhuǎn)化為標(biāo)幺值。由于STM32是一款32位的控制器,所以需要參與計算值都采用Q15的形式,這樣可以在提高精度的同時保證乘法運(yùn)算不會溢出。中斷子程序的流程如圖3所示。


2.6 CPU資源占用分析
由圖2可以看出,在定時器輸出波形時有兩個觸發(fā)產(chǎn)生。TIM1_CH4可以用來觸發(fā)芯片的其他功能(如ADC采樣),這樣就可以自動完成一些工作,避免消耗CPU資源。
為了在一個周期調(diào)制完成后馬上進(jìn)行下一個周期的調(diào)制,下次調(diào)制的時間需要提前計算,此時就必須打開定時器的預(yù)裝載功能。在發(fā)生計數(shù)器溢出中斷后,計算下一次調(diào)制時各個通道的時間。計算完成后將結(jié)果寫入預(yù)裝載寄存器,以便在下次更新時寫入新的比較值。可以看出,SVPWM只在中斷中耗費(fèi)了CPU的一點(diǎn)資源用來計算,其余全是定時器自動完成,而且在兩次調(diào)制之間沒有任何延遲。

3 系統(tǒng)實(shí)驗(yàn)
3.1 實(shí)驗(yàn)硬件電路
實(shí)驗(yàn)硬件電路包括主控芯片及外圍電路、MOS驅(qū)動器和由6個MOS管組成的逆變器。其部分電路如圖4所示。ADUM3223驅(qū)動器的輸入來自STM32F103VET6中TIM1的CH1和CH1N,兩者為互補(bǔ)輸出。使能輸入端連接到芯片的PE15引腳,并且有一個4.7 KΩ的上拉電阻。在輸出端的高端設(shè)計了一個泵電源,保證高端MOS管能夠可靠導(dǎo)通。R1用來保證充電速度不會過快,可根據(jù)實(shí)際需求更改大小。在MOS管的柵極有一個限流電阻,用來防止MOS管漏源極電壓dv/dt太大,導(dǎo)致?lián)p壞。


3.2 實(shí)驗(yàn)結(jié)果
由于SVPWM的輸入為αβ坐標(biāo)系下的Uα和Uβ,在讓矢量運(yùn)行軌跡為圓形時特別困難,所以在輸入端前加入了一個Park變換算法,使其變?yōu)閁d和Uq。這樣只需要設(shè)置合成矢量的角度和大小,而角度可以人為設(shè)為一個勻速圓周運(yùn)動的值。圖5為第一扇區(qū)下的調(diào)制輸出波形。圖6為矢量圓周運(yùn)動時,輸出相電壓濾波后的馬鞍波形。

結(jié)語
由實(shí)驗(yàn)結(jié)果可知,該設(shè)計方案可以方便地實(shí)現(xiàn)SVPWM輸出,計算量并不大。其功能主要是靠硬件實(shí)現(xiàn),所以占用CPU資源很少,完全可以當(dāng)作一個模塊應(yīng)用到其他場合中。



關(guān)鍵詞: SVPWM STM 實(shí)現(xiàn)方案

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉