基于μC/OS—Ⅱ和DSP的開關磁阻電機風力發電系統
田傳幫,趙德安
(江蘇大學,江蘇鎮江212013)
摘要:主要分析了實時操作系統μC/OS一1I移植到DSP芯片上所要完成的工作,并在μC/OS—II操作系統平臺上編制了開關磁阻電機風力發電系統的控制程序。在6相(12/10)結構3 kW開關磁阻電機風力發電系統上進行了實驗。實驗結果表明:μC/OS Ⅱ在開關磁阻電機控制系統中的應用以及開關磁阻電機用于風力發電系統是可行的。
關鍵詞:μC/OS-Ⅱ;實時操作系統;移植;DSP;開關磁阻電機風力發電系統
中圖分類號:TM352 文獻標識碼:A 文章編號:1004—7018(2008)08—0020—03
0引 言
在能源短缺和環境趨向惡化的今天,風能作為一種可再生清潔能源,日益為世界各國所重視和開發。由于風能開發有著巨大的經濟、社會、環保價值和發展前景,近20年來風電技術有了巨大的進步,風電開發在各種能源開發中增速最快。發電機是風力發電機組中將風能轉化為電能的重要裝置,它不僅直接影響輸出電能的質量和效率,也影響整個風電轉換系統的性能和裝置結構的復雜性。風能是低密度能源,具有不穩定和隨機性特點。控制技術是風力機安全高效運行的關鍵,因此研制適合于風電轉換、運行可靠、效率高、控制且供電性能良好的發電機系統和先進的控制技術是風力發電推廣應用的關鍵。
開關磁阻發電機不僅具有結構簡單、能量密度高、過載能力強、動靜態性能好、可靠性和效率高、容錯性好的特點,而且還有價格低、效率高和適應能力強等優點。伴隨著微處理器的發展,DSP逐步顯示出高速計算能力,可增加采樣速度和完成復雜的控制算法。模糊控制、神經網絡控制等算法逐步被引人到控制系統中。在前后臺系統上編寫系統控制程序變越來越困難,并且程序的可讀性也會變差,在有些實時性要求很高的應用場合,前后臺程序根本不能實現。因而,本文將μC/OS-Ⅱ系統引入到實時性要求較高的開關磁阻電機風力發電系統中。
1開關磁阻電機風力發電系統組成
1.1開關磁阻電機發電原理
線性條件下,開關磁阻電機(以下簡稱SR電機)某一相瞬時電磁轉矩表達式:
由式(1)可知,SR電機電磁轉矩的方向不受相電流方向的影響,僅取決于電感隨轉角的變化(圖11--)決定的:若相電流處于圖12--區間時,產生正轉矩,對應圖1在θ2~θ3區域,SR電機工作在電動狀態(SRM);若相電流處于圖13--的區間時,則產生負轉矩,即對應圖1在θ4~θ5區域,SR電機工作在發電狀態(SRG)。即只要根據轉子位置來控制主開關通斷角度,以改變相電流的幅值和寬度,就可以產生不同大小和方向的電磁轉矩,實現SR電機的可逆運行.
線性條件下,SR電機的單相電流的典型波形如圖l所示。
θon~θoff區間為勵磁階段,相電流i(t)由外接電源Us激勵產生,并稱在θoff處的相電流大小Ih為勵磁電流,它反映了sRG勵磁強度和儲存磁場能量的大小,此階段sRG吸收電能,存儲磁能和機械能。θ>θoff區間為發電階段,相電流i(t)通過續流二極管由SRG內部流出,把機械能和磁能轉化為電能釋放出來,此階段的續流相電流是不可直接控制的。很
顯然,SRG的輸出功率為發電功率和勵磁功率之差,因此為了實現凈功率輸出,發電階段電流必須足夠大。
1.2 SR電機風力發電系統硬件
SR電機風力發電系統硬件[1-3]框圖如圖2所示。以TMS320F2812 D,sP為核心,DsP通過捕獲單元得到位置反饋信號,確定轉子位置和轉速,讀取AD采樣得到的母線電流、電池電壓、判斷系統工況,決定各相導通、關斷情況,輸出的6相觸發信號經保護電路和電流斬波電路放大隔離輸出;系統的工況經DsP數據總線(DB)接口輸出顯示。
2基于μC/0S-Ⅱ嵌入式平臺下系統軟件結構
基于前后臺系統的主要功能包括速度計算反饋量采集I/O和AD輸入、電流環控制、位置計算、電機相位切換、速度控制環計算等。從程序結構可看出,該程序設計方法只適用于簡單的控制算法。因為沒有相應的任務切換功能,DsP只是簡單的在程序中順序運行。一旦控制算法變得復雜,將會導致系統實時響應變慢。SRM典型前后臺控制程序系統結構圖如圖3所示.
采用基于μC/0S-Ⅱ的軟件平臺,使得軟件系圖5--統層次清晰、模塊功能獨立、便于維護和修改,最重要的是系統實時性得到體現,高優先級的任務始終****得到運行。系統軟件包括操作系統和用戶應用程序兩個部分。任務劃分同前后臺系統一致,即電機相位切換、模擬量A/D輸入、電流采樣及斬波、速度計算、雙閉環調節、數字量輸入及輸出、顯示任務7個任務[3-4],但根據重要性和實時性將它們定為不同的優先級(如表1所示)。
除了7個任務外,系統還有3個中斷程序。首先是50μs時鐘節拍中斷,其中斷優先級****;另外一個是捕獲中斷,用于轉子位置狀態信息更新;還有一個周期中斷,實現變角度控制。
μC/0S-Ⅱ的任務和普通c函數一樣,有函數返回類型,有形式參數變量,但永遠不會被調用。將上述7個任務編成函數形式。本系統的主函數是一個被****執行的函數,該函數永遠不會返回。函數首先屏蔽所有的中斷,調用系統初始化函數對各種軟、硬件進行初始化(包括全局變量初始化、中斷、數字量輸人/輸出、顯示等硬件初始化),接著調用OsInit()函數對系統進行初始化。在啟動操作系統之前,用戶至少要建立一個應用任務。最后,調用OSStm()啟動RTOs,程序把控制權交給了RTOs,在RTOs的管理下實現SR電機電流、速度的控制。
電流采樣、電流斬波任務:電流采樣主要使用的是DsP中的AD模塊。實際電流通過電流傳感器、采樣電阻、放大環節送人DsP的AD口中,就可以獲得電流值。電流斬波具體就是由DsP根據不同情況給出不同的電流斬波閥值。本系統采用的是上下限斬波的方式,即電流超過上限則關斷IGBT,低于下限則開通IGBT。
速度計算任務:根據DSP中捕獲單元所捕獲到的計數值來計算速度。實驗用的sR電機是6相(12/lO)結構,因此,當它旋轉時,每個位置傳感器產生18。的脈沖。將三個位置傳感器分別送人捕獲單元的cAPI、cAPZ、cAP3,然后設置捕獲位置信號的兩個邊沿,即捕獲6。計數值。根據捕獲到的計數值可以得到轉速的計算公式:
式中:T為脈沖周期,Ncoun t為捕獲到的計數值。
雙閉環調節任務:系統采用雙閉環結構的調節器,其中,外環為轉速環,內環為電流環,這里我們用的是經典的PI調節。
3具體移植方法[5]
在OsTaskstkInit()中,任務堆棧區的構造特點是DSP2812的堆棧區由低向高增長,****處是任務棧的入口,接著是Pc指針和程序狀態字。任務切時要對臨時寄存器和框架寄存器進行保護。明確了任務堆棧的構造后,編寫任務啟動函數和任務切換函數。關鍵是:在得到了****優先級的任務堆棧指針后,如何按正確的順序出棧,找到Pc指針。其中任務切換函數在切換任務之前還要編寫對當前任務的現場進行保護的程序。同時還應注意,由于在中斷服務程序中沒有定義局部變量,這使得編譯器不能對框架寄存器進行保護,因此,對這一寄存器的保護應在設計時自己加上。
移植要點是:
移植工作主要是改寫Os_cPu.H、Os—cPu.cos_cPu.AsM三個文件。
Os—cPu.H文件中包括與處理器有關的常量、宏以及類型,該文件主要完成以下工作:μC/0S-Ⅱ的移植包括一系列的類型定義,以確保其可一直性;定義宏來禁止和允許中斷;確定堆棧的增長方向;定義Os TAsK_sw()宏。
在Os_cPu.c文件中需要編寫以下10個簡單的c函數:OSTaskstkInit();OsTaskcreateH00k();OsTaskDelHook();0STaskSwH00k();OsTaskIdle—H00k();OSTaskStaTH00k();OSTaskTickH00k();OS—InitH00kBegm();OSInitH00kEnd():OSTCBInitH00k()。其中,9個系統Hook函數可以為空函數,也可以根據用戶自己的需要編寫相應的操作代碼。任務棧結構初始化函數OsTaskstkInit(),必須根據移植時統一定義的任務堆棧結構進行初始化。 OS_CPu.ASM文件包含4個匯編函數:Os—StartHighRdY ();OSCtxSw();OSIntCtxSw( )OS—TickIsR()。其中,OSStartHighRdy()是實現使就緒態****優先級的任務開始運行;Osctxsw()是實現任務級任務切換。OsIntcrxsw()是實現中斷級任務切換;0sTIckISR()是實現時鐘節拍中斷ISR。
4系統驗證
實驗用6相(12/lO)結構3 kw開關磁阻發電機、4 kw三相交流異步電機模擬風力機。發電試驗轉速范圍為1 000~3000r/min,與蓄電池并聯的400w功率滑線變阻器作為電氣負載,經歷恒流、恒壓兩個蓄電池充電模式。實驗電路圖如圖4所示。
圖5為1 200 r/min穩態發電相電流(chl)與相控信號(ch2)實測波形。試驗表明,基于μC/0S-Ⅱ的軟件平臺程序控制,電機相位切換和電流控制正常,表明了實時操作系統在開關磁阻電機系統中應用的可行性。在該轉速下勵磁結束后相電流呈現明顯的上沖,發電區域較大,發電效率較高。
圖6為加恒流階躍給定,再突加、突減部分負載情況下充電電流(chl)和相電流(ch2)響應波形。可以看到,在負載突然變化后,相電流能迅速反應,使充電電流很快調節到穩定狀態,具有較強的抗擾動能力。表明了sR電機用于風力發電系統的可行性。
|