基于提高打孔机生产效能的数学模型

答卷编号 参赛学校填写 答卷编号 竞赛组委会填写 论文题目 基于提高打孔机生产效能的数学基于提高打孔机生产效能的数学模型模型 组 别 本科生本科生 参赛学校 长春理工大学 报名序号 可以不填 参赛队员信息 必填 姓姓 名名 专业班级及学号专业班级及学号 联系电话联系电话 参赛队员参赛队员 1 1 参赛队员参赛队员 2 2 朱保琨朱保琨 电子信息工程电子信息工程 090411335090411335 1554311862415543118624 参赛队员参赛队员 3 3 答卷编号 竞赛组委会填写 评阅情况 省赛评阅专家填写 省赛评阅 1 省赛评阅 2 省赛评阅 3 省赛评阅 4 省赛评阅 5 摘摘 要要 基于过孔是印刷线路板 也称为印刷电路板 的重要组成部分之一 过孔的加工费 用通常占制板费用的 30 到 40 打孔机主要用于在制造印刷线路板流程中的打孔作业 欲提高打孔机的生产效率可通过缩短钻头的加工路径长度来降低钻头移动时间 路径的 优化程度是印刷电路板打孔机性能的重要指标 对其优化利于缩短打孔机的作业 刀具 转换 钻头行进时间以提高生产效能 首先对刀具路径进行建模 应用蚁群算法对刀具 路径进行求解 然后引入双钻头对孔群同时加工 并对双钻头的孔群加工优化路径进行 数学建模 采用遗传算法得到基于单钻头的孔群加工优化路径 选择单钻头对环境进行 建模简单 根据单钻头模型得出打孔机工作最优路线 且行进时间等于作业最短距离除 以钻头的行进速度再减去刀具转换总时间 根据钻头行进总成本和刀具转换总成本 可 得单钻头作业成本 再则 利用分析单钻头的行进时间和作业成本方法 得出双钻头的 在最优作业路线条件下的行进时间和作业成本 并与传统单钻头打孔机进行比较 同时 考虑打孔机的两钻头的合作间距对作业路线和生产效能产生的影响 实验结果表明 双 钻头最优加工路径与单钻头的最优加工路径相比 在不同钻孔速度下使用双钻头同时加 工的新算法能节省加工时间 有效提高了打孔机的加工质量 加工效率 生产效能 关键词关键词 生产效能 蚁群算法 遗传算法 路径优化 1 1 1 问问题重述题重述 1 由某块印刷线路板过孔中心坐标的数据 单位是密尔 mil 也称为毫英寸 1 inch 1000 mil 给出单钻头作业的最优作业线路 包括刀具转换方案 行进时间 和作业成本 2 为提高打孔机效能 设计一种双钻头的打孔机 每个钻头的形状与单钻头相 同 两钻头可以同时作业 且作业是独立的 即可以两个钻头同时进行打孔 也可以 一个钻头打孔 另一个钻头行进或转换刀具 为避免钻头间的触碰和干扰 在过孔加工 的任何时刻必须保持两钻头间距不小于 3cm 称为两钻头合作间距 为使问题简化 可 以将钻头看作质点 i 针对坐标数据 给出双钻头作业时的最优作业线路 行进时间和作业成本 并与传统单钻头打孔机进行比较 其生产效能提高多少 ii 研究打孔机的两钻头合作间距对作业路线和生产效能产生的影响 2 2 问题分析问题分析 本题旨在解决如何提高某类打孔机的生产效能 所谓生产效能 即单位时间内的生 产能力 加工效率 欲提高打孔机的生产效率可通过缩短钻头的加工路径长度来降低钻 头移动时间 孔群加工路径优化问题为典型的旅行商问题 简称为 TSP 对于单钻头的 孔群路径优化问题多利用蚁群算法进行计算 双钻头加工中的两条路径去掉对刀点合并 后也是一个待加工孔的序列 因此通过类似的染色体表示双钻头孔群加工路径问题的可 能解 即利用遗传算法进行解析 根据数学知识先求单钻头问题 行进时间等于作业最 短距离除以钻头的行进速度再减去刀具转换总时间 根据钻头行进总成本和刀具转换总 成本 可得单钻头作业成本 当使用双钻头作业时 为使问题简化 可以将钻头看作质 点 双钻头的两钻头可以同时作业 且作业是独立的 即可以两个钻头同时进行打孔 也可以一个钻头打孔 另一个钻头行进或转换刀具 为避免钻头间的触碰和干扰 现假 设在过孔加工的任何时刻必须保持两钻头间距等于 3cm 称为两钻头合作间距 利用上 述遗传算法做出双钻头最优作业路线图 可知双钻头最短工作路线 可利用分析单钻头 的行进时间和作业成本方法得出双钻头的在最优作业路线条件下的行进时间和作业成 本并与传统单钻头打孔机进行比较 可知其生产效能提高了多少 最后研究打孔机的两 钻头的合作间距对作业路线和生产效能产生的影响 3 3 模型模型设计设计 1 假定对于同一孔型钻孔作业时间都是相同的 2 假定钻头的行进速度是相同的 3 假定在过孔加工的任何时刻必须保持两钻头间距等于 3cm 4 假定将钻头看做质点 5 假设用数控钻铣床进行孔加工时 单钻头 双钻头加工过程如下 单钻头 单钻头 对某一给定尺寸的孔 抑止对应的刀具后 从下刀点开始 沿着使该刀具 总的窄程最短的轨迹 从一个孔移动到另一个孔 直到该类孔中的所有对象都被加工完 毕 再进行下一尺寸的也孔的加工 如此循环 把问题描述成以下优化模型 2 1 变量设计 设有 n 个孔的集合 n VVV 21 设 ij D 表示集合中任意两孔之间的距 离 2 目标函数 需要在孔集合V中 找到一个不重复的全排列 n21 TTTT 令 1 0 n jiji ji TTdM 且 求 M 的最小值 3 约束条件 加工路径从一个孔出发 对每一个孔只加工一次遍历每一个孔 最 后回到起点 包括刀具转换在内 4 优化算法 蚁群算法 双钻头 双钻头 双钻头在孔群加工中 两个钻头同时加工 每个钻头加工时间并不确定 那么单一工件的加工时间由耗时较长的钻头确定 假设两个钻头的对刀点分别为 1 S和 2 S i A1和 j A2分别表示第一个钻头加工的第 i 个 孔和第 2 个钻头加工的第 j 个孔 则两条加工路径 1 U 2 U分别为 11111 SAAS i 22212 SAAS i 双钻头孔群加工路径优化的目标函数为 21 21 2 1 min TT TT T T T 0 0 式式 相应的加工时间分别为 1 T和 2 T 约束条件 任意一个待加工的孔必须包括在其中一条加工路径中 且加工过程中两 个钻头不发生碰撞 4 4 算法的理论分析算法的理论分析 4 14 1 蚁群算法蚁群算法 4 1 1 蚁群算法简述蚁群算法简述 蚁群算法本质上是一种随机搜索算法 它是通过对候选解组成的群体的进化来寻 求最优解 算法由许多蚂蚁共同完成 每只蚂蚁在候选解的空间中独立搜索解 并在 所寻得的解上留下一定的信息素 解的性能越好 蚂蚁留在其上的信息素就越多 信 息素越多的解被选择的可能性也越大 在算法的最初阶段所有解上的信息素是相同的 随着算法的推进 较优解上的信息素将逐渐增多 算法渐渐趋于收敛 引用 M Dorigo 所举的例子 来说明蚁群的运动情况 如图 1 所示 设 A 是巢穴 E 是食 物源 HC 为一障碍物 假设每个时间单位有 30 只蚂蚁由 A 到达有 也有 30 只蚂蚁从 E 3 到达 A 初始时刻 蚂蚁以相同的概率选择每条路 经过一段时间后 在路径 BCD 上的信 息素是 BHD 上的 2 倍 将有 20 只蚂蚁由 BCD 到达 E 随着时间推移 蚂蚁将会以越来越 大的概率选择路径 BCD 从而找到最短路径 图图 1 1 蚂蚁觅食实验路线图蚂蚁觅食实验路线图 4 1 4 1 2 2 算法实现算法实现 1 状态转移规则 kk isis ikij allowedsAllowedj tt tt else k ij tp 0 若 1 1 式式 式中 t P k ij 在 t 时刻蚂蚁 k 由元素 i 转移到元素 j 的概率 k Allowed 表示蚂蚁 k 下一步允许选择的城市 信息启发式因子 表示轨迹的相对重要性 期 望启发式因子 表示能见度的相对重要性 t ij 启发函数 ijij dt 1 ij 残 留信息量 2 局部调整规则 局部调整是每只蚂蚁在建立一个解的过程中进行的 经过h个 时刻 两个元素状态之间的局部信息素数量要根据下式作调整 0 1 tht ijij 4 min0 1 nl 式中 1 0 min l表示所有坐标集合中两个最近元素之间的距离 3 全局调整准则 只有生成了全局最优解的蚂蚁才有机会进行全局调整 全局 调整规则为 else jik L Q t tt ttnt k k ij m k k ijij ijijij 0 1 只在本次循环中若第 2 2 3 3 式 式 式中 信息素挥发系数 t k ij 表示第 k 只蚂蚁在本次循环中留在路径 i j 上的信息量 Q 信息素强度 设为常数 k L 第 k 只蚂蚁在本次循环中 所走的路径的长度 本文编写蚁群算法程序的步骤如下 1 初始化问题的集合规模 n 蚂蚁的数量 m 并将 m 只蚂蚁放到 n 个城市 过孔 上 2 程序执行需要循环1 cc MM次 3 执行循环时蚂蚁的个数1 KK 4 对其中第 K 只蚂蚁 根据公式 1 选择城市 过孔 j 并继续进行前进 5 把蚂蚁选择的城市 过孔 j加入到第 k 只蚂蚁的表 tabu 中 并修改表 Allowed 6 对于第 K 只蚂蚁如果没有行走完所有 n 个城市 过孔 则转到第四步 若所有 城市 过孔 均已走完 则继续往下执行 7 如果蚂蚁数 K 小于蚂蚁总数 m 则转到第三步 直到 m 只蚂蚁都走完 n 个城市 继续往下执行 8 由式 2 式 3 随时更新蚂蚁行走时的信息量 且找出 m 只蚂蚁中 所走路 径最短的值 并保存 9 若循环的总次数没有达到最大的循环次数 则将继续转到第二步进行执行 若 满足结束条件循环将结束 同时输出结果数据 程序流程图如程序流程图如下下 5 初始化初始化 执行次数执行次数 M M M M 1 1 此时蚂蚁数此时蚂蚁数K K K K 1 1 由式由式 1 1 蚂蚁所选择的下蚂蚁所选择的下 一个元素一个元素 过孔过孔J J 修改表修改表TABUTABU 表表AllowedAllowed 第第K K只蚂蚁走完所有的过孔只蚂蚁走完所有的过孔 K K 蚂蚁总数蚂蚁总数 利用公式利用公式 2 2 3 3 对信息量进行优化对信息量进行优化 程序结束条件是否成立程序结束条件是否成立 结束结束 是是 否否 是是 是是 否否 否否 4 24 2 遗传算法遗传算法 4 2 1 4 2 1 遗传算法简述遗传算法简述 遗传算法 GA 是一种优化技术 其目的是提高解决问题能力 保持最佳组合输 入变量 从代表问题潜在解集的一个种群开始的 而一个种群则由经过基因编码的 一定数目的个体组成 每个个体实际上是染色体带有特征的实体 染色体作为遗 传物质的主要载体 即多个基因的集合 其基因型是某种基因组合决定的 因此 在一开始需要实现从表现型到基因型的映射即编码工作 由于仿照基因编码的工 作很复杂 往往对其进行简化 如采用二进制编码 原始种群产生之后 按照适 者生存和优胜劣汰的原理 逐代演化产生出越来越好的近似解 在每一代 根据 问题域中个体的适应度大小挑选个体 并借助于自然遗传学的遗传算子进行组合 交叉和变异 产生出代表新解集的种群 这个过程将导致种群像自然进化一样 其后代种群比前代更加适应于环境 末代种群中的最优个体经过解码 可以作为 问题近似最优解 遗传算法对于组合优化中的 NP 问题非常有效 4 2 2 算法实现算法实现 6 遗传算法在优化孔群加工路径中 染色体一般为一个待加工孔的序列 所以染色体 长度与孔的数量相等 直接采用孔的编号编码在运算中可能出现某些孔未加工的情况 因此可采用编码方式如下 每加工一个孔就将其从未加工列表 T 中删除 并将该孔在 T 中的位置序号放入顺序列表 R 中 依次进行同样操作直到 T 中所有孔被删除 则列表 R 作为一个染色体表示一个待加工孔的序列 假设某个待加工孔的序列为 769583421 AAAAAAAAA 则按上述方法编码得到的染色体为 112141311 而对于双钻头孔群加工路径问题 每个孔的加工序列都是两条加工路径去掉对刀点后合 并的结果 所以还需要把这个序列分为两个子序列 序列中每两个相邻孔之间断开后都 可形成两