1、电梯控制系统的设计与实现1系统设计分析11系统的整体设计在电梯控制系统的设计与实现1系统设计分析1.1 系统的整体设计在电梯控制系统的设计中,核心是电梯运行的状态控制器的设计。为突出状态之间的转换关系,令电梯以同一速率升降。主要需要考虑: ()电梯的人工手动控制;()电梯的运行状态显示;(3)电梯的策略控制设计。本文将电梯设计分成3个模块:Veryhardd:该模块是整个程序的核心,是电梯控制器设计部分,主要的设计思想是将电梯的状态划分为4个:一层状态(c1)、二层状态(c2)、三层状态(c3)、开门状态(kai)。对每一个状态分析其所有的可能。Seg:功能是将楼层信号转换成可以用数码管显示的
2、信号Dian:该模块的功能是将电梯工作模式利用1616点阵显示出来。电梯状态控制器部分用状态机来实现。基本模型如下: (1)每层电梯入口处设有上下请求开关,电梯内设有乘客到达层次的停站请求开关(2)设有电梯所处位置指示装置及电梯运行模式(上升或下降)指示装置(3)电梯每秒升(降)一层楼(4)电梯到达有停站请求的楼层后,经过1s电梯门打开,开门指示灯亮,开门4s后,电梯门关闭(开门指示灯灭),电梯继续运行,直至执行完最后一个请求信号后停在当前层。(5)能记忆电梯内外的所有请求信号,并按照电梯运行规则次序响应,每个请求信号保留至执行后消除(6)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位
3、置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕,如更高层有下楼请求,则直接升到有下楼请求的最高楼层接客,然后便进入下降模式,当电梯处于下降模式时,则与上升模式相反。(7)电梯初始状态为一层开门1.2 电梯状态控制器的设计1.2.1 设计思路 ()电梯输入输出端口设计。输入端口包括: 在电梯外部的升降的请求端口(up1、up2、down2、down3), 一层不需要有下降请求, 最高层不需要上升请求, 中间层上升、下降请求端口都应具备,高电平表示有请求信号; 在电梯内部的各层停留的请求端口(k1、k2、k3),高电平表示有请求信号;一个用于驱动电梯的上升下降等动作时钟输入端口
4、以及一个时钟频率比电梯高得多的按键时钟输入端口(clk)。而响应的输出端口包括:电梯内部的各层停留响应端口(a1、a2、a3); 在电梯外部显示电梯的位置端口(site);电梯开门关门的状态指示端口(door),0表示关门,1表示开门以及电梯升降指示端口(mode),0表示上升,1表示下降。 () 电梯控制器的实现通过状态机实现,状态机设置了四个状态,电梯处于一层状态(c1)、电梯处于二层状态(c2)、电梯处于三层状态(c3)及电梯处于开门状态(kai)。每个状态之间的转换条件由设计要求决定。 1.2.2程序设计 在电梯控制器的设计中, 只设计了一个进程,以clk为进程激励信号,当state(
5、电梯状态)c1时,电梯在一层转为上升模式,定义z1说明有任何请求电梯都会被破坏初态,z0电梯初态为一层开门;如果电梯为一层关门状态:一层有停电梯或一层有上升请求时电梯转为开门状态;若电梯有二层上升或二层停电梯请求时,statec2;若电梯有三层下降或三层停电梯请求时,statec3,并定义此情况为x1;若电梯有二层下降请求时,statec2,电梯转为下降模式。当statec2时,电梯处在二层上升模式时,若电梯二层有停电梯或二层有上升的请求时,电梯转为二层开门状态;若电梯三层有下降或三层有停电梯请求或x1时,statec3;若电梯有二层下降或一层下降或一层停电梯请求时,电梯转为下降模式;当sta
6、tec2时,电梯处在二层下降模式时:若电梯二层有停电梯或二层有下降请求时,电梯转为二层开门状态;若电梯有一层上升或一层停电梯或y1时,statec1;若电梯二层有上升或三层有下降或三层有停电梯请求时,电梯模式转为上升。当statec3时,电梯处于三层下降模式,若电梯有三层停电梯或三层有下降请求时,电梯转为三层开门状态;若电梯二层有下降或二层有停电梯请求时,statec2;若电梯一层有上升或一层有停电梯请求时statec2;并记忆此情况为y1;若电梯有二层上升请求时,statec2;并转为上升模式;当statekai时,电梯处于开门状态,并保证开门4s。1.3 显示模块的设计表 1.3译码器真值
7、表采用动态显示模式, 在扫描频率大于人眼睛的视觉暂留频率(24HZ)以上,就可以达到点亮单个七段数码管显示器。 表1.3译码器真值表楼层123输入001010100输出0000110101101110011111.4电梯模式显示模块设计一个1616点阵显示电梯的运行模式,上升用向上箭头表示,见表1.4.1,下降用向下箭头表示,见表1.4.2。表1.4.1向上箭头译码真值表 输入输出001100001100000000000100000110000000000001010011000000000000011001100000000000000111111111*11000111111*11001
8、0110000000000000101000110000000000001011000110000000000011000000110000000000others00000000000000001.5 输入端口设计在状态机的设计中, 定义了7个按键输入端。分别是:(1)1层上升请求按键、(2)2 层上升请求按键、(3)3层下降请求按键、(4)2层下降请求按键 、(5) 电梯1层停止请求按键、(6)电梯2层停止请求按键(7)电梯3层停止请求按键。1.4.2向下箭头译码真值表输入输出001100000000001100000100000000000001100001010000000000001
9、100011000000000000001100111111111*11000111111*110010000000000000110101000000000000011001011000000000001100011000000000000110000others00000000000000002建立模型状态机设置了四个状态,电梯处于一层状态(c1)、电梯处于二层状态(c2)、电梯处于三层状态(c3)及电梯处于开门状态(kai)。状态机设计状态转换如图2所示,每个状态之间的转换条件如表2所示。图2 状态机的状态转换图表2 状态机状态转换条件表Source StateDestination S
10、tateConditongC1KaiZ=0 or tingl(1)=1 or upl(1)=1C1C2downl(2)=1or downl(3)=1 or tiongl(3)=1 or upl(2)=1 or tingl(2)=1C2Kaitingl(2)=1 or upl(2)=1 or downl(2)=1C2C1Upl(1)=1 or tingl(1)=1 or y=1C2C3downl(3)=1 or tingl(3)=1 or x=1C3Kaitingl(3)=1 or downl(3)=1C3C2downl(2)=1 or tingl(2)=1 or upl(1)=1 or tin
11、gl(1)=1 or upl(2)=13 仿真结果及分析在完整的系统设计中使用Max+PlusII10.0软件完成VHDL 描述和原理图的层次设计。在底层设计中,用VHDL分别实现每一个模块的功能,将每个模块生成可供Max+PlusII调用的器件符号,再将这些器件符号连接在一起构成整个系统原理图,如图3.1所示。综合编译完成后,选择 clk时钟信号为 k,这里为使编译快速,观察方便,使用clk为10us,配置适当的输入信号, 得到如图3.2所示的仿真结果。原先电梯停留在第一层,电梯外第一层有上升请求,电梯先开门载客然后上升,电梯上升到二层,有上升的要求, 继续上升,又有三层下降的请求,接着电梯
12、模式转为下降,到二层又有二层下降请求,要求下降到一层,电梯开门载客,下降到一层,最后电梯停留在一层。 图3.1 系统原理图图.2 三层电梯的仿真波形4 总结通过一学期对这门课的学习,基本掌握了一些基础知识,软件的运用和VHDL语言的使用,但思路还总局限于C语言的思路里,有待于继续学习与提高。在程序的调试过程中,经常会遇到一些问题,经过努力终于运行成功了,本人体会到一点,在程序的编写过程中,要先输入整体框架,保证语法正确,一步一步输入,不要整篇程序都先输入,导致调试过程中遇到许多错误。对于本人学习这门课的编程是重点,本人的毕业设计就是基于这门课的,所以本人在VHDL的研究上还要继续努力,争取早日
13、能掌握好这门语言。谢谢老师教导!附录A: veryhardd模块程序library ieee;use ieee.std_logic_1164.all;entity veryhardd isport(up1,up2,down2,down3,clk,k1,k2,k3:in std_logic;site:out std_logic_vector(3 downto 1);a1,a2,a3:out std_logic;mode,door:out std_logic);end veryhardd;architecture veryhardd_arc of veryhardd istype state_ty
14、pe is(c1,c2,c3,kai);beginprocess(clk)variable upl,downl,tingl,cengl:std_logic_vector(3 downto 1);variable mo,x,y,z:std_logic;variable cnt1,cnt2:integer;variable state:state_type;begin if( clkevent and clk=1) then if (up1=0 )then upl(1):=1; end if; if(up2=0) then upl(2):=1; end if; if(down3=0) then d
15、ownl(3):=1; end if; if(down2=0) then downl(2):=1; end if; if (k1=0 )then tingl(1):=1; end if; if (k2=0) then tingl(2):=1; end if; if (k3=0 )then tingl(3):=1; end if; if (cnt1cengl:=001; mo:=0; if upl/=000or downl/=000or tingl/=000then z:=1; end if; if z=0 then door=1; else doorcengl:=010; if (mo=0 )
16、then if tingl(2)=1 or upl(2)=1 then state:=kai; tingl(2):=0; upl(2):=0; elsif(downl(3)=1or tingl(3)=1or x=1)then state:=c3; x:=0; elsif(downl(2)=1or upl(1)=1or tingl(1)=1)then mo:=1; end if; else if(tingl(2)=1 or downl(2)=1)then state:=kai; tingl(2):=0; downl(2):=0; elsif(upl(1)=1or tingl(1)=1or y=1
17、)then state:=c1; y:=0;elsif(upl(2)=1ordownl(3)=1or tingl(3)=1)then mo:=0; end if;end if; when c3=mo:=1; cengl:=100; if (tingl(3)=1 or downl(3)=1 )then state:=kai; tingl(3):=0; downl(3):=0; elsif(downl(2)=1 or tingl(2)=1)then state:=c2; elsif (upl(1)=1 or tingl(1)=1) then state:=c2; y:=1; elsif (upl(
18、2)=1) then state:=c2; mo:=0; end if; when kai=door=1; if (cnt23 )then cnt2:=cnt2+1; else door=0; cnt2:=0; if (cengl=001 )then state:=c1; elsif(cengl=010) then state:=c2; else state:=c3; end if; end if; end case; cnt1:=0;end if;end if;site=cengl;a1=tingl(1);a2=tingl(2);a3=tingl(3);modeqqqqqqqqqqqqqqqqqqqqqq=0000000000000000; end case; end if; end if; selqqqnull; end case; end if; end process;end seg_arc;电梯控制系统的设计与实现学院:控制理论与控制工程学院姓名:赵辉学号:640129
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1