amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 25230|回复: 75

关于步进电机加减速控制的问题

[复制链接]
发表于 2010-11-28 09:58:26 | 显示全部楼层 |阅读模式
如何能准确的确定加减速控制中的加速过程的结束和减速过程的开始。

现在的情况是“减速点”不会算,算出来后走的效果不对。

要么是速度还没降到0或起始速度,该走的距离就走完了,电机急刹车;要么速度早就降下来了,该走的距离还没走完,电机还会“噔-噔-噔”的再走几步才

停下来。

我需要确定一个减速点,正好该走距离走完,速度降到0或起始速度。希望做过的前辈点化一下。

我现在的算法:

1.通过待运动的距离、起始速度和加速度算出距离走完所需要的时间(根据位移公式:S = V0*t + (1/2)*a*t*t);

2.通过起始速度、加速度和距离走完需要的时间来确定这个距离走完能达到的最高速度(根据公式:Vt = V0 + at),


3.判断这个最高速度是不是大于限定的最高速度,如果大于就取设定的最大速度,算出达到设定的最大速度所需要的时间;

4.根据知道的2个时间(选其中一个)、起始速度、加速度、算出位移,这个位移量就用于加速过程,同样也是减速过程所需要位移,

  当剩余的距离小于等于这个位移时,就开始减速。

修改原因:没写完按错了确定提交的键,其实还没完全表达清楚。不过算了,反正这个方法不行,就不再描述了。等高手给点指点。
 楼主| 发表于 2010-11-28 10:05:08 | 显示全部楼层
再补充一点,用的是单片机,16M的时钟。速度来不及,不能一边运动一边计算,所以事先确定好加减速点。
发表于 2010-11-28 11:20:47 | 显示全部楼层
考虑 用距离来作 基准   

通过的距离连续转角 步进是不会变的(相对同一种拍法 (但起停还是会丢半拍))

比如 知  计算出 一个转角  算前进的距离 (这样不管你是快还是慢 通过的距离是不会变的)


以前作哪个玩具CNC 的系统时 也是有点半闭环控制的

我很无聊的先测出  走完行程要用多少步 (行程/步数=每步距离) 之后加了个变量进计数 基本就能知 坐标去到哪了  

只要 if(步数< 100)
      {
        小减速;
         }

      if(步数< 15)
      {
        中减速;
         }
if(步数< 5)
      {
       大减速;
         }
if(步数< 1)
      {
        停;
         }

很粗糙   这个速度因当然交给 PDI 程序完成 自动处理
 楼主| 发表于 2010-11-28 11:44:56 | 显示全部楼层
谢谢楼上。
看了你的流程,好像只牵扯到步数和一个含糊的速度。

我的需要涉及到准确的起始速度、加速度和最高速度,需要在实际的运动中能正确体现出这些参数起的作用。比如加速度是多少实际运动过程就是多少。

最关键的是需要减速部分的控制,距离走完,速度正好按照设定的加速度值减到起始速度,并停止下来。距离走完了速度高于起始速度紧急停止不行,速度降到起始速度了还有一段距离没走,也不行。

如果按照楼上的办法,如何计算小减速,大减速,中减速时的具体速度和加速度,不能靠实际运动后凭经验估算,希望能有具体确定那些速度值的计算方法和公式。

另外,还是特别声明一下,因为是单片机,最高16M,不好一边运动一边计算,最好运动前全部参数计算好后在运动。
 楼主| 发表于 2010-11-28 11:50:22 | 显示全部楼层
暂定加速度4000mm/s,最高速度600mm/s,起始速度最好能是1mm/s,不行的话20mm/s(起始速度越小,计算的不准的话,噔-噔-噔的时间越长)。
发表于 2010-11-28 12:34:51 | 显示全部楼层
正在做加减速,我用步数的方法.这样较精确,而速度就确定在单片机输出的频率高低.但加减速时的效果不够理想,头大中.
 楼主| 发表于 2010-11-28 12:41:32 | 显示全部楼层
呵呵,楼上的,一起研究啊。

如果不计较距离的话,光加减速还是很好做的。

距离到的时候速度要正好降到起始速度,这点我感觉还是有点复杂,解决办法好像是有,但是效果就是不理想,可能是我哪里算错了。
发表于 2010-11-28 13:23:12 | 显示全部楼层
关注中
发表于 2010-11-28 13:55:24 | 显示全部楼层
需要计较距离的,用距离做基准应该是最好的了.把加减速看成一个等腰三角形.这样,匀速时就是三角形的顶点了.这个较好实现.但主要是,加减速时要知道每一阶梯的步数.以及输出的频率.走多少距离时可到达最高速,这个问题很是难确定.
发表于 2010-11-28 19:15:24 | 显示全部楼层
可以使用带有加减速控制的专用集成芯片。
LZ的驱动电流是多大的呢?
一般加速的曲线有直线减速和正弦加速,后者动态运动的性能最好,也更容易实现高速控制
可以看下面的示意

(原文件名:截图00.jpg)


(原文件名:截图02.jpg)

具有自带加减速控制的控制芯片有TMC428 是直线加速

(原文件名:TMC428加减速.jpg)

TMC454,TMC457可以实现正弦波加减速
点击此处下载 ourdev_600975FGVXQ6.pdf(文件大小:2.28M) (原文件名:TMC428_datasheet.pdf)

点击此处下载 ourdev_600976OLFJ0D.pdf(文件大小:1.24M) (原文件名:tmc457_datasheet.pdf)
点击此处下载 ourdev_600977AXHZXO.pdf(文件大小:1.63M) (原文件名:TMC454_datasheet.pdf)

(原文件名:波形.jpg)
 楼主| 发表于 2010-11-28 22:48:25 | 显示全部楼层
楼上的芯片也关注过,不过听说不便宜,不知道是不是真的。也很希望能有机会试试。希望是整个驱动,接上去就能用的那种。

前段时间几乎试遍了国内有点名气的驱动。不是给他们做广告,雷泰的驱动是最好的,不过他们的驱动高速时力道太小,也没有能批量替换现用

的。

我现在搞的是运动控制,是暂不需要考虑驱动的。不过找到更好的驱动也是一只在做的。

还是回到原题吧,

我感觉我的计算方法应该是对的,但是不知道为什么达不到理想。要求也很简单,怎样确定减速点,在所有脉冲走完的同时,电机的速度降到起

始速度。

当局着迷,有前辈给指点一下,或许就能很快找出原因。
 楼主| 发表于 2010-11-28 22:51:48 | 显示全部楼层
各种加减速都不难做,即使是S型加减速(就是楼上的楼上讲的正弦波加减速吧)。
发表于 2010-11-29 00:00:57 | 显示全部楼层
看了你的流程,好像只牵扯到步数和一个含糊的速度。

我的需要涉及到准确的起始速度、加速度和最高速度,需要在实际的运动中能正确体现出这些参数起的作用。比如加速度是多少实际运动过程就是多少。


==准确的起始速度、加速度和最高速度, 视电机性能及负载  公式~~~我也不知 呵呵呵呵 简单的方法就是实操。。。
  比如加速度是多少实际运动过程就是多少。   比较实测与理论的差距  从控制上来说 就要丢弃最快值保留保守值 以保证"准确"




最关键的是需要减速部分的控制,距离走完,速度正好按照设定的加速度值减到起始速度,并停止下来。距离走完了速度高于起始速度紧急停止不行,速度降到起始速度了还有一段距离没走,也不行。
   
===== 不就是电机的起动扭矩    只要速度降到 电机的锁定扭矩就不相当然于刹死了  (最算你最后 偷偷动几下~~~人是看不出来的)

  



如果按照楼上的办法,如何计算小减速,大减速,中减速时的具体速度和加速度,不能靠实际运动后凭经验估算,希望能有具体确定那些速度值的计算方法和公式。


======公式~~~不要找我~~~~~  找到了~~~顺便共享给我~~~谢谢   好象在中学的物理课有



另外,还是特别声明一下,因为是单片机,最高16M,不好一边运动一边计算,最好运动前全部参数计算好后在运动。
发表于 2010-11-29 07:33:29 | 显示全部楼层
步进电机加减速控制,以前也做过,算法嘛我的比较简单,就是定义一个最小行程,最小行程=启动行程+停止行程,小于最小行程的距离我就用低速运行,大于等于最小行程的距离,起始和结束时分别调用启动和停止的函数。

事实上,做出来用是没有问题,设计要求都是满足的。但是,事后我总觉得不太对劲,百思之后,得到的答案就是,为步进电机的系统做平滑启动停止,只不过是个过于理想化的东西。

因为,首先就不需要。用步进电机做的传动机构,能跑多快?负荷又能有多少?从应用上,传动快的都是轻载,这也好理解,高速重载的步进电机系统,成本上难说吃得消,至少一般设计上没这么应用的。所以现实情况就是,只要转矩够,随便起停,机械结构根本就坏不了,也没有任何疲劳,丝毫不用担心寿命(太偷工减料的不算,机械结构的设计往往比实际应用所要求的余量远远大得多,比如AMCNC-01雕刻机,那个用来加工PCB、塑料件的平台,人踩上去,也一样运转)。

另外就是,步进电机自身就不是平稳转动的东西。一般说的转速,那个是宏观的,它自身还有个角度步进转速(一般步进电机的震动和噪声,都是由于整体转速和角度步进转速不一致造成的,当角度步进转速低于整体转速时的现象就是失步)。当给步进电机信号时,它会以当前转矩所能达到的最高转速,转到下一个角度位置,然后停止,等待下一个信号。也就是说,从微观上步进电机的转速是有纹波的,细分可以使这个纹波变小,但也不能完全消除。原先做过一个试验,给步进电机加了非常重的飞轮,现象很有趣的。

似乎扯得有点远了,总之我现在用步进电机时只考虑启动时要加多少转矩抵消静摩擦,其他都是硬来。设计上做的过于精细,反而会给自己造成困境。
 楼主| 发表于 2010-11-29 09:02:21 | 显示全部楼层
12楼,我在楼主位的4个步骤以及公式,我认为理论上是可以的,不知道这个认为是不是正确。你如果有时间可以帮着看看是不是真的

正确,如果真的正确,我可以找找计算上的一些错误。如果不正确,大家可以一起讨论以下有什么好的办法。不一定要公式,有个解决

的方向、方法就行。所以我一直说有经验的可以“点化”一下。

13楼,其实我也没在意步进电机运动是的一些微观上的东西,微观上确实是很不干净,很不平滑的。目前有买来的近万元一块的运动控

制器,他的控制效果使步进电机在宏观上看是相当的平稳的。我希望我能用单片机把效果做的和他再接近一点,只是个加减速,我认为

单片机完全能搞定。

再重申一下,我希望在某一段运动过程中,能确定在还剩多少距离的时候开始减速,能使距离走完的时刻电机的速度正好减到起始速

度,用怎样的方法能准确的确定这个距离(我认为这个理论上是完全可以,而且很简单的)。现在疑惑的是用楼主位的计算方法,我

感觉是可以的,但是实际效果不行。请前辈看看那个方法是不是真的可以,问题可能出在哪里。
发表于 2010-11-29 09:41:26 | 显示全部楼层
mark
发表于 2010-11-29 10:31:43 | 显示全部楼层
mark too
发表于 2010-11-29 10:49:31 | 显示全部楼层
LZ的问题不复杂
你可以参考AVR446笔记,那个是用AVR实现的,里面有详细的解释和程序
我已经在实际的项目运用了,但我用的STM32
文档结尾列了几个参考的网址,也很有参考价值。

主要思想根据你运动的步数+加速度+减速度,然后计算出LZ你所说的“加减速点”
发表于 2010-11-29 12:10:54 | 显示全部楼层
我想吐血~~~~~  了

大哥~~~~快从牛角尖哪钻出来


加速度和 减速度   有个斜角线把  想平滑 就分多几级就是罗 更平滑 分更多级


就象 步进电机的 细分哪样  把加减过程 多分几个档  


至于 从什么距离 开始加减速  只要电机的扭力足  硬刹下来都行 (或者就是一个 转速与扭力对应用表 作出这东西 在 应用的环境中要用多少速度或力矩 就控制电机达到要求不就行了)

电机 从快向慢减速  实际上也是一个内部刹车过程   线圈上电后不断电或者延长断电的时间 就已经是一个 阻力增大(刹车)的过程
  减速 就是在偷偷的进村打枪的不要



(原文件名:未命名.JPG)
 楼主| 发表于 2010-11-29 12:29:49 | 显示全部楼层
楼上两位的资料,消化一下,先。
 楼主| 发表于 2010-11-29 12:31:23 | 显示全部楼层
AVR446笔记应该会对我大有帮助,要的就是这样的答案。非常感谢。
发表于 2010-11-29 14:38:37 | 显示全部楼层
mark
 楼主| 发表于 2010-11-29 17:05:46 | 显示全部楼层
18楼的图不错,让我对步进电机的运动性能增加了了解。
发表于 2010-11-29 17:14:33 | 显示全部楼层
学习一下
发表于 2011-4-20 09:32:49 | 显示全部楼层
回复【20楼】bitter rain
avr446笔记应该会对我大有帮助,要的就是这样的答案。非常感谢。
-----------------------------------------------------------------------

弱弱问句,我这在哪里可以找到。
发表于 2011-4-20 10:09:10 | 显示全部楼层
http://www.avrvi.com/index_avr_notes.html
发表于 2011-4-28 11:46:40 | 显示全部楼层
mark
发表于 2011-4-28 13:22:17 | 显示全部楼层
mark
发表于 2011-4-28 13:32:23 | 显示全部楼层
MARK
发表于 2011-5-13 13:37:06 | 显示全部楼层
在看AVR446中,一头雾水,谁看懂了请帮忙讲解一下。期待。。。。
发表于 2011-5-15 23:26:43 | 显示全部楼层

(原文件名:TMC428加减速.jpg)
发表于 2011-5-16 00:24:39 | 显示全部楼层
mark
发表于 2011-5-16 00:38:38 | 显示全部楼层
mark
发表于 2011-5-16 00:51:55 | 显示全部楼层
技术储备
发表于 2011-5-16 08:01:32 | 显示全部楼层
mark
发表于 2011-5-18 08:51:06 | 显示全部楼层
jrcsh 邪恶的小会会
说得比较清楚了。
补充一下:主要搞清楚 三个量的关系 就行  时间 位置 速度
位置 就是 对角速度积分

(原文件名:Catch(05-18-08-48-04).jpg)
发表于 2011-6-27 02:08:31 | 显示全部楼层
T型控制
发表于 2011-7-2 10:25:26 | 显示全部楼层
有专用的控制芯片的,自带加,减速和细分算法
点击此处下载 ourdev_654031QP6M0N.pdf(文件大小:840K) (原文件名:3轴控制芯片Stepdir 输出 .pdf)
发表于 2011-7-6 20:39:07 | 显示全部楼层
mark
发表于 2011-7-11 11:28:04 | 显示全部楼层
其实呢应该很简单,想想单片机能做什么?乘法“不能做”。---不要骂我,因为你会牺牲速度。
那么就做一张表,这张表用来记录定时器的初值。加减速信息放在这张表中。
当然步进电机的固有特性:启动频率,转矩特性等也要考虑在这张表中,最简单的办法反复调试定时器初值。直到达到最满意效果。
发表于 2011-7-11 13:30:32 | 显示全部楼层
正在做这个,加减速用步数来记,这样才能准确,速度和加速度只是对应定时器的不同值,算好装进去就可以,祝成功~
发表于 2011-8-17 15:27:34 | 显示全部楼层
关注,
发表于 2011-8-18 22:42:37 | 显示全部楼层
学习下先
发表于 2011-8-20 17:10:26 | 显示全部楼层
mark
发表于 2011-8-20 20:57:04 | 显示全部楼层
点击此处下载 ourdev_669515TX9I1Y.pdf(文件大小:153K) (原文件名:AVR446.pdf)
找来了上面提到的文档,研究中,正在做这个
发表于 2011-8-20 21:12:27 | 显示全部楼层
建一个数据表,通过查表的方法定速度啊.
发表于 2011-8-20 21:18:28 | 显示全部楼层
回复【37楼】yanghai-M
-----------------------------------------------------------------------

这种芯片多少钱一个啊?
发表于 2011-8-28 13:24:37 | 显示全部楼层
怎么软件实现加减速
发表于 2011-9-3 19:24:04 | 显示全部楼层
mark
发表于 2011-9-19 15:04:21 | 显示全部楼层
都是牛人啊,分析的都非常不错,不过最后还是没搞明白大家最终的分析结果,最近我也一直在搞这个步进电机的加减速问题,就是使用的2楼得方法,不过对于快速加速与快速减速效果不是很理想,现在在网上有这么一片文章,不过我研究了三天也没有研究出所以然,把它分享到这里,希望有哪位高人能够指点迷津:
题目:汽车仪表步进电机控制算法的仿真
http://www.eepw.com.cn/event/emag/20080114.htm
发表于 2011-9-19 16:49:09 | 显示全部楼层
谢谢资料哦,学习一下!
发表于 2011-9-29 15:31:22 | 显示全部楼层
回复【20楼】bitter rain
-----------------------------------------------------------------------

那个步进电机加减速的进行的如何啊?为什么在使用AVR446那个笔记写出来的程序一直跑不快呢?
发表于 2011-10-19 07:13:39 | 显示全部楼层
回复【2楼】jrcsh  邪恶的小会会
-----------------------------------------------------------------------
"
考虑 用距离来作 基准   

通过的距离连续转角 步进是不会变的(相对同一种拍法 (但起停还是会丢半拍))

比如 知  计算出 一个转角  算前进的距离 (这样不管你是快还是慢 通过的距离是不会变的) "


谁能详细解释一下这段,看不太懂,还有 邪恶的小会会的这种方法要用到PID吗
发表于 2011-11-28 21:57:12 | 显示全部楼层
我也是相同的问题困扰着
发表于 2011-11-28 22:38:59 | 显示全部楼层
MARK
发表于 2011-11-29 00:51:31 | 显示全部楼层
目前我正在做加减速控制,不过是用伺服电机做的,还松下的A5
发表于 2012-2-14 16:50:00 | 显示全部楼层
学习了,菜鸟走过停下!
发表于 2012-2-15 20:32:09 | 显示全部楼层
回复【39楼】winkle
其实呢应该很简单,想想单片机能做什么?乘法“不能做”。---不要骂我,因为你会牺牲速度。
那么就做一张表,这张表用来记录定时器的初值。加减速信息放在这张表中。
当然步进电机的固有特性:启动频率,转矩特性等也要考虑在这张表中,最简单的办法反复调试定时器初值。直到达到最满意效果。
-----------------------------------------------------------------------
哈哈,非常对哦,我是直接有代码研究的,但还是有不少地方没有明白,
发表于 2012-2-20 22:42:29 | 显示全部楼层
步进电机的速度是是通过细分表的快进实现还是通过加快发送脉冲速度来实现?
发表于 2012-2-21 01:33:11 | 显示全部楼层
帮顶
发表于 2012-2-23 13:50:24 | 显示全部楼层
mark
发表于 2012-7-3 17:05:39 | 显示全部楼层
学习了,mark一下。
发表于 2012-11-29 15:48:29 | 显示全部楼层
kumosheng 发表于 2011-9-19 15:04
都是牛人啊,分析的都非常不错,不过最后还是没搞明白大家最终的分析结果,最近我也一直在搞这个步进电机的 ...

mark!!!!!!!
发表于 2012-11-29 16:00:39 | 显示全部楼层
向各位高手学习
发表于 2012-12-26 10:18:13 | 显示全部楼层
aladiu 发表于 2012-2-15 20:32
回复【39楼】winkle
其实呢应该很简单,想想单片机能做什么?乘法“不能做”。---不要骂我,因为你会牺牲 ...

你有那张表吗?
那表是乍得到的?
发表于 2012-12-26 10:20:14 | 显示全部楼层
zx2592 发表于 2011-8-20 21:12
建一个数据表,通过查表的方法定速度啊.

很多人都说建一个表,
我不是很明白,这个表是乍建的?里面的数据如何得到?
发表于 2012-12-26 16:24:09 | 显示全部楼层
关于步进电机加减速控制的问题 mark 一下
发表于 2013-1-4 09:51:59 | 显示全部楼层
楼主你好,不知道你现在这个问题是怎么解决的,
刚好我也正遇到这样的问题?
加速停止点,与减速开始点不知如何确定,
期待楼主帮助下,
发表于 2013-1-6 23:42:38 来自手机 | 显示全部楼层
bitter_rain 发表于 2010-11-28 10:05
再补充一点,用的是单片机,16M的时钟。速度来不及,不能一边运动一边计算,所以事先确定好加减速点。 ...

还是程序没有弄好吧,8mhz的8位的单片机都能实现4轴数控系统,难道还实现不了你的一段精度控制吗。
发表于 2013-3-19 20:51:25 | 显示全部楼层
最近也正为步进电机加减速控制烦恼呢,我也来学习下
发表于 2013-5-7 13:34:47 | 显示全部楼层
学习了。。。
发表于 2016-10-9 10:54:31 | 显示全部楼层
好多分享的经验,谢谢
发表于 2017-5-4 01:15:09 来自手机 | 显示全部楼层
好帖!继续学习研究
发表于 2017-5-12 14:25:07 | 显示全部楼层
TRINAMIC 发表于 2010-11-28 19:15
可以使用带有加减速控制的专用集成芯片。
LZ的驱动电流是多大的呢?
一般加速的曲线有直线减速和正弦加速, ...

你是原厂还是经销商呢?
发表于 2017-5-12 15:02:31 | 显示全部楼层
mark 好东西 标记下
发表于 2017-9-13 16:10:26 | 显示全部楼层
不知道 楼主搞定没有,要用到幂级数求和  算出 t  ,角速度  和 位移的关系
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 工信部备案:粤ICP备09047143号 公安备案:4419003011657 )

GMT+8, 2017-12-15 02:47

阿莫电子论坛, 原"中国电子开发网"

© 2004-2016 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表