网站设计公司网,加上强机关网站建设管理的通知,广告联盟cpc,推广赚钱吗1 PID介绍
PID#xff08;Proportional Integral Derivative#xff09;控制系统。其实质是根据输入的偏差值#xff0c;按比例、积分、微分的函数关系进行运算#xff0c;运算结果用以输出进行控制。它是在长期的工程实践中总结出来的一套控制方法#xff0c;实际运行经…1 PID介绍
PIDProportional Integral Derivative控制系统。其实质是根据输入的偏差值按比例、积分、微分的函数关系进行运算运算结果用以输出进行控制。它是在长期的工程实践中总结出来的一套控制方法实际运行经验和理论分析都表明对许多工业过程进行控制时这种方式都能得到比较满意的效果。 u输出信号e: 系统误差信号。Kp比例系数Ki积分系数Kd微分系数。 2 腿轮PID整体思路
下面红色箭头形成闭环控制串联PID保持平衡并有速度。当静态平衡时就只需要平衡PID无需无刷电机和速度PID。 3 旋转PID
只用了比例控制.
Turn.pidoutTurn.Kp*Turn.err;
4 左右轮速度PID
Avelocity.integral Avelocity.err*0.01;
Avelocity.derivative (Avelocity.err-Avelocity.err_last)/0.01;
Avelocity.pidout Avelocity.Kp*Avelocity.err Avelocity.Ki*Avelocity.integral Avelocity.Kd*Avelocity.derivative;
5 左右平衡PID
Abalance.err Xangle-Target;
Abalance.integral Abalance.err*0.01;
Abalance.derivative gy.y //读取陀螺仪的
Abalance.pidout Abalance.Kp*Abalance.errAbalance.Ki*Abalance.integralAbalance.Kd*Abalance.derivative; 6 高度调节PID
这个是单独pid后上面的pid关系不大。通过调节舵机控制高度。
用了比例系数、积分系数。Kd0可以没用。
float p Height.Kp*(Height.err-Height.err_last);
float i Height.Ki*Height.err;
float d Height.Kd*(Height.err-2*Height.err_lastHeight.err_last1); Height.pidout Height.pidoutpid;
7 滤波
需要对PID输入的参数滤波保持机器人稳定如输入的速度、油门等。 8 参考
轮腿机器人Hyun开源地址GitHub - HuGuoXuang/Hyun: 轮腿机器人主控esp32 ,陀螺仪MPU6050PM3510无刷电机和simplefoc驱动器。