




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于C/OS-的變頻器變結(jié)構(gòu)控制系統(tǒng)設(shè)計(jì) 基于C/OS-的變頻器變結(jié)構(gòu)控制系統(tǒng)設(shè)計(jì),關(guān)鍵詞是基于,于,C,C,O,OS,S-,-,的,的變,變頻,頻器,器變,變結(jié),結(jié)構(gòu),構(gòu)控,控制,制系,系統(tǒng),統(tǒng)設(shè),設(shè)計(jì),計(jì), 摘要:介紹了抽油電機(jī)變頻器變結(jié)構(gòu)控制系統(tǒng)功能原理,如何利用C/OS-II的多任務(wù)功能實(shí)現(xiàn)控制系統(tǒng)的算法結(jié)構(gòu)變換,操作系統(tǒng)的移植、多任務(wù)的建立和SDK
2、下的軟件設(shè)計(jì);最后總結(jié)了在應(yīng)用中需注意的問(wèn)題。 關(guān)鍵詞:C/OS- 多任務(wù) DSP56P803 變結(jié)構(gòu)控制在油田生產(chǎn)中為了節(jié)省電能并減小故障率,變頻器得到越來(lái)越多的應(yīng)用。但由于油井負(fù)載的非周期大脈動(dòng)性質(zhì),從能量的流向來(lái)看,變頻器有兩種運(yùn)行狀態(tài)電動(dòng)運(yùn)行和回饋制動(dòng)。不同運(yùn)行狀態(tài)的控制變量和控制方法是不同的,這就要采用所謂的變結(jié)構(gòu)控制。本應(yīng)用是實(shí)現(xiàn)抽油電機(jī)變頻驅(qū)動(dòng)中的變結(jié)構(gòu)控制,不同的控制結(jié)構(gòu)通過(guò)任務(wù)間的切換實(shí)現(xiàn)。系統(tǒng)控制核心采用DSP56F803,它是Motorola公司推出的16位DSP型微控制器,運(yùn)算速度可達(dá)40MIPS,片內(nèi)資源豐富,有強(qiáng)大的軟件支持,是
3、嵌入式應(yīng)用的理想選擇。本系統(tǒng)應(yīng)用了其SPI、SCI、PWM、鍵盤中斷及通用I/O口等功能模塊。1 系統(tǒng)設(shè)計(jì)1.1 C/OS-的移植與配置系統(tǒng)移植成功后,需要對(duì)操作系統(tǒng)進(jìn)行配置(裁剪),把用不到的功能去掉,以最大限度地節(jié)省存儲(chǔ)空間。這項(xiàng)工作是通過(guò)os_cfg.h中的宏定義進(jìn)行的,本文只用到了多任務(wù)管理、信號(hào)量、互斥量等功能。在本應(yīng)用中,C/OS-內(nèi)核經(jīng)過(guò)剪裁后只有3KB左右,相對(duì)DSP56F803的32KB內(nèi)部程序Flash只用了不到十分之一。需注意的另一個(gè)關(guān)鍵設(shè)置是時(shí)鐘節(jié)拍中斷頻率Os_TICKS_PER_SEC,它是系統(tǒng)多任務(wù)運(yùn)行所依賴的時(shí)間基準(zhǔn),也決定了任務(wù)重復(fù)調(diào)用的最快頻率。這里缺省設(shè)為
4、1000,要比文獻(xiàn)3中的推薦值高出一個(gè)數(shù)量級(jí)。但實(shí)際應(yīng)用表明,DSP56F803以其高運(yùn)算速度在這個(gè)設(shè)置下是完全勝任的。1.2 系統(tǒng)功能根據(jù)油田生產(chǎn)的要求,系統(tǒng)要實(shí)現(xiàn)以下功能:鍵盤輸入、參數(shù)顯示、三相電流采集、直流側(cè)電壓采集、溫度采集、變頻指令輸出以及保護(hù)等。系統(tǒng)對(duì)電流、電壓、溫度進(jìn)行周期性采樣,采樣值經(jīng)過(guò)數(shù)字信號(hào)處理,作為控制器的參數(shù),最后由控制算法得出控制量,經(jīng)PWM和D/A轉(zhuǎn)換器發(fā)送給變頻器,形成反饋閉環(huán)控制。系統(tǒng)運(yùn)行過(guò)程中實(shí)時(shí)顯示電流、溫度等參數(shù),并可以通過(guò)鍵盤對(duì)控制器進(jìn)行參數(shù)在線設(shè)定。另外,高溫、過(guò)流等保護(hù)功能必不可少。系統(tǒng)原理如圖1。控制器根據(jù)直流側(cè)電容C上電壓的大小來(lái)確定以哪一種
5、控制結(jié)構(gòu)運(yùn)行。當(dāng)直流側(cè)電壓不超過(guò)設(shè)定值時(shí),系統(tǒng)以電動(dòng)狀態(tài)運(yùn)行。超過(guò)設(shè)定值時(shí)要以回饋制動(dòng)方式運(yùn)行,要求兩種工作狀態(tài)要互鎖,切換要準(zhǔn)確、及時(shí)。1.3 任務(wù)的創(chuàng)建及變結(jié)構(gòu)控制的實(shí)現(xiàn)根據(jù)功能要求,本著盡量減少任務(wù)數(shù)以減輕CPU運(yùn)行負(fù)擔(dān)的原則,本文設(shè)計(jì)了AD采集、電動(dòng)運(yùn)行、回饋制動(dòng)和顯示四個(gè)任務(wù)。另外還設(shè)計(jì)了兩個(gè)中斷服務(wù)子程序:用PortA口的中斷功能實(shí)現(xiàn)8個(gè)鍵盤輸入,用外部中斷IrqA實(shí)現(xiàn)短路、過(guò)流、缺相保護(hù)功能。每個(gè)任務(wù)都有自己的名稱、內(nèi)存空間和優(yōu)先級(jí)。不同的任務(wù)必須有不同的優(yōu)先級(jí),它們可以是062之間的任意值,數(shù)值越小優(yōu)先級(jí)越高。優(yōu)先級(jí)的設(shè)置有不同的依據(jù),以本文為例,回饋運(yùn)行任務(wù)對(duì)時(shí)間要求最苛刻,
6、如果不能及時(shí)啟動(dòng)或過(guò)早結(jié)束都會(huì)對(duì)變頻器造成危害,所以其優(yōu)先級(jí)設(shè)為最高;AD采集任務(wù)運(yùn)行最頻繁,必須為其它任務(wù)提供可靠的參數(shù),優(yōu)先級(jí)設(shè)為次高;電動(dòng)運(yùn)行任務(wù)是常規(guī)運(yùn)行狀態(tài),優(yōu)先級(jí)低于AD采集任務(wù);顯示任務(wù)只實(shí)現(xiàn)人機(jī)交互,顯示狀態(tài)和參數(shù)對(duì)控制器性能沒(méi)有直接影響,優(yōu)先級(jí)設(shè)為最低。C/OS-要求為每個(gè)任務(wù)分配OS_STK類型的堆棧空間,并且它們占用的RAM存儲(chǔ)空間必須是連續(xù)的。任務(wù)延時(shí)是指任務(wù)執(zhí)行完畢處于掛起等待狀態(tài)到下一次重新運(yùn)行之間的時(shí)間間隔,它的單位是時(shí)鐘中斷節(jié)拍。由于OS_TICKS_PER_SEC為1000,每一拍為lms。每個(gè)任務(wù)的調(diào)用間隔不能小于一個(gè)節(jié)拍,它將影響模擬量的采樣頻率。各個(gè)任務(wù)
7、的屬性定義如表1所示。表1 各個(gè)任務(wù)的屬性定義 任務(wù)名稱優(yōu)先級(jí)內(nèi)存空間(字)延時(shí)(節(jié)拍)任務(wù)功能Task_FEBACK12801回饋運(yùn)行Task_AD131201AD采集Task_NORAML14802電動(dòng)運(yùn)行Task_SHOW151005實(shí)時(shí)顯示1.4 任務(wù)間的通信各個(gè)任務(wù)是通過(guò)搶占CPU的使用權(quán)來(lái)運(yùn)行的,它們之間存在一定的邏輯關(guān)系,彼此互相聯(lián)系又互相制約。信號(hào)量、郵箱、消息隊(duì)列等功能為實(shí)現(xiàn)任務(wù)間通信提供了有力工具,它們的使用方法靈活多變,如用信號(hào)量設(shè)置事件標(biāo)志,喚醒任務(wù)、用郵箱在任務(wù)間傳遞參數(shù)、用消息隊(duì)列的循環(huán)尋址功能進(jìn)行模擬通道的數(shù)據(jù)采集等
8、。本文設(shè)計(jì)了兩個(gè)信號(hào)量,在系統(tǒng)運(yùn)行開(kāi)始后,任務(wù)TASK_AD檢測(cè)直流側(cè)電壓的大小。當(dāng)電壓未超過(guò)設(shè)定值時(shí),發(fā)出信號(hào)DC_NORM喚醒任務(wù)Task_NORMAL;當(dāng)電壓高出設(shè)定值時(shí),發(fā)出信號(hào)DC_OVER喚醒任務(wù)Task_FEBACK。雖然這兩個(gè)任務(wù)基于不同的控制結(jié)構(gòu),采用不同的算法,但都要使用PWM輸出和SPI通信口,所以在喚醒一個(gè)任務(wù)的同時(shí)必須讓另外一個(gè)任務(wù)掛起。這里引入了互斥型信號(hào)量T_MUTEX實(shí)現(xiàn)這個(gè)功能。得到T_MUTEX信號(hào)的任務(wù)將獨(dú)自占有共享資源的使用權(quán),兩個(gè)任務(wù)不會(huì)因資源沖突而同時(shí)掛起,解決了任務(wù)間優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題,避免了系統(tǒng)功能失效。任務(wù)間邏輯關(guān)系如圖2所示。操作系統(tǒng)為任務(wù)間通信
9、提供了多種途徑,但最簡(jiǎn)單有效的方法是共享全局變量。本文使用共享全局變量的方法實(shí)現(xiàn)了顯示任務(wù)與鍵盤中斷服務(wù)之間的通信,代碼如下:鍵盤中斷:static void KeyboardISR(void)UWoMl6 cpu_sr;OS_ENTER_CRITICAL();/臨界區(qū)代碼保護(hù)asmmove X:$0FB7,A1 /讀鍵盤中斷狀態(tài)表move A1,state1 /將中斷狀態(tài)放入全局變量;OS_EXIT_CRITICAL(); /臨界區(qū)代碼保護(hù)結(jié)束這里statel是全局變量,鍵盤中斷的工作僅僅是將PORTA口中斷狀態(tài)寄存器(IESR,地址$0FB8) 讀入statel中。為防止其他任務(wù)在此期間對(duì)
10、statel的修改,使用了臨界區(qū)代碼保護(hù)。顯示任務(wù)的部分代碼:switch(statel)case 1: /PTA_0對(duì)應(yīng)的鍵被按下 /相應(yīng)的服務(wù)程序,略case 128: /PTA_7對(duì)應(yīng)的鍵被按下break;asmmove$00,X:$OFB8; /清鍵盤中斷狀態(tài),以備下次中斷顯示任務(wù)中采用多分支結(jié)構(gòu),根據(jù)statel=2n,(n=0,1,2,3,4,5,6,7),不同的值代表不同的鍵被按下,程序進(jìn)行相應(yīng)的處理;最后將IESR寄存器清零。用同樣的方法,兩位之間互相組合可擴(kuò)展形成16個(gè)按鍵。這樣只用一個(gè)全局變量就完成了中斷與任務(wù)間的通信,程序用內(nèi)嵌匯編的C來(lái)寫,簡(jiǎn)捷高效。2 系統(tǒng)設(shè)計(jì)中需注意
11、的問(wèn)題首先是存儲(chǔ)器分配問(wèn)題。多任務(wù)、郵箱等功能的使用會(huì)增加RAM的額外開(kāi)銷,在不擴(kuò)展外部RAM的情況下,可用的只有片內(nèi)2KB數(shù)據(jù)RAM和512字的程序RAM,資源相對(duì)有限,存儲(chǔ)空間的合理分配就顯得很重要。任務(wù)堆棧所占用的RAM空間要根據(jù)實(shí)際應(yīng)用來(lái)確定,必須考慮任務(wù)調(diào)用的嵌套情況、任務(wù)中函數(shù)為局部變量所分配的內(nèi)存數(shù)目。另外,它必須能保存DSR的所有22個(gè)寄存器和16個(gè)存儲(chǔ)器字。如果為任務(wù)分配的存儲(chǔ)空間富余過(guò)多則造成資源緊張,甚至?xí)騼?nèi)存溢出導(dǎo)致系統(tǒng)崩潰。解決方法是調(diào)用系統(tǒng)函數(shù)OSTaskStkChk(),它可以檢測(cè)每個(gè)任務(wù)運(yùn)行時(shí)使用的內(nèi)存大小,為合理分配內(nèi)存空間提供了依據(jù)。另外,可采用一些簡(jiǎn)化方
12、法節(jié)省RAM空間。例如SDK為AD采集的每個(gè)通道都定義一個(gè)結(jié)構(gòu)體,它包括三個(gè)元素:句柄、數(shù)值長(zhǎng)度和采樣值;如果使用五路AD采集,就得定義五個(gè)結(jié)構(gòu)體。通常不進(jìn)行初始化,DSP內(nèi)核在運(yùn)行時(shí)將它們放入RAM空間,占用RAM較多。通常關(guān)心的只是采樣值一個(gè)元素,其他兩個(gè)只完成輔助功能。如果使用一個(gè)存放采樣值的變量代替這個(gè)結(jié)構(gòu)體,或直接采用匯編語(yǔ)言寫這段代碼,就可大幅度地節(jié)省RAM空間。本文的AD采集程序就是用匯編完成。SDK沒(méi)有提供在DSP56F803下使用SPI函數(shù)的例程。仿照在807中的成功應(yīng)用,筆者調(diào)用spiWfite()函數(shù),通過(guò)SPI驅(qū)動(dòng)D/A轉(zhuǎn)換芯片。但在編譯連接時(shí)出現(xiàn)系統(tǒng)錯(cuò)誤,數(shù)據(jù)類型unsigned short與const void不匹配,在const.c中將spi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年注冊(cè)會(huì)計(jì)師職場(chǎng)挑戰(zhàn)及試題及答案
- 2025年證券業(yè)務(wù)合規(guī)管理考題及答案
- 注會(huì)內(nèi)部控制體系試題及答案
- 職業(yè)生涯與微生物檢驗(yàn)實(shí)踐試題及答案
- 細(xì)胞培養(yǎng)技術(shù)在檢驗(yàn)中的重要性試題及答案
- 課程建設(shè)課題申報(bào)書
- 2025年證券從業(yè)資格證多元學(xué)習(xí)試題及答案
- 注冊(cè)會(huì)計(jì)師各科目交叉復(fù)習(xí)技巧試題及答案
- 保安工作總結(jié)計(jì)劃護(hù)理行業(yè)保安工作的安全護(hù)理
- 2025年證券從業(yè)資格證考試策略總結(jié)試題及答案
- 2024國(guó)家能源集團(tuán)新疆哈密能源化工有限公司社會(huì)招聘110人筆試參考題庫(kù)附帶答案詳解
- 糖尿病飲食與護(hù)理
- 2025年天津市河?xùn)|區(qū)中考一模歷史試題(原卷版+解析版)
- 《基于STM32的智能水質(zhì)檢測(cè)系統(tǒng)的設(shè)計(jì)》9400字(論文)
- 公路養(yǎng)護(hù)員工安全教育培訓(xùn)
- 重慶大渡口區(qū)公安分局輔警招聘考試真題2024
- 醫(yī)療護(hù)理技術(shù)操作規(guī)程
- 2025年教師國(guó)際交流合作計(jì)劃
- 水泥廠危險(xiǎn)源辨識(shí)及風(fēng)險(xiǎn)評(píng)價(jià)表 (一)
- 智能建造技術(shù)在橋梁施工中的應(yīng)用
- 西門子S7-1500PLC技術(shù)及應(yīng)用課件:S7-1500 PLC 基本指令系統(tǒng)
評(píng)論
0/150
提交評(píng)論