基于Cortex-M3的STM32微控制器處理先進電機控制方法
變頻器的問世和先進的電機控制方法讓三相無刷電機(交流感應(yīng)電機或永磁同步電機)曾經(jīng)在調(diào)速應(yīng)用領(lǐng)域取得巨大成功。這些高性能的電機驅(qū)動器過去主要用于工廠自動化系統(tǒng)和機器人。十年來,電子元器件的大幅降價使得這些電機驅(qū)動器能夠進入對成本敏感的市場,例如:家電、空調(diào)或個人醫(yī)療設(shè)備。本文將探討基于ARM的標(biāo)準微控制器如何在一個被DSP和FPGA長期壟斷的市場上打破復(fù)雜的控制模式,我們將以意法半導(dǎo)體的基于Cortex-M3內(nèi)核的STM32系列微控制器為例論述這個過程。
本文引用地址:http://www.ex-cimer.com/article/201709/364891.htm首先,我們回顧一下電機控制的基本原理。在電機控制系統(tǒng)內(nèi),為什么處理器非常重要?我們?yōu)槭裁葱枰浅:玫挠嬎阈阅?畢竟,Nicolas Tesla在一個世紀前發(fā)明交流電機時不需要編譯器。只要需要調(diào)速,人們無法回避使用逆變器驅(qū)動一個性能不錯的3相電機,控制一個永磁同步電機(PMSM)運轉(zhuǎn)更離不開逆變器,這個復(fù)雜的功率電子系統(tǒng)的核心是一個直流轉(zhuǎn)交流的3相逆變器,其中微控制器起到管理作用,以全數(shù)字方式執(zhí)行普通的三位一體的控制功能:檢測(電流、轉(zhuǎn)速、角度…)、處理(算法、內(nèi)務(wù)管理…)、控制功率開關(guān)(最低的配置也至少有6個開關(guān))。
采用標(biāo)量控制是一個三相交流電機實現(xiàn)變速運轉(zhuǎn)的最簡單方式。標(biāo)量控制原理是在施加到電機的頻率和電壓之間保持一個恒比。對于入門級電機驅(qū)動器,這是一個非常主流的控制方法,適合負載特性非常普通且控制帶寬要求不高的應(yīng)用(如功率非常小的電泵和風(fēng)扇)。不幸地是,并不是所有的應(yīng)用都能忍受如此簡單的控制過程及其應(yīng)用限制。特別是,標(biāo)量控制在瞬變環(huán)境內(nèi)不能保證最佳的電機性能(轉(zhuǎn)矩、能效)。為克服這些限制,人們開發(fā)出了其它的電機控制方法,其中磁場定向控制(又稱矢量控制)是應(yīng)用最廣泛的方法之一。這種控制方式利用兩個去耦直流控制器,不管運轉(zhuǎn)頻率如何(例如轉(zhuǎn)速),以驅(qū)動分開勵磁電機的方式驅(qū)動任何一種交流電機(感應(yīng)電機或永磁電機)。勵磁電流與直流的主磁通量(在一個PMSM電機內(nèi)的磁體磁通量)有關(guān),而90°移相電流可以控制轉(zhuǎn)矩,功能相當(dāng)于直流電機的電樞電流。當(dāng)負載變化時,磁場定向控制方式可實現(xiàn)精確的轉(zhuǎn)速控制,而且響應(yīng)速度快,使定子磁通量和轉(zhuǎn)子磁通量保持完美的90度相位差,即便在瞬變工作環(huán)境內(nèi),仍然能夠保證優(yōu)化的能效,這是實現(xiàn)以電機拓撲為標(biāo)志的更復(fù)雜的控制方法所依據(jù)的基本理論框架,特別是對于PMSM電機,這個理論是無傳感器電機驅(qū)動器的基礎(chǔ),既可以大幅降低成本(不再需要轉(zhuǎn)速或轉(zhuǎn)角傳感器和相關(guān)的連線),同時還能提高電機可靠性。在這種情況下,必須只使用電機數(shù)學(xué)模型、電流值和電壓值,通過計算方法估算轉(zhuǎn)子角度位置。在最低分鐘轉(zhuǎn)數(shù)只有幾百轉(zhuǎn)的情況下,這種狀態(tài)觀測器理論(在其它控制方法中)可以實現(xiàn)無傳感器的轉(zhuǎn)速控制,在某些情況下,最低分鐘轉(zhuǎn)數(shù)是靜止?fàn)顟B(tài)。不過,這對CPU是一個額外的實時負荷。最后,微控制器必須以1KHz到20KHz的速率連續(xù)重新計算矢量控制算法,具體速率取決于最終應(yīng)用帶寬,處理Parke和Clarke轉(zhuǎn)換和實現(xiàn)多個PID控制器和軟件鎖相環(huán)確實需要高強度的數(shù)字計算,這就是過去為什么數(shù)字信號處理器、微處理器或FGPA器件被用作控制器的原因。
盡管專用雙??刂破骱偷投硕cDSP架構(gòu)已經(jīng)問世,但是意法半導(dǎo)體仍然選擇使用Cortex-M3內(nèi)核開發(fā)STM32微控制器。這個解決方案可很好地滿足大量的無刷電機驅(qū)動器的要求,從一次性工程費用的角度看,該解決方案的優(yōu)點是采用行業(yè)標(biāo)準的ARM內(nèi)核和標(biāo)準微控制器的成本效益。
基于Harvard架構(gòu),這個32位RISC采用Thumb2指令集,提供16位和32位指令。對比純32位代碼,這個指令集能夠大幅提高代碼密度,同時保留原有ARM7指令集的多數(shù)優(yōu)點(附加優(yōu)化的乘加運算和硬件除法指令)。
電機控制系統(tǒng)要求微控制器須具備卓越的實時響應(yīng)性(中斷延時短)、純處理功能(如單周期乘法)以及優(yōu)異的控制性能(當(dāng)處理非序列執(zhí)行流和條件轉(zhuǎn)移指令時)。Cortex-M3能夠滿足所有這些要求。例如,當(dāng)時鐘頻率是72MHz時,在25μs內(nèi)對一個永磁電機完成一次無傳感器磁場定向控制,這相當(dāng)于在10kHz采樣率下25%的CPU負荷。
在STM32微控制器內(nèi),該內(nèi)核與意法半導(dǎo)體優(yōu)化型閃存接口緊密配合,只需增加很少的外部元器件,周邊外設(shè)即可處理外部事件(圖1所示是STM32F103中容量微控制器的結(jié)構(gòu)框圖)。不用說,PWM定時器和模數(shù)轉(zhuǎn)換器是最重要元器件。PWM定時器包括最先進的功能,如中央對齊模式PWM信號生成和死區(qū)時間插入邏輯,特別強調(diào)安全性:該模塊直接控制功率開關(guān)換向,可控開關(guān)功率達到數(shù)千瓦。例如,用于配置某些重要參數(shù)的寄存器代碼可以被鎖保護,以防軟件失效。只要“緊急停止”引腳被拉低,所有的I/O引腳都被置于用戶可配置的安全狀態(tài)。這個功能設(shè)計采用組合邏輯模塊,當(dāng)主時鐘(晶體)失效時,內(nèi)部切換到后備振蕩器之前,可確保保護電路仍然能夠正常工作。最后,該微控制器還包含一個第4比較通道,專門用于觸發(fā)模數(shù)轉(zhuǎn)換器,實現(xiàn)最佳的電流測量精度。
圖1:STM32F103中容量微控制器結(jié)構(gòu)框圖
即使最復(fù)雜的算法幾乎也無法修正不精確的模擬測量值,但是,在某種程度上,電機驅(qū)動系統(tǒng)的總體性能取決于模數(shù)轉(zhuǎn)換器的質(zhì)量。STM32F103芯片內(nèi)置三個采樣率為1MSps的12位模數(shù)轉(zhuǎn)換器,在整個溫度和電壓范圍內(nèi),總不可調(diào)整誤差(TUE)低于5LSB。模數(shù)轉(zhuǎn)換器的數(shù)字接口有三個主要功能:首先,使CPU擺脫簡單控制任務(wù)和數(shù)據(jù)處理;其次連接芯片的其余部件(中斷請求、DMA請求、觸發(fā)輸入);最后,使STM32的多路轉(zhuǎn)換器同步操作。在這些對無刷電機控制有用的功能中,我們首先考慮通道讀序列發(fā)生器。對比傳統(tǒng)的掃描電路(按照模擬輸入序號,按序轉(zhuǎn)換一定數(shù)量的通道),在一個16個轉(zhuǎn)換通道組成的順列(例如:Ch3, Ch3, Ch0, Ch11)內(nèi),序列發(fā)生器可按任何順序轉(zhuǎn)換通道,當(dāng)設(shè)計人員在設(shè)計印刷電路板時,這個功能給設(shè)計人員帶來更高的設(shè)計靈活性,為實現(xiàn)平均轉(zhuǎn)換目的,準許對同一通道進行多次采樣(在一個序列內(nèi)),當(dāng)整個序列轉(zhuǎn)換完畢后,DMA通道將轉(zhuǎn)換結(jié)果送到RAM,中斷處理程序產(chǎn)生一個中斷請求。
在檢測電機相位電流的過程中,瞬變電壓在功率開關(guān)上產(chǎn)生的噪聲(在離線開關(guān)應(yīng)用中,典型噪聲達到幾百個V/μs)是引起讀取誤差的一個重要原因,可能導(dǎo)致測量結(jié)果的信噪比非常低。解決方案是使模數(shù)轉(zhuǎn)換器與控制功率級的定時器同步:因為換向時刻可以預(yù)定(由3 PWM定時器的比較寄存器定義),所以可以使用一個額外比較通道在換向時刻稍前或稍后觸發(fā)模數(shù)轉(zhuǎn)換操作?;谶@個原因,STM32啟用了第二個序列發(fā)生器(又稱注入序列發(fā)生器),該序列發(fā)生器的優(yōu)先級高于正常序列發(fā)生器,可以用一個不能延遲的新轉(zhuǎn)換操作使當(dāng)前的轉(zhuǎn)換操作中斷。通常情況下,正常序列發(fā)生器負責(zé)“內(nèi)部管理”轉(zhuǎn)換,連續(xù)檢測溫度或直流總線電壓(作為后臺任務(wù)),然后通過DMA通道發(fā)送到RAM,而注入序列發(fā)生器則將處理時間關(guān)鍵的轉(zhuǎn)換操作,并將轉(zhuǎn)換結(jié)果存儲在模數(shù)轉(zhuǎn)換器寄存器(將會產(chǎn)生一個中斷,但是不能接受延時)。
對于一個能夠執(zhí)行先進的電機控制功能的通用微控制器,擁有微控制器是一回事,而開發(fā)輕松入門卻是另一回事。利用軟硬件工具可以把這個問題的兩個方面都處理好。首先是擁有一套電機控制開發(fā)入門工具,包含測試工具(JTAG探針和光隔離器)、微控制器芯片以及功率級電路板和演示用PMSM電機,這套工具用于產(chǎn)品性能評估和開發(fā)用途。模塊化設(shè)計有助于升級演示應(yīng)用(例如雙電機控制微控制器電路板),評估多個(或定制)功率級。最后,意法半導(dǎo)體為STM32客戶免費提供電機控制軟件庫。2.0版電機控制軟件庫利用頭文件內(nèi)的一個簡單且低廉的#define聲明列表支持各種配置。軟件庫包含交流感應(yīng)電機和同步電機的磁場定向控制算法,為簡化代碼的可讀性和可維護性,這些算法采用C編程語言,再次證明了現(xiàn)代編譯器的效率。該軟件庫還針對PMSM電機提供一個穩(wěn)健的無傳感器控制算法(基于磁通觀測器),以及一個超高速內(nèi)部永磁電機(IPM)專用控制算法。當(dāng)然,該軟件還支持普通轉(zhuǎn)速和位置傳感器(增量編碼器、霍爾傳感器或轉(zhuǎn)速傳感器)。通過使用隔離傳感器或分流器,STM32支持三種電流檢測方法。STM32外設(shè)可以實現(xiàn)一個創(chuàng)新的單電流檢測方法,利用成本最低的配置(一個簡單的獨特的電阻器)執(zhí)行矢量控制。因為能夠最大限度降低本征電流失真率,這項技術(shù)已取得專利權(quán)。
意法半導(dǎo)體目前的主要開發(fā)項目是控制電機直到靜止?fàn)顟B(tài)的無傳感器永磁電機控制和內(nèi)置功率因數(shù)校正功能的雙電機控制。最近,意法半導(dǎo)體成功演示了單電流檢測方法,僅一個STM32微控制器就能執(zhí)行兩個單電流檢測矢量控制功能,同時還用一個40kHz的控制回路管理PFC級(詳見圖2)。
圖2:STM32F103HD可以同時處理雙電機控制和數(shù)字PF
從功率開關(guān)分立器件,到復(fù)雜的系統(tǒng)芯片,意法半導(dǎo)體承諾以其獨有的產(chǎn)品組合長期支持電機控制市場。STM32微控制器產(chǎn)品線將繼續(xù)沿四個新方向部署,如圖3所示,其中兩個方向適用于電機控制。第一個產(chǎn)品線將面向低成本市場,開發(fā)低端的16位電機控制微控制器。另一個產(chǎn)品線以高性能為訴求,面向需要更高處理性能、更大存儲容量和高帶寬接口的應(yīng)用。如此寬廣的產(chǎn)品組合結(jié)合Cortex-M3內(nèi)核,勢必確立STM32架構(gòu)適用于現(xiàn)在和未來電機驅(qū)動的多功能性。
圖3:STM32:強固的增長基礎(chǔ)
評論