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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP的永磁電機(jī)推進(jìn)系統(tǒng)設(shè)計

          基于DSP的永磁電機(jī)推進(jìn)系統(tǒng)設(shè)計

          作者: 時間:2011-10-10 來源:網(wǎng)絡(luò) 收藏

          隨著控制理論和電力電子以及材料的發(fā)展,被廣泛用于各種變速驅(qū)動場合,這主要是因為電動機(jī)具有結(jié)構(gòu)簡單、運行可靠、體積小、重量輕以及具有較高的效率和功率因數(shù)等優(yōu)點。

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

            傳統(tǒng)的永磁同步調(diào)速一般采用雙閉環(huán),外環(huán)的速度控制一般可以實現(xiàn)數(shù)字控制,而內(nèi)環(huán)的電流控制一般不容易實現(xiàn)數(shù)字控制,這主要是因為的電氣時間常數(shù)比較小,對電流控制的實時性要求很高,一般的微處理器很難滿足要求。但是隨著電力電子技術(shù)和微處理器技術(shù)的發(fā)展,特別是TI公司針對電機(jī)控制而推出的-F240為實現(xiàn)全數(shù)字控制提供了比較現(xiàn)實的手段。-F240主要由CPU、片內(nèi)RAM和可編程FLASH ROM、事件管理器、片內(nèi)周邊接口等部分組成,它的工作頻率比較高,一般要大于20MIPS,并且片上集成了很多面向電機(jī)控制的外圍設(shè)備,使得整個的實現(xiàn)相對比較容易。本文介紹以TMS320LF2407A為核心的永磁同步電機(jī)系統(tǒng)的硬件結(jié)構(gòu)和軟件流程,并對該套方案進(jìn)行了Matlab/Simulink仿真和低速運行實驗。

            1 永磁同步電動機(jī)的矢量控制策略

            矢量控制理論是由F.Blaschke于1971年提出的,其基本原理是:在轉(zhuǎn)子磁鏈dqO旋轉(zhuǎn)坐標(biāo)系中,將定子電流分解為相互正交的兩個分量id和iq其中id與磁鏈同方向,代表定子電流勵磁分量,iq與磁鏈方向正交,代表定子電流轉(zhuǎn)矩分量,用這兩個電流分量所產(chǎn)生的電樞反應(yīng)磁場來等效代替原來定子三相繞組電流ia、ib、ic所產(chǎn)生的電樞反應(yīng)磁場,即進(jìn)行Park變換:

            式中:γ為轉(zhuǎn)子位置角,即轉(zhuǎn)子d軸領(lǐng)先定子a相繞組中心線的電角度。然后分別對id和io進(jìn)行獨立控制,即可獲得像直流電機(jī)一樣良好的動態(tài)特性。表面凸出式轉(zhuǎn)子結(jié)構(gòu)的永磁同步電機(jī)d、q軸電感基本相同,因而其電磁轉(zhuǎn)矩方程為:

            式中:pn為轉(zhuǎn)子極對數(shù),Ψf為永磁體產(chǎn)生基波磁鏈的有效值。

            為使定子單位電流產(chǎn)生最大轉(zhuǎn)矩,提高電機(jī)的工作效率,本文選用最大轉(zhuǎn)矩/電流矢量控制,由式(2)可知,對于表面凸出式轉(zhuǎn)子結(jié)構(gòu)的永磁同步電機(jī),可令id=0,通過調(diào)節(jié)iq來實現(xiàn)轉(zhuǎn)矩的控制如圖1所示,整個伺服系統(tǒng)由3個控制環(huán)構(gòu)成。

            1)位置環(huán):采集電機(jī)旋轉(zhuǎn)編碼器輸出的脈沖信號,鑒相、倍頻后進(jìn)行計算,提供坐標(biāo)變換所需的轉(zhuǎn)子位置信息;

            2)速度環(huán):比較實際轉(zhuǎn)速n與設(shè)定轉(zhuǎn)速nref所得差值經(jīng)PI調(diào)節(jié)后作為q軸電流參考值iqr再經(jīng)電流環(huán)調(diào)節(jié)后;

            3)電流環(huán):比較電流實際值id、iq與參考值idr、iqr,經(jīng)PI調(diào)節(jié)后產(chǎn)生d、g軸電壓參考值udr、uqr,將其轉(zhuǎn)換至靜止坐標(biāo)系中得uαr、uβr按SVPWM方式生成逆變器觸發(fā)信號,驅(qū)動電機(jī)。

            2 系統(tǒng)硬件結(jié)構(gòu)

            永磁同步電動機(jī)推進(jìn)系統(tǒng)的硬件結(jié)構(gòu)如圖2所示,它主要提供以下3大功能:電動機(jī)控制策略的實現(xiàn)、控制量的檢測采樣以及功率驅(qū)動。

            2.1 TMS320LF2407A DSP

            整個系統(tǒng)控制策略的實現(xiàn)由TMS320LF2407A DSP完成,它具有低功耗和高速度的特點,其單指令周期最短可達(dá)25 ns片內(nèi)兩個事件管理器(EVA和EVB)各有2個通用定時器,1個外部硬件中斷引腳,3個捕獲單元(CAP)和1個正交編碼單元(QEP)這些功能與串行外設(shè)接口(SPI)等模塊一起,這就方便了電機(jī)控制過程中的數(shù)據(jù)處理、策略執(zhí)行及決策輸出等。

            2.2 控制量檢測部分

            電機(jī)機(jī)械量的采集由增量式光電編碼器來完成,其輸出包括兩組脈沖信號:A、B、Z和U、V、W,它們與DSP的連接如圖3所示其中A、B信號正交,正交編碼單元將它們四倍頻后送入相應(yīng)的計數(shù)器進(jìn)行計數(shù),計數(shù)方向由A、B信號的相位先后決定Z信號隨轉(zhuǎn)子每轉(zhuǎn)一周輸出一個脈沖,根據(jù)它們的不同狀態(tài),可將360°電角度平面分成6個部分,用以確定電機(jī)的初始轉(zhuǎn)子位置角。

            電機(jī)電流狀態(tài)量的采集由霍爾電流傳感器完成,其采樣電路如圖3所示,輸入輸出關(guān)系為:

            為了保證電流較小時的采樣精度,改善電機(jī)低速、輕載下的運行情況,這里采用12 b雙A/D轉(zhuǎn)換器ADS7862來代替DSP內(nèi)部10 b的模/數(shù)轉(zhuǎn)換模塊,通過DSP的外部存儲器擴(kuò)展接口,將式(3)的模擬電流量轉(zhuǎn)換為數(shù)字量結(jié)果,輸入DSP。

            2.3 功率驅(qū)動部分

            永磁同步電機(jī)的功率驅(qū)動為交-直-交PWM方式,其中整流部分采用單相橋式不控整流,逆變部分采用智能功率模塊PS21869,它內(nèi)部集成了6個絕緣柵雙極型晶體管及其驅(qū)動、保護(hù)電路,由DSP的PWMl~6引腳提供觸發(fā)信號,能夠在過流或欠壓故障發(fā)生時,關(guān)閉IGBT驅(qū)動電路,同時在相應(yīng)故障引腳輸出故障信號至DSP的PDPINTA引腳,通過硬件中斷,封鎖PWM脈沖輸出。

            3 系統(tǒng)軟件

            永磁電機(jī)推進(jìn)系統(tǒng)的軟件主要由3部分組成:初始化程序、主程序和中斷服務(wù)子程序系統(tǒng)復(fù)位時,先執(zhí)行初始化程序,檢測、設(shè)定DSP內(nèi)部各模塊的工作模式和初始狀態(tài)主程序負(fù)責(zé)收集電機(jī)電流、轉(zhuǎn)速等一系列實時運行信息;定時中斷子程序則是實現(xiàn)電機(jī)矢量控制策略的核心程序,主要完成PI調(diào)節(jié)和SVPWM波形發(fā)生這兩大功能,其流程圖如圖4所示。


          上一頁 1 2 下一頁

          評論


          相關(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); })();