伺服控制的加减速过程

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

 

常见的加减速方式

1. 直线加速

伺服控制的加减速过程_第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曲线加速

 伺服控制的加减速过程_第2张图片

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

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

你可能感兴趣的:(电气,单片机)