用户故事

Delphi开发了汽车主动安全系统雷达传感器对准算法

挑战

4周内交付一份汽车雷达传感器校准算法

解决方案

使用MATLAB开发算法,并使用MATLAB Coder生成产品C代码

结果

  • 对于这个算法,生成的C代码和手写的C代码一样高效
  • 开发时间减半
  • 算法更改容易验证和编码在秒

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

梁妈妈,德尔福
德尔福的多模式电子扫描雷达(ESR),它使用一个雷达在中程提供广泛的覆盖,在远程提供高分辨率覆盖。图像由Delphi提供。

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

德尔福使用MATLAB®和MATLAB Coder™加速设计、仿真和实现一个生产雷达传感器对准算法。

“有了MATLAB,我们可以在一个环境中分析数据和设计算法,所以我们可以快速尝试新的想法,然后用图表和统计分析来评估它们,”Delphi系统工程师Liang Ma说。“一旦我们验证了算法,我们就会使用MATLAB Coder生成与手写代码一样高效的C代码。”

挑战

在车辆运行时,雷达传感器对准算法每秒执行40次以上。在1毫秒内,它必须根据雷达传感器提供的数据,以及车辆速度、传感器在车辆上的位置和指向角度计算偏差角度。

过去,Delphi系统工程师将MATLAB原型算法交给软件工程师用c语言实现。这种方法有几个缺点。当软件工程师的工作量很大的时候,他们通常要数周的时间才能开始C实现的工作。由于系统工程师和海上软件工程师被几个时区分开,所以通信很有挑战性。软件工程师有时会误解原型算法,并交付无法满足设计和性能要求的C代码。

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

解决方案

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

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

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

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

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

梁如期将经过验证的改进算法的C代码交付给软件集成团队,用于集成到生产系统中。

德尔福已经在多家oem生产车辆的主动安全系统中使用了这种雷达传感器对准算法,没有报告存在缺陷。

Liang和他的同事使用MATLAB和MATLAB Coder设计并实现了其他几种生产算法,包括目标选择算法,该算法使用融合轨迹信息、摄像机视觉对象和宿主车辆信息,为oem的主动安全特性选择合适的目标。

结果

  • 对于这个算法,生成的C代码和手写的C代码一样高效.Liang说:“我们用MATLAB Coder生成的C代码运行速度和之前手工编码的算法一样快。”“生成的代码也很容易集成,而且没有缺陷——我们从不修改它。”

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

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

下载188bet金宝搏产品使用

展示你的成功

加入客户参考计划