电梯设计文档.docx

上传人:b****6 文档编号:4765680 上传时间:2022-12-08 格式:DOCX 页数:22 大小:460.96KB
下载 相关 举报
电梯设计文档.docx_第1页
第1页 / 共22页
电梯设计文档.docx_第2页
第2页 / 共22页
电梯设计文档.docx_第3页
第3页 / 共22页
电梯设计文档.docx_第4页
第4页 / 共22页
电梯设计文档.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

电梯设计文档.docx

《电梯设计文档.docx》由会员分享,可在线阅读,更多相关《电梯设计文档.docx(22页珍藏版)》请在冰豆网上搜索。

电梯设计文档.docx

电梯设计文档

 

*************************************************

 

电梯系统设计文档

*************************************************

 

1.需求分析3

1.1需要实现的功能3

1.1.1UML需求分析模型3

2.设计指标4

2.1逻辑指标4

2.2非逻辑指标4

3.系统设计5

3.1总体结构描述5

3.1.1电梯分为两组,每组三个,使用的楼层为16(-1、1、--------15)层.5

3.1.2控制方式:

5

3.1.3结构模块设计:

6

3.1.4中断捕获部分:

7

3.1.5楼层信息:

7

3.1.6电梯信息:

8

3.1.7电梯调度部件:

8

3.1.8控制部件(CU):

8

3.1.9电梯调度方案:

8

3.1.10楼层面板设置:

8

3.1.11电梯面板设置:

9

3.2算法设计9

3.2.1调度算法9

3.2.2组内控制算法11

3.2.2.1组内控制流程描述11

3.2.2.2组内控制算法流程图11

3.2.3电梯(单个)控制算法13

4.硬件实现13

4.1采用的技术路线及芯片选择14

4.2硬件实现描述14

4.2.1组内状态机描述14

4.2.2单个电梯状态机描述16

4.2.3模块描述16

4.2.4信号描述19

5.调试方案20

5.1白盒测试20

5.2黑盒测试24

5.2.1模拟界面说明24

5.2.2测试流程24

5.3测试总结25

6.任务分工25

7.体会和感想26

 

1.需求分析

1.1需要实现的功能

设计出一个分组电梯系统,设计的功能:

该电梯系统运用到至少九层的建筑,实现二组六个电梯的分组控制,每个组有三个电梯,组内电梯具有同时或者不同上下、等待等功能,并且保证二组之间至少有一个电梯与其他电梯不同时上下。

1.1.1UML需求分析模型

(1)

用例名称:

上楼

参与执行者:

用户、电梯

前置条件:

电梯已开启

主事件流:

1.用户按下某一组电梯的向上键;

2.如果满足用户要求,所有电梯是否全朝一方向运行,如果是则不满足用户请求转去执行5.,否则进行调度。

3.该组电梯控制中心进行调度

3.1如果按照调度算法能选出一个最佳电梯,满足用户的请求。

否则不满足用户的请求转去执行5.。

3.2被请求电梯运行到用户所在楼层停下,为用户服务。

4.用户按下所去楼层的按钮,电梯响应,上升到用户所要求楼层。

如果在运行当中有其他用户请求该电梯为其上楼服务转去执行2.。

5.结束。

辅助事件流:

4.a用户按下当前楼层以下的楼层按钮,不予响应,转入主事件流步骤4.。

后置条件:

无。

(2)

用例名称:

下楼

参与执行者:

用户、电梯

前置条件:

电梯已开启

主事件流:

1.用户按下某一个电梯的向下键;

2.如果满足用户要求,所有电梯是否全朝一方向运行,如果是则不满足用户请求转去执行5.,否则进行调度。

3.该组电梯控制中心进行调度

3.1如果按照调度算法能选出一个最佳电梯,满足用户的请求。

否则不满足用户的请求转去执行5.。

3.2被请求电梯运行到用户所在楼层停下,为用户服务。

4.用户按下所去楼层的按钮,电梯响应,下降到用户所要求楼层。

如果在运行当中有其他用户请求该电梯为其下楼服务转去执行2.。

5.结束。

辅助事件流:

4.a用户按下当前楼层以上的楼层按钮,不予响应,转入主事件流步骤4.。

后置条件:

无。

图1.1用例图

 

2.设计指标

2.1逻辑指标

实现一个分组电梯系统,达到1.1所要求的所有功能。

2.2非逻辑指标

工作速度:

达到目前市场同类产品平均工作速度;

系统消耗:

须符合国家电梯消耗标准;

可靠性:

达到年平均故障5次以下;

开发周期:

两个月半;

成本价格:

尽力控制在目前市场同类产品平均价格,可以略微高出。

注:

(具体市场同类产品平均工作速度和平均价格请参考市场评估报告)。

 

3.系统设计

3.1总体结构描述

3.1.1电梯分为两组,每组三个,使用的楼层为16(-1、1、--------15)层.

3.1.2控制方式:

使用混合控制,每组分别设置一个控制器,控制组内的电梯;组间再设置一个总的控制器,来控制组间的电梯。

控制请求到来后,先向组内的控制器发出请求,若组内可以处理,则直接发出控制信号,否则向组件控制器请求,由组间控制器发出控制信号。

 

图3.1控制流程图

 

控制结构如下图:

图3.2控制结构框图

3.1.3结构模块设计:

整个电梯控制系统由五部分构成,分别是调度部分,控制部分,中断部分,电梯信息及楼层信息部分。

系统结构框图如下图:

图3.3系统结构框图

3.1.4中断捕获部分:

它是监控楼层信息,发现有用户请求立即将请求信息给控制器CU。

用户请求有两种,向上(up),向下(down)。

结构框图如下:

图3.4中断模块的结构

3.1.5楼层信息:

用楼层状态控制字来表示,每层楼的楼层状态字共八位,前四位表示楼层的地址(Lift_Add),后四位中,第一位表示当前楼层是否有电梯(Lift_in),第二位表示是否有启动请求(Stert),第三位表示是否有向上请求(Up),第四位表示是否有向下请求(Down)。

如下图所示:

图3.5楼层状态控制字FSW(8位)

3.1.6电梯信息:

用电梯状态控制字表示,电梯状态字共24位,前四位表示电梯状态,第一位表示空闲,第二位表示向上,第三位表示向下,第四位表示等待人进出;接下来四位表示当前电梯的位置;最后十六位表示目的楼层。

如下图所示:

图3.6电梯状态控制字LSW(24位)

3.1.7电梯调度部件:

根据中断信息,电梯状态控制字LSW在本组找出最佳的响应电梯。

具体调度算法框图见后。

3.1.8控制部件(CU):

它是整个系统的核心,它的功能是:

(a)时事监视电梯的状态变化,如发生请求,立即调度条度部件寻找响应电梯,并将结果所存到DDR中;

(b)参考另一组电梯的状态,决定是否响应用户请求;

(c)改变电梯状态控制字,以实现对电梯的控制;

(d)当处理完用户响应后,提示用户,并清除此次请求,以准备接收下次请求

3.1.9电梯调度方案:

(a)原则:

尽量优先选择空闲电梯,同时兼顾运行电梯,在二者之间权衡,选择最佳调度电梯。

(b)当电梯向一个方向运行时,只对本方向前方的请求进行应答,直到满足本方向前方无请求时,才允许对反方向的请求进行应答。

采用当前内部控制面板上有的请求,只要经过所在楼层均会立即响应.在所有内部外部请求都已完成后,电梯转入空闲状态。

3.1.10楼层面板设置:

除-1层和15层分别只有上/下按钮外,每个楼层(电梯外)的面板都有两个按钮,分别指示上楼和下楼请求。

当按下上/下按钮后,对应按钮灯亮,当按下启动按钮后,电梯关门,开始启动。

如果电梯已经到达该楼层,按钮灯熄灭。

3.1.11电梯面板设置:

每个电梯都有18个按钮,16个是目的楼层号,一个开门、一个关门。

当按下按钮后,对应按钮灯亮,如果电梯已经到达目的楼层,按钮灯熄灭。

3.2算法设计

3.2.1调度算法

通过设置一个当前偏移距离dis来调度电梯,哪个电梯偏移距离越小它越就有优势被选中。

设电梯i,dis[i]为其偏移距离,priority为电梯权重

abs[i]=|请求楼层与电梯当前所在楼层差|;

(1)电梯空闲时

dis[i]=abs[i];式[1]

(2)电梯运行时

dis[i]=abs[i]+priority;式[2]

通过式[1]和式[2]可以看出空闲电梯被选中的可能性高于运行电梯,即我们赋予了空闲电梯更高的优先权。

我们这样设计是为了提高整个电梯系统中电梯的使用率,同时也充分地保证了运行中的电梯响应那些它可以满足的用户请求。

调度算法通过初试一个最大的dis,以及初始化enable=0,然后去寻找最佳电梯。

(3)电梯空闲时,满足dis[i]<=dis;

dis=dis[i];

best_lift=i;

enable=1;

(4)电梯运行时,满足[电梯运行方向与请求方向相同]&&[请求楼层在电梯运行方向的前方]&&[(abs[i]+priority)<=dis]

dis=dis[i];

best_lift=i;

enable=1;

(3)和(4)就是电梯被选中的条件,通过对一组三个电梯的逐个判断最终能选出一个最佳电梯。

如果调度不出一个电梯去满足用户的要求,则enable=0,best_lift=0;

 

图3.7电梯调度算法流程图

3.2.2组内控制算法

3.2.2.1组内控制流程描述

(1)等待用户请求,

(2)将请求信息传给调度部件,等调度部件寻找最优电梯

(3)将调度结果,锁存到DDR寄存器中

(4)查看调度产生的结果有效位是否为1,如不是,不响应此次请求,并提示用户;

(5)否则,查看响应后是否造成,组内电梯通上下,如不是,相应此次请求,并提示用户;

(6)否则,查看响应后是否造成,组间六个电梯通上下,如不是,相应此次请求,并提示用户;

(7)否则,不响应此次请求并提示用户;

(8)清除此次请求,准备接收下次请求。

3.2.2.2组内控制算法流程图

图3.8组内CU控制算法图

3.2.3电梯(单个)控制算法

下面试单个电梯的控制算法,单个电梯控制器根据电梯状态字LSW,决定电梯的运行状态。

图3.9单个电梯控制算法图

4.硬件实现

4.1采用的技术路线及芯片选择

考虑到可编程逻辑器件具有如下特点:

(1)当前中等批量,需求变化快,要求具有较高性能时采用;

(2)开发周期短、灵活性高;

(3)性能、功耗、资源利用可能不是最优的;

同时也考虑到电梯系统的需求和设计指标,我们决定采用HDL硬件描述语言verilog进行电梯系统的设计和实现,整个开发过程主要在XilinxISE7.1i开发平台上进行。

通过XilinxISE7.1i综合并进行模拟后,下载到FPGA芯片。

4.2硬件实现描述

状态机描述、模块描述、信号描述

4.2.1组内状态机描述

它描述组内控制的状态。

图4.1组内控制状态图

 

4.2.2单个电梯状态机描述

它描述单个电梯控制的状态。

图4.2单个电梯控制状态图

4.2.3模块描述

系统共有六大模块:

分别是调度模块,控制模块,中断模块,电梯信息及楼层信息模块,还有另一组的状态模块。

图4.3模块描述图

 

各个模块的作用及组成,前面3.1系统结构设计中已详细说明(图四——图十),下面就系统各个模块的具体实现详细说明。

如下图:

图4.4模块实现图

 

具体实现时划为19个模块、分5层,各个模块的层次,如下图:

图4.5具体模块结构实现层次图

4.2.4信号描述

下面就控制状态图(图4.1),模块实现图(图4.3)中所用到的数据信号、控制信号给与描述。

Requst:

请求捕获信号,当用户在某层楼发出请求后,该位置1;

Des_floor:

目的楼层信号,给位为1时表示电梯要在给位对应的楼层停止。

Free:

表示电梯的忙闲状态,为1时表示空闲。

Wait:

表示电梯处于等待用户进出的状态。

UP:

请求类型信号,当Free=0时,UP为1时表示向上。

UPLE:

UP置1信号。

DDRLE:

寄存器DDR的使能信号,DDR是用来锁存调度部件输出结果。

Answer:

DDR的最高位,表示调度部件选择的最优电梯有效,即当Answer=1时,结果有效。

Same_in:

表示允许请求后,组内三个电梯是否状态相同,为1时表示相同。

Same_out:

表示允许请求后,所有六个电梯是否状态相同,为1时表示相同。

LSW:

楼层状态控制字(各位的具体含义见图3.5);

FREELE:

置LSW的Free位为1的使能信号。

LSW1:

第一个电梯的状态控制字,用来表示和控制第一个电梯(各位的具体含义见图3.6)。

LSW2:

第二个电梯的状态控制字,用来表示和控制第二个电梯(各位的具体含义见图3.6)。

LSW3:

第三个电梯的状态控制字,用来表示和控制第三个电梯(各位的具体含义见图3.6)。

FILE1:

改变第一个电梯状态的使能信号。

FILE2:

改变第二个电梯状态的使能信号。

FILE3:

改变第三个电梯状态的使能信号。

Sorry:

表示系统暂时没有成功响应用户的此次请求。

Ok:

表示系统成功响应用户的此次请求。

 

5.调试方案

5.1白盒测试

先分别对各个模块用ModelSimSE6.0进行前仿和后仿;再对总模块进行前仿,确保各个信号与设计相符;最后对总模块进行后仿,特别注意对边沿情况进行完整的测试。

下边是部分测试代码

//*******这个模块主要测试第一组电梯**************

initialbegin

//***********************************//初始化

floor_address=3;

up_user1=1;

down_user1=1;

address_user1='h1F;

start1=1;

address_ok1=1;

reset=0;

clk=0;

//***********************输入信号*************************

#100;

reset=1;

//Addstimulushere

#320floor_address=7;up_user1=0;

#200up_user1=1;

#5000$stop();

address_user1='h1A;

address_ok1=0;

#100address_ok1=1;

#100

address_user1='h1E;

address_ok1=0;

#100address_ok1=1;

#50start1=0;

#100start1=1;

#5000$stop();

#500$stop();

floor_address=6;

#220up_user1=0;

#200up_user1=1;

#300

//address_user='h0E;

#5000$stop();

end//***********************第一组电梯测试结束****************

 

//*******这个模块主要测试第二组电梯**************

initialbegin

//***********************************//初始化**************

up_user2=1;

down_user2=1;

address_user2='h0F;

start2=1;

address_ok2=1;

reset=0;

clk=0;

//***********************输入信号*************************

#100;

reset=1;

//Addstimulushere

#120floor_address=5;

up_user2=0;

#200up_user2=1;

#5000$stop();

address_user2='h1A;

address_ok2=0;

#100address_ok2=1;

#100

address_user2='h0C;

address_ok2=0;

#100address_ok2=1;

#50start2=0;

#100start2=1;

#5000$stop();

#500$stop();

floor_address=6;

#220up_user2=0;

#200up_user2=1;

#300floor_address=4;

#220up_user2=0;

#200up_user2=1;

#5000$stop();

end//第二组电梯测试结束

always#20clk=~clk;

前仿波形图

后仿波形图

5.2黑盒测试

5.2.1模拟界面说明

(1)除第负一层只有向上和第十五层向下外,其余每层楼有的每一组分别有一个向上和向下的按钮,每个按钮可以用一个脉冲开关来表示,按上脉冲开关表示按下电梯按钮,表达一个请求;

(2)每个电梯内部有一个按钮面板,每个电梯按钮对应一层楼的请求,每个按钮可以用脉冲开关来表示按下否,脉冲开关按下表示按下电梯按钮,此时对应的灯会亮;

(3)每个电梯都有十六个指示灯来表示此电梯当前在哪一层。

5.2.2测试流程

(1)首先在电梯开始加电时不加请求,观察电梯是否状态稳定的停在1楼.

(2)在初态时(即所有电梯稳定的停在1楼),按下这两组电梯的向上召唤,观察所有电梯中能否有至少一个电梯不响应,仍然停在1楼,然后并撤销控制面板的请求.

(3)在电梯内控制面板上在第一组加4,5在第二组加6,7层的目的地请求,观察这每组中两个电梯能否正常暂停在这4,5层或6,7层,并撤销控制面板的请求.

(4)在行驶过4,5层后在第一组分别按下这两层的向上召唤请求,同时还在5楼按下向下召唤,观察这组剩下这个电梯是否在只响应其中第4层,并且在到达5层时能否响应5层,并且当这组在有电梯下行时能否响应5层并撤销电梯外部召唤.

(5)在第二组未到第6层的电梯运行时在电梯内控制面板加上该组第6层的请求,检查电梯是不是正常停下,并撤销控制面板的请求。

(6)在第二组未到第7层的电梯运行时按下7层的向上召唤请求,观察改组剩下的这个电梯是否能同时撤销向上的召唤,处于等待状态.

(7)下行以后,只在5楼是目的地,在它停的时候无请求,观察它是否稳定停止在5楼.

(8)待所有电梯稳定地停在一层时,分别在第9,8,7层按下第一组的向下召唤,分别在第6,5,4层按下第二组的向下召唤,看这六个电梯是否在有一个电梯不响应当前这些请求.并撤销电梯外部召唤..

5.3测试总结

通过系统详细的测试,系统的输出结果与我们的预期结果一致,系统并未出现问题,说明系统基本上是无故障的。

在我们的测试过程中,我们真切的体会到了可测性设计的重要性。

在我们最初的测试中,对硬件综合时,发现了的警告并没有重视,直到仿真不通过,后来经老师提醒后,我们修改或确认了所有的所有的警告,消除了很多隐患。

 

6.任务分工

6.1任务和创新

1.完成的电梯控制系统是:

两组、四个电梯、16层楼,组间确保了不同上下;

2.整个电梯的控制、工作流程,极为接近现实,方便用户使用;

3.实现了电梯的多任务、多请求工作:

组内可及时响应用户请求,一次响应允许多个用户到达不同目的楼层;

4.系统具有较强的容错能力:

单个电梯自成体系、有各自的状态控制器,还允许用户根据实际需求,取消已按的目的楼层号(即中途可改变目的地而不影响外部请求的目的地)。

5.调度算法灵活科学:

运用轮转优先级调度算法,优先级根据电梯的距离和状态确定,且距离和状态各自的权值可灵活改变。

6.运用模块化的设计思想:

整个系统共有19个模块分5层,这使得整个的设计逻辑明了、扩展容易、重用性好。

7.进行了详尽的测试:

确保设计的完整性、可靠性。

 

6.2分工

7.体会和感想

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1