首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 电子制作
太阳热水器水位控制的EDA实现
来源:本站整理  作者:佚名  2010-02-26 23:51:15



 1        引言

  [1]目前,我国太阳能热水器的产量和使用量均居世界首位[1][2]。随着人们生活水平的提高,对太阳能热水器的品质要求越来越高。智能控制型太阳能热水器越来越受到人们的欢迎。水位控制是智能控制型太阳能热水器的基本功能之一,是实现“全自动控制”不可或缺的环节。所谓水位控制,是通过设定来实现太阳能热水器水箱里缺水时自动补水、水满时自动停水的功能。现有的控制方案多由水位传感器根据缺水或满水时发出的不同信号控制半导体器件的通断,从而进一步控制继电器、电磁阀的开合状态,来进行补水与否。水满后自动停水功能一般都能做到。但“缺水”的定义往往会造成用户的使用不便。如把缺水定义为水箱无水,当晚上仍有少量余水时不能及时补水,会造成第二天用水不便;而若把缺水定义为一特定水位,则会在低于此水位用水时出现混水状态[3]。

  本文设计了一种新型的水位控制器,并采用了电子设计自动化(EDA)技术[4][5],用目前广泛应用的VHDL硬件电路描述语言,在Altera公司的MAX+PLUSⅡ集成开发环境下进行综合、仿真,并下载到可编程逻辑器件EPF10K10TC144-3中,以实现控制功能。

  2        水位控制的主要功能

  智能型水位控制要求补水及时且不影响正常使用。此处设计的智能化水位控制器可以实现水满后自动停水、条件补水和强制补水及显示、报警等功能。如图1所示。

水位控制示意图

  图1  水位控制示意图

  其中“水位”由水箱中的水位传感器提供。分三个档位:满水水位、条件补水水位和强制补水水位。满水水位用于实现水满后自动停水功能;条件补水水位可设置在一定水位如半箱水,当水箱水位低于此设置(高于强制补水水位)时实现有条件补水:当用水指示位有效(正在用水)时禁止补水,否则予以补水;强制补水水位可设置为水箱无水(或设置在较低水位),此时实现强制补水功能。为使用方便,控制器提供报警、指示功能:补水时补水指示灯亮,用户此时不能用水;水箱水位低于条件水位时发出提示音乐,此时用户若想继续间断用水,可通过键盘设置“补水禁止”,这样,即便不用水也不会补水,以便短时间内仍有热水可用,因此时有音乐提示,用户可在用水完毕及时撤销“补水禁止”位,为水箱补水;水箱水位到达强制补水水位而又被禁止补水时,发出报警信号,以便撤销补水禁止位及时补水,防止水箱长时间缺水。

  3        水位控制器的VHDL代码

  VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)是IEEE工业标准硬件描述语言,是随着可编程逻辑器件(PLD)的发展而发展起来的。这种用语言描述硬件电路的方式,容易修改和保存,且具有很强的行为描述能力,所以在电路设计中得到了广泛应用。以下是描述水位控制的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;

[1] [2]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:210,824.20000 毫秒