CN116892968A - 一种磁编码器校准数据获取方法、芯片和电机 - Google Patents
一种磁编码器校准数据获取方法、芯片和电机 Download PDFInfo
- Publication number
- CN116892968A CN116892968A CN202310832881.2A CN202310832881A CN116892968A CN 116892968 A CN116892968 A CN 116892968A CN 202310832881 A CN202310832881 A CN 202310832881A CN 116892968 A CN116892968 A CN 116892968A
- Authority
- CN
- China
- Prior art keywords
- magnetic encoder
- motor
- value
- values
- calibration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000003321 amplification Effects 0.000 claims description 8
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D18/00—Testing or calibrating apparatus or arrangements provided for in groups G01D1/00 - G01D15/00
- G01D18/001—Calibrating encoders
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
本申请提供了一种磁编码器校准数据获取方法、芯片和电机,所述磁编码器校准数据获取方法通过控制电机转动一周,获得N+1个磁编码器值,然后通过N+1个磁编码器值和预设的校准参数获得N个差值倍数,一共只需保存2N+1个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控IC。
Description
技术领域
本申请涉及电机控制技术领域,具体涉及一种磁编码器校准数据获取方法、芯片和电机。
背景技术
目前开源的两相步进电机磁编码器的校准方法都为让电机慢速开环旋转一周,并把对应的当前的磁编码器值一一映射到一个电机开环的机械角度上,最后把这个映射列表保存到flash空间中。这种做法的好处是,当使用的时候,只需要读取当前的磁编码器值,然后把当前磁编码器值作为校准映射列表的索引值,直接获取到映射列表对应的机械角度,完全没有算力要求。但是该方法带来的一个问题就是至少需要一个32K的flash空间(16384线的磁编码器,每个编码器值对应一个16位的flash空间,也就是16384*16/8/1024=32KByte),这对于小容量低成本的主控IC是致命性的,只能外挂flash来解决。
发明内容
本申请提供了一种磁编码器校准数据获取方法、芯片和电机,具体技术方案如下:
一种磁编码器校准数据获取方法,所述校准方法包括:步骤S1,控制电机转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周,获得N+1个磁编码器值并保存,得到校准值表;步骤S2,基于N+1个磁编码器值,计算每两个相邻值之间的差值,得到N个差值;步骤S3,使用预设的校准参数分别除以N个差值,获得N个倍数并保存,得到差值倍数表,将差值倍数表和校准值表保存至存储器中,完成校准数据的获取;其中,N为正整数且N等于磁编码器的步数。
进一步地,所述步骤S1中,控制电机转动的方法包括:步骤S11,控制电机转动到磁编码器的零点位置后,往磁编码器的预设方向转动;步骤S12,当电机转动到电角度零点位置时,记录电角度零点位置的磁编码器值;步骤S13,控制电机持续往磁编码器的预设方向转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周。
进一步地,所述步骤S1中,每隔预设转动角度记录一次磁编码器值的方法包括:从电角度零点位置开始,每隔90度,连续读取三次电机在该角度上的磁编码器值并求平均值,然后将该平均值作为该角度上的磁编码器值并记录。
进一步地,所述步骤S1中,当电机转动一周后,电机回到电角度零点位置,此时共记录N个磁编码器值,然后将电机回到电角度零点位置时读取的磁编码器值与磁编码器的线数作和并记为第N+1个磁编码器值,保存上述N+1个磁编码器值,得到校准值表;其中,N为正整数且N等于磁编码器的步数。
进一步地,所述步骤S2中,得到N个差值的方法包括:步骤S21,基于N+1个磁编码器值,依次使用第N+1个磁编码器值减去第N个磁编码器值;步骤S22,判断差值是否小于0,当差值不小于0时,记录该差值,当差值小于0时,将该差值与磁编码器的线数作和后再记录,共得到N个差值;其中,N为正整数且N等于磁编码器的步数。
进一步地,所述步骤S3中,获得预设的校准参数的方法包括:步骤S31,计算磁编码器的线数与其步数的公约数;步骤S32,使用磁编码器的步数除以公约数,得到放大倍数;步骤S33,使用磁编码器的线数除以其步数,然后将结果与放大倍数相乘,获得预设的校准参数;其中,当公约数有多个时,选取经验值。
一种芯片,所述芯片上储存有计算机程序代码,所述计算机程序代码被执行时实现所述磁编码器校准数据获取方法。
一种电机,所述电机装配有所述芯片。
本申请所述的磁编码器校准数据获取方法,通过控制电机转动一周,获得N+1个磁编码器值,然后通过N+1个磁编码器值和预设的校准参数获得N个差值倍数,一共只需保存2N+1个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控IC。
附图说明
图1为本申请一种实施例所述磁编码器校准数据获取方法的流程示意图。
实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。 还应当理解,在本申请中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
如图1所述,本申请实施例提供一种磁编码器校准数据获取方法,通过控制电机转动一周,获得N+1个磁编码器值,然后通过N+1个磁编码器值和预设的校准参数获得N个差值倍数,一共只需保存2N+1个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控IC。所述磁编码器校准数据获取方法包括:
步骤S1,控制电机转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周,获得N+1个磁编码器值并保存,得到校准值表;
步骤S2,基于N+1个磁编码器值,计算每两个相邻值之间的差值,得到N个差值;
步骤S3,使用预设的校准参数分别除以N个差值,获得N个倍数并保存,得到差值倍数表,将差值倍数表和校准值表保存至存储器中,完成校准数据的获取;其中,N为正整数且N等于磁编码器的步数。
作为其中一种实施方式,所述步骤S1中,控制电机转动的方法包括:步骤S11,控制电机转动到磁编码器的零点位置后,往磁编码器的预设方向转动;步骤S12,当电机转动到电角度零点位置时,记录电角度零点位置的磁编码器值;步骤S13,控制电机持续往磁编码器的预设方向转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周。其中,磁编码器的预设方向指的是磁编码器的正方向。磁编码器是通过检测磁场的变化来确定运动轨迹的,当编码器正转时,磁极的顺序是顺时针的。本实施例所述的方法先控制电机转动到磁编码器的零点位置,再找电角度零点位置,将最大相位差控制在一个电周期内,即最大相位差为电角度±360度,从而减小数据误差。
作为其中一种实施方式,所述步骤S1中,每隔预设转动角度记录一次磁编码器值的方法包括:从电角度零点位置开始,每隔90度,连续读取三次电机在该角度上的磁编码器值并求平均值,然后将该平均值作为该角度上的磁编码器值并记录。本实施例所述的方法在同一位置上读取三次磁编码器值并求平均值,可以降低误差。
作为其中一种实施方式,所述步骤S1中,当电机转动一周后,电机回到电角度零点位置,此时共记录N个磁编码器值,然后将电机回到电角度零点位置时读取的磁编码器值与磁编码器的线数作和并记为第N+1个磁编码器值,保存上述N+1个磁编码器值,得到校准值表;其中,N为正整数且N等于磁编码器的步数。本实施例所述的方法便于后续计算差值。
作为其中一种实施方式,所述步骤S2中,得到N个差值的方法包括:步骤S21,基于N+1个磁编码器值,依次使用第N+1个磁编码器值减去第N个磁编码器值;步骤S22,判断差值是否小于0,当差值不小于0时,记录该差值,当差值小于0时,将该差值与磁编码器的线数作和后再记录,共得到N个差值;其中,N为正整数且N等于磁编码器的步数。本实施例所述的方法将差值限制为正整数,避免出现后续出现负倍数。
作为其中一种实施方式,所述步骤S3中,获得预设的校准参数的方法包括:步骤S31,计算磁编码器的线数与其步数的公约数;步骤S32,使用磁编码器的步数除以公约数,得到放大倍数;步骤S33,使用磁编码器的线数除以其步数,然后将结果与放大倍数相乘,获得预设的校准参数;其中,当公约数有多个时,选取经验值。本实施例所述的方法所获得的预设的校准参数是正整数,避免了浮点型参与后续运算,降低了对主控IC的算力要求。
在一实施例中,所述电机为两相步进电机,所述磁编码器的线数为16384线,步数为200步,即N=200。在校准磁编码器的过程中,电机转动一周回到第一个点时刚好200个点,当回到第一个点的位置时,将当前的磁编码器值加上16384,作为第201个点。将上述201个点保存进表格中,得到校准值表。然后,计算201个点中每两个相邻值的差值,如果差值小于0,则加上16384,从而将差值限制在0-16384之间。
假设磁编码器安装的位置是理想的,即磁编码器的中心完全与电机转子轴心对齐,那么200个点之间对应的磁编码器误差为16384/200=81.92,由于81.92为浮点型,计算要求的算力过高,不适合实际应用,因此在实际计算时把所有数据都放大成正整数。
基于上述实施例,将数据放大成正整数需要确定一个放大倍数。首先,计算磁编码器的线数16384与其步数200的公约数。显然存在多个公约数,其中最大公约数是8,根据经验值,此处选取公约数4,便于后续计算。然后,使用磁编码器的步数200除以公约数4,得到放大倍数50,从而获得预设的校准参数81.92*50=4096。最后,使用预设的校准参数4096除以上述差值,得到200个倍数。将上述200个倍数保存进行表格中,得到差值倍数表。需要说明的是,校准值表和差值倍数表一共401个数按16位的形式保存在主控IC的flash中。
目前开源的两相步进电机磁编码器的校准方法都是把磁编码器值一一映射到一个电机开环的机械角度上,最后把这个映射列表保存到flash空间中。这种做法的好处是,当使用的时候,只需要读取当前磁编码器值,就可以直接获取到映射列表对应的机械角度。但是该方法带来的一个问题就是至少需要一个32K的flash空间(16384线的磁编码器,每个编码器值对应一个16位的flash空间,也就是16384*16/8/1024=32KByte),这对于小容量低成本的主控IC是致命性的,只能外挂flash来解决。而在本申请中,校准磁编码器得到的校准值表和差值倍数表仅需占用800Byte的flash空间,显然降低了对flash空间大小的要求,适合在低成本小容量的主控IC上使用。
本申请实施例还提供一种芯片,所述芯片上储存有计算机程序代码,所述计算机程序代码被执行时实现所述磁编码器校准数据获取方法。所述芯片通过控制电机转动一周,获得N+1个磁编码器值,然后通过N+1个磁编码器值和预设的校准参数获得N个差值倍数,一共只需保存2N+1个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控IC。
本申请实施例还提供一种电机,所述电机装配有所述芯片,使得所述电机只需划分少量的内存空间即可存储磁编码器校准数据,无需外挂flash,降低了成本。
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,该计算机程序可存储于一非易失性计算机可读存储介质中,该计算机程序在执行时,可包括如上述个方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其他介质的引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器ROM、可编程存储器PROM、电可编程存储器DPROM、电可擦除可编程存储器DDPROM或闪存。易失性存储器可包括随机存取存储器RAM或者外部高速缓冲存储器。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上各实施例仅表达了本申请的几种实施例,其描述较为具体和详细,但并不能因此而理解为申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。
Claims (8)
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所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310832881.2A CN116892968A (zh) | 2023-07-09 | 2023-07-09 | 一种磁编码器校准数据获取方法、芯片和电机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310832881.2A CN116892968A (zh) | 2023-07-09 | 2023-07-09 | 一种磁编码器校准数据获取方法、芯片和电机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116892968A true CN116892968A (zh) | 2023-10-17 |
Family
ID=88311571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310832881.2A Pending CN116892968A (zh) | 2023-07-09 | 2023-07-09 | 一种磁编码器校准数据获取方法、芯片和电机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116892968A (zh) |
-
2023
- 2023-07-09 CN CN202310832881.2A patent/CN116892968A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109655083B (zh) | 磁编码器及其校准方法和校准装置、电机以及无人飞行器 | |
CN109870177B (zh) | 磁编码器及其校准方法和校准装置、电机以及无人飞行器 | |
US8108592B2 (en) | Memory system and wear leveling method thereof | |
EP2713519A1 (en) | Electronic counter in non-volatile limited endurance memory | |
CN116961503A (zh) | 一种电机控制方法、芯片和电机 | |
CN109213774B (zh) | 数据的存储方法及装置、存储介质、终端 | |
CN115139829B (zh) | 一种充电加热控制方法、装置、电子设备及存储介质 | |
CN116892968A (zh) | 一种磁编码器校准数据获取方法、芯片和电机 | |
CN113654225A (zh) | 压缩机的控制方法、系统及空调器 | |
CN116381522A (zh) | 电池放电时的soc显示方法、装置、设备及存储介质 | |
CN103208967A (zh) | 控制风扇电机的设备和方法 | |
CN114172414A (zh) | 伺服电机初始电角度确定方法、装置及可读存储介质 | |
CN111082725A (zh) | 磁旋转编码器角度补偿方法、补偿系统和电机 | |
JP2004516603A (ja) | Womメモリーを備えたデータ処理装置 | |
CN114643593B (zh) | 关节模组、其多圈值获取方法和装置、机器人及介质 | |
CN116069682A (zh) | 表项存储方法、装置、交换芯片、网络设备和存储介质 | |
KR101540795B1 (ko) | 임계 전압 분포에 따라 플래시 메모리에 저장된 데이터를 판독하는 방법과, 이를 위한 메모리 컨트롤러 및 시스템 | |
CN112685981B (zh) | 一种电力系统静态等值方法、装置、终端设备及存储介质 | |
CN114487813A (zh) | 电机零位检测方法、装置、电机控制器及存储介质 | |
CN114253374A (zh) | 一种基于预期温度的服务器控温方法、装置及存储介质 | |
CN116979851A (zh) | 一种磁编码器电角度值计算方法、芯片和电机 | |
CN113687248B (zh) | 电池容量确定方法、装置、电子设备及存储介质 | |
CN108631655B (zh) | 电机控制装置的智能功率模块 | |
CN116564380B (zh) | Dram中门控脉冲信号的校正方法和装置 | |
CN116388617A (zh) | 一种基于霍尔信号的电机寻相方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |