VHDL项目设计“三层电梯控制系统”

上传人:lis****211 文档编号:50394679 上传时间:2022-01-20 格式:DOC 页数:29 大小:633.50KB
返回 下载 相关 举报
VHDL项目设计“三层电梯控制系统”_第1页
第1页 / 共29页
VHDL项目设计“三层电梯控制系统”_第2页
第2页 / 共29页
VHDL项目设计“三层电梯控制系统”_第3页
第3页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
仅供个人参考三层电梯控制系统一、设计功能与要求电梯控制系统是的设计目标是按照使用者的要求控制电梯的运行。要求用 VHDL 设计出三层电梯的控制系统,基本功能要求如下:1、每层电梯入口处设有上、下请求开关,使用者可以根据自身的上下楼需要按下相应按键;电梯内部设有到达楼层按钮,使用者可以选择到达楼层。2、设有电梯运行模式(上、下)标识和当前所在楼层标识。3、电梯运行模式等同于普通电梯运行模式,电梯一般按照提出请求的先后顺序进行响应。程序根据电梯当前位置和使用者所在楼层以及进入电梯后的要求控制运行状态。4、电梯初始模式为一层关门状态。二、设计思路本系统的主要输入有电梯外上下控制按钮Button(其中 Button(0)表示一楼电梯外上升请求, Button(1) 表示二楼电梯外上升请求,Button(2)表示二楼电梯外下降请求, Button(3)表示三楼电梯外下降请求);电梯内到达楼层控制按钮 floor(其中 floor(0) 表示请求到达一层, floor(1) 表示请求到达二层, floor(2) 表示请求到达三层) 。系统的输出包括电梯位置标识position,表示电梯当前所在楼层;不得用于商业用途仅供个人参考电梯开门关门显示按钮 door(当 door=1 时表示开门, door=0 表示关门);电梯当前运行状态按钮 up_down(当 up_down=1 时表示电梯处于上升状态,当 up_down=0 时表示电梯处于下降状态) 。系统主要通过当前所在楼层以及运行状态、 后续请求判断运行方式。电梯处在第一层时,当它收到二层电梯外上下楼请求、三层电梯外下楼请求、一层电梯内到达二层和三层请求时, 电梯会按照指令上升到相应楼层并开门、 关门;若收到一层电梯外上楼请求只做开门响应,随后根据使用者进入电梯后请求进行响应;其他请求不响应。当电梯处在第二层时, 若系统收到二层电梯外上下楼请求只做开门响应;若收到三层电梯外下楼或二层电梯内到达三层请求, 则做上楼响应、开门;若收到一层电梯外上楼或二层电梯内到达一层请求,则做下楼楼响应并开门;其他请求不响应。当电梯处在第三层时, 若它收到二层电梯外上下楼请求、 一层电梯外上楼请求、 电梯内到达二层和一层请求时, 电梯会按照指令下降到相应楼层并开门、关门;若收到三层电梯外下楼请求只做开门响应,随后根据使用者进入电梯后请求进行响应;其他请求不响应。若电梯正处在上升状态中收到外部请求, 则只响应比当前所在楼层高的楼层的请求, 到达需要到达最高楼层时再响应低层请求。 若电梯正处在下降状态中收到外部请求, 则只响应比当前所在楼层低的楼层的请求,到达需要到达最低楼层时再响应高层请求。不得用于商业用途仅供个人参考三、状态原理图说明本系统的状态比较复杂,状态中嵌套状态。图3.1 为系统状态原理说明图,其中 b0、b1、 b2、 b3 分别表示 Button(0) 、Button(1)、Button(2)、 Button(3);f0、f1、f2 分别表示 floor(0) 、 floor(1) 、floor(2) ; S0 表示一层上状态、 S1U 和 S1D 分别表示二层上和下状态、 S2 表示三层下状态。图 3.1 状态原理图本状态图主要说明系统运行当前状态与下一个状态的关系,考虑了从当前状态到下一状态的所有触发因素,较为复杂。不得用于商业用途仅供个人参考四、源程序以及注释LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.all;ENTITY elevator15 ISPORT( CLK: IN STD_LOGIC;reset: IN STD_LOGIC;Button : IN STD_LOGIC_VECTOR(3 DOWNTO 0); -button(0) 为 一 层外 上升 请 求 , button(1) 为二 层 外 上 升 请求 ,-button(2)为二楼外下降请求, Button(3)为三层外下降请求;floor : IN STD_LOGIC_VECTOR(2 DOWNTO 0); -floor(0) 为电梯内一层请求按钮, floor(1) 为电梯内二层请求按钮, -floor(2) 为电梯内三层请求按钮;position: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-position 表示电梯当前位置信息 ;door : OUT STD_LOGIC;- 1为开门, 0为关门;up_down : OUT STD_LOGIC- 1为上楼,0为下楼;);END elevator15;ARCHITECTURE Behav OF elevator15 ISTYPE State IS (S0,S1U,S1D,S2);不得用于商业用途仅供个人参考-S1U 为二楼上状态, S1D 为二楼下状态;SIGNAL current_state : State;-中间变量:当前状态SIGNAL next_state : State;-中间变量:下一状态SIGNAL up :STD_LOGIC;-中间变量:上升下降状态SIGNAL dor : STD_LOGIC; BEGIN-中间变量:开门关门状态P1:PROCESS(CLK)BEGIN-状态转换进程;IF CLKEVENT AND CLK=1 THENcurrent_state = next_state;END IF;END PROCESS;-检测时钟上升沿VARIABLE button_var: STD_LOGIC_VECTOR( 3 DOWNTO 0);VARIABLE floor_var : STD_LOGIC_VECTOR( 2 DOWNTO 0);VARIABLE cat : STD_LOGIC;VARIABLE ca_time : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF reset = 1 THEN next_state = S0; position = 0001; cat:=0;-复位处理,初始状态为一层不得用于商业用途仅供个人参考ca_time:=0000;up=Z;dor-一楼状态处理;position dordor=0;button_var(0):=0;floor_var(0):=0;IF (floor_var(1) or floor_var(2)=1 THENnext_state=S1U;ca_time:=0000;up=1;ELSEnext_state NULL;END CASE;ELSIF (button_var(1) OR button_var(2) or button_var(3) or floor_var(2) or floor_var(1)=1 THENnext_state = S1U;ca_time:=0000;up = 1;ELSEnext_state position WHEN1101=dor=1;dor=0;floor_var(1):=0;IF (button_var(1) or button_var(3) or floor_var(2)=1 THEN next_state=S2;ca_time:=0000;button_var(1):=0;ELSIF ( button_var(0) or button_var(2) or floor_var(0)=1THENnext_state=s0;ca_time:=0000;button_var(2):=0;ELSEnext_state NULL;END CASE;ELSEIF button_var(1)=1 THEN-二楼外上升请求;CASE ca_time ISWHEN 0011 =dordor=0;button_var(1):=0;IF(floor_var(2)orbutton_var(3)=1THENnext_state=S2;ca_time:=0000;ELSIF ( button_var(0) or floor_var(0) or button_var(2)=1THENnext_state=s0;ca_time:=0000;up=0;ELSE next_state NULL;END CASE;ELSE不得用于商业用途仅供个人参考IF (button_var(3) or floor_var(2)=1 THEN-二楼无上楼,开门请求,但三层有下楼或开门请求;next_statedordor=0;button_var(2):=0;IF(floor_var(0) or button_var(0)=1THENnext_state=s0;ca_time:=0000;up=0;ELSEnext_state NULL;END CASE;ELSIF (button_var(0) or floor_var(0)=1 THEN 不得用于商业用途仅供个人参考-电梯处于二楼上状态,仅有一楼信号要处理next_state=s0;ca_time:=0000;up=0;ELSEnext_state- up=0时的情况;position WHEN 1101 =dor=1;dor=0;floor_var(1):=0;IF (button_var(2) or button_var(0) or floor_var(0)=1 THEN next_state=s0;ca_time:=0000;button_var(2):=0;不得用于商业用途仅供个人参考ELSIF ( button_var(1) or button_var(3) or floor_var(2)=1THENnext_state=S2;ca_time:=0000;button_var(1):=0;ELSEnext_state NULL;END CASE;ELSEIF button_var(2)=1 THENCASE ca_time ISWHEN 0011 =WHEN 1101 =button_var(2):=0;dor=1;dor=0;IF (floor_var(0) or button_var(0)=1THENnext_state=s0;ca_time:=0000;ELSIF ( button_var(1) or floor_var(2) or button_var(3)=1THEN不得用于商业用途仅供个人参考next_state=S2;ca_time:=0000;up=1;ELSEnext_state NULL;END CASE;ELSEIF (button_var(0) or floor_var(0)=1 THENnext_stateWHEN 1101 =button_var(1):=0;dor=1;dor=0;IF(floor_var(2) or button_var(3)=1THENnext_state=S2;ca_time:=0000;不得用于商业用途仅供个人参考up=1;ELSEnext_state NULL;END CASE;ELSIF (button_var(3) or floor_var(2)=1 THEN next_state=S2;ca_time:=0000;up=1;ELSEnext_state-电梯三楼状态处理;position WHEN 1101 =button_var(3):=0;floor_var(2):=0;dor=1;dor=0;IF (floor_var(0) or floor_var(1)=1 THENnext_state=S1D;ca_time:=0000;up=0;ELSEnext_state NULL;END CASE;ELSIF (button_var(0) OR button_var(1) OR button_var(2) or floor_var(0) or floor_var(1)=1 THENnext_state =S1D;ca_time:=0000;up = 0;ELSEnext_state =S2;ca_time:=0000;不得用于商业用途仅供个人参考END IF;END CASE;END IF;END PROCESS;P3:PROCESS(up,dor)-电梯上下,开关门显示;BEGINup_down=up;door=dor;END PROCESS;END Behav;五、仿真结果与说明图 5.1图 5.1 是基本基本功能仿真,使用者在一层电梯外按下上升不得用于商业用途仅供个人参考( Button(0)=1)按钮,随后开门( door=1)。使用者进入后按下到达三楼请求( floor(2)=1 ),电梯关门( door=0)并上升( up_down=1)最后到达三层( position=3)并开门( door=1)。图 5.2图 5.3图 5.2 是基本记忆功能仿真,电梯处于初始一层关门状态。三层不得用于商业用途仅供个人参考外使用者按下三层下按钮( floor(3)=1 )电梯上升到三楼开门。然而在上升到二楼时一层外有人按下上楼按钮。 此时电梯先完成上升到三层,然后再下降回到一层响应一层外请求。图 5.3 表明在电梯上升过程中可以接收较高楼层的要求。开始时有人按下一层外上升( Button(0)=1)按钮,电梯开门使用者进入并按下到达三层( floor(2)=1 )请求,此时电梯关门并上升。在电梯上升但未到达二层时,二层外有人按下上楼( Button(1)=1)请求,因此当电梯到达二层( position=2)后停止并开门,待二层使用者进入后再完成第一个使用者的请求到达三层。图 5.4图 5.4 仿真了系统对同一楼层两个不同到达楼层的响应。有两人先后按下二层上按钮( Button(1)=1),此时电梯从一层上升至二层并开门。待两人进入后按照先后顺序按下到达三层(floor(2)=1 )和到不得用于商业用途仅供个人参考达一层( floor(0)=1 )按钮,此时电梯也按照俩人按键先后顺序先到达三层( position=3),然后再到达一层( position=1)。需要注意的是,本次实验第二个使用者在二层外的按键是错误的, 因为他要到达一层应该按下二层下按钮( Button(2)=1),然而他却错误的按下了二层上按钮( Button(1)=1)。因此同一使用者在电梯内和电梯外提出不同要求时,主要响应电梯内请求。图 5.5 和图 5.6 都是综合仿真实验。图 5.5不得用于商业用途仅供个人参考图 5.6图 5.5 是一个在电梯中常见的复杂情况仿真,本实验中共有四个人提出请求。首先一外层有人提出上升( Button(0)=1)请求并按下上升到三层( floor(2)=1 )按键,电梯上升过程中二层外分别有人按下上升( Button(1)=1)和下降( Button(2)=1)的按钮,同时三层外有人按下下降( Button(3)=1)按钮。随后电梯到达二层停止,待俩人进入后都没有按下任何到达楼层请求。 电梯随即到达三层, 三层使用者进入后也没有按下任何到达楼层按钮, 此时电梯响应此前按下二层下降按钮的使用者的请求再次下降到二层。图 5.6 是一个多人次时间交错综合仿真,首先是三层外有人提出下降请求( Button(3)=1),此时电梯开始上升;在电梯上升到二层和三层之间时二层外有人按下下降按钮(Button(2)=1),此时电梯继续上升到达三层,待三层使用者进入后按下到达一层( floor(0)=1 )按钮后电梯下降到二层,使第二个使用者进入;第二个人打算去一层,看到第一个人已经按下到达一层按钮, 就没有再次按下。 当电梯回到不得用于商业用途仅供个人参考一层的瞬间三层外又有人按下下降按钮(Button(3)=1),此时电梯在一层做短暂停留后再次回到三层, 三层使用者进入后按下到达一层按钮( floor(0)=1 ),电梯再次回到一层。通过六次仿真可以看出系统基本完成了设计要求。六、实验难点和创新1. 本实验状态较为复杂, 状态中嵌套状态, 状态图的绘制比较困难。本实验使用的状态图考虑了不同状态转移过程中的所有情况。2. 外部请求按键较多,电梯在上升过程中只能响应高于其当前所在楼层的请求,反之在下降过程中只能响应低于其当前所在楼层的请求。而且系统要求记忆目前没有被响应的请求。图5.2 和图 5.3 对此功能进行了仿真。本系统的设计考虑了实际应用中的记忆存贮问题。3. 使用者在电梯内外提出的请求不一致,例如图 5.4 中进行仿真的情况。使用者本来是要下楼,但在电梯外却按下上楼按钮。对于这种情况,系统认定使用者进入电梯后提出的请求为最终请求。不得用于商业用途仅供个人参考仅供个人用于学习、研究;不得用于商业用途。For personal use only in study and research; not for commercial use.Nur f r den pers?nlichen f r Studien, Forschung, zu kommerziellen Zwecken verwendet werden.Pour l tude et la recherche uniquement des fins personnelles; pas des fins commerciales. , .以下无正文不得用于商业用途
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!