系统仿真,电梯
基于FPGA的电梯控制系统的仿真图(附程序)

系统主体模块的设计与仿真本设计是以9层的电梯控制系统为模型。
主要实现电梯运行开关的控制,楼层的请求,电梯运行遵循的方向优先原则,提前、延时开关门等基本的功能。
以下是对不同的状态进行仿真,以验证本设计的可行性。
电梯进入运行状态控制进程,通过判断上升、下降请求寄存器每一位的值,决定电梯运行状态,并通过状态指示信号输出该状态,本设计都是使用高电平触发。
(1)当电梯处于1楼时,上升请求:图4.1 电梯处于第一层时仿真图(2)提前/延时关门功能没有提前/延时关门时的情况下:图4.2 没有提前/延时关门时的仿真图从图4.2知道,运行或停止输出信号“lamp”为高电平时电梯进入运行状态,低电平时停止。
圈内显示电梯在75.36us后从停止状态转入运行状态。
当设置提前关门“close”为高电平时:图4.3 有提前关门时的仿真图图4.3与图4.2对比可知,由于设置了提前关门进程“close”,电梯提前到75.36us 以前从停止状态转入运行状态。
2当设置了延时关门“delay”为高电平时:图4.4 延时关门时的仿真图图4.4与图4.2对比可知,由于设置了延时关门进程“delay”,电梯延时到80.48us 后才从停止状态转入运行状态。
(3)当电梯处于较高层数时图4.5 电梯处于较高层数时的仿真图(5)电梯轿厢内楼层选择开关功能仿真图4.6 轿厢内楼层选择开关仿真图4(4)电梯的次态功能仿真如图4.7所示,当运行或等待时间“run_wait”计数到0110时,电梯运行状态变量“ladd”给出电梯的下一个状态。
如图 4.7圈内显示,“ladd”从0显示模块的设计与仿真图4.8 显示模块仿真图本设计的显示模块一共有3个显示部分,分别是电梯运行/等待时间显示run_wait、楼层选择指示direct以及所在楼层批示st_out。
这3个显示部分的设计结构都是一样的,所以以其中一个仿真作为例子。
从图4.8圈内看到,当电梯处于楼层2时,ledin收到信号‘0010’,经过系统内部自动转化为‘1011011’并通过ledout输出到共阴极LED数码显示。
《2024年基于PLC的电梯控制系统的设计与仿真》范文

《基于PLC的电梯控制系统的设计与仿真》篇一一、引言随着城市化的不断推进,电梯已经成为人们日常生活中不可或缺的交通工具。
电梯控制系统的稳定性和安全性对于保障人们的生命财产安全具有重要意义。
本文将详细介绍基于PLC (Programmable Logic Controller)的电梯控制系统的设计与仿真过程,包括系统需求分析、硬件设计、软件设计、仿真验证及结论等部分。
二、系统需求分析在电梯控制系统的设计过程中,首先需要进行系统需求分析。
这一阶段主要明确电梯控制系统的功能需求、性能指标以及安全要求。
1. 功能需求:电梯控制系统需要实现的基本功能包括呼梯响应、平层停车、方向控制、开门关门等。
此外,还需具备紧急停止、故障自检等安全保护功能。
2. 性能指标:电梯控制系统的响应速度、稳定性和安全性是主要的性能指标。
在保证系统稳定性的前提下,要尽可能提高响应速度,以提升乘客的舒适度。
3. 安全要求:电梯控制系统应满足相关的安全标准,如防撞、防夹等,并能在故障发生时及时报警并采取相应措施,确保乘客的安全。
三、硬件设计硬件设计是电梯控制系统设计的重要组成部分,主要包括PLC的选择、传感器和执行器的配置以及电气线路的布局等。
1. PLC选择:PLC是电梯控制系统的核心部件,负责接收和处理各种信号,控制电梯的运行。
选择合适的PLC需要考虑其处理速度、存储容量、I/O接口等因素。
2. 传感器和执行器配置:传感器用于检测电梯的状态和位置,如门开关状态、呼梯信号等。
执行器则用于控制电梯的运行,如电机驱动器等。
需要根据电梯的实际情况配置合适的传感器和执行器。
3. 电气线路布局:电气线路的布局要遵循安全、可靠、易维护的原则,确保信号传输的稳定性和抗干扰能力。
四、软件设计软件设计是电梯控制系统设计的另一关键部分,主要包括PLC程序的编写和调试等。
1. PLC程序设计:根据电梯控制系统的功能需求和硬件配置,编写相应的PLC程序。
程序应具备响应速度快、稳定性好、可维护性高等特点。
《2024年基于PLC的电梯控制系统的设计与仿真》范文

《基于PLC的电梯控制系统的设计与仿真》篇一一、引言随着城市化的不断推进,电梯在各类建筑物中已成为必不可少的运输工具。
其高效稳定的运行方式离不开精确可靠的控制系统。
传统上,电梯控制系统的设计与调试依赖于人工调试与物理试验,这种方法耗时耗力,并且效果不易达到理想状态。
而基于可编程逻辑控制器(PLC)的电梯控制系统设计与仿真则提供了更加高效、精确的解决方案。
本文将详细介绍基于PLC的电梯控制系统的设计与仿真过程。
二、系统设计1. 硬件设计基于PLC的电梯控制系统主要由PLC控制器、传感器、执行器等硬件组成。
其中,PLC控制器是整个系统的核心,负责接收电梯的各种输入信号,执行控制程序,输出控制信号。
传感器用于检测电梯的运行状态、门的状态等重要信息,执行器则根据PLC的指令进行开关门、启停等操作。
2. 软件设计软件设计主要包括PLC程序的编写与调试。
在编写程序时,需要充分考虑到电梯的各种运行情况,如上下行、开关门、超载等,确保电梯在各种情况下都能安全稳定地运行。
此外,还需要考虑到系统的实时性、稳定性等因素。
在调试阶段,需要使用仿真软件对程序进行测试,确保程序的正确性与可靠性。
三、系统仿真系统仿真是一种重要的测试手段,可以有效地验证控制系统的正确性与可靠性。
在基于PLC的电梯控制系统仿真中,我们使用了专业的仿真软件,对电梯的各个部分进行了详细的建模与仿真。
通过仿真,我们可以模拟出电梯在各种情况下的运行情况,如上下行、开关门、超载等,从而验证控制程序的正确性。
同时,我们还可以通过仿真来优化控制程序,提高电梯的运行效率与稳定性。
四、实验结果与分析通过实验与仿真,我们得到了以下结果:1. 电梯在各种情况下的运行情况均能得到良好的控制,证明了控制程序的正确性与可靠性。
2. 通过仿真优化后的控制程序,电梯的运行效率与稳定性得到了显著提高。
3. 系统的实时性得到了有效保障,确保了电梯在各种情况下的快速响应。
4. 整个系统具有较高的安全性能,可以有效地避免各种意外情况的发生。
《2024年基于PLC的电梯控制系统的设计与仿真》范文

《基于PLC的电梯控制系统的设计与仿真》篇一一、引言随着城市化进程的加速,电梯作为现代建筑中不可或缺的交通工具,其安全性和效率性显得尤为重要。
为满足市场对于高质量、高效率、高安全性的电梯控制系统的需求,基于PLC(可编程逻辑控制器)的电梯控制系统设计成为了一种重要的解决方案。
本文旨在详细介绍基于PLC的电梯控制系统的设计与仿真过程,并对其优势及潜在问题进行探讨。
二、系统设计1. 硬件设计基于PLC的电梯控制系统主要由PLC、电梯门机、电机驱动器、变频器、电梯安全回路设备等组成。
其中,PLC作为核心控制器,负责接收和处理各种信号,控制电梯的启动、停止、开关门等动作。
电梯门机负责执行开门和关门动作,电机驱动器和变频器则负责控制电梯的上下行和速度。
2. 软件设计软件设计是PLC电梯控制系统的关键部分,主要包括梯形图设计、程序编写和调试等步骤。
梯形图是电梯控制系统的逻辑表达方式,它详细描述了电梯的各种动作和状态。
程序编写则是将梯形图转化为可执行的代码,以实现电梯的各种功能。
在调试阶段,需要对程序进行反复测试和修改,以确保其正确性和稳定性。
三、系统仿真为验证设计的正确性和可行性,我们采用了仿真软件对基于PLC的电梯控制系统进行了仿真。
仿真过程中,我们根据实际电梯的运行环境和条件,设置了各种场景和参数,以测试系统的性能和稳定性。
通过仿真,我们可以观察到电梯的启动、停止、开关门等动作,以及各种故障情况下的响应和处理过程。
这有助于我们及时发现和解决设计中存在的问题,提高系统的可靠性和安全性。
四、系统优势与问题基于PLC的电梯控制系统具有以下优势:1. 可靠性高:PLC具有强大的抗干扰能力和高可靠性,能有效保证电梯的安全运行。
2. 灵活性好:通过编程,可以方便地实现各种复杂的控制逻辑,满足不同需求。
3. 维护方便:一旦出现故障,可以通过更改程序或更换模块来快速修复。
4. 兼容性强:可以与其他设备进行良好的连接和通信,便于系统扩展和维护。
基于PLC的电梯控制系统的设计与仿真

基于PLC的电梯控制系统的设计与仿真一、本文概述随着现代科技的不断进步,电梯作为高层建筑中不可或缺的重要设备,其控制系统的设计和优化对于确保电梯安全、稳定运行具有重要意义。
近年来,可编程逻辑控制器(PLC)在电梯控制系统中的应用逐渐普及,其强大的编程能力和灵活的扩展性使得电梯控制系统更加智能化、高效化。
本文旨在探讨基于PLC的电梯控制系统的设计与仿真,以期为电梯控制系统的研发与应用提供有益的参考。
本文首先介绍了电梯控制系统的基本组成和主要功能,包括电梯的动力系统、控制系统、安全保护系统等。
在此基础上,详细阐述了基于PLC的电梯控制系统的设计原理和实现方法,包括PLC的选型、硬件电路设计、软件编程等方面。
同时,本文还重点分析了电梯控制系统的关键技术和难点问题,如电梯的动态调度算法、安全保护策略等。
为了验证设计的可行性和有效性,本文还进行了基于PLC的电梯控制系统的仿真实验。
通过模拟电梯在实际运行中的各种场景,测试了控制系统的性能指标和安全性能,并对实验结果进行了详细的分析和讨论。
仿真实验结果表明,基于PLC的电梯控制系统具有较高的可靠性和稳定性,能够满足高层建筑中电梯运行的各种需求。
本文总结了基于PLC的电梯控制系统的设计与仿真过程中的经验和教训,展望了未来电梯控制系统的发展趋势和应用前景。
通过本文的研究,可以为电梯控制系统的设计、研发和应用提供有益的参考和借鉴。
二、电梯控制系统基础知识电梯作为一种重要的垂直运输工具,其控制系统的设计与实现对于保障电梯的安全、稳定和高效运行至关重要。
电梯控制系统主要由电气控制系统和机械系统两部分组成,其中电气控制系统是电梯运行的核心。
电气控制系统的主要任务是根据乘客的操作指令和电梯的实际运行状态,控制电梯的启动、停止、加速、减速、换向等动作,以实现电梯的安全、平稳运行。
PLC(可编程逻辑控制器)作为一种高性能的工业自动化控制装置,以其强大的逻辑控制功能、灵活的编程方式、易于扩展和维护的特性,被广泛应用于电梯控制系统中。
《2024年基于PLC的电梯控制系统的设计与仿真》范文

《基于PLC的电梯控制系统的设计与仿真》篇一一、引言随着城市化的不断推进,电梯已经成为人们日常生活中不可或缺的交通工具。
为了满足日益增长的电梯需求,提高电梯系统的安全性和可靠性,基于PLC(可编程逻辑控制器)的电梯控制系统得到了广泛的应用。
本文将详细介绍基于PLC的电梯控制系统的设计与仿真过程。
二、系统设计1. 硬件设计基于PLC的电梯控制系统主要由PLC控制器、电梯轿厢、门机系统、电动机、编码器等部分组成。
其中,PLC控制器作为核心部件,负责接收传感器信号、控制门机系统和电动机等设备。
硬件设计需根据实际需求和场地条件进行,同时需保证各部件之间的通信和电源供应稳定可靠。
2. 软件设计软件设计主要包括PLC程序设计和人机界面设计。
PLC程序设计需根据电梯的运作流程和安全要求进行编写,包括启动、运行、停止、开关门等动作的控制。
人机界面设计则需根据用户需求进行,包括显示电梯状态、楼层信息、故障提示等。
三、系统仿真为了验证设计的正确性和可靠性,需要进行系统仿真。
系统仿真可以采用专业的仿真软件进行,如MATLAB/Simulink等。
在仿真过程中,需根据实际运行情况设置仿真参数,如电梯的运行速度、加速度、停靠时间等。
同时,还需对电梯的各种安全保护措施进行仿真测试,如超载保护、防撞保护等。
四、仿真结果分析通过系统仿真,我们可以得到电梯控制系统的运行情况和各种性能指标。
首先,我们需要分析电梯的响应时间、运行速度等动态性能指标,确保其满足用户需求。
其次,我们需要对电梯的安全保护措施进行评估,确保在各种异常情况下,系统能够及时响应并采取相应的保护措施。
此外,我们还需要对系统的稳定性、可靠性等进行评估,确保系统在长期运行过程中能够保持稳定的性能和可靠性。
五、优化与改进根据仿真结果,我们可以对电梯控制系统进行优化和改进。
首先,针对响应时间、运行速度等动态性能指标不达标的情况,我们可以调整PLC程序中的控制算法,优化电动机的驱动方式等。
基于PLC的电梯控制系统的设计与仿真
基于PLC的电梯控制系统的设计与仿真基于PLC的电梯控制系统的设计与仿真1.引言电梯作为现代城市生活中不可或缺的一部分,为人们提供了便捷、快速的垂直交通方式。
而电梯控制系统的设计与性能直接关系到人们的出行安全和舒适度。
传统的电梯控制系统多采用电气控制方式,但其存在可靠性较低、调试困难等问题。
而基于可编程逻辑控制器(PLC)的电梯控制系统能够实现更高的可靠性和灵活性,因此受到了广泛关注。
本文主要介绍了基于PLC的电梯控制系统的设计原理与实施过程,并通过仿真验证了系统的性能和可靠性。
2.电梯控制系统的设计原理电梯控制系统主要包括电梯调度算法、门控制和运行状态监测等功能。
其中,电梯调度算法是实现电梯多台协调运行的关键,主要有最大响应时间算法、最小等待时间算法等。
电梯门的控制则涉及到门的开启和关闭,以及门的安全检测。
基于PLC的电梯控制系统可以采用状态机控制方法。
状态机控制方法依据系统的状态对其进行控制。
对于电梯而言,状态包括运行状态、门状态、楼层状态等。
通过建立状态机,能够清晰地描述电梯在各种条件下应该采取何种控制动作。
3.PLC的选型与梯级控制在进行电梯控制系统的设计时,首先需要选择合适的PLC。
一般来说,高性能、稳定可靠的PLC是首选。
同时,考虑到电梯系统的可靠性和安全性,应选用双系冗余PLC系统,以确保系统的稳定性。
在进行梯级控制时,需要根据电梯的运行状态和楼层请求来确定电梯的调度顺序。
通过合理分析和调度算法的设计,能够最大程度地提高电梯系统的运行效率和用户体验。
4.门的控制与安全检测电梯门的控制是电梯控制系统中的关键环节之一。
在门的控制中,需要实现门的开启、关闭,以及门的开闭速度的控制。
通过PLC控制门的开闭动作,并通过传感器对门的位置进行检测,能够确保门的安全运行。
另外,为了保证电梯在门打开状态下不会运动,需要通过安全检测来控制电梯的运行。
通过检测电梯门的状态和位置,当门未完全关闭时,电梯将不会启动。
仿真电梯实训报告
一、实训目的随着城市化进程的加快,电梯作为高层建筑中不可或缺的交通工具,其安全性、舒适性和智能化水平越来越受到人们的关注。
为了提高我国电梯行业从业人员的专业技能,本实训旨在通过仿真电梯系统的操作和调试,让学生掌握电梯的基本结构、工作原理和操作技能,提高学生的实际动手能力和故障排除能力。
二、实训时间2023年3月15日——2023年3月20日三、实训地点XX职业技术学院电气工程系电梯实训室四、实训内容1. 仿真电梯系统概述仿真电梯系统主要由以下几部分组成:控制系统、驱动系统、轿厢、门系统、井道等。
通过仿真电梯系统,学生可以了解电梯的基本结构和工作原理,掌握电梯的安装、调试和维护技能。
2. 仿真电梯控制系统操作(1)系统启动:打开电源,进入电梯控制系统界面。
(2)设置参数:根据实际需求设置电梯的运行参数,如速度、楼层、开门时间等。
(3)操作电梯:通过控制面板上的按钮进行电梯的启动、停止、开门、关门等操作。
(4)故障排除:根据电梯运行过程中的故障现象,分析故障原因,进行相应的处理。
3. 仿真电梯驱动系统操作(1)检查驱动系统:检查电机、电缆、减速器等部件的完好情况。
(2)调整驱动系统:根据实际需求调整驱动系统的参数,如电机转速、减速器传动比等。
(3)运行测试:启动电梯,进行驱动系统的运行测试,确保系统运行正常。
4. 仿真电梯轿厢、门系统和井道操作(1)检查轿厢、门系统和井道:检查轿厢、门系统和井道的完好情况。
(2)调整轿厢、门系统和井道:根据实际需求调整轿厢、门系统和井道的参数,如轿厢尺寸、门开合速度等。
(3)运行测试:启动电梯,进行轿厢、门系统和井道的运行测试,确保系统运行正常。
五、实训成果1. 学生掌握了仿真电梯的基本结构和工作原理。
2. 学生熟悉了仿真电梯控制系统的操作方法。
3. 学生具备了一定的故障排除能力。
4. 学生提高了实际动手能力和团队协作能力。
六、实训心得1. 仿真电梯实训有助于提高学生的专业技能,为今后从事电梯行业打下坚实基础。
基于PLC的电梯控制系统的设计与仿真
基于PLC的电梯控制系统的设计与仿真一、引言电梯作为现代城市中不可或缺的交通工具,其安全性和效率直接关系到人们的出行体验和生命安全。
为了提高电梯的运行效率和安全性,采用基于可编程逻辑控制器(PLC)的电梯控制系统成为了一个重要的发展方向。
本文将介绍。
二、电梯控制系统的基本功能电梯控制系统的基本功能包括调度乘客和货物的垂直运输,保障安全与高效率的运行。
基于这些功能,我们可以将电梯控制系统分为以下几个方面的设计:楼层选择、呼叫机制、门控制、电梯状态监测以及报警系统等。
三、PLC在电梯控制系统中的应用PLC是一种集合了计算机、控制器和操作台的一体化设备,可以对电梯的各部分进行控制和调度。
PLC有高可靠性、高可编程性和模块化设计等特点,非常适合用于电梯控制系统。
1. 楼层选择电梯乘客通过控制面板在电梯外选择楼层,在电梯内选择楼层。
PLC根据乘客的选择完成楼层的切换,并通知驱动系统进行相应楼层的运动。
PLC通过读取按钮信号来响应乘客的操作,然后根据当前电梯的状态确定合适的楼层。
2. 呼叫机制当乘客在某一楼层按下电梯呼叫按钮时,PLC会收到相应的信号并进行处理。
PLC将保存呼叫楼层的信息,并根据当前电梯的状态决定是否停靠。
3. 门控制电梯的门控制是非常重要的一环,直接关系到乘客的安全。
PLC会监测电梯门的开关状态,并根据乘客的需求进行开门和关门的控制。
同时,PLC还会对门的开闭速度进行调节,以保证乘客的安全。
4. 电梯状态监测PLC会不断地监测电梯的各项参数,包括电梯的位置、速度、载荷和故障状态等。
通过监测这些参数,PLC可以实时判断电梯的工作状态,并根据需要进行相应的控制和调整。
5. 报警系统当电梯发生故障或者出现其他异常情况时,PLC会及时发出报警信号,并进行相应的处理。
通过报警系统,PLC能够保障乘客的安全,并且提醒维修人员进行相应的维修和保养工作。
四、基于PLC的电梯控制系统的仿真为了验证基于PLC的电梯控制系统的可行性和有效性,我们可以使用仿真软件进行模拟实验。
电梯模拟系统课件
目前,电梯模拟系统已经发展得相 当成熟,具备高度逼真的模拟效果 和强大的功能,成为电梯行业不可 或缺的重要工具。
02
系统硬件组成
电梯机房
电梯机房是电梯系统的核心部分,包括电梯主机、控制柜、曳引机等关键部件。
机房的作用是提供动力和控制电梯的运行,确保电梯能够安全、稳定地升降。
机房的设计和安装需要符合相关安全标准,确保机房的通风、散热和防尘等条件良 好。
06
实际应用案例分析
案例一:某大楼电梯模拟系统应用
总结词:高效便捷
详细描述:某大楼采用电梯模拟系统,实现了电梯的智能化管理。通过模拟系统 ,可以实时监控电梯的运行状态,提高电梯的运行效率。同时,该系统还可以实 现智能派梯、语音导航等功能,为乘客提供更加便捷的出行体验。
案例二:某医院电梯模拟系统应用
科学研究
电梯模拟系统还可以用于科学研究, 通过模拟实验和研究来探究电梯系统 的性能和优化方案。
电梯模拟系统还可以用于培训和教育 ,帮助学员掌握电梯操作和维护技能 ,提高其专业水平。
系统发展历程
初期阶段
早期的电梯模拟系统主要用于简 单的模拟和演示,功能相对较为
简单。
发展阶段
随着计算机技术的不断发展,电梯 模拟系统的功能和精度得到了大幅 提升,开始广泛应用于实际生产和 科研领域。
系统故障处理与预防措施
故障诊断与修复
系统具备故障自动诊断功能,能够快速定位故障原因,并采取相 应的修复措施,确保系统正常运行。
预防性维护
定期对系统进行预防性维护,检查各部件的工作状态,及时发现并 处理潜在的故障隐患,提高系统的可靠性。
应急预案
制定针对不同故障情况的应急预案,确保在系统出现故障时能够迅 速启动应急处理程序,最大程度地保障乘客的安全。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
复杂系统建模与仿真实验报告报告人:吴陈鹤1083班3111315003 田博1084班3111316001一.电梯仿真实验1.模型设计说明模拟一个五层楼的电梯系统,该楼有一个自动电梯,能在每层停留。
设计一个电梯运行的模型,保证乘客的等待时间最短。
2.模型设计思想(1)五个楼层由下至上依次称为地下层、第一层、第二层、第三层和第四层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来该层候命。
五个楼层从下到上的编号为:0、1、2、3、4。
除了地下层外,每一层都有一个要求向下的按钮除了第四层外,每一层都有一个要求向上的按钮。
对应的变量为:CallUp[0..3]和CallDown[1..4]。
电梯内的五个目标层按钮对应的变量为:CallCar[0..4]。
(2)电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)、移动(Moving)、减速(Decelerate)。
(3)乘客可随机地进出于任何层。
对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
对于在楼层内等待电梯的乘客,将插入在等候队列里,每一层有两个等候队列,一队要求向上,一队要求向下,用链队列来实现。
对于在电梯内的乘客,用五个乘客栈来实现,该乘客要去哪一层,就把他放在相应编号的栈中,对应变量为EleStack[0…4]。
(4)模拟时钟从0开始,时间单位为0.1秒。
人和电梯的各种动作均要耗费一定的时间单位(简记为t):●有人进出时,电梯每隔40t测试一次,若无人进出,则关门●关门和开门各需要20t●每个人进出电梯均需要25t●电梯加速需要15t●上升时,每一层需要51t,减速需要14t●下降时,每一层需要61t,减速需要23t●如果电梯在某层静止时间超过300t,则驶回1层候命。
(5)按时序显示系统状态的变化过程:发生的全部人和电梯的动作序列。
3.模型设计概要本程序包含6个模块:(1)主程序模块(2)乘客模块(3)乘客栈模块(4)电梯模块(5)等待队列模块(6)高楼模块:实现电梯和乘客之间的互交。
各模块之间的调用关系如下:3.1乘客类型反映乘客的所有属性。
ADT Client数据对象:D={a i∈乘客信息,I=1,2,…,n,n≥0}数据关系:R={<a i-1,a i>|a i-1,a i∈D,i=2,…,n}基本操作:PrintClientInfo(Client const &e,ClientStatus s)操作结果:输出乘客信息。
CreatClient(Client *&p)操作结果:生成新的乘客。
DestoryClient(Client *&p)操作结果:该乘客离开系统。
GoAbove(Client const &e)操作结果:判断该乘客是否去往高层。
CInfloor(Client const &e)操作结果:返回乘客进入的楼层。
CInTime(Client const &e)操作结果:返回乘客进入时间。
COutfloor(Client const &e)操作结果:返回乘客进入时间。
}3.2乘客栈类型电梯内的乘客用乘客栈表示,去不同楼层的乘客放在不同的栈中。
ADT Estack数据对象:D={a i∈乘客信息,I=1,2,…,n,n≥0}数据关系:R={<a i-1,a i>|a i-1,a i∈D,i=2,…,n}基本操作:略。
}3.3等候队列类型在电梯外等待的乘客用等待队列表示。
每层各有两个等待队列,分别为上楼队列和下楼队列。
与一般队列不同的是在基本操作中加入了放弃操作CGiveUp(WQueue &Q,int floor)。
3.4电梯类型表示电梯的各个属性和所有动作。
ADT Elevator数据对象:D={a i∈电梯信息,I=1,2,…,n,n≥0}基本操作:InitEle(Elevator &E)操作结果:初始化电梯类型。
DestoryEle(Elevator &E)操作结果:销毁电梯类型。
EleDecide(Elevator &E,WQueue w[Maxfloor+1][2])操作结果:电梯动作决策。
ElevatorRun(Elevator &E,WQueue w[Maxfloor+1][2]){操作结果:电梯状态转换。
CountOver(Elevator &E)操作结果:判断电梯计时是否完成。
EleFloor(Elevator const &E)操作结果:返回电梯所在的层。
EleStatus(Elevator const &E)操作结果:返回电梯状态。
RequireAbove(Elevator const &E)操作结果:判断是否有高层请求。
RequireBelow(Elevator const &E)操作结果:判断是否有低层请求。
EleAchieved(Elevator &E)操作结果:判断电梯是否要停于当前层。
EleOpenDoor(Elevator &E)操作结果:判断电梯是否要开门。
}3.5高楼模块实现电梯和乘客之间的互交功能。
包括:InOut(Elevator &E,WQueue w[Maxfloor+1][2])操作结果:进行乘客的进出电梯活动。
NewClient(Elevator &E,WQueue w[5][2])操作结果:进入新乘客。
PrintStatus(Elevator &E,WQueue w[5][2])操作结果:输出当前状态。
Print(Elevator &E,Action a)操作结果:输出电梯动作信息。
3.6主程序主程序主要处理两类事件:乘客事件和电梯事件。
除此之外,主程序还处理各个模块的初始化和销毁工作,以及电梯状态的输出。
乘客事件包括新乘客到达事件,乘客放弃等待事件,乘客进出电梯事件。
电梯事件包括电梯运行事件。
3.7设计详情//所有常量,全局变量和类型定义#define NULL 0 //空指针#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define INT_MAX 32767//Status是函数类型,其值是函数结果状态代码typedef int Status;#define Empty 0//------------------------------------------------------//电梯状态enum EleStatus{Opening,Opened,Closing,Closed,Moving,Decelerate,Waiting}; enum Action{DoorOpened,DoorClosed,GoingUp,GoingDown,Achieved,None}; enum EleStage{Up,Down,OpenDoor,Stop};enum ClientStatus{New,GiveUp,In,Out,Finish};#define CloseTest 40 //电梯关门测试时间#define OverTime 300 //电梯停候超时时间#define Accelerate 15 //加速时间#define UpTime 51 //上升时间#define DownTime 61 //下降时间#define UpDecelerate 14 //上升减速#define DownDecelerate 23 //下降减速#define DoorTime 20 //开门关门时间#define InOutTime 25 //进出电梯时间#define Maxfloor4 //最高层#define Minfloor 0 //最低层long Time=0; //时钟long MaxTime;//系统运行最长时间int InOutCount=0;//用于进出计时int InterTime=0;//下一乘客进入系统的时间int ID=0; //乘客编号int GiveUpNumber=0;//乘客放弃的数目int TotalTime=0;//总共等待时间部分重要操作的算法:1、判断运动方向函数EleDecide的算法:2、统计高层和低层的请求(不包括当前层)。
3、高层和低层均无请求:发出Stop命令。
4、否则,1)若电梯在上升期:1. 若有高层请求:上升;2.若无高层请求:转下降期,下降。
2)若电梯在下降期:1. 若有低层请求:下降;2. 若无有低层请求:转上升期,上升。
判断电梯是否要停于当前层函数EleAchieved的算法:1.该层的CallCar为1;2.该层在上升(下降)期有上升(下降)请求(判断CallUp或CallDown);3.上升(下降)期高(低)层没有请求而该层由下降(上升)请求,要转换运行时期。
判断电梯动作函数ElevatorRun的算法:1.若电梯在Opening状态,则转至Opened状态。
2.若电梯在Opened状态,若无人进出,则转至Closing状态。
3.若电梯在Closed状态,则根据电梯请求情况转至相应状态。
4.若电梯在Closing状态,则转至Closed状态。
5.若电梯在Moving状态,若达到目标层,则转至Decelerate状态。
否则,继续移动。
6.若电梯在Decelerate状态,则设定电梯时期,并转至Opening状态。
7.若电梯在Waiting状态,在判断是否等待超时,若超时则向第一层移动。
否则,判断电梯请求情况并转至相应状态。
4.测试结果从测试结果看,乘客放弃数的大小和平均等待时间的长短还与乘客出现的密度和乘客的平均容忍时间有关系。
5.仿真实验总结在本程序中如何判断电梯的动作最为关键。
此外,合理划分各个模块和处理各个模块之间的联系也非常重要。
本设计中涉及时间函数的使用,由于刚开始接触,这方面的使用相当有难度。
使用不当就容易造成编译不通过或者运行时发送错误报告。
还有在电梯调度方面不能按照预定的想法实现,所以和现实中的电梯有出入。
没有显示电梯的运行到哪里,而是用有乘客进入电梯时显示乘客进入到哪层楼来告知电梯运行到几楼。
开门,关门时需要精心思考,此处记时及判断是否要开门也是难点,所以这些看似很平常的动作却是最难也是最容易错的地方。
此外在指针的使用方面也是难点,很多地方比如乘客进队出队以及放弃乘坐电梯时均涉及指针的使用,也经常在这些地方通不过编译。