μC/OS-II系統(tǒng)與ARM在中央空調(diào)機(jī)組控制器中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著中央空調(diào)的普及應(yīng)用,如何對(duì)中央空調(diào)機(jī)組實(shí)施有效的控制,是許多科研人員研究的重要課題。目前國(guó)內(nèi)中央空調(diào)機(jī)組控制器硬件方面主要采用8位單片機(jī)為核心處理器,這種方式由于資源有限,導(dǎo)致人機(jī)交互不友好、機(jī)組的實(shí)時(shí)監(jiān)控性能低、整機(jī)運(yùn)轉(zhuǎn)難以實(shí)現(xiàn)多機(jī)組網(wǎng)聯(lián)控、節(jié)能效果差。采用RISC架構(gòu)的ARM微處理器具有小體積、低功耗、低成本、高性能的特點(diǎn),指令執(zhí)行速度快,執(zhí)行效率高,且具有豐富的片內(nèi)外圍電路,有利于簡(jiǎn)化系統(tǒng)設(shè)計(jì),提高系統(tǒng)可靠性。本控制系統(tǒng)選擇了Philips公司ARM7處理器LPC2210,移植了實(shí)時(shí)操作系統(tǒng)μC/OS-II,系統(tǒng)運(yùn)行穩(wěn)定可靠。
1 空調(diào)系統(tǒng)簡(jiǎn)介及控制要求
中央空調(diào)由集中制冷/加熱站和空調(diào)機(jī)組兩大部分組成。前者提供系統(tǒng)所需要的冷熱源,后者通過(guò)調(diào)節(jié)冷凍水/熱蒸汽的流量及空氣風(fēng)量來(lái)調(diào)節(jié)溫度,調(diào)節(jié)加濕閥來(lái)調(diào)節(jié)房間的濕度。機(jī)組的控制任務(wù)是自動(dòng)調(diào)節(jié)空氣溫濕度、風(fēng)速、送風(fēng)量及空氣的潔凈度。系統(tǒng)中所需檢測(cè)與控制的參量為:自動(dòng)檢測(cè)新風(fēng)、送風(fēng)、回風(fēng)及被控房間溫、濕度及正壓值,表冷器/加熱器的供、回水溫度;自動(dòng)檢測(cè)送、回風(fēng)機(jī)及故障報(bào)警;中低效過(guò)濾器壓差狀態(tài)及超差報(bào)警;根據(jù)室外空氣狀態(tài)和室內(nèi)正壓值自動(dòng)調(diào)節(jié)新風(fēng)、回風(fēng)、排風(fēng)閥開(kāi)度 ;根據(jù)被控參數(shù)及設(shè)定參數(shù)自動(dòng)調(diào)節(jié)表冷器、加濕器的電動(dòng)調(diào)節(jié)閥的開(kāi)度。
2 現(xiàn)場(chǎng)控制器硬件結(jié)構(gòu)
如圖1所示,整個(gè)系統(tǒng)可分為ARM處理器模塊、電源模塊、各總線接口模塊、存儲(chǔ)模塊、人機(jī)交互模塊、模擬量輸入輸出模塊及數(shù)字量輸入輸出模塊等。
主處理器選用Philips公司生產(chǎn)的ARM7芯片LPC2210,該芯片是基于支持實(shí)時(shí)仿真和跟蹤的ARM7TDMI-S CPU的微控制器,最高工作頻率可達(dá)60 MHz,內(nèi)部帶有16 KB RAM,多達(dá)122個(gè)通用I/O口(可承受5 V電壓),具有兩個(gè)帶16 B收發(fā)FIFO的UART,兩個(gè)完全獨(dú)立的同步串行接口SPI等豐富的外設(shè)。本系統(tǒng)中,存儲(chǔ)模塊由擴(kuò)展的2 MB NOR Flash(SST39VF160)與8 MB PSRAM(MT45W4MW16)構(gòu)成,分別使用LPC2210外部存儲(chǔ)器接口的Bank0和Bank1地址空間;人機(jī)交互模塊包含鍵盤(pán)和LCD兩部分,顯示和設(shè)置空調(diào)機(jī)組的運(yùn)行參數(shù)及狀態(tài)。控制器設(shè)有8個(gè)按鍵輸入,使用I2C接口的接盤(pán)與LED驅(qū)動(dòng)芯片ZLG7290進(jìn)行鍵盤(pán)掃描;從USB接口用于控制器與調(diào)試計(jì)算機(jī)的通信;控制平臺(tái)設(shè)計(jì)了以RTL8019AS芯片為核心的以太網(wǎng)接口電路,實(shí)現(xiàn)控制器與上位監(jiān)控級(jí)計(jì)算機(jī)之間的通信;CAN總線接口可用于現(xiàn)場(chǎng)設(shè)備的通信;ISP接口、JTAG口為程序下載調(diào)試接口;A/D模塊采用LPC2210自帶的8路10位ADC轉(zhuǎn)換器,檢測(cè)各路溫度及濕度模擬量的輸入,構(gòu)成反饋控制。D/A模塊的輸出信號(hào)作為比例放大器的輸入,控制各個(gè)調(diào)節(jié)閥門(mén)的開(kāi)度大小,實(shí)現(xiàn)風(fēng)量和流量控制。數(shù)字量輸入通道檢測(cè)風(fēng)機(jī)的運(yùn)行狀態(tài)及過(guò)濾網(wǎng)壓差報(bào)警信號(hào);數(shù)字量輸出通道輸出風(fēng)機(jī)、加濕器的開(kāi)關(guān)控制信號(hào)??刂破魍ㄟ^(guò)對(duì)整個(gè)空調(diào)系統(tǒng)新風(fēng)、回風(fēng)的溫濕度、送風(fēng)風(fēng)機(jī)運(yùn)行狀態(tài)、初中效過(guò)濾段的壓差等信號(hào)的采集,控制送風(fēng)風(fēng)機(jī)的變頻調(diào)速、加濕器的加濕、新風(fēng)及回風(fēng)閥門(mén)的開(kāi)度、冷熱水閥的開(kāi)度大小,以達(dá)到設(shè)定的空氣狀態(tài)。
3 現(xiàn)場(chǎng)控制單元的軟件設(shè)計(jì)
3.1 軟件層次與功能
控制器軟件由3部分組成:實(shí)時(shí)操作系統(tǒng)、硬件驅(qū)動(dòng)程序和運(yùn)行在操作系統(tǒng)之上的應(yīng)用程序。實(shí)時(shí)操作系統(tǒng)采用源碼公開(kāi)的μC/OS-II,基于其內(nèi)核擴(kuò)展的實(shí)時(shí)操作系統(tǒng)的整體結(jié)構(gòu)如圖2所示。
Bootloader的主要功能是初始化必要的硬件并啟動(dòng)操作系統(tǒng)。應(yīng)用軟件層實(shí)現(xiàn)中央空調(diào)的相關(guān)控制任務(wù),包括初始化任務(wù)、故障處理任務(wù)、數(shù)據(jù)通信任務(wù)、數(shù)據(jù)采集任務(wù)、機(jī)組控制任務(wù)及顯示任務(wù)。底層硬件設(shè)備控制驅(qū)動(dòng)層初始化微控制器與外圍部件管腳連接的配置,建立處理器與外圍功能電路之間的關(guān)聯(lián),與具體硬件電路相關(guān)。功能部件命令接口驅(qū)動(dòng)實(shí)現(xiàn)處理器各個(gè)功能模塊的運(yùn)作機(jī)制,如串口、SPI、CAN等模塊,該層函數(shù)由上兩層調(diào)用。功能部件協(xié)議實(shí)現(xiàn)層提供各功能模塊初始化函數(shù)、讀寫(xiě)函數(shù)以及中斷處理函數(shù)等。上兩層軟件設(shè)計(jì)與操作系統(tǒng)密切相關(guān),利用操作系統(tǒng)管理控制任務(wù)、實(shí)現(xiàn)任務(wù)間的數(shù)據(jù)交互通信和延時(shí)等。
3.2 移植μC/OS-II
LPC2210的ARM7TDMI-S內(nèi)核用ARM ADS1.2作為編譯器移植μC/OS-II。μC/OS-II的移植涉及到與處理器及編譯器相關(guān)的OS_CPU.H、OS_CPU_C.C和OS_CPU_A.S 3個(gè)文件。其包括以下內(nèi)容:(1)設(shè)置OS_CPU.H頭文件中與處理器和編譯器相關(guān)的代碼,如整數(shù)、浮點(diǎn)數(shù)、堆棧等數(shù)據(jù)類(lèi)型定義,打開(kāi)或者關(guān)閉中斷函數(shù)設(shè)置,定義堆棧增長(zhǎng)方向,任務(wù)切換的執(zhí)行代碼。(2)用C語(yǔ)言在OS_CPU_C.C文件中編寫(xiě)若干與操作系統(tǒng)相關(guān)函數(shù),如任務(wù)堆棧初始化函數(shù)OSTaskStkInit();μC/OS-II在執(zhí)行某些操作時(shí)調(diào)用的用戶函數(shù),如OSTaskCreateHook()、OS-TaskDelHook()、OSTaskSwHook()、OSTaskStatHook()和OS-TimeTickHook()等。(3)在OS_CPU.ASM文件中用匯編語(yǔ)言編寫(xiě)4個(gè)與處理器相關(guān)的函數(shù):運(yùn)行優(yōu)先級(jí)最高的就緒任務(wù)OSStartHighRdy()、任務(wù)級(jí)的任務(wù)切換函數(shù)OSCtxSw()和中斷級(jí)的任務(wù)切換函數(shù)OSIntCtxSw()和中斷服務(wù)函數(shù)OS-TickISR()。
3.3 應(yīng)用程序
在μC/OS-II中,應(yīng)用程序以任務(wù)形式存在,每個(gè)任務(wù)都是無(wú)限循環(huán)的,并處于以下五種狀態(tài)之一:休眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、掛起態(tài)和被中斷態(tài)[7]。根據(jù)中央空調(diào)的控制要求,本系統(tǒng)由以下幾個(gè)任務(wù)來(lái)實(shí)現(xiàn)。
(1)定義5個(gè)基本的信號(hào)量用于任務(wù)之間的同步:故障信號(hào)量、通信信號(hào)量、定時(shí)采集信號(hào)、機(jī)組控制信號(hào)量和顯示信號(hào)量。
(2)初始化任務(wù)Task_init()具有最高運(yùn)行優(yōu)先級(jí),優(yōu)先級(jí)Prio=10,該任務(wù)完成處理器I/O接口的初始化,向量中斷分配與設(shè)置,定時(shí)器初始化以及I2C、串口等基本功能部件的初始化工作,為后繼任務(wù)的運(yùn)行做準(zhǔn)備,只運(yùn)行一次。
(3)故障處理任務(wù)Task_error()為次優(yōu)先級(jí)任務(wù),優(yōu)先級(jí)Prio=11。當(dāng)獲得Data_err_sem信號(hào)后判斷機(jī)組故障的類(lèi)型,按照預(yù)先的設(shè)定進(jìn)行實(shí)時(shí)故障處理,并給出報(bào)警、提示故障原因。
(4)數(shù)據(jù)通信任務(wù)Task_comminication()的優(yōu)先級(jí)Prio=12,當(dāng)有數(shù)據(jù)傳送請(qǐng)求時(shí)便通過(guò)以太網(wǎng)與上位機(jī)進(jìn)行通信,完成命令及數(shù)據(jù)的傳送。
(5)數(shù)據(jù)采集任務(wù)Task_collect()優(yōu)先級(jí)Prio= 13,主要完成周期性地采集各路溫度模擬量、濕度頻率量和開(kāi)關(guān)量信號(hào)的輸入,為機(jī)組控制任務(wù)提供運(yùn)算數(shù)據(jù)。
(6)機(jī)組控制任務(wù)Task_control()是整個(gè)系統(tǒng)任務(wù)中的核心,優(yōu)先級(jí)Prio=14。當(dāng)獲得采集任務(wù)釋放的Data_Control_sem信號(hào)后,便對(duì)采集過(guò)來(lái)的各路溫濕度信號(hào)及開(kāi)關(guān)量信號(hào)進(jìn)行處理,輸出控制信號(hào),完成對(duì)各個(gè)調(diào)節(jié)閥的控制;且當(dāng)有故障發(fā)生時(shí)釋放故障信號(hào)量Data_err_sem。
(7)顯示任務(wù)Task_display()優(yōu)先級(jí)最低,Prio= 15。當(dāng)獲得顯示信號(hào)量Data_Display_sem時(shí)任務(wù)就緒,刷新機(jī)組當(dāng)前的設(shè)置參數(shù)及運(yùn)行狀態(tài)。
系統(tǒng)整體軟件流程圖如圖3所示。系統(tǒng)初始化后便建立各個(gè)運(yùn)行任務(wù),啟動(dòng)多任務(wù)調(diào)度機(jī)制,在各個(gè)同步信號(hào)的協(xié)調(diào)下有序運(yùn)行。
3.4 數(shù)據(jù)處理算法
在機(jī)組控制任務(wù)Task_control()中需要對(duì)采集過(guò)來(lái)的各路模擬量及數(shù)字量信號(hào)進(jìn)行處理,以得到合適的輸出控制信號(hào),選取何種處理方法直接關(guān)系到控制器的控制品質(zhì)。針對(duì)中央空調(diào)對(duì)象大慣性、大滯后、非線性等特性,常規(guī)PID控制無(wú)論在參數(shù)整定還是在控制精度或控制過(guò)程都存在不足。本系統(tǒng)采用基于T-S模型的模糊神經(jīng)網(wǎng)絡(luò)參數(shù)自整定PID控制方法,利用神經(jīng)網(wǎng)絡(luò)經(jīng)訓(xùn)練后可以逼近任意非線性關(guān)系特性,并綜合了PID控制與模糊控制各自的優(yōu)勢(shì)。圖4為控制系統(tǒng)結(jié)構(gòu)圖,模糊神經(jīng)網(wǎng)絡(luò)模塊根據(jù)誤差及其變換率實(shí)時(shí)地修改PID控制器的3個(gè)參數(shù),使其處于最優(yōu)狀態(tài)。圖5為基于T-S模型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖。
以溫控為例,網(wǎng)絡(luò)的輸入信號(hào)x1、x2分別是溫差及溫差變化率et、Δet,模糊論域分別定為[-20,20]、[-10,10],模糊子集均為:NB(負(fù)大)、NM(負(fù)中)、NS(負(fù)小)、ZE(零)、PS(正小)、PM(正中)、PB(正大),模糊規(guī)則49條,隸屬度函數(shù)為高斯函數(shù)。前件網(wǎng)絡(luò)輸入層直接將et、Δet送入到模糊化層計(jì)算其屬于各語(yǔ)言變量值模糊集合的隸屬度函數(shù),規(guī)則層采用求積法計(jì)算出每條規(guī)則的適用度[10]。后件網(wǎng)絡(luò)由3個(gè)結(jié)構(gòu)相同的并列子網(wǎng)絡(luò)組成,輸出PID控制器的3個(gè)控制參數(shù)kp、ki、kd。系統(tǒng)采集常規(guī)PID控制器工作時(shí)et、Δet輸入數(shù)據(jù)及控制參數(shù)為訓(xùn)練樣本,利用誤差反傳算法訓(xùn)練網(wǎng)絡(luò)參數(shù):連接權(quán)pkji、隸屬度函數(shù)中心值cij及寬度δij。試驗(yàn)記錄表明訓(xùn)練后的控制器的動(dòng)態(tài)特性與靜態(tài)特性均優(yōu)于傳統(tǒng)PID及單純模糊控制方法。
本中央空調(diào)現(xiàn)場(chǎng)控制器采用32位高性能ARM處理器,滿足了控制系統(tǒng)對(duì)實(shí)時(shí)監(jiān)控能力和組網(wǎng)通信能力的要求,簡(jiǎn)化了系統(tǒng)設(shè)計(jì)。嵌人式操作系統(tǒng)μC/OS-II的移植保證了系統(tǒng)的實(shí)時(shí)性,多任務(wù)運(yùn)行特性使所開(kāi)發(fā)的控制軟件運(yùn)行穩(wěn)定、可靠。