一部电梯(已知所有命令)的调度算法

以前大学时做过电梯,实际的电梯调度貌似很傻,它不管你是电梯内部、还是外部的命令,它只看“当前时刻”要到达的有哪些目标楼层(见下)。为什么会这么傻,因为尼玛用的是梯形图plc编程,直接控制与plc配套的变频器和大电机(问:为毛不用单片机或pc,同时自己设计电机控制算法(题主问的调度有用武之地了)? 答:出事故了谁负责。。。),太复杂的调度也懒得用plc搞,梯形图拖拖 拖死人。而且貌似也没有更符合实际的调度方法,题主想通过内外指令队列调度,就要考虑到电梯的位置、电梯运动需要的时间、人发出指令的随机性等等各种意想不到并且使问题复杂化的情形。case 1 电梯刚刚快运动到某层: 电梯运动快到该层时他才根据“当前”的目标楼层思考要不要停,停则进入case 5,否则继续case 4。case 2 电梯刚刚停在某层X分钟后: 原先D方向上“当前”还有目标楼层,那么继续按D方向继续运动case 4,否则进入电梯“闲置”状态case 3,且把D方向清空。case 3 电梯“闲置”地 停在某层: 不断地检查最先出现新的目标楼层,决定运动方向,标记运动方向D,开始运动case 4 。case 4 电梯按D方向运动: 不断地判断电梯是否快到某层,则进入case 1。case 5 电梯刚刚停在某层,X分钟后必然进入case 2。


    推荐阅读