伺服控制的加減速過程

在日益完善的伺服系統控制中,只要確認頻率和脈衝數,就可以輸出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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章