“我们的工程团队在IT领域没有丰富的经验,IT团队在工程领域也没有丰富的经验。然而,帮助我们的MathWorks顾问在这两个领域都很擅长。这种综合能力对于将我们的需求转化为功能至关重要。”
——福特公司CAE工程师
在Timeseries应用程序中自定义布局
福特汽车能源管理工程全球团队的工程师负责评估福特汽车的排放、燃油经济性和性能。在硬件上进行驾驶循环测试之前,他们使用建模和仿真来执行设计权衡、优化参数和预测性能。当硬件可用时,他们将硬件测试结果与仿真结果进行比较。在过去,此过程是在电子表格或临时脚本中完成的,这些电子表格或脚本因程序而异。
为了提高驾驶循环测试结果分析的一致性,福特工程师开发了CycleTool。CycleTool使团队能够评估系统性能、生成报告、跟踪来自多个测试设施的数据,并确定仿真结果和硬件测试结果之间差异的根本原因。它包括60000行MATLAB®代码,使用结合了自动化测试和持续集成的现代软件开发方法进行构建。
“当我们开始开发CycleTool时,MATLAB使一切工作都能够在一个环境中完成,因为福特的大多数模型是在MATLAB或Simulink中开发的,”福特的一名CAE工程师说。“我们从小处着手,使用MATLAB面向对象的功能来管理工具随时间推移的增长情况。”
挑战
在过去,每个福特团队都使用自己的电子表格或自定义脚本来分析测试结果。这种方法会导致不一致和重复工作,而且使团队难以共享新功能或方法。福特希望通过基于单一工具的标准化来消除这些缺点。
为了促进该工具的推广,工程师需要在初始版本中增加数据库支持和易于使用的界面。此外,该工具的持续开发过程需要包含版本控制、缺陷跟踪和自动化测试。
解决方案
福特工程师在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环境具有内置的功能和清晰的文档,使我们能够轻松地应用我们的技能并开发新技能,以构建和推出实际的软件产品。”