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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 一種基于TMS320LF2407的并網(wǎng)逆變器控制策略

          一種基于TMS320LF2407的并網(wǎng)逆變器控制策略

          作者: 時間:2010-12-23 來源:網(wǎng)絡(luò) 收藏

          當β從β1增大到β2時,其它條件不變,功率會隨之增大,其變化關(guān)系可以由式(1)確定。因此,我們可以通過外圍電路設(shè)定β值,從而達到功率調(diào)節(jié)。

          1.3 單元框圖

          如圖3所示,單元上主要是通過外圍檢測電路和相應(yīng)的軟件算法來實現(xiàn)的。軟件的實現(xiàn)在后文中闡述。其中DC/DC的與保護部分可以與逆變部分分開,但由于DSP的資源比較豐富,可以利用同一塊DSP來處理。

          圖3 控制單元框圖

          由于主電路與電網(wǎng)沒有隔離,則控制單元須全部與主電路隔離。電網(wǎng)電壓的檢測可通過工頻采樣變壓器實現(xiàn),但直流電壓的檢測相對要困難。這里采用線性光耦來達到采樣和隔離的目的,這就要求線性光耦的線性度非常高。采樣電路如圖4所示。

          圖4 直流母線電壓采樣電路

          本電路采用TIL300線性光耦,經(jīng)采樣隔離后的值送至DSP的AD轉(zhuǎn)換通道。由圖4所示電路可知,AD采樣值Vo=k3(R6/R4)VBUS,其中k3是光耦的電流傳輸系數(shù)。

          電網(wǎng)過零檢測主要是利用DSP的CAP捕捉單元來實現(xiàn)鎖相。以檢測到的過零時刻作為基準,控制脈沖超前此基準時刻β角度。過流及電網(wǎng)過大波動的保護是由電流間接控制,為電流開環(huán)控制,因此,應(yīng)根據(jù)所需的功率大小以及器件的額定值設(shè)好保護點。當發(fā)生過流時,通過保護電路封鎖逆變控制脈沖,并斷開主電路,使脫離電網(wǎng)。當檢測到的電網(wǎng)電壓超出波動范圍時,也使停止工作,并給出相應(yīng)的故障指示信號。

          2 軟件設(shè)計與實現(xiàn)

          的控制方式是在文獻[2]中的倍頻式SPWM基礎(chǔ)上,結(jié)合DSP的PWM輸出特性產(chǎn)生的,如圖5所示。實際中,三角波的頻率與工頻的比值為240,為簡單起見,圖5中的比值為12。

          圖5 開關(guān)器件的驅(qū)動波形和逆變器輸出波形

          波形生成過程如下:DSP的通用定時器1采用連續(xù)增/減計數(shù)模式,而且在定時器下溢中斷后立即裝載比較寄存器CMPR1和CMPR2的值,CMPR1決定ug1和ug4,CMPR2決定ug3和ug2。在DSP的數(shù)據(jù)存儲區(qū)有一90°的正弦表,對應(yīng)360個點,此表作相應(yīng)調(diào)整可以產(chǎn)生90°~360°的正弦值,而裝載值是在每個三角波中心時刻所對應(yīng)的正弦值。

          在一個工頻周期,定時器1產(chǎn)生240次下溢中斷,設(shè)第M次中斷時裝載的值對應(yīng)正弦表中第K個值,在4個不同的象限時,M和K的關(guān)系如下:

          K=(5)



          評論


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