如果你确实要用PID,下面是建议:
1,直线运动,两个输出是一样的,所以公用一个函数,(若有直线纠正的话,你懂怎么办的)。由于你的电机还有传感器,小车的速度实时性不会很好,当然,要看你的控制精度了。直线行走,控制速度的设置(若要恒速的话):首先,ID设为0,P从0开始快速加大,直到得或喊到满意的加速的(要快,因为你用的增量式本身就有I的效果)。在增量式PID里,I稍微小点没事,D的系数大概等于2I就行。若不需要恒速:PID就不必要了,直接输出占空比。
2,转弯。若是弯道直径小,转弯速度快,首先明确告诉你,不能用上面的PID输出了,这样你的小车坑定不知道漂移到哪里去了,所以另外需要一个函数控制输出。建议这样:判断要转弯了,靠弯道的轮子要快速变为速度0,另一个轮子必须快速响应,这样PID参数只有P起了主要作用,所以慢慢调P,由0增大,满意为止旅返。
另外的建议: 不用PID,用模糊控制算法,响应速度回提高很多。
希望有用、
位置闭环控制就是根据编码器的脉冲累加测量电机的位置信息,得到控制偏差,然后通过对偏差的比例、微分、积分进行控制,使得偏差趋于零
c语言的实现
P用于提高相应速度,I用于减小静差,D用中桥于抑制震荡
速度闭环控制是根据单位时间获取的脉冲数测量电机速度信息,对目标值进行比较
理论分析
直立环使用PD控制
在调试直立环,要在定时器中断服务函数屏蔽速度换和转向环
首先估计kp的取值范围,陪我们设置7200代表占空比百分百
设定kp值为7200,那么小车在10°就会满转
确定参数的镇培含御笑原则是:kp一直增加,出现大幅度低频抖动
kd一直增加,直至出现高频抖动
确定了pd的最大数,×0.6就是需要的参数
我们对速度进行低通滤波
一般可以把ki的值设置为kp/200
kp最大值=7200/(160*50%)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)