Tecnomatix Plant Simmution 14 学习之路(二)

本篇博客主要介绍基础遗传算法的实现,例子参考博客一推荐的周金平老师教材第三章,这里做简单介绍

问题描述:
将n个设备(M1,…Mn)放置到n个位置(A,B…)上,其中每个位置上能且仅能放置一台设备,已知n个设备两两之间的物料搬运量大小W(i, j),以及固定的n个位置布局,并且每个位置之间的距离D(i, j)知晓。求将n个作业单位分配到n个工作地点,使得总的物流量最小。即使得下式最小(设备搬运过程为顺序执行,例如某次已经存在M1—M2,则不考虑M2—M1)
Tecnomatix Plant Simmution 14 学习之路(二)
设备物料搬运量从至表
Tecnomatix Plant Simmution 14 学习之路(二)

位置布局的距离从至表
Tecnomatix Plant Simmution 14 学习之路(二)

Plant Simmulation平台建模:

step1
首先,在软件平台搭建以下模型
Tecnomatix Plant Simmution 14 学习之路(二)

step2
定义全局变量Number_Of_Machine,设备数量,八台
PartNo(记录后续仿真模型过程中搬运的零件个数),也就是搬运的物料数目
X_pos_init, Y_pos_init 定义产生设备及缓存坐标。

Tecnomatix Plant Simmution 14 学习之路(二)

step3
创建从至表数据,固定生成设备及缓存初始位置
Tecnomatix Plant Simmution 14 学习之路(二)
(本图创建时候只有表格对角线以右部分,左下角为程序创建,下篇博客会对该程序说明,这里只是介绍步骤)

Tecnomatix Plant Simmution 14 学习之路(二)

step4
从至表数据校核,设置方法在InitPartsTable中完成,完整代码如下:
Tecnomatix Plant Simmution 14 学习之路(二)
Tecnomatix Plant Simmution 14 学习之路(二)
其中包括了删除之前缓冲对象以及建立新对象的操作。

step5
定义机器序列表(默认时2、3列为空值,只设置了第一列机器名)
Tecnomatix Plant Simmution 14 学习之路(二)

step6
定义零件加工顺序表,如图所示,从Mus文件夹中把Entity对象复制到Models文件夹目录下,改名为Parts
Tecnomatix Plant Simmution 14 学习之路(二)
在Source设置如图所示
Tecnomatix Plant Simmution 14 学习之路(二)
在PartsTable设置如下,新增两列_From和_To,并修改数据类型(表格中具体内容由代码生成,下篇博客会介绍到)

Tecnomatix Plant Simmution 14 学习之路(二)
在Parts下新建_From和_To变量,如图所示
Tecnomatix Plant Simmution 14 学习之路(二)

step7
初始化设置,在Init设置,特别地,如果未设置GA,请注释第5至第7行代码(使用 '/*.....*/')
Tecnomatix Plant Simmution 14 学习之路(二)

step8
调入策略和离开策略,操作如图所示
Tecnomatix Plant Simmution 14 学习之路(二)

Tecnomatix Plant Simmution 14 学习之路(二)

Tecnomatix Plant Simmution 14 学习之路(二)

其中,Leave的策略已经加载至InitPartsTable中,代码为:Machine.ExitCtrl := &Leave。
通过step1-8,进行模拟仿真画面呈现如下,则表示模型顺利建成:

Tecnomatix Plant Simmution 14 学习之路(二)

GA工具的运用:

由工作模型可知,该序列为数值型,例如54321876就是表示从左开始每台设备依次布置到A…H工作地去
在GASequence设置如下图:
Tecnomatix Plant Simmution 14 学习之路(二)

设置数据类型为整型,定义完成数据类型后,即可将Init方法的第5行至第7行注释释放。

在GAwizard设置如下:

step1
如图所示,勾选“配置方法”,点击编辑,编写代码
Tecnomatix Plant Simmution 14 学习之路(二)
Tecnomatix Plant Simmution 14 学习之路(二)

step2
如下图所示,在适应度一栏勾选按表,点击打开,在表格第一列输入HandlingCost,加权值为1
Tecnomatix Plant Simmution 14 学习之路(二)

Tecnomatix Plant Simmution 14 学习之路(二)

step3
点击对象,选择GA控件,再点击任务,输入绝对地址'.Models.A.GASequence'

Tecnomatix Plant Simmution 14 学习之路(二)
Tecnomatix Plant Simmution 14 学习之路(二)
Tecnomatix Plant Simmution 14 学习之路(二)

step4
评估中勾选生成HTML报告,完成GAwizard设置。此后,Reset,运行GAwizard
Tecnomatix Plant Simmution 14 学习之路(二)

最终效果如下:

Tecnomatix Plant Simmution 14 学习之路(二)
Tecnomatix Plant Simmution 14 学习之路(二)

可以看到,实际结果跟教材略有出入(也可能是我哪里不小心弄错了??)
写到最后,先介绍几个常见的小技巧

提示输入: ctrl + space(空格),注意要在美式键盘下才能使用,或者取消ctrl + space的输入法切换功能即可
对象重命名 :F2 
方法运行:F5
方法单步运行: F11
删除对象:delete