m基于GA遗传优化的生产工艺设备布置优化matlab仿真

news2024/11/19 20:40:24

目录

1.算法概述

2.仿真效果预览

3.核心MATLAB程序

4.完整MATLAB程序


1.算法概述

       在设备布置的问题上,本文将作业车间设备布置这个多目标优化问题看成是包含布局面积,物流成本和生产工艺的连续优化的多行设备布置问题,使之更具有实际意义,在标准遗传算法的基础上,通过在染色体编码,约束处理,选择算子和变异算子设计,适应值计算等方面进行优化改进,提出一种多目标作业车间设备布局优化算法,以此金矿浮选厂为实例基础,通过Matlab仿真实验验证该方法的有效性,最后为低品位金矿浮选厂推荐出合理,实用的生产工艺流程及设备布置方案,论文研究的工作主要分以下几部分进行:

(1) 工艺研究:对金矿浮选工艺进行研究,产品,产量,产品加工的工艺路线,工序工时定额等基本因素是影响工厂生产组织方式和布局的主要因素,确定生产组织方式,制定与生产组织方式相适应的产品工艺路线,应用成组技术划分作业单元,确定工序工时,计算工厂设备需求数量,对影响工厂布局的主要因素进行了详细的分析与设计。

 (2) 设备选型:对浮选厂使用的各种机械设备有充分的了解,了解各机械设备的型号及产量等,以期通过合理进行设备的选择和布置提高工作效率。浮选工艺由颚式破碎机、球磨机、分级机、磁选机、浮选机、浓缩机和烘干机等主要设备,配合给矿机、提升机、传送机可组成完整的选矿生产线。为达到具有高效、低能、处理量高、经济合理等优点的目标。并结合设备布置的相关理论,对选金工艺流程进行优化。

 (3) 设备布置:针对案例车间的实际情况,将布局问题可视为连续优化的多行设备布局问题。根据以往车间布局问题相关文献所提供的方式,同时考虑本课题的研究对象,建立基于改进遗传算法的设备布置数学模型,并运用Matlab软件对其进行求解,通过分析仿真结果的分析,来对规划方案进行评估,找到一些尚不完善的地方,达到优化方案的目的。

1.目标函数的设计:

        首先,我们这里目标函数的设计如下所示:

     

        这里,对第一个目标函数需要修改,结合上次和你说的几个点,成本除了和距离,评论,单位成本之外,还和每个设备之间的流量有关系,这里C为单位时间单位物体的物流成本,所以上面的公式需要修改为:  

    

目标函数总物流成本; 

目标函数的布局面积; 

布局在同一行的ij设备之间的最小横向跨度;

       然后,还需要加入一个约束条件,即每个设备之间的最小间隔,因为,设备之间不能无限制的接近,否则就没有意义了,直接挨一起就可以了,这样就没有实际意义了。实际中每个设备之间有其合理的有效工作区域。   

2.仿真效果预览

matlab2022a仿真结果如下:

3.核心MATLAB程序

clc;
clear;
close all;
warning off;
addpath 'func\'
addpath 'GA_toolbox\'
 RandStream.setDefaultStream(RandStream('mt19937ar','seed',1));
%参数设置
%设备长度
Li  = [8; 8;24; 8; 8;10; 8;12;12; 8; 8; 8]/2;
%设备宽度
Wi  = [8; 8;24; 8; 8;10; 8;12;12; 8; 8; 8]/4;

% 单位物流成本
c=[0,3,0,0,0,0,0,0,0,0,0,0;
   0,0,3,0,0,0,0,0,0,0,0,0;
   0,0,0,2,0,0,0,0,0,0,0,0;
   0,0,2,0,1,0,0,0,0,0,0,0;
   0,0,0,0,0,3,0,0,0,0,0,0;
   0,0,0,0,2,0,2,0,0,0,0,0;
   0,0,0,0,0,0,0,3,0,0,0,0;
   0,0,0,0,0,0,0,0,3,0,0,0;
   0,0,0,0,0,0,0,0,0,1,0,0;
   0,0,0,0,0,0,0,0,0,0,1,0;
   0,0,0,0,0,0,0,0,0,0,0,1;
   0,0,0,0,0,0,0,0,0,0,0,0];
 
% 物料搬运的频率
f=[0,2,0,0,0,0,0,0,0,0,0,0;
   0,0,2,0,0,0,0,0,0,0,0,0;
   0,0,0,3,0,0,0,0,0,0,0,0;
   0,0,3,0,2,0,0,0,0,0,0,0;
   0,0,0,0,0,2,0,0,0,0,0,0;
   0,0,0,0,3,0,1,0,0,0,0,0;
   0,0,0,0,0,0,0,4,0,0,0,0;
   0,0,0,0,0,0,0,0,3,0,0,0;
   0,0,0,0,0,0,0,0,0,1,0,0;
   0,0,0,0,0,0,0,0,0,0,1,0;
   0,0,0,0,0,0,0,0,0,0,0,1;
   0,0,0,0,0,0,0,0,0,0,0,0];
 
% 流量
Q=[0,3,0,0,0,0,0,0,0,0,0,0;
   0,0,3,0,0,0,0,0,0,0,0,0;
   0,0,0,3,0,0,0,0,0,0,0,0;
   0,0,2,0,3,0,0,0,0,0,0,0;
   0,0,0,0,0,3,0,0,0,0,0,0;
   0,0,0,0,2,0,3,0,0,0,0,0;
   0,0,0,0,0,0,0,1,0,0,0,0;
   0,0,0,0,0,0,0,0,1,0,0,0;
   0,0,0,0,0,0,0,0,0,1,0,0;
   0,0,0,0,0,0,0,0,0,0,1,0;
   0,0,0,0,0,0,0,0,0,0,0,1;
   0,0,0,0,0,0,0,0,0,0,0,0];
 
 
 
 
 
 
 
%设备之间的最小间隔
JGX=[0,10,10,10,10,10,10,10,10,10,10,10;
    10, 0,10,10,10,10,10,10,10,10,10,10;
    10,10,0, 10,10,10,10,10,10,10,10,10;
    10,10,10, 0,10,10,10,10,10,10,10,10;
    10,10,10,10, 0,10,10,10,10,10,10,10;
    10,10,10,10,10,0 ,10,10,10,10,10,10;
    10,10,10,10,10,10, 0,10,10,10,10,10;
    10,10,10,10,10,10,10, 0,10,10,10,10;
    10,10,10,10,10,10,10,10, 0,10,10,10;
    10,10,10,10,10,10,10,10,10, 0,10,10;
    10,10,10,10,10,10,10,10,10,10, 0,10;
    10,10,10,10,10,10,10,10,10,10,10, 0;
    ]/5;
 
 
JGY=[0,10,10,10,10,10,10,10,10,10,10,10;
    10, 0,10,10,10,10,10,10,10,10,10,10;
    10,10,0, 10,10,10,10,10,10,10,10,10;
    10,10,10, 0,10,10,10,10,10,10,10,10;
    10,10,10,10, 0,10,10,10,10,10,10,10;
    10,10,10,10,10,0 ,10,10,10,10,10,10;
    10,10,10,10,10,10, 0,10,10,10,10,10;
    10,10,10,10,10,10,10, 0,10,10,10,10;
    10,10,10,10,10,10,10,10, 0,10,10,10;
    10,10,10,10,10,10,10,10,10, 0,10,10;
    10,10,10,10,10,10,10,10,10,10, 0,10;
    10,10,10,10,10,10,10,10,10,10,10, 0;
    ]/5;
 
 
 
%设备之间的间距
%d,变量d为优化后的值,通过优化后,获得各个设备的坐标位置,从而计算各个设备之间的距离,从得到C;
%同时,需要使得区域面积S最小
 
%矩形区域的长度,x轴
Len      = 100;  
%矩形区域的宽度,y轴
Wid      = 100;  
%各设备的最小水平间距
mindx    = 5;
%各设备的最小垂直间距
mindy    = 5;
%各设备到区域边界的最小距离
minds    = 5;
 
%遗传算法参数
%面积或者成本权值
alpha    = 0.5;
%种群规模
pop_size = 200;
%迭代次数
max_gen  = 400;
%变异概率
Pm       = 0.2;
n        = size(c,1);
%产生各个设备的区域限制范围
[Low_limit,Up_limit] = func_limit(Li,Len,Wi,Wid,minds,n);
 
%遗传算法优化
[BextXY,BextFit,ALLXY,ALLFit]=func_GA(   max_gen,...
                                         pop_size,...
                                         Pm,...
                                         Low_limit,...
                                         Up_limit,...
                                         Len,...
                                         Wid,...
                                         Li,...
                                         Wi,...
                                         c,...
                                         f,...
                                         Q,...
                                         JGX,...
                                         JGY,...
                                         mindx,...
                                         mindy,...
                                         alpha);
                             
X=BextXY{max_gen};
 
disp('遗传算法输出的最优结果为');
Xp = X(1:2:end)'
Yp = X(2:2:end)'
figure(4);
for i = 1:n
    func_positon(Xp(i),Yp(i),Li(i),Wi(i));
    hold on;
end
 
02_014m

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

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

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

相关文章

如何在 Rocky Linux 上安装 Apache Kafka?

Apache Kafka 是一种分布式数据存储,用于实时处理流数据,它由 Apache Software Foundation 开发,使用 Java 和 Scala 编写,Apache Kafka 用于构建实时流式数据管道和适应数据流的应用程序,特别适用于企业级应用程序和关…

robots.txt漏洞

robots.txt漏洞描述: 搜索引擎可以通过robots文件可以获知哪些页面可以爬取,哪些页面不可以爬取。Robots协议是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯,如果robots.txt文件编辑的太过详细,反而会泄露网站的敏感…

[附源码]java毕业设计基于学生信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Delphi中关于PChar、Char数组、string[](ShortString)及结构体长度及占用空间的一些特性说明和测试

关于特性 1,string和Char数组都是一块内存, 其中存放连续的字符. string保存具体字符的内存对用户 是透明的, 由Delphi管理它的分配, 复制和释放, 用户不能干预2,关于ShortString,内存中用第一个字节来表示字符串的长度。FF255,所以这个特性…

【MySQL】MySQL复制与高可用水平扩展架构实战(MySQL专栏启动)

📫作者简介:小明java问道之路,专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

天王刘德华走红毯,到哪他都是最耀眼的明星

第三十五届金鸡奖,已经在福建厦门落下帷幕,如果要说本届金鸡奖谁收获最大,无疑是天王刘德华。在金鸡奖颁奖典礼现场,功夫巨星吴京登上热搜,然而热搜的主角却不是他,而是天王刘德华。 在本届金鸡奖颁奖典礼现…

cubeIDE开发, stm32调试信息串口通信输出显示

关于cubeIDE开发基本技巧及流程,本文不详细叙述,请参考:cubeIDE快速开发流程_py_free的博客-CSDN博客_cubeide汉化 一、stm32串口配置 本文采用的开发板是stm32L496VGT3,其有两个 USB 接口,一个为 USB ST-link 复用接口&#xff…

代码随想录——最长递增子序列的个数

题目 给定一个未排序的整数数组,找到最长递增子序列的个数。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。 示例 2: 输入: [2,2,2,2,2] 输出: 5 解释: 最长递增子序列的长度是1,并且…

Oracle 表创建和表管理

1.表的命名 必须以字母开头字符长度在1-30之间只能包含A-Z,a-z,0-9,_,$和#被同一个用户拥有的对象不能有重复的名字 2.表的创建 SQL> create table t01(id number(4),name varchar2(15));Table created.SQL> desc t01Name …

现场直击!维视智造携多款明星产品亮相VisionChina 2022深圳机器视觉展

11月15日,2022年中国(深圳)机器视觉展在深圳国际会展中心(宝安新馆)盛大开幕,维视智造携MV-CR读码相机、3D线激光相机、VisionBank AI多相机智能视觉系统等多款行业领先产品及解决方案亮相。 1 ►现场速击 …

C基础--内存对齐问题(结构体对齐)

问题现象 在调试一个软件功能时,发现一个结构体对齐的问题,以前没有太关注,现在把它总结出来。先看示例: 结构体1: typedef struct {char magic[4];uint32_t crc32;uint32_t lenght;uint16_t ver;uint16_t IFrameCnt…

多线程DPDK应用的内存优化

作者 Conor Walsh is a software engineering intern with the Architecture Team of Intel’s Network Platform Group (NPG), based in Intel Shannon (Ireland). 引言 高速包处理是一种资源密集型应用。一种解决方案是将包处理流水线(pipeline)分离到多线程以提高程序性能…

大一新生HTML期末作业,网页制作作业——海鲜餐饮网站登录页面(单页面)HTML+CSS+JavaScript

👨‍🎓静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的…

STM32G0开发笔记-Platformio+libopencm3-FreeRTOS和FreeModbus库使用

title: STM32G0开发笔记-Platformiolibopencm3-FreeRTOS和FreeModbus库使用 tags: STM32MCUSTM32G070libopencm3MonkeyPiFreeRTOSModbus categories: STM32 date: 2022-9-11 19:52:05 [原文:makerinchina.cn] 使用Platformio平台的libopencm3开发框架来开发STM32…

docker -- 入门篇 (数据卷、自定义镜像、安装mysql redis)

1 数据卷 采用上一章节创建的centos镜像启动容器 doc01 docker run -it --name doc01 lhy/centos:1.00 2 数据卷容器 启动子容器doc02 实现继承doc01的关系 docker run -it --name doc02 --volumes-from doc01 lhy/centos:1.00 启动子容器doc03 实现继承doc01的关系 docker…

【计算机毕业设计】病人跟踪治疗信息管理系统源码

一、系统截图(需要演示视频可以私聊) 摘 要 病人跟踪治疗信息管理系统采用B/S模式,促进了病人跟踪治疗信息管理系统的安全、快捷、高效的发展。传统的管理模式还处于手工处理阶段,管理效率极低,随着病人的不断增多&a…

mac pro M1(ARM)安装:安装zookeeper可视化工具PrettyZoo、ZooKeeperAssistant

0. 引言 今天安装zookeeper的可视化工具遇到一些问题,将其记录下来,以供后续的同学参考,在mac软件安装上少走弯路。同时也让大家体会下这两款不同的zk可视化工具的差别 1. 安装PrettyZoo 1、下载 直接在github上选择版本下载: …

8 - 复习总结java中的继承与多态

1. 继承 1.1 为什么需要继承 先看一个例子: 比如猫和狗都是动物,都可以用一个类来描述。 使用java语言来描述: class Cat{String name;int age;float wight;public void bark(){System.out.println(name"汪汪汪叫");}public void eat(){S…

PyTorch使用快速梯度符号攻击(FGSM)实现对抗性样本生成(附源码和数据集MNIST手写数字)

需要源码和数据集请点赞关注收藏后评论区留言或者私信~~~ 一、威胁模型 对抗性机器学习,意思是在训练的模型中添加细微的扰动最后会导致模型性能的巨大差异,接下来我们通过一个图像分类器上的示例来进行讲解,具体的说,会使用第一…

Reactor 模型

文章目录1、网络编程关注的事件2、网络 IO 的职责2.1、IO 检测2.1.1、连接建立2.1.2、连接断开2.1.3、消息到达2.1.4、消息发送2.2、IO 操作2.2.1、连接建立2.2.2、连接断开2.2.3、连接到达2.2.4、消息发送3、Reactor 模式3.1、概念3.2、面试:Reactor 为什么使用非阻…