ACC控制理解2

     接着上文的描述来介绍自适应巡航,通俗一点的解释就是自车跟着目标车稳定的行驶,至于保持多少距离有很多算法,主流的就是期望时距(根据当前车速)乘以参考速度加上一段距离。这地方其实给我带来了很多的困扰,下面介绍怎么去描述这个简单模型。

1. 使用matlab中自带的acc学习模型,这样就避免了自己去写脚本繁琐,当然原理是要理解的,可以参考相关的MPC文档,搭建模型如下:

 还是简单的模型,可以看到第二排图像,自车和前车的距离逐渐趋于稳定,即使前车以正弦不合理的加速度在波动。观察第一排图像,自车Vego速度在0以下(倒车现象)。

 

 2. 上述模型其实和第一篇差不多,或许可以用PID来搭建呢,当然不一定是PID,但是使用MPC的原因就是为了优化,,所以有对未来的预测在里面,假设我们用PID,考虑到时滞,是不是要用预测时间后的变量去设定么?所以引出一个变量tp 。

2.1.关于这个预测时间我尝试着用一种的方式去描述,定义车辆的相对距离等于希望距离+额外距离,在follow模式下,车辆相对距离除以车辆相对速度其实就是车辆碰撞时间,我们希望在这个预测时间后,车辆的距离为希望距离,也就是自车其实要走额外距离。

      那如果在当下的时刻,自车已经和前车保持希望距离,那么只需要这个预测时间吗,很显然不要,车辆维持现有状态就行。在平面上建立坐标系,横轴为相对速度,纵轴为相对距离,考虑到量纲一致性,横轴为相对速度除以自身速度,纵轴为相对距离除以希望距离(因为希望距离是要参,所以坐标轴要整体向上平移1),定义单位圆的半径为预测时间系数。

2.2. 拿到了预测时间,其实根据前车的加速度,可以计算出前车这段时间跑了多远,对于前车拿来的加速度的数据有各种干扰,参考如下,可以在matlab自己构建,加入噪声实测效果

下一篇介绍后续

 

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ACC(Adaptive Cruise Control)控制算法是一种用于自动驾驶汽车的智能控制算法,旨在实现车辆之间的自动跟车功能。在ACC系统中,车辆距离前车的距离和相对速度是最重要的输入参数。根据这些参数,ACC系统可以自动控制车辆的加减速,以保持安全的车距和流畅的驾驶体验。 下面是一个基于Python实现的ACC控制算法示例: ``` import time class ACC(object): def __init__(self, set_speed, acc_gain, dec_gain, min_gap, max_gap): self.set_speed = set_speed # 设定速度 self.acc_gain = acc_gain # 加速度增益 self.dec_gain = dec_gain # 减速度增益 self.min_gap = min_gap # 最小距离 self.max_gap = max_gap # 最大距离 self.current_gap = 0 # 当前距离 self.current_speed = 0 # 当前车速 def update(self, current_speed, current_gap): self.current_speed = current_speed self.current_gap = current_gap if self.current_gap <= self.min_gap: return -self.dec_gain * (self.set_speed - self.current_speed) elif self.current_gap >= self.max_gap: return self.acc_gain * (self.set_speed - self.current_speed) else: return self.acc_gain * (self.set_speed - self.current_speed) - self.dec_gain * (self.current_gap - self.min_gap) # 测试 if __name__ == '__main__': acc = ACC(set_speed=60, acc_gain=0.2, dec_gain=0.1, min_gap=10, max_gap=100) current_speed = 50 current_gap = 20 while True: control_signal = acc.update(current_speed, current_gap) current_speed += control_signal print('Current speed:', current_speed) time.sleep(1) ``` 在该示例中,ACC类包含了一些关键参数,如设定速度(set_speed)、加速度增益(acc_gain)、减速度增益(dec_gain)、最小距离(min_gap)和最大距离(max_gap)。在update方法中,该类根据当前速度和距离计算出控制信号,控制信号可以用来控制车辆的加减速。在测试代码中,我们可以看到ACC控制算法的实时效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值