<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種STM32微控制器電機(jī)控制方案設(shè)計(jì)與實(shí)現(xiàn)

          一種STM32微控制器電機(jī)控制方案設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
          變頻器是利用電力半導(dǎo)體器件的通斷作用將工頻電源變換為另一頻率的電能控制裝置,能實(shí)現(xiàn)對(duì)交流異步電機(jī)的軟起動(dòng)、變頻調(diào)速、提高運(yùn)轉(zhuǎn)精度、改變功率因數(shù)、過流/過壓/過載保護(hù)等功能。變頻器集成了高壓大功率晶體管技術(shù)和電子控制技術(shù),得到廣泛應(yīng)用。變頻器的作用是改變交流電機(jī)供電的頻率和幅值,因而改變其運(yùn)動(dòng)磁場(chǎng)的周期,達(dá)到平滑控制電動(dòng)機(jī)轉(zhuǎn)速的目的。變頻器的出現(xiàn),使得復(fù)雜的調(diào)速控制簡(jiǎn)單化,用變頻器+交流鼠籠式感應(yīng)電動(dòng)機(jī)組合替代了大部分原先只能用直流電機(jī)完成的工作,縮小了體積,降低了維修率,使傳動(dòng)技術(shù)發(fā)展到新階段。本文將探討基于ARM的標(biāo)準(zhǔn)微控制器如何在一個(gè)被DSPFPGA長(zhǎng)期壟斷的市場(chǎng)上打破復(fù)雜的控制模式,我們將以意法半導(dǎo)體的基于Cortex-M3 內(nèi)核的STM32系列微控制器為例論述這個(gè)過程。

          很多應(yīng)用都會(huì)用到功率低于300 W的小型電機(jī),例如汽車、打印機(jī)、復(fù)印機(jī)、紙張?zhí)幚頇C(jī)、工廠自動(dòng)化、太空和軍事載具、測(cè)試設(shè)備和機(jī)械人。整體而言,電機(jī)的產(chǎn)量約和其功率大小成反比,這表示小型電機(jī)的產(chǎn)量遠(yuǎn)超過大型電機(jī)。應(yīng)用最廣泛的小型電機(jī)包括直流電機(jī)、無刷直流電機(jī)和步進(jìn)電機(jī)。

          步進(jìn)電機(jī)、直流電機(jī)和無刷直流電機(jī)的主要區(qū)別在于它們的驅(qū)動(dòng)方式。步進(jìn)電機(jī)是以步階方式分段移動(dòng),直流電機(jī)和無刷直流電機(jī)通常則采用連續(xù)移動(dòng)的模擬控制方式。由于步進(jìn)電機(jī)采用步階移動(dòng),所以特別適合盡對(duì)尋址應(yīng)用,目前市場(chǎng)上常見的步進(jìn)電機(jī)已能提供每一步1.8°或0.9°的精確移動(dòng)能力。步進(jìn)電機(jī)采用直接控制方式,它的主要命令和控制變量都是步階位置 (step position);相形之下,直流電機(jī)則是以電機(jī)電壓做為控制變量,以位置或速度做為命令變量。直流電機(jī)需要反饋控制系統(tǒng),它會(huì)以間接方式控制電機(jī)位置,步進(jìn)電機(jī)系統(tǒng)多半則是以「開環(huán)」方式進(jìn)行操縱。

          直流電機(jī)是最常見和本錢最低的小型電機(jī),并且廣泛用于各種應(yīng)用。無刷直流電機(jī)宣稱能提供更高可靠性以及更低噪聲和本錢,然而到目前為止,它卻只能在磁盤或計(jì)算機(jī)風(fēng)扇等少數(shù)目產(chǎn)應(yīng)用中取代傳統(tǒng)直流電機(jī)。在某些應(yīng)用里,無刷直流電機(jī)有多項(xiàng)優(yōu)點(diǎn)勝過傳統(tǒng)電刷電機(jī),例如它以電子組件和傳感器取代電刷,不但延長(zhǎng)電機(jī)壽命和減少維護(hù)本錢,而且也沒有電刷產(chǎn)生的噪音。直流電機(jī)的特性使它成為調(diào)速系統(tǒng)最輕易使用的電機(jī)。

          勵(lì)磁電流與直流的主磁通量(在一個(gè)PMSM電機(jī)內(nèi)的磁體磁通量)有關(guān) ,而 90°移相電流可以控制轉(zhuǎn)矩,功能相當(dāng)于直流電機(jī)的電樞電流。當(dāng)負(fù)載變化時(shí),磁場(chǎng)定向控制方式可實(shí)現(xiàn)精確的轉(zhuǎn)速控制,而且響應(yīng)速度快,使定子磁通量和轉(zhuǎn)子磁通量保持完美的90度相位差,即便在瞬變工作環(huán)境內(nèi),仍然能夠保證優(yōu)化的能效,這是實(shí)現(xiàn)以電機(jī)拓?fù)?/strong>為標(biāo)志的更復(fù)雜的控制方法所依據(jù)的基本理論框架,特別是對(duì)于PMSM電機(jī),這個(gè)理論是無傳感器電機(jī)驅(qū)動(dòng)器的基礎(chǔ),既可以大幅降低成本(不再需要轉(zhuǎn)速或轉(zhuǎn)角傳感器和相關(guān)的連線),同時(shí)還能提高電機(jī)可靠性。在這種情況下,必須只使用電機(jī)數(shù)學(xué)模型、電流值和電壓值,通過計(jì)算方法估算轉(zhuǎn)子角度位置。在最低分鐘轉(zhuǎn)數(shù)只有幾百轉(zhuǎn)的情況下,這種狀態(tài)觀測(cè)器理論(在其它控制方法中)可以實(shí)現(xiàn)無傳感器的轉(zhuǎn)速控制,在某些情況下,最低分鐘轉(zhuǎn)數(shù)是靜止?fàn)顟B(tài)。

          不過,這對(duì)CPU是一個(gè)額外的實(shí)時(shí)負(fù)荷。最后,微控制器必須以1KHz到20KHz的速率連續(xù)重新計(jì)算矢量控制算法,具體速率取決于最終應(yīng)用帶寬,處理Parke和Clarke轉(zhuǎn)換和實(shí)現(xiàn)多個(gè)PID控制器和軟件鎖相環(huán)確實(shí)需要高強(qiáng)度的數(shù)字計(jì)算,這就是過去為什么數(shù)字信號(hào)處理器、微處理器或FGPA器件被用作控制器的原因。

          盡管專用雙??刂破骱偷投硕c(diǎn)DSP架構(gòu)已經(jīng)問世,但是意法半導(dǎo)體仍然選擇使用Cortex-M3內(nèi)核開發(fā)STM32微控制器。這個(gè)解決方案可很好地滿足大量的無刷電機(jī)驅(qū)動(dòng)器的要求,從一次性工程費(fèi)用的角度看,該解決方案的優(yōu)點(diǎn)是采用行業(yè)標(biāo)準(zhǔn)的ARM?內(nèi)核和標(biāo)準(zhǔn)微控制器的成本效益。

          基于Harvard架構(gòu),這個(gè)32位RISC采用Thumb2指令集,提供16位和32位指令。對(duì)比純32位代碼,這個(gè)指令集能夠大幅提高代碼密度,同時(shí)保留原有ARM7指令集的多數(shù)優(yōu)點(diǎn)(附加優(yōu)化的乘加運(yùn)算和硬件除法指令)。

          電機(jī)控制系統(tǒng)要求微控制器須具備卓越的實(shí)時(shí)響應(yīng)性(中斷延時(shí)短)、純處理功能(如單周期乘法)以及優(yōu)異的控制性能(當(dāng)處理非序列執(zhí)行流和條件轉(zhuǎn)移指令時(shí))。Cortex-M3能夠滿足所有這些要求。例如,當(dāng)時(shí)鐘頻率是72MHz時(shí),在25μs內(nèi)對(duì)一個(gè)永磁電機(jī)完成一次無傳感器磁場(chǎng)定向控制,這相當(dāng)于在10 kHz采樣率下25% 的CPU負(fù)荷。

          意法半導(dǎo)體擴(kuò)大32位STM32微控制器(MCU)支持的電機(jī)矢量控制函數(shù)庫,新增了支持單旁路無傳感器控制、內(nèi)部永磁(IPM)電機(jī)控制和永磁同步(PMSM)電機(jī)弱磁控制的算法。目前市場(chǎng)上大約已有40種電機(jī)控制應(yīng)用采用了意法半導(dǎo)體的基于Cortex-M3的STM32微控制器。 在設(shè)計(jì)人員目前可以獲得的新算法中,單旁路電流感應(yīng)支持功能只需要一個(gè)電流感應(yīng)電阻器,比需要三個(gè)電阻器的普通無傳感器控制機(jī)制更加節(jié)省系統(tǒng)成本。單旁路電流感應(yīng)是意法半導(dǎo)體開發(fā)的一項(xiàng)專利技術(shù),具有直流總線電壓利用率高、電流失真小和可聽噪聲低等優(yōu)點(diǎn)。通過增加一個(gè)"最大化轉(zhuǎn)矩電流比"(MTPA)控制算法,擴(kuò)大的函數(shù)庫給設(shè)計(jì)人員提供了更大的自由設(shè)計(jì)空間,使他們能夠靈活地定義無刷IPM電機(jī)的電氣參數(shù),滿足實(shí)際應(yīng)用對(duì)電機(jī)的高功率密度和高速性能的需求。基于這些新的算法,開發(fā)人員可以充分利用STM32豐富的電機(jī)控制外設(shè),包括STM32集成的兩個(gè)三相PWM定時(shí)器,使一個(gè)微控制器可以同時(shí)控制兩個(gè)無刷電機(jī)。通過打破一個(gè)微控制器控制一個(gè)電機(jī)的規(guī)則,設(shè)計(jì)人員使用STM32可以節(jié)省成本,降低設(shè)計(jì)尺寸和功耗,而且不會(huì)對(duì)性能有任何影響。微控制器集成的三個(gè)模數(shù)轉(zhuǎn)換器能夠支持高精度電機(jī)驅(qū)動(dòng)器用的三路采樣保持電流捕獲。因?yàn)镾TM32采用先進(jìn)的ARMCortex-M3CPU工業(yè)標(biāo)準(zhǔn)架構(gòu),用戶在STM32上開發(fā)電機(jī)控制解決方案要比使用企業(yè)專有架構(gòu)更節(jié)省時(shí)間。

          即使最復(fù)雜的算法幾乎也無法修正不精確的模擬測(cè)量值,但是,在某種程度上,電機(jī)驅(qū)動(dòng)系統(tǒng)的總體性能取決于模數(shù)轉(zhuǎn)換器的質(zhì)量。STM32F103芯片內(nèi)置三個(gè)采樣率為1MSps的12位模數(shù)轉(zhuǎn)換器,在整個(gè)溫度和電壓范圍內(nèi),總不可調(diào)整誤差 (TUE)低于5 LSB.模數(shù)轉(zhuǎn)換器的數(shù)字接口有三個(gè)主要功能:首先,使CPU擺脫簡(jiǎn)單控制任務(wù)和數(shù)據(jù)處理;其次連接芯片的其余部件(中斷請(qǐng)求、DMA請(qǐng)求、觸發(fā)輸入);最后,使STM32的多路轉(zhuǎn)換器同步操作。

          在這些對(duì)無刷電機(jī)控制有用的功能中,我們首先考慮通道讀序列發(fā)生器。對(duì)比傳統(tǒng)的掃描電路(按照模擬輸入序號(hào),按序轉(zhuǎn)換一定數(shù)量的通道), 在一個(gè)16個(gè)轉(zhuǎn)換通道組成的順列(例如:Ch3, Ch3, Ch0, Ch11)內(nèi),序列發(fā)生器可按任何順序轉(zhuǎn)換通道,當(dāng)設(shè)計(jì)人員在設(shè)計(jì)印刷電路板時(shí),這個(gè)功能給設(shè)計(jì)人員帶來更高的設(shè)計(jì)靈活性,為實(shí)現(xiàn)平均轉(zhuǎn)換目的,準(zhǔn)許對(duì)同一通道進(jìn)行多次采樣(在一個(gè)序列內(nèi)),當(dāng)整個(gè)序列轉(zhuǎn)換完畢后,DMA通道將轉(zhuǎn)換結(jié)果送到RAM,中斷處理程序產(chǎn)生一個(gè)中斷請(qǐng)求。

          在檢測(cè)電機(jī)相位電流的過程中,瞬變電壓在功率開關(guān)上產(chǎn)生的噪聲(在離線開關(guān)應(yīng)用中,典型噪聲達(dá)到幾百個(gè)V/μs)是引起讀取誤差的一個(gè)重要原因,可能導(dǎo)致測(cè)量結(jié)果的信噪比非常低。解決方案是使模數(shù)轉(zhuǎn)換器與控制功率級(jí)的定時(shí)器同步:因?yàn)閾Q向時(shí)刻可以預(yù)定(由3 PWM定時(shí)器的比較寄存器定義),所以可以使用一個(gè)額外比較通道在換向時(shí)刻稍前或稍后觸發(fā)模數(shù)轉(zhuǎn)換操作?;谶@個(gè)原因,STM32啟用了第二個(gè)序列發(fā)生器(又稱注入序列發(fā)生器),該序列發(fā)生器的優(yōu)先級(jí)高于正常序列發(fā)生器,可以用一個(gè)不能延遲的新轉(zhuǎn)換操作使當(dāng)前的轉(zhuǎn)換操作中斷。通常情況下,正常序列發(fā)生器負(fù)責(zé)"內(nèi)部管理"轉(zhuǎn)換,連續(xù)檢測(cè)溫度或直流總線電壓(作為后臺(tái)任務(wù)),然后通過DMA通道發(fā)送到RAM,而注入序列發(fā)生器則將處理時(shí)間關(guān)鍵的轉(zhuǎn)換操作,并將轉(zhuǎn)換結(jié)果存儲(chǔ)在模數(shù)轉(zhuǎn)換器寄存器(將會(huì)產(chǎn)生一個(gè)中斷,但是不能接受延時(shí))。

          對(duì)于一個(gè)能夠執(zhí)行先進(jìn)的電機(jī)控制功能的通用微控制器,擁有微控制器是一回事,而開發(fā)輕松入門卻是另一回事。利用軟硬件工具可以把這個(gè)問題的兩個(gè)方面都處理好。首先是擁有一套電機(jī)控制開發(fā)入門工具,包含測(cè)試工具(JTAG探針和光隔離器)、 微控制器芯片以及功率級(jí)電路板和演示用PMSM電機(jī),這套工具用于產(chǎn)品性能評(píng)估和開發(fā)用途。模塊化設(shè)計(jì)有助于升級(jí)演示應(yīng)用(例如雙電機(jī)控制微控制器電路板),評(píng)估多個(gè)(或定制)功率級(jí)。最后,意法半導(dǎo)體為STM32客戶免費(fèi)提供電機(jī)控制軟件庫。2.0版電機(jī)控制軟件庫利用頭文件內(nèi)的一個(gè)簡(jiǎn)單且低廉的 #define聲明列表支持各種配置。

          軟件庫包含交流感應(yīng)電機(jī)和同步電機(jī)的磁場(chǎng)定向控制算法,為簡(jiǎn)化代碼的可讀性和可維護(hù)性,這些算法采用C編程語言,再次證明了現(xiàn)代編譯器的效率。該軟件庫還針對(duì)PMSM電機(jī)提供一個(gè)穩(wěn)健的無傳感器控制算法(基于磁通觀測(cè)器),以及一個(gè)超高速內(nèi)部永磁電機(jī) (IPM)專用控制算法。當(dāng)然,該軟件還支持普通轉(zhuǎn)速和位置傳感器(增量編碼器、霍爾傳感器轉(zhuǎn)速傳感器)。通過使用隔離傳感器或分流器,STM32支持三種電流檢測(cè)方法。STM32外設(shè)可以實(shí)現(xiàn)一個(gè)創(chuàng)新的單電流檢測(cè)方法,利用成本最低的配置(一個(gè)簡(jiǎn)單的獨(dú)特的電阻器)執(zhí)行矢量控制。因?yàn)槟軌蜃畲笙薅冉档捅菊麟娏魇д媛剩@項(xiàng)技術(shù)已取得專利權(quán)。

          意法半導(dǎo)體目前的主要開發(fā)項(xiàng)目是控制電機(jī)直到靜止?fàn)顟B(tài)的無傳感器永磁電機(jī)控制和內(nèi)置功率因數(shù)校正功能的雙電機(jī)控制。最近,意法半導(dǎo)體成功演示了單電流檢測(cè)方法,僅一個(gè)STM32微控制器就能執(zhí)行兩個(gè)單電流檢測(cè)矢量控制功能,同時(shí)還用一個(gè)40 kHz的控制回路管理PFC級(jí)(詳見圖1)。



          一種制方案設(shè)計(jì)與實(shí)現(xiàn)



          一種制方案設(shè)計(jì)與實(shí)現(xiàn)



          從功率開關(guān)分立器件,到復(fù)雜的系統(tǒng)芯片,意法半導(dǎo)體承諾以其獨(dú)有的產(chǎn)品組合長(zhǎng)期支持電機(jī)控制市場(chǎng)。STM32微控制器產(chǎn)品線將繼續(xù)沿四個(gè)新方向部署,如圖3所示,其中兩個(gè)方向適用于電機(jī)控制。第一個(gè)產(chǎn)品線將面向低成本市場(chǎng),開發(fā)低端的16位電機(jī)控制微控制器。另一個(gè)產(chǎn)品線以高性能為訴求,面向需要更高處理性能、更大存儲(chǔ)容量和高帶寬接口的應(yīng)用。如此寬廣的產(chǎn)品組合結(jié)合Cortex-M3內(nèi)核,勢(shì)必確立STM32架構(gòu)適用于現(xiàn)在和未來電機(jī)驅(qū)動(dòng)的多功能性。


          關(guān)鍵詞: STM32微控制器電機(jī)控

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();