过度转向是一种不安全的情况,即车辆在转弯时后轮失去抓地力(图1)。它可能是由轮胎磨损、路面湿滑、转弯过快、转弯时突然刹车或这些因素的组合造成的。
现代稳定控制系统的设计是自动采取纠正行动时,过度转向的检测。理论上,这种系统可以通过使用基于第一性原理的数学模型来识别过度转向状态。例如,当车载传感器的测量值超过模型中参数的设定阈值时,系统确定汽车转向过度。然而,在实践中,由于涉及的许多因素的相互作用,这种方法被证明是难以实现的。轮胎充气不足的汽车在结冰的路面上行驶,与在干燥路面上使用适当充气的同一辆车相比,需要的阈值可能有很大的不同。
在宝马,我们正在探索一种机器学习方法来检测转向过度。在MATLAB工作®,我们开发了一个监督机器学习模型作为概念的证明。尽管我们之前很少有机器学习的经验,但仅仅在三周内,我们就完成了一个工作的ECU原型,它能够以98%的准确率检测转向过度。
收集数据,提取特征
我们从一辆车在过度转向之前、期间和之后的真实数据开始。在一位专业司机的帮助下,我们在法国米拉马斯的宝马试验场驾驶一辆宝马M4进行了现场驾驶测试(图2)。
在测试过程中,我们捕获了过度转向检测算法中常用的信号:车辆的前加速、横向加速、转向角度和偏航率。此外,我们还记录了司机对过度转向的感知:当司机表示汽车过度转向时,我的同事作为乘客坐在车内,按下了她笔记本电脑上的一个按钮。当司机表示汽车已经恢复正常驾驶时,她松开了按钮。这些按钮创建了ground-truth标签,我们需要训练一个监督学习模型。在43分钟的记录数据中,我们总共捕获了大约259,000个数据点。
回到我们慕尼黑的办公室,我们将收集到的数据加载到MATLAB中,并使用统计和机器学习工具箱™中的分类学习应用程序来使用各种分类器训练机器学习模型。根据这些原始数据进行训练的模型得出的结果并不突出——准确率在75%到80%之间。为了得到更准确的结果,我们对原始数据进行了清理和精简。首先,我们应用滤波器来减少信号数据上的噪声(图3)。
接下来,我们使用峰值分析来识别过滤后的输入信号的峰值(局部最大值)(图4)。
评估机器学习方法
在过滤和减少收集的数据后,我们处于一个更好的位置来评估监督机器学习方法。利用分类学习应用程序,我们尝试了k-最近邻(KNN)分类器、支持向量机(SVMs)、二次判别分析和决策树。万博1manbetx我们还使用app来观察主成分分析(PCA)变换特征的效果,这有助于防止过拟合。
我们评估的分类器产生的结果汇总在表1中。所有的分类器在过度转向的识别中都有很好的表现,其中3种的真实阳性率都在98%以上。决定因素是真正的负利率:分类器能够多准确地确定车辆什么时候出现负利率不转向过度。在这里,决策树优于其他分类器,其真实负率几乎达到96%。
真阳性(%) | 真阴性(%) | 假阳性(%) | 假阴性(%) | |
与主成分分析最接近的k近邻 |
94.74 | 90.35 | 5.26 | 9.65 |
万博1manbetx支持向量机 | 98.92 | 73.07 | 1.08 | 26.93 |
二次判别分析 | 98.83 | 82.73 | 1.17 | 17.27 |
决策树 | 98.16 | 95.86 | 1.84 | 4.14 |
为车内测试生成代码
由决策树产生的结果是有希望的,但是真正的测试将是分类器在真实汽车的ECU上的表现如何。我们使用MATLAB Coder™从模型中生成代码,并为我们的目标ECU编译代码,该ECU安装在宝马5系轿车中。这次,我们在靠近我们办公室的Aschheim附近的宝马工厂自己进行了测试。我一边开车,我的同事一边收集数据,记录下我指出汽车转向过度的准确时间。
该分类器在ECU上实时运行,准确率达到95%左右。在进行测试时,我们不知道会发生什么,因为我们使用的是一辆不同的车(宝马5系,而不是M4)、不同的车手和不同的赛道。对数据的进一步观察显示,模型和驾驶员感知的过度转向之间的大部分不匹配发生在过度转向状态的开始和结束。这种不匹配是可以理解的;即使是司机也很难准确判断转向过度何时开始和停止。
在成功开发了用于过度转向检测的机器学习模型并将其部署在原型ECU上之后,我们现在正在预想宝马机器学习的许多其他潜在应用。几十年来收集的大量数据对我们来说唾手可得,而今天,一辆车就能在一天内产生1tb的测量数据。机器学习为开发软件提供了机会,利用可用数据了解司机的行为并改善驾驶体验。