孫浩文
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院 電子工程學(xué)院, 西安 710300)
快速發(fā)展的科學(xué)技術(shù)為生活水平的提高提供了強大支撐,智能家居系統(tǒng)隨之逐漸發(fā)展并完善起來,智能家居領(lǐng)域中的智能平臺呈現(xiàn)豐富多樣的發(fā)展趨勢,新的智能家居開放平臺框架不斷完善,在環(huán)保節(jié)能的大背景下,家居市場對太陽能等可再生環(huán)保能源的重視程度不斷提升,太陽能作為清潔能源的一種,太陽能熱水器逐漸得以廣泛應(yīng)用,太陽能熱水器技術(shù)得以迅速發(fā)展,為滿足智能家居控制需求,對熱水器的智能控制是目前研究的重點之一。目前的太陽能熱水器存在水箱容量與升溫速度同步性較差問題,且易受陰雨天氣影響,為滿足多樣化的生活需求,其加熱控制多采用光電雙能的方式,本文主要對太陽能熱水器的智能控制過程進行了研究和設(shè)計[1]。
天氣和季節(jié)變化會對太陽能強弱產(chǎn)生直接影響,為使全天候熱水使用得以有效實現(xiàn)需對太陽能熱水器添加輔助加熱裝置,目前開關(guān)式或PID控制為電輔助加熱大多采用的方式,太陽能作為時變的復(fù)雜非線性變量的一種,使精確的使用數(shù)學(xué)模型描述太陽能熱水器的工作過程難度加大(以集熱和輔助加熱為主),傳統(tǒng)控制方式易出現(xiàn)難以滿足實際控制需求的情況,而模糊控制作為非線性控制方法的一種,其智能化程度較高,在家用電器控制系統(tǒng)中應(yīng)用較為廣泛,控制效果較佳。本文主要對太陽能熱水器控制系統(tǒng)進行設(shè)計,以太陽能熱水器的實際應(yīng)用情況為依據(jù),完成了模糊智能太陽能熱水器控制系統(tǒng)的設(shè)計,該系統(tǒng)的控制器采用單片機STC89C52RC,通過數(shù)字溫度傳感器(DS18B20)的使用完成溫度測量,系統(tǒng)高精度時鐘由DS12C887提供,控制量結(jié)合使用模糊控制算法獲取,對水溫的控制則通過PWM波對過零繼電器進行控制進而控制加熱棒的功率的方法實現(xiàn)[2]。
(1) 單片機系統(tǒng)
本文所設(shè)計的系統(tǒng)的智能控制器選用了單片機STC89C52RC(8051內(nèi)核),由于在對太陽能熱水器進行控制時,系統(tǒng)涉及的運算量較小,需要處理及保存的中間數(shù)據(jù)較少,因此無需外擴數(shù)據(jù)存儲器,所使用的單片機內(nèi)部RAM及E2 PROM即可滿足需求。
(2) 溫度控制執(zhí)行器
本文系統(tǒng)通過使用零固態(tài)繼電器(輸入控制端為3~32 V、輸出端為5 A/380 V/50~60 Hz)和加熱棒(功率為 500~1 000 W)執(zhí)行水溫控制過程,通過對PWM波的占空比(由單片機產(chǎn)生)進行控制進而完成對交流過零繼電器通斷頻率的控制,最終控制加熱棒的功率完成溫度控制過程[3]。
(3) 溫度測量
選用具有較強抗干擾能力的DS18B20(數(shù)字溫度傳感器的一種),無需標定不必要溫度,數(shù)據(jù)通信過程通過傳感器的單總線接口并結(jié)合使用單片機分時復(fù)用原理實現(xiàn)。
(4) 時鐘電路設(shè)計
以實現(xiàn)熱水器熱水的全天供應(yīng),本系統(tǒng)的控制器采用實時時鐘完成準確的基準時間的提供,具體通過采用CMOS技術(shù)的DS12C887時鐘芯片完成,在芯片內(nèi)部集成時鐘芯片所需的晶振、電池及電路,在降低系統(tǒng)功耗的基礎(chǔ)上實現(xiàn)了時間的高精度控制,此外該時鐘芯片還具備外圍接口,可根據(jù)實際需要對時間進行設(shè)計,顯著提高了系統(tǒng)的穩(wěn)定性和時效性[3]。
采用模糊語言變量的模糊控制器以模糊邏輯推理為主,太陽能熱水器控制系統(tǒng)的控制器需以精確的數(shù)值表示輸入、輸出量,因此需完成精確量的模糊化(即輸入變量到模糊語言變量的轉(zhuǎn)換過程),在此基礎(chǔ)上進行模糊推理以形成控制策略后,再進行去模糊化處理,完成控制策略到精確的控制變量值的的轉(zhuǎn)換過程,同時控制輸出控制變量,系統(tǒng)具體模糊控制過程如圖1所示[4]。

圖1 模糊控制系統(tǒng)結(jié)構(gòu)
本文在設(shè)計太陽能熱水器控制系統(tǒng)時采用了二維模糊控制器,模糊控制器的輸入信號采用溫度誤差(由e表示)及誤差變化率(由ec表示),輸出控制量由U表示,單片機以獲取的U值為依據(jù)完成輸出PWM波的占空比的確定;輸入信號還包括時間設(shè)置值,負責(zé)在時間上優(yōu)化占空比。系統(tǒng)中變量的基本論域為輸入/出變量的實際變化范圍,本系統(tǒng)中e的基本論域為[-2,+2]、ec的基本論域為[-0.2,+0.2]、 控制量u的基本論域為[0%,100%]。
誤差語言變量(由E表示)的模糊集合的論域取值范圍為[-10,+10],誤差語言變量的變化率(由EC表示)的模糊集合的論域取值范圍為[-5,+5],控制量語言變量的模糊集合的論域取值范圍為[0,5] 。控制系統(tǒng)的輸出語言變量(由U表示)取 6 個的語言值,單片機PWM腳在U= 0 時輸出低電平,交流過零固態(tài)繼電器不導(dǎo)通(此時PWM波的占空比為零),因此不產(chǎn)生加熱功率;PWM 波的占空比在U= 1 時為20%,依次類推到U= 5。本文通過使用Fuzzy Logic Toolbox(位于Matlab模糊邏輯工具箱)及預(yù)設(shè)模糊規(guī)則完成了模糊控制表的制定(即可適用于單片機C程序),程序只需完成E和EC的計算,在此基礎(chǔ)上通過查表獲取對應(yīng)的控制量U,以有效滿足實際程序設(shè)計需求,模糊控制程序具體流程如圖2所示[5]。

圖2 模糊控制程序流程
太陽能熱水器在未加入功率控制時的初始溫度在18~25 ℃,通過上述模糊控制加熱方式的使用需10~15 分鐘完成到設(shè)定值(45℃)的加熱過程。假設(shè),水箱中水的質(zhì)量由M表示,常壓下水的比熱容由C表示,模糊控制量為U,實際控制功率由P表示,加熱器額定功率由P0表示,當(dāng)時間設(shè)定(由t0表示)為15 min時,如式(1)、式(2)。
(1)
P=P0·U/5
(2)
系統(tǒng)向環(huán)境中的散熱作用當(dāng)水溫較低時(最高溫度Tmax不超過45 ℃)暫時可忽略不計,可得到式(3)。
(3)
實現(xiàn)溫度-時間控制的關(guān)鍵在于確保ΔT在初始溫度和設(shè)置時間條件不同的情況下大致保持定值,使用在不考慮散熱影響的情況下,可對時間進行分檔,具體檔位表示為t=15k(min),需縮減功率為15分鐘控制時的1/k(對于相應(yīng)的功率控制), 當(dāng)t=15k(min)時如式(4)。
(4)
在對初始溫度的差異及散熱影響(即不同環(huán)境下)進行考慮時,如果初始溫度較高,本文程序中T0設(shè)定為超過22℃,此時的實時輸出功率需在式(4)基礎(chǔ)上進行略微減小,將k改為k+a(需在實際調(diào)試中以具體的水箱對象為依據(jù)同時結(jié)合控制過程采用的中斷時間倍率確定a的值),針對PWM波中斷時間單元為15 ms,設(shè)定其高電平持續(xù)最小時間為150ms,倍率為10,a的取值范圍在0.2~0.6,因此有式(5)。
(5)
等號兩邊積分后為初始溫度較高時溫度控制式[6],表達式如式(6)。
(6)
系統(tǒng)軟件由單片機和觸摸屏兩個程序構(gòu)成,系統(tǒng)自動控制功能由觸摸屏中的程序?qū)崿F(xiàn),通信過程及DS18B20溫度采集則由單片機程序?qū)崿F(xiàn)。
作為太陽能熱水器系統(tǒng)的控制單元,本文選用TPC7062TX屏(MCGS)作為觸摸屏,由單片機完成檢測到的各部位的溫度值會傳給觸摸屏,觸摸屏以系統(tǒng)時間為依據(jù)完成控制策略的確定后,向單片機傳送控制數(shù)據(jù),從而完成對繼電器的控制。單片機的寄存器能夠暫時存儲相關(guān)數(shù)據(jù)(包括傳感器采集到的溫度、液位等),將單片機的寄存器對應(yīng)上觸摸屏的讀寫設(shè)備通道(設(shè)置為相同的數(shù)據(jù)格式)即可實現(xiàn)二者間的信息交互。為簡化系統(tǒng)設(shè)計過程,本文以第4區(qū)雙字節(jié)讀寫型作為觸摸屏的數(shù)據(jù)格式。系統(tǒng)在運行初始時會對日期進行自動檢測,根據(jù)系統(tǒng)檢測到的月份進入對應(yīng)的季節(jié)模式(包括自動運行模式和特有模式),用戶可以現(xiàn)場情況為依據(jù)在觸摸屏的參數(shù)設(shè)置界面自主設(shè)置日期和時間,從而使不同用戶的多樣性需求得以有效滿足,不同的季節(jié)模式(針對夏季的防炸管及冬季防凍)以電輔熱介入程度、水泵和閥門的開關(guān)時間等作為主要區(qū)別。如在冬季晚上某用戶用熱水高峰時間為從晚五點到11點,11點后則不再使用熱水,此時可對相應(yīng)的時間進行設(shè)定,系統(tǒng)檢測到冬季日期及時間后自動切換到冬季運行模式,11點后則自動進入防凍模式。
測溫、通信協(xié)議由單片機的程序負責(zé)實現(xiàn),此外還需設(shè)置繼電器的控制端口,主要工作流程為:通過DS18B20完成溫度的檢測后由單片機進行讀取和簡單運算,然后在單片機的寄存器中暫存所獲取的攝氏溫度值,并且寄存器同觸摸屏的數(shù)據(jù)相對應(yīng);在觸摸屏中數(shù)據(jù)通過modbus485通信協(xié)議完成顯示和賦值過程,處理數(shù)據(jù)獲取的輸出同樣在單片機寄存器中暫存,單片機以寄存器的變化情況為依據(jù)完成對應(yīng)引腳的電平的改變,從而實現(xiàn)對繼電器的的控制。根據(jù)單片機編程語言其檢測模塊的部分源程序如下[7]。
#include
#include
Int cewen-pin=13;
Float celsius ,fahrenheit;
enum
{
ADC-VAL,
PWM-VAL,
Holding-regs-size
};
Int holding regs[200];
Const int buttonpin =22;
Void setup (void){
Serial.begin(9600);
Modbus-configure(&serial,9600,serial8e1,1,200,holdingregs);
Pinmode(buttonpin,output);
Pinmode(24,output);
Pinmode(26,output);
Pinmode(28,output);
Pinmode(30,output);
}
Void loop()
{
Int sensorvalue=analog read (A0);
Float sensor value dianya =sensor value;
Int sensor value dianya10=sensor value dianya*10;
Hold ingregs [30]=sensor vslue dianya 10;
Input set();
Modbus - update ();
}
為檢測本文所設(shè)計的太陽能熱水器控制系統(tǒng)的使用效率,對熱水器的實際應(yīng)用情況進行檢測,并同普通家用熱水器在溫度判斷及加熱結(jié)果進行對比,測試結(jié)果表明在程序中對不同初始溫度進行設(shè)置的情況下完成對應(yīng)調(diào)整因子a值(2.3節(jié)所述)的選擇,可使溫度-時間控制過程得以有效實現(xiàn),需在執(zhí)行該控制過程功能前檢測初始溫度,并選擇控制模式。檢測結(jié)果表明單片機在開始加熱前能夠快速對水溫值進行一定數(shù)量的采集,以初始溫度18℃為例,模糊控制效果(設(shè)置時間為15分鐘)如圖3所示。

圖3 實際控制效果圖
在完成均值濾波的基礎(chǔ)上確定系統(tǒng)加熱的初始溫度,從而實現(xiàn)調(diào)整因子取值的判斷,相比于普通家用熱水器(從18增加到45大概需要30分鐘以上的時間),本文的控制系統(tǒng)通過調(diào)整因子取值加熱時間縮短了50%以上,顯著提升了太陽能熱水器的控制效率及能源利用率。
本文主要對太陽能熱水器控制系統(tǒng)進行設(shè)計,本文以太陽能熱水器的實際應(yīng)用情況為依據(jù),完成了模糊智能太陽能熱水器控制系統(tǒng)的設(shè)計,該系統(tǒng)基于單片機STC89C52RC,通過數(shù)字溫度傳感器的使用完成溫度測量過程,采用過零固態(tài)繼電器對加熱棒進行控制,完成對熱水器輔助加熱功能的模擬過程,從而能夠根據(jù)設(shè)定的時間對輸出功率進行智能調(diào)整使水溫達到設(shè)定值。對液位、溫度進行檢測時使用Arduino單片機完成,太陽能熱水器控制系統(tǒng)通過觸摸屏顯示,單片機與觸摸屏使用modbus485協(xié)議完成通信過程,根據(jù)檢測獲取的溫度、液位值可自適應(yīng)選擇運行模式,根據(jù)實際情況由用戶設(shè)定各項參數(shù)或自動接入電輔熱、進入防凍循環(huán)等,該系統(tǒng)能夠有效控制溫度,在降低電能消耗的基礎(chǔ)上,有效保證了熱水供應(yīng)過程。