
目录前言个人理念电梯群控介绍程序架构规划要求群控系统设计原则算法简述前言作为一名参加过三届西门子杯竞赛的选手我对电梯群控算法有着特殊的情怀。当初学习时网上几乎找不到相关教程只能通过研读论文来摸索因此对这个领域也算小有心得。虽然电梯群控算法种类繁多但真正适合西门子杯比赛的却并不多。本系列文章既是对参赛岁月的纪念也是对自己算法研究历程的记录。文中将探讨以下算法最短候梯时间算法、最短距离算法、贪心算法、蚁群算法、遗传算法、动态规划以及客流量预测系统结合经验干预的方法。个人理念首先我想分享一下对电梯群控算法的理解。在西门子杯比赛中电梯群控算法的核心目标是实现高效率与低能耗舒适度因素并不在考量范围内。因此相关论文中涉及舒适度的内容可以直接忽略。需要特别强调的是无论是比赛还是实际应用电梯群控算法都必须确保一个基本前提——安全可控。如果连这个基本要求都无法满足讨论算法将毫无意义。作为工控从业者我们必须时刻保持这种责任感。本系列文章将重点探讨算法本身与电梯群控的结合而不会过多涉及电梯具体功能的实现。我希望为大家提供的是思路上的指引毕竟实践才是检验真理的唯一标准。电梯群控介绍考虑到初学者的理解难度我在指导学弟学妹时发现他们常有的疑问多部多层电梯不就是多个单部电梯的组合吗为什么还需要算法这里有必要简单说明一下。单部多层电梯通常不需要复杂算法不过我个人认为也可以应用算法优化后续会提到而多部多层电梯需要算法的核心原因在于并联控制。简单来说就是当你在某层按下呼叫按钮时系统需要决定由哪部电梯来响应。因此电梯群控算法主要解决两个核心问题按下呼叫按钮时如何选择最优的响应电梯被选中的电梯应采取怎样的运行路线。作者碎碎念解决第二点问题的算法思想可以在单部中体现因此单部电梯也可以有算法电梯群控系统面临的核心挑战可归结为两点不确定性和实时性。系统运行过程中存在诸多不可预测因素信号到达时间、各楼层候梯人数、乘客目标楼层等都充满变数。这种不确定性使得预先规划变得不切实际算法必须能够动态调整运行策略。这就要求系统具备快速响应能力——计算耗时必须足够短否则当新信号到来时先前计算结果可能已失去时效性。作者碎碎念 虽然S7-1200仿真PLC的扫描周期仅需几毫秒 但实际PLC设备受程序复杂度等因素影响 响应时间可能延长至数十毫秒甚至上百毫秒默认上限为150ms运行中超过会跳转错误停止CPU。 这种计算速度限制导致部分算法难以满足实时性要求具体原因将在后续详细阐述。程序架构规划要求模块化设计 必须采用模块化架构按功能划分为独立模块。例如核心模块电梯安全模块初始化模块电梯运行模块算法模块合理使用功能块(FB)和功能(FC)可显著提升程序结构化程度。大的模块下还可以有小的功能块。群控系统设计原则独立运行机制 群控系统中的每部电梯保持运行独立性群控算法仅需向单梯传递一个关键参数——目标楼层。职责分离群控层根据全局状态为各电梯分配目标楼层单梯层仅需响应目标楼层指令完成运行 这种分层设计使单梯无需感知群控算法细节只需确保自身运行逻辑正确即可。如图所示算法给定目标楼层电梯根据目标楼层和当前电梯情况选择上行、下行或者开门警告图中程序请勿随意模仿此为程序一小部分很多细节在别处随意模仿容易扰乱自生程序算法简述核心目标根据当前电梯状态合理分配电梯响应呼梯信号实现高效率低耗能。实现方式合理的路径规划路径规划好坏评价评价函数最短候梯时间、最短距离和多目标评价函数路径规划的方式蚁群算法、贪心算法、遗传算法、神经网络、动态规划等其它楼层分区与客流量预测