一种数控加工中非圆曲线的最小二乘螺旋线逼近算法的制作方法

文档序号:16746216发布日期:2019-01-28 13:37阅读:491来源:国知局
一种数控加工中非圆曲线的最小二乘螺旋线逼近算法的制作方法

本发明涉及一种数控加工中非圆曲线的最小二乘螺旋线逼近算法,尤其涉及数控加工复杂轮廓曲线时,基于最小二乘原理,先用螺旋线逼近原始曲线,然后进行加工的优化方法。



背景技术:

目前大多数经济型数控机床的数控系统只能进行简单的直线、圆弧、螺旋线插补,所以在面对非圆曲线轮廓的机械加工时,一般做法是在给定的容差范围内用一系列线段、圆弧或者双圆弧逼近原始曲线。但是上述方法存在拟合精度不够高、程序段数多等缺点,这会造成机床频繁加减速,进而影响到实际加工精度与效率。因此需要研究设计一种既能保证较高精度,又能减少数据量的新型非圆曲线逼近算法,来满足加工要求。



技术实现要素:

本发明的目的在于克服已有的技术缺陷,提供一种适用于经济型数控机床的高效、高精度的非圆曲线轮廓数控加工的优化解决方法-一种数控加工中非圆曲线的最小二乘螺旋线逼近算法。

为了解决上述技术问题,本发明提出的一种数控加工中非圆曲线的最小二乘螺旋线逼近算法,包括以下步骤:

步骤一、根据要加工的非圆曲线轮廓的参数方程公式,采用等误差法,将其离散为一系列数据点;

步骤二、读入第一个数据点作为首点;

步骤三、判断待读取数据点个数是否为0,若是,则结束算法,若否,则继续步骤四;

步骤四、判断待读取数据点个数是否大于1,若不大于1,则输出首点与待读取点所确定的线段,结束算法,若大于1,则继续步骤五;

步骤五、继续读入两个数据点;

步骤六、判断三点是否共线,若共线则输出该三点确定的线段,保留该线段的尾点并作为下段待拟合曲线的首点,返回步骤四,若不共线,则继续步骤七;

步骤七、以通过首点且垂直于首点与第二点连线的直线作为首点处的法线,以通过尾点且垂直于尾点与倒数第二个点连线的直线作为尾点处的法线,把首末两点处法线的交点作为该段待拟合螺旋线的中心o(x0,y0);

步骤八、求解该段螺旋线要拟合的点集在以螺旋线中心o(x0,y0)为坐标原点的坐标系下的极坐标(ρi,θi);

步骤九、根据待求螺旋线方程ρ=ρ0+v0·θ与要拟合的点集p1、p2...pi-1、pi的极坐标,构造目标函数s,同时引入通过首点这一约束条件h,得到约束条件下的优化求解问题,然后利用拉格朗日乘子法转化为无约束问题,利用偏导数为零得到一个线性方程组,求解线性方程组得到该螺旋线方程的两个未知参数ρ0与v0;

步骤十、所求得的螺线段通过该段的首点,其余点的拟合误差计算采用以下方法:

(1)计算点pi在以螺旋线中心o为坐标原点的坐标系下的坐标值(ρi,θi),进而得到其对应的极径ρp与转角α;

(2)把α代入求出的螺线方程,得到螺旋线上点pi’对应的极径ρp’;

(3)pi与pi’两点极径差值的绝对值即为点pi处的拟合误差;

步骤十一、判断各点的拟合误差是否满足要求,若全都满足要求,则存储当前拟合得到的螺旋线方程信息,然后前寻一个数据点作为新的尾点,返回执行步骤七,若不满足要求,判断当前拟合的点集个数是否为3,若是,则输出前两点确定的线段,尾点回溯一个数据点作为下段的首点,返回执行步骤四,若不是,则回溯一个数据点,输出上次计算得到的螺旋线方程参数,为了保证连续性,同时根据这组参数更新尾点坐标,作为下段拟合的首点,返回执行步骤四,直到所有数据点均完成拟合;

步骤十二、利用拟合完成后的数据进行编程,转化为数控系统能够识别nc代码,进行数控加工。

与现有技术相比,本发明的有益效果是:

本发明所具有的优点和积极效果是:与现有技术方法相比,此方法解决了用线段、圆弧或者双圆弧逼近原始曲线,存在拟合精度不够高、程序段数多的问题,为经济型数控机床提供了一种精度高、方便高效的非圆曲线轮廓数控加工解决方法,也提出了一种新型的非圆曲线最小二乘螺旋线逼近算法。

附图说明

图1是本发明求解螺旋线中心o坐标的示意图;

图2是本发明拟合误差计算方法的示意图;

图3是本发明为保证螺线段间的连续性根据螺旋线参数更新尾点坐标的示意图;

图4是本发明前寻、回溯数据点的示意图;

图5是本发明拟合数据点集的流程图。

具体实施方式

下面结合附图和具体实施例对本发明技术方案作进一步详细描述,所描述的具体实施例仅对本发明进行解释说明,并不用以限制本发明。

如图5所示,本发明的一种数控加工中非圆曲线的最小二乘螺旋线逼近算法,它包括以下步骤:

步骤一、根据要加工的非圆曲线轮廓的参数方程公式,采用等误差法,将其离散为一系列数据点;

步骤二、读入第一个数据点作为首点;

步骤三、判断待读取数据点个数是否为0,若是,则结束算法,若否,则继续步骤四;

步骤四、判断待读取数据点个数是否大于1,若不大于1,则输出首点与待读取点所确定的小线段,结束算法,若大于1,则继续步骤五;

步骤五、继续读入两个数据点;

步骤六、判断三点是否共线,若共线则输出三点确定的线段,保留该段的尾点作为下段的首点,转到步骤四,若不共线,则继续步骤七;

步骤七、以通过首点且垂直于首点与第二点连线的直线作为首点处的法线,以通过尾点且垂直于尾点与倒数第二个点连线的直线作为尾点处的法线,把首末两点处法线的交点作为该段螺旋线的中心o(x0,y0),如图1所示;

步骤八、求解该段螺旋线要拟合的点集在以螺旋线中心o(x0,y0)为坐标原点的坐标系下的极坐标(ρi,θi);

上式中,xi与yi表示数据点在全局坐标系中的横纵坐标;xi’与yi’表示数据点在以(x0,y0)为坐标系原点的局部坐标系中的横纵坐标;ρi表示数据点到局部坐标系原点的距离;θi表示数据点与局部坐标系原点的连线与坐标轴正向的夹角。

θi的取值有以下四种情形:xi’≥0且yi’≥0时,0≤θi≤π/2;xi’<0且yi’≥0时,π/2<θi≤π;xi’<0且yi’<0时,π<θi≤3π/2;xi’≥0且yi’<0时,3π/2≤θi<2π。

步骤九、根据待求螺旋线方程ρ=ρ0+v0·θ与要拟合的点集p1、p2...pi-1、pi的极坐标,构造目标函数s,同时引入通过首点这一约束条件h,得到约束条件下的优化求解问题,然后利用拉格朗日乘子法转化为无约束问题f(ρ0,v0,k),利用偏导数为零得到一个线性方程组,求解线性方程组得到该螺旋线方程的两个未知参数ρ0与v0;

上式中,ρ0与v0是确定螺旋线方程的两个参数;ρi表示第i个数据点到局部坐标系原点的距离;θi表示第i个数据点与局部坐标系原点的连线与坐标轴正向的夹角;εi表示第i个数据点的拟合误差。

h=ρ0+v0·θ1-ρ1=0

上式中,ρ1表示首点到局部坐标系原点的距离;θ1表示首点与局部坐标系原点的连线与坐标轴正向的夹角。

f(ρ0,v0,k)=s+k·h

上式中,k表示引入的比例系数。

步骤十、所求得的螺线段通过该段的首点,其余点的拟合误差计算采用以下方法:(1)计算点pi在以螺旋线中心o为坐标原点的坐标系下的坐标值(ρi,θi),进而得到其对应的极径ρp与转角α;(2)把α代入求出的螺线方程,得到螺旋线上点pi’对应的极径ρp’;(3)pi与pi’两点极径差值的绝对值即为点pi处的拟合误差δpi,如图2所示。

δpi=|ρp-ρp’|

步骤十一、判断各点的拟合误差是否满足要求,若全都满足要求,则存储当前拟合得到的螺旋线方程信息,然后前寻一个数据点作为新的尾点,返回执行步骤七,若不满足要求,判断当前拟合的点集个数是否为3,若是,则输出前两点确定的线段,尾点回溯一个数据点作为下段的首点,返回执行步骤四,若不是,则回溯一个数据点,输出上次计算得到的螺旋线方程参数,为了保证连续性,同时根据这组参数更新尾点坐标,作为下段拟合的首点,如图3和图4所示,返回执行步骤四,直到所有数据点均完成拟合;

步骤十二、利用拟合完成后的数据进行编程,转化为数控系统能够识别nc代码,进行数控加工。

尽管上面结合附图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以做出很多变形,这些均属于本发明的保护之内。

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