实时生成步进电机加减速曲线_第1页
实时生成步进电机加减速曲线_第2页
实时生成步进电机加减速曲线_第3页
实时生成步进电机加减速曲线_第4页
实时生成步进电机加减速曲线_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实时生成步进电机速度曲线步进电机加速的新算法能够将速度曲线参数化并进行实时计算。这种算法能在低端微控制器上运行,只采用简单的定点运算, 没有数据表。它为恒加速和减速线性上升开发出一种精确逼近法。通常认为步进电机线性速度上升的时序过于复杂,难以实时计算。步进延迟的精确公式见等式 &该解决方案在预编译的阵列内储存了上升数据,但这种方法不灵活,而且浪费存储空间。替代方案是采用功能更强大、价格贵的处理器,或高等级的步进控制IC。本文介绍了一种在中等范围PIC微控制器上采用24.8定点运算用C语言实现的精确逼近算法。电机步进信号能用通常微控制器内集成的16位定时比较器模块来生成。在 PIC上,

2、CCP捕获/比较/pwm)执行这种功能。它允许步进能配合每一个定时周期的分辨率。每一个步进都通过恒定增量让电机向前转动一下,在混合步进电机上通常转动1.8度。定时器频率应该尽可能高,但仍然允许长久延迟,因为电机由停止开始加速。定时器频率定为1MHz 300rpm的最大电机速度然后等效于1000延迟数。高定时分辨率对于高速平滑加速必不可少。符号及基本公式延迟(sec,秒)由定时器计数 c来编程:方程1f =定时频率(Hz).固定定时计数 c时的电机速度3 (rad/sec):.方程2a =电机步进角度(弧度),1rad = 180/ n = 57.3 度 1rad/sec = 30/n = 9.

3、55rpm.来自相邻定时器计数 c1和c2的加速度3 ' (rad/sec2):cl c2.l-.-L1 c2j 方程 3方程3假定了每一步间隔(方程1)中点的定点速度(方程2),如图1所示的线性斜线上。注意,3 '分辨率与速度立方成反比。线性速度斜线上升一一精确在线性斜线上,加速度3 '恒定,速度3 (t)=图1:斜线尺寸:移动m=12步3'.t。综合给出电机轴角度0 (t)方程4nA 0步进数(实数)。当轴位于0 = n. a,(整数 n)第N个步进脉冲:对第n个和第(n+1)个脉冲之间延迟进行编程的精确定时器计数(n a 0) 是:-.-.方程6初始计数C

4、O分解得出方程7和8:.辰方程 7注意cO设定加速度,与(1/c0)2 成正比。在实时情况下,方程8需要对每一步进行平方根计算,由于减法而增加了精度损失的问题。逼近线性上升 由方程8得出逐级精确定时计数比率: ,:"、I.Q*I_+ :;,:-:I 务i爲-Ju-: ,方程 9泰勒级数:方程10方程11是利用方程10对方程9的二阶逼近:可将方程11加以整理进行快速计算:最后,我们能从斜线上从零开始的步进数n拆开为物理步进数,i,得出通用的上升算法,如方程 13所示。这里n用i决定了加速度和增量,用于恒加速。从停止,ni = i ,i=1,2,.开始上升:2也£ =4 _ -

5、方程13负n值给出减速。特别的是,方程 14, ni= i -m能被用来在 m步移动的最后一步内将任何速度降至停止::!| .:51方程 14rStep nExact (9)Approx (11)Relative error10.41420.60000.4485r20.76730.77780.013630.84300.84620.00370L40.88100.88240.0015250.90410.90487.66E-460.91960.92004.41E-4100.95110.95129.42E-5L1000.99500.99509.38E-81,0000.99950.99959.37E-1

6、1表1:步进延迟逼近的精确度逼近精确度表1示出了即使在低步进数 n和相对错误以n3减少时逼近依然是精确的。然而,n=1时有明显的错误。在n =1时的错误可通过 两种方法来处理:将n=1作为特别情况。采用cl 0.4056 c0补偿上升开始时的不精确,允许使用方程7来计算c0。忽略这一错误。在方程 7处使用方程15:-0,戒-方程15第一种替代方法得出了几乎完美的线性上升曲线。第二种替代方法以快速步进开始。它有助于保持电机在阶跃脉冲0和1之间转动,并确定生成转矩所需要的角度误差。它还允许用16位定时器生成更宽范围的加速,优点是简单化。因此,这种方法被推荐用来忽略n=1时的错误DJ35 CL1 Q

7、.15 0? 025 Q.3 SJF 0.4 645 05 055 0直 <J£5 OJ O.JS 0出 Q0 0.55Euct h怔<2言图2:步进电机速度上升曲线图3:上升开始时的细节12011.5.価11117SH7TZ1161=15511S11451140型 0JS5 口 如 加甩5 0L如 0.975 OJS 0.軸S 。肿 O-.W 1Time (sec)图4:上升结束时的细节图2到4对比了 1秒内从0到120rpm目标上升的选项。为清楚起见,显示出了以速度表示的步进改变,由方程2计算而来。真实的曲线应该接近直线。方程12的2.c/(4.n +1)可用c/2.

8、n逼近。有一些影响:算法将仍然产生一个线性上升。C0将更接近方程7所示的“精确”值:同样的上升加速为88.6%,而不是67.6%。像方程13那样的简单方程不再被用于加速和减速。加速改变由方程4和5,我们得到步进数n的表达式,是速度和加速度的函数:“川方程16因此达到给定速度所需步进的数目与加速度成反比:.心方程仃这使在上升曲线上的一点处,通过改变上升算法方程13的步进数而改变加速度成为可能。此外,采用有符号的3'值导致有符号的n值,算法中表现正确。仅在3 ' = 0 处需要特殊处理。方程17给定的n值对tn正确。然而,cn代表了间隔tn . tn+1的平均。方程17通常够用,但

9、在上升算法中使用时给n值增加一个半步就更为精确。m:.二方程18表2所示的数例从10到5改变加速度,并从第200步改变到-20rad/sec2。复杂的速度曲线能够通过这种方式分段构建。Step in ici (13)3' (3)n otes1981982,813.0674屈十1199199 398.5 -100.252,806.0081010.(199+.5)= 5.(398.5+.5)= -20.(-100.25+.5)200399.52,803.49852%etc.201400.52,799.0015200-99.252,820.180-202工网jn 4一4-9925*1etc.

10、201-98.252,834.568-20表2:加速度改变减速上升转动m步,3 '1处的向上斜线与3 '2处的向下斜线在达到最大速度前交叉,开始减速点的步进数 m等于,由方程17:科=_就+虱方程193仁加速度,3 '2=减速度(正)。将 n四舍五入到整数,用方程14计算cn . cm-1。其它情况,方程17或18能被用于计算在 减速度3 '2处停止时所需步进数n2,假定在步进n1时达到当前的速度。将n2四舍五入到整数,并且用方程14计算cm-n2 . cm-1 平滑移到最大速度理想的速度曲线将由上升加速3 '平滑过渡到最大速度3 max通过在靠近上升斜

11、线顶部减少加速度可以实现更高速度,你可以 避免可能出现的不期望的加速中断效果。有几种方式能够实现平滑过渡,同时仍然在低端处理器上允许实时计算:分段减少3',实现分段线性转换。给斜坡加速算法的分母加一个指数项。通过线性因子改变ci-1到ci。现在让我们对比这些方法。分段线性图5所示的这种方法非常灵活。任何数量的中断都可使用。在3'连续减少处选择一组3值。方程13中使用了斜坡算法。在每一步都增加n,如果3或c穿过中断值,n就被重新计算。图5:分段图 5 来自于(c)j=O = 3.cmin, (c)j = (c)j-1+cmin)/2, (ni)j = 1.375.(ni-1+1)

12、, j = 1,2”.,7.给定的 jth 中断。在 jth中断处(c)j = 延迟数,在3 max处cmin,=延迟数。指数项方程20给斜坡加速算法(方程12)的分母加了一个指数项: A 4.用+ 1+E 方程 20在低速(低步进数n)处,指数项k np可忽略,因此加速是常数。随着速度上升,k np 开始占优势,最终将加速减少至零。更高的指数p产生一个急剧的“膝盖”形状。Q max是渐进达到的。转换发生在knp = 4.n处。这能被用来计算常数k从初始加速3 '和所需最大速度3 max的近似值。一4_ jr2.0:.A)2%方程21图6中的图表采用了方程21来计算p=2,3,4,5时

13、的k。曲线当p=2时3 max下降了一些,但k对于更高指数还可以。图6:指数项,p=2,3,4,5线性因子在这种方法中,我们运行斜坡算法(方程12)上升到n1步,然后通过在步进为n1时从1减为步进为n2时的0这一因子改变c:方程2211图7:线性因子加速度曲线在转换中相当线性和对称。达到3 max的时间约为没有转换时的2倍,图7所示。Q max能通过综合方程22的连续版本来估计, 我们得到:1工曲十 "I空口严L=卜”"方程23方程23对于宽范围的参数,包括 n1=0都精确。然后它简化到方程 24(与方程16对比):方程24在图7中,线性因子方法应用了 34.Q-剋)*1

14、刑一甬_1rffi3 <? 5方程25max由0开始、30% 50痂70%勺转换范围。线性因子转换也可用于向下斜坡:步进数n3,从最大速度转换开始到向下斜坡,在上一个例子中已经计算岀来。对于短移动,n3=n2,由方程19计算岀来111O.S00.2 M M 11.114 L& IJS 2122A 抽牯脇Iirn#(i4C)肩事哂兰".".WIT -kh/pm PF賁图8:线性因子:双转换图 8 显示在3 max有及没有片段的例子:m=700, «'1 =10, 3'2 = -20,n 1=0,n2=432,n3=484; m=500,

15、 n2=n3=333,其它参数不变。转换方法数转换曲线的形式假定没有计算简便及参数控制那么重要,尤其是3max和转换区域的大小。分段线性方法灵活,可加以整理,只需要简单的斜坡运算,给出了光滑的速度曲线。然而它可能不适合某些参数组。在指数项方法内,k参数很容易地由3 max计算而来。当值在大范围内变化时,计算指数项产生定点运算问题。线性因子方法被推荐为可靠而易于计算的定点算法。因为3 max在已知的步进数处达到,该方法适合短移动,能从加速度过渡到减速,不出现中断,如图 8所示。在n1=0开始转换给出了狭窄的过渡区,能由3 max直接计算出n2。图5到7对比了这些方法。实现你可以采用PIC18F2

16、52和L6219实现这种步进控制。L6219步进驱动IC执行以下功能:提供二极管保护的H桥驱动,能够为两组电机绕组提供46V/750Ma在电机绕组(PHASE1,2输入)内将数字信号从 PIC转换为电流方向将每个绕组的电流限制到0,当前值的33%, 67%,或100%通过将驱动器切换到 H桥晶体管(输入101,111,102,112)最大电流由每个绕组的电流感应电阻来设定。L6219不像某些步进控制IC,没有“步进”和“方向”控制线路。绕组相位序列必须由PIC来提供。这使控制少许复杂,但赋予了额外的灵活性并降低了成本。它还意味着相位可容易地在起电时复原通过使用I输入,L6219能被用于半或四分

17、之一步进操作。对于全步进,它们可连在一起,由PIC的一个GPIO来驱动。Microchip 的PIC18F252是28引脚器件,占位与PIC16F876一样。252功能更强大的内核使其更容易用C来编程图9表明了控制L6219的内部时序资源配置。Mode* aNgr = Wtin molcw Tip ISR rcpiCDNOife Invokemowmpi&ft ILTWSCCCPIogicpm持 L&219PHASE 1 p«iTKCPJ-0TMR3 jcfineteLLed)toL6219PWASF 7 pifiutpUE PfUb>TRISCTKCPI-fl TKCPJ-0set >r motor-ISA cmccR 咖rmcftor 创 ep ISS图9: L6219接口的PIC18F252定时配置8MHz晶体及 PIC的x 4PLL频率乘法器用于生成32MHz处理器时钟。这被分成四部分,使定时时钟为8MHz驱动电机包含以下序列:获取参

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论