基於模型的系統工程——自動駕駛汽車(20181004更新)

  • 2019 年 10 月 6 日
  • 筆記

原文鏈接:http://intercax.com/2018/01/11/model-based-systems-engineering-autonomous-vehicles-part-1/

作者 Dirk Zwemer

自動駕駛汽車(AV)是當前系統工程最大的挑戰之一,不只是因為AV自身的複雜性,還因為它是更大的智慧道路的一部分。本文討論基於模型的方法,包括SysML建模以及來自Intercax的MBSE平台Syndeia如何有助於解決複雜性。

圖1展示了ADS (自動駕駛系統,Automated Driving System)操作領域的SysML塊定義圖,包括

• 1對多,不同自動水平的汽車(Vehicle)。 • 1對多,當自動水平變化時,司機(Driver)/乘客(Passenger)的區分變得模糊。 • 操作設計領域(Operational Design Domain,ODD),汽車在其中操作的通用環境。可變因子包括道路類型(RoadwayType)、天氣(Weather)和每天的什麼時間(TimeOfDay)。ODD 也包括通過電子手段和汽車相連的基礎設施(路標、交通燈等等)。 • 障礙物(Obstacle),局部環境中的隨機因子(例如行人),汽車或司機必須識別和恰當地響應。 • 操作中心(Operations Center),通訊和控制的中央管控機構。

準備這樣一張領域圖,指定感興趣系統(Vehicle)必須交互的的元素,通常是基於模型的系統工程早期工作。注意,這只是關於汽車的操作環境。其他建模還包括製造、分發、維護和其他因素。

圖1 ADS Operations領域的SysML塊定義圖

圖2展示了MBSE結構的架構。我們用Intercax的基於模型的工程平台Syndeia來創建、維護和可視化總體系統模型(Total System Model,TSM)。本例的工具集包括Jama、MagicDraw、GitHub和JIRA。也可以換成其他軟體工具,例如IBM Rational Rhapsody和 DOORS NG。

圖2 總體系統模型架構

通過Syndeia,系統工程師可以有兩種方法把需求連接到其他系統模型元素。在圖3左側,我們創建一個引用連接(Reference Connection),在模型元素之間建立可跟蹤的鏈接,但不假設任何系統資訊。

圖3 Syndeia的需求連接方法

另一種方法是圖3右側,模型變換連接(Model Transform Connection),變換Jama或DOORS NG里的需求為對等的SysML需求,並維護兩者之間的連接。

圖4 SysML序列圖,視力障礙乘客場景

引用連接更簡單,因為資訊沒有複製。在Syndeia中,這樣的連接可以檢查是否有新版本的Jama需求提交。模型變換連接則可以提供更多的建模靈活性,SysML需求可以通過標準關係(例如Satisfy、Verify和Refine依賴)鏈接到多個其他SysML元素。圖4展示一張SysML行為圖,描述了視力障礙乘客使用AV的場景。圖5展示了SysML模型使用這個場景,通過標準Refine依賴來精化或澄清需求。如果SysML模型顯式包括需求,包括需求驗證和分解在內的其他任務可以被簡化。

圖5 用於精化需求的場景

我們假設需求一開始在需求管理工具中生成。圖6展示了創建自US DoT(美國交通部)報告, "Automated Driving System 2.0: A Vision for Safety" (September 2017)的部分需求列表。在Jama中被捕獲為多層需求模型。每條捕獲進Jama的需求都有Name(名稱), ID, Description(描述)和其他屬性。圖7展示了Jama web瀏覽器中的需求。注意:DoT報告是建議指南的集合,不是強制的需求,此處只是為了展示。

圖6 Jama中的ADS需求模型

圖7 Jama web 瀏覽器中的 "Collision Compatibility(碰撞相容性)" 需求

本例中,我們使用模型變換連接生成SysML需求結構。使用Syndeia可以一步到位。從Jama倉儲拖放頂層需求規約DoT ADS Guidelines到MagicDraw模型,可以變換得到完整的4個層次、64個需求結構。每對需求相互連接,以便比較和同步。

圖8 使用Syndeia把JIRA Task屬性鏈接到SysML需求

再次使用Syndeia,我們使用SysML需求結構生成JIRA條目的集合,每條需求一條。圖8展示了中層的需求規約。每條需求的JIRA條目可以用於項目管理,例如跟蹤狀態、安排進度和分配人員。本例中使用了引用連接,在SysML需求和JIRA條目之間沒有共同的屬性。然而,連接允許系統工程師在web瀏覽器中直接打開SysML模型元素或元素符號的JIRA條目,並為Jama倉儲提供間接的反向鏈接。使用這些連接,我們就完成了圖2中TSM架構左側的工作。

MBSE方法學往往在開發周期早期強制生成功能架構,特別是針對軟體為主要組件的資訊物理融合系統。本例中,我們生成了12個AV功能,以展示這些功能映射到需求、軟體文件和項目管理的方法。它們被建模為MagicDraw中的塊(Block),如圖9所示。

圖9 AV功能架構

可以用同樣的方法連接SysML功能塊到JIRA條目。頂層塊Autonomous_Vehicle_Functions被拖進 JIRA項目,生成13條JIRA新特性,每條通過引用連接鏈接回SysML功能。JIRA條目可以從功能直接打開。

圖10 Syndeia連接管理器,連接功能(左側)到GitHub軟體文件並提交(右側)

本例中,正在開發的軟體模組在GitHub倉儲做配置管理。假設GitHub中的軟體文件和SysML中的功能塊是獨立開發的,我們可以使用Syndeia,通過創建引用連接鏈接已有元素,如圖10所示。

在這個階段,我們已經連接每個SysML功能塊到JIRA條目和一個或多個GitHub文件。為了創建需求和功能之間的連接,我們在MagicDraw中使用SysML的Satisfy依賴,如圖11所示。這些關係存儲在SysML建模工具中,這個階段不涉及Syndeia。注意,集合中的一條需求沒有Satisfy關係。好的MBSE實踐應該跟蹤和高亮這些遺漏。

圖11 在SysML需求圖中映射功能到需求

現在,整個連接架構已經實現了。除了使用這些連接來保持分離的模型一致之外,我們還可以使用它們來提供遍及TSM的跟蹤能力。接下來要考慮連接構成的網或圖的可視化和搜索。

不同工具的模型元素之間以及模型內部創建的連接,組成了一張圖,即節點和邊的集合。當圖的規模變大時,我們可以利用強有力的新的圖形資料庫技術來可視化和查詢,以獲得系統資訊的詳細路線圖以及前所未有的跟蹤能力。

圖12 MagicDraw、JIRA、Jama和GitHub模型間連接的全局可視化(弦圖,Chord Plot)

圖13 局部可視化展示SysML"Disability Access"需求的鄰近元素

待續……

[UMLChinaSicilia 摘譯,轉載請註明出處。文章觀點不代表UMLChina觀點。]