赞
踩
在智能车转向控制中,车辆的转弯主要取决于d项控制,当车辆由直道入弯时,ER-ERL会变化很大,而ER的变化其实很小,此时主要起作用的是d项,所以入弯主要靠d项,也就是给人一种d项有预测作用的感觉
当车辆在弯道中时,此时ER基本不会发生改变,所以ER-ERL基本为0,此时d项不会起作用,此时主要依靠p项调节,来维持在弯道中的循迹。
当由直道入弯时,ER变大,此时若p项过大,很可能会超调,继而引起震荡,此时d项有抑制超调的作用,但是如果d项过大,反而会加剧抖动,具体原因看卓大大公众号中的一篇推文
d项主要决定了舵机的响应速度
p项主要决定了舵机的打角大小
对于简单的舵机位置式pd控制,应该先整定p项,得到p项的一个大致范围,直到使车抖动,此时再调整d项,减小抖动
遵循原则:
(1)如果直道入弯过于延迟,则需要加大d项
(2)如果车辆在弯道中,轨迹过于外切,则需要加大p项
(3)d项应该是p项的10-20倍
(4)如果参数整定的足够好,那么在弯道中,
d
∗
(
E
R
−
E
R
L
)
d*(ER-ERL)
d∗(ER−ERL)应该很小
智能车的舵机控制,不要求较高的精度,所以是没有i项的,只是单纯的pd控制,目前常用的方向pd控制算法有:
普通PID(最常用,效果也不错)
动态PID
模糊PID(要调整模糊表,对于模糊表的整定是一个大难点)
下面简单说一下之前对于动态pd的一些想法:
(1)对于舵机来说,理论上它的打角幅度是和
E
R
ER
ER成二次函数关系;
(2)当车辆在拐弯时,此时需要更大的P项,但是常用pd是固定P项
所以尝试提出动态p项的方案:
P b a s i c P_{basic} Pbasic为一个基础P项,在基础P项基础上引入一点动态变化 E R ∗ E R ∗ K ER*ER*K ER∗ER∗K,K项要根据实际调整,同时要对该P项的动态变化部分做一个限幅,防止过大。
P b a s i c P_{basic} Pbasic为一个基础P项,在基础P项基础上引入一点动态变化 A B S ( E R ) ∗ K ABS(ER)*K ABS(ER)∗K,K项要根据实际调整,同时要对该P项的动态变化部分做一个限幅,防止过大。
去掉基础P项,但是实际效果并不好,该公式会让车辆获得较好的拐弯性能,但是弯道进入直道过程,会使车辆更加振荡,难以稳定,造成直道摆头现象。
目前的K项是我们根据实际情况进行人为调整的,但是实际上该K项可以与当前车辆的真实速度相关联,根据不同速度给定不同K值。
说明:方案1和方案2仍然是以普通PD控制为主,动态项的主要作用是使弯道拐弯更加圆滑、内切,特别是面对U型弯道时,原来的基础P项可能会使车辆丢线,但是此时加一点点动态项就可以完美过弯,所以不应该把动态项作为主要输出。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。