用户故事

德尔福研发汽车主动安全系统雷达传感器对准算法

挑战

在四周内交付量产汽车雷达传感器对准算法

解决方案

使用MATLAB开发算法,并使用MATLAB编码器生成生产C代码

结果

  • 为该算法生成的C代码与手写的C代码一样高效
  • 开发时间减半
  • 算法更改很容易验证和编码在几秒钟内

“MATLAB是我最喜欢的工具,因为它加速了算法的设计和改进。我可以在一个地方完成数据分析、算法开发、算法可视化和模拟,然后生成可靠、高效、易于软件工程师集成到更大系统中的C代码。”

德尔福良马
德尔福公司的多模式电子扫描雷达(ESR),使用单一雷达在中距离提供大范围覆盖,在远距离提供高分辨率覆盖。图片由德尔菲提供。

汽车雷达是一项使能技术,可用于碰撞缓解、盲点警报、自适应巡航控制和许多其他主动安全功能。雷达系统提供车辆和其他物体的距离、距离速率和方位信息数据。这些数据的准确性取决于雷达传感器的精确对准。

Delphi使用MATLAB®和MATLAB Coder™加速设计,仿真和实现生产雷达传感器校准算法。

德尔福系统工程师马亮表示:“借助MATLAB,我们可以在一个环境中分析数据并设计算法,因此我们可以快速尝试新的想法,然后通过绘图和统计分析对它们进行评估。”“一旦我们验证了算法,我们就会使用MATLAB编码器生成与手写代码一样高效的生产C代码。”

挑战

在车辆行驶过程中,雷达传感器对准算法每秒执行40次以上。在1毫秒内,它必须根据雷达传感器提供的数据、车辆速度、传感器在车辆上的位置及其指向角度计算出不对准角。

在过去,Delphi系统工程师将MATLAB原型算法交给软件工程师用c语言实现。这种方法有几个缺点。当软件工程师的工作量很大的时候,他们经常几个星期都无法开始C实现的工作。由于系统工程师和离岸软件工程师被分隔在几个时区,因此通信是具有挑战性的。软件工程师有时会误解原型算法,并交付无法满足设计和性能要求的C代码。

由于对主动安全系统的需求很高,德尔福只有四周的时间来改进新雷达产品的雷达传感器校准算法。s manbetx 845他们需要一种方法,使系统工程师能够交付他们自己的产品C代码。

解决方案

Delphi采用MATLAB和MATLAB Coder来开发和实现雷达传感器对准算法。

梁用MATLAB分析了从一辆真实车辆的道路测试中捕获的传感器数据。在大量的测试数据和强大的MATLAB内置函数的帮助下,Liang实现并验证了一种雷达传感器对中算法,该算法根据原始雷达探测和主车辆速度计算传感器不对中角度。该算法计算线性方程组的最小二乘解。根据最小二乘解的残差估计计算角度的精度。

为了验证该算法,Liang在MATLAB中使用记录的传感器和车辆数据进行了仿真。然后,他使用MATLAB脚本对大量车辆数据进行处理,验证算法计算出的传感器不对准角的准确性。

他使用MATLAB编码器从算法生成C代码。他通过调用MATLAB测试代码中的一个MEX函数来验证C代码,并将生成的代码的结果与原始MATLAB算法的结果进行比较,在几分钟内完成每次迭代。

最初,在ARM10处理器上运行的生成的C代码在超过3毫秒的时间内计算了不对齐角。Liang在MATLAB代码中去除冗余逻辑,组合for循环,并进行其他优化,直到生成的代码在不到1毫秒的时间内完成计算,满足吞吐量要求。

梁按时将改进算法的验证C代码交付给软件集成团队,以便集成到生产系统中。

德尔福已经将这种雷达传感器对准算法应用于多家原始设备制造商生产车辆的主动安全系统中,没有发现任何缺陷。

Liang和他的同事使用MATLAB和MATLAB Coder来设计和实现其他几种生产算法,包括目标选择算法,该算法使用融合跟踪信息、相机视觉对象和主机车辆信息来为oem的主动安全功能选择适当的目标。

结果

  • 为该算法生成的C代码与手写的C代码一样高效.梁说:“我们用MATLAB编码器生成的C代码运行速度与早期手工编码的算法实现一样快。”生成的代码也很容易集成并且没有缺陷——我们从不修改它。”

  • 开发时间减半.梁说:“我花了三周时间开发出这个算法,只剩下一周的时间用C语言实现并验证它。”“MATLAB Coder使我能够按时完成项目。如果由软件工程师手工编码,则最多需要4周的时间。”

  • 算法更改很容易验证和编码在几秒钟内.“使用我们的传统方法,软件工程师可能需要一周的时间来实现我对算法所做的更改,”梁说。“使用MATLAB和MATLAB Coder,我可以在不到一分钟的时间内自己生成生产C代码,使我能够快速评估新想法。”