基于遗传算法的智能3D打印路径规划方法与流程

文档序号:18617613发布日期:2019-09-06 22:11阅读:853来源:国知局
基于遗传算法的智能3D打印路径规划方法与流程

本发明属于人工智能及3d打印领域,涉及一种基于遗传算法的分区3d打印路径规划方法。



背景技术:

3d打印技术以不同与传统建材制造的制造加工工艺,采用增材制造的加工方式可以轻松的生产个性化定制零件,因此得到了广泛的重视。其通过简单的建模、分层、路径规划、打印堆积、快速制造在极短的时间内就可以完成个性化零件的成型。

路径规划作为3d打印中的一个关键环节,其通过规划打印头的运动轨迹来控制整体的打印过程,对打印质量以及打印效率有着巨大的影响。现阶段常用的z字型、偏执轮廓型路径规划算法优劣势明显,且针对大型制件的表现较差,随着人工智能的普及,智能3d打印路径规划算法将引起关注。

近些年来,目前针对大型制件的3d打印中,传统算法存在着较大的局限性,例如:z字形扫描算法因近距离平行往返容易因材料密集散热而产生应力过于集中,降低材料散热效果,直接导致制件出现变形、裂纹等现象,对于含有数量不等的孔、洞、岛屿等结构,传统的z字型路径需要多次跨越内部的孔洞结构,这不可避免的会引起多次的降速、抬起打印头、落下打印头、继续加工的过程,这种打印方式会大大降低零件的打印效率,打印头抬起的次数越多,零件的打印效率就会越低。



技术实现要素:

为解决上述问题,本发明提出了一种基于遗传算法的3d打印路径规划算法。

本发明的技术方案:

一种基于遗传算法的分区3d打印路径规划方法,首先,将3d模型切片后得到的二维切片面采用bayazit算法进行凹多边形凸分解得到多个子分区,然后再对每个子分区内部进行自适应地沿分区长轴进行扫描以减少路径条数,再将子分区的连接视作tsp旅行商问题,使用遗传算法完成整个轮廓的路径规划,得到整个路径规划的仿真结果,最后由仿真结果,结合实际的打印机参数,完成整个的打印过程。

具体步骤如下:

第一步,建立3d打印路径规划的仿真环境

stl文件是现阶段3d打印中最常用的文件格式,stl格式的文件是由许多的三角面片组成的3d模型,是一种实体模型的近似处理。首先将需要3d打印的三维模型存储为stl文件,使用切片软件将三维模型进行切片操作,二维切片面的轮廓输出为顺序点,将每一个二维切片面的顺序点集存储为excel文件,再进行内部的路径规划。

第二步,路径规划的核心计算

(1)对二维切片面进行分区

在z字型路径规划中,其中一种减少打印头抬起次数的方法是进行区域分割,也就是对切片后的截面进行分区,这种思想是将复杂大型区域分割成若干个简单的子区域,每一个小的子区域内均可连续完成打印。

分区采用的是凹多边形凸分解的方法,其本质是消除凹点,分解成简单多边形,在一般情况下,总是希望剖分所得到的每个多边形内角尽量维持在30度-150度的范围内,避免出现过于狭长或者畸变的凸多边形。具体方法采用的是bayazit算法,bayazit算法根据以下简单的观察逐步建立起来的,使用一个对角线可以消除两个反射顶点的时候比只消除一个反射顶点的效果好,当只有对角线连接到反射顶点的范围内时,该反射顶点才能被移除,否则,角度只会变得越来越小。

在bayazit算法中两个顶点的连接应该以一直保持着最高优先级的次序连接,连接次序为:优先连接最接近的两个反射顶点;连接最接近的一个反射顶点;连接最接近的顶点。

(2)子分区内部路径最优打印角度选择

z字型路径主要由是多条直线组成,各直线相互平行,每条直线路径结束后,打印头将降速运动进行转弯,移动到下一条扫描线进行打印,在制件成型过程中,打印头必然会多次启停变速,无法保持恒定不间断的速度,在路径的拐角处降速并且存在打印头启停和变速问题,这将影响打印效率并且造成制件成型质量差。为解决这些存在的问题,必须减少z字型路径中拐角的存在,而拐点的数量和打印路径的角度存在直接的联系。

当打印线的角度α选取不同的数值时,拐点数也会有所不同,如果想最大化打印机的打印效率,那么必须要尽可能的使拐点数小。要使得拐点数量最小,就应尽可能的减少路径条数,使得打印路径沿着每个子分区轴线最长的方向进行打印,这样就会使得每个子分区内的路径条数最少。

采取自适应的沿分区长轴进行打印,即打印路径沿着每个子分区轴线最长的方向作为最优的打印角度,以减少拐点数量,减小打印头抬起次数,减少路径条数。

(3)子分区路径规划

对子分区的路径规划就是对每个分区后的封闭的子分区进行逐个打印,每个分解后的子分区选择一个打印起点也是打印终点,整个截面图有多少分区就有多少个起始点,不难看出,对子分区的路径规划问题可以归为经典的旅行商问题(travelingsalesmanproblem,tsp),即在所有的起始点中选择一条最合适的路径,使得每个起始点只被经过一次,且最终连接的路径最短,也就是在打印的过程中打印头抬起的次数最少,且移动的空行程最短。

第三步,输出路径参数以及g-code

经过第二步的路径规划后,将实验数据、打印头抬起次数、路径条数和空行程距离进行输出,并将路径预览在屏幕上,最后将路径输出为g-code代码,用于3d打印机进行打印。

本发明的有益效果:

本发明基于遗传算法,完成对复杂大型制件的3d打印的路径规划,目前传统的路径规划在针对复杂大型制件时存在成形质量较差的情况,在本发明中采用了对大型制件进行分区,再对分区内部选用自适应沿长边打印的打印方式以减少打印头拐角数量,最后将各个子分区的连接问题看作tsp旅行商问题,使用遗传算法进行迭代得到合适的路径规划。通过本发明的方法,使计算机能够智能的找到适合打印的路径,能够大大的提高打印的效率,成型的效果也明显好于传统的路径规划方法。本发明中的方法对于各类3d打印模型具有通用性。

附图说明

图1为本发明整体流程图;

图2为螺母二维截面尺寸图;

图3为遗传算法的交叉原理图;

图4为遗传算法流程图;

图5为螺母截面的z字型路径规划算法图;

图6为螺母截面的偏置轮廓型路径规划算法图;

图7为螺母截面的智能路径规划算法图;

图8为多角多边形的z字型路径规划算法图;

图9为多角多边形的偏置轮廓型路径规划算法图;

图10为多角多边形的智能路径规划算法图。

具体实施方式

以下结合附图和技术方案,进一步说明本发明的具体实施方式。

本发明的流程图如图1所示。以下针对实际打印物体,对本发明做进一步的详细说明,并与传统算法进行对比。

step1:前期准备工作,完成模型的切片及顺序轮廓点的生成

(1)为打印螺母模型,建立3d仿真模型,并对此三维模型进行切片(见图2),之后得到的每个二维切片面,并将其轮廓输出为顺序点集存储在excel文件中,由于模型a每层对象结构一致,以下以某一层为例,详述本发明的具体实施过程。

(2)在仿真环境中,可以设置打印头的路径宽度,在该3d仿真模型中,本发明设置打印宽度为1,实际打印中需要根据实际打印物体的厚度与打印头出料量,来设置打印宽度。

step2:智能3d打印路径规划

(1)分区算法

针对大型复杂制件的3d打印过程,一种减少打印头抬起次数的方法就是进行区域分割,凹多边形凸分解是进行区域分割的一种策略,本发明使用bayazit算法来对二维切片面进行凹多边形凸分解,其本质就是消除所有凹点,分解成简单多边形。

在bayazit算法中两个顶点的连接应该以一直保持着最高优先级的次序连接:优先连接最接近的两个反射顶点;连接最接近的一个反射顶点;连接最接近的顶点。

(2)选取最优打印角度

z字型路径主要由多条直线组成,各直线相互平行,每条直线路径结束时,打印头将降速运动进行转弯,移动到下一条扫面线进行打印,在制件成型过程中,必然会多次启停变速,因此,自适应的沿分区长轴进行打印,可以有效的减少拐点数量,减小打印头抬起次数。

(3)子分区路径规划

通过分区算法对切片面进行区域分割后,对于子分区的路径规划就是对每个封闭子分区进行逐个打印,将其看作经典的tsp旅行商问题,即在所有的起始点中选择一条最合适的路径,使得每个起始点只被经过一次,且将最终连接的路径最短设置为约束。

①选择编码策略,对于该问题,直接使用路径表示一条染色体,即使用一个整数数组,数组长度为tsp城市的数量,即二维切片面子分区的数量,数组中存储各个城市的编号,从下标为0开始逐个遍历数组元素形成的一个序列即为路径。

②形成初始解,采用随机的方式产生若干个(种群规模)的序列,即产生符合城市编号的随机数存储在数组中,数组中的元素包含所有的城市编号,而且没有重复的编码;数组的个数为种群规模。

③计算适应度,选择运算将选择算子作用于群体。

在形成一定数量的可行解(染色体)后,需要对这些父代的染色体进行筛选。根据生物遗传的基因的优胜劣汰原则,在筛选染色体的过程中也会秉承精英保留原则,使得优异的基因有更多的机会得到遗传。

适应度函数f(x):本发明选择路径长度的倒数来作为解的适应度。

其中,目标函数p(x)表示在遍历所有点所产生路径总距离,d(pi,pi+1)表示路径中相邻的点i到另一个点i+1的距离。由于tsp的目标是路径总长度为最短,属于最小值问题,因此通过取倒数来得到适应度函数。

在本发明中,选择“轮盘赌”算法来筛选染色体。其基本原理:计算每个染色体(路径)的长度的倒数,再得到所有路径倒数之和,用每条路径的倒数除以所有路径倒数之和即为这条路径被选中的概率(路径越短,概率越高)。

④采用交替位置交叉法来对每一对染色体进行交叉操作,如图3所示,左边为父代的两个染色体,右边为子代染色体。将左上的数组第一个元素放入右上数组的第一位置中,再转移到左下数组第一个元素,查看右上数组是否已经包含了该元素,如果未包含将其插入右上数组中,否则插入右下数组中。接着从左上数组的第二个元素开始,到左下第二个元素,和前次同一的判断操作。如此类推直到右边两个数组都被填充满为止。其中的交叉概率对于解的收敛速度有着重要的影响,一般选择0.6-1,本发明选择0.8。

⑤使用位置倒换法,即染色体上随机的产生两个位置上数值互换来实现变异运算。

整个遗传算法的流程图如图4所示,在上述所有步骤迭代400次之后,最终返回适应度最高的结果。

step3:输出路径参数以及g-code

经过智能路径规划方法计算后,将相关的实验数据、打印头抬起次数、路径条数和空行程距离进行输出,再将路径预览在屏幕上,便于观察,最后将路径输出为g-code代码,可用于3d打印机进行打印。

采用传统的路径规划方法z字型方法(见图5),以及偏置轮廓型方法(见图6)完成该图形的路径规划。其中z字型路径规划路径条数为86条,空行程距离为524mm,打印头抬起次数为18次。偏置轮廓路径规划产生的路径条数为118条,空行程距离为87mm,打印头抬起次数为10次。

而基于本发明输出的打印路径(见图7),经过智能算法计算后,打印拐角明显变少,打印头抬起次数减少为2次,路径条数减少为63条,空行程距离为33mm。由数据对比可以看出,本发明输出的路径可以大大减少路径条数,打印头抬起次数等,成型效果明显优于传统的路径规划。

基于上述图形打印结果,对结构类似的另外一多角的多边形进行了实验。

采用z字型路径规划方法(见图8),生成的路径条数为132条,空行程距离为921mm,打印头抬起次数为21次;采用偏置轮廓路径规划方法(见图9),产生的路径条数为136条,空行程距离为105mm,打印头抬起次数为12次。本发明输出的路径(见图10),产生的路径条数为89条,空行程距离为275mm,打印头抬起次数为3次。

通过以上三个模型的实验,可以看出本发明提出的智能路径规划方法,针对不同的模型,均有较为良好的效果,由此可见利用本发明,可以大大降低打印头抬起次数以及路径转角次数,可以缩短整体的空行程距离,在成型效果以及效率上要明显优于传统的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1