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