今天講的東西,對我們更深刻地理解DevOps,、DevStar,、DevSecOps和MBSE以及數(shù)字工程及數(shù)字孿生等概念,如何在數(shù)字空間里僅憑意念彎曲勺子,,更深刻地理解《黑客帝國》電影,,都會有一定的啟發(fā)。 1. 智能CPS給系統(tǒng)工程和軟件工程帶來的挑戰(zhàn) 智能CPS是一種具有自主系統(tǒng)特性的系統(tǒng),,其功能不受人類的直接控制,。例如無人機、工業(yè)機器人,、AGV,、尋找簡易爆炸裝置(IED)的機器人以及無人駕駛汽車。 未來聯(lián)合全域的戰(zhàn)場上,,智能CPS系統(tǒng)會越來越多:
智能CPS中,,軟件起著重要的作用,。軟件可以在不增加重量或大幅增加功率的情況下增加新功能。它還可以通過電磁波遠程更新,,降低部署成本,,更快地改進系統(tǒng),,使系統(tǒng)更智能更具適應性。但這些好處也帶來了新的挑戰(zhàn):
2. 系統(tǒng)工程與軟件工程的協(xié)同 我們都知道,,系統(tǒng)工程的最新實踐是MBSE,,軟件工程則是DevSecOps。 這兩者結合起來,,能否解決智能CPS系統(tǒng)的挑戰(zhàn),? 這里面的關鍵洞見是,從DevSecOps的視角將建模仿真活動視為軟件密集型系統(tǒng)工程的一個組成部分,。 上面這句話請大家仔細思考下,。 具體的解決方案是這樣的:
比如,,我們要設計一個可消耗無人機,那么我們可以先用云上的MBSE即服務,,用數(shù)字工程集成環(huán)境中的工具進行進行建模,。 建模的工具可以有Sysml,AADL,,Matlab Simulink工具箱和ANSYS SCADE等,。 這幾個建模工具的關系是這樣的: 1. 用SysML對系統(tǒng)進行具體設計。使用SysML捕獲系統(tǒng)的高級模型,,以及一組系統(tǒng)約束,。這些約束將作為下一步的需求。 2. 用AADL定義系統(tǒng)的體系結構,。它派生自SysML定義和相關的約束,。AADL允許將系統(tǒng)架構更精確地定義為捕獲常規(guī)軟件或硬件行為(線程、設備,、處理器等)的組件集合,。 3. 對系統(tǒng)各部分進行設計。從AADL模型定義中,,可以派生出軟件的低層需求,,如要實現(xiàn)的子程序接口。這些子系統(tǒng)的軟件可以從Simulink,、Ansys SCADE,、Modelica或其他軟件中生成。系統(tǒng)工程師也可以用UML來捕獲要實現(xiàn)的軟件模型,或者直接在他們選擇的編程語言中實現(xiàn)它,。 3. 建模開發(fā)反饋的自動化流水線 建模好后,,模型要能仿真,必須先把模型轉成可運行的軟件程序,。模型可以用多種方式來生成軟件,,包括代碼生成,基于仿真的驗證和鑒定(V&V),,以及數(shù)字孿生模型,。 由于每種建模技術都提供了執(zhí)行模型分析或代碼生成的自動化的接口,這樣我們就可以用devops的自動化流水線集成這些工具來自動化整個過程,。 我們可以用類似下面的流程來簡化模型交換和模型轉換,,并盡可能地自動化整個建模、開發(fā)和運維的流程,。 4. 具體的模型到可執(zhí)行代碼的運行邏輯如下圖 基于模型到可執(zhí)行代碼流水線,,我們可以將這個流水線嵌到更大的一個模型到仿真的流水線中,這樣我們就可以實現(xiàn)建模到仿真的全流程的自動化: 我們可以在Mod2simu流水線中將Modelica轉成FMI,,然后將FMI轉成AADL,然后調用Mod2code流水線,,將AADL生成可執(zhí)行的二進制代碼,,并部署運行。 5. ModDevOps 循環(huán) 美國空軍提出了DevOps的定義,,包括整個系統(tǒng)生命周期:
CMU卡耐基梅隆大學的軟件工程學院的研究人員將這個概念結合了MBSE系統(tǒng)工程實踐,,推廣到了ModDevOps,并將ModDevOps定義如下,,我們對空軍DevOps定義的更改用粗體突出顯示:
ModDevOps通過定義基于模型的技術如何支持特定的步驟來擴展DevSecOps。ModDevOps改進了典型的DevSecOps循環(huán):
當然,這里面的1-8的環(huán)節(jié)是不斷迭代循環(huán)的,,最終的效果就是同時獲得MBSE和DevOps的優(yōu)點,。 6. 從ModDevOps到TwinOps 有了ModdevOps,我們就可以對無人機進行建模,。 更進一步,,我們可以在虛擬世界,創(chuàng)建多個無人機的數(shù)字孿生,,讓他們直接進行對抗,,驗證不同環(huán)節(jié)。 不同環(huán)節(jié)之間,,可以靈活組合,,實現(xiàn)不同的驗證/鑒定的效果:
最后,,基于Mod2Code流水線,,我們可以將程序部署到無人機上運行,同時將無人機的運行狀態(tài)喂給云端的Mod2Simu的數(shù)字孿生模型,,然后將無人機上的運行分析結果和數(shù)字孿生中的運行結果進行對比分析,,從而實現(xiàn)無人機數(shù)字孿生模型的敏捷開發(fā)TwinOps,。 搞明白了上面這幾種組合的玩法,我們就可以去思考如下問題:
本文里面涉及到數(shù)字孿生的地方我的理解估計還有點問題,,不過8點多了,要去沙縣小吃吃晚飯了,。 |
|
來自: 工農(nóng)子弟兵 > 《文件夾1》