在 Timeserie s应用程序中自定义布局。 福特汽车能源管理工程全球团队的工程师负责评估福特汽车的排放、燃油经济性和性能。在硬件上进行驾驶循环测试之前,他们使用建模和仿真来执行设计权衡、优化参数和预测性能。当硬件可用时,他们将硬件测试结果与仿真结果进行比较。
在过去,此过程是在电子表格或临时脚本中完成的,这些电子表格或脚本因程序而异。 为了提高驾驶循环测试结果分析的一致性,福特工程师开发了 CycleTool。CycleTool 使团队能够评估系统性能、生成报告、跟踪来自多个测试设施的数据,并确定仿真结果和硬件测试结果之间差异的根本原因。它包括 60000 行 MATLAB 代码,使用结合了自动化测试和持续集成的现代软件开发方法进行构建。
“当我们开始开发 CycleTool 时,MATLAB 使一切工作都能够在一个环境中完成,因为福特的大多数模型是在 MATLAB 或 Simulink 中开发的,”福特的一名 CAE 工程师说。“我们从小处着手,使用 MATLAB 面向对象的功能来管理工具随时间推移的增长情况。” 挑战 在过去,每个福特团队都使用自己的电子表格或自定义脚本来分析测试结果。这种方法会导致不一致和重复工作,而且使团队难以共享新功能或方法。福特希望通过基于单一工具的标准化来消除这些缺点。 为了促进该工具的推广,工程师需要在初始版本中增加数据库支持和易于使用的界面。此外,该工具的持续开发过程需要包含版本控制、缺陷跟踪和自动化测试。
“我们的工程团队在 IT 领域没有丰富的经验,IT 团队在工程领域也没有丰富的经验。然而,帮助我们的 MathWorks 顾问在这两个领域都很擅长。这种综合能力对于将我们的需求转化为功能至关重要。”福特公司 CAE 工程师表示。
解决方案
福特工程师在 MATLAB 中开发了 CycleTool 的早期版本,并与 MathWorks 顾问合作建立了完成开发和分发的工作流。
工程师使用 MATLAB 和 Statistics and Machine Learning Toolbox 来实现统计和分析方法,对测试结果进行去噪、归一化和分析,并将它们与仿真结果进行比较。
借助 MATLAB 面向对象的功能和“模型-视图-控制器”设计模式,该团队开发了界面,用于简化 CycleTool 的配置以及标准图表和报告的创建。为了使位于不同地点的动力总成团队和测试团队能够在 CycleTool 中共享结果,工程师使用了 Database Toolbox 增加了在中央数据库中存储数据的支持。
在使用 MATLAB 单元测试框架和模拟框架创建用于验证 CycleTool 组件的自动化测试后,该团队实现了数据库测试框架,该框架使用 Docker 容器来启动和填充数据库实例。
他们将自动化测试集成到一个完整的软件开发工作流中,该工作流包含用于缺陷跟踪和敏捷项目管理的 Jira、用于版本控制的 GitHub 和 用于持续集成的 Jenkins。
现在,英国、德国、澳大利亚、墨西哥、美国和中国的福特团队都在使用 CycleTool。开发团队仍在扩展该工具,以便与福特全球数据库和企业系统集成。
在 Summary 应用程序中梳理数据以找出趋势。
结果
专业的支持加速了开发。
“与我们团队合作的 MathWorks 工程师显然处于行业发展实践的前沿领域,”福特的一位技术实施专家说。“他们提供的专业且及时的建议使我们能够更快地构建 CycleTool 并改进开发流程,这比我们尝试自己完成所有工作要快得多。”
一次性脚本转换成广泛使用的软件。
“当工具使用者与工具开发者不同时,该工具必须被视为真正的产品,”一位技术实施专家如是说。“MATLAB 使我们能够进行这种转变,并将版本控制、自动化测试、缺陷跟踪和持续集成一起纳入我们的开发过程中。”
领域专业知识得到了拓展。
“汽车工程师不一定精通软件开发或数据科学,”一位 CAE 工程师指出。“MATLAB 环境具有内置的功能和清晰的文档,使我们能够轻松地应用我们的技能并开发新技能,以构建和推出实际的软件产品。”