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

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

圖2 模糊控制程序流程
太陽能熱水器在未加入功率控制時的初始溫度在18~25 ℃,通過上述模糊控制加熱方式的使用需10~15 分鐘完成到設定值(45℃)的加熱過程。假設,水箱中水的質量由M表示,常壓下水的比熱容由C表示,模糊控制量為U,實際控制功率由P表示,加熱器額定功率由P0表示,當時間設定(由t0表示)為15 min時,如式(1)、式(2)。
(1)
P=P0·U/5
(2)
系統向環境中的散熱作用當水溫較低時(最高溫度Tmax不超過45 ℃)暫時可忽略不計,可得到式(3)。
(3)
實現溫度-時間控制的關鍵在于確保ΔT在初始溫度和設置時間條件不同的情況下大致保持定值,使用在不考慮散熱影響的情況下,可對時間進行分檔,具體檔位表示為t=15k(min),需縮減功率為15分鐘控制時的1/k(對于相應的功率控制), 當t=15k(min)時如式(4)。
(4)
在對初始溫度的差異及散熱影響(即不同環境下)進行考慮時,如果初始溫度較高,本文程序中T0設定為超過22℃,此時的實時輸出功率需在式(4)基礎上進行略微減小,將k改為k+a(需在實際調試中以具體的水箱對象為依據同時結合控制過程采用的中斷時間倍率確定a的值),針對PWM波中斷時間單元為15 ms,設定其高電平持續最小時間為150ms,倍率為10,a的取值范圍在0.2~0.6,因此有式(5)。
(5)
等號兩邊積分后為初始溫度較高時溫度控制式[6],表達式如式(6)。
(6)
系統軟件由單片機和觸摸屏兩個程序構成,系統自動控制功能由觸摸屏中的程序實現,通信過程及DS18B20溫度采集則由單片機程序實現。
作為太陽能熱水器系統的控制單元,本文選用TPC7062TX屏(MCGS)作為觸摸屏,由單片機完成檢測到的各部位的溫度值會傳給觸摸屏,觸摸屏以系統時間為依據完成控制策略的確定后,向單片機傳送控制數據,從而完成對繼電器的控制。單片機的寄存器能夠暫時存儲相關數據(包括傳感器采集到的溫度、液位等),將單片機的寄存器對應上觸摸屏的讀寫設備通道(設置為相同的數據格式)即可實現二者間的信息交互。為簡化系統設計過程,本文以第4區雙字節讀寫型作為觸摸屏的數據格式。系統在運行初始時會對日期進行自動檢測,根據系統檢測到的月份進入對應的季節模式(包括自動運行模式和特有模式),用戶可以現場情況為依據在觸摸屏的參數設置界面自主設置日期和時間,從而使不同用戶的多樣性需求得以有效滿足,不同的季節模式(針對夏季的防炸管及冬季防凍)以電輔熱介入程度、水泵和閥門的開關時間等作為主要區別。如在冬季晚上某用戶用熱水高峰時間為從晚五點到11點,11點后則不再使用熱水,此時可對相應的時間進行設定,系統檢測到冬季日期及時間后自動切換到冬季運行模式,11點后則自動進入防凍模式。
測溫、通信協議由單片機的程序負責實現,此外還需設置繼電器的控制端口,主要工作流程為:通過DS18B20完成溫度的檢測后由單片機進行讀取和簡單運算,然后在單片機的寄存器中暫存所獲取的攝氏溫度值,并且寄存器同觸摸屏的數據相對應;在觸摸屏中數據通過modbus485通信協議完成顯示和賦值過程,處理數據獲取的輸出同樣在單片機寄存器中暫存,單片機以寄存器的變化情況為依據完成對應引腳的電平的改變,從而實現對繼電器的的控制。根據單片機編程語言其檢測模塊的部分源程序如下[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 ();
}
為檢測本文所設計的太陽能熱水器控制系統的使用效率,對熱水器的實際應用情況進行檢測,并同普通家用熱水器在溫度判斷及加熱結果進行對比,測試結果表明在程序中對不同初始溫度進行設置的情況下完成對應調整因子a值(2.3節所述)的選擇,可使溫度-時間控制過程得以有效實現,需在執行該控制過程功能前檢測初始溫度,并選擇控制模式。檢測結果表明單片機在開始加熱前能夠快速對水溫值進行一定數量的采集,以初始溫度18℃為例,模糊控制效果(設置時間為15分鐘)如圖3所示。

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