太陽熱水器水位控制的EDA實現(xiàn)
1??????? 引言
[1]目前,我國太陽能熱水器的產(chǎn)量和使用量均居世界首位[1][2]。隨著人們生活水平的提高,對太陽能熱水器的品質要求越來越高。智能控制型太陽能熱水器越來越受到人們的歡迎。水位控制是智能控制型太陽能熱水器的基本功能之一,是實現(xiàn)“全自動控制”不可或缺的環(huán)節(jié)。所謂水位控制,是通過設定來實現(xiàn)太陽能熱水器水箱里缺水時自動補水、水滿時自動停水的功能。現(xiàn)有的控制方案多由水位傳感器根據(jù)缺水或滿水時發(fā)出的不同信號控制半導體器件的通斷,從而進一步控制繼電器、電磁閥的開合狀態(tài),來進行補水與否。水滿后自動停水功能一般都能做到。但“缺水”的定義往往會造成用戶的使用不便。如把缺水定義為水箱無水,當晚上仍有少量余水時不能及時補水,會造成第二天用水不便;而若把缺水定義為一特定水位,則會在低于此水位用水時出現(xiàn)混水狀態(tài)[3]。
本文設計了一種新型的水位控制器,并采用了電子設計自動化(EDA)技術[4][5],用目前廣泛應用的VHDL硬件電路描述語言,在Altera公司的MAX+PLUSⅡ集成開發(fā)環(huán)境下進行綜合、仿真,并下載到可編程邏輯器件EPF10K10TC144-3中,以實現(xiàn)控制功能。
2??????? 水位控制的主要功能
智能型水位控制要求補水及時且不影響正常使用。此處設計的智能化水位控制器可以實現(xiàn)水滿后自動停水、條件補水和強制補水及顯示、報警等功能。如圖1所示。
圖1? 水位控制示意圖
其中“水位”由水箱中的水位傳感器提供。分三個檔位:滿水水位、條件補水水位和強制補水水位。滿水水位用于實現(xiàn)水滿后自動停水功能;條件補水水位可設置在一定水位如半箱水,當水箱水位低于此設置(高于強制補水水位)時實現(xiàn)有條件補水:當用水指示位有效(正在用水)時禁止補水,否則予以補水;強制補水水位可設置為水箱無水(或設置在較低水位),此時實現(xiàn)強制補水功能。為使用方便,控制器提供報警、指示功能:補水時補水指示燈亮,用戶此時不能用水;水箱水位低于條件水位時發(fā)出提示音樂,此時用戶若想繼續(xù)間斷用水,可通過鍵盤設置“補水禁止”,這樣,即便不用水也不會補水,以便短時間內(nèi)仍有熱水可用,因此時有音樂提示,用戶可在用水完畢及時撤銷“補水禁止”位,為水箱補水;水箱水位到達強制補水水位而又被禁止補水時,發(fā)出報警信號,以便撤銷補水禁止位及時補水,防止水箱長時間缺水。
3??????? 水位控制器的VHDL代碼
VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)是IEEE工業(yè)標準硬件描述語言,是隨著可編程邏輯器件(PLD)的發(fā)展而發(fā)展起來的。這種用語言描述硬件電路的方式,容易修改和保存,且具有很強的行為描述能力,所以在電路設計中得到了廣泛應用。以下是描述水位控制的VHDL代碼。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY bushui IS
??? PORT (ply,forbid : IN STD_LOGIC;???? --用水標示,用水禁止
????????????? level : IN INTEGER RANGE 0 TO 7;??? --水位
???? valve,alm,music : OUT STD_LOGIC;??? --補水電磁閥,報警,提示音樂
?????????????? fil_l : BUFFER STD_LOGIC);??? --補水指示燈
END bushui;
ARCHITECTURE behav OF bushui IS
BEGIN
PROCESS(ply,forbid,level)
? BEGIN
???? CASE forbid IS
WHEN '1' => valve <= '0';fil_l <= '0';??? --禁止補水
???????? IF level <= 3 AND level > 1 THEN
music <= '1';alm <= '0';??? --音樂提示水位低于條件補水水位
???????? ELSIF level <= 1 THEN
?alm <= '1';music <= '0';?? --水位低于強制補水水位報警
???????? ELSE music <= '0'; alm <= '0';?
?END IF;
????? WHEN '0' => alm <= '0';??????
???????? IF level = 7 THEN
valve <= '0';fil_l <= '0';music <= '0';? 水滿時停止補水
???????? ELSIF level<= 3 AND level > 1 THEN
alm <= '0';music <= '1';???? --音樂提示水位低于條件補水水位
valve <= not ply; fil_l <= not ply;? --不用水時予以補水
???????? ELSIF level <= 1 THEN
valve <= '1';fil_l <= '1';music <= '0';?? --強制補水
??????????? ELSE music <= '0'; valve <= fil_l;fil_l <= fil_l;
END IF;
????????? WHEN OTHERS => null;
??? END CASE;
? END PROCESS;
END behav;
代碼中,水位設為0~7八個級別,綜合后,水位以三位二進制碼表示,即最小可分辯的水位為滿水箱的八分之一。條件補水水位設定在“l(fā)evel= 3”,即半箱水;強制補水水位設定在“l(fā)evel= 1”,即滿水箱的八分之一。
4??????? 仿真結果
為了驗證設計的正確性,在Altera公司的MAX+PLUSⅡ集成開發(fā)環(huán)境下對以上代碼描述進行綜合、仿真,以下是該設計的仿真結果。
由圖2可以看出,forbid(用水禁止)具有強制性,不論水位在何位置,該位都可隨時停止補水;當該位被撤銷時,是否繼續(xù)補水則與當前水位有關:若低于補水水位則繼續(xù)補水(約1.0us、8.0us處),否則不予補水(約3.4us處)。forbid無效時,補水按預先設定正常進行:水箱水位低于強制補水水位時強制補水(約1.0us處),水位介于強制補水水位與條件補水水位之間時進行有條件補水(約5.25us~5.75us間),水滿則停止補水(約9.7us處)。補水指示燈fil_l與補水value一致。Music及時提供音樂提示。Alm在水位低于強制補水水位而又被禁止補水時發(fā)出報警(約0.2us~1.0us間)??梢?,電路滿足了設計要求。
5???? 結語
該設計采用了用于電子產(chǎn)品設計中比較先進的EDA技術,該技術具有設計靈活、修改快捷、調試方便、研制周期短等優(yōu)點[4],且設計出的電子產(chǎn)品具有高可靠性和較高的性能價格比,極具市場競爭力。如本設計中的設定水位的改變、水位級別的增多、報警方式的調整等均可以不需要硬件電路的支持而方便地直接從VHDL源程序中進行修改。本設計實現(xiàn)的智能型水位控制器,既可以單獨用以實現(xiàn)水位控制,也可以與其他太陽熱水器控制環(huán)節(jié)(如水溫控制)有機地結合為一個整體,構成真正意義上的“全自動控制”太陽能熱水器,全天候為用戶提供熱水,克服了因補水帶來的使用上的不方便,讓使用太陽能熱水器成為一種享受,從而提高人們的生活質量。
評論