讓我下決心翻譯這篇文章和共享相關技術,主要是:
(1)4月份MathWorks高級工程師吳菁在成都巡迴演講中討論到這個工具,然而現場知道使用的很少
(2)在blog.mathworks.com中看到Simulation Data Inspector的技術主題,而自己在工作也經常使用該工具
(3)Simulink需要很大的工程經驗才能玩的好,但交流卻沒有MATLAB方便,國內高質量書籍也基本沒有
(4)論壇的Simulink版塊有活躍下,最近我會根據經驗慢慢和大家一起分享Simulink方面的技術
您之前也許使用過Simulation Data Inspector(Simulink信號查看器,注意我沒有翻譯成數據,因爲在Simulink中這個Data主要特指信號),本文中討論的相關工具和技術,也許能夠幫您節省很多調試時間。
仿真精度(Simulation Accuracy)
在進行復制模型仿真時,有時我們需要驗證系統行爲(validate
system behavior)並分析模型數值精度。另外稍微一個小小的更改就可能會導致意想不到的結果。由於模型很大,如果使用Scopes或To Workspace模塊,來找出問題的根源將是十分痛苦的過程。
然而使用Simulink Data Inspector能夠在不添加任何額外模塊情況下,方便的進行仿真結果比較,現在就讓我們看看這是如何做到的。
選擇信號(Logging Signals)
注意:樓主使用的是MATLAB R2013a,演示的模型是f14,大家在Command Window中中輸入f14回車就可以!
1、第一步就是選擇需要記錄的信號。對於簡單的模型,我們可以直接在信號線上右擊→Properties→Signal
Properties對話框→勾選Log Signal Data
2、對於複雜模型且需要監控多個信號,此時使用Model Explorer將會更加快捷方便,打開Model Explorer有三種方法
(1)在Simulink空白處右擊菜單→Explorer
(2)通過工具欄的Model Explorer按鈕
(3)菜單Tools→Model Explorer
進入Model Explorer以後,需要做幾個操作,具體如下圖
(1)在Filter中勾選All Signals/Connection
(2)在Column View中選擇Signals
(3)在Contents面板中選擇需要監控的信號,然後勾選DataLogging
被監控/記錄的信號,在Simulink中就會有一個發射的小標誌
3、上面只是告訴Simulink我們對某個信號比較感興趣而已,因此還需要在Simulink Configuration中開啓信號記錄功能
錄製並查看仿真結果(Record & Inspect Simulation Output)
在仿真開始前,還必須點擊Record按鈕,Simulink纔會記錄本次運行的結果,否則即使選擇信號並記錄功能,也不會記錄當前運行數據!
在仿真結束時,使用工具欄的提示鏈接(當然你可以通過菜單或者工具欄),打開simulation Data Inspect
比較運行結果(Compare Runs)
稍微調整模型,然後重新仿真,在Simulation Data Inspector中點擊Compare Run標籤頁,選擇分別兩次運行,然後點擊Compare進行比較。通過絕對誤差曲線,我們能夠快速的查看兩次運行結果的不同之處。
Simulation Data Inspector其實有其它功能,您可以嘗試慢慢挖掘。另外如果您還有更多需求,不妨閱讀下Validate
System Behavior。
附:
將不同的信號顯示在不同的座標系中
點擊showdetails,在layout中選擇座標矩陣