小乌龟PID控制

rqt_plot使用

1
rosrun rqt_plot rqt_plot

运行plot可视化界面。

设置侦听的topic地址,接收绘制。

小乌龟的PID实现

P控制逻辑

1
2
3
4
5
6
7
//计算当前距离目标点的距离
double linearDistance = calcDistance(srcX, srcY, distX, distY);
//计算剩下了的平均速度
double linearTargetVel = linearDistance / time;

//计算速度误差
double linearError = linearTargetVel - linearVel;

Kp值为0.1时,速度的趋势

Kp值为0.4时,速度的趋势

Kp值为0.7时,速度的趋势

I控制逻辑

1
linearTotalError += linearError;

D控制逻辑

1
2
double linearDeltaError = linearError - linearLastError;
linearLastError = linearError;

PID口诀

参数整定找最佳,从小到[大顺序查 先是比例后积分,最后再把微分加 曲线振荡很频繁,比例度盘要放大 曲线漂浮绕大湾,比例度盘往小扳 曲线偏离回复慢,积分时间往下降 曲线波动周期长,积分时间再加长 曲线振荡频率快,先把微分降下来 动差大来波动慢。微分时间应加长 理想曲线两个波,前高后低4比1 一看二调多分析,调节质量不会低