一种预测式M/T的测速系统及方法与流程

文档序号:15461185发布日期:2018-09-18 18:11阅读:658来源:国知局

本发明涉及电机测速领域,尤其涉及一种预测式M/T的测速系统及方法。



背景技术:

目前,电机测速的主要方式有测速发电机、旋转变压器、直线光栅尺和编码器等,其中增量式光电编码器具有结构简单、测量方便准确、寿命长等优点,在现代控制领域得到广泛应用。

应用增量式光电编码器测速时,编码器与被测电机同轴,通过检测输出的脉冲序列来判断电机的旋转方向和速度。脉冲测速最典型的方法有测频率法(M法测速)、测周期法(T法测速)以及频率周期自适应法(MT法测速)。测频率法是在固定时间间隔内计算脉冲数,此方法具有实现简单及在任何速度下速度测量间隔(采样周期)都是固定的等优点,但是无论速度大小速度误差是一个常量,适用于高速时速度的测量,在低速时相对速度的准确度和测量分辨率会较差。测周期法是测量两个邻近脉冲的时间间隔,此方法具有低速时测速准确、可忽略测量时间延迟等优点,但这种方法需用除法来计算速度增加了处理器的负担、且由于速度调节器算法的执行和速度采样不同步导致其它的时间延迟等缺点,不适用于高速测量。目前工业领域广泛采用频率周期自适应法,该方法综合了M法和T法的优点,属于全速度范围测量方法,但在转速极低时,检测时间会增大,速度测量的时间延迟会增加,这时会限制速度调节带宽。



技术实现要素:

本发明旨在解决现有技术中在转速极低时,脉冲测速的检测时间会增大,测量的时间延迟会增加,这时会限制速度调节带宽的技术问题,提供一种预测式M/T的测速系统及方法。

本发明提供一种实施例的预测式M/T的测速方法,所述测速方法包括以下步骤:

获取当前编码器脉冲数QPOS,并将当前编码器脉冲数QPOS保存为第一定点数PosVal;

检测状态寄存器中溢出标志位COEF,并判断溢出标志位COEF是否等于第一预设值;

当溢出标志位COEF等于第一预设值时,将捕捉周期值设置为预设的最大值并复位溢出标志位COEF;

当溢出标志位COEF不等于第一预设值时,获取捕捉定时值和捕捉周期值;

根据捕捉定时值和捕捉周期值,得到第一比值;

获取编码器的旋转方向,并根据编码器的旋转方向,第一定点数PosVal和所述第一比值,得到第一编码器脉冲数;

根据所述第一编码器脉冲数、上个周期的编码器脉冲数和预设的编码器线数,得到第二比值;

根据所述第二比值、预设的采样周期和预设的最大转速,得到归一化后的当前速度值,并将第一定点数PosVal保存至上个周期的编码器脉冲数PrePos。

本发明还提供一种实施例的预测式M/T的测速系统,所述测速系统包括增量式编码器和FPGA;

增量式编码器和FPGA连接,用于输出A相脉冲信号和B相脉冲信号;

FPGA包括位置计数模块、捕捉定时器控制模块、时钟分频模块和速度计算模块,其中,

位置计数模块分别与增量式编码器、捕捉定时器控制模块和速度计算模块连接,用于根据记录增量式编码器的A相脉冲信号和B相脉冲信号得到4倍频编码器脉冲信号的脉冲数以得到当前编码器脉冲数,并将当前编码器脉冲数输出至捕捉定时器控制模块,还用于输出电机的旋转方向至所述速度计算模块;

时钟分频模块,用于对外部的时钟信号进行分频,得到分频后的时钟信号;

捕捉定时器控制模块分别与时钟分频模块和速度计算模块连接,用于根据分频后的时钟信号和4倍频编码器脉冲信号,得到捕捉定时值和捕捉周期值;

速度计算模块用于获取当前编码器脉冲数QPOS,并将当前编码器脉冲数QPOS保存为第一定点数PosVal;检测状态寄存器中溢出标志位COEF,并判断溢出标志位COEF是否等于第一预设值;当溢出标志位COEF等于第一预设值时,将捕捉周期值设置为预设的最大值并复位溢出标志位COEF;当溢出标志位COEF不等于第一预设值时,获取捕捉定时值和捕捉周期值;根据捕捉定时值和捕捉周期值,得到第一比值;获取编码器的旋转方向,并根据编码器的旋转方向,第一定点数PosVal和所述第一比值,得到第一编码器脉冲数;根据所述第一编码器脉冲数、上个周期的编码器脉冲数和预设的编码器线数,得到第二比值;根据所述第二比值、预设的采样周期和预设的最大转速,得到归一化后的当前速度值,并将第一定点数PosVal保存至上个周期的编码器脉冲数PrePos。

本发明的技术方案与现有技术相比,有益效果在于:可以将编码器的整数码值扩展为浮点数码值,在低速的情况下可以通过预测编码器位置的方式实现速度的测量,另外不用设置阈值进行分段测速,本发明的测速方法简便易实现,且在极低速情况下,具有更好的测速能力。

附图说明

图1为本发明预测式M/T的测速系统一种实施例的结构示意图。

图2为本发明基于FPGA实现的预测M/T测速系统的信号示意图。

图3为本发明预测式M/T的测速方法一种实施例的流程图。

图4为本发明预测式M/T的测速方法另一种实施例的流程图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明。

为了提高全速范围内电机转速的测量性能,特别是低速时的测速性能,发明了一种基于FPGA实现的预测式M/T测速系统,如图1所示,所述M/T测速系统包括增量式编码器1和FPGA2(Field-Programmable Gate Array,现场可编程门阵列)。所述增量式编码器1和FPGA连接,用于输出A相脉冲信号和B相脉冲信号。具体的,增量式编码器为1000线增量式光电编码器,1000线增量式光电编码器与电机输出轴同轴相连,所述电机为瑞士产maxon EC系列无刷直流伺服电机,增量式编码器1的A相脉冲信号和B相脉冲信号分别直接与FPGA2相连,FPGA2包括位置计数模块21、捕捉定时器控制模块22、时钟分频模块23和速度计算模块24。其中预设的采样周期为T=1ms,预设的最大转速为SpeedMax=100r/s。位置计数模块21分别与增量式编码器1、捕捉定时器控制模块22和速度计算模块24连接,用于根据记录增量式编码器1的A相脉冲信号和B相脉冲信号得到4倍频编码器脉冲信号QCLK的脉冲数以得到当前编码器脉冲数QPOS,并将当前编码器脉冲数QPOS和4倍频编码器脉冲信号输出至捕捉定时器控制模块22,还用于输出电机的旋转方向至所述速度计算模块24。具体的,根据电机的旋转方向,记录增量式编码器1的脉冲数,若电机正转,当前编码器脉冲数加1,若电机反转,当前编码器脉冲数减1。

在具体实施中,捕捉定时器控制模块22分别与时钟分频模块23和速度计算模块24连接,捕捉定时器控制模块22用于根据分频后的时钟信号和4倍频编码器脉冲信号,得到捕捉定时值和捕捉周期值。具体的,捕捉定时器控制模块22包含捕捉定时寄存器和捕捉周期寄存器,捕捉定时寄存器用于保存捕捉定时值QCTMR,捕捉周期寄存器用于保存捕捉周期值QCPRD。捕捉定时器控制模块22的时钟源由时钟分频模块23对外部时钟信号分频产生,用于测量相邻的4倍频编码器脉冲信号的时间间隔,如图1和图2所示的4倍频编码器脉冲信号QCLK,在QCLK上升沿产生时,捕捉定时寄存器的捕捉定时值QCTMR锁存到捕捉周期寄存器中,即将当前的捕捉定时值QCTMR保存为捕捉周期值QCPRD,接着捕捉定时寄存器复位,此时捕捉定时值QCTMR为初始值,具体的,捕捉定时寄存器是16位向上计数器(每个时钟周期加1),捕捉定时寄存器中捕捉定时值QCTMR从0x0000开始计数,当下一个QCLK上升沿产生时,此时捕捉定时寄存器中计数后的捕捉定时值QCTMR锁存到捕捉周期寄存器中,即捕捉周期值QCPRD为下一个QCLK上升沿出现时刻的捕捉定时值QCTMR。

在具体实施中,时钟分频模块23用于对外部的时钟信号进行分频,得到分频后的时钟信号。具体的,时钟分频模块23包括PLL(Phase Locked Loop,锁相环)和分频器,PLL分别连接外部时钟源和分频器,PLL用于使得外部的时钟信号和内部时钟信号同步,分频器用于对PLL得到的内部时钟信号进行分频,可以使将FPGA内部时钟信号的频率降低,否则捕捉定时寄存器将在非常短的时间内溢出。分频器进行分频后的时钟信号为捕捉定时寄存器的时钟源,即捕捉定时寄存器的时钟源是固定频率的时钟信号,捕捉定时寄存器根据分频器进行分频后的时钟信号,测量相邻QCLK脉冲信号的时间间隔。

在具体实施中,速度计算模块24用于获取当前编码器脉冲数QPOS,并将当前编码器脉冲数QPOS保存为第一定点数PosVal;检测状态寄存器中溢出标志位COEF,并判断溢出标志位COEF是否等于第一预设值;当溢出标志位COEF等于第一预设值时,将捕捉周期值设置为预设的最大值并复位溢出标志位COEF;当溢出标志位COEF不等于第一预设值时,获取捕捉定时值和捕捉周期值;根据捕捉定时值和捕捉周期值,得到第一比值;获取编码器的旋转方向,并根据编码器的旋转方向,第一定点数PosVal和所述第一比值,得到第一编码器脉冲数;根据所述第一编码器脉冲数、上个周期的编码器脉冲数和预设的编码器线数,得到第二比值;根据所述第二比值、预设的采样周期和预设的最大转速,得到归一化后的当前速度值,并将第一定点数PosVal保存至上个周期的编码器脉冲数PrePos。

具体的,由于捕捉定时器控制模块22是16位向上计数器,根据分频后的时钟信号进行计数,即每个时钟周期加1,每计数一次,捕捉定时寄存器中的捕捉定时值QCTMR从初始计数值0x0000,开始计数,捕捉定时值QCTMR计数到最大计数值0xFFFF,接着再计数一次从最大值0xFFFF变化初始计数值0x0000的情况下,溢出标志COEF置1。重新初始化捕捉定时寄存器中的捕捉定时值QCTMR后,溢出标志COEF置0。其中,第一预设值为1。

本发明的预测式M/T的测速系统,通过速度计算模块24用于获取编码器的旋转方向,并根据编码器的旋转方向,第一定点数PosVal和所述第一比值,得到第一编码器脉冲数;根据所述第一编码器脉冲数、上个周期的编码器脉冲数和预设的编码器线数,得到第二比值,可以扩展编码器的分辨率。由于在低速的情况下,在一个采样周期内可能会出现没有编码器脉冲信号的情况。通过捕捉定时周期值QCPRD和捕捉定时值QCTMR,可以预测出编码器的位置,即通过QCTMR/QCPRD得到在相邻两个4倍频编码器脉冲信号QCLK之间某点的位置。也就是说这些步骤,相当于把编码器的整数码值扩展到浮点数,提高了由编码器计算速度的分辨率。

在具体实施中,FPGA2还包括定时器25,定时器25分别时钟分频模块23与速度计算模块24连接,定时器25用于根据时钟分频模块23的外部时钟源进行计时,当计时时间到达预设的采样周期时,输出一次速度触发信号至速度计算模块24,使得速度计算模块24可以在每间隔预设的采样周期时,获取到一次速度触发信号。

在具体实施中,速度计算模块24还用于每间隔预设的采样周期时,获取到一次速度触发信号。

在具体实施中,速度计算模块24还用于判断捕捉周期值QCPRD是否不等于预设的最大值且捕捉定时值QCTMR是否小于捕捉周期值QCPRD;当捕捉周期值QCPRD不等于预设的最大值且捕捉定时值QCTMR小于捕捉周期值QCPRD时,根据捕捉定时值QCTMRD和捕捉周期值QCPRD的比值得到第一比值Temp1,即Temp1=QCTMR/QCPRD;当捕捉周期值QCPRD等于预设的最大值或捕捉定时值QCTMR不小于捕捉周期值QCPRD时,将第一比值Temp1设置为0。

在具体实施中,速度计算模块24还用于获取增量式编码器1的旋转方向;判断增量式编码器1的旋转方向是否为正向,如果是,第一编码器脉冲数等于第一定点数PosVal加上所述第一比值,如果否,第一编码器脉冲数等于第一定点数PosVal减去所述第一比值。也就是说,读取增量式编码器1的旋转方向,如果增量式编码器1的旋转方向为顺时针方向时,QDIR=1则第一编码器脉冲数等于第一定点数PosVal加上所述第一比值,即Temp2=PosVal+Temp1;如果增量式编码器1的旋转方向为逆时针方向时,QDIR=0,则第一编码器脉冲数等于第一定点数PosVal减去所述第一比值,即Temp2=PosVal-Temp1,其中Temp2为第一编码器脉冲数,PosVal为第一定点数,第一比值为Temp1。

在具体实施中,所述根据所述第一编码器脉冲数、上个周期的编码器脉冲数和预设的编码器线数,得到第二比值的具体公式如下:

Temp3=(Temp2-PrePos)/LineEncoder;

其中,Temp3为第二比值,Temp2为第一编码器脉冲数,PrePos上个周期的编码器脉冲数,LineEncoder为预设的编码器线数。

在具体实施中,速度计算模块24还用于判断Temp3是否小于-0.5,如果是,第三比值Temp4等于Temp3加上第一预设值,如果否,判断Temp3是否大于0.5;当Temp3大于0.5时,第三比值Temp4等于Temp3减去第一预设值;当Temp3不大于0.5时,Temp4等于temp3。根据所述第三比值Temp4、预设的采样周期和预设的最大转速,得到归一化后的当前速度值。

具体的,根据所述第三比值、预设的采样周期和预设的最大转速,得到归一化后的当前速度值的具体公式如下:

SpeedPU=Temp4/T/SpeedMax;

其中,SpeedPU为归一化后的当前速度值,Temp4为第三比值,T为预设的采样周期,SpeedMax为预设的最大转速。

本发明的预测式M/T的测速系统,可以将编码器的整数码值扩展为浮点数码值,在低速的情况下可以通过预测编码器位置的方式实现速度的测量,另外不用设置阈值进行分段测速,本发明的测速方法简便易实现,且在极低速情况下,具有更好的测速能力。

本发明提供一种实施例的预测式M/T的测速方法,如图3所示,所述测速方法包括以下步骤:

步骤S101,获取当前编码器脉冲数QPOS,并将当前编码器脉冲数QPOS保存为第一定点数PosVal;

步骤S102,检测状态寄存器中溢出标志位COEF;

步骤S103,判断溢出标志位COEF是否等于第一预设值,如果否,进入步骤S104,如果是,进入步骤S105;

步骤S104,获取捕捉定时值和捕捉周期值,进入步骤S106;

步骤S105,将捕捉周期值设置为预设的最大值并复位溢出标志位COEF,进入步骤S106;

步骤S106,根据捕捉定时值和捕捉周期值,得到第一比值;

步骤S107,获取编码器的旋转方向,并根据编码器的旋转方向,第一定点数PosVal和所述第一比值,得到第一编码器脉冲数;

步骤S108,根据所述第一编码器脉冲数、上个周期的编码器脉冲数和预设的编码器线数,得到第二比值;

步骤S109,根据所述第二比值、预设的采样周期和预设的最大转速,得到归一化后的当前速度值,并将第一定点数PosVal保存至上个周期的编码器脉冲数PrePos。

在步骤S104中,由于捕捉定时器控制模块22是16位向上计数器,根据分频后的时钟信号进行技术,即每个时钟周期加1,每计数一次,捕捉定时寄存器中的捕捉定时值QCTMR从初始计数值0x0000,开始计数,捕捉定时值QCTMR计数到最大计数值0xFFFF,接着再计数一次从最大值0xFFFF变化初始计数值0x0000的情况下,溢出标志COEF置1。重新初始化捕捉定时寄存器中的捕捉定时值QCTMR后,溢出标志COEF置0。

本发明的预测式M/T的测速方法,执行步骤S107-步骤S109,为了扩展编码器的分辨率。由于在低速的情况下,在一个采样周期内可能会出现没有编码器脉冲信号的情况。通过捕捉定时周期值QCPRD和捕捉定时值QCTMR,可以预测出编码器的位置,即通过QCTMR/QCPRD得到在相邻两个4倍频编码器脉冲信号QCLK之间某点的位置。也就是说这些步骤,相当于把编码器的整数码值扩展到浮点数,提高了由编码器计算速度的分辨率。

本发明的预测式M/T的测速方法,可以将编码器的整数码值扩展为浮点数码值,在低速的情况下可以通过预测编码器位置的方式实现速度的测量,另外不用设置阈值进行分段测速,本发明的测速方法简便易实现,且在极低速情况下,具有更好的测速能力。

在具体实施中,如图3所示,在步骤S101之前,还包括以下步骤:

步骤S110,每间隔预设的采样周期时,获取到一次速度触发信号。

在具体实施中,如图4所示,步骤S106,具体包括以下步骤,

步骤S401,判断捕捉周期值QCPRD是否不等于预设的最大值且捕捉定时值QCTMR是否小于捕捉周期值QCPRD,如果是,进入步骤S402,如果否,进入步骤S403;

步骤S402,当捕捉周期值QCPRD不等于预设的最大值且捕捉定时值QCTMR小于捕捉周期值QCPRD时,根据捕捉定时值QCTMRD和捕捉周期值QCPRD的比值得到第一比值Temp1,即Temp1=QCTMR/QCPRD;

步骤S403,当捕捉周期值QCPRD等于预设的最大值或捕捉定时值QCTMR不小于捕捉周期值QCPRD时,将第一比值Temp1设置为0。

在具体实施中,如图4所示,步骤S107,具体包括以下步骤:

步骤S404,获取增量式编码器1的旋转方向;

步骤S405,判断增量式编码器1的旋转方向是否为正向,如果是,进入步骤S406,如果否,进入步骤S407;

步骤S406,第一编码器脉冲数等于第一定点数PosVal加上所述第一比值;

步骤S407,第一编码器脉冲数等于第一定点数PosVal减去所述第一比值。

也就是说,读取增量式编码器1器的旋转方向,如果增量式编码器1的旋转方向为顺时针方向时,QDIR=1则第一编码器脉冲数等于第一定点数PosVal加上所述第一比值,即Temp2=PosVal+Temp1;如果增量式编码器1的旋转方向为逆时针方向时,QDIR=0,则第一编码器脉冲数等于第一定点数PosVal减去所述第一比值,即Temp2=PosVal-Temp1,其中Temp2为第一编码器脉冲数,PosVal为第一定点数,第一比值为Temp1。

在具体实施中,所述根据所述第一编码器脉冲数、上个周期的编码器脉冲数和预设的编码器线数,得到第二比值的具体公式如下:

Temp3=(Temp2-PrePos)/LineEncoder;

其中,Temp3为第二比值,Temp2为第一编码器脉冲数,PrePos上个周期的编码器脉冲数,LineEncoder为预设的编码器线数。

也就是说,步骤S408为Temp3=(Temp2-PrePos)/LineEncoder。

在具体实施中,步骤S109,具体包括以下步骤;

步骤S409,判断Temp3是否小于-0.5,如果是,进入步骤S410,如果否,进入步骤S411;

步骤S410,第三比值Temp4等于Temp3加上第一预设值,进入步骤S414;

步骤S411,判断Temp3是否大于0.5,如果是,进入步骤S412,如果否,进入步骤S413;

步骤S412,第三比值Temp4等于Temp3减去第一预设值,进入步骤S414;

步骤S413,第三比值Temp4等于Temp3,进入步骤S414;

步骤S414,根据所述第三比值、预设的采样周期和预设的最大转速,得到归一化后的当前速度值。

具体的,步骤S409和步骤S411之间的顺序可以调换。

具体的,步骤S414的具体公式如下:

SpeedPU=Temp4/T/SpeedMax;

其中,SpeedPU为归一化后的当前速度值,Temp4为第三比值,T为预设的采样周期,SpeedMax为预设的最大转速。也就是说,步骤S414为SpeedPU=Temp4/T/SpeedMax。

上述实施例和说明书中描述的只是说明本发明的原理和最佳实施例,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1