CN114070140B - 一种步进电机的速度检测方法、装置、设备及存储介质 - Google Patents

一种步进电机的速度检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114070140B
CN114070140B CN202111349572.7A CN202111349572A CN114070140B CN 114070140 B CN114070140 B CN 114070140B CN 202111349572 A CN202111349572 A CN 202111349572A CN 114070140 B CN114070140 B CN 114070140B
Authority
CN
China
Prior art keywords
loop control
control period
count value
speed
current
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.)
Active
Application number
CN202111349572.7A
Other languages
English (en)
Other versions
CN114070140A (zh
Inventor
王立强
韩安太
曾树杰
王群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Zobow Mechanical and Electrical Tech Co Ltd
Original Assignee
Zhejiang Zobow Mechanical and Electrical Tech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Zobow Mechanical and Electrical Tech Co Ltd filed Critical Zhejiang Zobow Mechanical and Electrical Tech Co Ltd
Priority to CN202111349572.7A priority Critical patent/CN114070140B/zh
Publication of CN114070140A publication Critical patent/CN114070140A/zh
Application granted granted Critical
Publication of CN114070140B publication Critical patent/CN114070140B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P8/00Arrangements for controlling dynamo-electric motors rotating step by step
    • H02P8/14Arrangements for controlling speed or speed and torque
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P21/00Arrangements or methods for the control of electric machines by vector control, e.g. by control of field orientation
    • H02P21/14Estimation or adaptation of machine parameters, e.g. flux, current or voltage
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P21/00Arrangements or methods for the control of electric machines by vector control, e.g. by control of field orientation
    • H02P21/14Estimation or adaptation of machine parameters, e.g. flux, current or voltage
    • H02P21/18Estimation of position or speed
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P21/00Arrangements or methods for the control of electric machines by vector control, e.g. by control of field orientation
    • H02P21/22Current control, e.g. using a current control loop
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P8/00Arrangements for controlling dynamo-electric motors rotating step by step
    • H02P8/12Control or stabilisation of current
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P8/00Arrangements for controlling dynamo-electric motors rotating step by step
    • H02P8/34Monitoring operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Control Of Stepping Motors (AREA)

Abstract

本发明公开了一种步进电机的速度检测方法、装置、设备及计算机可读存储介质,该方法包括:获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值;其中,速度环控制周期为电流环控制周期的m倍;判断当前速度环控制周期内的电流环控制次数是否为m;若是,则根据编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速;本发明基于固定速度检测周期,能够动态调整各电流环控制周期内编码器脉冲对应的中断的使能与禁止,准确获取速度检测周期内的脉冲数及首未脉冲间隔时间,实现步进电机速度的动态自适应检测,在全速度范围内保证速度检测的高精度及高动态响应。

Description

一种步进电机的速度检测方法、装置、设备及存储介质
技术领域
本发明涉及步进电机技术领域,特别涉及一种步进电机的速度检测方法、装置、设备及计算机可读存储介质。
背景技术
目前步进电机广泛应用于电子花样机的送布框X轴及Y轴的驱动,其在定位精度和成本之间做到比较好的平衡。花样机送布框的驱动要求其驱动能实现快速加减速,步进电机驱动一般采用位置-电流双闭环及位置-速度-电流三闭环的控制策略,前者具有实现简单,但后者具有更高的动态响应速度及稳态精度,三闭环控制策略使得步进电机的动态性能进一步提升。因此花样机送布框驱动的步进电机的速度检测精度及动态响应尤为关键。应用于花样机的步进电机出于成本考虑,其采用的位置反馈元件一般采用线数不高的光电式编码器。
现有技术中,基于编码器的步进电机的测速方法一般有测频法(M法)、测周法(T法)及测频测周结合法(M-T法)。测频法在高速时有较高精度及动态响应,但低速时由于固定时间间隔内的脉冲数较少导致低速速度检测精度较低;测周法是通过检测相邻两个或若干个脉冲(脉冲数值固定)之间的时间间隔来计算转速,其在中低速具有较高精度,但其测速范围有限;M-T法结合两者优点,在全速度范围内有较好的精读及动态响应,但该方法需要根据不同速度在测频与测周之间动态切换,临界转速的选取及临界转速附近的转速检测会出现波动。因此,如何能够实现全速度范围内步进电机的速度检测速度,保证速度检测的高精度和高动态响应,是现今急需解决的问题。
发明内容
本发明的目的是提供一种步进电机的速度检测方法、装置、设备及计算机可读存储介质,以实现全速度范围内步进电机的速度检测速度,保证速度检测的高精度和高动态响应。
为解决上述技术问题,本发明提供一种步进电机的速度检测方法,包括:
获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值;其中,所述速度环控制周期为所述电流环控制周期的m倍,m和n均为正整数,m大于或等于2;
判断当前速度环控制周期内的电流环控制次数是否为m;
若是,则根据所述编码器脉冲计数值和所述时间计数值,计算步进电机在当前速度环控制周期的转速。
可选的,所述获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值,包括:
获取所述速度环控制周期中各所述电流环控制周期内的第1个脉冲对应的编码器脉冲计数值和时间计数值。
可选的,所述获取所述速度环控制周期中各所述电流环控制周期内的第1个脉冲对应的编码器脉冲计数值和时间计数值,包括:
在每个所述电流环控制周期到达时,激活外部触发中断;
检测到所述电流环控制周期内第1个脉冲对应的外部触发中断后,记录所述所述电流环控制周期内第1个脉冲对应的编码器脉冲计数值和时间计数值,并禁止外部触发中断。
可选的,所述预设定时器具体为32位定时器,所述电流环控制周期为q*(1/fT32),fT32为所述预设定时器的时钟频率,q为大于或等于1000的正整数。
可选的,所述根据所述编码器脉冲计数值和所述时间计数值,计算步进电机在当前速度环控制周期的转速,包括:
根据所述编码器脉冲计数值和所述时间计数值,确定当前速度环控制周期对应的目标计数值;其中,当前速度环控制周期为第1个速度环控制周期之外的任一所述速度环控制周期,所述目标计数值包括上一速度环控制周期中最后的编码器脉冲计数值和时间计数值以及当前速度环控制周期中最新的编码器脉冲计数值和时间计数值;
根据所述目标计数值,计算步进电机在当前速度环控制周期的转速。
可选的,该方法还包括:
判断当前速度环控制周期内的电流环控制周期计数值是否达到最低转速阈值;其中,所述电流环控制周期计数值为连续未检测到第n个脉冲的电流控制环周期的计数值;
若达到最低转速阈值,则确定当前速度环控制周期的转速低于电机最低转速,并将所述电流环控制周期计数值清零;
对应的,所述获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值,包括:
获取当前速度环控制周期内任一电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和时间计数值之后,将所述电流环控制周期计数值清零。
可选的,所述所述预设定时器为32位定时器时,所述最低转速阈值为15fT32/Nline_encnmin,fT32为所述预设定时器的时钟频率,Nline_enc为电机编码器线数,nmin为所述电机最低转速。
本发明还提供了一种步进电机的速度检测装置,包括:
获取模块,用于获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值;其中,所述速度环控制周期为所述电流环控制周期的m倍,m和n均为正整数,m大于或等于2;
判断模块,用于判断当前速度环控制周期内的电流环控制次数是否为m;
计算模块,用于若所述电流环控制次数为m,则根据所述编码器脉冲计数值和所述时间计数值,计算步进电机在当前速度环控制周期的转速。
本发明还提供了一种步进电机的速度检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的步进电机的速度检测方法的步骤。
此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的步进电机的速度检测方法的步骤。
本发明所提供的一种步进电机的速度检测方法,包括:获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值;其中,速度环控制周期为电流环控制周期的m倍,m和n均为正整数,m大于或等于2;判断当前速度环控制周期内的电流环控制次数是否为m;若是,则根据编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速;
可见,本发明通过获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值,能够动态调整各电流环控制周期内编码器脉冲对应的中断的使能与禁止,准确获取速度检测周期内的脉冲数及首未脉冲间隔时间;通过在当前速度环控制周期内的电流环控制次数为m时,根据编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速,基于固定速度检测周期,利用编码器脉冲计数值和定时器的时间计数值实现步进电机速度的动态自适应检测,能够在全速度范围内实现速度检测的高精度及高动态响应。此外,本发明还提供了一种步进电机的速度检测装置、设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种步进电机的速度检测方法的流程图;
图2为本发明实施例所提供的另一种步进电机的速度检测方法的三种步进速度检测时序和脉冲的示意图;
图3为本发明实施例所提供的另一种步进电机的速度检测方法的外部触发中断处理流程的示意图;
图4为本发明实施例所提供的另一种步进电机的速度检测方法的速度更新流程的示意图;
图5为本发明实施例所提供的一种步进电机的速度检测装置的结构框图;
图6为本发明实施例所提供的一种步进电机的速度检测设备的结构示意图;
图7为本发明实施例所提供的一种步进电机的速度检测设备的具体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种步进电机的速度检测方法的流程图。该方法可以包括:
步骤101:获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值;其中,速度环控制周期为电流环控制周期的m倍,m和n均为正整数,m大于或等于2。
可以理解的是,本实施例中的编码器脉冲计数值可以为处理器(如单片机MCU或数字信号处理器DSP)的编码器接口接收的步进电机的编码器脉冲的计数值;本实施例中的预设定时器可以为预先设置的用于时间计数的定时器,如高精度的32位定时器。
具体的,本实施例中处理器通过获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值,可以确保在一个电流环控制周期内,只获取一次脉冲(即第n个脉冲)对应的编码器脉冲计数值和时间计数值,极大减小了处理器资源的占用。本实施例并不限定n的具体数值设置,如n可以为1,即本步骤中处理器可以获取速度环控制周期中各电流环控制周期内的第1个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值。
需要说明的是,对于本步骤中获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值的具体方式,可以由设计人员根据使用场景和用户需求自行设置,如本实施例中可以采用外部触发中断的方式,通过动态调整外部触发中断的使能与禁止,获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和时间计数值;即在电流环控制周期内的第n个脉冲之前控制外部触发中断的处于使能状态,以获取电流环控制周期内第n个脉冲对应的编码器脉冲计数值和时间计数值;在电流环控制周期内的第n个脉冲之后控制外部触发中断的处于禁止状态,以禁止获取之后的脉冲对应的编码器脉冲计数值和时间计数值。
对应的,如n为1时,处理器可以在每个电流环控制周期到达时,激活外部触发中断;检测到电流环控制周期内第1个脉冲对应的外部触发中断后,记录电流环控制周期内第1个脉冲对应的编码器脉冲计数值和时间计数值,并禁止外部触发中断。例如本实施例中利用处理器的两路正交的编码器接口,利用处理器的编码器计数功能及处理器的内部一路32位定时器,同时将编码器接口的2路I/O口配置为外部触发输入;由于三闭环步进电机的步进电机速度环控制周期通常为电流环控制周期的2倍及以上,即m可以为大于或等于2的正整数。以图2中m=2为例,图2中↑可以表示实际的电机编码器的脉冲,在每个竖虚线时刻(即电流环控制周期的整数倍处)激活外部触发中断;在下次竖虚线时刻到达前,若有脉冲触发中断,则在中断处理中禁止外部触发中断,即确保在一个电流环控制周期(即两根竖虚线之间)内,外部触发中断最多只触发一次;通过在速度环控制周期内的每个电流环控制周期到达时,激活一次外部中断触发功能,在外部触发中断处理程序中更新编码器脉冲计数值及32位定时器的计数值(即时间计数值),能够获取速度环控制周期中各电流环控制周期内的第1个脉冲对应的编码器脉冲计数值和时间计数值。
具体的,本实施例中电流环控制周期可以为Tcurr,预设定时器的时钟频率可以为fT,为保证精度,Tcurr可以为q*(1/fT),q可以为大于或等于1000的正整数,如预设定时器为32位定时器时,电流环控制周期(Tcurr)可以为q*(1/fT32),fT32为32位定时器的时钟频率。
步骤102:判断当前速度环控制周期内的电流环控制次数是否为m;若是,则进入步骤103。
其中,电流环控制次数可以为当前的速度环控制周期(即前速度环控制周期)内电流环控制的次数,即进入电流环控制周期的次数。本步骤中通过判断当前速度环控制周期内的电流环控制次数是否为m,确定是否达到下一速度环控制周期;若为m,则可以确定达到下一速度环控制周期,计算当前速度环控制周期对应的转速,并进行速度闭环控制。
步骤103:根据编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速。
可以理解的是,本步骤中处理器可以在当前速度环控制周期内的电流环控制次数为m,即到达下一速度环控制周期时,利用获取的编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速。
具体的,对于本步骤中处理器根据编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速的具体过程,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以根据编码器脉冲计数值和时间计数值,确定当前速度环控制周期对应的目标计数值;根据目标计数值,计算步进电机在当前速度环控制周期的转速;其中,当前速度环控制周期可以为第1个速度环控制周期之外的任一速度环控制周期,目标计数值可以包括计算当前速度环控制周期的转速所需要的两个时间点的编码器脉冲计数值和时间计数值,如上一速度环控制周期中最后的编码器脉冲计数值和时间计数值以及当前速度环控制周期中最新的编码器脉冲计数值和时间计数值;例如,目标计数值可以包括上一速度环控制周期中第m个电流环控制周期内的第1个脉冲对应的编码器脉冲计数值和时间计数值以及当前速度环控制周期中第m-1个电流环控制周期内的第1个脉冲对应的编码器脉冲计数值和时间计数值。
对应的,对于本步骤中处理器根据编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速的具体方式,可以由设计人员自行设置,处理器可以利用step_spd=Encoder_cap_prescaler*delta_enc_cnt/delta_cap_val,计算当前速度环控制周期的转速;其中,Encoder_cap_prescaler为转速计算系数,Encoder_cap_prescaler=15×fT/Nline_enc;fT为预设定时器的时钟频率,如32位定时器的时钟频率fT32;Nline_enc为电机编码器线数;step_spd为当前速度环控制周期的转速;delta_enc_cnt为时间计数值差值,如目标计数值中两个时间点的时间计数值的差值;delta_cap_val为脉冲差值,如目标计数值中两个时间点的编码器脉冲计数值的差值;delta_enc_cnt=enc_cnt–enc_cnt_old,enc_cnt为目标计数值中较大的时间点的时间计数值,如当前速度环控制周期中最新的编码器脉冲计数值;enc_cnt_old为目标计数值中较小的时间点的时间计数值,如上一速度环控制周期中最后的时间计数值;delta_cap_val=cap_val–cap_val_old,cap_val为目标计数值中较大的时间点的编码器脉冲计数值,如当前速度环控制周期中最新的编码器脉冲计数值;enc_cnt_old为目标计数值中较小的时间点的编码器脉冲计数值,如上一速度环控制周期中最后的编码器脉冲计数值。
进一步的,本实施例中还可以包括判断当前速度环控制周期内的电流环控制周期计数值是否达到最低转速阈值;若达到最低转速阈值,则确定当前速度环控制周期的转速低于电机最低转速,并将电流环控制周期计数值清零;其中,电流环控制周期计数值为连续未检测到第n个脉冲的电流控制环周期的计数值;对应的,步骤101中处理器可以在获取当前速度环控制周期内任一电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和时间计数值之后,将电流环控制周期计数值清零。也就是说,处理器可以通过电流环控制周期计数值与最低转速阈值的比较,确定步进电机的转速是否低于电机最低转速,从而在步进电机的转速低于电机最低转速进行相应的控制;例如,预设定时器为32位定时器时,最低转速阈值可以为15fT32/Nline_encnmin,fT32为预设定时器的时钟频率,Nline_enc为电机编码器线数,nmin为电机最低转速。
具体的,如图3和图4所示,预设定时器为32位定时器且n为1时,本实施例所提供的方法可以包括基本参数计算、初始化、外部触发中断处理和速度更新4部分。其中,基本参数计算部分可以包括电机最低转速对应定时器计数值(即最低转速阈值)SPD_CALC_CNT_MAX的计算,如采用如下方式计算:
相应的,初始化部分可以完成定时器初始化、外部触发中断初始化及计算状态初始化。定时器初始化可以包括:①将32位定时器TIM2配置为边沿对齐、向上计数模式;TIM2计数最大值为0xFFFFFFFF,同时将32位定时器(TIM2)的计数寄存器的值TIM2->CNT初始化为0xFFFFFFFF,即最大值;32位定时器(TIM2)。②将16位计数器TIM4配置为编码器模式,且上升沿下降沿均计数,启动定时器;其中,TIM4为16位计数器,其时钟源是两路正交的编码器脉冲,即TIM4工作在编码器模式,TIM4->CNT表示16位的编码器脉冲值寄存器,u16cnt为16位临时整型变量。
外部触发中断初始化可以包括配置并使能编码器两路脉冲输入接口I/O的外部触发中断,并配置为上升沿或下降沿均可触发;将该外部触发中断的优先级高于PWM中断(即每个电流环控制周期产生一次PWM中断),且确保该外部触发中断可打断PWM中断,以确保一有编码器脉冲触发外部触发中断,其中断处理程序可以“立即”完成编码器脉冲计数值及时刻(即时间计数值)标志。
计算状态初始化可以包括将spd_calc_init_flag及spd_calc_status均初始化为0;其中,spd_calc_init_flag为步进速度检测初始化标志,标志为0表示未检测到任何脉冲,为1表示已经有至少1个脉冲被检测到,说明初始参考时刻及脉冲值已经找到;spd_calc_status为步进速度允许更新标志,标志为0表示自上次外部触发中断后没有新的外部触发中断产生或尚未有任何外部触发脉冲被检测到,标志为1表示自上次外部触发中断后有新的外部触发中断产生。
对应的,如图3所示,外部触发中断处理部分可以包括如下步骤:
11)通过u32cnt=TIM2->CNT,记录当前时脉冲时刻(即时间计数值);通过u16cnt=TIM4->CNT,记录当前编码器脉冲计数值;并通过EN_CAP=0,禁止外部触发中断;其中,u32cnt为32位临时整型变量,EN_CAP为外部捕获中断的使能控制量;EN_CAP=1可以表示使能捕获中断,即激活外部触发中断;EN_CAP=0表示禁止捕获中断,即禁止外部触发中断。也就是说,本步骤中,在EN_CAP=1的情况下,检测到编码器脉冲后可以利用u32cnt和u16cnt记录编码器脉冲计数值和时间计数值,并通过EN_CAP=0,禁止外部触发中断。
12)判断spd_calc_init_flag是否等于1,若是,则跳转至步骤14;否则跳转至步骤13。
13)更新当前脉冲时刻寄存器(cap_val=u32cnt)及当前编码器脉冲数寄存器(enc_cnt=u16cnt),将spd_calc_init_flag标志置为1;然后跳转至步骤7。
14)判断spd_calc_status是否等于0,若是则调至步骤15,否则调至步骤16。
15)更新cap_val_old(cap_val_old=cap_val)及enc_cnt(enc_cnt_old=enc_cnt),并将spd_calc_status置1;也就是说,本步骤中可以在确定spd_calc_status为1时,更新cap_val_old和enc_cnt_old,如目标计数值中上一速度环控制周期中最后的编码器脉冲计数值和时间计数值。
16)更新当前脉冲时刻寄存器(cap_val=u32cnt)及当前编码器脉冲数寄存器(enc_cnt=u16cnt)。
17)将unit_timer_cnt清零;其中,unit_timer_cnt为电流环控制周期计数值,每次进入电流环控制周期中断该计数值递增1。
18)清除中断标志,退出中断。
对应的,如图4所示,速度更新部分可以包括如下步骤:
21)unit_timer_cnt加1(unit_timer_cnt++),即进入电流环控制周期;
22)判断spd_calc_status是否等于1,若等于则进入步骤23,否则跳转至步骤27。
23)判断SpeedLoopCnt是否等于SPEED_LOOP_PRESCALER,若等于则跳转至步骤24,否则跳转至步骤29;其中,SpeedLoopCnt为速度环相关计数值(即电流环控制次数),该变量每次电流环控制时加1,该变量自加及复位操作由速度环控制程序完成;SPEED_LOOP_PRESCALER为速度环控制周期相对电流环控制周期的倍数,即m。
24)判断EN_CAP是否等于1,即判断外部触发中断是否处于使能状态,若等于1,则禁止中断,即EN_CAP=0,并跳转至步骤25,否则直接跳转至步骤25;
25)计算脉冲差值(delta_cap_val=cap_val–cap_val_old)及时间计数值差值(delta_enc_cnt=enc_cnt–enc_cnt_old),若delta_cap_cnt不等于0,则根据下式计算转速,计算完成后跳转至步骤26,否则不更新转速值直接跳转至步骤26;
step_spd=Encoder_cap_prescaler*delta_enc_cnt/delta_cap_val。
26)spd_calc_status清零,即速度更新后,将速度可更新标志清零,跳转至步骤29。
27)判断unit_timer_cnt是否大于或等于SPD_CALC_CNT_MAX,若是则跳转至步骤28,否则跳转至步骤29。
28)unit_timer_cnt、step_spd及spd_calc_init_flag均清零,跳转至步骤29。
29)判断EN_CAP是否等于0,若等于0则重新使能外部触发中断,即EN_CAP=1,以便接受新的脉冲,然后退出;若不等于0则直接退出。
本实施例中,本发明实施例通过获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值,能够动态调整各电流环控制周期内编码器脉冲对应的中断的使能与禁止,准确获取速度检测周期内的脉冲数及首未脉冲间隔时间;通过在当前速度环控制周期内的电流环控制次数为m时,根据编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速,基于固定速度检测周期,利用编码器脉冲计数值和定时器的时间计数值实现步进电机速度的动态自适应检测,能够在全速度范围内实现速度检测的高精度及高动态响应。
相应于上面的方法实施例,本发明实施例还提供了一种步进电机的速度检测装置,下文描述的一种步进电机的速度检测装置与上文描述的一种步进电机的速度检测方法可相互对应参照。
请参考图5,图5为本发明实施例所提供的一种步进电机的速度检测装置的结构框图。该装置可以包括:
获取模块10,用于获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值;其中,速度环控制周期为电流环控制周期的m倍,m和n均为正整数,m大于或等于2;
判断模块20,用于判断当前速度环控制周期内的电流环控制次数是否为m;
计算模块30,用于若电流环控制次数为m,则根据编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速。
可选的,获取模块10可以具体用于获取速度环控制周期中各电流环控制周期内的第1个脉冲对应的编码器脉冲计数值和时间计数值。
可选的,获取模块10可以包括:
激活子模块,用于在每个电流环控制周期到达时,激活外部触发中断;
记录子模块,用于检测到电流环控制周期内第1个脉冲对应的外部触发中断后,记录电流环控制周期内第1个脉冲对应的编码器脉冲计数值和时间计数值,并禁止外部触发中断。
可选的,预设定时器具体为32位定时器,电流环控制周期为q*(1/fT32),fT32为预设定时器的时钟频率,q为大于或等于1000的正整数。
可选的,计算模块30可以包括:
确定子模块,用于根据编码器脉冲计数值和时间计数值,确定当前速度环控制周期对应的目标计数值;其中,当前速度环控制周期为第1个速度环控制周期之外的任一速度环控制周期,目标计数值包括上一速度环控制周期中最后的编码器脉冲计数值和时间计数值以及当前速度环控制周期中最新的编码器脉冲计数值和时间计数值;
计算子模块,用于根据目标计数值,计算步进电机在当前速度环控制周期的转速。
可选的,该装置还可以包括:
最低转速判断模块,用于判断当前速度环控制周期内的电流环控制周期计数值是否达到最低转速阈值;其中,电流环控制周期计数值为连续未检测到第n个脉冲的电流控制环周期的计数值;
最低转速确定模块,用于若达到最低转速阈值,则确定当前速度环控制周期的转速低于电机最低转速,并将电流环控制周期计数值清零;
对应的,获取模块10可以包括:
清零子模块,用于获取当前速度环控制周期内任一电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和时间计数值之后,将电流环控制周期计数值清零。
可选的,预设定时器为32位定时器时,最低转速阈值为15fT32/Nline_encnmin,fT32为预设定时器的时钟频率,Nline_enc为电机编码器线数,nmin为电机最低转速。
本实施例中,本发明实施例通过获取模块10获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值,能够动态调整各电流环控制周期内编码器脉冲对应的中断的使能与禁止,准确获取速度检测周期内的脉冲数及首未脉冲间隔时间;通过计算模块30在当前速度环控制周期内的电流环控制次数为m时,根据编码器脉冲计数值和时间计数值,计算步进电机在当前速度环控制周期的转速,基于固定速度检测周期,利用编码器脉冲计数值和定时器的时间计数值实现步进电机速度的动态自适应检测,能够在全速度范围内实现速度检测的高精度及高动态响应。
相应于上面的方法实施例,本发明实施例还提供了一种步进电机的速度检测设备,下文描述的一种步进电机的速度检测设备与上文描述的一种步进电机的速度检测方法可相互对应参照。
请参考图6,图6为本发明实施例所提供的一种步进电机的速度检测设备的结构示意图。该速度检测设备可以包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例所提供的步进电机的速度检测方法的步骤。
具体的,请参考图7,图7为本发明实施例所提供的一种步进电机的速度检测设备的具体结构示意图,该速度检测设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在速度检测设备310上执行存储介质330中的一系列指令操作。
速度检测设备310还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
其中,速度检测设备310可以具体为电子花样机。
上文所描述的步进电机的速度检测方法中的步骤可以由步进电机的速度检测设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,下文描述的一种计算机可读存储介质与上文描述的一种步进电机的速度检测方法可相互对应参照。
一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所提供的步进电机的速度检测方法的步骤。
该计算机可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的计算机可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种步进电机的速度检测方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (9)

1.一种步进电机的速度检测方法,其特征在于,包括:
获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值;其中,所述速度环控制周期为所述电流环控制周期的m倍,m和n均为正整数,m大于或等于2;
判断当前速度环控制周期内的电流环控制次数是否为m;
若是,则根据所述编码器脉冲计数值和所述时间计数值,计算步进电机在当前速度环控制周期的转速;
其中,所述步进电机的速度检测方法,还包括:
判断当前速度环控制周期内的电流环控制周期计数值是否达到最低转速阈值;其中,所述电流环控制周期计数值为连续未检测到第n个脉冲的电流控制环周期的计数值;
若达到最低转速阈值,则确定当前速度环控制周期的转速低于电机最低转速,并将所述电流环控制周期计数值清零;
对应的,所述获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值,包括:
获取当前速度环控制周期内任一电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和时间计数值之后,将所述电流环控制周期计数值清零。
2.根据权利要求1所述的步进电机的速度检测方法,其特征在于,所述获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值,包括:
获取所述速度环控制周期中各所述电流环控制周期内的第1个脉冲对应的编码器脉冲计数值和时间计数值。
3.根据权利要求2所述的步进电机的速度检测方法,其特征在于,所述获取所述速度环控制周期中各所述电流环控制周期内的第1个脉冲对应的编码器脉冲计数值和时间计数值,包括:
在每个所述电流环控制周期到达时,激活外部触发中断;
检测到所述电流环控制周期内第1个脉冲对应的外部触发中断后,记录所述电流环控制周期内第1个脉冲对应的编码器脉冲计数值和时间计数值,并禁止外部触发中断。
4.根据权利要求1所述的步进电机的速度检测方法,其特征在于,所述预设定时器具体为32位定时器,所述电流环控制周期为q*(1/fT32),fT32为所述预设定时器的时钟频率,q为大于或等于1000的正整数。
5.根据权利要求1至4任一项所述的步进电机的速度检测方法,其特征在于,所述根据所述编码器脉冲计数值和所述时间计数值,计算步进电机在当前速度环控制周期的转速,包括:
根据所述编码器脉冲计数值和所述时间计数值,确定当前速度环控制周期对应的目标计数值;其中,当前速度环控制周期为第1个速度环控制周期之外的任一所述速度环控制周期,所述目标计数值包括上一速度环控制周期中最后的编码器脉冲计数值和时间计数值以及当前速度环控制周期中最新的编码器脉冲计数值和时间计数值;
根据所述目标计数值,计算步进电机在当前速度环控制周期的转速。
6.根据权利要求5所述的步进电机的速度检测方法,其特征在于,所述预设定时器为32位定时器时,所述最低转速阈值为15fT32/Nline_encnmin,fT32为所述预设定时器的时钟频率,Nline_enc为电机编码器线数,nmin为所述电机最低转速。
7.一种步进电机的速度检测装置,其特征在于,包括:
获取模块,用于获取速度环控制周期中各电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和预设定时器的时间计数值;其中,所述速度环控制周期为所述电流环控制周期的m倍,m和n均为正整数,m大于或等于2;
判断模块,用于判断当前速度环控制周期内的电流环控制次数是否为m;
计算模块,用于若所述电流环控制次数为m,则根据所述编码器脉冲计数值和所述时间计数值,计算步进电机在当前速度环控制周期的转速;
其中,所述步进电机的速度检测装置,还包括:
最低转速判断模块,用于判断当前速度环控制周期内的电流环控制周期计数值是否达到最低转速阈值;其中,所述电流环控制周期计数值为连续未检测到第n个脉冲的电流控制环周期的计数值;
最低转速确定模块,用于若达到最低转速阈值,则确定当前速度环控制周期的转速低于电机最低转速,并将所述电流环控制周期计数值清零;
对应的,所述获取模块,包括:
清零子模块,用于获取当前速度环控制周期内任一电流环控制周期内的第n个脉冲对应的编码器脉冲计数值和时间计数值之后,将所述电流环控制周期计数值清零。
8.一种步进电机的速度检测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的步进电机的速度检测方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的步进电机的速度检测方法的步骤。
CN202111349572.7A 2021-11-15 2021-11-15 一种步进电机的速度检测方法、装置、设备及存储介质 Active CN114070140B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111349572.7A CN114070140B (zh) 2021-11-15 2021-11-15 一种步进电机的速度检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111349572.7A CN114070140B (zh) 2021-11-15 2021-11-15 一种步进电机的速度检测方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114070140A CN114070140A (zh) 2022-02-18
CN114070140B true CN114070140B (zh) 2024-05-14

Family

ID=80272036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111349572.7A Active CN114070140B (zh) 2021-11-15 2021-11-15 一种步进电机的速度检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114070140B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115173758B (zh) * 2022-06-29 2023-03-21 北京瑞祺皓迪技术股份有限公司 一种步进电机速度控制方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130640A (zh) * 2011-01-25 2011-07-20 南京雪曼机电科技有限公司 多轴同步伺服驱动系统及其同步控制方法
CN105319384A (zh) * 2015-08-28 2016-02-10 贵州航天林泉电机有限公司 一种基于fpga的自适应m/t测速系统
CN107508512A (zh) * 2017-08-25 2017-12-22 深圳市泰奇科智能技术有限公司 闭环步进电机的超低速预估器控制算法
CN108226560A (zh) * 2016-12-21 2018-06-29 杭州海康威视数字技术股份有限公司 一种获取电机低转速角速度的方法及装置
JP2019004660A (ja) * 2017-06-19 2019-01-10 パナソニックIpマネジメント株式会社 モータ制御装置
CN112468023A (zh) * 2020-12-09 2021-03-09 华中科技大学 一种用于多电机驱动系统的漏电流抑制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130640A (zh) * 2011-01-25 2011-07-20 南京雪曼机电科技有限公司 多轴同步伺服驱动系统及其同步控制方法
CN105319384A (zh) * 2015-08-28 2016-02-10 贵州航天林泉电机有限公司 一种基于fpga的自适应m/t测速系统
CN108226560A (zh) * 2016-12-21 2018-06-29 杭州海康威视数字技术股份有限公司 一种获取电机低转速角速度的方法及装置
JP2019004660A (ja) * 2017-06-19 2019-01-10 パナソニックIpマネジメント株式会社 モータ制御装置
CN107508512A (zh) * 2017-08-25 2017-12-22 深圳市泰奇科智能技术有限公司 闭环步进电机的超低速预估器控制算法
CN112468023A (zh) * 2020-12-09 2021-03-09 华中科技大学 一种用于多电机驱动系统的漏电流抑制方法

Also Published As

Publication number Publication date
CN114070140A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
CN114070140B (zh) 一种步进电机的速度检测方法、装置、设备及存储介质
US9647606B2 (en) Counter based circuit for measuring movement of an object
US9182746B2 (en) Stepping motor control circuit, movement and analog electronic timepiece
CN108549024B (zh) 一种预测式m/t的测速系统及方法
CN112889218A (zh) 步进马达的自动化速度渐变控制
US20170322518A1 (en) Electronic watch
US20110026375A1 (en) Stepping motor control circuit and analogue electronic timepiece
CN116400093A (zh) 一种正交光电编码器带加速度校正的变窗口测速方法
CN107508512B (zh) 闭环步进电机的超低速预估器控制算法
CN111829550B (zh) 运动距离确定方法、装置及设备
JP2022103046A (ja) 信号生成装置
JP2005339245A (ja) 割り込み発生回路
CN103516288A (zh) 一种自适应的编码器测速装置和方法
CN113009861A (zh) 电机运动控制方法、装置、计算机设备和存储介质
CN107152936B (zh) 一种计步方法、计步设备及手机
JP2004021306A (ja) 情報処理装置
CN115001325B (zh) 一种定时中断控制方法和多步进电机同步控制系统及方法
CN113030567B (zh) 一种基于单片机的测频方法及装置
JPH04104007A (ja) ロータリーエンコーダの回転ステップ監視方法
JPS6223548B2 (zh)
JP3694225B2 (ja) 計算機システムとそのシステム時刻調整方法
JP2016080547A (ja) 位置制御装置
JPH10201274A (ja) 回転機械の速度制御装置
JPS62232010A (ja) 検出位置の誤差補正回路
JPH01116608A (ja) 振動波モータを用いたレンズ系駆動装置

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
GR01 Patent grant
GR01 Patent grant