一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于总线型伺服驱动器的丢帧补偿位置算法的制作方法

2022-04-30 16:45:28 来源:中国专利 TAG:


1.本发明涉及伺服驱动器技术领域,具体为一种用于总线型伺服驱动器的丢帧补偿位置算法。


背景技术:

2.随着工业4.0的迅速发展,在工业整个行业中高速、高精、高智能现在已经成为了整个行业的追求目标,而伺服驱动器作为在整个工业技术行业中的关键零部件更是迅速发展。为了更精准、精确的达到加工效果,传统的脉冲型伺服驱动器已经无法满足市场需求,数字总线型伺服驱动器凭借高分辨率、高实时性、高响应等优势广泛的抢占市场,并有逐步替代的趋势。但是数字总线型伺服驱动器就必须匹配总线型控制系统来进行使用,然而对于总线实时性不高的控制系统又会小概率的出现因为时钟抖动而引起的丢帧、丢包等问题,如果出现丢帧、丢包的情况,伺服驱动器如果没有相应的补偿算法,电机就会出现抖动、异响等问题,这样指令丢帧补偿矫正算法就显得尤为重要。
3.现有技术中一种用于总线型伺服驱动器的丢帧补偿位置算法缺点不足:
4.1、专利文件cn111176213a公开了一种用于总线型伺服驱动器的位置细分方法、装置及存储介质,“方法包括:从控制器中获得总线同步周期和位置指令增量;从伺服驱动器中获得伺服驱动器位置环周期;根据总线同步周期和伺服驱动器位置环周期进行计算,获得一个总线同步周期中位置环周期的数量;根据位置指令增量和一个总线同步周期中位置环周期的数量进行增量计算,获得位置增量和余数根据一个总线同步周期中位置环周期的数量、位置增量和余数进行计算分析,获得位置环的位置给定值和最终位置环的位置给定值。本发明能够更精准的控制伺服电机的运行,提高伺服驱动器的频率响应特性,减少伺服电机在运行过程中的抖动情况,提高了工业生产的工作效率,”但上述装置不具有公开共享关于指令丢帧补偿矫正的相关算法,因此,在实际使用时仍具有一定的不足。


技术实现要素:

5.本发明的目的在于提供一种用于总线型伺服驱动器的丢帧补偿位置算法,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案,一种用于总线型伺服驱动器的丢帧补偿位置算法,包括过程数据接收预处理中断处理模块,同步中断过程数据处理中断模块;
7.在没有丢帧的情况下,是过程数据接收预处理中断信号来一次,接着同步中断过程数据处理中断来一次;
8.在过程数据接收预处理中断中,主要是接收来自于控制器的相关控制指令,包括但不仅限于控制字、目标位置、目标速度。还有就是运行中断标志变量赋值
9.t1=t
ꢀꢀ
(式1)
10.frames_cnt=0
ꢀꢀ
(式2)。
11.优选的,所述式1中,t1为过程数据接收预处理中断执行标志变量,t为同步中断过
程数据处理中断执行标志累计变量;
12.所述式2中,frames_cnt为连续丢帧次数;
13.同步中断过程数据处理中断模块中,进行丢帧补偿矫正相关的计算和其他控制数据的处理。
14.优选的,所述其中丢帧补偿矫正算法如下:
15.pos_old为上一同步周期的绝对位置指令;
16.pos为本同步周期的绝对位置指令;
17.pos_inc[0]是本同步周期的位置增量;
[0018]
pos_inc[1]是上一同步周期的位置增量;
[0019]
pos_inc[2]是上上一同步周期的位置增量;
[0020]
pos_old=pos
ꢀꢀ
(式3)
[0021]
pos=ect_pos
ꢀꢀ
(式4)
[0022]
pos_inc[0]=pos-pos_old
ꢀꢀ
(式5)
[0023]
判断t1和t是否相等(t1==t)?
ꢀꢀ
(式6)。
[0024]
优选的,所述数值若不相等,则说明出现了丢帧的情况,需要进行如下补偿:
[0025]
本同步周期的位置增量pos_inc[0]等于上一同步周期位置增量pos_inc[1];
[0026]
pos_inc[0]=pos_inc[1]
ꢀꢀ
(式7)
[0027]
本同步周期的绝对位置指令pos等于上一同步周期位置指令pos_old加上上一同步周期位置增量pos_inc[1],同时连续丢帧计数器也需要通过式9累计;
[0028]
pos=pos_old pos_inc[1]
ꢀꢀ
(式8)
[0029]
frames_cnt=frames_cnt 1
ꢀꢀ
(式9)
[0030]
跳出式6的判断条件;
[0031]
接着判断本同步周期的位置增量ect_inc1[0]的绝对值是否大于1.5倍上一同步周期的位置增量ect_inc1[1]的绝对值,并且判断上一同步周期的位置增量ect_inc1[1]的绝对值是否大于一定的阈值v_lim;
[0032]
(abs(ect_inc[0])》(abs(ect_inc[1])*1.5)?
ꢀꢀ
(式10)
[0033]
abs(ect_inc[1])》v_lim?
ꢀꢀ
(式11)
[0034]
式10式11中,abs()是求绝对值函数,*是乘以乘号,v_lim是增量阈值,增量阈值需要根据同步周期和电机编码器精度来设置。
[0035]
优选的,所述如果以上两个条件均满足,则说明过程数据接收预处理中断信号和过程数据处理中断信号均出现了一次或者多次丢失,需要进行式7的补偿矫正,同时连续丢帧计数器也需要通过式9累计:
[0036]
pos_inc[0]=pos_inc[1]
ꢀꢀ
(式7)
[0037]
frames_cnt=frames_cnt 1
ꢀꢀ
(式9)
[0038]
跳出式10和式11的判断条件
[0039]
pos_inc[2]=pos_inc[1]
ꢀꢀ
(式12)
[0040]
pos_inc[1]=pos_inc0.ꢀꢀ
(式13)
[0041]
servo_inc=pos_inc[2]
ꢀꢀ
(式14)
[0042]
式14中,servo_inc是本次同步中断周期内伺服需要执行的位置增量。
[0043]
判断frames_cnt是否大于5,
[0044]
frames_cnt》5?
ꢀꢀ
(式15)
[0045]
如果frames_cnt大于5,则说明已经连续丢帧5次,伺服驱动器报警。
[0046]
t=t 1
ꢀꢀ
(式16)。
[0047]
与现有技术相比,本发明的有益效果如下:
[0048]
1、本发明通过该算法能够有效避免因为丢帧引起的电机抖动、过流等问题,通过该算法能够弥补因为控制系统实时性不够的问题,并能够减少伺服电机在运行过程中的抖动情况。
附图说明
[0049]
图1为本发明的过程数据接收预处理中断模块程序流程图;
[0050]
图2为本发明的同步中断过程数据处理中断模块程序流程图。
具体实施方式
[0051]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]
在本发明的描述中,需要说明的是,术语“上”、“下”、“内”、“外”“前端”、“后端”、“两端”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0053]
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0054]
实施例一:
[0055]
请参阅图1和图2,本发明提供的一种实施例,一种用于总线型伺服驱动器的丢帧补偿位置算法,一种用于总线型伺服驱动器的丢帧补偿位置算法,包括过程数据接收预处理中断处理模块,同步中断过程数据处理中断模块;
[0056]
在没有丢帧的情况下,是过程数据接收预处理中断信号来一次,接着同步中断过程数据处理中断来一次;
[0057]
在过程数据接收预处理中断中,主要是接收来自于控制器的相关控制指令,包括但不仅限于控制字、目标位置、目标速度;还有就是运行中断标志变量赋值:
[0058]
t1=t
ꢀꢀ
(式1)
[0059]
frames_cnt=0
ꢀꢀ
(式2);
[0060]
所述式1中,t1为过程数据接收预处理中断执行标志变量,t为同步中断过程数据
处理中断执行标志累计变量;
[0061]
所述式2中,frames_cnt为连续丢帧次数;
[0062]
同步中断过程数据处理中断模块中,进行丢帧补偿矫正相关的计算和其他控制数据的处理;
[0063]
所述其中丢帧补偿矫正算法如下:
[0064]
pos_old为上一同步周期的绝对位置指令;
[0065]
pos为本同步周期的绝对位置指令;
[0066]
pos_inc[0]是本同步周期的位置增量;
[0067]
pos_inc[1]是上一同步周期的位置增量;
[0068]
pos_inc[2]是上上一同步周期的位置增量;
[0069]
pos_old=pos
ꢀꢀ
(式3)
[0070]
pos=ect_pos
ꢀꢀ
(式4)
[0071]
pos_inc[0]=pos-pos_old
ꢀꢀ
(式5)
[0072]
判断t1和t是否相等(t1==t)?
ꢀꢀ
(式6);
[0073]
所述数值若不相等,则说明出现了丢帧的情况,需要进行如下补偿:
[0074]
本同步周期的位置增量pos_inc[0]等于上一同步周期位置增量pos_inc[1];
[0075]
pos_inc[0]=pos_inc[1]
ꢀꢀ
(式7)
[0076]
本同步周期的绝对位置指令pos等于上一同步周期位置指令pos_old加上上一同步周期位置增量pos_inc[1],同时连续丢帧计数器也需要通过式9累计;
[0077]
pos=pos_old pos_inc[1]
ꢀꢀ
(式8)
[0078]
frames_cnt=frames_cnt 1
ꢀꢀ
(式9)
[0079]
跳出式6的判断条件;
[0080]
接着判断本同步周期的位置增量ect_inc1[0]的绝对值是否大于1.5倍上一同步周期的位置增量ect_inc1[1]的绝对值,并且判断上一同步周期的位置增量ect_inc1[1]的绝对值是否大于一定的阈值v_lim;
[0081]
(abs(ect_inc[0])》(abs(ect_inc[1])*1.5)?
ꢀꢀ
(式10)
[0082]
abs(ect_inc[1])》v_lim?
ꢀꢀ
(式11)
[0083]
式10式11中,abs()是求绝对值函数,*是乘以乘号,v_lim是增量阈值,增量阈值需要根据同步周期和电机编码器精度来设置;
[0084]
所述如果以上两个条件均满足,则说明过程数据接收预处理中断信号和过程数据处理中断信号均出现了一次或者多次丢失,需要进行式7的补偿矫正,同时连续丢帧计数器也需要通过式9累计:
[0085]
pos_inc[0]=pos_inc[1]
ꢀꢀ
(式7)
[0086]
frames_cnt=frames_cnt 1
ꢀꢀ
(式9)
[0087]
跳出式10和式11的判断条件
[0088]
pos_inc[2]=pos_inc[1]
ꢀꢀ
(式12)
[0089]
pos_inc[1]=pos_inc0.ꢀꢀ
(式13)
[0090]
servo_inc=pos_inc[2]
ꢀꢀ
(式14)
[0091]
式14中,servo_inc是本次同步中断周期内伺服需要执行的位置增量;
[0092]
判断frames_cnt是否大于5,
[0093]
frames_cnt》5?
ꢀꢀ
(式15)
[0094]
如果frames_cnt大于5,则说明已经连续丢帧5次,伺服驱动器报警;
[0095]
t=t 1
ꢀꢀ
(式16);
[0096]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献