PID运动控制
PID运动控制
- 编码电机测速原理
- 如何得到单位时间内的脉冲数
视频地址
编码电机测速原理
运行过程:
A相比B相超前了1/4周期
-
若A在上升沿
- 此时B相在高电平,则为正转
- 此时B相在低电平,则为反转
如何得到单位时间内的脉冲数
#include <TimerOne.h>void setup() {Timer1.initialize(50000); //每隔50000微秒调用一次中断函数Timer1.attachInterrupt(timerIsr);
}void timerIsr(){rpm = count/period*60/edges_per_cycle/reduction_ratio;//rmp:转/分,点击前端真实转速//count:50ms内的信号边沿数。如信号A的上升沿数//period:调用中断函数的时间间隔,此处是0.05s//edges_per_cycle:电机后端每圈霍尔脉冲数,理论值为13(根据电机实际情况而定)//reduction_ratio:电机减速比,理论值为30(根据电机实际情况而定)
}
PID算法
PID算法–位移式
PID算法–增量式
PID调参
先是比例后积分,最后再把微分加
曲线震荡很频繁,比例度盘要放大
曲线漂浮绕弯大,比例度盘往小扳
曲线偏离回复慢,积分时间往下降
曲线波动周期长,积分时间再加长