一种磁编码器校准数据获取方法、芯片和电机与流程
未命名
10-21
阅读:67
评论:0
1.本技术涉及电机控制技术领域,具体涉及一种磁编码器校准数据获取方法、芯片和电机。
背景技术:
2.目前开源的两相步进电机磁编码器的校准方法都为让电机慢速开环旋转一周,并把对应的当前的磁编码器值一一映射到一个电机开环的机械角度上,最后把这个映射列表保存到flash空间中。这种做法的好处是,当使用的时候,只需要读取当前的磁编码器值,然后把当前磁编码器值作为校准映射列表的索引值,直接获取到映射列表对应的机械角度,完全没有算力要求。但是该方法带来的一个问题就是至少需要一个32k的flash空间(16384线的磁编码器,每个编码器值对应一个16位的flash空间,也就是16384*16/8/1024=32kbyte),这对于小容量低成本的主控ic是致命性的,只能外挂flash来解决。
技术实现要素:
3.本技术提供了一种磁编码器校准数据获取方法、芯片和电机,具体技术方案如下:一种磁编码器校准数据获取方法,所述校准方法包括:步骤s1,控制电机转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周,获得n+1个磁编码器值并保存,得到校准值表;步骤s2,基于n+1个磁编码器值,计算每两个相邻值之间的差值,得到n个差值;步骤s3,使用预设的校准参数分别除以n个差值,获得n个倍数并保存,得到差值倍数表,将差值倍数表和校准值表保存至存储器中,完成校准数据的获取;其中,n为正整数且n等于磁编码器的步数。
4.进一步地,所述步骤s1中,控制电机转动的方法包括:步骤s11,控制电机转动到磁编码器的零点位置后,往磁编码器的预设方向转动;步骤s12,当电机转动到电角度零点位置时,记录电角度零点位置的磁编码器值;步骤s13,控制电机持续往磁编码器的预设方向转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周。
5.进一步地,所述步骤s1中,每隔预设转动角度记录一次磁编码器值的方法包括:从电角度零点位置开始,每隔90度,连续读取三次电机在该角度上的磁编码器值并求平均值,然后将该平均值作为该角度上的磁编码器值并记录。
6.进一步地,所述步骤s1中,当电机转动一周后,电机回到电角度零点位置,此时共记录n个磁编码器值,然后将电机回到电角度零点位置时读取的磁编码器值与磁编码器的线数作和并记为第n+1个磁编码器值,保存上述n+1个磁编码器值,得到校准值表;其中,n为正整数且n等于磁编码器的步数。
7.进一步地,所述步骤s2中,得到n个差值的方法包括:步骤s21,基于n+1个磁编码器值,依次使用第n+1个磁编码器值减去第n个磁编码器值;步骤s22,判断差值是否小于0,当差值不小于0时,记录该差值,当差值小于0时,将该差值与磁编码器的线数作和后再记录,共得到n个差值;其中,n为正整数且n等于磁编码器的步数。
8.进一步地,所述步骤s3中,获得预设的校准参数的方法包括:步骤s31,计算磁编码器的线数与其步数的公约数;步骤s32,使用磁编码器的步数除以公约数,得到放大倍数;步骤s33,使用磁编码器的线数除以其步数,然后将结果与放大倍数相乘,获得预设的校准参数;其中,当公约数有多个时,选取经验值。
9.一种芯片,所述芯片上储存有计算机程序代码,所述计算机程序代码被执行时实现所述磁编码器校准数据获取方法。
10.一种电机,所述电机装配有所述芯片。
11.本技术所述的磁编码器校准数据获取方法,通过控制电机转动一周,获得n+1个磁编码器值,然后通过n+1个磁编码器值和预设的校准参数获得n个差值倍数,一共只需保存2n+1个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控ic。
附图说明
12.图1为本技术一种实施例所述磁编码器校准数据获取方法的流程示意图。
实施方式
13.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
14.应当理解,当在本技术中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。 还应当理解,在本技术中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
15.如在本技术中所使用的那样,术语“如果”可以依据上下文被解释为“当
…
时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0016]
另外,在本技术的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0017]
如图1所述,本技术实施例提供一种磁编码器校准数据获取方法,通过控制电机转动一周,获得n+1个磁编码器值,然后通过n+1个磁编码器值和预设的校准参数获得n个差值倍数,一共只需保存2n+1个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控ic。所述磁编码器校准数据获取方法包括:
步骤s1,控制电机转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周,获得n+1个磁编码器值并保存,得到校准值表;步骤s2,基于n+1个磁编码器值,计算每两个相邻值之间的差值,得到n个差值;步骤s3,使用预设的校准参数分别除以n个差值,获得n个倍数并保存,得到差值倍数表,将差值倍数表和校准值表保存至存储器中,完成校准数据的获取;其中,n为正整数且n等于磁编码器的步数。
[0018]
作为其中一种实施方式,所述步骤s1中,控制电机转动的方法包括:步骤s11,控制电机转动到磁编码器的零点位置后,往磁编码器的预设方向转动;步骤s12,当电机转动到电角度零点位置时,记录电角度零点位置的磁编码器值;步骤s13,控制电机持续往磁编码器的预设方向转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周。其中,磁编码器的预设方向指的是磁编码器的正方向。磁编码器是通过检测磁场的变化来确定运动轨迹的,当编码器正转时,磁极的顺序是顺时针的。本实施例所述的方法先控制电机转动到磁编码器的零点位置,再找电角度零点位置,将最大相位差控制在一个电周期内,即最大相位差为电角度
±
360度,从而减小数据误差。
[0019]
作为其中一种实施方式,所述步骤s1中,每隔预设转动角度记录一次磁编码器值的方法包括:从电角度零点位置开始,每隔90度,连续读取三次电机在该角度上的磁编码器值并求平均值,然后将该平均值作为该角度上的磁编码器值并记录。本实施例所述的方法在同一位置上读取三次磁编码器值并求平均值,可以降低误差。
[0020]
作为其中一种实施方式,所述步骤s1中,当电机转动一周后,电机回到电角度零点位置,此时共记录n个磁编码器值,然后将电机回到电角度零点位置时读取的磁编码器值与磁编码器的线数作和并记为第n+1个磁编码器值,保存上述n+1个磁编码器值,得到校准值表;其中,n为正整数且n等于磁编码器的步数。本实施例所述的方法便于后续计算差值。
[0021]
作为其中一种实施方式,所述步骤s2中,得到n个差值的方法包括:步骤s21,基于n+1个磁编码器值,依次使用第n+1个磁编码器值减去第n个磁编码器值;步骤s22,判断差值是否小于0,当差值不小于0时,记录该差值,当差值小于0时,将该差值与磁编码器的线数作和后再记录,共得到n个差值;其中,n为正整数且n等于磁编码器的步数。本实施例所述的方法将差值限制为正整数,避免出现后续出现负倍数。
[0022]
作为其中一种实施方式,所述步骤s3中,获得预设的校准参数的方法包括:步骤s31,计算磁编码器的线数与其步数的公约数;步骤s32,使用磁编码器的步数除以公约数,得到放大倍数;步骤s33,使用磁编码器的线数除以其步数,然后将结果与放大倍数相乘,获得预设的校准参数;其中,当公约数有多个时,选取经验值。本实施例所述的方法所获得的预设的校准参数是正整数,避免了浮点型参与后续运算,降低了对主控ic的算力要求。
[0023]
在一实施例中,所述电机为两相步进电机,所述磁编码器的线数为16384线,步数为200步,即n=200。在校准磁编码器的过程中,电机转动一周回到第一个点时刚好200个点,当回到第一个点的位置时,将当前的磁编码器值加上16384,作为第201个点。将上述201个点保存进表格中,得到校准值表。然后,计算201个点中每两个相邻值的差值,如果差值小于0,则加上16384,从而将差值限制在0-16384之间。
[0024]
假设磁编码器安装的位置是理想的,即磁编码器的中心完全与电机转子轴心对齐,那么200个点之间对应的磁编码器误差为16384/200=81.92,由于81.92为浮点型,计算
要求的算力过高,不适合实际应用,因此在实际计算时把所有数据都放大成正整数。
[0025]
基于上述实施例,将数据放大成正整数需要确定一个放大倍数。首先,计算磁编码器的线数16384与其步数200的公约数。显然存在多个公约数,其中最大公约数是8,根据经验值,此处选取公约数4,便于后续计算。然后,使用磁编码器的步数200除以公约数4,得到放大倍数50,从而获得预设的校准参数81.92*50=4096。最后,使用预设的校准参数4096除以上述差值,得到200个倍数。将上述200个倍数保存进行表格中,得到差值倍数表。需要说明的是,校准值表和差值倍数表一共401个数按16位的形式保存在主控ic的flash中。
[0026]
目前开源的两相步进电机磁编码器的校准方法都是把磁编码器值一一映射到一个电机开环的机械角度上,最后把这个映射列表保存到flash空间中。这种做法的好处是,当使用的时候,只需要读取当前磁编码器值,就可以直接获取到映射列表对应的机械角度。但是该方法带来的一个问题就是至少需要一个32k的flash空间(16384线的磁编码器,每个编码器值对应一个16位的flash空间,也就是16384*16/8/1024=32kbyte),这对于小容量低成本的主控ic是致命性的,只能外挂flash来解决。而在本技术中,校准磁编码器得到的校准值表和差值倍数表仅需占用800byte的flash空间,显然降低了对flash空间大小的要求,适合在低成本小容量的主控ic上使用。
[0027]
本技术实施例还提供一种芯片,所述芯片上储存有计算机程序代码,所述计算机程序代码被执行时实现所述磁编码器校准数据获取方法。所述芯片通过控制电机转动一周,获得n+1个磁编码器值,然后通过n+1个磁编码器值和预设的校准参数获得n个差值倍数,一共只需保存2n+1个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控ic。
[0028]
本技术实施例还提供一种电机,所述电机装配有所述芯片,使得所述电机只需划分少量的内存空间即可存储磁编码器校准数据,无需外挂flash,降低了成本。
[0029]
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,该计算机程序可存储于一非易失性计算机可读存储介质中,该计算机程序在执行时,可包括如上述个方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其他介质的引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器rom、可编程存储器prom、电可编程存储器dprom、电可擦除可编程存储器ddprom或闪存。易失性存储器可包括随机存取存储器ram或者外部高速缓冲存储器。
[0030]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0031]
以上各实施例仅表达了本技术的几种实施例,其描述较为具体和详细,但并不能因此而理解为申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。
技术特征:
1.一种磁编码器校准数据获取方法,其特征在于,所述校准方法包括:步骤s1,控制电机转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周,获得n+1个磁编码器值并保存,得到校准值表;步骤s2,基于n+1个磁编码器值,计算每两个相邻值之间的差值,得到n个差值;步骤s3,使用预设的校准参数分别除以n个差值,获得n个倍数并保存,得到差值倍数表,将差值倍数表和校准值表保存至存储器中,完成校准数据的获取;其中,n为正整数且n等于磁编码器的步数。2.根据权利要求1所述的一种磁编码器校准数据获取方法,其特征在于,所述步骤s1中,控制电机转动的方法包括:步骤s11,控制电机转动到磁编码器的零点位置后,往磁编码器的预设方向转动;步骤s12,当电机转动到电角度零点位置时,记录电角度零点位置的磁编码器值;步骤s13,控制电机持续往磁编码器的预设方向转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周。3.根据权利要求2所述的一种磁编码器校准数据获取方法,其特征在于,所述步骤s1中,每隔预设转动角度记录一次磁编码器值的方法包括:从电角度零点位置开始,每隔90度,连续读取三次电机在该角度上的磁编码器值并求平均值,然后将该平均值作为该角度上的磁编码器值并记录。4.根据权利要求3所述的一种磁编码器校准数据获取方法,其特征在于,所述步骤s1中,当电机转动一周后,电机回到电角度零点位置,此时共记录n个磁编码器值,然后将电机回到电角度零点位置时读取的磁编码器值与磁编码器的线数作和并记为第n+1个磁编码器值,保存上述n+1个磁编码器值,得到校准值表;其中,n为正整数且n等于磁编码器的步数。5.根据权利要求4所述的一种磁编码器校准数据获取方法,其特征在于,所述步骤s2中,得到n个差值的方法包括:步骤s21,基于n+1个磁编码器值,依次使用第n+1个磁编码器值减去第n个磁编码器值;步骤s22,判断差值是否小于0,当差值不小于0时,记录该差值,当差值小于0时,将该差值与磁编码器的线数作和后再记录,共得到n个差值;其中,n为正整数且n等于磁编码器的步数。6.根据权利要求5所述的一种磁编码器校准数据获取方法,其特征在于,所述步骤s3中,获得预设的校准参数的方法包括:步骤s31,计算磁编码器的线数与其步数的公约数;步骤s32,使用磁编码器的步数除以公约数,得到放大倍数;步骤s33,使用磁编码器的线数除以其步数,然后将结果与放大倍数相乘,获得预设的校准参数;其中,当公约数有多个时,选取经验值。7.一种芯片,所述芯片上储存有计算机程序代码,其特征在于,所述计算机程序代码被执行时实现权利要求1至6任一项所述的磁编码器校准数据获取方法。8.一种电机,其特征在于,所述电机装配有权利要求7所述的芯片。
技术总结
本申请提供了一种磁编码器校准数据获取方法、芯片和电机,所述磁编码器校准数据获取方法通过控制电机转动一周,获得N+1个磁编码器值,然后通过N+1个磁编码器值和预设的校准参数获得N个差值倍数,一共只需保存2N+1个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控IC。适用于低成本小容量的主控IC。适用于低成本小容量的主控IC。
技术研发人员:梁铧杰 赖钦伟
受保护的技术使用者:珠海一微半导体股份有限公司
技术研发日:2023.07.09
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种制备Ni掺杂W 下一篇:一种麻醉穿刺定位支架及其使用方法