一种步进电机的插补操作控制方法、装置和终端设备与流程

文档序号:32106194发布日期:2022-11-09 04:32阅读:227来源:国知局
一种步进电机的插补操作控制方法、装置和终端设备与流程

1.本技术涉及工业控制技术领域,尤其涉及一种步进电机的插补操作控制方法、装置、终端设备和计算机可读存储介质。


背景技术:

2.目前,随着工业技术的快速发展,步进电机的应用越来越广泛。例如,在3d打印机或者数控机床等工业设备中,基于直线加减速法控制步进电机加减速运行,以使得3d打印机或者数控机床实现对应的功能。
3.如图1为传统技术方案中步进电机在加减速阶段对应的频率曲线图,步进电机的运行频率随时间变化的公式为:f(t)=at+f0;其中,a表示步进电机的加速度值,t表示步进电机的运行时间,f0表示步进电机的初始频率。
4.在实际操作中,为了进一步提高工业设备所生产的工件的精度,需要对工件或者工业设备中的刀具的运动轨迹进行插补操作,即需要对用于控制工件或者刀具运动的步进电机的运动轨迹进行插补操作。运动轨迹可以近似为若干条很小的直线段,对应确定出的插补路径也是离散的,也就是说,插补路径对应的各个插补段的频率并不是连续变化的,可以通过确定每一个插补段的插补频率实现插补操作。
5.图2为传统技术方案中步进电机在加速阶段的插补频率变化示意图;插补段的频率一般通过脉冲控制,每一个插补段的长度固定相同,对应的每个脉冲的面积为1。传统技术方案中,在计算插补频率时,一般是将插补频率的变化过程看作连续变化过程,并根据公式f(t)=at+f0周期定时计算出离散的频率,即得到插补周期对应的插补频率。并且,在实际应用中,通过公式转换,可以按照定时累加的方式更新插补频率:fn=f
n-1
+δf;其中,δf表示插补周期内频率的变化量。
6.但是,在按照传统的技术方案进行插补操作时,在周期定时确定出插补频率后,按照计算出的插补频率进行插补操作,即执行插补操作的时间相对规划进行插补操作的时间之间存在一定的误差,因此将导致实际插补操作对应的插补频率与规划的插补频率之间的误差大;并且定时根据上一时间点的插补频率计算当前时间点的插补频率,可能存在在需要控制插补操作时,当前时间点对应的插补频率未更新,则需要按照上一时间点的插补频率进行插补控制,这将导致步进电机的实际加速度值无法达到预设值;另外,将导致在预设时长内无法将规划的插补频率发送完,因此会在最后时刻连续按照上一时间点的插补频率进行插补控制,造成速度控制的误差。
7.因此,如何提高步进电机的运行精准度,是本领域技术人员目前需要解决的技术问题。


技术实现要素:

8.本技术的目的在于提供一种步进电机的插补操作控制方法、装置、终端设备和计算机可读存储介质,旨在解决提高步进电机的运行精准度的问题。
9.第一方面,本技术提供了一种步进电机的插补操作控制方法。所述方法包括:
10.获取步进电机的初始频率和加速度值;
11.根据所述初始频率和所述加速度值,确定与各插补时序分别对应的目标插补频率;
12.在与所述插补时序对应的插补时间点,利用与所述插补时序对应的目标插补频率控制所述步进电机进行插补操作。
13.在其中一个实施例中,所述根据所述初始频率和所述加速度值,确定与各插补时序分别对应的目标插补频率,包括:
14.根据所述初始频率和所述加速度值,确定与当前插补时序对应的当前中间频率;
15.获取与所述当前插补时序对应的上一插补时序的上一中间频率;
16.根据所述当前中间频率和所述上一中间频率,确定与所述当前插补时序对应的目标插补频率。
17.在其中一个实施例中,所述根据所述初始频率和所述加速度值,确定与当前插补时序对应的当前中间频率,包括:
18.根据所述初始频率确定初始总累加值;
19.根据所述加速度值确定累加因子;
20.获取与当前插补时序对应的上一插补时序的上一总累加值;首次计算的当前插补时序的上一总累加值为所述初始总累加值;
21.根据所述上一总累加值和所述累加因子,确定所述当前插补时序的当前总累加值;
22.根据所述当前总累加值确定与所述当前插补时序对应的当前中间频率。
23.在其中一个实施例中,所述方法还包括:
24.判断当前插补时序对应的插补操作是否满足预设条件;
25.若满足,则结束进程;
26.若不满足,则返回所述获取与当前插补时序对应的上一插补时序的上一总累加值的步骤。
27.在其中一个实施例中,所述预设条件包括插补次数达到预设次数阈值,或者与所述当前插补时序对应的所述目标插补频率达到预设频率阈值。
28.在其中一个实施例中,所述获取步进电机的初始频率和加速度值,包括:
29.获取步进电机的运行轨迹对应的当前路径段和下一路径段;
30.根据所述当前路径段和所述下一路径段进行运动轨迹规划,得到规划路径;
31.根据所述规划路径确定所述步进电机的初始频率和加速度值。
32.在其中一个实施例中,若所述步进电机为3d打印机中的步进电机,所述方法还包括:
33.根据所述目标插补频率确定所述3d打印机中挤出打印材料的挤出速度。
34.第二方面,本技术还提供了一种步进电机的插补操作控制装置。所述装置包括:
35.获取模块,用于获取步进电机的初始频率和加速度值;
36.确定模块,用于根据所述初始频率和所述加速度值,确定与各插补时序分别对应的目标插补频率;
37.插补控制模块,用于在与所述插补时序对应的插补时间点,利用与所述插补时序对应的目标插补频率控制所述步进电机进行插补操作。
38.第三方面,本技术还提供了一种终端设备。所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
39.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
40.本技术实施例提供的一种步进电机的插补操作控制方法,获取步进电机的初始频率和加速度值,并根据初始频率和加速度值,确定与各插补时序分别对应的目标插补频率;在与插补时序对应的插补时间点,利用与插补时序对应的目标插补频率控制步进电机进行插补操作;可见,本方案是利用初始频率和加速度值,确定与各插补时序分别对应的目标插补频率,因此可提前确定出与各插补时序对应的目标插补频率,进而可以在与插补时序对应的插补时间点控制步进电机进行插补操作,避免了执行插补操作相对规划进行插补操作之间的时间误差,从而避免了由于插补操作延迟导致的运动控制误差;并且,本方案在与插补时序对应的插补时间点控制步进电机进行插补操作,因此能够精准地利用每个规划出的目标插补频率进行插补操作,能够精准控制步进电机的加速度值和速度值。因此,本方案能够提高步进电机的运行精准度。
41.可以理解的是,上述第二方面、第三方面和第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
42.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
43.图1为传统技术方案中步进电机在加减速阶段对应的频率曲线图;
44.图2为传统技术方案中步进电机在加速阶段的插补频率变化示意图;
45.图3为本技术实施例提供的一种步进电机的插补操作控制方法的流程图;
46.图4为本技术实施例提供的一种步进电机的运行轨迹示意图;
47.图5为本技术实施例提供的一种规划路径示意图;
48.图6为本技术实施例提供的一种步进电机的速度曲线示意图;
49.图7为本技术另一个实施例中加速阶段的频率计算过程的示意图;
50.图8为本技术另一个实施例中计算目标插补频率的流程图;
51.图9为本技术另一个实施例中一种插补频率的示意图;
52.图10为本技术实施例提供的一种步进电机的插补操作控制装置的结构示意图;
53.图11为本技术实施例提供的一种终端设备的结构示意图。
具体实施方式
54.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具
体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、设备、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
55.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
56.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
57.如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0058]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0059]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。“多个”表示“两个或两个以上”。
[0060]
图3示出了本技术实施例提供的一种步进电机的插补操作控制方法的流程图,可以由终端设备的处理器在运行相应的计算机程序时执行,为了便于说明,仅示出了与本实施例相关的部分,本实施例提供的方法包括如下步骤:
[0061]
s100:获取步进电机的初始频率和加速度值。
[0062]
其中,初始频率指的是步进电机在加减速运动过程中初速度对应的脉冲频率;加速度值可以是正值或者负值,即步进电机进行加速运动或者减速运动。
[0063]
在实际操作中,可以通过数据读取的方式,直接获取步进电机的初始频率和加速度值;也可以通过获取步进电机的运行轨迹,根据该运行轨迹确定出步进电机的初始频率和加速度值;本实施例对获取步进电机的初始频率和加速度值的具体方式不做限定。
[0064]
s200:根据初始频率和加速度值,确定与各插补时序分别对应的目标插补频率。
[0065]
应理解,在实际操作中,是在插补路径中的各插补段发送对应频率的脉冲,以实现插补操作;插补时序指的是与插补段对应的次序,也就是按照时间先后顺序排列的各插补段对应的顺序。
[0066]
其中,各插补时序对应的插补频率一般不同,因此需要分别确定与各插补时序分别对应的目标插补频率,即目标插补频率指的是与插补时序对应的插补频率。例如,确定插补时序t=1时的目标插补频率,也就是确定出t=1时刻对应的插补段的脉冲的频率。
[0067]
本实施例中,是基于各插补时序,利用初始频率和加速度值直接进行计算,得到与插补时序对应的目标插补频率。
[0068]
s300:在与插补时序对应的插补时间点,利用与插补时序对应的目标插补频率控制步进电机进行插补操作。
[0069]
需要说明的是,与插补时序对应的插补时间点也就是规划出的需进行插补操作对应的发送脉冲的时间点。
[0070]
本步骤中,是在确定出与插补时序对应的目标插补频率后,通过监测当前时刻是否为与插补时序对应的插补时间点,并在与插补时序对应的插补时间点,发送与目标插补频率对应的脉冲,以实现控制步进电机进行插补操作。并且,在实际操作中,可以使用定时器中断或者通过直接存储器访问(direct memory access,dma)的方式发送对应的脉冲;本实施例对发送脉冲的具体方式不做限定。
[0071]
本技术实施例提供的一种步进电机的插补操作控制方法,获取步进电机的初始频率和加速度值,并根据初始频率和加速度值,确定与各插补时序分别对应的目标插补频率;在与插补时序对应的插补时间点,利用与插补时序对应的目标插补频率控制步进电机进行插补操作;可见,本方案是利用初始频率和加速度值,确定与各插补时序分别对应的目标插补频率,因此可提前确定出与各插补时序对应的目标插补频率,进而可以在与插补时序对应的插补时间点控制步进电机进行插补操作,避免了执行插补操作相对规划进行插补操作之间的时间误差,从而避免了由于插补操作延迟导致的运动控制误差;并且,本方案在与插补时序对应的插补时间点控制步进电机进行插补操作,因此能够精准地利用每个规划出的目标插补频率进行插补操作,能够精准控制步进电机的加速度值和速度值。因此,本方案能够提高步进电机的运行精准度。
[0072]
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,根据初始频率和加速度值,确定与各插补时序分别对应的目标插补频率,包括:
[0073]
步骤1:根据初始频率和加速度值,确定与当前插补时序对应的当前中间频率。
[0074]
其中,当前中间频率指的是当前计算的插补次序对应的中间频率,也就是当前插补次序对应的第n段脉冲完成时对应的频率。在本实施例中,当前中间频率可直接根据初始频率和加速度值计算出;如其中,f0为初始频率,a为加速度值,n为当前插补时序。或者,可以利用初始频率和加速度值迭代更新数列,即确定出总累加值sumn,并根据确定出当前中间频率;其中,sumn=sum
n-1
+2a;sum0=f
02
;f0为初始频率,a为加速度值,n为当前插补时序。
[0075]
步骤2:获取与当前插补时序对应的上一插补时序的上一中间频率。
[0076]
步骤3:根据当前中间频率和上一中间频率,确定与当前插补时序对应的目标插补频率。
[0077]
其中,上一中间频率指的是与当前插补时序对应的上一插补时序的中间频率;也就是上一插补次序对应的第(n-1)段脉冲完成时对应的频率。在本实施例中,根据当前中间频率和上一中间频率的平均值,计算出与当前插补时序对应的目标插补频率,即第n段脉冲的频率fn落在fn'和fn'-1
的中点:
[0078]
[0079]
可见,按照本实施例的方法,能够便捷精准地确定出与当前插补时序对应的目标插补频率,从而能提高步进电机的插补操作控制的精准便捷度。
[0080]
在其中一个实施例中,步骤1:根据初始频率和加速度值,确定与当前插补时序对应的当前中间频率,包括:
[0081]
步骤1.1:根据初始频率确定初始总累加值。
[0082]
其中,初始总累加值即当前总累加值的初始值;本实施例中,根据初始频率确定初始总累加值,确定初始总累加值为初始频率的平方,即sum0=f
02
;其中,sum0为初始总累加值,f0为初始频率。
[0083]
步骤1.2:根据加速度值确定累加因子。
[0084]
其中,累加因子指的是相邻两个插补时序对应的当前总累加值之间的差值。本实施例中,根据加速度值确定累加因子,具体可为:确定累加因子为加速度值的两倍,即累加因子为2a;其中,a为加速度值。
[0085]
步骤1.3:获取与当前插补时序对应的上一插补时序的上一总累加值;首次计算的当前插补时序的上一总累加值为初始总累加值。
[0086]
其中,上一总累加值为在上一插补时序计算出的总累加值,即获取sum
n-1
;其中,n为当前插补时序。需要说明的是,在本实施例中,首次计算的当前插补时序的上一总累加值为初始总累加值,也就是在首次计算目标插补频率时,当前插补时序对应的上一插补时序的上一总累加值为初始总累加值。也就是说,当n=1时,获取的上一总累加值即为初始总累加值sum0。
[0087]
步骤1.4:根据上一总累加值和累加因子,确定当前插补时序的当前总累加值。
[0088]
其中,当前总累加值指的是与当前插补时序对应的总累加值。本实施例中,根据上一总累加值和累加因子,确定当前插补时序的当前总累加值,具体是在上一总累加值的基础上,增加累加因子,即得到当前插补时序的当前总累加值,即当前插补时序的当前总累加值为上一总累加值与累加因子之和,即sumn=sum
n-1
+2a;其中,sumn为当前总累加值。
[0089]
步骤1.5:根据当前总累加值确定与当前插补时序对应的当前中间频率。
[0090]
本步骤中,是对当前总累加值开方计算,得到与当前插补时序对应的当前中间频率,即其中,fn'为当前中间频率。
[0091]
可见,按照本实施例的方法,能够便捷精准地计算出当前中间频率,从而能提高步进电机的插补操作控制的精准便捷度。
[0092]
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,方法还包括:
[0093]
判断当前插补时序对应的插补操作是否满足预设条件;
[0094]
若满足,则结束进程;
[0095]
若不满足,则返回获取与当前插补时序对应的上一插补时序的上一总累加值的步骤。
[0096]
其中,预设条件指的是预先设置的用于确定是否需要继续进行插补操作的条件。在本实施例中,是在计算出目标插补频率之后,进一步判断当前插补时序对应的插补操作是否满足预设条件。
[0097]
在实际操作中,若以速度控制为判断标准,则可以通过判断目标插补频率是否达
到预设频率阈值来确定当前插补时序对应的插补操作是否满足预设条件;若以位置控制为判断标准,则可以通过判断当前插补时序对应的插补次数序是否达到预设次数阈值来确定当前插补时序对应的插补操作是否满足预设条件。
[0098]
更具体的,在其中一个实施例中,预设条件包括插补次数达到预设次数阈值,或者与当前插补时序对应的目标插补频率达到预设频率阈值。
[0099]
其中,插补次数指的是需要进行插补操作的次数,也就是需要发送脉冲的次数。在实际操作中,可以是根据步进电机的运行轨迹计算出与该运行轨迹对应的总插补次数,即确定预设次数阈值;在每次确定出目标插补频率并在与插补时序对应的插补时间点,利用与插补时序对应的目标插补频率控制步进电机进行插补操作之后,更新插补次数;然后利用更新的插补次数与预设次数阈值进行比较;当插补次数大于预设次数阈值时,表示当前的插补操作已经满足预设条件,因此结束进程;否则表示当前的插补操作还未满足预设条件,还需继续进行插补操作,因此返回获取与当前插补时序对应的上一插补时序的上一总累加值的步骤。
[0100]
或者,在获取插补操作对应的预设次数阈值后,在每次进行插补操作后,将预设次数阈值减1,直至预设次数阈值为0,表示插补次数达到预设次数阈值。例如,假设步进电机加速阶段的插补次数对应的预设次数阈值为n1,匀速阶段的插补次数对应的预设次数阈值为n2,减速阶段的插补次数对应的预设次数阈值为n3,交接阶段的插补次数对应的预设次数阈值为n4;针对每一个运动阶段,在依据目标插补频率进行插补操作后,判断该运动阶段对应的插补次数是否达到预设次数阈值;如针对加速阶段,在依据目标插补频率进行插补操作后,更新对应的预设次数阈值n1=n
1-1,并判断加速阶段的插补操作是否执行完毕,即判断更新后的预设次数阈值n1是否大于0;若大于0,则表示插补操作未执行完毕,即当前插补时序对应的插补操作不满足预设条件,因此返回获取与当前插补时序对应的上一插补时序的上一总累加值的步骤;若小于或等于0,则表示当前插补时序对应的插补操作满足预设条件,因此结束进程。
[0101]
其中,目标插补频率为随插补时序递增的值或者是随插补时序递减的值,因此可以设置预设频率阈值,在每次确定出目标插补频率时,将目标插补频率与预设频率阈值进行比较;若当前插补时序对应的目标插补频率达到预设频率阈值,则表示当前的插补操作已经满足预设条件,因此结束进程;否则表示当前的插补操作还未满足预设条件,还需继续进行插补操作,因此返回获取与当前插补时序对应的上一插补时序的上一总累加值的步骤。
[0102]
可见,按照本实施的方法,能够保障在结束插补操作时,当前插补时序对应的插补操作已经达到对应的预设条件,因此能够进一步保障插补操作的可靠性。
[0103]
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,获取步进电机的初始频率和加速度值,包括:
[0104]
获取步进电机的运行轨迹对应的当前路径段和下一路径段;
[0105]
根据当前路径段和下一路径段进行运动轨迹规划,得到规划路径;
[0106]
根据规划路径确定步进电机的初始频率和加速度值。
[0107]
具体的,在实际操作中,可以通过读取g代码(g-code)的方式获取步进电机的运行轨迹,从而依据运行轨迹确定步进电机的当前路径段和下一路径段。图4为本实施例提供的
一种步进电机的运行轨迹示意图,图5为本实施例提供的一种规划路径示意图;如图4所示,假设第一线段a0-a1为当前路径段;a1-a2为下一路径段;根据当前路径段和下一路径段进行运动轨迹规划,在当前路径段和下一路径段之间,通过圆滑处理来实现两个路径段的平稳交接,得到对应的规划路径;如图5所示的圆弧部分b0-b1,即圆弧部分b0-b1为规划路径。
[0108]
在确定出规划路径后,依据规划路径进行运动速度规划,确定步进电机的速度曲线。如图6所示,为本实施例提供的一种步进电机的速度曲线示意图;结合图5和图6可知,在规划路径b0-b1处,步进电机以交接速度运行,在不同插补曲线间通过直线加减速进行速度切换;根据速度规划或速度曲线,确定步进电机的初始频率和加速度值。
[0109]
可见,按照本实施实施例的方式确定步进电机的初始频率和加速度值,即依据步进电机的运行轨迹确定步进电机的初始频率和加速度值,不仅操作过程便捷高效,且计算出的初始频率和加速度值更加贴合步进电机的实际运动情况,因此能提高步进电机的插补操作控制的精准便捷度。
[0110]
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,若步进电机为3d打印机中的步进电机,方法还包括:
[0111]
根据目标插补频率确定3d打印机中挤出打印材料的挤出速度。
[0112]
应理解,3d打印机(rapid prototyping)即三维立体打印机,是一种快速成型的一种工艺设备。3d打印机通过将热熔的塑料丝等打印材料挤出,采用层层堆积的方式分层制作出三维模型。3d打印机的运动机构由两部分组成,一部分是一组3自由度的运动控制轴,可以由三台步进电机和用于挤出打印材料的挤出头组成;另一部分包括控制挤出速度的电机以及融化挤出材料的加热铜头;运动控制带动挤出头在三维空间中运动,打印出三维模型。
[0113]
从3d打印机的运行原理可知,3d打印机的打印材料的挤出速度应与挤出头的运动速度相匹配,若挤出速度不匹配,将导致打印出的三维模型凹凸不平,甚至导致挤出头阻塞,进而导致打印失败。
[0114]
挤出头的运动速度为三台步进电机组成的3自由度运动控制轴组的合成速度,在确定步进电机的目标插补频率后,即根据目标插补频率调整了三台步进电机的合成速度,因此需要进一步根据目标插补频率确定对应的挤出打印材料的挤出速度。更具体的,在调整挤出速度时,需要同步调整控制挤出速度的电机的运行频率以及融化挤出材料的加热铜头的运行功率。
[0115]
可见,按照本实施例的方法,通过进一步根据目标插补频率确定3d打印机中挤出打印材料的挤出速度,使得3d打印机的打印材料的挤出速度应与挤出头的运动速度相匹配,因此能够进一步提高3d打印机的打印质量。
[0116]
为了使本技术领域的人员更好地理解本技术中的技术方案,下面结合计算原理对本技术实施例中的技术方案进行详细说明。本技术实施例中,计算出目标插补频率的原理如下:
[0117]
结合图7所示的一种加速阶段的频率计算过程的示意图可知:对连续频率进行积分可以看成是频率曲线围成的梯形的面积sn;代入梯形面积公式可得:
[0118][0119]
其中,f0为初始频率,fn'为第n段脉冲完成时对应的频率(可以看做fn频率右边界延长线和f(t)频率曲线的交点),t为时间;
[0120]
并且,根据公式f(t)=at+f0可得加速过程为:
[0121]
at=fn'-f0;
[0122]
根据公式和公式at=fn'-f0,消去t,可得:
[0123]
2asn=fn'
2-f
02

[0124]

[0125]
由频率的物理含义可知,梯形的面积sn就是所发脉冲数,即:
[0126]
sn=n;
[0127]
从图中也可以看到,连续频率曲线和离散频率曲线相交形成的两个三角形为全等三角形,即在边界条件下,两者围成的面积相等,且每个脉冲的面积为1;
[0128]
将公式根号内(2asn+f
02
)的部分可以看做一个数列sumn;
[0129]

[0130]
根据上述公式可得:
[0131]
sumn=sum
n-1
+2a;
[0132]
sum0=f
02

[0133]
第n段脉冲的频率fn落在fn'和fn'-1
的中点,即:
[0134][0135]
即确定每段脉冲的频率
[0136]
基于上述原理,结合图8所示的另一个实施例中计算目标插补频率的流程图,对确定目标插补频率的过程进一步解释说明,在一个具体的实施例中,确定目标插补频率的步骤如下:
[0137]
s801:根据初始频率f0确定初始总累加值accintermesum0,accintermesum0=f
02
;首次计算的当前插补时序的上一总累加值为初始总累加值;即n=1时,accintermesum(n-1)=accintermesum0=f
02

[0138]
s802:根据加速度值a确定累加因子accamount,accamount=2a;
[0139]
s803:初始化上一中间频率intermefrq的初始值为初始频率f0;
[0140]
s804:获取与当前插补时序对应的上一插补时序的上一总累加值accintermesum(n-1);
[0141]
s805:根据上一总累加值和累加因子,确定当前插补时序的当前总累加值accintermesum(n);
[0142]
accintermesum(n)=accintermesum(n-1)+accamount;
[0143]
s806:根据当前总累加值确定与当前插补时序对应的当前中间频率tempfrq;tempfrq=sqrt(accintermesum(n));
[0144]
s807:获取与当前插补时序对应的上一插补时序的上一中间频率intermefrq;
[0145]
s808:根据当前中间频率和上一中间频率,确定与当前插补时序对应的目标插补频率frq,frq=(intermefrq+tempfrq)/2;
[0146]
s809:根据当前中间频率更新上一中间频率,即intermefrq=tempfrq;
[0147]
s810:确定当前是否完成加减速操作;若是,则结束进程;否则,返回s804。
[0148]
可见,按照本实施例的方法,可以在与插补时序对应的插补时间点控制步进电机进行插补操作,避免了执行插补操作相对规划进行插补操作之间的时间误差,从而避免了由于插补操作延迟导致的运动控制误差;本实施例在与插补时序对应的插补时间点控制步进电机进行插补操作,因此能够精准地利用每个规划出的目标插补频率进行插补操作,能够精准控制步进电机的加速度值和速度值;并且,如图9所示的一种插补频率的示意图,按照本实施例的方法计算出目标插补频率,发送脉冲的频率与规划的脉冲频率相等;因此,本按照本实施例的方法能够提高步进电机的运行精准度;此外,本实施例在计算目标插补频率时,参与计算的变量仅仅包括初始频率和加速度值,因此即使步进电机调整了运行状态,如更改加速度值等,可直接继续利用上述方式计算目标初始频率,而不需要做算法上的调整,因此本实施例中计算目标插补频率的灵活性高,可应用于各种插补曲线间交接的速度切换。
[0149]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0150]
图10所示是本技术实施例提供的一种步进电机的插补操作控制装置的结构示意图。如图10所示,该实施例的步进电机的插补操作控制装置包括获取模块1010、确定模块1020和插补控制模块1030;其中,
[0151]
获取模块1010,用于获取步进电机的初始频率和加速度值;
[0152]
确定模块1020,用于根据初始频率和加速度值,确定与各插补时序分别对应的目标插补频率;
[0153]
插补控制模块1030,用于在与插补时序对应的插补时间点,利用与插补时序对应的目标插补频率控制步进电机进行插补操作。
[0154]
本技术实施例提供的一种步进电机的插补操作控制装置,具有与上述一种步进电机的插补操作控制方法相同的有益效果。
[0155]
在其中一个实施例中,确定模块1020包括:
[0156]
第一确定子模块,用于根据初始频率和加速度值,确定与当前插补时序对应的当前中间频率;
[0157]
获取子模块,用于获取与当前插补时序对应的上一插补时序的上一中间频率;
[0158]
第二确定子模块,用于根据当前中间频率和上一中间频率,确定与当前插补时序对应的目标插补频率。
[0159]
在其中一个实施例中,第一确定子模块包括:
[0160]
第一确定单元,用于根据初始频率确定初始总累加值;
[0161]
第二确定单元,用于根据加速度值确定累加因子;
[0162]
获取单元,用于获取与当前插补时序对应的上一插补时序的上一总累加值;首次计算的当前插补时序的上一总累加值为初始总累加值;
[0163]
第三确定单元,用于根据上一总累加值和累加因子,确定当前插补时序的当前总累加值;
[0164]
第四确定单元,用于根据当前总累加值确定与当前插补时序对应的当前中间频率。
[0165]
在其中一个实施例中,一种步进电机的插补操作控制装置还包括:
[0166]
判断模块,用于判断当前插补时序对应的插补操作是否满足预设条件;若满足,则结束进程;若不满足,则调用获取单元。
[0167]
在其中一个实施例中,预设条件包括插补次数达到预设次数阈值,或者与当前插补时序对应的目标插补频率达到预设频率阈值。
[0168]
在其中一个实施例中,获取模块1010包括:
[0169]
路径获取子模块,用于获取步进电机的运行轨迹对应的当前路径段和下一路径段;
[0170]
路径规划子模块,用于根据当前路径段和下一路径段进行运动轨迹规划,得到规划路径;
[0171]
运行数据确定子模块,用于根据规划路径确定步进电机的初始频率和加速度值。
[0172]
在其中一个实施例中,若步进电机为3d打印机中的步进电机,一种步进电机的插补操作控制装置还包括:
[0173]
挤出速度确定模块,用于根据目标插补频率确定3d打印机中挤出打印材料的挤出速度。
[0174]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0175]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0176]
图11是本技术实施例提供的一种终端设备的示意图。如图11所示,该实施例的终端设备110包括存储器1110、处理器1120以及存储在存储器1110中并可在处理器1120上运行的计算机程序1130;处理器1120执行计算机程序1130时实现上述各个步进电机的插补操作控制方法实施例中的步骤,例如图3所示的s100至s300;或者处理器1120执行计算机程序1130时实现上述各装置实施例中各模块/单元的功能,例如图10所示获取模块、确定模块以
及插补控制模块的功能。
[0177]
示例性的,计算机程序1130可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器1110中,并由处理器1120执行,以实现本技术实施例的方法。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序1130在终端设备110中的执行过程。例如,计算机程序1130可以被分割成获取模块、确定模块以及插补控制模块,各模块具体功能如下:
[0178]
获取模块,用于获取步进电机的初始频率和加速度值;
[0179]
确定模块,用于根据初始频率和加速度值,确定与各插补时序分别对应的目标插补频率;
[0180]
插补控制模块,用于在与插补时序对应的插补时间点,利用与插补时序对应的目标插补频率控制步进电机进行插补操作。
[0181]
在应用中,终端设备110可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备110可包括但不仅限于存储器1110和处理器1120。本领域技术人员可以理解,图11仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等;其中,输入输出设备可以包括摄像头、音频采集/播放器件、显示屏等;网络接入设备可以包括通信模块,用于与外部设备进行无线通信。
[0182]
在应用中,处理器可以是中央处理单元(central processing unit,cpu),也可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0183]
在应用中,存储器可以是终端设备的内部存储单元,例如终端设备的硬盘或内存;也可以是终端设备的外部存储设备,例如,终端设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等;还可以既包括终端设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(boot loader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器还可以用于暂时存储已经输出或者将要输出的数据。
[0184]
本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
[0185]
本技术实施例提供的一种计算机可读存储介质,具有与上述一种步进电机的插补操作控制方法相同的有益效果。
[0186]
本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到终端设备的任何实体或设备、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储
器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。
[0187]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0188]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的设备及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0189]
在本技术所提供的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,设备间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0190]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1