卡了三周课堂项目:智能物料转运调度系统的意外收获

上周综合设计课结项,有一组的项目,整整卡了三周。所有人都熬得眼睛发红。就是做小车间场景的教学原型。

上课现场的意外卡点

我巡堂的时候,他们围着三台模拟AGV,屏幕上红一片,全是冲突报警。一开始我以为是代码写错了,凑过去看,算法写得挺工整,路径规划也没错。问题出在哪? 原来他们一开始完全按教材的例题来,给三个工位都定了十分钟固定投料节拍,调度系统提前一小时就把所有转运顺序排得明明白白。结果做原型测试的时候,我们加了一点真实的变量——某个工位的加工偶尔会慢个两三分钟,另一个工位可能提前出成品。就这么一点波动,整个系统直接崩了。AGV堵在通道口抢位置,工位堆了半米高的模拟物料,空的工位又等不到料。 学生说,书上没说会这样啊。我笑不出来。这就是我们上课的老问题,所有工况都是磨平了棱角给学生的,所有变量都是定死的,学生只要按步骤拼就行。真碰到一点变化,直接无从下手。
高校机械设计课学生调试智能转运车现场图
高校机械设计课学生调试智能转运车现场图
那天我没直接给答案,就让他们围着原型站着,看它跑,看它堵。看了整整一节课。有人慢慢反应过来,原来我们一开始方向就错了。

砍掉80%功能后的取舍

这组学生一开始为了“智能”两个字,加了不知道多少东西。遗传算法优化路径,多智能体博弈,甚至还想加视觉识别找料。整个代码写了快两千行,跑一次模拟要卡半分钟。核心问题反而没人管。 我问他们,你们做这个调度,到底要解决什么问题?没人答得出来。有人说要效率最高,有人说要路径最短。我说,你去路边快递站看看,分拣转运的师傅,什么时候会把所有件的路线提前排好?都是哪有活去哪,先把堆的活清了,对吧? 点透之后,他们花了两天,砍了快八成的功能。把原来的全局预排序调度,改成了工位触发的空闲优先调度。逻辑简单到不行:哪个工位出了成品要转走,发请求,系统找当前离得最近、没活的AGV接单,走最近的路过去,走完就待命。就这么简单。
智能物料转运调度系统工位触发逻辑框图
智能物料转运调度系统工位触发逻辑框图
说实话改完我都没想到,跑起来顺得离谱。之前每天要出十几次冲突堵料,改完之后一天最多一次,还是AGV电池没电了耽误的。原来那些花里胡哨的算法,都是加分项,不是必需品。我们很多学生做设计,都搞反了顺序。把名词堆上去,把功能加上,就觉得完成了,从来不想,哪部分是解决核心问题的。

留下来的教学调整

留下来的教学调整
留下来的教学调整
这次结项答辩,这组没拿什么炫目的成绩,但给我的触动比任何完整的项目都大。 我回去翻了这门课过去五年的课程设计题目,所有的工况全是固定的,所有的需求全是列好的,学生只要按要求做就行。说白了,就是拼谁套得对,拼谁调参调得好。根本没训练到设计本身的能力——取舍,找核心需求,应对不确定性。 这学期下半段的课程设计,我改了要求。不给固定节拍,只给一个波动范围,不给规定算法,只说你要把给定数量的转运车跑通,堵料时间不能超过总时长的5%。愿意用简单方法就用简单方法,愿意搞复杂算法就搞复杂算法,能解决问题就行。 上次改题之后,有个之前成绩很好的学生找我,说这样没法做啊,没有参考。我告诉他,真的工厂里,也没人给你把参数都列好啊。做设计不就是这么回事吗? 那组卡了三周的学生,最后答辩的时候说,原来以为智能就是全知全能,算到每一步。现在才知道,智能就是能接住意外,别崩。这句话我记下来了,下次上课要讲给所有学生听。 很多时候我们赶时髦,把什么新名词都往课堂里塞,生怕内容不够先进。其实学生最需要的,还是摸得到的问题,踩过坑的经验,知道怎么砍功能,怎么找核心,怎么把一个看起来很复杂的大题目,落到一个能跑通的简单方案上。 就这么点感悟,记下来。改天上课用。
免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:卡了三周课堂项目:智能物料转运调度系统的意外收获
文章链接:https://yqhljx.com/list_9/3608.html