鄭顥軒
(中交第二航務(wù)工程勘察設(shè)計院有限公司,武漢 430070)
基于STM 32單片機的艦船玻璃去霧系統(tǒng)設(shè)計與實現(xiàn)
鄭顥軒
(中交第二航務(wù)工程勘察設(shè)計院有限公司,武漢 430070)
論文介紹基于STM 32和改進模糊控制算法的艦船玻璃去霧系統(tǒng)。該系統(tǒng)由PC機和STM 32單片機通過RS-485串行通信組成主從式結(jié)構(gòu),以船舶玻璃發(fā)熱源為被控對象,實時監(jiān)測和采集駕駛艙內(nèi)露點溫度、船舶玻璃溫度,經(jīng)過改進模糊控制算法對監(jiān)測和采集參數(shù)運算之后,可以調(diào)節(jié)船舶玻璃發(fā)熱源的工作狀態(tài),從而控制船舶玻璃溫度,避免在各種冷濕環(huán)境下船舶航行時玻璃起霧、結(jié)霜,提高航行安全性。該系統(tǒng)具有相應(yīng)速度快、節(jié)能減耗等特點。
眾所周知,海洋環(huán)境是變化莫測的,船舶視窗結(jié)霜、起霧會使視線受阻能見度下降。在船舶行駛過程中,保證船舶視窗的能見度非常重要。
露點是空氣保持某一定濕度必須達(dá)到的最低溫度。溫度低于露點時,空氣濕度不會再升高,多余的水分會在玻璃及其他物體表面上起霧或結(jié)霜。本系統(tǒng)從起霧的根本原因出發(fā),對駕駛室內(nèi)空氣露點和船舶玻璃溫度進行實時監(jiān)測。系統(tǒng)采用改進的模糊控制算法對采樣數(shù)據(jù)進行處理,對船舶玻璃溫度進行快速的控制,使其始終保持在大于駕駛室內(nèi)空氣露點的狀態(tài),進而避免船舶玻璃起霧、結(jié)霜。
本系統(tǒng)由PC機和STM 32單片機系統(tǒng)組成,通過RS-485串行通信組成主從式結(jié)構(gòu),使PC機對駕駛室的露點和視窗溫度進行監(jiān)控。系統(tǒng)選用溫濕度傳感器SHT15和溫度傳感器PT100,分別對駕駛室內(nèi)露點和視窗溫度進行探測,使用單片機處理經(jīng)轉(zhuǎn)換、放大、濾波后的信號,進行改進Bang-Bang控制算法處理,判斷駕駛室內(nèi)露點與船舶玻璃溫度之間的關(guān)系,再由單片機系統(tǒng)通過加熱裝置驅(qū)動模塊來調(diào)節(jié)玻璃上電阻絲的工作電壓,以控制玻璃溫度始終高于駕駛室內(nèi)露點溫度。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)示意圖
3.1 主芯片控制模塊
主芯片控制模塊由單片機最小系統(tǒng)和串行通信兩個部分組成。本文選用意法半導(dǎo)體生產(chǎn)的STM 32F103CBT6,其為32位CortexTM-M 3 ARM內(nèi)核,有128KB內(nèi)部FLASH和20KB靜態(tài)RAM,具有10通道12位內(nèi)部AD。單片機最小系統(tǒng)(見圖2)除了必須的復(fù)位、時鐘和電源電路,還有4線SWD調(diào)試電路和內(nèi)部AD采集電路。其作用為接收和處理采集到的數(shù)據(jù)并上傳給PC機、完成相應(yīng)的算法以輸出控制信號。
3.2 玻璃溫度采樣模塊
溫度傳感器選擇具有抗震動、穩(wěn)定性強、線性度好、準(zhǔn)確度高等優(yōu)點的熱電偶PT100。溫度在0~100℃之間變化時,最大非線性偏差小于0.5℃。其電阻可隨著溫度增加基本成勻速增長。但PT100鉑電阻與溫度之間還是非線性的關(guān)系,考慮到船舶在海上航行所能遇到的環(huán)境溫度為-40℃~50℃,電阻值在該范圍內(nèi)與溫度的計算公式如式(1)、式(2)所示。
式中:Rt-PT100電阻值,單位為Ω;Ro-PT100在0℃時的電阻值,為100Ω;
A-一階溫度系數(shù),A=3.90802×10-3℃;
B-二階溫度系數(shù),B=-5.802×10-7℃;
C-三階溫度系數(shù),C=-4.27350×10-12℃。
由于PT 100的電阻值與溫度之間不是線性關(guān)系,實際工作中需要進行線性補償。
如果用實際曲線的割線作為線性擬合直線,我們將實際特性曲線與擬合直線之間的偏差稱為傳感器的非線性誤差,取其中最大值(設(shè)為)與輸出滿量程值之比作為評價非線性誤差的指標(biāo),稱之為非線性。
式中:e-非線性;
如溫度測量范圍為0℃~Tm℃,那么線性擬合直線的方程為:
非線性絕對誤差的方程為:
非線性為:
在0℃~100℃范圍內(nèi),當(dāng)t=50℃時,△達(dá)到最大值,△max=0.29Ω,PT100的非線性為0.756%。本系統(tǒng)設(shè)計指標(biāo)溫差在±0.5℃范圍內(nèi),那么需要對這一部分的非線性進行補償。通常有硬件電路補償和軟件補償兩種方法。
圖2 單片機最小系統(tǒng)電路圖
本系統(tǒng)溫度轉(zhuǎn)換采用軟件補償方法進行非線性補償。
由于傳感器輸出信號較弱且易受外界干擾,需對輸出信號進行放大及濾波調(diào)理。對溫度傳感器需將鉑熱電阻信號轉(zhuǎn)化為電壓信號。恒流源通過檢測鉑熱電阻PT l00兩端的電壓變化量獲得溫度信號。在恒流源采樣變換電路輸出兩個電壓值,其差值需要進行放大處理。兩級差分放大電路可實現(xiàn)此功能。溫度傳感器及其前置放大電路如圖3所示。
圖3 溫度傳感器及其前置放大電路
3.3 露點溫度采集模塊
SHT l5是瑞士Sensirion公司推出的一款數(shù)字溫濕度傳感器芯片。其內(nèi)部的溫度傳感器由能隙材料PTAT(正比于絕對溫度)研發(fā)而來,具有極好的線性。可用式(7)將溫度數(shù)字輸出SOT轉(zhuǎn)換為溫度值。為獲取精確的濕度的測量數(shù)據(jù),用式(8)將濕度數(shù)字輸出SORH轉(zhuǎn)換為濕度值,由于實際溫度與測試參考溫度25℃的顯著不同,所以用式(9)對濕度值進行溫度補償?shù)玫骄_濕度值。露點(Td)的計算方法很多,絕大多數(shù)都很復(fù)雜。對于本系統(tǒng)-40℃~50℃溫度范圍的測量,通過式(10)可得到較好的精度。
其中d1、d2為溫度轉(zhuǎn)換系數(shù),d1=-40.1℃,d2=0.04℃;c1、c2、c3為 濕 度 轉(zhuǎn) 換 系 數(shù),c1=-2.0468,c2=0.0367,c3=-1.5955E-6。t1、t2為 溫 度補償系數(shù),t1=0.01,t2=0.0008。Tn和m為露點計算參數(shù),0℃~50℃時,Tn=243.12℃,m=17.62;-40℃~0℃,Tn=272.62℃,m=22.46。
SHTl5將溫濕度感測、信號變換、A/D轉(zhuǎn)換和I2C總線接口等功能集成到1個芯片上,接口線少,控制方式簡單。
本系統(tǒng)是從玻璃起霧的原因出發(fā),以玻璃溫度為控制對象。從理論上講,當(dāng)玻璃溫度低于駕駛艙內(nèi)露點時,玻璃就會起霧。但是通過在實驗室內(nèi)采用空調(diào)、加濕器、電吹風(fēng)等輔助設(shè)備做了大量的實驗,并且也查閱了一定的資料,得到實際上玻璃溫度與露點的差值小于1.3℃的時候,玻璃就會起霧。那么控制算法要做到的便是使玻璃溫度始終處于高于露點1.3℃的狀態(tài)下,這樣既達(dá)到去霧效果,又節(jié)能減耗。當(dāng)系統(tǒng)剛開啟或者環(huán)境突然有較大變化時,可能會出現(xiàn)玻璃溫度遠(yuǎn)小于駕駛艙內(nèi)露點的情況,為保證航行的安全,這時需要快速反應(yīng)、快速給玻璃升溫,當(dāng)它們的差值達(dá)到1.3℃,要進入穩(wěn)態(tài)時,需要較為精確的控制方法,確保系統(tǒng)精度。
4.1 模糊控制算法
設(shè)計模糊控制器,是首先使模糊控制器的輸入電壓差分量Δx和電壓變化量E進行模糊化,兩個變量E的取值范圍為(0. 1, 0. 9),Δx的取值范圍為(0. 01, 0. 09)。為了簡化算法,將Δx和E的取值范圍對應(yīng)轉(zhuǎn)化為(0, 1),看作兩個輸入模糊集合,U設(shè)定為玻璃加熱的模糊集合;μ(Δx)和μ(E)作為輸入的隸屬度函數(shù)。Δx的隸屬度函數(shù)為:
其中μm in(Δx),μm id(Δx),μmax(Δx)分別表示為:
E的隸屬度函數(shù)為:
其中μmin(e),μmid(e),μmax(e)分別表示為:
采用廣義肯定式推理,建立船舶玻璃加熱模糊控制器的推理規(guī)則R:
加熱電壓U的隸屬度為:
通過實驗確定[ p q r]參數(shù)為:
建立了輸入輸出的語言變量、隸屬度函數(shù)和模糊規(guī)則后,需要確定模糊推理的合成規(guī)則??紤]到模糊推理為肯定式推理,這里采用“最大—最小”的模糊合成規(guī)則計算。
4.2 溫控算法的流程
本文設(shè)計的船舶去霧系統(tǒng),要達(dá)到快速去霧并且在系統(tǒng)穩(wěn)定后玻璃始終處于無霧的清晰狀態(tài),以保證船舶行駛的安全,并且兼具節(jié)能的功能。本文將系統(tǒng)的玻璃加熱裝置的輸出強度以工作電阻絲的數(shù)量分為3擋,依次為低檔加熱、中檔加熱、高檔加熱,由μmin、μmid、μmax分別表示,以玻璃溫度和露點溫度的差值作為輸入值e(t),并引入輸入值的變化率Δe(t),Δe(t)>0,表示差值在變大,Δe(t)<0,則表示差值在變小。
控制過程為:系統(tǒng)開啟,首先,對系統(tǒng)進行初始化。然后,將溫度傳感器和露點溫度傳感器采集到的電壓信號進行A/D轉(zhuǎn)換和進一步的處理,輸入到STM 32中。接著,用采集到的玻璃溫度減去露點溫度,得到差值,當(dāng)差值大于零且呈增大趨勢時,加熱裝置不工作;當(dāng)差值大于零且呈減小趨勢時,加熱裝置工作且置于低檔加熱模式;當(dāng)差值小于或等于零且數(shù)值呈增大趨勢時,加熱裝置工作且置于中檔加熱模式;當(dāng)差值小于零或等于零且數(shù)值呈減小趨勢時,加熱裝置工作且置于高檔加熱模式。使玻璃溫度始終保持在大于露點溫度的狀態(tài)下。改進算法流程圖如圖4所示。
傳統(tǒng)的玻璃去霧系統(tǒng)只是在控制器FLASH中設(shè)定溫度閾值,以此與檢測的玻璃溫度相比較,然后進行對玻璃的加熱去霧。本系統(tǒng)從玻璃起霧的原因出發(fā),實時檢測駕駛室內(nèi)露點及船舶玻璃溫度;采用基于模糊控制算法,響應(yīng)速度快,實時控制,并具有很高的精度;采用3組電阻絲分組加熱,在保證去霧效果的同時,更加節(jié)能。
圖4 溫控算法流程圖
[1]朱鵬浩.大船感玻璃去霧系統(tǒng)的研究與設(shè)計[D].武漢:武漢理工大學(xué)碩士學(xué)位論文,2013.
[2]金永興,武曉云.新世紀(jì)航海技術(shù)的展望[J].中國航海,2002(1):l-6.
[3]侯馨光.21世紀(jì)艦船自動化[J].機電設(shè)備,1999(3):11-14.
[4]張旭,李迪陽,孫建波等.傳播機艙監(jiān)測報警系統(tǒng)[J].計算機工程與應(yīng)用,2005(22):229-232.
[5]樂美龍,朱文蔚.集成船橋系統(tǒng)的現(xiàn)狀與未來[J].船舶工程,2000(5):51-53.
[6]李曉妮.單片機溫度控制系統(tǒng)的設(shè)計[J].九江:九江學(xué)院學(xué)報(自然科學(xué)版),2005(2):20-23.
[7]王忠顯.智能化電能參數(shù)測試儀[J].煤炭技術(shù),2003,22(3):23-24.
[8]袁寶歧.加熱爐原理與設(shè)計[M].北京:航空工業(yè)出版社,1989.
[9]李刻杰.傳感技術(shù)[M].北京:北京理工大學(xué)出版社,1989.
[10]陳杰,黃鴻.傳感器與檢測技術(shù)[M].北京:高等教育出版社,2002.
[11]張明峰.PIC單片機入門與實踐[M].北京:北京航空航天大學(xué)出版社,2004.
[12]王冬霞,張玉輝,洪耀球. 溫濕度傳感器SHT15及其在嵌入式系統(tǒng)中的應(yīng)用[J].電子設(shè)計工程,2011,19(2):40-43.
[13]張朝祥,許偉明.基于模糊控制理論的智能雨刷控制器[J]. 計算機測量與控制,2011(19):309-311.
this paper introduces a ship glass defogging system based on STM 32 singlechip and improved fuzzy logic control. This system consists of PC and STM 32, form a master-slave structure by RS-485 serial communication protocol. It uses ship glass heat source as controlled object, monitors and gathers dew point temperature in cockpit and temperature of ship glass. Calculated by improved fuzzy logic control algorithm, the arguments are used to regulate the state of ship glass heat source to avoid fogging or frosting when sailing in various cold wet environments, enhancing the navigation security. This system has advantages including rapid response, energy-saving and cost-reducing.
STM 32;模糊控制;船舶去霧;露點溫度
STM 32; fuzzy logic control; ship defogging; dew point temperature