摘 要: 利用EDA技術(shù)和VHDL語言,設(shè)計了基于FPGA的太陽能熱水器控制系統(tǒng),實現(xiàn)了系統(tǒng)的硬件電路及相關(guān)配套軟件,使系統(tǒng)能夠完成太陽能熱水器溫度、水位參數(shù)的采集和對采集數(shù)據(jù)實時記錄、處理、分析、顯示和控制等功能。經(jīng)實際應(yīng)用證實,該系統(tǒng)運行穩(wěn)定、安全可靠、抗干擾能力強(qiáng)、操作靈活、使用方便,當(dāng)太陽能不足時能及時提供輔助能源補(bǔ)充加熱,實現(xiàn)了全天候不間斷提供熱水。
關(guān)鍵詞: 太陽能;FPGA;EDA;VHDL;控制系統(tǒng)
?
太陽能熱水器是目前最為“干凈”的能源之一。隨著消費者環(huán)保和綠色意識的提高,太陽能熱水器已經(jīng)走進(jìn)了千家萬戶[1]。目前,太陽能熱水器控制器還一直處于研究與開發(fā)階段,市面在售的控制器絕大部分只具備溫度和水位顯示功能,不具備溫度水位的自動控制功能。雖然有的控制器配有電加熱輔助裝置,但都不是自動的,給用戶使用帶來許多不便。而且,在人類生活水平日益提高的今天,智能化家庭住宅模式將成為新的家庭住宅模式的發(fā)展趨勢,目前市場上的太陽能熱水器智能化程度不高,主要以手動或半自動實現(xiàn)對太陽能熱水器的操作,在與用戶的交互性方面也不夠理想。
針對目前市場上熱水器控制系統(tǒng)的不足,本文設(shè)計了一種基于FPGA的控制系統(tǒng),實現(xiàn)對太陽能熱水器的水位、補(bǔ)水方式、補(bǔ)水時間的自動控制 ,提高了系統(tǒng)的智能化;利用液晶顯示與用戶建立良好的交互界面。
1 系統(tǒng)主要功能
(1)當(dāng)水位低于規(guī)定值時報警并自動上水,上水到規(guī)定水位時自動停水(水位的上限可以由用戶自行設(shè)定,所設(shè)定參數(shù)具有斷電保護(hù)功能;重新上電則不需要用戶再設(shè)定)。
(2)可實現(xiàn)手動/自動控制切換。
(3)自動加熱,定時加熱控制。
(4)采用分時段控制,即“用水時段”和“非用水時段”。
(5)采用全自動溫度控制,禁止高溫空曬后進(jìn)水,可以防止真空管因突然注入冷水而爆裂。
2 系統(tǒng)組成結(jié)構(gòu)及工作原理
本系統(tǒng)由溫度傳感器及調(diào)理電路、水位傳感器及調(diào)理電路、A/D轉(zhuǎn)換電路、液晶顯示電路、FPGA控制模塊、按鍵輸入和繼電器執(zhí)行部件組成,其中FPGA控制模塊是本系統(tǒng)的核心。系統(tǒng)結(jié)構(gòu)如圖1所示。
?
?
(1)液位傳感器采用ATS173型霍爾元件[2],若干霍爾元件固定在一個垂直導(dǎo)槽上,浮子帶動磁鋼沿導(dǎo)槽運動,霍爾元件的輸出經(jīng)電阻網(wǎng)絡(luò)轉(zhuǎn)換成不同電壓,經(jīng)ADC送入智能控制模塊中。溫度傳感器采用負(fù)溫度(NTC)型通用熱敏電阻,信號經(jīng)一路ADC送入智能控制部分。
(2)FPGA控制部分根據(jù)檢測到的水位信號、溫度信號以及用戶的設(shè)定或操作,通過必要的邏輯運算,以確定當(dāng)前應(yīng)該進(jìn)行的操作,并通過輸出口送至執(zhí)行部件,進(jìn)而控制進(jìn)水閥、加熱泵的狀態(tài),以實現(xiàn)所要求的控制功能。
(3)水泵、電磁閥、加熱器組成了上水、加熱執(zhí)行部件,該部件與輸出通道的繼電器相連以接受FPGA的控制命令,完成系統(tǒng)上水、加熱、循環(huán)上水、循環(huán)加熱功能。
(4)鍵盤輸入主要由S1、S2、S3和S4組成,S1用來切換操作狀態(tài)??刂破饔小?a class="innerlink" href="http://ihrv.cn/tags/直接控制" title="直接控制" target="_blank">直接控制”和“參數(shù)修改”兩種工作狀態(tài)。按S1鍵顯示“00”,控制器進(jìn)入“直接控制”狀態(tài);顯示“01”、“02”、“03”和“04”分別表示“設(shè)定上限水位”、“設(shè)定定時上水時間”、“設(shè)定定時加熱時間”和“設(shè)定加熱溫度”。
進(jìn)入“參數(shù)修改”狀態(tài)后,S2、S3用來修改規(guī)定的參數(shù);S1接受本次修改,并切換到下一個參數(shù);S4取消本次修改。進(jìn)入“直接控制”后,S2用來手動上水,S3用來手動加熱,S4用來停止加熱或上水。若水位已經(jīng)超過設(shè)定上限水位,或水溫已經(jīng)超過設(shè)定溫度,“直接控制”將不起作用。
設(shè)定水位上限:控制器可以監(jiān)測到6個水位,上限水位可以由用戶設(shè)置,水位上限設(shè)置范圍為03、04、05、06。
設(shè)定定時上水時間:每天在規(guī)定時間檢查水位,并上滿。若設(shè)定時間是00或大于等于24,則取消自動定時上水。
設(shè)定定時加熱時間:每天在規(guī)定時間檢查水溫。若水溫低于設(shè)定溫度,則接通電加熱器,將水溫加熱到設(shè)定溫度;若設(shè)定時間為00或大于等于24,則取消自動定時加熱。
設(shè)定加熱溫度:定時加熱溫度可以由用戶設(shè)定,范圍為20℃~60℃。
3 系統(tǒng)軟件實現(xiàn)
3.1 設(shè)計思想
在設(shè)計過程中,采用自頂向下的方法。首先從系統(tǒng)設(shè)計入手,在頂層進(jìn)行功能方框圖的劃分,然后對各模塊進(jìn)行VHDL設(shè)計并仿真,再進(jìn)一步綜合,進(jìn)行門級仿真,如果順利,便可下載,實現(xiàn)電路??刂颇K的頂層方框圖如圖2所示。
在頂層設(shè)計中加入了定時器模塊和液位、水溫信號共同完成控制功能,實現(xiàn)分時段控制,進(jìn)而實現(xiàn)在自動補(bǔ)水的同時不影響使用熱水,在自動開啟電加熱器補(bǔ)溫的同時不造成能源浪費,從而解決了定時補(bǔ)水、加熱的問題。
3.2 模塊設(shè)計
FPGA控制器分為以下幾個模塊:
(1)譯碼器模塊:接收鍵盤的輸入,并且根據(jù)系統(tǒng)要求,將其轉(zhuǎn)換成系統(tǒng)需要的代碼。
(2)狀態(tài)選擇模塊:接收經(jīng)過譯碼后的信號,完成狀態(tài)的控制和參數(shù)接收功能。
(3)移位存儲器模塊:將設(shè)定參數(shù)存儲起來,以備在后面的控制模塊調(diào)用,完成整個控制模塊的控制功能。
(4)比較控制模塊:將根據(jù)設(shè)定的參數(shù)和當(dāng)前的水位、水溫,輸出上水、加熱、報警等相關(guān)信號給調(diào)理電路。
(5)定時器模塊:根據(jù)實際需要,實現(xiàn)定時補(bǔ)水、加熱功能。
(6)調(diào)理電路模塊:根據(jù)狀態(tài)選擇電路和比較控制電路的輸出,自動完成上水、加熱、報警等相關(guān)操作。
由于篇幅的原因,在此僅給出部分頂層電路的VHDL源代碼[3]:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY taiyang IS
? PORT(s1s2,s3,s4:INSTD_LOGIC);-tp,level:IN? STD_
LOGIC_VECTOR(2 downto 0);
tm:??IN STD_LOGIC_VECTER(7 DOWNTO 0);
??s,j:out?STD_LOGIC;
??alarm:out STD_LOGIC;);
END taiyang
ARCHITECTURE one OFtaiyang IS
COMPONENT? state
PORT
(? q0:IN STD_LOGIC_VECTOR(3 downto 0);
??? qs:IN STD_LOGIC_VECTOR(7 downto 0);
??? tp,level:IN STD_LOGIC_VECTOR(7 downto 0);
??? s2,s3,s4:IN STD_LOGIC;
??? s,j:out? STD_LOGIC;
??? load1,load2,load3,load4:OUT? STD_LOGIC;
??? i1,i2,i3,i4:OUT STD_LOGIC_VECTOR(7 downto 0);
END COMPONENT
……
COMPONENT? compare
? PORT(r1,r2,r3,r4:IN STD_LOGIC_VECTOR(7 downto 0);
tp,level:INSTD_LOGIC_VECTOR(7downto 0);
tm:IN STD_LOGIC_VECTER(7DOWNTO 0);
s,j:out?STD_LOGIC;
larm:out STD_LOGIC;);
END compare;
BIGEN
……
U3:register
PORT(load1=>load1,load2=>load2,load3=>load3,load4=>
load4,i1=>i1,i2=>i2,i3=>i3,i4=>i4);
……
END
3.3 系統(tǒng)仿真與實現(xiàn)
在EDA工具Quartus II環(huán)境下對上述各個模塊VHDL源程序進(jìn)行編譯、選配、優(yōu)化、邏輯綜合,自動把VHDL描述轉(zhuǎn)變成門級電路,進(jìn)而完成電路分析、糾錯、驗證、自動布局布線、仿真等各種測試工作[4]。
3.4 仿真結(jié)果
在Quartus II環(huán)境下,運用其自身的仿真工具完成仿真,仿真結(jié)果如圖3所示。
從仿真結(jié)果中可以看出,通過FPGA實現(xiàn)的太陽能控制系統(tǒng),能很好地滿足實際要求,并且較以往傳統(tǒng)的設(shè)計方法而言,采用分時段控制,即“用水時段”和“非用水時段”,避免了頻繁啟動和用水安全,能源得到了有效利用。
該系統(tǒng)已在一些賓館、寫字樓投入運行,通過FPGA智能控制,采用溫差跟蹤循環(huán)方式充分利用太陽能進(jìn)行加熱,并及時啟動輔助能源補(bǔ)充加熱,在為用戶提供不間斷的開水供應(yīng)的同時,節(jié)約了能源。該系統(tǒng)運行穩(wěn)定,抗干擾性強(qiáng)。在以后的設(shè)計改進(jìn)中可加入壓力控制模塊,進(jìn)而在整個熱水器構(gòu)成中添加加壓模塊,使得上水順利完成[5]。
參考文獻(xiàn)
[1] 蔣樂書.太陽能熱水器優(yōu)化控制方案設(shè)計的探討[J].自動化技術(shù)與應(yīng)用,2006(4).
[2] 王化祥.傳感器原理及應(yīng)用[M].天津:天津大學(xué)出版社,1998.
[3] 潘松,黃繼業(yè).EDAj技術(shù)與VHDL[M].北京:清華大學(xué)出版社.2005.
[4] 于楓.ALTERA可編程邏輯器件應(yīng)用技術(shù).北京:科學(xué)出版社.2004.
[5] 馬敏,孫寅聰,張煒宇.太陽能熱水器控制器的設(shè)計[J].河南科學(xué),2003(21).