基于位置平滑的速度滤波方法和装置、存储介质和设备与流程

文档序号:29140266发布日期:2022-03-05 02:34阅读:117来源:国知局
基于位置平滑的速度滤波方法和装置、存储介质和设备与流程

1.本发明属于计算机技术领域,具体是关于一种基于位置平滑的速度滤波方法和装置、存储介质和电子设备。


背景技术:

2.cam(computeraided manufacturing,计算机辅助制造)主要是指:利用计算机辅助完成从生产准备到产品制造整个过程的活动,即通过直接或间接地把计算机与制造过程和生产设备相联系,用计算机系统进行制造过程的计划、管理以及对生产设备的控制与操作的运行,处理产品制造过程中所需的数据,控制和处理物料(毛坯和零件等)的流动,对产品进行测试和检验等。
3.在cam于数控机床的应用中,cam在出刀路时,往往打散成小线段,在小线段之间会形成一个突变衔接点,机床在经过该衔接点时,会产生较大的方向突变,从而产生一个较大转角加速度,导致振动,影响加工效果。
4.公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。


技术实现要素:

5.本发明的目的在于提供一种基于位置平滑的速度滤波方法,用于解决现有cam在出刀时,加工效果不好的问题。
6.为实现上述目的,本发明提供了一种基于位置平滑的速度滤波方法,包括:
7.在第i次滤波时,累加当前的速度输入以获得当前输入位置,并存储进第一环形队列,其中i>1;
8.计算当前输入位置和第i-n次滤波时的历史输入位置的差值,并存储进第二环形队列,其中n=2n-1,n为滤波器的宽度;
9.对所述第二环形队列进行累加,以获得当前滤波后速度;
10.基于所述当前滤波后速度,更新当前输出位置。
11.一实施例中,在第i次滤波时,累加当前的速度输入以获得当前输入位置,具体包括:
12.在第i次滤波时,将第i-1次滤波时的历史输入位置与当前的速度输入求和,以获得当前输入位置;其中,
13.所述第i-1次滤波时的历史输入位置等于第1至i-1次滤波时的历史速度输入之和。
14.一实施例中,对所述第二环形队列进行累加,以获得当前滤波后速度,具体包括:
15.将第i次滤波时的第二环形队列与第i-1次滤波时的历史第一累加值求和,以获得当前第一累加值;
16.将所述当前第一累加值与第i-1次滤波时的历史第二累加值求和,以获得当前第
二累加值;
17.基于所述当前第二累加值和预设权值的乘积,计算当前滤波后位置;
18.基于所述当前滤波后位置和第i-1次滤波时的历史输出位置的差值,计算当前滤波后速度。
19.一实施例中,所述预设权值表示为:
[0020][0021]
其中,n=2n-1,n为滤波器的宽度。
[0022]
一实施例中,基于所述当前滤波后速度,更新当前输出位置,具体包括:
[0023]
将所述当前滤波后速度与第i-1次滤波时的历史输出位置求和,以获得当前输出位置。
[0024]
一实施例中,还包括:
[0025]
在当前速度输入为零时,重复执行所述速度滤波方法,直至当前输出位置和当前输入位置相等;
[0026]
退出所述速度滤波方法并设置布尔变量为第一值,其中所述布尔变量用于标注滤波工作状态,在所述布尔变量为第一值时,不执行对当前速度输入的滤波操作。
[0027]
一实施例中,所述第一环形队列和第二环形队列的长度等于滤波器的宽度。
[0028]
本发明还提供一种基于位置平滑的速度滤波装置,包括:
[0029]
第一计算模块,用于在第i次滤波时,累加当前的速度输入以获得当前输入位置,并存储进第一环形队列,其中i>1;
[0030]
第二计算模块,用于计算所述当前输入位置和第i-n次滤波时的历史输入位置的差值,并存储进第二环形队列;
[0031]
第三计算模块,用于对所述第二环形队列进行累加,以获得当前滤波后速度;
[0032]
第四计算模块,用于基于所述当前滤波后速度,更新当前输出位置。
[0033]
本发明还提供一种计算设备,包括:
[0034]
至少一个处理器;以及
[0035]
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的方法。
[0036]
本发明还提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的方法。
[0037]
与现有技术相比,根据本发明的基于位置平滑的速度滤波方法,可以通过6次加减法运算、1次乘法运算、以及7次赋值运算即可得到插补器的插补输出位置,而无需经历n=2n-1次循环,加工效果好且耗时较短,不会影响插补的实时性;并且,该滤波方法中,虽然是对速度进行滤波,但平滑则是基于空间位置的,这样方便引入弓高误差的自适应控制,即速度前瞻规划后,可通过各运动段的曲率值以及速度,提前计算滑动滤波器的宽度,使之平滑强度足够大,但又不至于超出设定的弓高误差;另外,基于位置平滑,对滤波器的退出时机可更严谨,以避免出现位置累积误差的隐患。
附图说明
[0038]
图1是根据本发明基于位置平滑的速度滤波方法一实施例的流程图;
[0039]
图2和图3分别是未开启本发明速度滤波方法和开启本发明速度滤波方法时,cam出刀的轨迹图;
[0040]
图4是根据本发明基于位置平滑的速度滤波装置一实施例的模块图;
[0041]
图5是根据本发明基于位置平滑的速度滤波计算设备一实施例的硬件结构图。
具体实施方式
[0042]
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
[0043]
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
[0044]
在滑动加权平均滤波器中,其原理公式为:
[0045][0046]
其中,f(i)为滤波输出,x(i-k+1)为滤波输入,h(k)为滤波权值, i代表第i次滤波,i和k取正整数;滤波权值h(k)定义为:
[0047][0048]
可知:
[0049][0050]
满足加权平均的定义。
[0051]
可以看出,每次滑动加权的平均滤波都需要经历n=2n-1次循环,每次循环需要一次乘法、一次累加,当n比较大时,计算会比较耗时,而为了不影响插补的实时性,则需要设定一个较低的滤波器宽度上限。
[0052]
参图1,基于以上定义,介绍本发明基于位置平滑的速度滤波方法的一具体实施方式。在本实施方式中,该方法包括:
[0053]
s11、在第i次滤波时,累加当前的速度输入以获得当前输入位置,并存储进第一环形队列。
[0054]
在速度滤波的开始,可以先执行滤波器的初始化步骤。包括设定滤波器的宽度为n,并可以向下修正为奇数n=2n-1;初始化输入位置p
in
和输出位置p
out
为0;设置一布尔变量bworking用来标注滤波工作状态,并初始化为第一值false。
[0055]
这里,在布尔变量bworking为第一值false时,不执行对当前速度输入的滤波操作,滤波器直接将速度输入值不作任何变化直接输出;而在布尔变量 bworking为第二值true时,滤波器执行对当前速度输入的滤波操作。
[0056]
并且,在速度滤波的开始,还需要检查是否可以启动滤波器执行滤波操作。这里,设置速度输入为0,且当前滤波器未工作时,才可启动滤波器,并设定布尔变量bworking为第二值true。
[0057]
在具体的滤波操作时,以第i次滤波为例(i>1):
[0058]
首先将第i-1次滤波时的历史输入位置与当前的速度输入v
in
(i)求和,以获得当前输入位置。这里第i-1次滤波时的历史输入位置p
in
(i-1)等于第1 至i-1次的历史速度输入之和。当前输入位置具体表示如下:
[0059]
p
in
(i)=p
in
(i-1)+v
in(i)[0060]
该当前输入位置存储进第一环形队列x[i],表示为x[i]=p
in
。这里第一环形队列x[i]的下标表示为(i mod n),其中mod表示同余运算。
[0061]
一实施例中,第一环形队列x[i]的长度可以等于滤波器的宽度n。
[0062]
s12、计算当前输入位置和第i-n次滤波时的历史输入位置的差值,并存储进第二环形队列。
[0063]
第二环形队列y[i]表示为:
[0064]
x[i]=x[i]-x[i-n]
[0065]
其中n=2n-1,n为滤波器的宽度。类似地,这里第二环形队列y[i]的下标表示为(i mod n),其中mod表示同余运算。
[0066]
在本步骤中,当前输入位置和第i-n次滤波时的历史输入位置可以都是从第一环形队列中进行调取;又或者,至少第i-n次滤波时的历史输入位置可以是从第一环形队列中进行调取。
[0067]
一实施例中,第二环形队列y[i]的长度可以等于滤波器的宽度n。
[0068]
s13、对所述第二环形队列进行累加,以获得当前滤波后速度。
[0069]
具体地,首先将第i次滤波时的第二环形队列与第i-1次滤波时的历史第一累加值求和,以获得当前第一累加值。
[0070]
这里的第一累加值可以存储于第一累加器d(i)中,且第一累加器d(i)可以在滤波器初始化时设置为0。具体表示为:
[0071]
d(i)=d(i-1)+y[i]
[0072]
其次,将当前第一累加值与第i-1次滤波时的历史第二累加值求和,以获得当前第二累加值。
[0073]
类似地,这里的第二累加值可以存储于第二累加器s(i)中,且第二累加器 s(i)可以在滤波器初始化时设置为0。具体表示为:
[0074]
s(i)=s(i-1)+d(i)
[0075]
随后,基于当前第二累加值和预设权值的乘积,计算当前滤波后位置。该当前滤波后位置表示为k*s(i),其中,k为预设权值,且
[0076][0077]
其中,n=2n-1,n为滤波器的宽度。
[0078]
最后,基于当前滤波后位置和第i-1次滤波时的历史输出位置p
out
(i-1) 的差值,计算当前滤波后速度。具体表示为:
[0079]vout
(i)=k*s(i)-p
out
(i-1)
[0080]
s14、基于所述当前滤波后速度,更新当前输出位置。
[0081]
具体地,将当前滤波后速度与第i-1次滤波时的历史输出位置求和,以获得当前输出位置p
out
(i)。具体表示为:
[0082]
p
out
(i)=p
out
(i-1)+v
out(i)[0083]
一实施例中,输入位置和输出位置可以在滤波器初始化时设置为0。
[0084]
在以上滤波器的速度滤波方法中,还包括退出执行滤波方法的步骤。具体地,在当前速度输入v
in
(i)=0时,重复执行上述的速度滤波方法,直至当前输出位置p
out
(i)和当前输入位置p
in
(i)相等时,退出速度滤波方法并设置布尔变量bworking为第一值false。
[0085]
可以证明,以上重复调用执行速度滤波方法的次数不大于滤波器的宽度n,即可使得布尔变量bworking为第一值false。
[0086]
在以上的实施方式和实施例中,通过6次加减法运算、1次乘法运算、以及7次赋值运算即可得到插补器的插补输出位置,而无需经历n=2n-1次循环,加工效果好且耗时较短,不会影响插补的实时性。
[0087]
并且,在上述的滤波方法中,虽然是对速度进行滤波,但平滑则是基于空间位置的,这样方便引入弓高误差的自适应控制,即速度前瞻规划后,可通过各运动段的曲率值以及速度,提前计算滑动滤波器的宽度,使之平滑强度足够大,但又不至于超出设定的弓高误差。
[0088]
另外,基于位置平滑,对滤波器的退出时机可更严谨,以避免出现位置累积误差的隐患。
[0089]
参图2和图3,分别是未开启本发明速度滤波方法和开启本发明速度滤波方法时,cam出刀的轨迹图。可以看出,开启本发明速度滤波方法后,有效平滑了衔接点的方向突变,减少振动从而优化加工效果。
[0090]
以下从数学角度推导本发明上述实施方式中速度滤波方法的可行性。
[0091]
滑动加权平均滤波器的滤波公式展开为:
[0092][0093]
设定:
[0094]
s(i)=x(i)+2x(i-1)+

+n*x(i-n+1)+

+2*x(i-2n+3)+x(i-2n+2)
[0095]
则:
[0096]
s(i-1)=x(i-1)+2*x(i-2)+

+n*x(i-n)+

+2*x(i-2n+2)+x(i-2n+1)
[0097]
s(i)-s(i-1)=x(i)+x(i-1)+

+x(i-n+1)-x(i-n)-x(i-n-1)
‑…‑
x(i-2n+1)
[0098]
也即:
[0099]
s(i)-s(i-1)=[x(i)-x(i-n)]+[x(i-1)-x(i-n-1)]+

+[x(i-n+1)-x(i-2n+1)]
[0100]
令:y(i)=x(i)-x(i-n),d(i)=s(i)-s(i-1)
[0101]
则:d(i)=y(i)+y(i-1)+

+y(i-n+1);d(i)-d(i-1)=y(i)-y(i-n)
[0102]
再令:z(i)=y(i)-y(i-n)
[0103]
则:d(i)-d(i-1)=z(i)
[0104]
由上整理可得:
[0105]
y(i)=x(i)-x(i-n)
[0106]
z(i)=y(i)-y(i-n)
[0107]
d(i)=d(i-1)+z(i)
[0108]
s(i)=s(i-1)+d(i)
[0109][0110]
而这里的x(i)即为当前输入位置p
in
(i),f(i)即为当前输出位置p
out
(i), f(i)-f(i-1)即为插补器的当前滤波后速度v
out
(i)。
[0111]
参图4,本发明还提供基于位置平滑的速度滤波装置的一具体实施方式。该s形速度曲线前瞻规划装置包括第一计算模块、第二计算模块、第三计算模块、以及第四计算模块。
[0112]
第一计算模块用于在第i次滤波时,累加当前的速度输入以获得当前输入位置,并存储进第一环形队列,其中i>1;第二计算模块用于计算当前输入位置和第i-n次滤波时的历史输入位置的差值,并存储进第二环形队列;第三计算模块用于对所述第二环形队列进行累加,以获得当前滤波后速度;第四计算模块用于基于所述当前滤波后速度,更新当前输出位置。
[0113]
一实施例中,第一计算模块具体用于:
[0114]
在第i次滤波时,将第i-1次滤波时的历史输入位置与当前的速度输入求和,以获得当前输入位置;其中,所述第i-1次滤波时的历史输入位置等于第 1至i-1次滤波时的历史速度输入之和。
[0115]
一实施例中,第三计算模块具体用于:
[0116]
将第i次滤波时的第二环形队列与第i-1次滤波时的历史第一累加值求和,以获得当前第一累加值;将所述当前第一累加值与第i-1次滤波时的历史第二累加值求和,以获得当前第二累加值;基于所述当前第二累加值和预设权值的乘积,计算当前滤波后位置;基于所述当前滤波后位置和第i-1次滤波时的历史输出位置的差值,计算当前滤波后速度。
[0117]
一实施例中,第四计算模块具体用于:
[0118]
将所述滤波后速度与第i-1次滤波时的历史输出位置求和,以获得当前输出位置。
[0119]
图5示出了根据本说明书的实施例的基于位置平滑的速度滤波的计算设备30的硬件结构图。如图5所示,计算设备30可以包括至少一个处理器301、存储器302(例如非易失性存储器)、内存303和通信接口304,并且至少一个处理器301、存储器302、内存303和通信接口304经由总线305连接在一起。至少一个处理器301执行在存储器302中存储或编码的至少一个计算机可读指令。
[0120]
应该理解,在存储器302中存储的计算机可执行指令当执行时使得至少一个处理器301进行本说明书的各个实施例中以上结合图1-3描述的各种操作和功能。
[0121]
在本说明书的实施例中,计算设备30可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(pda)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
[0122]
根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以
具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-3描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
[0123]
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本说明书的一部分。
[0124]
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、 cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd-rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
[0125]
本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本说明书的保护范围应当由所附的权利要求书来限定。
[0126]
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理客户实现,或者,有些单元可能分由多个物理客户实现,或者,可以由多个独立设备中的某些部件共同实现。
[0127]
以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
[0128]
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
[0129]
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所对应的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1