2023离散行业自动化(逻辑算法)六部十层电梯程序设计思路与总结---调度算法

*绿色:为引用的变量名

蓝色:为引用的FC/FB块

红色:为引用的文章名


1. 电梯调度算法概述

电梯调度算法中存在许多方式供我们使用,读者可以参考此链接中的文章 [电梯群控调度算法]

https://blog.csdn.net/qq_57469824/article/details/139158135?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22139158135%22%2C%22source%22%3A%22qq_57469824%22%7D
本系统则使用**最短寻找楼层时间优先算法**;

在比赛中的最终分数是由许多考核项目来共同组成,如是否完成初始化?当电梯初始化检修时是否检修灯亮起并不进行检修?电梯外呼信号多久能得到相应?每个乘客需要乘坐多久的电梯?能耗比是否还能继续优化?等等,所以在完成基础电梯控制后,还需要有许多任务需要完善。



调度算法需要分为两节板块进行分析:**距离比较**、**距离调度**

2. 距离调度

以2层上呼灯亮为例,下呼灯

本系统包含五种分配触发原则,利用变量储存触发信号:

(1)当2层上呼灯亮,并且电梯下行状态,并处于2层以下时,OUT1输出=|当前楼层-2|;

或者电梯在上行状态,并处于大于等于2层位置,电梯停稳时,OUT1输出=|当前楼层-2|;

这是最基本的一种状态,下面情况2/3相对,情况4/5相对。

(2)当2层上呼灯亮,并且电梯处于下行状态,电梯当前楼层以下无外呼目标时,
ABS(IN1-IN2)+IN3+IN3(加两遍停站次数相当于增加停站在调度中的权重)
*下行停站次数停层次数判断这篇文章中被写入

(3)当2层上呼灯亮,有下外呼时

ABS(IN3+IN3-IN1-IN2)+IN5+IN5+IN6

(4/5)当2层上呼灯亮, 电梯位置大于等于2层,电梯不再停靠状态时,a)下外呼有目标,ABS(IN3-IN1+IN3-IN6+IN2-IN6)+IN4+IN4+IN7+IN7+IN8+IN8

b)下外呼无目标,ABS(IN3-IN1+IN3-IN2)+IN5+IN4+IN4+IN5+IN6

大家也不必拘泥于我这个赋值方式,每种不同的赋值方式也会有不同速度的接客速度,可以自己多尝试下。当系统记录完成当前电梯的调度距离,并且触发边沿信号,然后就到根据电梯当前载重进行赋予最终数值(数值越小的电梯更容易被分配到)

以两类边沿触发信号变量为例

梯形图分析:电梯超重则不分配楼层(OUT=楼层调度距离+100),电梯正常运行则都会进行OUT输出最终调度距离,在下一节中会进行比较哪部电梯的最终调度距离会更短。

在距离调度中最重要的是分类讨论,在不同的外呼信号(有外呼/无外呼),不同的运行方向(上/下)情况下,都要有储存边沿触发信号进行实时储存,以便于下一节的比较;这段梯形图最有可能导致电梯的死机,所以要扩大数值的权重(例如停靠次数,最小目标;假设1号梯停靠次数为2,2号梯停靠次数为4,2与4中只相差2,但2+2与4+4相比就相差了4),防止下一节比较数值相等。

死机的处理方式如上图

并且在Day 2的比赛中会遇到让某部电梯停止运行,可以利用上图方法,将这部电梯的最终调度距离改为无限大,这样电梯外呼信号就分配不到这部电梯上。

3. 距离比较

3.1 比较并计算调度差值

这段代码非常易懂,就是选出六部电梯里,接收这个外呼信号距离最短的电梯。

3.2 电梯之间追击问题

追击问题是对于最短距离的一个优化解

追击问题:假设1号电梯处于6层下行,要去5层接乘客,后面3层下外呼也分配给1号梯,但2号梯在7层,有个内呼信号想去1层,当1号梯接到5层乘客时,2号梯由于没有停止速度很快,优先1号梯走到3层,就是追上了1号梯,抢过1号梯的3层下外呼任务,然后接着往下走,这就是对于追击的一个通俗解释。

我们就需要比较每个瞬间两个数值的差值,看能不能抢到这个任务。

以3号梯的追击梯形图为例

梯形图分析:

3.3 判断内外呼叫是否重合并分配外呼

当电梯运行到某层时,内外呼检测重合后储存状态在内外呼重合

以3号梯为例,重合后直接将外呼分配给3号梯,看着梯形图这么冗长,其实只是互锁,为了保证只有一行能够运行(我只截取了一小段,真正的梯形图代码是下图的六倍量,不难理解,但要保证变量名称不要冲突)


至此,六部十层电梯的所有问题都已解决,从基础信号的触发到调度分配,如果能仔细看完这个栏目中的内容,并且加以理解,一定会在比赛中更加得心应手。

我曾经参加比赛时,并未发现自己的代码存在问题(还好当时没死机),在这断断续续一年多的码字中,也对PLC有更加深刻的认识,比赛虽然名次不理想,但我认为收获比名次更加重要,也希望这个栏目能帮到逻辑算法赛道的各位同学!

我以前自学是在B站跟着米粒方糖老师的八节课学的,有时间的同学一定要看!链接如下

智能制造挑战赛离散行业组培训(1)_哔哩哔哩_bilibili


如有其他问题可以加v交流:13903980091

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇奇怪怪的man

坑我来踩就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值