李胜成

摘  要:一种智能加工系统由8台计算机数控机床(CNC)、1辆轨道式自动引导车(RGV)、1条RGV直线轨道、1条上料传送带、1条下料传送带等附属设备组成。文章通过研究RGV的选择判断规律,以一道工序无故障情况为例,在RGV需要选择去向时采用贪心算法,这体现为RGV每次选择去向时选择运动时间与上下料时间之和最小的目标,将该过程定为所有判断的原则。故可得出动态调度后每个CNC的总等待时间最少,将机床工作效率最大化。从而给出最优动态调度策略。

关键词:动态调度;贪心算法;灵敏性分析

中图分类号:O221 文献标志码:A         文章编号:2095-2945(2020)06-0016-02

Abstract: An intelligent machining system consists of 8 computer numerical control (CNC) machine tools, 1 rail guide vehicle(RGV), 1 RGV linear track, 1 feeding conveyor belt, 1 cutting conveyor belt and other ancillary equipment. In this paper, the selection and judgment rule of RGV is studied. Taking a working procedure with no fault as an example, greedy algorithm is adopted when RGV needs to select the direction, which is reflected in the minimum sum of movement time and loading and unloading time when RGV selects the direction, and this process is set as the principle of all judgments. Therefore, it can be concluded that the total waiting time of each CNC after dynamic scheduling is the least, and the working efficiency of the machine is maximized. The optimal dynamic scheduling strategy is given.

Keywords: dynamic scheduling; greedy algorithm; sensitivity analysis

1 概述

对智能加工系统建立RGV动态调度模型[1],需使用

matlab软件编程,通过判断语句和循环语句实现RGV的状态转换和系统时间的推进,程序模拟的信息世界变量转换要遵循现实世界不同情况下物体运行规律,通过matlab程序仿真实现过程和结果的输出,并通过优化RGV工作状态转换原则来改善动态调度模型。

2 一道工序无故障情况

2.1 模型的建立

RGV具有的四个工作阶段为:移动阶段M、上下料阶段F、清洗阶段W、停止阶段S[2]。

通过附件一所给系统作业流程,可总结出在一道工序无故障情况下各阶段完成后可供选择的阶段线路图(如图1所示),系统总运行过程应由若干该子图拼接而成。

RGV的移动阶段M后必定为上下料阶段F,上下料阶段F后必定为清洗阶段W,这两个阶段不需要进行判断。RGV在清洗阶段W后有两种可能的情况:

(1)完成清洗阶段的时间点没有需求信号,RGV进入停止阶段。

(2)若此时有需求信号,根据此时RGV的位置和信号位置判断,又分为以下两种情况:

若此时RGV与需求信号在同一列上,即可直接进行上下料工作。

若此时RGV与需求信号不在同一列,通过判断决定接下来移动的方向与距离。

智能加工系统通电后,RGV位于CNC1和CNC2正中间的初始位置,所有CNC都处于空闲状态。故RGV的第一步应为对所有CNC进行上料操作。我们发现上料侧CNC一次上下料所需时间明显小于下料侧CNC,故优先对上料侧CNC进行上料操作,则对CNC初始上料操作的先后顺序如图2所示。

在此基础上,我们利用贪心算法[1],建立一道工序无故障情况下RGV动态调度模型。

貪心算法是指在对问题求解时,总是做出在当前看来是最好的选择,也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。故我们通过确定各个子阶段的局部最优解来进行RGV的动态调度,即在RGV的清洗阶段W和停止阶段S完成后接收到物料已完成信号时进行动态调度。[3]

该动态调度的决策仅考虑当前情况且该决策无后效性。设某时刻RGV的位置为X0,RGV在该时刻同时接收到m个已完成信号,此时RGV进行去向判断,判断方法应为RGV到达该点的移动时间与上下料时间之和最小。设第p个已完成信号的横向位置为xp,则该信号与RGV的距离i=X0-xp,即本次移动时间为tMi=t,RGV为该CNC一次上下料的时间为tFp=tF奇,上料侧CNC

tF偶,下料侧CNC。则RGV下一步的去向应为当tM+tF=mint+tFp时信号的发出地,子流程的决策完成。

基于该去向判断方法可知,当优先于某物料下料的物料数为s,则一个CNC完成一个物料所需的等待时间twait=mint+tFp。当一个CNC八小时一共完成了n个成料和n'个半成品物料时,该CNC所需的总等待时间T为:

该情况下动态调度原则为每个CNC的总等待时间最少:

T=min

设tr为第r次上下料开始时间点,则tr+1表示第RGV执行上下料操作开始的时间点,他们之间相隔时间至少为:一次上下料时间+加工时间+清洗时间+移动时间,可用该递推式表示tr+1?tr+tF1+tP+tW+tM。

各CNC八小时总工作过程的约束条件为:

其中n'为平均每个CNC完成的半成料数量。

2.2 模型的求解

定义一个需求矩阵[x]2×4,元素为0表示物料无下料需求,1表示有下料需求。在初始上料完成后[x]2×4为全0矩阵。n为完成的成料数,初值为0。迭代求解程序流程图如图3所示:

最终可求得当程序内的总时间到达八小时后,成料数n及各物料的上、下料时间。

3 结束语

本文针对一道工序的情况,建立了基于贪心算法的数学模型,并且利用matlab[4]求解了该模型。经过该方法调度后每个CNC的总等待时间最少,从而效率将最大化。对生产实际具有一定的借鉴作用。

参考文献:

[1]周正昱.智能RGV的动态调度策略模型[J].南方农机,2018(23):55-56.

[2]董军军.动态规划算法与贪心算法的比较与分析[J].软件导刊,2008(02):129-130.

[3]王建玲,齐紫茜,何璐.基于蚁群算法的车辆调度问题[J].交通科技与经济,2014,16(6):37-39,94.

[4]卓金武,等.MATLAB在数学建模中的应用[M].北京:北京航空航天大学出版社,2011.

rgv动态调度MATLAB代码,基于贪心算法的智能RGV的动态调度策略相关推荐

  1. 基于PCA 人脸识别/人脸识别算法/人脸检测程序源码MATLAB ELM+PCA人脸识别 PCA人脸识别matlab代码 基于PCA算法的人脸识别

    1.基于PCA的人脸识别代码 2.MATLAB ELM+PCA人脸识别 2.基于PCA的人脸识别(matlab)(采用PCA算法进行人脸识别,通过抽取人脸的主要成 分,构成特征脸空间,识别时将测试图像 ...

  2. 详细介绍用MATLAB实现基于A*算法的路径规划(附完整的代码,代码逐行进行解释)(一)--------A*算法简介和环境的创建

       本系列文章主要介绍基于A*算法的路径规划的实现,并使用MATLAB进行仿真演示.本文作为本系列的第一篇文章主要介绍如何进行环境的创建,还有一定要记得读前言!!! 本系列文章链接: ------- ...

  3. 基于贪心算法的马踏棋盘哈密顿回路问题

    基于贪心算法的马踏棋盘哈密顿回路问题 Github 链接 问题分析 马踏棋盘其实相当于一个解空间的搜索问题,而遍历到每一个节点并要求最后可以回到起点本质上是一个哈密顿回路问题 目前大部分马踏棋盘的相关 ...

  4. 算法经典“钓鱼”问题详解 基于贪心算法 C语言描述

    算法经典"钓鱼"问题详解 基于贪心算法 初始条件 在一条水平路边,有 n 2 ≤ n ≤ 25个钓鱼池,从左到右编号为1.2.3.--.n.小明有H1 ≤ H ≤ 16个小时的空余 ...

  5. 背包问题 贪心算法 java_JS基于贪心算法解决背包问题

    前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题. 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做 ...

  6. 转载︱案例 基于贪心算法的特征选择

    本文转载于R语言中文社区,详情链接 相关帖子 转载︱案例 基于贪心算法的特征选择 用GA算法设计22个地点之间最短旅程-R语言实现 ---------------------------------- ...

  7. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法

    本文实例讲述了C语言基于贪心算法解决装箱问题的方法.分享给大家供大家参考,具体如下: 问题描述: 有一些箱子,容量为V,同时有n个物品,每个物品有一个体积(小于等于箱子容量),要求将物品全部装入箱子中 ...

  8. Matlab代码:ADMM算法在考虑碳排放交易的电力系统最优潮流中的应用

    Matlab代码:ADMM算法在考虑碳排放交易的电力系统最优潮流中的应用 关键词:交替方向乘子法, ADMM , 最优潮流 ,碳排放, 分布式优化 仿真软件:Matlab软件调用cplex求解器进行求 ...

  9. python代码:基于强化学习的智能电网的动态定价方法 摘要:提出了一种考虑服务提供商(SP)利润和用户(CUs)成本的分级电力市场中能量管理的动态定价DR算法

    python代码:基于强化学习的智能电网的动态定价方法 摘要:提出了一种考虑服务提供商(SP)利润和用户(CUs)成本的分级电力市场中能量管理的动态定价DR算法. 使用强化学习(RL)描述分层决策框架 ...

最新文章

  1. 输入字符串中含有该字符的个数
  2. Mysql之alter用法汇总
  3. Cocoapods安装过程【转载】
  4. php对象+this,PHP $this:当前对象
  5. C语言中长度为0的数组
  6. Oracle_Rac_BackgroudProcess
  7. php赋值给jq,jquery怎么给div赋值
  8. 【转】2.3SharePoint服务器端对象模型 之 访问网站和列表数据(Part 3)
  9. ajax php接收不到数据库,PHP更新MySQL数据库与AJAX调用没有做任何事情
  10. Linux-Ubuntu安装 MySQL
  11. mysql xp系统时间_【Mysql5.5 XP系统下载】mysql XP系统安装图解
  12. 【生信进阶练习1000days】day3-Bioconductor annotation resources
  13. 自学编程的 6 个致命误区
  14. 官方正式(简/繁/英/日/韩文) Windows XP sp3 下载
  15. Ubuntu下vscode配置OpenGL(使用glfw+glad)
  16. Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs extension.
  17. AHCI sata设备初始化流程
  18. C++ using的用法
  19. nz-tree的右键菜单的实现, 以及选中状态的实现
  20. 定义一个数组存储10个上面描述的小怪兽,每个小怪兽的名字为(小怪兽+数组下标)

热门文章

  1. push to origin/master was rejected错误解决方法
  2. 大学时候学了3D建模,还有必要再去报一个培训班吗 ?
  3. python基础总结:1.7、模块
  4. osmosis 心电图学习
  5. matlab中surf怎么改变颜色_美术绘画中怎么让颜色更好看?规避上色大坑技巧
  6. 关于WiderPerson数据说明(使用后笔记)
  7. Unknown host 'd29vzk4ow07wi7.cloudfront.net'.
  8. 计算机组装与维修教学进度,计算机组装与维修课程教学计划.pdf
  9. Linux安装软件包无法打开rpm,详解Linux 操作系统下安装rpm包的方法步骤
  10. 科诚Godex EZX20 打印机驱动