“我們的工程團(tuán)隊(duì)在 IT 領(lǐng)域沒有豐富的經(jīng)驗(yàn),IT 團(tuán)隊(duì)在工程領(lǐng)域也沒有豐富的經(jīng)驗(yàn)。然而,幫助我們的 MathWorks 顧問在這兩個領(lǐng)域都很擅長。這種綜合能力對于將我們的需求轉(zhuǎn)化為功能至關(guān)重要?!?/P>
——福特公司 CAE 工程師

在Timeseries應(yīng)用程序中自定義布局
福特汽車能源管理工程全球團(tuán)隊(duì)的工程師負(fù)責(zé)評估福特汽車的排放、燃油經(jīng)濟(jì)性和性能。在硬件上進(jìn)行駕駛循環(huán)測試之前,他們使用建模和仿真來執(zhí)行設(shè)計(jì)權(quán)衡、優(yōu)化參數(shù)和預(yù)測性能。當(dāng)硬件可用時,他們將硬件測試結(jié)果與仿真結(jié)果進(jìn)行比較。在過去,此過程是在電子表格或臨時腳本中完成的,這些電子表格或腳本因程序而異。
為了提高駕駛循環(huán)測試結(jié)果分析的一致性,福特工程師開發(fā)了CycleTool。CycleTool 使團(tuán)隊(duì)能夠評估系統(tǒng)性能、生成報(bào)告、跟蹤來自多個測試設(shè)施的數(shù)據(jù),并確定仿真結(jié)果和硬件測試結(jié)果之間差異的根本原因。它包括 60000 行 MATLAB? 代碼,使用結(jié)合了自動化測試和持續(xù)集成的現(xiàn)代軟件開發(fā)方法進(jìn)行構(gòu)建。
“當(dāng)我們開始開發(fā) CycleTool 時,MATLAB 使一切工作都能夠在一個環(huán)境中完成,因?yàn)楦L氐拇蠖鄶?shù)模型是在 MATLAB 或 Simulink 中開發(fā)的,”福特的一名 CAE 工程師說?!拔覀儚男√幹?,使用 MATLAB 面向?qū)ο蟮墓δ軄砉芾砉ぞ唠S時間推移的增長情況。”
挑戰(zhàn)
在過去,每個福特團(tuán)隊(duì)都使用自己的電子表格或自定義腳本來分析測試結(jié)果。這種方法會導(dǎo)致不一致和重復(fù)工作,而且使團(tuán)隊(duì)難以共享新功能或方法。福特希望通過基于單一工具的標(biāo)準(zhǔn)化來消除這些缺點(diǎn)。
為了促進(jìn)該工具的推廣,工程師需要在初始版本中增加數(shù)據(jù)庫支持和易于使用的界面。此外,該工具的持續(xù)開發(fā)過程需要包含版本控制、缺陷跟蹤和自動化測試。
解決方案
福特工程師在 MATLAB 中開發(fā)了 CycleTool 的早期版本,并與 MathWorks 顧問合作建立了完成開發(fā)和分發(fā)的工作流。
工程師使用 MATLAB 和 Statistics and Machine Learning Toolbox? 來實(shí)現(xiàn)統(tǒng)計(jì)和分析方法,對測試結(jié)果進(jìn)行去噪、歸一化和分析,并將它們與仿真結(jié)果進(jìn)行比較。
借助 MATLAB 面向?qū)ο蟮墓δ芎汀澳P?視圖-控制器”設(shè)計(jì)模式,該團(tuán)隊(duì)開發(fā)了界面,用于簡化 CycleTool 的配置以及標(biāo)準(zhǔn)圖表和報(bào)告的創(chuàng)建。為了使位于不同地點(diǎn)的動力總成團(tuán)隊(duì)和測試團(tuán)隊(duì)能夠在 CycleTool 中共享結(jié)果,工程師使用了 Database Toolbox? 增加了在中央數(shù)據(jù)庫中存儲數(shù)據(jù)的支持。
在使用 MATLAB 單元測試框架和模擬框架創(chuàng)建用于驗(yàn)證 CycleTool 組件的自動化測試后,該團(tuán)隊(duì)實(shí)現(xiàn)了數(shù)據(jù)庫測試框架,該框架使用 Docker 容器來啟動和填充數(shù)據(jù)庫實(shí)例。
他們將自動化測試集成到一個完整的軟件開發(fā)工作流中,該工作流包含用于缺陷跟蹤和敏捷項(xiàng)目管理的Jira、用于版本控制的GitHub?和 用于持續(xù)集成的Jenkins?。
現(xiàn)在,英國、德國、澳大利亞、墨西哥、美國和中國的福特團(tuán)隊(duì)都在使用 CycleTool。開發(fā)團(tuán)隊(duì)仍在擴(kuò)展該工具,以便與福特全球數(shù)據(jù)庫和企業(yè)系統(tǒng)集成。

在Summary應(yīng)用程序中梳理數(shù)據(jù)以找出趨勢
結(jié)果
·專業(yè)的支持加速了開發(fā)。“與我們團(tuán)隊(duì)合作的 MathWorks 工程師顯然處于行業(yè)發(fā)展實(shí)踐的前沿領(lǐng)域,”福特的一位技術(shù)實(shí)施專家說。“他們提供的專業(yè)且及時的建議使我們能夠更快地構(gòu)建 CycleTool 并改進(jìn)開發(fā)流程,這比我們嘗試自己完成所有工作要快得多?!?BR>·一次性腳本轉(zhuǎn)換成廣泛使用的軟件。“當(dāng)工具使用者與工具開發(fā)者不同時,該工具必須被視為真正的產(chǎn)品,”一位技術(shù)實(shí)施專家如是說?!癕ATLAB 使我們能夠進(jìn)行這種轉(zhuǎn)變,并將版本控制、自動化測試、缺陷跟蹤和持續(xù)集成一起納入我們的開發(fā)過程中。”
·領(lǐng)域?qū)I(yè)知識得到了拓展。“汽車工程師不一定精通軟件開發(fā)或數(shù)據(jù)科學(xué),”一位 CAE 工程師指出。“MATLAB 環(huán)境具有內(nèi)置的功能和清晰的文檔,使我們能夠輕松地應(yīng)用我們的技能并開發(fā)新技能,以構(gòu)建和推出實(shí)際的軟件產(chǎn)品。”
(轉(zhuǎn)載)