基于uC/OS-II的變頻器結構控制系統設計
本文介紹了抽油電機變頻器變結構控制系統功能原理,如何利用uC/OS-II的多任務功能實現控制系統的算法結構變換,操作系統的移植、多任務的建立和SDK下的軟件設計;最后總結了在應用中需注意的問題。
本文引用地址:http://www.104case.com/article/162488.htm在油田生產中為了節省電能并減小故障率,變頻器得到越來越多的應用。但由于油井負載的非周期大脈動性質,從能量的流向來看,變頻器有兩種運行狀態——電動運行和回饋制動。不同運行狀態的控制變量和控制方法是不同的,這就要采用所謂的變結構控制。本應用是實現抽油電機變頻驅動中的變結構控制,不同的控制結構通過任務間的切換實現。
系統控制核心采用DSP56F803,它是Motorola公司推出的16位DSP型微控制器,運算速度可達40MIPS,片內資源豐富,有強大的軟件支持,是嵌入式應用的理想選擇。本系統應用了其SPI、SCI、PWM、鍵盤中斷及通用I/O口等功能模塊。
1 系統設計
1.1 uC/OS-II的移植與配置
Motorola公司提供的軟件開發工具包SDK為使用uCC/OS-II做好了鋪墊工作,與硬件相關的文件OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C已經給出,只需購得系統源代碼,然后將其考入指定的文件目錄,系統的移植就完成了。本文采用最新版本uCC/OS-II V2.51。
系統移植成功后,需要對操作系統進行配置(裁剪),把用不到的功能去掉,以最大限度地節省存儲空間。這項工作是通過os_cfg.h中的宏定義進行的,本文只用到了多任務管理、信號量、互斥量等功能。在本應用中,uCC/OS-II內核經過剪裁后只有3KB左右,相對DSP56F803的32KB內部程序Flash只用了不到十分之一。需注意的另一個關鍵設置是時鐘節拍中斷頻率OS_TICKS_PER_SEC,它是系統多任務運行所依賴的時間基準,也決定了任務重復調用的最快頻率。這里缺省設為1000,要比文獻[3]中的推薦值高出一個數量級。但實際應用表明,DSP56F803以其高運算速度在這個設置下是完全勝任的。
1.2 系統功能
根據油田生產的要求,系統要實現以下功能:鍵盤輸入、參數顯示、三相電流采集、直流側電壓采集、溫度采集、變頻指令輸出以及保護等。系統對電流、電壓、溫度進行周期性采樣,采樣值經過數字信號處理,作為控制器的參數,最后由控制算法得出控制量,經PWM和D/A轉換器發送給變頻器,形成反饋閉環控制。系統運行過程中實時顯示電流、溫度等參數,并可以通過鍵盤對控制器進行參數在線設定。另外,高溫、過流等保護功能必不可少。系統原理如圖1。控制器根據直流側電容C上電壓的大小來確定以哪一種控制結構運行。當直流側電壓不超過設定值時,系統以電動狀態運行。超過設定值時要以回饋制動方式運行,要求兩種工作狀態要互鎖,切換要準確、及時。
1.3 任務的創建及變結構控制的實現
根據功能要求,本著盡量減少任務數以減輕CPU運行負擔的原則,本文設計了AD采集、電動運行、回饋制動和顯示四個任務。另外還設計了兩個中斷服務子程序:用PortA口的中斷功能實現8個鍵盤輸入,用外部中斷IrqA實現短路、過流、缺相保護功能。
每個任務都有自己的名稱、內存空間和優先級。不同的任務必須有不同的優先級,它們可以是0~62之間的任意值,數值越小優先級越高。優先級的設置有不同的依據,以本文為例,回饋運行任務對時間要求最苛刻,如果不能及時啟動或過早結束都會對變頻器造成危害,所以其優先級設為最高;AD采集任務運行最頻繁,必須為其它任務提供可靠的參數,優先級設為次高;電動運行任務是常規運行狀態,優先級低于AD采集任務;顯示任務只實現人機交互,顯示狀態和參數對控制器性能沒有直接影響,優先級設為最低。uCC/OS-II要求為每個任務分配OS_STK類型的堆棧空間,并且它們占用的RAM存儲空間必須是連續的。
評論