国赛模拟总结

国赛模拟总结

题目:2018B题

智能RGV的动态调度策略

图1是一个智能加工系统的示意图,由8台计算机数控机床(Computer Number Controller,CNC)、1辆轨道式自动引导车(Rail Guide Vehicle,RGV)、1条RGV直线轨道、1条上料传送带、1条下料传送带等附属设备组成。RGV是一种无人驾驶、能在固定轨道上自由运行的智能车。它根据指令能自动控制移动方向和距离,并自带一个机械手臂、两只机械手爪和物料清洗槽,能够完成上下料及清洗物料等作业任务(参见附件1)。
在这里插入图片描述
图1:智能加工系统示意图

针对下面的三种具体情况:

(1)一道工序的物料加工作业情况,每台CNC安装同样的刀具,物料可以在任一台CNC上加工完成;

(2)两道工序的物料加工作业情况,每个物料的第一和第二道工序分别由两台不同的CNC依次加工完成;

(3)CNC在加工过程中可能发生故障(据统计:故障的发生概率约为1%)的情况,每次故障排除(人工处理,未完成的物料报废)时间介于10~20分钟之间,故障排除后即刻加入作业序列。要求分别考虑一道工序和两道工序的物料加工作业情况。

请你们团队完成下列两项任务:

任务1:对一般问题进行研究,给出RGV动态调度模型和相应的求解算法;

任务2:利用表1中系统作业参数的3组数据分别检验模型的实用性和算法的有效性,给出RGV的调度策略和系统的作业效率,并将具体的结果分别填入附件2的EXCEL表中。

表1:智能加工系统作业参数的3组数据表 时间单位:秒

系统作业参数第1组第2组第3组
RGV移动1个单位所需时间202318
RGV移动2个单位所需时间334132
RGV移动3个单位所需时间465946
CNC加工完成一个一道工序的物料所需时间560580545
CNC加工完成一个两道工序物料的第一道工序所需时间400280455
CNC加工完成一个两道工序物料的第二道工序所需时间378500182
RGV为CNC1#,3#,5#,7#一次上下料所需时间283027
RGV为CNC2#,4#,6#,8#一次上下料所需时间313532
RGV完成一个物料的清洗作业所需时间253025

注:每班次连续作业8小时

附件1:智能加工系统的组成与作业流程

附件2:模型验证结果的EXCEL表(完整电子表作为附件放在支撑材料中提交)

做题流程
  1. 读题

  2. 提取关键字:RGV动态调度、调度策略

  3. 查找文献

    对于2018B题来说,跟以往的题目都不一样,利用百度、谷歌、中国知网进行检索,没有一篇类似的文献可供参考。

    当然这里的文献指的是中文文献,我在阅读一篇2018B优秀论文时,看到他们有一篇外文参考文献,于是去看了看,发现这篇文章与我们的题目比较类似,而且提供了一定的思路。

    这件事告诉我们,查找文献不能仅限于中文文献,可以利用英文关键字去查找外文文献,说不定会有意外的收获。

  4. 解题思路

    该题研究的是生产线上RGV的调度策略,一共有8台CNC,RGV在8台CNC循环往复进行作业。

    那我们将整个过程看作RGV在一个 含有八个结点的图上往复移动的过程,也就是说我们将基于图论的知识来模拟RGV的工作过程。

    • 首先观察研究整个系统运作的过程

    RGV的状态有:等待状态、上下料状态、移动状态、清洗作业状态

    CNC的状态有: 空载状态、加工状态、加工完成状态(这里我们将上下料过程视为加工状态)

    整个系统是应该是如何运作的呢?

    我们不难想到应该是RGV对CNC的状态进行判断,按照一定的调度规则前往指定的CNC进行作业。

    在我们的论文中,我们采用两个调度策略

    1. 先请求先服务,CNC在空载状态或加工完成状态会对RGV发送请求
    2. 最短路径优先,当多台CNC同时发出请求时,RGV优先选择移动时间最少的CNC前往作业

    但我们选择的调度策略实际上并不是最优的调度策略,选择先请求或者路径最短的CNC进行作业并不能保障系统作业时间最短,调度策略可以改进为:RGV实时对八天CNC的状态进行监测,选取时间最短的CNC进行作业。这是我们论文的一个不足。

    但是并没有相应的算法可以解决我们的问题,我们直接通过编程来模拟RGV的工作过程,用到的唯一算法就是Dijkstra算法,用以得到距RGV路径最短的结点,其他的均是根据RGV工作的实际出发编写程序。

    所以,在我们的建模过程中,实际上编程是关键。

    1. 一道工序:

    一道工序的情况较为简单,RGV根据我们的调度策略选择相应的CNC进行作业,直到作业时间超过8小时

    1. 两道工序:

    当物料有两道工序需要进行加工时,如何分配CNC处理这两道工序变成了需要解决的问题,最暴力的方法就是穷举所有的分配方式,选择作业效率最高的分配方式作为我们的分配方式。但是这样做的工作量无疑是很大的,我们并没有选择这样做,而是通过分析加工第一道工序的时间和加工第二道工序的时间,来决定我们的分配方式。我们的工作告诉我们,我们并不能找到一个特别有力的理由来证明我们的分配方式就是最优的,这是我们工作的第二个不足。
    更新:这里似乎有一种更好的做法,是分享的一组同学提出来的。CNC要么处理第一道工序,要么处理第二道工序,可以将CNC的分配方式是为一组0-1变量,采用遗传算法来计算出最优的分配方式。而不是采用遍历的方法进行选取。这里后续可以进行实现。

    1. 故障情况处理:

    CNC在加工的过程中有百分之一的可能性会发生故障,我们通过计算机产生随机数来模拟故障发生这一情况(虽然这个随机数并不是真正意义上的随机)

    以上就是我们的求解思路,一句话概括就是,用编程来模拟系统工作过程从而得到结果。

    与优秀论文的答案比较,我们的答案有10-20个物料的误差,原因就是我们并没有选择最优的调度策略。

    模拟过程中得到的一些主要心得
    • 编程很重要,主要负责编程的人一定要对各类算法有一定了解,能根据实际去编写相应的算法,而不是只能套算法的模板。
    • 队伍中的三个人,每个人最好对编程、建模、写作都有所涉猎,但每个人的侧重点不同。如果分工特别明确,当一个人遇到无法解决的问题时,其他人根本帮不上忙,这并不是一个团队。应该是大家共同建模、一起编程、协作写作,这不过是每个工作每个人贡献的比重不同。
    • 有时候求解可能比较容易,但用数学符号将整个系统准确地描述出来并不容易。个人感觉这道题就是这样,编程实现比较容易,但转换为数学符号准确地去描述作业过程倒比编程难一些。
    • 有时候求解可能比较容易,但用数学符号将整个系统准确地描述出来并不容易。个人感觉这道题就是这样,编程实现比较容易,但转换为数学符号准确地去描述作业过程倒比编程难一些。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值