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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于DSP+CPLD的交流電機調速在水處理控制中的應用

          基于DSP+CPLD的交流電機調速在水處理控制中的應用

          作者: 時間:2007-12-27 來源:網(wǎng)絡 收藏

          1 引言

          生化反應池在水處理過程中非常重要。需要通過調整風機的轉速控制反應池中的DO值。理論上應該通過調節(jié)電動機的轉速來實現(xiàn),但實際上卻是利用擋板閥門后者放空的方法進行調節(jié)。這種方法極大地浪費了電力資源。以美國TI公司推出的TMS320LF2407為代表的面向電機控制的高性能數(shù)字信號處理可以對電機進行精確控制,大大提高了交流電機的性能,能夠設計出性能優(yōu)良的控制系統(tǒng)。同時,可編程邏輯器件特別是高密度可編程邏輯器件CPLD的出現(xiàn),使得外圍邏輯電路大大簡化,增強了系統(tǒng)的可靠性。本文以TMS320LF2407為控制核心,輔以可編程器件及外圍電路,設計異步交流電機的調速控制系統(tǒng)。

          2 系統(tǒng)總體設計

          2.1 變頻方式的選擇

          系統(tǒng)采用磁場定向矢量控制的方法對電機變頻,又稱FOC控制。其實質是將異步交流電動機等效直流電動機,將三相坐標系下的定子交流電流通過3/2變換,等效成兩相靜止坐標系下的交流電流,再通過轉子磁場定向旋轉變換,等效成同步旋轉坐標系下的直流電流,相當于直流電動機的勵磁電流和電樞電流,然后模仿直流電動機的控制方法,分別對速度、磁場兩個分量進行獨立控制,實現(xiàn)解耦控制,矢量控制可以從零轉速起進行速度控制,即使低速亦能運行,調速范圍廣;可以對轉局實行精確控制;系統(tǒng)的動態(tài)響應速度非常快;電動機的加速特性很好。FOC控制結構簡圖如圖1所示。



          2.2 控制方案

          控制系統(tǒng)總體結構如圖2所示,主要由DSP基本模塊、CPLD換相模塊、位置傳感器模塊、電流檢測裝置、IGBT驅動電路、鍵盤及顯示電路組成。



          3 系統(tǒng)主要模塊設計

          3.1 DSP主控模塊

          電機控制專用定點器件TMS320LF2407的特點是:采用雙總線的哈佛結構;四級流水操作;專用的硬件乘法器;內部32 KB的Flash程序存儲器、高達1.5 KB的數(shù)據(jù)/程序RAM、544 KB雙口RAM和2KB單口RAM。兩個時間管理器模塊EVA和EVB,均包括兩個16位通用定時器和8個16位脈寬調制(PWM)通道。它們能夠實現(xiàn):三相反相器控制;PWM的對稱和非對稱波形;當外部引腳PDPINTx為低電平時,快速關閉PWM通道;可編程的PWM死區(qū)控制可防止上下橋臂同時輸出觸發(fā)脈沖;3個捕獲單元;片內光電編碼接口電路;16通道A/D轉換器。這些資源為電機控制提供了極大便利。

          本系統(tǒng)DSP主要用來生成PWM波,DSP通過速度環(huán)與電流環(huán)調節(jié)PWM的占空比實現(xiàn)對轉速的控制。指定轉速通過鍵盤模塊輸入,鍵盤輸入模塊和顯示電路通過雙口RAM與DSP實現(xiàn)數(shù)據(jù)的交換。鍵盤無輸入時,DSP不斷向雙口RAM寫入數(shù)據(jù),顯示電路從雙口RAM讀出數(shù)據(jù)并顯示出來;鍵盤有輸人時,先發(fā)信號給DSP,DSP停止向雙口RAM寫入數(shù)據(jù),待鍵盤數(shù)據(jù)輸入后,再發(fā)中斷信號給DSP,DSP從雙口RAM讀入指定的轉速。

          電機的速度檢測通過對CPLD送至DSP的CAP/QEP單元的信號的上下沿的檢測來實現(xiàn),由于電機兩相間的位置固定,根據(jù)兩次脈沖的時間差,經(jīng)過簡單的計算即可得到電機的速度。DSP將輸入的指定轉速與測得的反饋轉速相減,根據(jù)偏差的大小采用一定的控制算法可實現(xiàn)電機速度環(huán)的控制。速度環(huán)的輸出為給定電流。電機的繞組電流由電流檢測模塊送至DSP的。A/D轉換器,根據(jù)給定電流與檢測電流的差值同樣采用PI控制算法即可實現(xiàn)對PWM占空比的調整,從而最終實現(xiàn)對轉速的控制。

          3.2 CPLD換相模塊

          CPLD采用Altera公司的MAX系列可編程邏輯器件EPM7256E。該器件基于電擦除EEPROM,可重復編程100次以上,具有較多的輸入/輸出引腳,基本滿足多相電機換相控制的需要。開發(fā)工具為MAX PLUSII軟件,可采用原理圖設計、波形輸入設計和文本輸入設計,能根據(jù)指定的引腳配置自動生成熔絲文件,可采用JTAG方式對CPLD器件下載編程。

          使用MAX PLUSII構建所需要的邏輯結構圖,自動生成熔絲文件后對CPLD器件下載編程。CPLD器件的輸入為位置傳感器提供的位置信號、DSP給出的PWM脈寬調制信號和確定電機旋轉方向的信號,器件的輸出為各個IGBT驅動模塊的控制信號。采用CPLD進行換相,CPLD的復位引腳單獨接一復位開關,當DSP復位時,并不影響CPLD進行換相,使得換相非??煽?,能始終保持電機運行在正確的相序,增強了系統(tǒng)的抗干擾能力。另外,將電機的換相信號通過CPLD的一個輸出引腳送至DSP的一個CAP/OEP單元,電機換相時,此信號的高低電平將發(fā)生變化,DSP的CAP/OEP單元通過檢測電平上下沿的變化來計算轉速。位置的檢測采用光電編碼器,CPLD換相模塊根據(jù)光電編碼器的輸出信號即可判斷轉子的位置和轉子的轉速。



          3.3 IGBT驅動模塊

          電機電樞繞組的連接采用H橋形,功率開關采用IGBT,主電路的結構如圖3所示。IGBT的驅動采用日本富士通公司為其3 000 A/1 200 V快速型IBGT產(chǎn)品配套的專用驅動模塊EXB841來實現(xiàn)。整個電路信號延遲時間不超過1μs,最高頻率可達50kHz,并具有過流及慢速關斷功能。當發(fā)生過流時,電路將低電平信號送至DSP的PDPINT保護引腳,從而封鎖PWM脈沖的輸出,避免系統(tǒng)發(fā)生大的故障。

          3.4 電流檢測

          當逆變器驅動一個三相電動機負載時??梢詼y量三相定子電流Ia、Ib和Ic。三相繞組采用星形連接,只要知道其中兩相電流Ia、Ib,另一個變量Ic就可以根據(jù)公式Ia+Ib+Ic=0算出。

          電流檢測采用兩個線性電阻對其中兩相電流進行采樣,采樣電阻上的分壓被運放到0 V~+3.3V,然后信號被送到DSP的ADC模塊,在每個PWM周期都被轉換成數(shù)字量。由于選定的電阻是精確的,因此可以得到電流的精確采樣值。

          4 在水處理過程控制中的應用

          將所設計的控制系統(tǒng)應用于水處理過程控制中進行測試,控制系統(tǒng)的速度環(huán)和電流采用常規(guī)的PID控制,將控制器通過IGBT模塊直接驅動電機,該電機為三相交流異步電機(380 V,30 KW),定子線圈采用星形接法,使用TDS340A(100 MHz)示波器。

          啟動交流電動機,測得帶負載的電流波形如圖4所示。可以看出,控制板輸出了可調制的較好的PWM信號,電機相電流基本按正弦波形變化,波動較小,體現(xiàn)了良好的動態(tài)性能。電動機在實際運行過程中調速效果好,系統(tǒng)運行平穩(wěn)。



          5 結束語

          基于DSP+CPLD的交流電動機控制系統(tǒng)充分利用了DSP的強大運算能力,能夠采用復雜的控制算法對電機進行控制,同時內部集成了諸多功能,配合可編程器件可以使系統(tǒng)的外圍邏輯電路大大簡化,實現(xiàn)了水處理系統(tǒng)的控制。


          關鍵詞: DSPCPLD

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();