永磁同步电机角度检测方法和装置
技术领域
本发明涉及电机控制领域,特别涉及永磁同步电机角度检测。
背景技术
永磁同步电机一般采用正弦变频控制方法,而电机转子角度的准确性对电机控制的性能起到至关重要的作用。尤其在电机启动的时候,控制系统不知道转子的具体位置,就要想办法寻找到转子角度。如果转子角度检测不准确,会造成永磁同步电机控制效率降低,发热严重,噪声大等缺点。
现有的检测电机转子角度通常采用以下方法确定:控制系统输出一个特定的电流矢量(电流定位法),电机转子就会在该电流矢量的作用下转到磁阻最小的位置,从而确定电机转子的初始角度,然后根据增量编码器的累积计算转子角度。但是该方法因为初始位置不确定,所以当施加特定电流矢量的时候,转子有可能产生反转,造成电机运行摆动,降低电机的使用寿命,可能会对设备造成损坏甚至伤人。
发明内容
为了克服现有技术的不足,本发明的目的在于提供永磁同步电机角度检测方法和装置,其能解决现有检测电机转子初始角度的方法,由于转子初始位置不确定,所以当施加特定电流矢量的时候,转子有可能产生反转,造成电机运行摆动的问题。
本发明采用以下技术方案实现:
永磁同步电机角度检测方法,包括以下步骤:
获取霍尔传感器组的初始编码值;
根据所述初始编码值确定转子所在的角度区间;
根据所述角度区间驱动永磁同步电机转动;
检测所述霍尔传感器组的编码值是否有变化;
若检测到所述霍尔传感器组的编码值发生变化,则获取霍尔传感器组的当前编码值作为跳变编码值;
根据所述初始编码值和跳变编码值确定转子所在的起始角度。
优选的,所述永磁同步电机角度检测方法还包括以下步骤:
根据所述转子所在的起始角度、增量编码器的增量起始值、增量编码器的当前值计算转子的旋转角度;其中,增量起始值为所述霍尔传感器组的编码值发生变化时位于永磁同步电机上的增量编码器的值。
优选的,所述根据所述转子所在的起始角度、增量编码器的增量起始值、增量编码器的当前值计算转子的旋转角度,具体为根据以下计算公式计算得到:
β=(K-K0)/P*360°+α;
其中,β为转子的旋转角度,K为增量编码器的当前值,K0为增量编码器的增量起始值,P为增量编码器旋转一周的脉冲个数,α为转子所在的起始角度。
优选的,所述根据所述角度区间驱动永磁同步电机转动具体为:
根据转子的目标位置计算输出电压占空比,
根据所述角度区间输出电压驱动永磁同步电机转动。
优选的,所述霍尔传感器组的编码值为1-6,具体的,5、1、3、2、6、4六个编码值分别对应0°-60°、60°-120°、120°-180°、180°-240°、240°-300°、300°-360°六个区间。。
永磁同步电机角度检测装置,包括以下模块:
第一获取模块,获取霍尔传感器组的初始编码值;
区间确定模块,根据所述初始编码值确定转子所在的角度区间;
驱动模块,根据所述角度区间驱动永磁同步电机转动;
检测模块,检测所述霍尔传感器组的编码值是否有变化;
第二获取模块,若检测到所述霍尔传感器组的编码值变化,则获取霍尔传感器组的当前编码值作为跳变编码值;
起始角度确定模块,根据所述初始编码值和跳变编码值确定转子所在的起始角度。
优选的,所述永磁同步电机角度检测装置,还包括以下模块:
第三获取模块,在所述霍尔传感器组的编码值发生变化时,获取增量编码器的值作为增量起始值;
第四获取模块,获取增量编码器的当前值;
计算模块,根据所述转子所在的起始角度以及增量编码器的增量起始值、当前值计算转子的旋转角度。
优选的,所述驱动模块包括以下单元:
计算单元,根据转子的目标位置计算输出电压占空比;
驱动单元,根据所述角度区间输出电压驱动永磁同步电机转动。
永磁同步电机角度检测装置,包括:
处理器以及用于存储处理器可执行的指令的存储器;
所述处理器被配置为:
获取霍尔传感器组的初始编码值;
根据所述初始编码值确定转子所在的角度区间;
根据所述角度区间驱动永磁同步电机转动;
检测所述霍尔传感器组的编码值是否有变化;
若检测到所述霍尔传感器组的编码值发生变化,则获取霍尔传感器组的当前编码值作为跳变编码值;
根据所述初始编码值和跳变编码值确定转子所在的起始角度。
优选的,所述处理器还被配置为:
根据所述转子所在的起始角度以及增量编码器的增量起始值、当前值计算转子的旋转角度;其中,增量起始值为所述霍尔传感器组的编码值发生变化时位于永磁同步电机上的增量编码器的值。
相比现有技术,本发明的有益效果在于:通过检测霍尔传感器的初始编码值,根据初始编码值,确定转子所在的角度区间;再根据转子所在的角度区间,进行直流无刷逻辑控制。电机转子按照目标位置启动旋转,当霍尔传感器的编码信号出现跳变时,根据跳变后新的编码值,确定此时的转子角度,即起始角度。避免了现有检测电机转子初始角度的方法,由于转子初始位置不确定,所以当施加特定电流矢量的时候,转子有可能产生反转,造成电机机运行摆动的问题。
附图说明
图1是本发明实施例一提供的永磁同步电机角度检测方法的流程示意图。
图2是本发明实施例二提供的永磁同步电机角度检测方法的流程示意图。
图3为增量编码器为12位时转子角度检测方法流程示意图。
图4是本发明实施例三提供的永磁同步电机角度检测装置的结构示意图。
图5是本发明实施例四提供的永磁同步电机角度检测装置的结构示意图。
具体实施方式
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
实施例一:
永磁同步电机的控制系统包括霍尔传感器组和增量编码器。无刷直流电机常用的位置传感器是霍尔传感器,霍尔传感器个数通常与绕组相数相等,可以将转子磁钢作为霍尔元件的励磁磁场磁极。
为了产生正确的换向信号,霍尔传感器安装位置有一定要求,通常有120°安装和60°安装两种方式。两种位置传感器安装方式在本质上是相同的,在电机旋转过程中,都将360°电角度分割为6种状态,其中60°安装方式可以认为是将120°安装时的一个霍尔元件反转180°安装,各元件换相时刻均相同。在换相控制中,将三个霍尔传感器的输出信号状态的组合作为状态控制变量,在不同安装方式下各霍尔元件产生不一样的状态控制变量。在120°安装时,3个位置传感器信号组成的控制变量为001、010、011、100、101、110。在60°安装状况下,将出现000和111的状态变量,而缺失中间的两个状态,因而他们的换相控制表是有区别的。通过观察霍尔传感器是否出现111和000的状态就可以判定霍尔传感器是哪种安装方式。
霍尔传感器组中几个霍尔传感器的输出信号状态的组合作为霍尔传感器组的编码值。典型的,霍尔传感器组包括三个霍尔传感器,在120°安装下,3个霍尔传感器信号组成的控制变量为001、010、011、100、101、110,即霍尔传感器组的编码值为1-6。以下对步骤的分析基于编码值为1-6的情况,对于绕组相数不为3的情况,可以根据本发明的技术方案将编码值和相应的角度关系做相应的变化。
如图1所示的永磁同步电机角度检测方法,包括以下步骤:
S101,获取霍尔传感器组的初始编码值;
在永磁同步电机启动转动命令或纠正转子位置的命令时,获取霍尔传感器组的编码值作为用于确定转子所在的角度区间的初始编码值。
S102,根据所述初始编码值确定转子所在的角度区间;
霍尔传感器组的三个霍尔传感器在120°安装情况下,根据三个霍尔传感器的排列可以确定每60°电角度一个区间。例如,霍尔传感器组的5、1、3、2、6、4六个编码值分别对应0°-60°、60°-120°、120°-180°、180°-240°、240°-300°、300°-360°六个区间。
为便于简化控制,可以将5、1、3、2、6、4六个初始编码值与0°、60°、120°、180°、240°、300°六个转子驱动角度一一对应。如当初始编码值为3时,转子驱动角度为120°,而此时转子其实是在120°-180°这个角度区间内,虽然具体位置还未确定,但是确定了转子的角度区间就可以驱动永磁同步电机运转了,当转子转动到临界角度时,霍尔传感器组输出的编码值会有一个变化,可以利用这个变化进一步确定转子的初始角度。
S103,根据所述角度区间驱动永磁同步电机转动;
根据当前转子的角度区间对功率器件进行相序控制驱动永磁同步电机转动。具体的,永磁同步电机转动的方向及幅度可以根据目标位置确定。首先根据转子的目标位置计算输出电压占空比,然后输出电压根据角度区间驱动永磁同步电机转动。可以实现永磁同步电机向运动目标转动的同时实现转子角度检测。不需多出一个电流矢量带动转子的过程。
S104,检测所述霍尔传感器组的编码值是否有变化;
S105,若检测到所述霍尔传感器组的编码值发生变化,则获取霍尔传感器组的当前编码值作为跳变编码值;
当转子转动到临界角度时,霍尔传感器组输出的编码值会有一个变化,可以利用这个变化进一步确定转子的初始角度。
S106,根据所述初始编码值和跳变编码值确定转子所在的起始角度。
该起始角度即为一个临界角度,由于初始编码值到跳变编码值的时间和转子转动行程很小,尤其是在永磁同步电机通过减速机构如减速齿轮传动时,动作值进一步得到缩小。典型的,永磁同步电机用于舵机,即使转子转动角度相对较大,舵机输出的转动角度也是可以忽略的。而且该行程也是向目标位置运行的,因此这一个过程中转子的角度也没有必要检测。在编码值跳变时刻,得到的起始角度可以作为之后转子角度检测的起始位置。
基于步骤S102,起始角度可以由以下关系得到:
若初始编码值和跳变编码值一个为5,另一个为1,则起始角度α为30°;
若初始编码值和跳变编码值一个为1,另一个为3,则起始角度α为90°;
若初始编码值和跳变编码值一个为3,另一个为2,则起始角度α为150°;
若初始编码值和跳变编码值一个为2,另一个为6,则起始角度α为210°;
若初始编码值和跳变编码值一个为6,另一个为4,则起始角度α为270°;
若初始编码值和跳变编码值一个为4,另一个为5,则起始角度α为330°。
实施例一详细描述了利用霍尔传感器和增量编码器来实现转子角度检测的方法。首先检测霍尔传感器的初始编码值,根据初始编码值,确定转子所在的角度区间。再根据转子所在的角度区间,进行直流无刷逻辑控制。电机转子按照目标位置启动旋转,当霍尔传感器的编码信号出现跳变时,根据跳变后新的编码值,确定此时的转子角度,即起始角度。避免了现有检测电机转子初始角度的方法,由于转子初始位置不确定,所以当施加特定电流矢量的时候,转子有可能产生反转,造成电机运行摆动的问题。
实施例二:
如图2所示的永磁同步电机角度检测方法,包括以下步骤:
S201,获取霍尔传感器组的初始编码值;
S202,根据所述初始编码值确定转子所在的角度区间;
S203,根据所述角度区间驱动永磁同步电机转动;
S204,检测所述霍尔传感器组的编码值是否有变化;
S205,若检测到所述霍尔传感器组的编码值发生变化,则获取霍尔传感器组的当前编码值作为跳变编码值;
S206,根据所述初始编码值和跳变编码值确定转子所在的起始角度。
步骤S201-S206与实施例一中的S101-S106相同,不再赘述。
S207,根据所述转子所在的起始角度以及增量编码器的增量起始值、当前值计算转子的旋转角度;其中,增量起始值为所述霍尔传感器组的编码值发生变化时位于永磁同步电机上的增量编码器的值。
具体的,S207包括以下子步骤:
在所述霍尔传感器组的编码值发生变化时,获取增量编码器的值作为增量起始值;编码值跳变时刻,得到的起始角度可以作为之后转子角度检测的起始位置,之后增量编码器就可以对转子的位置进行精确的跟踪。根据增量编码器的增量可以得到转子转动的行程。要得到增量编码器的增量,就需要知道起始位置增量编码器的增量起始值。
获取增量编码器的当前值;转子转动时会给增量编码器脉冲信号,例如,正转时增量编码器的数值加一,反转时增量编码器的数值减一。
根据所述转子所在的起始角度以及增量编码器的增量起始值、当前值计算转子的旋转角度。
增量编码器的增量起始值和当前值作差即为增量编码器的增量,根据该增量可以得到转子的转动角度,转动角度与起始角度之和即为当前永磁同步电机转子的角度。
例如,永磁同步电机可以转动360°,增量编码器旋转一周的脉冲个数为P,转子所在的起始角度为α,增量编码器的增量起始值为K0,当前值为K,则转子的旋转角度β为:
β=(K-K0)/P*360°+α。
电机在起始位置之后驱动方式可以改为正弦矢量控制,此后的转子角度根据增量编码器的当前值实时计算得到。这种方式达到了快速准确定位转子角度的目的。
为了更好的理解本发明实施例中永磁同步电机检测方法,下面提供一具体应用场景,参考图3,图3为增量编码器为12位时转子角度检测方法流程示意图。其中,CD表示初始编码值,CD_N表示跳变编码值,θ为转子驱动角度。
假设增量编码器为12位增量编码器,增量编码器旋转一周的脉冲个数P=4096,计算在任意时刻电机转子的角度。启动电机运行后,首先配置微控制器的寄存器和直流无刷的控制模式,此时检测霍尔传感器的编码值CD=1,然后电机以直流无刷的控制方式计算电压占空比,并实现逻辑输出,电机平稳加速运转。系统循环检测霍尔传感器的编码值CD,循环计算电压占空比,并驱动逻辑输出。在某个时刻检测的霍尔传感器的编码值出现了变化,此时新的编码值CD_N=3,根据控制规则,判定此时的转子角度K0=90°。同时记录此时增量编码器的值作为增量起始值。
系统改变电机控制方式,即由直流无刷方式改为正弦矢量控制方式,以正弦矢量控制的方法计算电压控制变量,并实现功率器件的逻辑控制。至此完成了电机转子精确位置的检测过程。之后循环检测增量编码器的值K,就可以实时实现转子角度的检测。比如,某个时刻增量编码器的值为K=3050,则根据公式
β=(K-K0)/P*360°+α=(3050-400)/4090*360°+90°=323.25°
求得当前转子的角度是323.25°。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的步骤组合,但是本领域技术人员应该知悉,本发明并不受所描述的步骤顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。
相应于上述方法实施例,本发明还提供了永磁同步电机角度检测装置。
实施例三
如图4所示的永磁同步电机角度检测装置,包括以下模块:
第一获取模块110,获取霍尔传感器组的初始编码值;
区间确定模块120,根据所述初始编码值确定转子所在的角度区间;
驱动模块130,根据所述角度区间驱动永磁同步电机转动;
具体的,驱动模块包括以下单元:计算单元和驱动单元(图未示)。其中,计算单元根据转子的目标位置计算输出电压占空比,驱动单元输出电压根据所述角度区间驱动永磁同步电机转动。
检测模块140,检测所述霍尔传感器组的编码值是否有变化;
第二获取模块150,若检测到所述霍尔传感器组的编码值变化,则获取霍尔传感器组的当前编码值作为跳变编码值;
起始角度确定模块160,根据所述初始编码值和跳变编码值确定转子所在的起始角度。
在另一实施例中,永磁同步电机角度检测装置还包括:
第三获取模块171,在所述霍尔传感器组的编码值发生变化时,获取增量编码器的值作为增量起始值;
第四获取模块172,获取增量编码器的当前值;
计算模块180,根据所述转子所在的起始角度以及增量编码器的增量起始值、当前值计算转子的旋转角度。
本实施例中的装置与前述实施例中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构及实施过程,为了说明书的简洁,在此就不再赘述。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块或单元可以是或者也可以不是物理上分开的,作为模块或单元示意的部件可以是或者也可以不是物理模块,既可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等,如实施例四。
实施例四
如图5所示的永磁同步电机角度检测装置,包括:
处理器200以及用于存储处理器200可执行的指令的存储器300;
所述处理器200被配置为:
获取霍尔传感器组的初始编码值;
根据所述初始编码值确定转子所在的角度区间;
根据所述角度区间驱动永磁同步电机转动;
检测所述霍尔传感器组的编码值是否有变化;
若检测到所述霍尔传感器组的编码值发生变化,则获取霍尔传感器组的当前编码值作为跳变编码值;
根据所述初始编码值和跳变编码值确定转子所在的起始角度。
在另一实施例中,
所述处理器200还被配置为:
根据所述转子所在的起始角度以及增量编码器的增量起始值、当前值计算转子的旋转角度;其中,增量起始值为所述霍尔传感器组的编码值发生变化时位于永磁同步电机上的增量编码器的值。
本实施例中的装置与前述实施例中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构及实施过程,为了说明书的简洁,在此就不再赘述。
本发明实施例提供的装置,可以通过检测霍尔传感器的初始编码值,根据初始编码值,确定转子所在的角度区间;再根据转子所在的角度区间,进行直流无刷逻辑控制。电机转子按照目标位置启动旋转,当霍尔传感器的编码信号出现跳变时,根据跳变后新的编码值,确定此时的转子角度,即起始角度。避免了现有检测电机转子初始角度的方法,由于转子初始位置不确定,所以当施加特定电流矢量的时候,转子有可能产生反转,造成电机机运行摆动的问题。
对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。