SystemDesk
範例詳細說明
SystemDesk 安裝隨附四個範例:Tutorial、AR_Fuelsys、Lunar Lander 與 Validation,涵蓋從軟體架構建模、系統整合到 V-ECU 產生與 SIL 測試。本頁逐一詳解各範例的內容、示範功能與使用方式。
SystemDesk 安裝於 .\Demos 資料夾提供多個範例(ZIP 封存),協助理解其功能。每個範例通常有 SystemDesk 專案檔(SDP)可直接開啟檢視,以及 Python demo 腳本可透過工具自動化建立不同變體。本頁內容整理自 dSPACE 原廠 SystemDesk Manual 與 Tutorial(RLS2024-B)。
1. 四個範例總覽
Tutorial.zip
互動式「做中學」,介紹 SystemDesk 最重要的功能;分為短課程反映典型操作流程。
AR_Fuelsys.zip
示範較複雜的功能,以及 SystemDesk 與 TargetLink 的互通性。
LunarLander.zip
示範如何以程式碼(非 AUTOSAR)建立 code-based V-ECU 進行 SIL 測試。
Validation.zip
內含 RuleModule.py,示範如何定義自訂驗證規則(custom validation rules)。
2. 如何開啟與執行範例
從 Start Page 開啟
Start Page → Demos – <Demo>(如 Demos – Tutorial)。SystemDesk 會將範例解壓到 Documents\Demos 並開啟該資料夾。
開啟 SDP 或執行腳本
以 SystemDesk 開啟 SDP 檔檢視;或在外部 Python 直譯器執行 demo 腳本,透過工具自動化建立專案。
設定腳本產生變體
於 PythonWin 依腳本標頭說明編輯 demo 腳本,File – Run 產生不同變體。
執行腳本時,SystemDesk 將專案存到腳本的上層資料夾,會覆寫既有專案檔。移除或改名範例資料夾後,重新從 Start Page 開啟即可還原範例檔。
3. 範例一:Tutorial Demo(方向燈系統)
Tutorial demo 建模一個管理車輛左右方向燈的簡單系統,是入門首選。建議先完成本教學再閱讀進階文件。
| 腳本 | 專案 | 說明 |
|---|---|---|
Tutorial.py | TutorialProject | 應用映射到 3 個 ECU、經 CAN 通訊、含 I/O HW abstraction 介面(至 lesson 14)。 |
Tutorial_1Ecu.py | TutorialProject_1Ecu | 所有 SWC 映射到 1 個 ECU(至 lesson 14)。 |
Lesson<xx>_complete.py | TutorialProject | 建立到指定課程為止的專案。 |
示範功能
- Client-Server 通訊以 client-server 操作設定致動器/讀取感測器。例:FrontLeftActuator SWC 呼叫
OP_SET設定燈泡(off/on)。 - Multiple Instantiation重用程式碼節省 ECU 資源:
BulbActuator實例化為FrontLeftActuator與FrontRightActuator。 - AUTOSAR 檔匯入/匯出可將 AUTOSAR XML 匯入/匯出 SystemDesk 專案(如匯入網路通訊元素)。
- AUTOSAR Project Files將 AR 元素與專案檔同步,支援版本控制與團隊共享(如 BulbActuator 指派到 AR 專案檔)。
4. 範例二:AR_Fuelsys Demo(容錯燃油噴射控制)
AR_Fuelsys 建模一個容錯的燃油噴射控制系統,展示 SystemDesk 的進階功能。控制器 FuelRateController 為 composition SWC,含四個軟體元件,另有環境模型可做閉迴路模擬。
| 元件 | 角色 |
|---|---|
| FuelsysSensors | 感測器致動器 SWC,偵測感測器訊號失效並嘗試修正;提供修正後訊號與 fuel mode(本例的 mode manager,管理 4 種模式)。 |
| FuelsysController | 應用 SWC,依修正訊號計算噴射燃油率;模式依 fuel mode 切換(本例的 mode user)。 |
| FuelsysCombi | 應用 SWC,於儀表顯示引擎轉速與平均油耗;只需 composite data type 的部分元素。 |
| FuelsysCalPrms | 參數 SWC,提供校正參數給 Sensors 與 Controller。 |
| EngineModel | 受控系統(引擎模型),可進行閉迴路模擬。 |
示範功能
- 複雜訊號映射以 struct/array 等 composite data type 通訊;跨 ECU 傳輸時須把 composite 元件映射到 signal group 的 signals。
- Mode Managementmode manager 控制 mode machine instance 切換模式;mode user 依模式啟用/停用 runnable。含 ECU State Manager 控制啟停序列(EcuM_StateRequest 介面)。
- NVRAM 與其他示範 NVRAM 存取、自動設定/產生 NvM、產生 NV block SWC,以及 SystemDesk↔TargetLink 互通、A2L 匯出、DET 等。
AR_Fuelsys 亦提供多種變體(含/不含網路通訊、CAN/LIN),各變體說明於 SD/Scripts 內對應 Python 腳本標頭;部分變體另附 SDP 檔。
5. 範例三:Lunar Lander Demo(code-based V-ECU)
Lunar Lander 以非 AUTOSAR 程式碼建模一個簡化的登月模組自動駕駛,示範如何從外部程式碼建立 code-based V-ECU 並在 VEOS 上做 SIL 測試。
Autopilot V-ECU
基於非 AUTOSAR 原始碼的 V-ECU,代表簡化的自動駕駛控制演算法。
Lunar Landing Module
環境模型,參數取自 Apollo 登月模組。
| 腳本 | 專案 | 整合方式 |
|---|---|---|
CreateVecu.py | LunarLander | 以 V-ECU implementation container 整合進 VEOS。 |
CreateVecu_FMI2.py | LunarLander_FMI2 | 以 FMU(FMI 2.0) 整合進 VEOS。 |
CreateVecu_FMI3.py | LunarLander_FMI3 | 以 FMU(FMI 3.0) 整合進 VEOS。 |
- 建立 code-based V-ECU從外部程式碼、模組設定與變數描述檔建立並建置 V-ECU(本例名為
Autopilot,於 V-ECU Manager 檢視)。 - 設定 Data Access Points(VPU ports)為外部 I/O 訊號設定 DAP(VPU ports)。
- 建立 VEOS 模擬系統經 V-ECU 容器匯出並整合到 VEOS,於 VEOS Player 執行 LunarLander 離線模擬應用(OSA)。
6. 範例四:Validation Demo
Validation.zip 內含 RuleModule.py,示範如何定義自訂驗證規則。SystemDesk 可依預定義或自訂規則驗證元素內容;亦可於自動化腳本中進行驗證(例如透過 BSW Module Scripts 自動驗證)。
7. 範例功能對照表
| 功能 | Tutorial | AR_Fuelsys | Lunar Lander |
|---|---|---|---|
| Client-Server 通訊 | ✓ | — | — |
| Sender-Receiver 通訊 | ✓ | ✓ | — |
| Array / Struct 資料型別 | — | ✓ | — |
| 量測與校正 / A2L 匯出 | ✓ | ✓ | — |
| Multiple Instantiation | ✓ | — | — |
| Mode Management / ECU State Manager | — | ✓ | — |
| 複雜訊號映射 | — | ✓ | — |
| NVRAM 管理(NvM / NV block SWC) | — | ✓ | — |
| 網路通訊(CAN / LIN) | CAN | CAN/LIN | — |
| 建立 model-based V-ECU | ✓ | ✓ | — |
| 建立 code-based V-ECU | — | — | ✓ |
| 匯出 V-ECU 容器(.vecu) | ✓ | ✓ | ✓ |
| 匯出 V-ECU FMU | — | ✓ | ✓ |
8. Tutorial 的 14 個課程
| 課程 | 主題 |
|---|---|
| 1 | 建立第一個專案(Project / Package / 匯入 AUTOSAR 範本) |
| 2 | 建模並連接軟體元件(Composition Diagram、Ports、連接) |
| 3 | 建模 Sender-Receiver 介面(Variable Data Prototype、資料型別、Queued/Nonqueued) |
| 4 | 建模 Client-Server 介面(Operations、Compu Methods、指派介面) |
| 5 | 建模原子 SWC 的內部行為(Runnable、RTE Events、Interrunnable Variables) |
| 6 | 建模量測與校正存取 |
| 7 | 指定 Data Type Mapping Sets 與 Constant Specification Mapping Sets |
| 8 | 整合 SWC 實作(SWC Implementations) |
| 9 | 建立並設定 ECU Instance |
| 10 | 匯入網路通訊元素(AUTOSAR 檔) |
| 11 | 建模系統(System) |
| 12 | 資料匯入與匯出 |
| 13 | 建模 ECU Configuration 與基礎軟體(BSW) |
| 14 | 產生 V-ECU 實作 |
9. 範例資料夾結構
| 資料夾 | 內容 |
|---|---|
| SD | SystemDesk 專案檔與 AUTOSAR 模型/實作檔子資料夾。 |
| Scripts | 透過工具自動化建立範例的 Python 檔。 |
| SL | Simulink 模型檔(SLX/M);可作為 VEOS 閉迴路模擬的環境模型。 |
| TL | 實作 demo SWC 的 TargetLink 模型檔。 |
| VEOS | 與 VEOS 模擬相關的檔案,如離線模擬應用(OSA)。 |
部分資料夾非每個範例都有;產生 V-ECU 等動作時 SystemDesk 會另建新資料夾與檔案。
延伸閱讀:V-ECU 與 SIL 見 TargetLink V-ECU 模擬解決方案;MCAL 模組見 dSPACE MCAL 模組參考。
原始文件出處(dSPACE RLS2024-B)
| 文件 / 章節 | 檔名 |
|---|---|
| SystemDesk Manual — Demos and Sample Scripts for SystemDesk(Tutorial / AR_Fuelsys / Lunar Lander) | SystemDeskManual.pdf |
| SystemDesk Tutorial — Overview of Lessons(Lesson 1–14) | SystemDeskTutorial.pdf |
| 範例檔(安裝於 SystemDesk .\Demos 資料夾之 ZIP) | Tutorial.zip · AR_Fuelsys.zip · LunarLander.zip · Validation.zip |
路徑前綴:C:\Users\Public\Acolada\Cobrili\HelpSetStorage\dSPACEPDF\RLS2024-B\en\