本申请提供一种电机控制方法、芯片和电机,所述电机控制方法包括:步骤S1,控制电机转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周,获得N个磁编码器值并保存,得到校准值表;步骤S2,在电机工作的过程中,获取当前编码器值,查询校准值表得到当前编码器值所在的实际索引值区间;步骤S3,基于当前编码器值、当前编码器值所在的实际索引值区间和校准值表,计算可得磁编码器电角度值,根据磁编码器电角度值对电机进行控制;其中,N为正整数且N等于磁编码器的步数。所述方法一共只需保存N个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控IC。量的主控IC。量的主控IC。
【技术实现步骤摘要】
一种电机控制方法、芯片和电机
[0001]本申请涉及电机控制
,具体涉及一种电机控制方法、芯片和电机。
技术介绍
[0002]近年来随着人工智能的快速发展和普及,越来越多的智能设备开始出现,极大地便利人们的生活,智能设备的运动往往需要电机来实现。无刷直流电机不使用机械结构的换向电刷,而使用电子换向器,具有更好的扭矩转速特性,高效率,低噪声,长寿命,因此,在各种智能设备中被广泛应用。无刷直流电机的控制方法有多种,其中,电机矢量控制原理简单,控制效果优异,得到了广泛应用,矢量控制中需要利用位置传感器检测转子位置,在小型智能设备中,磁编码器体积小且测量角度精度高,因此被大量使用。由于众多非理想因素的影响,磁编码器的输出往往存在误差,因此需先对其进行校准,然而现有的校准方法一般采用基于模型的离线校准方法,效率不高,内存占用大。
技术实现思路
[0003]本申请提供了一种电机控制方法、芯片和电机,具体技术方案如下:
[0004]一种电机控制方法,所述电机控制方法包括:步骤S1,控制电机转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周,获得N个磁编码器值并保存,得到校准值表;步骤S2,在电机工作的过程中,获取当前编码器值,查询校准值表得到当前编码器值所在的实际索引值区间;步骤S3,基于当前编码器值、当前编码器值所在的实际索引值区间和校准值表,计算可得磁编码器电角度值,根据磁编码器电角度值对电机进行控制;其中,N为正整数且N等于磁编码器的步数。
[0005]进一步地,所述步骤S1中,控制电机转动的方法包括:步骤S11,控制电机转动到磁编码器的零点位置后,往磁编码器的预设方向转动;步骤S12,当电机转动到电角度零点位置时,记录电角度零点位置的磁编码器值;步骤S13,控制电机持续往磁编码器的预设方向转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周。
[0006]进一步地,所述步骤S1中,每隔预设转动角度记录一次磁编码器值的方法包括:从电角度零点位置开始,每隔90度,连续读取三次电机在该角度上的磁编码器值并求平均值,然后将该平均值作为该角度上的磁编码器值并记录。
[0007]进一步地,所述步骤S2中,查询校准值表得到当前编码器值所在的实际索引值区间的方法包括:步骤S21,基于当前编码器值,计算得到一索引值,记为参考索引值,同时将当前编码器值记为实际编码器值;步骤S22,在校准值表中查询参考索引值所对应的编码器值,记为参考编码器值,比较实际编码器值与参考编码器值的大小,根据比较结果进入步骤S23或步骤S24;步骤S23,如果参考编码器值大于实际编码器值,则往索引值减小的方向在校准值表中进行查询,当查询到第一个比实际编码器值小的值时,将该值所对应的索引值作为区间头,同时将比该值大且与该值相邻的值所对应的索引值作为区间尾,区间头和区间尾组成当前编码器值所在的实际索引值区间;步骤S24,如果参考编码器值小于实际编码
器值,则往索引值增大的方向在校准值表中进行查询,当查询到第一个比实际编码器值大的值时,将该值所对应的索引值作为区间尾,同时将比该值小且与该值相邻的值所对应的索引值作为区间头,区间头和区间尾组成当前编码器值所在的实际索引值区间。
[0008]进一步地,所述步骤S21中,计算参考索引值的方法包括:步骤S211,使用磁编码器的线数除以磁编码器的步数,得到一商;步骤S212,使用实际编码器值除以步骤S211中的商,然后四舍五入求整,得到参考索引值。
[0009]进一步地,所述步骤S23和所述步骤S24中,当索引值减小的次数或索引值增大的次数超过预设查询次数且无法得到当前编码器值所在的实际索引值区间时,停止查询并报错。
[0010]进一步地,所述预设查询次数为360度与预设转动角度的商,其中,预设转动角度为90度,预设查询次数为4次。
[0011]进一步地,所述步骤S3中,计算磁编码器电角度值的方法包括:基于当前编码器值、当前编码器值所在的实际索引值区间和校准值表,使用线性差值法计算磁编码器电角度值,其中,线性差值公式为,
[0012][0013]其中,electric_angle是磁编码器电角度值,enc_val是当前编码器值,enc_align是校准值表,find_index是当前编码器值所在的实际索引值区间的区间头,find_index+1是当前编码器值所在的实际索引值区间的区间尾,num1是预设查询次数。
[0014]一种芯片,所述芯片上储存有计算机程序代码,所述计算机程序代码被执行时实现所述电机控制方法。
[0015]一种电机,所述电机装配有所述芯片。
[0016]本申请所述的电机控制方法,首先控制电机转动一周,获得N个磁编码器值,得到校准值表,一共只需保存N个数据,无需占用过多的内存空间,无需外挂flash,降低了成本,适用于低成本小容量的主控IC。此外,通过校准值表可以快速查询到当前编码器值所在的实际索引值区间,速度快,对主控IC的算力要求不高。
附图说明
[0017]图1为本申请一种实施例所述电机控制方法的流程示意图。
具体实施方式
[0018]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0019]应当理解,当在本申请中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在本申请中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0020]如在本申请中所使用的那样,术语“如果”可以依据上下文被解释为“当
…
时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0021]另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
...
【技术保护点】
【技术特征摘要】
1.一种电机控制方法,其特征在于,所述电机控制方法包括:步骤S1,控制电机转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周,获得N个磁编码器值并保存,得到校准值表;步骤S2,在电机工作的过程中,获取当前编码器值,查询校准值表得到当前编码器值所在的实际索引值区间;步骤S3,基于当前编码器值、当前编码器值所在的实际索引值区间和校准值表,计算可得磁编码器电角度值,根据磁编码器电角度值对电机进行控制;其中,N为正整数且N等于磁编码器的步数。2.根据权利要求1所述的一种电机控制方法,其特征在于,所述步骤S1中,控制电机转动的方法包括:步骤S11,控制电机转动到磁编码器的零点位置后,往磁编码器的预设方向转动;步骤S12,当电机转动到电角度零点位置时,记录电角度零点位置的磁编码器值;步骤S13,控制电机持续往磁编码器的预设方向转动,然后每隔预设转动角度记录一次磁编码器值,直至电机转动一周。3.根据权利要求2所述的一种电机控制方法,其特征在于,所述步骤S1中,每隔预设转动角度记录一次磁编码器值的方法包括:从电角度零点位置开始,每隔90度,连续读取三次电机在该角度上的磁编码器值并求平均值,然后将该平均值作为该角度上的磁编码器值并记录。4.根据权利要求3所述的一种电机控制方法,其特征在于,所述步骤S2中,查询校准值表得到当前编码器值所在的实际索引值区间的方法包括:步骤S21,基于当前编码器值,计算得到一索引值,记为参考索引值,同时将当前编码器值记为实际编码器值;步骤S22,在校准值表中查询参考索引值所对应的编码器值,记为参考编码器值,比较实际编码器值与参考编码器值的大小,根据比较结果进入步骤S23或步骤S24;步骤S23,如果参考编码器值大于实际编码器值,则往索引值减小的方向在校准值表中进行查询,当查询到第一个比实际编码器值小的值时,将该值所对应的索引值作为区间头,同时将比该值大且与该值相邻的值所对应的索引值作为...
【专利技术属性】
技术研发人员:梁铧杰,赖钦伟,
申请(专利权)人:珠海一微半导体股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。