背景技术
数控机床是一种高效、自动化的机床,由机床本体和数控系统两部分组成。机床本体主要由床身、立柱、工作台、导轨等基础件和刀库、刀架等配套件组成,为叙述方便,以下将机床本体简称为机床。数控系统是一种程序控制系统,包括数控装置、驱动、电机(马达),其中数控装置包括人机界面、参数设置、代码输入器、解释器、运动规划器、轴运动控制器,以及附加的加值软件等模块。图1是目前一般数控系统的架构图,标示了数控装置内的主要模块。其中,人机界面模块负责用户与数控装置之间的交互,参数设置模块用于设置数控装置运行时的参数,代码输入器主要负责数控加工程序、控制参数、补偿数据等的输入,解释器主要对数控加工程序的程序段进行译码处理,运动规划器主要完成速度处理以及插补运算,轴运动控制器主要负责位置控制,加值软件则是一些实现附加功能的软件模块,例如刀具轨迹的仿真等。
图2是近年来流行的数控系统新架构,其将数控装置拆成上、下位机;下位机包含实时操作有关的运动规划器与轴运动控制器,其他的模块放在上位机。
在数控装置模块中,运动规划器是高档数控系统最关键的技术。数控装置在开始加工时,会从数控装置外部输入直接用于加工的程序,该程序称为数控加工程序,因该程序代码中通常含有较多的字符G,故又被称为G代码,在一般的G代码中,通过给定点的坐标的形式给出了运动轨迹上的一系列点即序列点,如图3所示。数控装置所读入的数控加工G代码(刀具轨迹)包含轴运动的轨迹,但不含速度信息。运动规划器的主要功能是计算每一时刻运动轨迹上的时间坐标,从而进一步得到速度信息,之后再使用时间坐标将运动轨迹做离散处理。第一步关于时间坐标的计算通称为速度规划,而运动轨迹的时间坐标离散化通称为运动插补。为了计算上的方便,速度的计算与运动轨迹时间坐标的离散化通常结合在一起;换言之,速度规划与运动插补算法有密切关系。
将运动轨迹进行离散化处理的过程称为插补,离散所得的点称为离散插补点。相邻的离散插补点之间的时间差是固定的,称为插补周期。插补周期的大小取决于轴运动控制器的能力,越高端的轴运动控制器其插补周期越短。
运动规划器的功能与加工精度、时间以及工件表面光滑度有密切的关系。高档数控系统在做运动规划时会考虑机床的速度、加速度、与抖动(jerk)的限制,同时对最短时间做优化。实时性的优化需要对刀具轨迹做前瞻,高度的优化必须具备高量的前瞻能力,对内存量与内核速度的要求较高。此处所说的前瞻是指:数控装置在G代码执行以前预先计算出各程序段的运动轨迹和运动速度。
云计算是一类信息化技术,云计算通过网络在远程提供计算以及数据的服务,而用户端可以不需要知道远程服务的来源。目前云计算在车间的使用还在起步阶段,且集中在对数控系统与机床的远程监控及数据服务方面。在车间云计算的架构设计上,目前的方法都是将数控系统与机床绑成云架构里的同一单元。换言之,数控系统与机床之间不经过云架构相连,如图4所示。在申请号为201210205272.6的中国专利文献提出将数控装置的主要部分移到云端,其包括两个模式:服务式与本地式云端数控。
服务式云端数控是将整个上位机移到远程服务器电脑,形成一个云端的上位机,与下位机和机床经由网络连接,如图5所示。在此架构下,一个上位机可以接数个下位机。
本地式云端数控保留本地(机床旁)上位机提供操作相关的人机界面与参数设置,而将其余的模块移到云端,如图6所示。在此架构下,操作人员感觉与传统的数控没有不同,唯一的差别是内部的计算都是在运端的上位机完成。
无论是传统架构或云端数控架构,运动规划器都是放在本地下位机,如图2、5及图6所示。这是因为目前一般数控系统都是在机床进行加工时,需要实时地做运动规划,而所有要求实时性的工作必须放在下位机以避免网络的时间延迟与网络故障的可能性。这种方式有下述缺点:
(1)在加工实时性这一要求的限制下,无法做较复杂的优化计算。(2)加工实时性计算对内核的速度与缓存(cache)的要求较高,从而增加了成本。(3)将运动规划器放置在下位机,大大地降低了其开放性与配置在云端的可能性。
尽管中国专利CN100412736C公开的一种技术方案中采用非实时运动规划方式,即其将运动规划器的工作(包括速度规划与运动插补)在实际加工之前先完成,将结果数据储存在电子媒介,然后在实时加工时直接调用预先储存的数据。但是,该技术方案不能适用于远程或云端数控系统的架构而且,对于如果实时加工时发生人为干涉(如人为暂停)等外部影响因素时,该方法不能进行有效处理。
发明內容
针对上述问题,本发明的目的之一在于提供一种数控加工中的运动规划方法,采用曲线拟合与速度规划结合的方法,解决传统数控系统中曲线拟合及速度规划效果不好或实时性不足的问题。
实现本发明的该目的所采用的具体技术方案如下:
一种数控加工中的运动规划方法,在对G代码序列点进行曲线拟合的同时,获得加工速度的规划函数,具体包括:
对数控系统中的解释器产生的G代码序列点ri(i=0,…,N-1)进行拟合处理,拟合得到连续的刀具轨迹曲线r(u)(u∈[0,1]);其中,i为G代码序列点的序号,N为G代码序列点的总数目,i的取值范围为[0,N-1],u为轨迹曲线里参数。
轨迹曲线里的参数u代表一个抽象值,不具备物理意义,它是数学表达的一种方式。具体到本发明中,u是与时间密切相关的,其既可以是时间,也可以是时间的函数。
根据加工总时间T获得规划函数σ(u)=du/dt;
根据上述刀具轨迹曲线r(u)和规划函数σ(u),利用数控系统的插补周期Δt进行插补运算,获得轨迹曲线r(u)上的各离散插补点,即可实现运动规划;
其中插补运算公式为:
uj+1-uj=σ((uj+1+uj)/2)Δt
式中,j为插补后所得离散插补点的序号,uj为第j个离散插补点在曲线r(u)上的参数,j为整数,从零开始到一个具体的整数结束,这个具体的整数是j的上限值,其大小依具体的数控系统和加工精度而定,但不可能是无穷大的,uj+1为第j+1个离散插补点在刀具轨迹曲线r(u)上的参数。。
作为该技术方案的改进,所述规划函数σ(u)通过求解加工时间积分的最小值得到:
其中T是数控加工运行时间的总和。
作为该技术方案的改进,在任一参数为uj的离散插补点处如果发生人为干预,如暂定或减速等,可以利用加速度插补进行速度提升,以恢复到规划好的速度函数,该加速度插补具体为:
从uj与uj-1可以算出这瞬间运动速度:
上式中,j的含义与前述相同,r(uj)表示第j个离散插补点的坐标,vj表示第j个离散插补点处的速度。
如果机床的加速度极限是a,下一瞬间加速后的速度与相应的弧长Δrj+1是:
vj+1=vj+aΔt
从弧长可以算出下一个参数点:
依此类推,由uj与uj+1计算之后的离散插补点的参数uj+2,…,uj+k,直到两离散插补点的参数uj+k-1和uj+k之间的区间长度满足Δuj+k≥σ((uj+k+uj+k-1)/2)Δt时,即可在该参数为uj+k的离散插补点处恢复到规划好的速度函数。
本发明的目的之二在于提供一种数控加工中的运动规划器,其包括:
拟合运动规划器,其具有轨迹曲线拟合器和速度函数规划器,其中所述轨迹曲线拟合器用于将数控系统中的解释器产生的G代码序列点进行拟合处理,以拟合得到连续的刀具轨迹曲线,所述速度规划模块根据刀具轨迹曲线计算获得规划函数;
离散运动规划器,其根据所述刀具轨迹曲线和规划函数,利用数控系统的插补周期Δt进行插补运算,获得轨迹曲线上的各离散点,完成运动规划。
所述规划函数σ(u)通过求解下列加工时间积分的最小值得到:
其中T是数控加工运行时间的总和;
所述固定插补器进行插补运算的公式为:
uj+1-uj=σ((uj+1+uj)/2)Δt
式中,j为离散插补点的序号,uj为第j个离散插补点在刀具轨迹曲线r(u)上的参数,uj+1为第j+1个离散插补点在刀具轨迹曲线r(u)上的参数,Δt为数控系统的插补周期。
本发明的目的之三在于提供一种包括上述运动规划器的云端数控系统,其特征在于,所述运动规划器的拟合运动规划器设置在云端上位机上。
作为该技术方案的改进,所述云端数控系统的数控装置包括上位机和下位机,所述运动规划器的离散运动规划器设置在数控装置的下位机上。
本发明的方法及装置具有以下优点:
(a)在拟合之前与当中所做的数学分析(例如曲率、弧长等),可以用来帮助计算速度规划,从而避免了重复计算,简化并加快了计算步骤、计算时间。(b)加速度与抖动(jerk)的优化可以在拟合之前或当中来做,这比在拟合之后做容易,结果也更优化。(c)计算所得到的速度函数是连续的,这比离散的速度规划要更准确。
具体实施方式
下面结合附图和具体实施例,对本发明的方案进行详细描述。下述实施例仅是示例性的,并不构成对本发明的限定。
本实施例的一种数控加工中的运动规划方法包括如下具体步骤:
(1)拟合运动规划步骤
拟合运动规划包括曲线拟合与连续速度规划,其是在曲线拟合时做连续性速度规划,打破传统技术中先拟合,然后在运动插补(离散)时做速度规划的方式。
曲线拟合的功能是将数控加工G代码的各序列点ri拟合成一个连续的刀具轨迹曲线r(u)。其中ri表示第i个序列点的坐标,且ri=[xi,yi,zi],xi、yi、zi分别表示该序列点的三个坐标值,i∈,0,N-1],N表示序列点的总数。r(u)为拟合后所得的曲线的方程,u为轨迹曲线里参数,是该方程的自变量,其取值范围为u∈[0,1]。
轨迹曲线里的参数u代表一个抽象值,不具备物理意义,它是数学表达的一种方式。具体到本发明中,u是与时间密切相关的,其既可以是时间,也可以是时间的函数。
在开展拟合工作时,最通用的拟合方法是样条拟合,也可以采用其他拟合方法。
轨迹曲线里的参数u代表一个抽象值,不具备任何物理意义,而在做插补之前需要得到时间坐标的相关信息。为了实现时间规划,需要运动规划器在做拟合的同时,也计算出下列代表参数对时间微分(即参数速度)的规划函数:
σ(u)=du/dt (Ⅰ)
规划函数σ(u)可以是一个样条函数,或者任何至少二次微分连续(C2)的函数。轨迹曲线对时间的速度、加速度、与抖动可以经由规划函数来计算:
dr/dt=(dr/du)σ
d2r/dt2=(d2r/du2)σ2+(dr/du)(dσ/dt)
d3r/dt3=(d3r/du3)σ3+(d2r/du2)3σ(dσ/dt)+(dr/du)(d2σ/dt2) (Ⅱ)
根据上述规划函数,利用插补周期(Δt)即可通过插补算法找出离散点。
实际上,拟合运动规划器输入是G代码的序列点,输出是连续的四维向量函数,(r(u),σ(u))(u∈[0,1]),其中前三维是轨迹曲线,而最后一维是规划函数。
将拟合与速度规划结合,这在计算上有极大优势:(a)在拟合之前与当中所做的数学分析(例如曲率、弧长等),可以用来帮助计算速度规划,从而避免了重复计算,简化并加快了计算步骤、计算时间。(b)加速度与抖动(jerk)的优化可以在拟合之前或当中来做,这比在拟合之后做容易,结果也更优化。(c)计算所得到的速度函数是连续的,这比离散的速度规划要更准确。
(2)离散运动规划步骤
离散运动规划是指根据插补周期Δt在轨迹曲线r(u)(u∈[0,1])上找离散点的步骤。其通过上述拟合运动规划步骤所产生的四维向量函数(r(u),σ(u))(u∈[0,1]),根据离散算法即可获得具有固定周期的各离散点r(uj),uj∈[0,1]。
式中,j为插补后所得离散点的序号,uj为曲线上第j个离散点的参数,j是一个整数,从零开始到一个具体的整数结束,这个具体的整数是j的上限值,其大小依具体的数控系统而定,但不可能是无穷大的。
离散运动规划的插补算法为:
Δu=σ(u)Δt (Ⅲ)
具体到其中的任意相邻离散点uj和uj+1,其满足:
uj+1-uj=σ((uj+1+uj)/2)Δt (Ⅳ)
本发明的方法中,由于可能会出现操作员人为干预轴运动的速度,例如人为的减速或暂停等,使得规划速度发生变化,这时需要进行加速度插补,以使速度恢复到规划速度,以继续进行后续的固定周期插补。
在人为的减速、暂停结束之后,须恢复到预先规划好的速度函数,这时启动加速度插补,来将速度提升到预先规划好的速度。在加速度插补算法中,每个离散段Δuj=uj+1-uj必须对应于固定的插补周期Δt,而下一个参数点uj+1的计算是基于目前的参数点uj与上个参数点uj-1。
从uj与uj-1可以算出这瞬间离散点j处的运动速度:
r(uj)表示第j个插补点在刀具轨迹曲线上的坐标,r(uj-1)表示第j-1个插补点在刀具轨迹曲线上的坐标,Δrj表示插补点r(uj)与插补点r(uj-1)之间的曲线段的弧长。
如果机床的加速度极限是a,下一瞬间加速后的速度与相应的弧长Δrj+1是:
vj+1=vj+aΔt
从弧长可以算出下一个参数点:
以此类推,由uj与uj+1计算之后的离散插补点的参数uj+2,…,uj+k,直到两离散插补点的参数uj+k-1和uj+k之间的区间长度满足Δuj+k≥σ((uj+k+uj+k-1)/2)Δt时,即可在该参数为uj+k的离散插补点处恢复到规划好的速度函数,此处,k是计算的步数,是一个整数,k大于或等于2,且小于一个大于2的有限大小的整数,该整数具体是多少,取决于具体的计算过程。
这个终止条件(Δuj+k≥σ((uj+k+uj+k-1)/2)Δt)表示速度已经达到或超过当初规划好的速度函数,不须再执行加速度插补。
本实施例中的运动规划器包括拟合运动规划器和离散运动规划器。其中,拟合运动规划器的输入数据是由解释器产生的G代码序列点ri(i=0,…,N-1),输出是连续的四维向量函数(r(u),σ(u))(u∈[0,1]),其中前三维是刀具轨迹曲线r(u),而最后一维是规划函数σ(u)≡du/dt。
拟合运动规划器包括轨迹曲线拟合器与速度函数规划器。其间关系如附图9所示。
轨迹曲线拟合器用于将G代码的各序列点ri(i=0,…,N-1)拟合成一个连续的刀具轨迹曲线r(u),最通用的拟合方法是样条拟合,其算法在相关教科书里都有叙述,这里不再重复。
速度函数规划器根据轨迹曲线拟合器所得到的刀具轨迹曲线r(u)计算规划函数σ(u),其中计算σ(u)的方法是求解下列加工时间积分的最小值:
式(Ⅷ)中T是数控加工程序运行时间的总和。
求解上述积分最小值的数学方法本实施例中优选变分法(Calculus ofVariations),具体求解过程可以参阅相关的教科书。在求解时必须附带考虑下列数学限制(constraints):
必须小于机床所能承受的速度。
必须小于机床所能承受的加速度。
必须小于机床所能承受的抖动。
此种带约束的变分(Constrained Calculus of Variations)问题必须采用数
值分析方法求取近似解。数值分析方法众多,在此不再赘述。
离散运动规划器根据刀具轨迹曲线和规划函数,利用数控系统的插补周期Δt进行插补运算,获得轨迹曲线上的各离散点。
离散运动规划器输入数据是由拟合运动规划器产生的四维向量函数(r(u),σ(u))(u∈[0,1]),其计算轨迹曲线上的离散点r(uj),使得离散点之间的时间差等于插补周期Δt:
t(uj+1)-t(uj)=Δt (IX)
因为轨迹曲线函数r(u)已经产生了,只要计算出参数离散点uj,就立刻知道轨迹离散点r(uj)。
计算参数离散点uj由周期插补器完成。周期插补器是一个迭代式的算法,其任务是由已经算好的{u0...uj}来计算uj的下一点uj+1。
具体地,其中的任意相邻离散点uj和uj+1,其满足:
uj+1-uj=σ((uj+1+uj)/2)Δt
在人为的减速、暂停结束之后,须恢复到预先规划好的速度函数,此时执行加速度插补。
在加速度插补算法中,每个离散段Δuj=uj+1-uj必须对应于固定的插补周期Δt,而下一个参数点uj+1的计算是基于目前的参数点uj与上个参数点uj-1。
从uj与uj-1可以算出这瞬间离散点j处的运动速度:
如果机床的加速度极限是a,下一瞬间加速后的速度与相应的弧长Δrj+1是:
vj+1=vj+aΔt
从弧长可以算出下一个参数点:
以此类推,由uj与uj+1计算之后的离散插补点的参数uj+2,…,uj+k,直到两离散插补点的参数uj+k-1和uj+k之间的区间长度满足Δuj+k≥σ((uj+k+uj+k-1)/2)Δt时,停止执行加速度插补,恢复到当初规划好的速度函数。
以下给出一种具体的利用周期插补器进行插补计算的应用实例,该实例中具体的伪代码形式如下:
上文算法中提到了两种插补器,其算法分别如下:
本发明实施例中上述运动规划器可应用于云端数控系统中。本发明实施中的云端数控系统可以是申请人的系列申请(201210205272.6)中所公开的云端数控系统,其可以应用本发明中的运动规划器替代常规的运动规划模块。
图7所示是本发明在服务式云端数控系统的架构下实现的说明。其中,运动规划器中的拟合运动规划器设置在云端上位机上,离散运动规划器设置在下位机。复杂的计算在拟合运动规划器中利用服务器电脑的强大计算能力完成,而离散运动规划器只做相对简单的计算,不对下位机造成负担。
图8所示是本发明在本地式云端数控系统的架构下实现的说明。其中拟合运动规划器云端上位机上,离散运动规划器设置在数控装置的下位机上。
两个方案中都是云端上位机的“拟合运动规划器”配合下位机的“离散运。