一种基于脉冲变频控制的步进电机控制系统及方法转让专利
申请号 : CN202110533870.5
文献号 : CN113258842B
文献日 : 2022-05-06
发明人 : 胡建鹏 , 夏存宝 , 王良坤
申请人 : 杭州中科微电子有限公司
摘要 :
权利要求 :
1.一种基于脉冲变频控制的步进电机控制系统,包括MCU控制器、步进控制器、功率放大器和步进电机,MCU控制器发送脉冲和方向控制信息至步进控制器,步进控制器与功率放大器输入端连接,功率放大器输出端连接步进电机,其特征在于:所述步进控制器包括模式控制模块、脉冲变频模块、sin计数器和sin译码器,模式控制模块:输入细分模式,根据输入细分模式和步进控制器最高细分计算出倍频并发送至脉冲变频模块;
脉冲变频模块:根据倍频将输入脉冲进行变频处理,输出新脉冲至sin计数器;
所述脉冲变频模块包括宽度计数器、移位器、micstep计数器,宽度计数器连接移位器,移位器输入连接模式控制模块,移位器输出连接micstep计数器,micstep计数器输出连接sin计数器,
宽度计数器,计算输入脉冲的脉宽值,发送给移位器;
移位器,接收倍频信息,根据倍频计算出变频后的新脉宽值;
micstep计数器,以新脉宽值为计数周期进行计数,每计数到新脉宽值产生一个脉冲,清零重新计数,重复计数产生变频后的新脉冲;
所述micstep计数器包括整数计数器和小数计数器,移位器输出分别连接整数计数器和小数计数器,小数计数器连接整数计数器,整数计数器输出连接sin计数器,整数计数器,获取新脉宽值的整数值,以整数值为计数周期进行计数,每计数到整数值产生一个新脉冲,清零重新计数,重复计数产生变频后的新脉冲;
小数计数器,获取新脉宽值的小数值,在整数计数器每产生一个新脉冲则累加一次小数值,当累计值达到整数时,则产生进位发送给整数计数器,保留累计值小数部分,整数计数器接收到进位后计数值减1;
sin计数器:获取方向控制信息,根据变频后的新脉冲累计最小步进值;
sin译码器:将累计的步值设定为对应电流,通过功率放大器处理后传输给步进电机,由步进电机转换为对应步距角。
2.根据权利要求1所述的一种基于脉冲变频控制的步进电机控制系统,其特征是所述脉冲变频模块还包括步进计数器、差值计算器,步进计数器输入端连接MCU控制器,步进计数器输出端、sin计数器输出端分别连接差值计算器的输入端,差值计数器的输出端分别连接整数计数器、sin计数器,
步进计数器,对输入脉冲步进值进行计数;
差值计算器,将输入脉冲步进值与新脉冲步进值进行相差,将步进差值发送给整数计数器和sin计数器,整数计数器根据步进差值控制新脉冲产生数量,sin计数器在新的输入脉冲周期开始后加上上一周期的步进差值。
3.一种基于脉冲变频控制的步进电机控制方法,采用权利要求1或2中系统,其特征是包括以下步骤:
S1.MCU控制器输入脉冲和方向控制信息至步进控制器;
S2.计算输入脉冲的脉宽值,根据设定倍频计算变频后脉冲的新脉冲值;
S3.以新脉宽值为计数周期进行计数,每计数到新脉宽值产生一个脉冲,重复计数产生变频后的新脉冲;具体过程包括:S31.获取新脉宽值的整数值和小数值;
S32.以整数值为计数周期进行计数,判断是否有进位,若有计数值减1,若没有按正常计数;
S33.当计数到整数值则产生一个新脉冲,清零计数;
同时在每产生一个新脉冲则累加一次小数值,当累计值达到整数时,则产生进位发送给整数计数器,保留累计值小数部分;
S34.重复步骤32‑33,直到产生设定变频后的新脉冲;
S4. 根据变频后的新脉冲累计步进值,设定对应电流,由步进电机转换为对应步距角。
4.根据权利要求3所述的一种基于脉冲变频控制的步进电机控制方法,其特征是步骤S2具体过程包括:
S21.检测输入脉冲中相邻的两个上升沿,两个上升沿之间为一个脉冲;
S22. 对脉冲范围内的系统时钟个数进行计数,计数获得的时钟数为当前脉冲的脉宽值;
S23.获取输入的细分模式和步进控制器最高细分,计算倍频=将输入的细分模式/步进控制器最高细分,将脉宽值除以倍频,获得变频后新脉宽值。
5.根据权利要求4所述的一种基于脉冲变频控制的步进电机控制方法,其特征是在步骤S4中新脉冲累计步进值后还包括差值控制处理步骤,包括:S41.步进计数器每检测到一个输入脉冲,以倍频值为输入脉冲步进值,获得输入脉冲步进值;
S42.获取新脉冲步进值;
S43.将输入脉冲步进值与新脉冲步进值进行相差,获得步进差值,将步进差值发送给整数计数器,控制新脉冲产生数量;
S44.检测当前操作周期是否结束,若否返回步骤S42,若是将步进差值发送给sin计数器,sin计数器在新的输入脉冲周期开始后加上上一周期的步进差值。
说明书 :
一种基于脉冲变频控制的步进电机控制系统及方法
技术领域
背景技术
减小了步距角和步进震荡动能。常见的细分模式有半步模式、1/4步模式、1/8步模式等,即
输入一个脉冲,步进电机分别转动1/2、1/4、1/8步距等。传统的步进电机控制系统如图1所
示,由MCU控制器、步进控制器、功率放大器和步进电机组成。其细分驱动实现结构如图2所
示,由模式控制器、sin计数器和sin译码器组成。方向控制输入设定sin计数器累加或者累
减,脉冲输入设定sin计数器计数频率,模式控制模块设定sin计数器计数步进。步进控制器
每接收到一个脉冲,sin计数器累加一次步进值,并通过sin译码器设定对应电流,步进电机
转过对应步距角。但传统的细分模式模式确定,步进固定,还不能很好的降低电机运行噪
音,减少电机运行抖动。
发明内容
控制系统及方法。不用改变前级脉冲输入,采用最小步进值,同时对输入脉冲进行变频处
理,步进电机能始终工作在最高硬件细分精度,提高了电机控制精度,也便于原有步进电机
系统细分控制升级。
器发送脉冲和方向控制信息至步进控制器,步进控制器与功率放大器输入端连接,功率放
大器输出端连接步进电机,所述步进控制器包括模式控制模块、脉冲变频模块、sin计数器
和sin译码器,
分模式下都能以硬件最高精度细分运转,步进电机转动更静音、平稳、连贯。本发明提高了
步进电机细分精度无需提高主控脉冲输入频率,可以便捷应用于原有步进电机控制系统细
分控制升级。MCU控制器输出脉冲以及方向控制信息,sin译码器根据sin计数器计数值将其
转换为对应电流,功率放大器对步进控制器输出电流进行放大,步进电机根据电流转换成
对应步距角。
micstep计数器输出连接sin计数器,
当前脉冲脉宽值。
据倍频数确定当前输入脉冲周期内产生新脉冲的个数,发送给micstep计数器。
进行计数,可以是加计数从0至新宽值,也可以是减计数从新脉宽值至0。每次累计时钟数至
新脉宽值后产生一个脉冲,然后清零重新进行计数,重复计数动作输出变频后的新脉冲,新
脉冲输入至sin计数器。
sin计数器,
数周期,对系统时钟数进行计数,当计数累计达到整数值时,产生一个新脉冲,整数计数器
清零。然后进行下一个计数周期计数,直到产生设定倍频数量的脉冲形成新脉冲或是在当
前输入脉冲的周期内产生对应周期长度的新脉冲。
数计数器接收到进位后计数值减1。本方案中小数值累计在整数计数器每产生一个新脉冲
时进行,累加值初始值为小数值,在产生第一个新脉冲时,累加一次小数值,累计值为两个
小数值相加值,当累计值达到整数时,即累计值为整数或者具有整数部分,具体的为等于1
或是大于1,则产生进位,小数计数器去除累计值整数部分,保留累计值小数部分,继续进行
累计。micstep计数器是加计数,整数计数器接收进位后计数值减1,若micstep计数器是减
计数,整数计数器接收进位后计数值加1。
器和小数计数器。小数计数器在每产生一个新脉冲时累加一次小数值,当累计值达到整数
时,产生进位给整数计数器。整数计数器每来一个系统时钟则计数值加1,若小数计数器有
进位则计数值再减1,整数计数器计数值达到新脉宽值,则产生一个新脉冲并清零后重新计
数。如此计数,确保了电路在输入脉冲脉宽值不能被倍频数整除的情况下也能产生均匀倍
频的新脉冲。
入端,差值计数器的输出端分别连接整数计数器、sin计数器,
输入脉冲周期开始后加上上一周期的步进差值。输入脉冲会发生频率变化,由于当前周期
内新脉冲脉宽宽度取决于上一周期输入脉冲的脉宽值,输入脉冲的频率变化时,输入脉冲
脉宽变化的首个周期会出现新脉冲倍频和设定值不相等的情况,导致步进电机多步或失
步,通过本方案的差值控制处理,确保了在不同输入脉冲情况下,步进控制器都能精准步进
运转。
分模式下都能以硬件最高精度细分运转,步进电机转动更静音、平稳、连贯。本发明提高了
步进电机细分精度无需提高主控脉冲输入频率,可以便捷应用于原有步进电机控制系统细
分控制升级。
除以倍频数得到新脉宽值,同时根据倍频数确定当前输入脉冲周期内产生新脉冲的个数。
倍频数由设定的细分模式和当前电机步进控制器最高细分精度决定,例如输入1/8细分模
式,步进控制器最高细分1/256为例,则倍频数为32倍频,即根据步进控制器最高细分精度,
将输入的细分模式转换成对应的倍频数。
计数得到步进值为4。
输入脉冲的周期,当前操作周期结束即在操作周期内完成产生新脉冲。
和设定值不相等的情况,导致步进电机多步或失步,通过本方案的差值控制处理,确保了在
不同输入脉冲情况下,步进控制器都能精准步进运转。
贯。
附图说明
具体实施方式
器,步进控制器与功率放大器输入端连接,功率放大器输出端连接步进电机,如图3所示,步
进控制器包括模式控制模块、脉冲变频模块、sin计数器和sin译码器。
器输出连接sin计数器,
发送给micstep计数器。
至sin计数器。
器和小数计数器。
数周期,对系统时钟数进行计数,当计数累计达到整数值时,产生一个新脉冲,整数计数器
清零。然后进行下一个计数周期计数,直到产生设定倍频数量的脉冲形成新脉冲或是在当
前输入脉冲的周期内产生对应周期长度的新脉冲。
数计数器接收到进位后计数值减1。小数值累计在整数计数器每产生一个新脉冲时进行,累
加值初始值为小数值,在产生第一个新脉冲时,累加一次小数值,累计值为两个小数值相加
值,当累计值达到整数时,即累计值为整数或者具有整数部分,具体的为等于1或是大于1,
则产生进位,将进位发送给整数计数器,小数计数器去除累计值整数部分,保留累计值小数
部分,继续进行累计。
和设定值不相等的情况,导致步进电机多步或失步。通过差值补偿处理,确保了在不同输入
脉冲情况下,步进控制器都能精准步进运转。
的输出端分别连接整数计数器、sin计数器,
输入脉冲周期开始后加上上一周期的步进差值。
数器中。在模式控制中设定细分模式,根据细分模式计算对应倍频,以步进控制器最高细分
1/256为例,若设定1/8细分模式,则将对输入脉冲进入均匀32倍频处理,即获得32倍频,本
实施例里以4倍频为例。
最高细分1/256,则计算得到倍频为4,则输入脉冲脉宽值除以4获得变频后新脉宽值,即新
脉宽值为原脉冲周期的1/4。移位器可以是数字运算电路,实现除法运算。也可以进行移位
操作,将原脉宽值下移2bit得到新脉宽值,也是新脉宽值为原脉冲周期的1/4。
进行,累加值初始值为新脉宽值小数值,在产生第一个新脉冲时,累加一次小数值,累计值
为两个小数值相加值,当累计值达到整数时,即累计值为整数或者具有整数部分,具体的为
等于1或是大于1,则产生进位,小数计数器去除累计值整数部分,保留累计值小数部分,继
续进行累计。以4倍频,脉宽值为43为例,则产生的新脉宽值为10.75,整数计数器获取整数
部分10,小数计数器获取小数值0.75。在整数计数器每产生一个新脉冲时进行累计,当整数
计数器计数到10时产生一个新脉冲,该新脉冲脉宽值为10,此时小数计数器进行累加一次
小数值,相加后为1.5,则累计值达到了整数,产生进位发送给整数计数器,整数计数器在计
数时计数值减1,小数计数器去除累计值整数部分,保留小数部分0.5,继续进行累计。
器最高精度下的最小步进值,即无论外部输入哪种细分模式,都能以电机步进控制器最高
精度细分控制下进行运转,累计的是输入细分模式在当前硬件最高精度下的最小步进值。
本实例中以步进控制器最高细分1/256,外部输入细分模式为1/64细分模式为例,转换成倍
频为4,在外部没输入一个脉冲,sin计数器累加4次最小步进值,这样驱动电路即满足了1/
64细分模式控制,又使步进电机始终在1/256细分控制下转动,减小了步距角和步进震荡,
步进电机转动更静音、平稳、连贯。
冲则计数得到步进值为4。
算得到步进差值发送给整数计数器,在当前周期未结束前,该步进差值=4‑新脉冲步进值不
为0,则整数计数器继续产生新脉冲。当产生4个新脉冲,此时新脉冲步进值累计为4,计算得
到步进差值为0,则整数计数器停止产生新脉冲,直到当前操作周期结束。
Taa0、Taa1、Taa2分别为每个操作周期内首个脉冲的周期,其脉宽值表示为,Taa1 =Ta0/4,
Taa2=Ta1/4,Tbb1=Tb0/4,Tbb2=Tb1/4,输入脉冲的频率变化时,输入脉冲脉宽变化的首个
周期会出现新脉冲倍频和设定值不相等的情况,导致步进电机多步或失步。
输入脉冲脉宽变窄,在,Tb1周期内只产生了3个新脉冲,则在Tb2周期开始后第一个新脉冲
时sin计数器加上上一周期的步进差值1。确保了在不同输入脉冲情况下,步进控制器都能
精准步进运转。
代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。