单片机超声波单浆定高总结

单片机超声波单浆定高原理:通过超声波获取高度,设定目标高度,通过PID控制算法调节PWM输出的大小从而达到快速稳定的定高。
简单介绍一下PID控制算法,P比例控制,I积分控制,D微分控制。我在此次调节PID的各个参数P=11.5,I=0.2,D=1.9,设定目标高度32cm。
PID_H = P_UHError_H + I_UHError_H_sum + D_UH*Error_H_dif + 345(初始设定值); //外环PID输出。比例P的主要作用是增加响应速度和受到外界干扰时的回调速度,P过大可能会超过目标高度且受到外界干扰时回调不到目标高度,P过小时达不到目标高度。I主要作用消除静态误差,使得准确在目标高度。

if   (Altitude > 31 && Altitude < 33)Error_H_sum += Error_H;		//高度低于33CM时关闭积分,大于31CM时误差累计

else			 Error_H_sum = 0;				//积分清零



if(Error_H_sum > 200)	   Error_H_sum = 200;	//积分限幅

else if(Error_H_sum < -30)Error_H_sum = -30;

I过大会在目标高度上下跳动。D的作用反映系统偏差信号的变化率,具有预见性,增加预判,过大会震荡。
PID控制算法调节参数对应的三个字:快、准、稳。在开始调参数时,我选择了"定二调一"的方法,然后按此方法调节了两天,并未调好,差点还弄得自己崩溃。看到自己这样也不是个办法,思考许久和查看一些资料,对PID有了多一点点的了解,在PID中P是大调,而I和D是微调,至此我选择了先让I和D置零,调节P使其在目标高度上下,并简单测试一下回调速度,调好保持不变,然后再去给I一个小于1的值并保持不变,最后调节D的值。经过这些改良,在第三天晚上用了几个小时,调节好了参数,并能保持稳定在目标高度。

猜你喜欢

转载自blog.csdn.net/qq_45214801/article/details/98513795