Real-Time Workshop®



Real-Time Workshop®( RTW ) 從Simulink模型生成優化的,可移植的和可定製的ANSI C代碼。利用它可以針對某種目標機來創建整個系統或是部分子系統可下載執行的 C 代碼,以開展硬件在迴路仿真。 RTW 支持離散時間系統,連續時間系統和混合系統的代碼生成。 Stateflow Coder 用來生成 Stateflow 所建立有限狀態機模型的代碼。生成代碼的典型應用包括訓練模擬器,實時模型驗證和原型測試。
建立在 Simulink 和 RTW 基礎之上的,基於模型的設計流程,支持工程開發過程從算法設計到最終實現的所有開發階段。
特點

從 Simulink 模型生成優化的和可定製的代碼
支持所有的 Simulink 功能特性 , 包括對 8 , 16 和 32 位整數 , 浮點數和自定義 ( 定點 ) 數據類型的支持
產生的代碼能夠準確表達模型,不依賴於處理器平臺
支持單任務和多任務操作系統,以及“ bareboard ”(裸機,無操作系統)運行環境
支持添加用戶自定義模塊,包括信號處理算法和設備驅動程序
通過可複用子系統函數,使用自動模式匹配,縮減生成的代碼尺寸
生成可超級鏈接到 Simulink 模型的 HTML 報告
可與 Stateflow Coder 生成完全集成的代碼
通過向 Simulink 模型上傳數據,實時對信號監測
使用 Simulink 模型作爲前端進行參數實時調節
通過生成優化的模型可執行代碼產生快速仿真程序
可生成獨立於 MATLAB®和 Simulink® 運行的可執行程序
提供參考快速原型目標(例如 WindRiver®System 的 Tornado® )和用戶可定製的全功能通用目標模板
使用 Real-Time Windows Target 和 xPC Target ( MathWorks 另外提供),將標準 PC 硬件作爲快速運行環境使用
可擴展的設備驅動,支持多種第三方硬件和軟件工具

強大的功能

爲 Simulink 模型生成代碼
RTW 生成的代碼 , 準確的表達了對應的 Simulink 模型 , 並且不針對特定的處理器。代碼的執行使用另外一個與具體目標有關的運行接口來進行。 RTW 支持所有的 Simulink 特性,包括 8 位, 16 位和 32 位整數,浮點和自定義 ( 定點 ) 數據類型。它在很大範圍內允許定製生成的代碼。
RTW 支持單任務,多任務操作系統以及“ bare board ”(裸機,無操作系統)的運行環境。它還能生成定製模塊的內嵌式代碼,包括對信號處理算法和設備驅動程序。

快速仿真
可以生成優化的模型可執行程序代碼,提高仿真運算速度。這些代碼能夠獨立於 MATLAB 和 Simulink 環 境運行。

Real-Time Workshop Target
RTW 可將 Simulink 模型“翻譯”成 ANSI C 代碼,爲測試運行和調試提供了可執行程序代碼。目標模板爲生成運行於用戶特定平臺環境的應用程序提供了設置工具。 Real-Time Workshop 支持產品開發各個階段所用的多種目標環境。其中有些直接設置後就可運行使用,有些是第三方的目標環境。目標也可以是定製的。

S-Function Target
S-Function Target 可把一個 Simulink 框圖模型或是子系統轉變成爲一個 Simulink S-function (系統函數)。使用 S-Function Target 可以把模型變成爲模塊,並在以後工作中更大的系統中複用。這樣做能夠提高仿真運算的速度和代碼複用性,並可在保證隱蔽源模型細節的前提下共享模型。一個模型中可以使用多個相同 S-function 的實例,每個實例採用各自獨立的數據結構。

快速仿真
Rapid Simulation Target ( RSIM )在主機上以非實時方式運行模型代碼。 RSIM 使用 RTW 生成模型獨立的快速運算仿真程序。 RSIM 支持從 MATLAB 標準 MAT 文件中批量加載和調整輸入信號數據,無需重新編譯模型。程序可以使用定步長或是變步長算法,在本機或其它計算機上進行獨立仿真運算。

Tornado
RTW 還提供了一系列 run-time interface 文件,以在 VxWorks 上, Wind River System 公司所開發的實時操作系統( RTOS )上,運行模型程序。 Tornado Target 支持單任務/多任務模式和離散時間/連續時間混合系統模型。在向其他目標實時操作系統環境移植時, Tornado run-time interface 和設備驅動文件可以作爲新工作的起點。 Run-time interface 還提供了通過 Tornado 開發環境使用 RTW 調試功能的能力。

Real-Time Target
用 Real-Time Target 生成代碼的模型中,可使用交互式的 Simulink 模塊,調節、記錄和顯示模型實時運行時的結果。創建定製的快速原型目標或在自己的工作站上驗證生成的代碼時,這些 Real-Time Target 可以作爲工作的起點。

Real-Time Malloc
它與 real-time target 相似。主要差別在於存儲區的訪問類型聲明。使用這種代碼格式,在一個可執行程序中可以包含同一模型的多個實例或是多個模型的代碼。

代碼生成
Real-Time Workshop 生成的代碼帶有詳盡的註釋,包括 Simulink 模型中模塊的名稱和信號標籤。它將模型模塊與代碼對應了起來,便於跟蹤調試。

單任務和多任務運行環境
RTW 同時支持單任務和多任務運行環境。在單任務環境中,通過中斷服務例程調用的任務,必須在一個採樣週期內完成所有處於激活狀態,採樣率不同的所有模型計算。
多任務環境具有多種採樣速率,對應每個任務有各自的優先級,它決定了在給定的時間間隔裏,模型的哪一部分需要執行計算。

代碼優化
RTW 提供多種代碼優化方式供選擇,用來縮減代碼的長度和存儲空間佔用。代碼優化包括:
代碼重用 ( Code reuse )
表達式摺疊 ( Expression folding )
塊功能合併 ( Block reduction )
信號存儲區重用 ( Signal storage reuse )
條件輸入分支執行( Conditional input branch execution )

可定製的代碼生成過程
Target Language Compiler ( TLC 目標語言編譯器 ) 允許定製由 RTW 生成的代碼。 TLC 文件是直接控制 Real-Time Workshop 代碼生成方式的 ASCII 碼文件。通過編輯 TLC 文件,可以改變某個模塊的代碼生成方式,也可用於將手寫代碼合併到模型代碼中。 TLC 具有如下特性:
每個 Simulink 和可選模塊集 ( 如 DSP Blockset 和 Fixed-Point Blockset ) 中的模塊都有一組對應的 TLC 文件
TLC 文件中說明了頭文件和參數信息
目標環境通過系統目標 TLC 文件選擇指明
分析代碼生成中 TLC 階段的調試工具

加入用戶的代碼
Simulink 中用戶可以創建定製的模塊,把已有的代碼加入進來。 TLC 可以通過代碼內嵌的方法,優化從自定義模塊產生的代碼。專用算法和設備驅動程序同樣可以被合併到模型代碼中。使用 Sfunction Builder 模塊可以自動生成用於集成用戶自定義代碼的 TLC 文件。

對中斷的支持
使用 中斷模塊可以創建具有處理異步和同步事件能力的模型,包括中斷服務例程( ISR ),硬件產生的中斷和異步的讀/寫操作。這些模塊主要是爲 Tornado 的目標編寫的,修改後也可用於用戶自己的目標環境。

基於模型的調試
使用 外部模式直接在 Simulink 與實時目標之間進行的通訊將加快設計循環的步驟。一些特定的目標,如 Tornado 和 Real-Time Windows Target ,提供對 Simulink 外部模式的支持。當代碼在實時目標上運行時,在 Simulink 模型中可以對算法的代碼進行調試。在外部模式下,新的模塊參數可以下載到生成的目標程序中,實時程序的輸出信號也可以上傳到 Simulink 模型的 Scope, Display , Workspace , Signal Viewing 子系統, XY Graph , S-Function 和 Dials & Gauges Blockset 的模塊中。

嵌入式監測和參數調節
RTW 提供的一些機制可以監測和調節模型信號和模塊參數。這些機制包括:
測試點( Test-points ) — 將模型中的信號標誌爲測試點,並可指定如何分配信號變量的存儲空間
C 和 TLC 的 API — 爲訪問模塊存儲在 Real-Time Workshop 所生成的全局數據結構中的輸出和參數提供了額外的手段。

參數類
Simulink 和 RTW 支持兩種參數類 : MATLAB 變量和 Simulink 數據對象。在 Model Parameter Configuration 菜單中可以選擇模型中的 MATLAB 變量 , 並將它們聲明在生成代碼中爲可調參數。被聲明爲可調的參數和信號在代碼中可被其它代碼直接訪問。這個菜單還可以用來指明可調參數在代碼中存儲空間的分配方式。
Simulink 數據對象爲模型中的信號和參數提供了更多的控制功能。這些 Simulink 專屬的數據類型將 Simulink 專屬的信息封裝了起來,不會被一般用途的數值類型捕捉到。這些信息直接控制信號和參數在生成的代碼中的表達。 Simulink 數據對象同樣可以擴展,把用戶定義的屬性包括進去。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章