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