王 勤,李顯彤
(哈爾濱電機廠有限責任公司,哈爾濱150040)
在電力系統的運行中,同步發電機的勵磁系統起維持發電機或系統的電壓水平、合理分配發電機間的無功負荷、提高電力系統的靜態穩定性和動態穩定性的作用[1]。目前,國內運行的發電機勵磁調節器的軟件平臺一直采用單任務操作系統。對于外設控制終端少、任務單一的應用程序,可以采取一個定時主循環和其他順序調用的子程序模塊方案[2]。但是隨著勵磁系統控制軟件功能日益繁多和要求實時響應的任務增多,對主循環控制周期要求更精確,單任務系統的軟件方案可能會造成控制主循環的延時未響應和多子程序模塊之間的資源分配及動態調整不當,從而引起死機重啟。本文結合勵磁調節器的實際運行特點和軟件功能要求,分析實時多任務操作系統在其軟件運行中的應用,實現調節器可靠的多任務實時響應。
實時多任務操作系統是指能夠及時響應外部事件的請求,在規定的嚴格時間內完成對該事件的處理,并控制所有實時設備和實時任務協調一致工作的操作系統,其主要特點為對多任務的并行處理和對事件響應時間的確定[3]。
多任務并行處理體現在系統的多線程并行處理技術。針對每一個任務或子程序都設置一定的優先級,占有各自的CPU寄存器和棧空間。這樣,每個子程序變形成一個單獨的工作循環,有不同的運行狀態[4]。
事件響應確定性的主要性能特征為本身時間的精確性、循環周期及理論值和實際運行循環周期的差別。實時系統的時間確定性保證了重要任務的實際執行周期控制在每個抖動時間的誤差之內。
傳統的控制程序是線性程序,直觀,易于理解;程序的流向固定,缺乏靈活性,難以運用在復雜系統中。在單任務系統中,運行勵磁調節器軟件中的各功能模塊按順序執行,有時為了保證可靠性,在程序中運用大量的延時循環等待語句[5]。但是不同功能模塊對運行速率要求不同,對實際的反應時間要求也不同,如此浪費了很多CPU的資源和時間。
勵磁系統調節器是雙機冗余,互為主備。軟件功能包括系統初始化、輸入信號處理部分、調節控制部分和通信部分。輸入信號處理部分包括模擬量采集處理、數字量輸入輸出;調節控制部分是調節器的核心,不但要完成電壓調節、電流調節、恒無功調節等方式的要求,而且要完成大量的報警、限制功能和數據記錄存儲功能;通信系統包括雙機之間的通信與跟蹤,雙機分別與人機交互系統之間的通信,以及雙機和勵磁系統外部設備之間的通信。整個調節器控制程序是一個完整的定時循環,按照常規的機組運行狀態逐步運行,檢查判斷項跳轉,但是不可以越步驟執行[6]。也就是說,當后面的判斷條件更改時,需要逐步執行到此判斷條件的語句才可以生效。在勵磁系統運行中這是應該避免的,尤其是對故障或停機信號的響應。另外,為保證勵磁系統的運行可靠性,對外部輸入信號的檢測需要延時準確判斷,這又是對CPU資源的一種浪費。
在實時多任務系統中,程序的編寫比較靈活,分成各自獨立的任務,每個任務可獨立編寫,分配總資源,根據重要程度設置時間確定任務和優先級。總任務負責調度,執行順序比較靈活[7],不必在分任務中浪費CPU循環等待。程序的流向按照總調度的數據方向,根據設備的實際運行狀態相應調整,子程序不存在固定先后順序的問題。如有要求,程序的升級擴充相對比較簡單,只需更改相關的獨立模塊,不用去全面更改源程序的整體結構。實際勵磁設備運行中程序的調試也相對比較容易實現。實時多任務系統下勵磁調節器的軟件結構如圖1所示。
整體上按照設備的功能分為變量定義與映射、數據處理、與勵磁外設間通信、調節、限制保護報警五大部分,每部分有數個子任務。子程序按照獨立功能單獨編寫,總程序負責根據勵磁調節器的實際工況,按照規律調用子程序。在調節器控制循環的同時,各種限制、保護、報警等任務也在運行,出現異常可以及時響應。數據記錄在勵磁設備的運行中是十分重要的,可以并行于調控程序,而不必等待程序輪詢,這樣保證了運行和試驗的真實數據存檔。

圖1 實時多任務系統下勵磁調節器的軟件結構示意框圖
使用實時多任務系統來編制調節器軟件時,采用多任務并行處理的技術,需實現如下幾個重要功能。
1)時間確定性的實現。勵磁調節器功能繁多、相互影響,時間確定性的任務應該是勵磁設備實時性要求最關鍵的任務。在具體的勵磁調節器軟件設計中,三相電壓電流模擬信號的同步采樣處理、控制角計算、觸發脈沖的形成是要求時間確定性的[8]。模擬信號的采集處理,數字信號的輸入,與外設之間通信信號優先級次之;數字信號的輸出,數據存儲等較低優先級。這只是大致分類,具體每一個子任務雖然屬于一類模塊,但是優先級也不同。例如,數字信號的輸入輸出,根據不同的信號要劃分不同的響應優先級。
2)存儲映射的實現。勵磁調節器雙機主備,這就要求雙機的實時通信以及雙機與人機界面的信息交互,采用共享變量映射實現通訊功能,節省了硬件資源,提高了速率。再加上為了調試方便,各種狀態下要讀取狀態變量的值,這就要求軟件編制中將所有的物理量、計算量和中間變量定義出相應的機組數據庫。
實時多任務系統下編程分任務模塊編程,也可分模塊單獨測試。調節器程序中關鍵控制環節設置為時間確定性任務,可嚴格保證要求的時間精準性,其它多任務如通信、報警等并行運行,在系統資源分配合理的情況下,無程序中斷及延時等待。
本文根據實時多任務系統的特點和勵磁調節器的功能要求,分析了在勵磁調節器程序編制中的多任務并行的必要性,并且可保證重要控制程序的時間確定性。給出實時多任務系統中勵磁調節器軟件的設計框架和編制方法。經過實踐測試及分析,實時多任務系統中勵磁調節器軟件可以實現精準控制調節周期等功能,實現調節器可靠的多任務實時響應,較好地解決任務響應延遲、輸入信號需等待處理等問題。同時,在實際的框架搭建和編程中,由于任務劃分和總程序調度還有很大的難度和較大的優化空間,因此需要進一步的試驗和完善。
[1]楊開黎,石雨濤,劉軼男,等.大型靜止勵磁系統在非常規機組上的應用[J].黑龍江電力,2012,34(4):316 -318.
[2]李基成.現代同步發電機勵磁系統設計及應用[M].北京:中國電力出版社,2009:473.
[3]張旭.基于ARM的勵磁控制器數據采集系統設計[J].黑龍江電力,2012,34(2):106 -109.
[4]謝博,王德意,楊漢如,等.基于 TMS320F2812的同步發電機勵磁系統交流采樣技術[J].大電機技術,2005(3):19-22.
[5]吳二濤.汽輪發電機自并勵勵磁系統的設計及運行[J].湖北電力,2008(6):30-31.
[6]謝丹.靜止自并勵勵磁系統的設計方案的探討[J].電力建設,2003(12):32-34.
[7]尹耕欽.微機勵磁系統在水電站中的應用[J].自動化技術與應用,2009(12):103 -105.
[8]曾海波,黎雄.實時多任務內核在電力系統勵磁調節器中的應用[J].電力自動化設備,2002(8):35-38.