一种永磁电机转子位置计算方法
【专利摘要】本发明提出了一种永磁电机转子位置计算方法,具体是利用增量式光电编码器的Z脉冲信号来使转子位置计算使用的A、B正交脉冲信号计数值误差限制在一圈以内,其特征是:增量式编码器安装到电机转轴后,电机转子初始位置与增量式光电编码器Z信号位置角度差无须另外测量,由控制器第一次捕获到Z信号时刻控制器位置计数寄存器的值确定;在利用Z脉冲信号消除转子位置角误差的过程中,对控制器的位置计数寄存器不产生影响;可将计算转子位置角度使用的A、B正交信号计数值误差限制在一圈以内。根据编码器一圈的脉冲数,则脉冲数与转子位置角度值存在对应关系,得到A、B正交脉冲信号计数值后,便可得到相应的电机转子角度值。
【专利说明】一种永磁电机转子位置计算方法
【技术领域】
[0001] 本发明涉及永磁电机转子位置计算领域,尤其是利用增量式光电编码器Z信号减 少转子位置计算误差的方法。
【背景技术】
[0002] 在永磁电机矢量控制系统中,转子位置角度值是矢量控制解耦的必要条件,转子 位置检测的准确于否,直接影响矢量控制的控制效果。目前,永磁同步电机转子位置检测所 用到的方法总体上分为两类:有位置传感器位置检测法和无位置传感器位置检测法。无位 置传感器检测法主要通过测量电机定子侧电流和端电压算出转子位置,相比较于有位置传 感器位置检测法,该方法成本低、可靠性较高。但是,无位置传感器检测法的检测精度受电 机参数影响较大,且相关算法较为复杂,增加了控制器的处理负担。有位置传感器检测法 通过在电机上安装传感器,控制器对传感器输出的信号进行解算,得到电机转子的位置信 息。永磁电机转子位置检测所用的传感器主要有旋转变压器和光电编码器(绝对式和增量 式)。增量式光电编码器的输出包含三路信号:A、B正交脉冲信号和Z信号。实际应用中, 由于外部接线、控制器性能以及编码器自身误差等影响,控制器对A、B正交脉冲信号的计 数会存在误差,如果不进行及时的修正,误差会随运行的圈数进行累加,最终造成控制系统 不能正常工作。当编码器安装固定后,编码器的Z信号位置和电机转子初始位置的角度差 便固定下来,可以利用Z信号对转子角度值进行修正。现有的修正方法中,往往需要事先测 得编码器Z信号位置与转子初始位置的角度差值,作为修正算法中Z信号初始时转子的角 度值,在位置修正时,往往需要对控制器位置计数寄存器的值进行修改,影响位置计数寄存 器在其他程序中的应用。同时,由于电机存在正、反转两种运行模式,如果采用事先测量编 码器Z信号位置与转子初始位置的角度差值的方法,则需要测量正、反转两种情况下Z信号 位置与转子初始位置的角度差。在光电编码器和电机转轴的安装位置发生变化后,还需重 新进行测量,不仅浪费时间,而且通用性不强,对不同的控制系统需要做相应角度差值的修 改。
[0003] 综上所述,目前急需一种通用性强、计算结果误差小、对控制器位置计数寄存器无 影响的基于增量式光电编码器的永磁电机转子位置计算方法。
【发明内容】
[0004] 技术问题:本发明的目的是提出一种通用性强、计算结果误差小、对控制器位置计 数寄存器无影响的基于增量式光电编码器的永磁电机转子位置计算方法。
[0005] 技术方案:本发明的一种永磁电机转子位置计算方法具体实现步骤如下:
[0006] 增量式光电编码器一圈的脉冲数为M,无其他方式对A、B正交脉冲信号进行倍频 计数,即光电编码器转一圈的脉冲计数值为M,对应的机械角度弧度值为2 π,控制器位置 计数寄存器的最大计数值为Ν,Ν大于等于Μ且小于等于位置计数寄存器允许的最大值,同 时Ν必须为Μ的整数倍,用X代表位置计数寄存器的值:
[0007] 1)上电后,使电机转子位于初始位置,同时,对控制器位置计数寄存器的值清零, 当电机转子开始转动,在到达第一个Z信号位置之前,即未发生Z信号捕获,Z信号捕获标志 位2_打88 = 0,转子位置角度Θ计算直接使用位置计数寄存器的值X,即θ =χ*2π/Μ;
[0008] 2)发生第一次Ζ信号捕获时,对Ζ信号捕获标志位2_打&8进行置位,即Z_flag = 1 ;
[0009] 3)更新Z信号捕获次数值,对Z信号捕获次数进行计数,每发生一次Z信号捕获, 捕获次数 Cap_count 加一,即 Cap_count++ ;
[0010] 其中,Z信号捕获次数用于对特定捕获次数位置计数寄存器值的提取,只需对第一 次z信号捕获时位置计数寄存器的值进行提取,为了防止Cap_c 〇unt的值溢出,在程序中 设置,只在Cap_count的值小于一定值W时,执行语句Cap_count++ ;W大于1且小于Cap_ count的最大值;
[0011] 4)设置一中间变量Cap,在每次发生Z信号捕获的时刻,将此时位置计数寄存器的 值X存入变量Cap,即Cap = X ;
[0012] 5)对Z信号捕获次数Cap_count进行判断,当Cap_count = = 1时,即发生第一次 Z信号捕获时,将此时位置计数寄存器的值X赋给变量q,所述Q代表永磁电机转子初始位 置与光电编码器Z信号位置角度差值所对应的脉冲信号计数值,即通过对第一次Z信号捕 获发生时位置计数寄存器值的提取,来获得永磁电机转子初始位置与光电编码器Z信号位 置角度差值,所述Q的数值为A、B正交脉冲信号的计数脉冲值,q对应一角度弧度值θ ρ Θ i = Q*2 π /M,将Θ i作为永磁电机转子初始位置与光电编码器Z信号位置角度差值,即 后面再捕获到Z信号的时候,转子的角度值赋值为θ1;
[0013] 6)由于电机一直处于旋转状态,位置计数寄存器的值亦在实时变化,用X代表位 置计数寄存器的值,发生Ζ信号捕获后,则在第η次捕获Ζ信号后与第η+1次捕获Ζ信号前, 其中η>0。
[0014] 所述电机转子角度Θ的计算方法为:
[0015] 当电机正转时,控制器位置计数寄存器的值X随着A、Β脉冲信号递增,位置计数 寄存器的值X达到最大值Ν后从最小值0重新开始计数,当位置计数寄存器的值X大于第 η次捕获Ζ信号时位置计数寄存器的值Cap时,电机转子角度θ = ((;+Χ-ε&ρ)*2π/Μ;当 位置计数寄存器的值X小于等于第η次捕获Ζ信号时位置计数寄存器的值Cap时,Θ = (Ci+x-Cap+N)*2 π/Μ ;
[0016] 当电机反转时,控制器位置计数寄存器的值X随着A、Β脉冲信号递减,位置计数 寄存器的值X达到最小值〇后从最大值Ν重新开始计数,当位置计数寄存器的值X大于第 η次捕获Ζ信号时位置计数寄存器的值Cap时,电机转子角度Θ = (Ci+x-N-CaphZJi/M; 当位置计数寄存器的值X小于等于第η次捕获Z信号时位置计数寄存器的值Cap时,Θ = (q+x-Cap) *2 π /M。
[0017] 控制器位置计数寄存器的最大计数值必须设置为光电编码器旋转一圈对应的Α、Β 脉冲计数值的整数倍。
[0018] 有益效果:本发明适用于安装有增量式光电编码器的永磁电机转子位置计算,能 够有效的减少转子位置计算误差。具体到本发明的技术方案,具有以下优点:
[0019] 1、通用性强。对增量式光电编码器与电机转轴的安装位置无要求,且两者的安装 位置变动后,对算法无影响。对不同的永磁电机(位置传感器为增量式光电编码器)控制 系统也适用。
[0020] 2、计算结果误差小。通过Z信号来使转子位置计算使用的A、B正交脉冲信号计数 值误差限制在一圈以内。
[0021] 3、对控制器位置寄存器无影响。在转子角度计算的过程中,不改变控制器位置计 数寄存器的值,不影响位置计数寄存器在其他算法中的使用。
【专利附图】
【附图说明】
[0022] 图1是电机正转时位置计数寄存器值大于Cap值的计数示意图;
[0023] 图2是电机正转时位置计数寄存器值小于Cap值的计数示意图;
[0024] 图3是本发明Z信号捕获中断服务子程序流程图;
[0025] 图4是本发明永磁电机转子位置计算流程图。
【具体实施方式】
[0026] 本发明的永磁电机转子位置计算方法,通过控制器对增量式光电编码器每圈出现 的Z信号进行捕获,实现永磁电机转子初始位置与光电编码器Z信号位置角度差值的获取 及将用于计算转子角度的A、B脉冲信号计数值误差限制在一圈以内。具体来说,上述方法 的实现包括以下步骤(增量式光电编码器一圈的脉冲数为M,无其他方式对A、B正交脉冲信 号进行倍频计数,即光电编码器转一圈的脉冲计数值为M,对应的机械角度弧度值为2 π。 控制器位置计数寄存器的最大计数值设为Ν,Ν大于等于Μ且小于等于位置计数寄存器允许 的最大值,同时Ν必须为Μ的整数倍。用X代表位置计数寄存器的值):
[0027] 1)上电后,使电机转子位于初始位置,同时,对控制器位置计数寄存器的值清零。 当电机转子开始转动,在到达第一个Ζ信号位置之前,即未发生Ζ信号捕获,Ζ信号捕获标志 位2_打88 = 0,转子位置角度Θ计算直接使用位置计数寄存器的值X,即θ =χ*2π/Μ;
[0028] 2)发生第一次Ζ信号捕获时,对Ζ信号捕获标志位2_打&8进行置位,即Z_flag = 1 ;
[0029] 3)更新Z信号捕获次数值,对Z信号捕获次数进行计数,每发生一次Z信号捕获, 捕获次数 Cap_count 加一,即 Cap_count++ ;
[0030] 其中,Z信号捕获次数用于对特定捕获次数位置计数寄存器值的提取,本发明算法 只需对第一次Z信号捕获时位置计数寄存器的值进行提取,因此,为了防止Cap_c 〇unt的值 溢出,可在程序中设置,只在Cap_count的值小于一定值W(W大于1且小于Cap_count的最 大值)时,执行语句Cap_count++ ;
[0031] 4)设置一中间变量Cap,在每次发生Z信号捕获的时刻,将此时位置计数寄存器的 值X存入变量Cap,即Cap = X ;
[0032] 5)对Z信号捕获次数Cap_count进行判断,当Cap_count = = 1时,即发生第一次 Z信号捕获时,将此时位置计数寄存器的值X赋给变量Q (所述Q代表永磁电机转子初始 位置与光电编码器Z信号位置角度差值所对应的脉冲信号计数值)。即通过对第一次Z信 号捕获发生时位置计数寄存器值的提取,来获得永磁电机转子初始位置与光电编码器Z信 号位置角度差值。所述q的数值为A、B正交脉冲信号的计数脉冲值,q对应一角度弧度值 Θ Θ i = C32 π東将Θ i作为永磁电机转子初始位置与光电编码器Z信号位置角度差值, 即后面再捕获到Z信号的时候,转子的角度值赋值为Θ i ;
[0033] 6)由于电机一直处于旋转状态,因此位置计数寄存器的值亦在实时变化,用X代 表位置计数寄存器的值。发生Z信号捕获后,则在第η (n>0)次捕获Z信号后与第n+1次捕 获Z信号前,电机转子角度Θ的计算方法为:
[0034] 当电机正转时,控制器位置计数寄存器的值X随着A、B脉冲信号递增,位置计数寄 存器的值X达到最大值N后从最小值0重新开始计数。当位置计数寄存器的值X大于第η 次捕获Ζ信号时位置计数寄存器的值Cap时,Θ = (Ci+x-Cap)*〗^!/^;当位置计数寄存器 的值X小于等于第η次捕获Z信号时位置计数寄存器的值Cap时,Θ = (Ci+x-Cap+N)*]!!/ Μ ;
[0035] 当电机反转时,控制器位置计数寄存器的值x随着Α、Β脉冲信号递减,位置计数寄 存器的值X达到最小值〇后从最大值Ν重新开始计数。当位置计数寄存器的值X大于第η 次捕获Ζ信号时位置计数寄存器的值Cap时,Θ = (Ci+x-N-CaphZJi/M;当位置计数寄存 器的值X小于等于第η次捕获Z信号时位置计数寄存器的值Cap时,Θ = (Ci+x-Cap)*]!!/ M〇
[0036] 下面结合具体实施例和附图来详细说明本发明。
[0037] 具体举例来说:增量式光电编码器一圈脉冲数为1024,控制器为DSP28355, eQEP 模块工作于正交计数模式,对输入的A、B正交脉冲信号进行4倍频计数,则光电编码器沿同 一方向旋转一圈,控制器的脉冲计数值为4096,4096对应机械角度弧度值为2 π。eQEP最 大位置计数寄存器的值设为4096,即EQ印IRegs· QP0SMAX = 4096。控制器eCAP模块工作 于捕捉模式,用于捕获Z信号。定义变量Z_flag用于表明是否发生Z信号捕获,Z_flag = =0时,表示未发生Z信号捕获,Z_f lag = = 1时,表示发生Z信号捕获。定义变量Cap_ count用于存放Z信号捕获次数,程序初始化时,Z_flag与Cap_count均赋值0。
[0038] 本发明方法包括两个功能模块,即Z信号捕获后处理功能模块与转子角度计算功 能模块。Z信号捕获后处理功能模块实现三个功能:Z信号捕获标志位的置位;转子初始位 置与Z信号位置角度差值C1的获取;Cap值得更新,即每次Z信号捕获时,将此时的位置 计数寄存器值赋给变量Cap。转子角度计算功能模块实现电机转子角度的计算。应用于 DSP28335,则通过2个中断服务子程序实现上述两个功能模块,即eCAP捕获中断和控制算 法所在的中断。本发明方法应用于DSP28355的实现步骤如下:
[0039] 1)上电后,使电机转子位于初始位置,同时,对控制器位置计数寄存器的值清零。 当电机转子开始转动,在到达第一个Z信号位置之前,即未发生Z信号捕获,Z信号捕获标志 位2_打 &8 = 0,转子位置角度Θ计算直接使用位置计数寄存器的值EQeplRegs.QPOSCNT, 即 Θ = EQ印IRes· QP0SCNT*2 π /4096 ;
[0040] 2)发生第一次Z信号捕获时,对Z信号捕获标志位Z_f lag进行置位,即Z_f lag = 1 ;
[0041] 3)更新Z信号捕获次数值,对Z信号捕获次数进行计数,每发生一次Z信号捕获, 捕获次数 Cap_count 加一,即 Cap_count++ ;
[0042] 其中,Z信号捕获次数用于对特定捕获次数位置计数寄存器值的提取,本发明算法 只需对第一次Z信号捕获时位置计数寄存器的值进行提取,因此,为了防止Cap_c 〇unt的值 溢出,可在程序中设置,只在Cap_count的值小于一定值W(W大于1且小于Cap_count的最 大值)时,执行语句Cap_count++ ;
[0043] 4)设置一中间变量Cap,在每次发生Z信号捕获的时刻,将此时位置计数寄存器的 值 EQ印IRegs· QP0SCNT 存入变量 Cap,即 Cap = EQ印IRegs· QP0SCNT ;
[0044] 5)对Z信号捕获次数Cap_count进行判断,当Cap_count = = 1时,即发生第一次 Z信号捕获时,将此时位置计数寄存器的值EQ印IRegs. QP0SCNT赋给变量C1 (所述C1代表 永磁电机转子初始位置与光电编码器Z信号位置角度差值所对应的脉冲信号计数值)。即 通过对第一次Z信号捕获发生时位置计数寄存器值的提取,来获得永磁电机转子初始位置 与光电编码器Z信号位置角度差值。所述q的数值为A、B正交脉冲信号的计数脉冲值,C1 对应一角度弧度值Θ i,Θ i = C#2 π /4096,将Θ i作为永磁电机转子初始位置与光电编码 器Z信号位置角度差值,即后面再捕获到Z信号的时候,转子的角度值赋值为Θ i ;
[0045] 6)由于电机一直处于旋转状态,因此位置计数寄存器的值亦在实时变化,用X代 表位置计数寄存器的值。发生Z信号捕获后,则在第η (n>0)次捕获Z信号后与第n+1次捕 获Z信号前,电机转子角度Θ的计算方法为:
[0046] 当电机正转时,控制器位置计数寄存器的值X随着A、B脉冲信号递增,位置计 数寄存器的值EQep IRegs. QP0SCNT达到最大值4096后从最小值0重新开始计数。当 Cap〈EQ印IRegs.QPOSCNT时,此时位置计数寄存器值未到达最大值4096,示意图如图1所 示,转子角度 Θ = (Q+EQ印IRes· QP0SCNT-Cap)*2 π /4096 ;当 Cap 彡 EQ印IRegs. QP0SCNT 时,位置计数寄存器值已经过最大值点,重新从0开始计数,示意图如图2所示,转子角度Θ =(Q+EQeplRes. QP0SCNT-Cap+4096)*2 π/4096 ;
[0047] 当电机反转时,控制器位置计数寄存器的值χ随着A、Β脉冲信号递减,位置 计数寄存器的值X达到最小值〇后从最大值4096重新开始计数。当Cap〈EQeplRegs. QP0SCNT时,此时位置计数寄存器的值已经过最小值点,重新从4096开始计数(与电机 正转的分析过程类似,此处不再附计数过程示意图赘述),转子角度Θ = (Q+EQ印IRes. QP0SCNT-4096-Cap)*2 π /4096 ;当Cap彡EQ印IRegs. QP0SCNT,此时位置计数寄存器值还未 到达最小值 0,转子角度 Θ = (Q+EQ印lRes.QP0SCNT-Cap)*2Ji/4096。
[0048] 本发明Z信号捕获中断(eCAP捕获中断)服务子程序流程图如图3所示。永磁电 机转子位置角度计算方法流程图如图4所示。其中,W为大于1且小于Cap_c 〇unt最大值 的一定值;χ代表位置计数寄存器的实时值。在本实施例中,χ代表EQeplRegs. QP0SCNT,Μ =4096,Ν = 4096。
[0049] 以上所述仅为本发明的一种实施方式,本发明的保护范围并不以上述实施方式为 限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权 利要求书中记载的保护范围内。
【权利要求】
1. 一种永磁电机转子位置计算方法,其特征是永磁电机转子位置计算方法具体实现步 骤如下:增量式光电编码器一圈的脉冲数为M,无其他方式对A、B正交脉冲信号进行倍频计 数,即光电编码器转一圈的脉冲计数值为M,对应的机械角度弧度值为2 π,控制器位置计 数寄存器的最大计数值为Ν,Ν大于等于Μ且小于等于位置计数寄存器允许的最大值,同时 Ν必须为Μ的整数倍,用X代表位置计数寄存器的值: 1) 上电后,使电机转子位于初始位置,同时,对控制器位置计数寄存器的值清零,当电 机转子开始转动,在到达第一个Ζ信号位置之前,即未发生Ζ信号捕获,Ζ信号捕获标志位 Z_flag = 0,转子位置角度Θ计算直接使用位置计数寄存器的值X,即θ =χ*2π/Μ; 2) 发生第一次Ζ信号捕获时,对Ζ信号捕获标志位Z_f lag进行置位,即Z_f lag = 1 ; 3) 更新Z信号捕获次数值,对Z信号捕获次数进行计数,每发生一次Z信号捕获,捕获 次数 Cap_count 加一,即 Cap_count++ ; 其中,Z信号捕获次数用于对特定捕获次数位置计数寄存器值的提取,只需对第一次Z 信号捕获时位置计数寄存器的值进行提取,为了防止Cap_c〇unt的值溢出,在程序中设置, 只在Cap_count的值小于一定值W时,执行语句Cap_count++ ;W大于1且小于Cap_count 的最大值; 4) 设置一中间变量Cap,在每次发生Z信号捕获的时刻,将此时位置计数寄存器的值X 存入变量Cap,即Cap = X ; 5) 对Z信号捕获次数Cap_count进行判断,当Cap_count = = 1时,即发生第一次Z信 号捕获时,将此时位置计数寄存器的值X赋给变量,所述q代表永磁电机转子初始位置 与光电编码器Z信号位置角度差值所对应的脉冲信号计数值,即通过对第一次Z信号捕获 发生时位置计数寄存器值的提取,来获得永磁电机转子初始位置与光电编码器Z信号位置 角度差值,所述Q的数值为A、B正交脉冲信号的计数脉冲值,C1对应一角度弧度值θ ρ Θ i =(^*2 π /M,将Θ i作为永磁电机转子初始位置与光电编码器Z信号位置角度差值,即后面 再捕获到Ζ信号的时候,转子的角度值赋值为Θ i ; 6) 由于电机一直处于旋转状态,位置计数寄存器的值亦在实时变化,用X代表位置计 数寄存器的值,发生Z信号捕获后,则在第η次捕获Z信号后与第n+1次捕获Z信号前,其 中 n>0。
2. 根据权利要求1所述的永磁电机转子位置计算方法,其特征是所述电机转子角度Θ 的计算方法为: 当电机正转时,控制器位置计数寄存器的值X随着A、B脉冲信号递增,位置计数寄存 器的值X达到最大值N后从最小值0重新开始计数,当位置计数寄存器的值X大于第η 次捕获Ζ信号时位置计数寄存器的值Cap时,电机转子角度Θ = (Ci+x-CaphZJi/M;当 位置计数寄存器的值X小于等于第η次捕获Z信号时位置计数寄存器的值Cap时,Θ = (Ci+x-Cap+N)*2 π/Μ ; 当电机反转时,控制器位置计数寄存器的值x随着A、Β脉冲信号递减,位置计数寄存 器的值X达到最小值0后从最大值Ν重新开始计数,当位置计数寄存器的值X大于第η次 捕获Ζ信号时位置计数寄存器的值Cap时,电机转子角度Θ = (Ci+x-N-CaphZJi/M;当 位置计数寄存器的值X小于等于第η次捕获Z信号时位置计数寄存器的值Cap时,Θ = (q+x-Cap) *2 π /M。
3.根据权利要求1所述的电机转子位置计算方法,所述的控制器位置计数寄存器的最 大计数值必须设置为光电编码器旋转一圈对应的A、B脉冲计数值的整数倍。
【文档编号】H02P21/14GK104218865SQ201410456698
【公开日】2014年12月17日 申请日期:2014年9月9日 优先权日:2014年9月9日
【发明者】程明, 王亚, 王伟 申请人:东南大学