实时生成步进电机速度曲线

实时生成步进电机速度曲线

一种用于步进电机加速度的新算法可以实现速度曲线的实时参数化和计算。该算法可以在低端微控制器上运行,只使用简单的定点算术运算并且不使用数据表。它以恒定的加速度和减速度形成线性斜坡时间的准确近似值。


通常认为,步进电机线性速度斜坡的时间过于复杂,无法实时计算。步骤延迟的精确公式如公式8所示。解决方案是将预加坡数据存储在预编译数组中,但此方法不灵活并浪费存储器。另一种选择是使用功能更强大,处理成本更高的处理器,或者使用高级别的步进控制IC。本文使用24.8定点算法在中等范围的PIC微控制器上开发了一个精确的近似值,该近似值已经在C中实现。

电机阶跃信号可以由一个通常集成在微控制器中的16位定时器 - 比较器模块产生。在PIC上,CCP(capture / compare / pwm)执行此功能。它允许步骤按照一个定时器周期的分辨率定时。每一步都会使电机前进一个恒定的增量,通常是混合式步进电机上的1.8度。

定时器频率应尽可能高,同时在电机从停止加速时仍允许长时间延迟。1MHz的定时器频率已被使用。300rpm的最大电机转速相当于延迟计数1000。必须具有高定时器分辨率才能在高速下提供平稳的加速度。

符号和基本公式
用定时器计数器编程的延迟(秒) c

 等式1

f =定时器频率(Hz)。固定定时器计数时的
电机转速 ω(rad / sec) c

 等式2

α =电机步进角(弧度)。
1rad = 180 / π = 57.3deg。1rad / sec = 30 / π = 9.55rpm。

来自相邻计时器计数c 1和c 2的 加速度ω '(rad / sec 2

 等式3

等式3假定在每个步进间隔(等式1)的中点处的固定计数速度(等式2),如在线性斜坡上(图1)。请注意,ω '分辨率与速度的立方成反比。


图1:斜坡几何:移动m = 12步

线性速度斜坡 - 精确
在线性斜坡上,加速度 ω '是恒定的,并且速度 ω t)= ω '。t积分给出电机轴角θ( t):

 等式4

Ñ ≥0步数(实数)。当轴处于θ= Ñ .α,(整数 Ñ)它的时间为 Ñ个步骤脉冲:

 等式5

确切的定时器计数到之间的延迟进行编程Ñ和第(Ñ 1)个脉冲(Ñ ≥0)为:

 公式6

初始计数c 0分解以给出等式7和8:

 公式7

 公式8

请注意,c 0设置加速度,与(1 / c 02成比例

在实时情况下,公式8需要计算每一步的平方根,并通过减法增加了精度损失的问题。

近似线性斜坡
等式8中连续精确计时器计数的比率:

 公式9

泰勒系列:

 公式10

等式11是使用等式10对等式9的二阶近似:

 公式11

等式11可以重新排列以加快计算:

 公式12

最后,我们可以断开物理步数,,从步数Ñ从零上的斜坡,得到等式13。这里所示的通用斜坡算法Ñ确定加速度和增量与为恒定的加速度。从停止加速,i = ii = 1,2,...。

 等式13

负值的n值会减速。特别是,可以使用等式14(其中i = i - m)将任何速度向下斜坡停止,以在m的移动的最后步骤中停止

 等式14

表1:步延迟近似的精度

步骤n确切(9)约(11)相对误差
10.41420.60000.4485
20.76730.77780.0136
30.84300.84620.00370
40.88100.88240.00152
0.90410.90487.66E-4
60.91960.92004.41E-4
100.95110.95129.42E-5
1000.99500.99509.38E-8
10000.99950.99959.37E-11

近似的准确性
表1示出了近似的准确性,即使在低步数 Ñ和相对误差与减小 Ñ 3但是, n = 1具有显着的不准确性。n = 1处的不准确性可以通过两种方式处理:

n  = 1视为特例。使用 c  1 0.4056  c  0补偿斜坡开始时的不准确性,并允许使用等式7计算 c  0。 忽略不准确。代替等式7,使用等式15:

 等式15

第一种选择给出了几乎完美的线性斜坡。第二种选择从一个快速的步骤开始。这很好,因为它有助于保持电机在步进脉冲0和1之间移动,并建立产生转矩所需的角度误差。它还允许用16位定时器产生更大范围的加速度,并具有简单的优点。因此建议忽略n = 1时的不准确性


图2:步进电机速度斜坡


图3:斜坡详细信息的开始


图4:斜坡详细信息结束

图2到图4比较了在1秒内从0到120rpm的目标斜坡的选项。为了清楚起见,示出了从步骤2计算的步进速度变化。真实轮廓应当接近于直线。

2. Ç /(4。ñ方程式12 1)可以通过进行近似Ç / 2。n一些影响是:

该算法仍然会产生线性斜坡。 0 将接近等式7中所示的“精确”值:对于相同的斜坡加速度,88.6%而不是67.6%。 类似公式13的单个公式不能再用于加速和减速。 加速度的变化
从等式4和5我们可以得到步数 n的表达式作为速度和加速度的函数:

 等式16

因此,达到给定速度所需的步数与加速度成反比:

 方程17

这使得可以通过改变斜坡算法公式13中的步骤号n来改变斜坡上的点处的加速度。此外,使用带符号的ω '值导致在算法中行为正确的带符号的n只有ω '= 0需要特殊处理。

由公式17给出n值对n是正确的然而n表示间隔n .. n +1的平均值公式17通常是足够的,但在ramp算法中添加一个半值用于n值更准确

 公式18

表2中所示的数字示例将步骤200中的加速度从10变为5并且变为-20rad /秒2.可以以这种方式分段地建立复杂的速度曲线。

表2:加速度变化

第一步ñ ci(13)ω'(3)笔记
1981982,813.067 
199199 
398.5 
-100.25
2,806.0081010.(199 + .5)= 
5.(398.5 + .5)= 
-20。( - 100.25 + .5)
200399.52,803.498
201400.52,799.001
200-99.252,820.180-20
201-98.252,834.568-20

减速斜坡
对于短移动步骤,其中该上行斜坡在 ω “ 1满足在下行斜坡 ω ” 2最大速度之前达到,步数处开始减速时,从等式17:

 等式19

ω ' 1 =加速度,ω ' 2 =减速(正)。n取整为整数,并使用公式14 计算n .. m-1

在其他情况下,公式17或18可被用于计算的步数Ñ停止在减速需要2 ω “ 2,因为当前速度在步骤达到Ñ 1与加速度ω ” 1n 2取整为整数,并 使用等式14 计算m -n 2 ... c m-1

换挡平顺,以最大速度
理想的速度曲线将使从斜坡加速的平稳过渡 ω '到最大速度 ω 最大通过降低斜坡顶部附近的加速度可以提高速度,并且可以避免加速中不连续的可能不良影响。

有几种方法可以实现平滑过渡,同时仍允许在低端处理器上进行实时计算:

分阶段降低 ω  ',给出分段线性过渡。 给匝道算法的分母添加一个幂项。 i缩放变化 -1 i 的线性因子。 现在让我们来比较这些方法。

分段线性
该方法如图5所示,非常灵活。可以使用任何数量的休息。选择ω '值连续减小的一组ω使用公式13中的斜坡算法。在每一步中,n递增,如果ω(或c)超过中断值,则重新计算n。 


图5:分段

图5 由(cj = 0 = 3 给出的j个中断的结果。c min,(cj =((cj -1+ c min)/ 2,( ni j = 1.375。( n i- 1 +1),j = 1,2,...,7。C ^Ĵ =延迟计数在Ĵ个断裂,Ç 分钟,=延迟计数在ω 最大

功率项
公式20给匝道算法的分母添加了一个幂项(公式12):

 等式20

在低速(低步数n)下,功率项k · p可以忽略不计,所以加速度是恒定的。随着速度的增加,k · p开始占主导地位,最终将加速度降为零。更高的功率p会产生更清晰的“膝盖”。以这种方法ω 最大渐近。

的过渡发生围绕ķ · Ñ p = 4 Ñ这可用于计算用于恒定的近似值ķ从初始加速度ω '和所需的最大速度ω 最大

 等式21

图6中的图表使用方程21来计算p = 2,3,4,5的k曲线达不到ω 最大p = 2,但ķ有利于更高的功率。 


图6:功率项,p = 2,3,4,5

线性因子
在该方法中,我们运行斜坡算法(公式12)到步骤Ñ 1,然后在扩展的变化Ç由从1在步骤减小一个因子Ñ 1到0,在步骤Ñ 2:

 等式22


图7:线性因子

加速度曲线在转换中相当线性和对称。ω 最大值在约两倍没有过渡服用,时间达到如图7 ω 最大可通过集成式22的连续版本来估计

我们获得:

 公式23

公式23对于广泛的参数是准确的,包括n 1 = 0。然后将其简化为公式24(与公式16比较):

 等式24

在图7中,线性因子方法被施加有过渡范围从0开始和30%,50%,和70%ω 最大值

线性系数转换也可以应用于downramp:

 等式25

如前例所示,步数n 3是从最高速度到下降速度的过渡的开始。对于短的移动,n 3 = n 2,由等式19计算。


图8:线性因子:双重转换

图8示出具有和不具有在实施例部分ω 最大 = 700,ω ' 1 = 10,ω ' 2 = -20,Ñ 1 = 0,Ñ2 = 432,Ñ 3 = 484; 并且m = 500,n 2 = n 3 = 333,其他参数不变。

过渡方法在总和
的过渡曲线的形状被假定为比便于计算和的参数控制,特别是不太重要的 ω 最大值和过渡区域的大小。

分段线性方法灵活,可以安排成不需要比简单的斜坡计算更多的计算,并给出视觉平滑的速度曲线。不过,它可能不适用于某些参数集。

在电源术语的方法,所述ķ -parameter容易从计算ω 最大值计算功率项会在定点算术中产生问题,因为值在很大范围内变化。

线性因子法被推荐为可靠且易于在定点算术中计算。因为ω 最大值以已知的步骤数达到,该方法有利于短移动,并且可以从加速度过渡没有间断到减速,如图8证明。在开始过渡Ñ 1 = 0给出了一个窄的过渡区,它的直接计算ñ从2 ω 最大值

这些方法在图5至图7中进行比较。

实现
您可以使用PIC18F252和L6219实现该步进控制算法。L6219步进驱动器IC执行以下功能:

为两个电机绕组提供具有46V / 750mA二极管保护功能的H桥驱动器 在电机绕组中将PIC的数字信号转换为电流方向(PHASE1,2输入) 通过将驱动器斩波至H桥晶体管(输入I01,I11,I02,I12),将每个绕组电流限制为预设值的0,33%,67%或100% 最大电流由每个绕组的电流检测电阻器设置。

L6219没有“步进”和“方向”控制线,如一些步进控制IC。绕组的相序必须由PIC提供。这使控制稍微复杂一些,但提供了额外的灵活性并降低了成本。这也意味着该阶段可以在加电时轻松恢复。

通过使用I输入,L6219可用于半步和四分步操作。为了全面实施,可以将它们连接在一起,并由PIC中的一个GPIO驱动。

Microchip的PIC18F252是一款28引脚器件,占板面积与PIC16F876相同。'252'功能更强大的核心使得用C编程更容易。图9显示了如何配置内部时序资源来控制L6219。


图9:L6219接口的PIC18F252定时器配置

8MHz晶振和PIC的× 4 PLL倍频器用于产生32MHz处理器时钟。这被四分之一的时钟定时器在8MHz。驱动电机包括以下顺序:

获取参数:步数,方向,延迟计数 c  0,最大速度等。 设置硬件:初始化CCP1和CCP2,启用电机电流,启用CCP1中断。 服务CCP1中断:计数步骤并执行状态机重新配置CCP并计算下一个定时器值。 清理:在最后一步之后,禁用CCP1中断,关闭电流,标记移动完成。 列表(在线地址:http://www.eetimes.com/design/embedded/source-code/4210291/Motor-c)是这些步骤的最小演示,具有线性斜坡,固定的最大速度和加速度。作者使用CCS编译器。其他编译器需要稍作更改。

逐步
出现我在此解释的实时算法显着降低了步进电机平稳速度控制所需的处理能力。线性斜坡算法可以适应分段线性速度曲线以及从斜坡到最大速度的平滑过渡。

David Austin是英国达勒姆的自由软件工程师。您可以通过dave@slotech.fsnet.co.uk与联系

资源
Acarnley,Paul。步进电机 - 理论与实践指南,第4版伦敦:电气工程师学会,2002。

Kenjo,Takashi和Akira Sugawara。步进电机及其微处理器控制,第2版牛津大学出版社,1995年3月。

步进电机控制 - 教程 www.cs.uiowa.edu/~jones/step/

供应商的网站:
PIC18F252 www.microchip.com
L6219 www.st.com
PIC C编译器www.ccsinfo.com
步进电机www.rotalink.com

Mathcad(图形)www.mathsoft.com

原文地址:https://www.embedded.com/design/mcus-processors-and-socs/4006438/Generate-stepper-motor-speed-profiles-in-real-time

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
步进电机s曲线生成器是一种用于控制步进电机的电路或系统。步进电机是一种特殊类型的电机,通过逐步变化的电脉冲控制旋转角度。s曲线生成器是一种用于生成特定类型的曲线形状的电路或算法。 在步进电机控制中,常常需要让电机以平滑的方式加速和减速,避免突然变化造成机械冲击或振动。s曲线生成器的作用就是在控制步进电机加速和减速过程中,根据预设的速度曲线生成生成一条平滑的曲线。通过在每个步进脉冲之间逐渐变化脉冲频率和幅值,使步进电机实现平稳运动。 s曲线生成器的实现可以采用各种不同的方法,包括使用微处理器或专用的数字信号处理器(DSP)。在s曲线生成器中,需要使用一些数学函数和算法,例如加速度曲线速度曲线和位移曲线的计算。通过这些数学函数和算法,可以根据预设的加速度和减速度生成平滑的曲线形状。 s曲线生成器在步进电机控制中有着广泛的应用。它可以用于各种步进电机应用,例如工业自动化、机器人控制、医疗设备和印刷设备等。通过使用s曲线生成器,可以实现高精度、平稳运动的步进电机控制,提高系统的性能和稳定性。 总之,步进电机s曲线生成器是一种用于控制步进电机加速和减速过程中生成平滑曲线形状的电路或系统。它在步进电机控制中有着重要的应用,可以提高系统的性能和稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值