基于嵌入式的溫濕度模糊控制系統(tǒng)的實(shí)現(xiàn)
1 引言
大多數(shù)工業(yè)環(huán)境溫濕度控制系統(tǒng)都是基于有線網(wǎng)絡(luò)的,監(jiān)控程序運(yùn)行于PC機(jī)上,監(jiān)控人員需要在固定的監(jiān)控室內(nèi)進(jìn)行溫濕度等參數(shù)的監(jiān)控.這樣的應(yīng)用模式存在如下問(wèn)題,一是監(jiān)控節(jié)點(diǎn)位置固定,可移動(dòng)性差;二是布線受環(huán)境限制,通信故障查找困難.這在一定程度上給溫濕度的實(shí)時(shí)監(jiān)控帶來(lái)了不小的麻煩.因此,有必要利用嵌入式技術(shù)在PDA上實(shí)現(xiàn)溫濕度模糊控制系統(tǒng),這樣就可以做到隨時(shí)隨地進(jìn)行溫濕度參數(shù)的監(jiān)控了.另外,目前的工業(yè)環(huán)境溫濕度控制系統(tǒng)大都不支持帶有模糊控制條件的參數(shù)設(shè)置,如濕度“大約在50度左右”或“高溫狀態(tài)”.因此,PDA端的溫濕度模糊控制系統(tǒng)需要能接收和處理類(lèi)似于這樣的模糊控制條件.文章對(duì)溫濕度模糊控制系統(tǒng)的系統(tǒng)構(gòu)成、模糊控制條件規(guī)則轉(zhuǎn)換以及PDA端的嵌入式軟件開(kāi)發(fā)技術(shù)進(jìn)行了深入研究.
文章的組織結(jié)構(gòu)如下,第2節(jié)介紹溫濕度模糊控制系統(tǒng)的系統(tǒng)結(jié)構(gòu)和功能模塊;第3節(jié)研究模糊控制條件轉(zhuǎn)換規(guī)則;第4節(jié)介紹PDA端嵌入式軟件的關(guān)鍵實(shí)現(xiàn)技術(shù);第5節(jié)總結(jié)全文.
2 系統(tǒng)硬件結(jié)構(gòu)和功能
2.1 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)的整體架構(gòu)分為兩個(gè)層次,上層是數(shù)據(jù)存儲(chǔ)與監(jiān)控系統(tǒng),由PDA、AP(無(wú)線接入點(diǎn))、數(shù)據(jù)庫(kù)服務(wù)器構(gòu)成,利用IEEE802.11b無(wú)線網(wǎng)絡(luò)技術(shù)和無(wú)線設(shè)備構(gòu)成無(wú)線局域網(wǎng)絡(luò).PDA通過(guò)AP和數(shù)據(jù)中轉(zhuǎn)服務(wù)系統(tǒng)與數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行實(shí)時(shí)數(shù)據(jù)交互,監(jiān)測(cè)和控制各監(jiān)測(cè)點(diǎn)的溫濕度參數(shù).上位機(jī)采用性能較高的PC機(jī)(必要時(shí)可采用集群技術(shù)保障數(shù)據(jù)的安全)、操作系統(tǒng)為Windows 2000Server,上位機(jī)和PDA利用所建立的模糊控制條件轉(zhuǎn)換規(guī)則對(duì)檢測(cè)點(diǎn)環(huán)境進(jìn)行智能控制.下層是數(shù)據(jù)采集與控制系統(tǒng),由溫濕度采集器、數(shù)字化溫濕度傳感器,變頻器等組成.溫濕度傳感器和測(cè)量模塊用“1-wire Bus”方式進(jìn)行連接,測(cè)量模塊與上位機(jī)采用RS-485總線實(shí)現(xiàn)遠(yuǎn)程通訊.下位機(jī)選用智能模塊LTM8303, LTM8600等直接面向被控對(duì)象,通過(guò)傳感器DS1820/DS18B20等組成測(cè)溫電纜,對(duì)溫濕度等參數(shù)進(jìn)行實(shí)時(shí)檢測(cè).
系統(tǒng)采用兩級(jí)通訊網(wǎng)絡(luò)連接.一級(jí)由上位機(jī)通過(guò)SIMATIC S7-200隔離型RS-232/485轉(zhuǎn)換模塊組成RS 485分布式測(cè)控網(wǎng),LTM8903和LTM8600智能模塊作為子站;另一級(jí)為“1-wire Bus”網(wǎng),LTM8903智能模塊作為采集中心,測(cè)量線纜上的數(shù)字化溫濕度傳感器探頭作為子站,探頭選用Dallas半導(dǎo)體公司數(shù)字化溫度傳感器DS1820/DS18B20;LTM8600模塊為采集中心和控制中心,在保持與上位機(jī)通訊的同時(shí)采集溫度,濕度等參數(shù),并接收上位機(jī)的控制信號(hào)通過(guò)變頻器控制風(fēng)機(jī),空調(diào),水泵等執(zhí)行機(jī)構(gòu)[1].系統(tǒng)的硬件總體結(jié)構(gòu)如圖1所示.
圖1 系統(tǒng)硬件總體結(jié)構(gòu)圖
2.2 功能模塊
PDA端嵌入式軟件:采用嵌入式和無(wú)線通信技術(shù),與數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行實(shí)時(shí)數(shù)據(jù)交互,通過(guò)模糊控制條件轉(zhuǎn)換程序監(jiān)測(cè)和設(shè)置各監(jiān)測(cè)點(diǎn)的溫濕度參數(shù).當(dāng)現(xiàn)場(chǎng)監(jiān)控點(diǎn)的溫濕度參數(shù)超標(biāo)時(shí),提供報(bào)警功能.
數(shù)據(jù)中轉(zhuǎn)模塊:發(fā)送/接收數(shù)據(jù).從數(shù)據(jù)庫(kù)中提取PDA端所需數(shù)據(jù),構(gòu)造數(shù)據(jù)包,經(jīng)由WLAN發(fā)送給該終端;解析來(lái)自PDA端的溫濕度參數(shù)數(shù)據(jù)包,并寫(xiě)入數(shù)據(jù)庫(kù).同時(shí),該模塊還提供日志功能,記錄何時(shí)哪臺(tái)PDA設(shè)置了那些參數(shù).
上位機(jī)控制系統(tǒng):與下位機(jī)和PDA進(jìn)行數(shù)據(jù)交互,接收來(lái)自PDA端的溫濕度控制參數(shù),形成控制信號(hào)發(fā)送給下位機(jī);同時(shí),接收來(lái)自下位機(jī)所采集的溫濕度參數(shù),提交給數(shù)據(jù)庫(kù)和PDA;同時(shí),也具有對(duì)各監(jiān)測(cè)點(diǎn)實(shí)行集中監(jiān)控,管理以及數(shù)據(jù)統(tǒng)計(jì)等功能.
參數(shù)采集控制模塊:采集溫度,濕度參數(shù),發(fā)送給上位機(jī); 接收上位機(jī)的控制信號(hào),對(duì)各風(fēng)機(jī),空調(diào),水泵等設(shè)備通過(guò)變頻器實(shí)施控制.
3 模糊控制系統(tǒng)設(shè)計(jì)
3.1模糊集基本理論
可見(jiàn),一個(gè)模糊數(shù)的l-截集對(duì)應(yīng)一個(gè)區(qū)間.如,令A為論域U上的模糊數(shù), 模糊數(shù)A的l-截集為 .
2.2輸入變量和輸出變量
工業(yè)環(huán)境中,溫濕度參數(shù)通常處于一個(gè)數(shù)值范圍之內(nèi),而不是一個(gè)精確值.
在控制現(xiàn)場(chǎng)溫濕度參數(shù)時(shí),所需設(shè)定的溫濕度精確值和閾值作為輸入變量,經(jīng)過(guò)相應(yīng)的隸屬函數(shù)進(jìn)行處理,得到的溫度控制范圍和濕度控制范圍作為輸出變量.閾值作為對(duì)溫濕度變化范圍的允許程度,由監(jiān)控者根據(jù)實(shí)際需要進(jìn)行設(shè)定,通過(guò)調(diào)整閾值,可以使現(xiàn)場(chǎng)的溫濕度控制在模糊控制和精確控制之間變換.當(dāng)閾值為1時(shí),為精確控制,即溫濕度參數(shù)是一個(gè)確定值;當(dāng)閾值為0~1之間的數(shù)值時(shí),溫濕度參數(shù)為一個(gè)數(shù)值區(qū)間,閾值越小,區(qū)間范圍越大.
在監(jiān)測(cè)現(xiàn)場(chǎng)溫濕度參數(shù)時(shí),下位機(jī)采集到的現(xiàn)場(chǎng)溫濕度參數(shù)傳送到上位機(jī)和PDA,這時(shí)溫度參數(shù)和濕度參數(shù)作為輸入變量,通過(guò)模糊控制轉(zhuǎn)換模塊,利用隸屬函數(shù)分別計(jì)算現(xiàn)場(chǎng)采集的溫濕度參數(shù)隸屬度.若隸屬度超出所設(shè)定的閾值,則報(bào)警;否則,認(rèn)為正常.
2.3模糊控制條件轉(zhuǎn)換
工業(yè)環(huán)境中,許多控制條件都是模糊的,如濕度“大約在50度左右”或溫度要求處于“高溫狀態(tài)”.而這些模糊控制條件在計(jì)算機(jī)進(jìn)行處理時(shí),需要轉(zhuǎn)換成確定值或確定的區(qū)間.下面主要探討溫濕度控制中經(jīng)常出現(xiàn)的幾個(gè)模糊控制條件的轉(zhuǎn)換規(guī)則,具體包括“接近于(大約為)某個(gè)值”,“不超過(guò)某個(gè)值”,“不低于某個(gè)值”.
在PDA上設(shè)置模糊控制條件,如溫度要求處于“高溫狀態(tài)”,模糊控制轉(zhuǎn)換器需要根據(jù)監(jiān)控者設(shè)置的閾值將該模糊控制條件轉(zhuǎn)換成一個(gè)確定的溫度數(shù)值控制區(qū)間.根據(jù)工業(yè)環(huán)境的領(lǐng)域知識(shí),可以得到模糊數(shù)“高溫狀態(tài)”的隸屬函數(shù), 定義為:
(7)
假設(shè)l取值為0.9,監(jiān)測(cè)點(diǎn)溫度的值域?yàn)閇0,1000],則“高溫狀態(tài)”的0.9截集運(yùn)算結(jié)果為[600,1000],即在這個(gè)區(qū)間的溫度,都可視為高溫狀態(tài).模糊控制條件“高溫狀態(tài)”的0.9截集如圖3所示:
現(xiàn)在考慮模糊控制條件, 濕度“大約在Y度左右”,根據(jù)文獻(xiàn)[3],模糊數(shù)“接近(大約)Y”的隸屬函數(shù)在論域上的定義為:
假設(shè)模糊控制條件為“濕度大約在50度左右”,l取值為0.9,監(jiān)測(cè)點(diǎn)濕度的值域?yàn)閇10,100],那么,“濕度大約在50度左右”的0.9截集運(yùn)算結(jié)果為[47,53],即在這個(gè)區(qū)間的濕度,都可視為正常濕度.模糊控制條件“濕度大約在50度左右”的0.9截集如圖4所示
圖3 模糊控制條件“高溫狀態(tài)”的0.9截集圖
4 模糊控制條件“濕度大約在50度左右”的0.9截集
現(xiàn)在考慮模糊控制條件, 溫度或濕度“不超過(guò)Y”,它的隸屬函數(shù)在論域上的定義為:
假設(shè)模糊控制條件為“溫度不超過(guò)500度”,l取值為0.9,監(jiān)測(cè)點(diǎn)溫度的值域?yàn)閇300,800],那么, “溫度不超過(guò)500度”的0.9截集運(yùn)算結(jié)果為[300,530],即在這個(gè)區(qū)間的溫度,都可視為正常溫度.模糊控制條件“溫度不超過(guò)500度”的0.9截集如圖5所示.
現(xiàn)在考慮模糊控制條件, 溫度或濕度“不低于Y”,它的隸屬函數(shù)在論域上的定義為:
假設(shè)模糊控制條件為“濕度不低于40度”,l取值為0.9,監(jiān)測(cè)點(diǎn)濕度的值域?yàn)閇10,100],那么, “濕度不低于40度”的0.9截集運(yùn)算結(jié)果為[37,100],即在這個(gè)區(qū)間的濕度,都可視為正常濕度.模糊控制條件“濕度不低于40度”的0.9截集如圖6所示.
圖5 模糊控制條件“溫度不超過(guò)500度”的0.9截集
圖6 模糊控制條件“濕度不低于40度”的0.9截集
3 嵌入式軟件關(guān)鍵技術(shù)
本文利用嵌入式技術(shù)在PDA上實(shí)現(xiàn)了溫濕度模糊控制系統(tǒng),開(kāi)發(fā)模式不同于傳統(tǒng)的應(yīng)用軟件.下面就以本系統(tǒng)的PDA端嵌入式軟件開(kāi)發(fā)為例,說(shuō)明其開(kāi)發(fā)模式和關(guān)鍵技術(shù).
3.1嵌入式操作系統(tǒng)和圖形系統(tǒng)
對(duì)于嵌入式操作系統(tǒng),有Vxwork、VRTX、pSOS、
Palm OS、Neculeus和Windows CE.但這些專(zhuān)用操作系統(tǒng)都是商業(yè)化產(chǎn)品,其價(jià)格昂貴,不適合低端嵌入式產(chǎn)品開(kāi)發(fā).而且,源代碼封閉性很大程度上限制了開(kāi)發(fā)者的開(kāi)發(fā).嵌入式Linux操作系統(tǒng)彌補(bǔ)了上述不足,Linux操作系統(tǒng)是遵循GPL公約,并且有運(yùn)行穩(wěn)定、源碼開(kāi)放的特點(diǎn),被認(rèn)為是未來(lái)嵌入式操作系統(tǒng)的最佳選擇.
MiniGUI是由原清華大學(xué)教授魏永明主持開(kāi)發(fā)的輕量級(jí)圖形系統(tǒng),現(xiàn)遵循GPL公約.能跨多種操作系統(tǒng),主要運(yùn)行于linux及一切具有POSIX線程支持的POSIX兼容系統(tǒng),包括普通嵌入式Linux、eCos、uC/OS-II、VxWorks 等系統(tǒng).MiniGUI的主要特點(diǎn)有:
遵循GPL條款的純自由軟件;提供了完備的多窗口機(jī)制;多字符集和多字體支持,目前支持ISO8859-1、GB2312及Big5 等字符集,并且支持各種光柵字體和 TrueType、Type 1 等矢量字體;全拼和五筆等漢字輸入法支持;BMP、GIF、JPEG及PCX 等常見(jiàn)圖像文件的支持;Windows的資源文件支持,如位圖、圖標(biāo)、光標(biāo)、插入符、定時(shí)器及加速鍵等;可移植性好.
3.2 MiniGUI的移植
本文MiniGUI移植目標(biāo)系統(tǒng)為:XScale PXA255處理器,Linux2.4.18操作系統(tǒng).交叉編譯工具:arm-linux-gcc 2.95.3版,MiniGUI版本:1.3.0,主機(jī)系統(tǒng)為:Fedora Core 1 Linux.
MiniGUI的移植通過(guò)如下步驟:
1)安裝交叉編譯工具: arm-linux-gcc 2.95.3
2)建立掛裝目錄,實(shí)現(xiàn)主機(jī)與目標(biāo)機(jī)的連接
3)安裝Minigui資源文件:Minigui-res-1.3.0.tar.gz
4)配置Minigui交叉編譯腳本
5)移植Minigui庫(kù)文件和實(shí)例程序
3.3嵌入式軟件實(shí)現(xiàn)
在開(kāi)發(fā)基于MiniGUI的嵌入式軟件時(shí),先將mde-1.3.0中的configure.in、autogen.sh以及腳本arm-complier拷貝到項(xiàng)目開(kāi)發(fā)目錄中并修改confiugre.in在AC_INIT(<參數(shù)>),將<參數(shù)>改為項(xiàng)目主程序源文件名(如:main.c),將AC_OUTPUT(<參數(shù)>)中<參數(shù)>改為Makefile,編寫(xiě)Makefile.am 即可.執(zhí)行./autogen.sh; ./arm-complier; make即可交叉編譯項(xiàng)目程序.
然后,更改MiniGUI的配置文件MiniGUI.cfg設(shè)置設(shè)備驅(qū)動(dòng)程序,設(shè)置顯示區(qū)域及字體等內(nèi)容.
如觸摸屏驅(qū)動(dòng)設(shè)置(在MiniGUI.cfg中設(shè)置):
# IAL engine
ial_engine=UCB1X00 //驅(qū)動(dòng)引擎名稱(chēng)
mdev=/dev/touchscreen/0raw //驅(qū)動(dòng)程序所在位置
mtype=
3.4源程序的交叉編譯
當(dāng)主機(jī)系統(tǒng)(開(kāi)發(fā)應(yīng)用程序的系統(tǒng))和目標(biāo)主機(jī)(應(yīng)用程序?qū)⒃谄渖线\(yùn)行的系統(tǒng))不兼容時(shí),需要在主機(jī)上通過(guò)交叉編譯工具編譯出目標(biāo)系統(tǒng)可以運(yùn)行的程序,這個(gè)過(guò)程叫做交叉編譯.GNU編譯器(GCC)是Linux系統(tǒng)中的一個(gè)強(qiáng)有力的編譯工具,交叉編譯后的軟件可直接下載到PDA的Flash Rom里[4].
4結(jié)論
該系統(tǒng)在首鋼東華集團(tuán)試運(yùn)行約半年左右, ,此間企業(yè)運(yùn)作比較良好。除了能夠完成傳統(tǒng)控制系統(tǒng)的功能外,在模糊控制方面和系統(tǒng)的靈活性方面都顯示出良好的性能.在嵌入式軟件方面,由于Linux與MiniGUI都遵循GPL公約,同時(shí)MiniGUI能穩(wěn)定、可靠的運(yùn)行于linux系統(tǒng)下,并且通過(guò)上述實(shí)踐證明其可以快速構(gòu)建一個(gè)穩(wěn)定的可視化軟件系統(tǒng).
在經(jīng)濟(jì)效益方面,據(jù)粗略統(tǒng)計(jì),在與沒(méi)有實(shí)施移動(dòng)溫濕度監(jiān)測(cè)系統(tǒng)情況下相比,實(shí)施此系統(tǒng)之后使得現(xiàn)場(chǎng)監(jiān)測(cè)加靈活準(zhǔn)確,在降低生產(chǎn)成本,提高工作效率,避免事故發(fā)生方面所形成的附加經(jīng)濟(jì)效益大約在30~50萬(wàn)元左右,而由此給實(shí)施本系統(tǒng)的企業(yè)帶來(lái)的巨大經(jīng)濟(jì)效益更是無(wú)法估算。