Liccsu 在 一个简易步进电机变速算法 中发帖
速度曲线函数为 f(t)=ν1−ν01+e−16tT+8+ν0f(t)=\cfrac{\nu_1-\nu_0}{1+e^{\cfrac{-16t}{T}+8}}+\nu_0,由 f(x)=11+e−xf(x)=\cfrac{1}{1+e^{-x}}变换而来,因为电机由PWM驱动,改变转速就是改变PWM的频率,所以函数中的 ν0\nu_0为初速度对应的PWM频率, ν1\nu_1为末速度对应的PWM频率,而 TT为加速时长(单位为毫秒),即从 ν0\nu_0加速到 ν1\nu_1所花费的时间。例如,从 100Hz100Hz加速到 1000Hz1000Hz,加速时长设为 1000ms1000ms,所得频率变化曲线如下图所示: [image]
" width=“100%” height=“100%”> 在代码中根据这条曲线改变PWM的频率即可实现电机的平滑变速。