ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

伺服系统的加减速过程

2020-03-03 11:08:19  阅读:919  来源: 互联网

标签:定时器 脉冲 伺服系统 减速 Tim 频率 过程 加速


在日益完善的伺服系统控制中,只要确认频率和脉冲数,就可以输出PWM了,但是如果短时间输入频率过高,就会因伺服电机来不及达到它所能及的最高转速,产生报警,而且如果加速度过冲产生还会影响工艺,所以在伺服系统中除了关注输入的频率脉冲数还有一项就是加减速过程

 

常见的加减速方式

1. 直线加速

根据该图可以看到非常直观的加减速过程(实际使用中发现减速应该要更长),确定加减速时间常量,再解出一次方程

y=kx+b

 

程序方面一个定时器和一个变量就可以搞定。

但是如果MCU性能有限,或者就是单纯想省掉这个定时器,就需要一个相对复杂的过程。首先你要了解到,Tim一个脉冲(秒)=1(秒)/f(频率),你唯一确定的是加速时间常数(Tim加速),那么后面考虑的递增变量应该是时间单位,频率的递加那么就是时间的递减,就需要求解Tim频率=1/(f起始频率)+1/(f+1)+1/(f+2)...+1/(f结束频率),在通过 d=Tim频率/Tim加速 将加减速的时间拉长,得到d,每次将d减到脉冲定时器的计数器中即可。

写完上面的代码发现几乎没有节省什么性能而且不平稳,而且还考虑到是否频率越高加速时间也要随着拉长,所以将确定常量加速时间改为加速脉冲数量,递增也就变成频率,事先计算好由加减速时间常量得到的最低和最高加减速脉冲数量,d=脉冲数/频率,每次将d加到之前的频率再转换给脉冲定时器的计数器中即可。

 

2. S曲线加速

 

比直线更好的加速曲线,符合了伺服电机扭矩提升的特性,计算公式

y=1/(1+exp(-x))

 

程序方面因其计算的复杂,MCU性能不够的话每次去调用算式去算使得脉冲间隔时间有些大,就事先算好频率放到数组里再代入到对应脉冲的当中。

 

宏观加减速

上面说的都是一段脉冲的加减速过程,复杂的比如cnc连续多段的,每一段都上升下降就太浪费,连续的运动应该有一个频率的承接,比如第一段F500,第二段F1000,过程应该是0 ------- F500 --------- F1000,也因为伺服电机的转矩特性,这样转矩也不会丢掉。

 

参考:

https://wenku.baidu.com/view/690b5e7b02020740be1e9ba6.html

https://blog.csdn.net/weixin_42399752/article/details/85245942

才华低到没朋友 发布了18 篇原创文章 · 获赞 7 · 访问量 9万+ 私信 关注

标签:定时器,脉冲,伺服系统,减速,Tim,频率,过程,加速
来源: https://blog.csdn.net/heiheiwocao/article/details/104625504

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有