过度转向是一种不安全的情况,即车辆在转弯时后轮失去抓地力(图1)。这种情况可能是由轮胎磨损、路面湿滑、转弯太快、转弯时突然刹车或以上因素综合造成的。
现代稳定性控制系统旨在在检测到过量的速度时自动采取纠正措施。理论上,这种系统可以通过使用基于第一原理的数学模型来识别过流状态。例如,当来自车载传感器的测量超过模型中的参数的旧阈值时,系统确定车辆是过度的。然而,在实践中,由于所涉及的许多因素的相互作用,这种方法已经证明难以实施。在冰冷的道路上具有欠溢的轮胎的汽车可能需要比在干燥表面上正确充气轮胎运行的相同汽车的阈值不同的阈值。
在宝马,我们正在探索一种机器学习方法来检测过度转向。在MATLAB工作®,我们开发了一个监督机器学习模型作为概念证明。尽管以前有机器学习的经验很少,但在短短三周内,我们完成了一个工作的ECU原型,能够检测超出98%的精度。
收集数据和提取特征
我们开始通过以前,期间和过境的车辆收集现实世界数据。在专业驾驶员的帮助下,我们在法国麦拉马斯的BMW证明场地进行了BMW M4的实时驾驶测试(图2)。
在测试中,我们捕获了在过度转向检测算法中常用的信号:车辆的前进加速度、横向加速度、转向角和横摆角速度。此外,我们记录了司机对过度转向的看法:当司机表示汽车过度转向时,我的同事作为乘客坐在车里,按下了笔记本电脑上的一个按钮。当司机示意汽车恢复正常驾驶时,她松开了按钮。这些按键创建了我们需要训练监督学习模型的“真相”标签。总共,我们在43分钟的记录数据中捕获了大约25.9万个数据点。
回到我们的慕尼黑办公室,我们加载了我们收集到Matlab的数据,并在统计和机器学习工具箱™中使用了分类学习者应用程序,以使用各种分类器训练机器学习模型。由此原始数据培训的模型产生的结果并不出色 - 准确度在75%和80%之间。为了实现更准确的结果,我们清理并减少了原始数据。首先,我们应用过滤器以减少信号数据上的噪声(图3)。
接下来,我们使用峰值分析来识别滤波后输入信号上的峰值(局部最大值)(图4)。
评估机器学习方法
在过滤和减少收集的数据后,我们可以更好地评估监督机器学习方法。使用Classification Learner应用程序,我们尝试了k近邻(KNN)分类器、支持向量机(SVMs)、二次判别分析和决策树。金宝app我们还使用了app来查看通过主成分分析(PCA)来转换特征的效果,这有助于防止过拟合。
我们评估的分类器产生的结果总结在表1中。所有分类器都在识别过度界面时表现良好,其中三个产生了高于98%的真正阳性率。决定因素是真正的负税率:分类器能够确定车辆是否何时确定不过流。在这里,决策树优于其他分类器,具有近96%的真正负率。
真正的阳性(%) | 真否定(%) | 假阳性(%) | 假阴性(%) | |
PCA的k近邻 |
94.74 | 90.35 | 5.26 | 9.65 |
金宝app支持矢量机器 | 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的代码编译在BMW 5系列轿车中。这次,我们在靠近Aschheim附近的BMW设施进行了测试,靠近我们的办公室。当我开车时,我的同事收集了数据,当我指出汽车已经过流时,记录精确时间。
该分类器在ECU上实时运行,其性能令人惊讶地好,准确率约为95%。在进行测试时,我们不知道会发生什么,因为我们使用的是一辆不同的车(宝马5系而不是M4),一名不同的车手,一条不同的赛道。仔细观察数据就会发现,大部分模型与驾驶员感知的过度转向之间的不匹配都发生在过度转向状态的开始和结束阶段。这种不匹配是可以理解的;即使是驾驶员也很难确定何时开始和停止过度转向。
已成功开发了用于过流检测的机器学习模型,并在原型ECU上部署它,我们现在设想了在BMW的机器学习中的许多其他潜在应用。收集的大量数据超过几十年来可供我们使用,今天,单一的车辆可以在一天内产生一个测量数据的大字节。机器学习提供了开发使用可用数据来了解驾驶员行为的软件并提高驾驶体验的机会。