设备的分配与调度简单方案_连铸生产调度与动态重调度的优化与研究-3,炼钢技术(3)原创...

基于生产扰动分类的二阶段遗传算法求解动态重调度问题

4.1引言

电炉炼钢-连铸生产对整个生产的节奏要求较高,各个工序各个工位间配合要比较紧密,但实际的生产过程中总会存在许多不可避免的扰动因素,必须根据实时现场的监控数据来进行动态调度以调整原调度计划,当钢种冶炼质量不合格超过指定加工时间时,要调整其后炉次的开工时间以适应;当钢种的温度达不到浇铸条件时, 要进行钢种回炉补温;当设备发生故障时,要调够相应设备上原先分配的炉次,当设备重新启用时,又要给其分配调度任务。对于实际生产,非常关心生产的有序进行,当出现异常扰动时,如何快速识别扰动态调整生产调度,产生新的调度方案,减少异常扰动对生产的影响。

常见的动态重调度策略有周期性重调度旳、事件驱动式的重调度的以及周期性混合事件驱动的的重调度.但是由于周期性重调度的周期参数很能确定无法有效的快退应对扰动因素;而事件驱动式重调度在应对生产过程中的扰动因素,过于频繁的启动重调度,降低了系统的鲁棒性;混合的重调度不但没能解决这些问题,反而増加了重调度频率。本章提出的基于实时现场监控的事件驱动式重调度,根据不同的生产扰动提出重调度策略,并结合上-章的改进的遗传算法,既利用了事件驱动式重调度的针对性强的特点,又实时反馈监控数据减少了重调度频率,提高了系统的稳定性。

4.2电炉炼钢-连铸的生产扰动分类

对生产过程中发生的异常扰动很多,对其进行相似特征的分类,有助于找到分类扰动问题的-体化解决方法。根据总结与归纳,电炉炼钢-连铸的生产扰动分类如下:

⑴计划任务扰动:因计划任务临时变更或错误产生的扰动,会更改当前正在进行的炉次和浇次计划,见表4-1。

688da9279d5761c19926ca8164496d41.png
5f7cd1e2f60d5d9d15548f020510a843.png

⑷时间因素扰动:由于生产流程的不标准导致的不能按照标准作业时间生产, 出现拖期或者提前的情况。

4.3基于生产扰动分类的二阶段遗传算法的动态重调度方法及过程

4. 3.1基于生产扰动分类的二阶段遗传算法的描述

电炉炼钢连铸的动态重调度的难点就在于生产扰动总是出现在调度方案正在执行的过程中,由于要维护调度方案执行的连续性,木文提出个两阶段遗传算法

第一阶段当产生生产扰动进入重调度时,通过扰动分类相对应的调度策略对正在生产炉次进行调度安排,汽出现计划扰动时,插入紧急的炉次到未生产的炉次中; 当岀现设备扰动时,优先保证连浇,在无法保证连浇的情况下重新对炉次浇次拜序; 当出现品质扰动时,需要对出现扰动的炉次插入新的工序;当出现时间扰动时,通过迭代递推的方式保证连浇,最后确定正在生产炉次的调度方案。此时更新所有工序机器的最早可加工时间,第二阶段再对未生产炉次根据第三章的遗传算法重新生成调度方案。整个算法的原理如图4-1所示。

0be8c21433eaa53f91134e1f6dbf0d2f.png

4.3.2基于生产扰动分类的动态重调度策略

基于生产扰动分类的动态重调度策略是实现第阶段安撻正在生产炉次的关键技术,以下详细描述他们的动态重调度策略。

⑴计划扰动动态重调度策略

计划扰动主要考虑的是当冇紧急炉次插入时,如何不影响现有生产的情况。此时优先完成已经在执行的浇次计划,以正在执行的浇次计划结束时刻作为动态重调度的开始时间,将此浇次计划和新插入的浇次计划合并重新排序,更新未生产调度的浇次和炉次计划,利用改进的遗传算法生成新的生产调度。

⑵设备扰动动态重调度策略

设备扰动主要考虑的是当设备故障后,当前正在加工的炉次及其之后的炉次都无法再执行预定计划;当设备修复后,施新启用此设备,加入到生产流程中去。设备故障是严重的生产事故,基本无法消解冲突,将此设备从可用设备中除去,重新制定浇次和炉次计划,设备恢复时,将此设备重新加入W用设备,对未生产的浇次和炉次重新生成生产调度。

(3)品质扰动动态重调度策略

品质扰动主要考虑的是余钢返回,即炉次即将进入连铸工序浇筑时,其温度不满足连铸浇筑的最低温度,必须进入LF工序补温加热。此情形下,该炉次插入新的工序LF,更新其工艺路径,将连铸工序其后的炉次依次前移。算法步骤如下:

步骤1:连铸工序上余钢返回炉次的前炉次加工时间设为最长加工时间,对于余钢返回的炉次,在连铸工序前插入LF工序,更新其工艺路径,査找当前时刻 LF工序是否存在空闲机器加工该炉次,如存在转步骤2,如不存在转步骤3。

步骤2:将连铸工序余钢返回炉次之后的炉次依次前移,使用第三章的逆工序 工艺路径解码算法,标准加工肘间设定为最短加工肘间,寻找是否存在可行调度解, 如存在转步骤4,如不存在转步骤3。

步骤3:找到余钢返回炉次导致的连铸断浇时间,断浇炉次,更新因此没有生 产的炉次,产生新的浇次计划,转步骤4。

步骤4:更新各个工序各个机器的自当前时间起最早可开工时间,当前未加工 炉次数浇次数。

(4)时间扰动动态重调度策略

时间扰动主要考虑的是工序机器上炉次加工时间比指定时间延长或者提前,导致原作业计划产生时间冲突的问题,实际中加工时间提前可以等待直至达到指定的加.时间,不会影响到其他炉次的生产,但是炉次加工时间延长会产生时间冲突, 针对这样的情况,使用迭代递推算法,迭代递推算法步骤如下:

步骤1:将因故时间延长的炉次的结束时间向后顺延t分钟,则该机器上后一卢次升始时间顺延t分钟。

步骤2:按照后炉次的工艺路径,依次取最短加工时间为指定加工时间,直至连铸工序前,判断是否消解时间冲突,如2消解转步骤-五,如没有转步骤3。

步骤3:对后一炉次后面的一机器的炉次依次执行步骤二。 如果后面已没有炉次,则转步骤4。

步骤4:找到因加工时间延长的炉次导致的连续断浇炉次,其断浇时间,更新因此没有生产的炉次,产生新的浇次计划,转步骤5。

步骤5:更新各个工序各个机器的自当前时间起最早可开工时间,当前未加工炉次数、浇次数。

4.3.3适应动态重调度问题的遗传算法

本章的遗传算法基于第三章的遗传算法基础之上,针对动态重调度的特殊约束, 在编码阶段将炉次已经经过的工序的基因值设为999,在交叉和变异阶段都不参与。其次,解码时,不再从零时刻开始,而是当前动态重调度时刻开始。其余与第三章相同。

4.4实例验证

以第三章实例验证中的工艺路径、生产数据、浇次炉次信息作为基础,使用二 阶段遗传算法进行动态重调度,预先生成的生产调度方案如图42所示。当其执行到4:10时,正在EAF1上加工的炉次4无法按时完工,进行拖期作业,预计20分钟后完工,系统收到扰动信号后运用时间扰动重调度策略调整时间,进行两阶段遗传算法,得到图4-3所示的动态重调度方案。

04cc61c5c8623e352117968e8889fb32.png

对比图4-2和图4-3可以看出:

①动态重调度方案仍然保持了预先生产调度方案浇次的连浇要求。

②炉次4在EAF1上拖期,影响其后炉次生产,通过迭代递推算法将炉次4 及其后的炉次顺延,解决了因炉次4拖期导致的延时问题。

以上实验结果表明,本章提出的二阶段遗传算法很好的解决了生产过程中的扰动因素,算法是可行有效的。

4.5本章小结

在实际的生产过程中,按照生产计划生产的调度方案往往遇到生产扰动的影响,无法顺利的执行下去,需要进行动态重调度。本章分析了电炉炼钢-连铸生产过程中的扰动分类,并且根据动态重调度的特点,将重调度的炉次分为正在生产炉次和未生产炉次,提出先根据扰动分类安排生产炉次,然后对未生产炉次亟新生成调度方案的两阶段方案。釆用实际生产数据进行的实例流证表明,本章的动态无调度方案能可以根据生产扰动的不同,依赖实时监控信息,制定出可行的重调度方案。

5.1论文总结

电炉炼钢-连铸的生产调度与动态重调度问题是多工艺路径、多并行机、 多约束下的受随机生产扰动影响的NP难题,现有的理论方法在具体的生产过程中存在一定的局限。本文以电炉炼钢-连铸的实际生产过程为基础,以电炉炼钢-连铸生产调度方案的制定问题作为研究对象,围绕着生产调度与动态重调度两类问题,建立了抽象的数学模型、提出了生产调度的制定方法、动态重 调度的实现思路,研究成果总结如下:

(1)系统总结了生产调度与动态重调度的研究成果,介绍了生产调度问题的研究现状、不足点以及发展的趋势,归纳了动态重调度问题的内容与特点, 研究了生产调度问题的主要理论、方法及技术。

(2)详细分析了电炉炼钢-连铸的工艺特点及其约束条件,将电炉炼钢- 连铸的生产流程抽象为带批量约束的并行机job-shop调度问题,在此基础上建立了以满足连浇生产等约束条件,以最小化总完成时间为目标函数的电炉炼钢-连铸生产调度数学模型。

(3)提出一种求解电炉炼钢-连铸生产调度方案制定问题的改进的遗传算法,基于改进随机键的实数矩阵编码方法,使用顺工序工艺路径和逆工序工艺路径两种算法得到最终的生产调度方案,釆用分段交叉和分段变异的方式,交叉和变异概率是自适应的,通过与简单遗传算法的数据比较,证明了本算法的优越性。

(4)针对生产扰动产生的动态重调度问题,提出了一种基于扰动分类的二阶段遗传算法,将生产炉次分为正在生产炉次和未生产炉次,对于正在生产炉次,通过针对特定扰动分类的动态重调度策略,安排新的加工顺序与时间, 然后更新所有工序的最早可加工时间,利用遗传算法重新生成调度方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

敏捷开发总结(1)软件研发过程

敏捷开发总结(1)软件研发过程 转载于:https://www.cnblogs.com/lexiaofei/p/6644326.html

java for循环 嵌套for循环-标签使用

continue和break可以改变循环的执行流程,但在多重循环中,这两条语句无法直接从内层循环跳转到外层循环。在C语言中,可以通过goto语句实现多重循环的跳转,但在非循环结构中使用goto语句会使程序的结构紊乱,可读性变差。…

WPF 窗体边框处理

一般做wpf窗口时都不会使用默认的标题栏等,会把他隐藏掉 此时设置以下属性 WindowStyle、AllowsTransparency、ResizeMode 中的两个或三个都能达到目的。 有一种场景,针对.Net 4.0及以下版本,4.5 直接就支持操作 1. 隐藏边框 2.保留鼠标移动到…

mysql 查询时间转换_数据库查询时日期的转换

首先简单说明一下,laravel框架中查询并打印sql语句的办法,不管任何时候由于sql语句报错时,都可以先打印一下,分析一下是什么原因造成的错误①引入laravel框架DB类useIlluminate\Support\Facades\DB;②开启框架日志记录DB::connect…

浅谈Spring之@Nullable、@NonNull注解

NonNull 可以标注在方法、字段、参数之上,表示对应的值不可以为空 Nullable 注解可以标注在方法、字段、参数之上,表示对应的值可以为空

事务概念和事务四大特性和隔离级别

什么是事务 事务四大特性 原生的JDBC事务处理 事务的隔离级别

squid mysql认证_Squid 3.1.7通过mysql_auth方式认证

Squid 3.1.7通过mysql_auth方式认证(FreeBSD平台)一、下载相应软件及补丁#fetch http://people.arxnet.hu/airween/mysql_auth/mysql_auth-0.8.tar.gz#tar xvzf mysql_auth-0.8.tar.gz#cd mysql_auth-0.8#patch -p1 < ../additionalselect.patchpatching file src/confparse…

Spring事务传播属性和隔离级别

Spring事务传播属性和隔离级别 一、Spring事务传播属性&#xff08;Propagation&#xff09;&#xff1a; 1) REQUIRED&#xff08;默认属性&#xff09; 如果存在一个事务&#xff0c;则支持当前事务。如果没有事务则开启一个新的事务。 被设置成这个级别时&#xff0c;会为…

ClickHouse之简单性能测试

前面的文章ClickHouse之初步认识已经简单的介绍了ClickHouse&#xff0c;接下来进行简单的性能测试。测试数据来源于美国民用航班的数据&#xff0c;从1987年到2017年&#xff0c;有1.7亿条。 环境&#xff1a; centos 6.3&#xff0c;32G内存&#xff0c;24核 下载脚本&#x…

泛型数组

定义泛型数组 在写程序时&#xff0c;大家可能会遇到类似String[] list new String[8];的需求&#xff0c;这里可以定义String数组&#xff0c;当然我们也可以定义泛型数组&#xff0c;泛型数组的定义方法为 T[]&#xff0c;与String[]是一致的&#xff0c;下面看看用法&#…

是前端类库还是前端框架?

一、BootstrapBootstrap是一系列常用CSS和jQuery plugin的集合&#xff0c;典型的UI库&#xff0c;带给你的是栅格系统&#xff0c;是预置的按钮、表单、列表、导航、响应式等样式&#xff0c;它在你独立开发的时候非常有用。因为能节约用来设计网页的时间&#xff0c;而且这套…

Java泛型详解:<T>和Class<T>的使用,泛型类

单独的T 代表一个类型 &#xff0c;而 Class代表这个类型所对应的类&#xff0c; Class<&#xff1f;>表示类型不确定的类 E - Element (在集合中使用&#xff0c;因为集合中存放的是元素)T - Type&#xff08;Java 类&#xff09;K - Key&#xff08;键&#xff09;V - …

python入门知识大全_python基础知识有哪些

Python基础知识&#xff1a;1、引用和对象&#xff1b;2、可变数据类型和不可变数据类型&#xff1b;3、引用传递和值传递&#xff1b;4、深拷贝和浅拷贝&#xff1b;5、基本数据类型&#xff1b;6、关键字、标识符和内置函数&#xff1b;7、算术、赋值运算符等等。Python基础知…

Django开发1

Django开发1 初识Django1.安装django2.创建项目2.1 在终端2.2 Pycharm 3. 创建app4.快速上手4.1 再写一个页面4.2 templates模板4.3 静态文件4.3.1 static目录4.3.2 引用静态文件 5.模板语法//Django开发案例&#xff1a;联通新闻中心6.请求和响应案例&#xff1a;用户登录7.数…

编程式事务和声明式事物

编程式事务 声明式事物

【每日算法】基数排序算法

1&#xff09;算法简介 基数排序是一种非比较型整数排序算法&#xff0c;其原理是将整数按位数切割成不同的数字&#xff0c;然后按每个位数分别比较。由于整数也可以表达字符串&#xff08;比如名字或日期&#xff09;和特定格式的浮点数&#xff0c;所以基数排序也不是只能使…

AES加密算法256位密钥与128位密钥的不同之处

一、指代不同 1、256位密钥&#xff1a;AES的区块长度固定为256位&#xff0c;密钥长度则可以是256。 2、128位密钥&#xff1a;AES的区块长度固定为128位&#xff0c;密钥长度则可以是128。 二、安全性不同 1、256位密钥&#xff1a;256位密钥安全性高于128位密钥。 2、1…

事务默认的传播属性和事务默认的隔离级别

事务的传播属性 事务的隔离级别&#xff0c;用的就是当前数据的隔离级别

spring事务三大接口

1.事务三大接口 PlatformTransactionManager 事务管理器TransactionDefinition 事务的一些基础信息&#xff0c;如超时时间、隔离级别、传播属性等TransactionStatus 事务的一些状态信息&#xff0c;如是否一个新的事务、是否已被标记为回滚PlatformTransactionManager //根据…