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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 采用8位微控制器實(shí)現(xiàn)無(wú)傳感器磁場(chǎng)定向控制

          采用8位微控制器實(shí)現(xiàn)無(wú)傳感器磁場(chǎng)定向控制

          作者:英飛凌科技股份公司高級(jí)應(yīng)用工程師 Arno Rabenstein 時(shí)間:2008-04-15 來(lái)源:電子產(chǎn)品世界 收藏

            導(dǎo)言

          本文引用地址:http://www.ex-cimer.com/article/81552.htm

            由于具有更高的效率、更好的動(dòng)態(tài)響應(yīng)以及更小的扭矩波動(dòng),磁場(chǎng)(FOC)正越來(lái)越多地被應(yīng)用于消費(fèi)和工業(yè)電機(jī)中。采用英飛凌8位XC886和XC888實(shí)現(xiàn)FOC技術(shù)(當(dāng)輸出15kHz PWM載頻和133ms電流控制響應(yīng)時(shí)間時(shí))只需要占用58%的CPU負(fù)荷,就足以滿足特定功能應(yīng)用的需求。經(jīng)過(guò)高度優(yōu)化的PWM單元CAPCOM6E能觸發(fā)模數(shù)轉(zhuǎn)換器來(lái)測(cè)量單直流母線電阻上的電流,為能在標(biāo)準(zhǔn)的8位上實(shí)現(xiàn)FOC創(chuàng)造了條件。16位FOC算法僅由片上內(nèi)嵌的協(xié)處理器MDU和CORDIC(矢量計(jì)算機(jī))以及8051兼容CPU的聯(lián)合應(yīng)用就可以實(shí)現(xiàn)。MDU是一個(gè)16位乘法和除法單元,CORDIC是一個(gè)專用于矢量旋轉(zhuǎn)和角度計(jì)算的16位協(xié)處理器。

            在英飛凌8位XC886和XC888上實(shí)現(xiàn)的無(wú)傳感器磁場(chǎng),能為電器制造商所面臨的能耗要求和定價(jià)壓力提供完美的解決方案。和大多數(shù)采用硬編碼方式實(shí)現(xiàn)的其它類型的FOC不同,基于XC886/8微控制器的解決方案具有軟件重復(fù)編程能力所帶來(lái)的附加優(yōu)勢(shì),能向用戶提供靈活多變的應(yīng)用選擇。

            無(wú)傳感器的磁場(chǎng)

            磁場(chǎng)定向控制算法需要轉(zhuǎn)子位置的信息。轉(zhuǎn)子位置可以通過(guò)諸如編碼器或旋轉(zhuǎn)變壓器等位置傳感器來(lái)獲得。另一種更省成本的方法是用于無(wú)刷直流電機(jī)(BLDC)的無(wú)傳感器FOC。這一方法是基于轉(zhuǎn)子永磁體與定子磁場(chǎng)的相互作用而實(shí)現(xiàn)的。

            為了確定轉(zhuǎn)子的實(shí)際角度,能通過(guò)對(duì)特定的電壓積分來(lái)得到磁通量矢量。

            基于特定微分方程的電壓模型只是旋轉(zhuǎn)場(chǎng)電機(jī)的一個(gè)簡(jiǎn)單模型。定子的電流矢量i_s需要相電流的精確測(cè)量。用一個(gè)截止頻率很低的低通濾波器來(lái)代替電流矢量能簡(jiǎn)化積分。

            在標(biāo)準(zhǔn)8位微控制器上實(shí)現(xiàn)的無(wú)傳感器磁場(chǎng)定向控制(FOC)能以最小的系統(tǒng)代價(jià)獲得正弦換向的全部?jī)?yōu)勢(shì)。當(dāng)在直流環(huán)節(jié)中只使用單個(gè)電阻采樣來(lái)獲取相電流時(shí),對(duì)快速精確的模數(shù)轉(zhuǎn)換有很苛刻的要求。相電流必須在直流母線電流信號(hào)(三相空間矢量脈沖寬度調(diào)制的響應(yīng))外被重建。

            空間矢量是一條中心點(diǎn)能在空間中“浮動(dòng)”的正弦曲線。三相空間矢量由一個(gè)可以被分割成六部分的六邊形來(lái)表示。電壓空間中的任何一條矢量都包含來(lái)自其中一相的“實(shí)”電壓和來(lái)自另外兩相的“虛”直角電壓??臻g矢量算法將確定處于第一、第二個(gè)有效狀態(tài)以及無(wú)效狀態(tài)的時(shí)間,從而得到所需的空間矢量的幅度和角度。參見(jiàn)圖1中的實(shí)例。第一個(gè)有效狀態(tài)(b&f)的時(shí)間為TU,第二個(gè)有效狀態(tài)的時(shí)間(c&e)為T-W,無(wú)效狀態(tài)的時(shí)間為T0 ,其會(huì)出現(xiàn)兩次,第一次出現(xiàn)在(000)矢量位置(a&g),第二次出現(xiàn)在(111)矢量位置(d)。

            為了在直流母線電流外重建相電流,必須在有效狀態(tài)期間觸發(fā)模數(shù)轉(zhuǎn)換器。完美的正弦換向要求空間矢量也能精確地指向六邊形的交角處。這樣在直流環(huán)節(jié)上就只有一路相電流被測(cè)量,并且也只有一路相電流被重建。但是FOC算法本身不允許出現(xiàn)這一情況。因此必須采用空間矢量脈沖寬度調(diào)制來(lái)消除六邊形的交角。交角的消除會(huì)導(dǎo)致輸出信號(hào)中出現(xiàn)一些紋波,必須盡可能地減小這些紋波。

            實(shí)際值的獲取

            圖2顯示了帶有對(duì)永磁同步電機(jī)(PMSM)進(jìn)行速度控制的無(wú)傳感器FOC的框圖。為了通過(guò)單個(gè)直流母線電阻的測(cè)量來(lái)估計(jì)轉(zhuǎn)子的位置,用來(lái)測(cè)量電流的PWM模式生成和模數(shù)轉(zhuǎn)換器觸發(fā)必須十分迅速準(zhǔn)確。觸發(fā)點(diǎn)中的任何抖動(dòng)都將影響對(duì)于轉(zhuǎn)子實(shí)際角度的估計(jì)。從而增加正弦電流信號(hào)的總諧波失真。

            XC886/888C(L)M采用從PWM單元CapCom6E向模數(shù)轉(zhuǎn)換器發(fā)出的基于事件的硬件觸發(fā)來(lái)實(shí)現(xiàn)上述要求。圖3中第二個(gè)PWM周期中的綠色閃電狀符號(hào)代表直接觸發(fā)模數(shù)轉(zhuǎn)換器進(jìn)行采樣的硬件事件?;谑录挠|發(fā)器能消除任何中斷延遲,為快速準(zhǔn)確的電流測(cè)量創(chuàng)造條件。在信號(hào)采樣完成后,由于被采樣的電壓在內(nèi)部被存儲(chǔ),因此轉(zhuǎn)換狀態(tài)不再需要在輸入端有一個(gè)正確的信號(hào)。轉(zhuǎn)換完成后,結(jié)果被存儲(chǔ)到四個(gè)結(jié)果寄存器之一。兩個(gè)結(jié)果寄存器被用來(lái)保存適當(dāng)?shù)闹绷髂妇€電流值IDClink。ADC的采樣時(shí)間僅為250ns。當(dāng)在圖1中的時(shí)間間隙(b)和(e)中對(duì)電流進(jìn)行測(cè)量時(shí),總是會(huì)有足夠的時(shí)間來(lái)進(jìn)行轉(zhuǎn)換的。

            觸發(fā)時(shí)刻可以由CAPCOM6E單元的比較和周期值來(lái)進(jìn)行調(diào)整。有兩個(gè)能互相同步的定時(shí)器。定時(shí)器T12用來(lái)產(chǎn)生空間矢量脈沖寬度調(diào)制的波形。器件中采用影像寄存器來(lái)存儲(chǔ)比較值,從而確保操作不受脈沖毛刺的影響。定時(shí)器T13在啟動(dòng)時(shí)就被同步到與定時(shí)器T12匹配的周期上,用來(lái)觸發(fā)模數(shù)轉(zhuǎn)換器。調(diào)節(jié)比較值和周期值,使電流在有效狀態(tài)的中間時(shí)刻被測(cè)量。同時(shí)采用兩個(gè)模數(shù)轉(zhuǎn)換器的通道來(lái)對(duì)被放大的采樣電阻上的信號(hào)進(jìn)行采樣。得到的結(jié)果被存儲(chǔ)在兩個(gè)不同的結(jié)果寄存器中。這樣FOC計(jì)算就能直接讀取結(jié)果寄存器,而不用擔(dān)心能否及時(shí)觸發(fā)測(cè)量操作。

            磁場(chǎng)定向控制的計(jì)算

            從控制的觀點(diǎn)來(lái)看,磁場(chǎng)定向控制與直流電機(jī)的控制原理類似?;靖拍钍羌?jí)聯(lián)控制,但關(guān)鍵的不同之處在于電氣變量(Vd, Id, Vq和Iq)隨轉(zhuǎn)子一起旋轉(zhuǎn)。因此,在定子中測(cè)得的電流(Iα 和Iβ)必須被轉(zhuǎn)換到轉(zhuǎn)子坐標(biāo)系中(Id和Iq)。電流控制器在旋轉(zhuǎn)系統(tǒng)中由PI控制器實(shí)現(xiàn),能對(duì)場(chǎng)激勵(lì)產(chǎn)生的d分量和由扭矩激勵(lì)產(chǎn)生的q分量分別進(jìn)行控制。和直流電機(jī)中的情況一樣,速度控制器能調(diào)節(jié)扭矩激勵(lì)電流Iq的參考值。由于轉(zhuǎn)子是永磁體,因此場(chǎng)激勵(lì)電流的參考值Id被設(shè)置成零。

            電流控制器的輸出代表轉(zhuǎn)子坐標(biāo)中的參考電壓(Vd和 Vq)。為了計(jì)算出極坐標(biāo)(模和輻角),這些值必須被轉(zhuǎn)換到定子的坐標(biāo)系中(Vα和Vβ)。采用空間矢量脈沖寬度調(diào)制,通過(guò)調(diào)制相應(yīng)功率逆變器的高邊和低邊開(kāi)關(guān),就能將模和輻角轉(zhuǎn)換成三相電流的形式。

            所有計(jì)算都在定時(shí)器T12周期匹配時(shí)被調(diào)用的中斷服務(wù)程序中逐步執(zhí)行。計(jì)算執(zhí)行所需的時(shí)間比一個(gè)PWM周期要長(zhǎng)。結(jié)果,控制環(huán)路時(shí)間必須為PWM周期的兩倍,即在20KHz的PWM頻率下,控制環(huán)路每100祍被計(jì)算一次。

            FOC驅(qū)動(dòng)應(yīng)用套件:CANmotion

            FOC 驅(qū)動(dòng)應(yīng)用套件可為客戶對(duì)采用FOC技術(shù)的永磁同步電機(jī)(PMSM)控制設(shè)備的評(píng)估和開(kāi)發(fā)提供經(jīng)濟(jì)高效的方法。

            該套件的特色之一是帶有集成XC886CM MCU (TQFP-48)和3相逆變器(具有控制24V BLDC所需全部功能)的評(píng)估板。完整的無(wú)傳感器FOC源代碼配合全面的文檔,使用戶能立即進(jìn)行FOC開(kāi)發(fā)。

            套件中還提供了再次采用XC886CM建立的CAN到USB的接口,來(lái)進(jìn)行16位代碼的下載和參數(shù)調(diào)節(jié)?;贑AN報(bào)文的用戶界面使用戶能夠設(shè)置并修改所有用于速度和電流控制的電機(jī)控制參數(shù)。獨(dú)特的基于CAN的監(jiān)控技術(shù)能為電機(jī)控制應(yīng)用提供實(shí)時(shí)控制。24V BLDC和插入式電源使該套件能隨時(shí)被使用。

            預(yù)編譯演示板可提供輕松評(píng)估FOC算法和測(cè)量其性能的平臺(tái)。完整的開(kāi)發(fā)環(huán)境包括一套免費(fèi)的工具鏈,能使用戶預(yù)先進(jìn)入應(yīng)用開(kāi)發(fā)的下一個(gè)環(huán)節(jié),并使用相同的應(yīng)用套件進(jìn)行定制。

            欲獲取關(guān)于英飛凌無(wú)傳感器FOC算法和FOC驅(qū)動(dòng)應(yīng)用套件的詳細(xì)信息,敬請(qǐng)?jiān)L問(wèn):http://www.infineon.com/XC800-FOC。



          評(píng)論


          相關(guān)推薦

          技術(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); })();