欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    根据VHDL的电梯控制系统设计.doc

    • 资源ID:4265736       资源大小:546KB        全文页数:17页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    根据VHDL的电梯控制系统设计.doc

    VHDL数字系统设计与测试实验报告基于VHDL的电梯控制系统设计一、设计背景及说明随着高层建筑的不断涌现,对电梯的需求也与日俱增,电梯已经成为我们日常生活中不可缺少的部分,稳定可靠性高的电梯系统成为了电梯领域的新需求。现在基于VHDL硬件描述语言,用FPGA为控制芯片控制完成一个简单的6层楼的电梯控制系统设计。我们常见的电梯控制系统功能都包括:上升请求、下降请求、电梯门控、楼层显示灯、电梯运动方向显示、超载、报警、电梯内请求信号等。根据这些常用的信号设计一个电梯系统,实现所要求的功能。控制方式的选择:1) 内部请求优先控制方式内部请求控制方式类似于出租车的工作方式,先将车上的人送至目地,再去载客。作为通用型电梯应该服务于大多数人,必须考虑电梯对内外请求的响应。在内部请求优先控制方式中,当电梯外部人的请求和电梯内部人的请求冲突时,外部人的请求信号可能被长时间忽略,因为它不能作为通用型电梯的设计方案。2) 单层层停控制方案单层层停控制方式等同于火车运行方式,遇到站即停止、开门。这种方案保证所有的人的请求都能得到响应。然而这样对电梯的效率产生了消极的影响:不必要的等待消耗了大量时间,而且电梯的运作与用户的请求无关,当无请求时电梯也照常跑空车,浪费了大量的电能。对于用户而言这种控制方式的请求响应时间也不是很快,因而也不是理想的电梯控制设计方案。3) 方向优先控制式方式方案方向优先控制是指电梯运行到某一层楼时,先考虑这一层楼是否有请求:有则停止;无则继续上升或者下降。停止后再启动时,考虑上方或者下方是否有请求,有则继续前进,无则停止。检测后方是否有请求,有请求则转向运行,无请求则维持停止状态。这种运作方式下,电梯对用户的请求相应率为100%,而且响应的时间较短。方向优先控制方式的效率远远大于单向层层停等控制方式的效率。而且,方向控制方式下,电梯在维持停止状态的时候可以进入省电模式,又能节省大量的电能。在本设计中采用方向优先控制方式。l 电梯的输入信号分析电梯的输入信号分析主要包括外部输入信号和内部输入信息的分析。对于电梯外部输入信号:每一层电梯门外需要有上升请求按钮和下降请求按钮,其中一楼电梯门外只有上升请求按钮,6楼电梯门外只有下降请求按钮。电梯内部输入信号包括6个前往楼层按钮、提前关门按钮、延时关门按钮、电梯异常求救按钮,另外还有超重等警告信号输入。l 电梯的输出信号分析:电梯的输出信号分析也主要包括外部输出信号和内部输出信息的分析。对于电梯外部信号包括上升请求按钮和下降请求按钮是否被按下指示信号灯、电梯当前所在楼层指示信号、电梯运行方向指示信号。电梯内部输出信号包括6个前往楼层按钮是否被按下指示信号、是否超重等告警指示信号、电梯当前所在楼层指示信号、以及电梯运行方向指示信号。l 电梯运行规则分析:当电梯处于上升模式时,只响应比电梯所在位置更高的上楼信号,由下至上依次执行,直到最后一个上楼请求执行完毕,如果高层有下楼请求时,则直接升到有下降请求的最高楼,然后进入下降模式,电梯处于下降模式时,则与上升模式相反。电梯系统框图如下图所示:按键输入乘坐电梯者所想要去的楼层,控制电梯门的开关,可编程逻辑芯片接收到信号后进行处理,发送信号给控制电机系统来控制电梯的上升下降等状态,同时通过LED数码管显示所在的楼层,以及电梯的运动状态。该控制器完成6层电梯的载客服务,而且遵循方向优先原则,并能相应提前关门、延时关门,并且有超载报警和故障报警。同时指示电梯的运行情况以及电梯内外请求信息。二、设计框图及模块说明² 设计电梯系统框图如下图所示: ² 电梯系统大致包括4个模块:1) 外部数据采集模块对外部信号采集、处理要求电梯控制器:实现对外部请求信号的实时、准确采集;准确实时地捕捉达到楼层的信号;有效防止楼层到达信号、外部请求信号的误判。采用FPGA为系统控制核心,系统时钟频率足够满足此系统实时采集数据的要求。外部请求信号的输入形式为按键输入,到达楼层信号来自光敏传感器,关门中断信号及超载信号则产生于压力传感器。2) 信号存储模块电梯控制系统的请求输入信号有18个(电梯外有6个上升请求和6个下降请求的用户输入端口,电梯内有6个请求用户输入端口),由于系统对内外请求没有设置优先级,各楼层的内外请求信号被采集后可先进行运算,再存到存储器内。要注意的是电梯运行过程中,由于用户的请求信号的输入是离散的,而且系统对请求的响应也是离散的,因此请求信号的存储要新的请求信号不能覆盖原来的请求信号,只有响应动作完成后才能清除存储器内对应的请求信号位。3) 基于FPGA的中央处理器模块中央数据处理模块是系统的核心,通过对存储的数据(含请求、到达楼层等信号)进行比较、判断以驱动系统状态的流转。电梯工作过程中共有9种状态:等待、上升、下降、开门、关门、停止、休眠、超载报警及故障报警状态。一般情况下电梯的工作始点是第一层,起始状态是等待状态,启动条件是接受上升请求。超载状态时电梯关门动作取消,同时发出警报,直到警报被清除(看门狗信号有效的条件是一层楼连续发生关门中断情况超过3次)。本系统由请求信号启动,运行中每检测到一个到达楼层信号,再参考原方向信号来决定是否停止,转向等动作。系统状态流程图如下图所示:4) 信号的输出、显示模块本系统的输出信号有两种:一种是电机的升降控制信号(两位)和开门/关门控制信号;另一种是面向用户的提示信号(含楼层显示、方向显示、已接受请求显示等)。电机控制信号一般需要两位,本系统中电机有3种工作状态:正转、反转和停转状态。两位控制信号作为一个三路开关的选通信号,此三路开关选用模拟电子开关。系统的显示输出包括数码管楼层显示、数码管请求信号显示和表征运动方向箭头指示灯的开关信号。LED七段数码管显示部分在前面的作业中已经做了详细的介绍及说明,在本系统中省略。本系统具有请求信号显示功能,结合方向显示,可以减少用户对同一请求的输入次数,这样就延长了电梯按键的寿命。三、电梯控制程序设计源代码及端口说明输入端口信号说明:clk:时钟信号,2Hz;clr:清除警报信号,高有效,清除故障报警;c_u1、c_u2、c_u3、c_u4、c_u5:电梯外人的上升请求;c_d2、c_d3、c_d4、c_d5、c_d6:电梯外人的下降请求;deng:关门中断,用于在需要等待时,让电梯门一直打开,停止运动;d1、d2、d3、d4、d5、d6:电梯内人的请求信号;full:超载信号,高时表示电梯内的人过多,超载报警;g1、g2、g3、g4、g5、g6:到达楼层信号,数码管LED将显示其值;quick:提前关门信号,高有效,当为高时,电梯门马上关闭;输出端口信号说明:door1:0:电梯门控信号;led6:0:电梯所在楼层显示;led_c_u5:0:电梯外人上升请求信号显示;led_c_d5:0:电梯外人下降请求信号显示;led_d5:0:电梯内请求信号显示;alarm:超载警告信号;up:电梯运动状态显示,高时表示上升;down:电梯运动状态显示,高时表示为下降;ud:电机控制信号,控制电梯的上升下降,“1”表示为上升,“0”表示为下降;wawawa:看门狗报警信号,高时表示故障报警。源代码如下所示: -library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dianti is port ( clk : in std_logic; -时钟信号(频率为2Hz) full,deng,quick,clr : in std_logic; -超载、关门中断、提前关门清除报警信号 c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic; -电梯外人的上升请求信号 c_d2,c_d3,c_d4,c_d5,c_d6 : in std_logic; -电梯外人的下降请求信号 d1,d2,d3,d4,d5,d6 : in std_logic; -电梯内人的请求信号 g1,g2,g3,g4,g5,g6 : in std_logic; -到达楼层信号 door : out std_logic_vector(1 downto 0); -电梯门控制信号 led : out std_logic_vector(6 downto 0); -电梯所在楼层显示 led_c_u:out std_logic_vector(5 downto 0); -电梯外人上升请求信号显示 led_c_d:out std_logic_vector(5 downto 0); -电梯外人下降请求信号显示 led_d : out std_logic_vector(5 downto 0); -电梯内请求信号显示 wahaha : out std_logic; -看门狗报警信号 ud,alarm : out std_logic; -电梯运动方向显示,超载警告信号up,down : out std_logic ); -电机控制信号和电梯运动end dianti;architecture behav of dianti issignal d11,d22,d33,d44,d55,d66:std_logic; -电梯内人请求信号寄存信号signal c_u11,c_u22,c_u33,c_u44,c_u55:std_logic; -电梯外人上升请求信号寄存信号signal c_d22,c_d33,c_d44,c_d55,c_d66:std_logic; -电梯外人下降请求信号寄存信号signal q:integer range 0 to 1; -分频信号signal q1:integer range 0 to 6; -关门延时计数器 signal q2:integer range 0 to 9; -看门狗计数器signal dd,cc_u,cc_d,dd_cc:std_logic_vector(5 downto 0); -电梯内外请求信号寄存器signal opendoor:std_logic; -开门使能信号signal updown:std_logic; -电梯运动方向信号寄存器signal en_up,en_dw:std_logic; -预备上升、预备下降预操作使能信号begincom:process(clk)beginif clk'event and clk='1' then if clr='1' then q1<=0;q2<=0;wahaha<='0' -清除故障报警 elsif full='1' then alarm<='1' q1<=0; -超载报警if q1>=3 then door<="10" else door<="00" end if; elsif q=1 then q<=0;alarm<='0' if q2=3 then wahaha<='1' -故障报警 else if opendoor='1' then door<="10"q1<=0;q2<=0;up<='0'down<='0' -开门操作 elsif en_up='1' then -上升预操作 if deng='1' then door<="10"q1<=0;q2<=q2+1; -关门中断 elsif quick='1' then q1<=3; -提前关门 elsif q1=6 then door<="00"updown<='1'up<='1' -关门完毕,电梯进入上升状态 elsif q1>=3 then door<="01"q1<=q1+1; -电梯进入关门状态 else q1<=q1+1;door<="00" -电梯进入等待状态 end if; elsif en_dw='1' then -下降预操作 if deng='1' then door<="10"q1<=0;q2<=q2+1; elsif quick='1' then q1<=3; elsif q1=6 then door<="00"updown<='0'down<='1' elsif q1>=3 then door<="01"q1<=q1+1; else q1<=q1+1;door<="00" end if; end if; if g1='1' then led<="1001111" -电梯到达1楼,数码管显示1 if d11='1' or c_u11='1' then d11<='0' c_u11<='0'opendoor<='1'-有当前层的请求,则电梯进入开门状态 elsif dd_cc>"000001" then en_up<='1' opendoor<='0' -有上升请求,则电梯进入预备上升状态 elsif dd_cc="000000" then opendoor<='0' -无请求时,电梯停在1楼待机 end if; elsif g2='1' then led<="0010010" -电梯到达2楼,数码管显示2 if updown='1' then -电梯前一运动状态位上升 if d22='1' or c_u22='1' then d22<='0' c_u22<='0' opendoor<='1' -有当前层的请求,则电梯进入开门状态 elsif dd_cc>"000011" then en_up<='1' opendoor<='0' -有上升请求,则电梯进入预备上升状态 elsif dd_cc<"000010" then en_dw<='1' opendoor<='0' -有下降请求,则电梯进入预备下降状态 end if; -电梯前一运动状态为下降 elsif d22='1' or c_d22='1' then d22<='0' c_d22<='0'opendoor<='1' -有当前层的请求,则电梯进入开门状态 elsif dd_cc<"000010" then en_dw<='1' opendoor<='0' -有下降请求,则电梯进入预备下降状态 elsif dd_cc>"000011" then en_up<='1' opendoor<='0' -有上升请求,则电梯进入预备上升状态 end if; elsif g3='1' then led<="0000110" -电梯到达3楼,数码管显示3 if updown='1' then if d33='1' or c_u33='1' then d33<='0' c_u33<='0'opendoor<='1' elsif dd_cc>"000111" then en_up<='1' opendoor<='0' elsif dd_cc<"000100" then en_dw<='1' opendoor<='0' end if; elsif d33='1' or c_d33='1' then d33<='0' c_d33<='0' opendoor<='1' elsif dd_cc<"000100" then en_dw<='1' opendoor<='0' elsif dd_cc>"000111" then en_up<='1' opendoor<='0' end if; elsif g4='1' then led<="1001100" -电梯到达4楼,数码管显示4 if updown='1' then if d44='1' or c_u44='1' then d44<='0' c_u44<='0' opendoor<='1' elsif dd_cc>"001111" then en_up<='1' opendoor<='0' elsif dd_cc<"001000" then en_dw<='1' opendoor<='0' end if; elsif d44='1' or c_d44='1' then d44<='0' c_d44<='0' opendoor<='1' elsif dd_cc<"001000" then en_dw<='1' opendoor<='0' elsif dd_cc>"001111" then en_up<='1' opendoor<='0' end if; elsif g5='1' then led<="0100100" -电梯到达5楼,数码管显示5 if updown='1' then if d55='1' or c_u55='1' then d55<='0' c_u55<='0'opendoor<='1' elsif dd_cc>"011111" then en_up<='1' opendoor<='0' elsif dd_cc<"010000" then en_dw<='1' opendoor<='0' end if; elsif d55='1' or c_d55='1' then d55<='0' c_d55<='0'opendoor<='1' elsif dd_cc<"010000" then en_dw<='1' opendoor<='0' elsif dd_cc>"011111" then en_up<='1' opendoor<='0' end if; elsif g6='1' then led<="0100000" -电梯到达6楼,数码管显示6 if d66='1' or c_d66='1' then d66<='0' c_d66<='0'opendoor<='1' elsif dd_cc<"100000" then en_dw<='1' opendoor<='0' end if; else en_up<='0'en_dw<='0' -电梯进入上升或下降状态 end if; end if; else q<=1;alarm<='0' -清除超载报警 if d1='1' or d1='0' then d11<=d1; -对电梯内人请求信号进行检测和寄存 elsif d2='1' or d2='0' then d22<=d2; elsif d3='1' or d3='0' then d33<=d3; elsif d4='1' or d4='0' then d44<=d4; elsif d5='1' or d5='0' then d55<=d5; elsif d6='1' or d6='0' then d66<=d6; end if; if c_u1='1' or c_u1='0' then c_u11<=c_u1; -对电梯外人上升请求信号进行检测和寄存 elsif c_u2='1' or c_u2='0' then c_u22<=c_u2; elsif c_u3='1' or c_u3='0' then c_u33<=c_u3; elsif c_u4='1' or c_u4='0' then c_u44<=c_u4; elsif c_u5='1' or c_u5='0' then c_u55<=c_u5; end if; if c_d2='1' or c_d2='0' then c_d22<=c_d2; -对电梯外人下降请求信号进行检测和寄存 elsif c_d3='1' or c_d3='0' then c_d33<=c_d3; elsif c_d4='1' or c_d4='0' then c_d44<=c_d4; elsif c_d5='1' or c_d5='0' then c_d55<=c_d5; elsif c_d6='1' or c_d6='0' then c_d66<=c_d6; end if; dd<=d66&d55&d44&d33&d22&d11; -电梯内人请求信号并置 cc_u<='0'&c_u55&c_u44&c_u33&c_u22&c_u11; -电梯外人上升请求信号并置 cc_d<=c_d66&c_d55&c_d44&c_d33&c_d22&'0' -电梯外人下降请求信号并置 dd_cc<=dd or cc_u or cc_d; -电梯内、外人请求信号进行综合 end if; ud<=updown; -电梯运动状态显示 led_d<=dd; -电梯内人请求信号显示 led_c_u<=cc_u; -电梯外人上升请求信号显示 led_c_d<=cc_d; -电梯外人下降请求信号显示end if; end process; end behav;此次电梯控制系统设计使用的是Altera公司的MAX-II,由下资源使用情况图可见这款芯片足够满足本次设计需求。四、仿真结果及说明假设电梯初始状态在一楼,此时2、3楼电梯外有人要下楼,4楼电梯外有人要上楼,在此后输入等待、快速关门、超载等信号,观察仿真图得出结论:电梯控制程序仿真全图注:实际使用时电梯的时钟为2Hz,为了仿真时便于观察我们在仿真时,将频率加倍为25MHz。电梯控制程序仿真局部放大图-1注:1. 电梯停在一楼时,接受到请求信号c_d3、c_d2、c_u4和d6,并把请求信号写入相应的寄存器。led显示电梯所在楼层;led_d、led-c_u和led_c_d显示用户的请求。2. 电梯经过准备上升状态后,进入上升状态,到达2楼、3楼时,由于2、3楼的乘客要求的是下降,所以不停继续前进。3. 电梯上升到4楼时,响应请求(c_u4),开门载客;载客时电梯的门状态door先由10(电梯门打开)跳到00(等待)再跳到01(电梯门关闭),完成乘客的进入;此后进入预备上升状态。电梯控制程序仿真局部放大图-2注:1. 电梯上升到6楼时,响应请求(d_6),开门卸客;进入预备下降状态。2. 电梯下降经过5楼,4楼都不停,到达3楼开门卸客,电梯进入预备下降状态。电梯控制程序仿真局部放大图-3注:1. 电梯到达3楼时,响应请求(c_d3),开门载客;进入预备下降状态。2. 电梯在预备下降状态下,电梯应超载(full='1'),发出超载警报alarm;超载信号消失(full='0'),电梯重新进入预备下降状态。4. 电梯接收到提前关门信号quick,电梯跳过关门等待时间。仿真图中q1从1跳到3;进入关门状态。5. 电梯接收到deng、c_d3和d3电梯重新进入预备下降状态,并且c_d3和d3信号都可以对q2(q2<3时)进行清零处理。6. 当连续的关门中断的次数超过3次时,不认为是出自乘客的需要,而认为是故障,并报警,等技术员处理完故障时,用clr信号才可以清除报警。电梯控制程序仿真局部放大图-4注:1. 电梯排除故障后继续运行。2. 电梯执行完所有请求时电梯将停在1楼待机。五、设计总结说明 在电梯系统的设计中,要考虑到层次的扩展,当我们要加大层数时,可对现有的6曾电梯系统进行修改,将用户请求变量的位数拓宽,比如设计十层电梯系统时,可将电梯外上升请求c_u与c_d电梯外下降请求由5位拓宽为9位,电梯内用户请求信号由6位拓宽为10位,相应的电梯按键也要增加。g表示电梯所在的层数,由6位拓宽为10位,每层状态判定也相应的增加。这样就可以实现电梯层数的扩展。通过本次电梯控制系统的设计使我对电梯工作系统以及VHDL的语言有了更加深入的了解,用VHDL硬件描述语言的形式来进行数字系统的设计灵活方便,利用EDA软件进行编译优化极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。CPLD作为新一代工业控制器,以其高可靠性和技术先进性,在电梯系统中得到广泛的应用,从而使电梯由传统的继电器控制方式发展为计算机控制的一个重要方向,成为当前电梯控制和技术改造的热点之一。

    注意事项

    本文(根据VHDL的电梯控制系统设计.doc)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开