MathWorks應用工程師,博客介紹關于 Simulink 以及其它 MathWorks 的基于模型的設計工具。
幾天前,我需要調試一個較大的模型,出現了下面這個錯誤:
在我這個模型里,這個代數環涉及到一百多個模塊,信號遍布整個模型,還有總線結構,把問題變得很復雜,難以分析。
ashow(為什么不再需要它了!)
多年來,我一直使用ashow函數高亮顯示代數環。以下是一個簡單模型的示例:
然而,它不太好用,而且它只能高亮顯示代數環的一部分。顯然,它也無法高亮顯示我現在需要解決的這個代數環。
這是因為,這里的代數環是定點信號,這就導致了類似“先有蛋還是先有雞”的問題。。為了讓 ashow 運行,它需要模型能編譯。然而,該環是定點信號,Simulink 引擎知道它自己無法求解,于是在模型編譯過程中報錯,導致無法使用 ashow。
就在那時,我想起了一個相對較新,但經常忘記的函數:
Simulink.BlockDiagram.getAlgebraicLoops
如果你仔細閱讀過代數環的相關文檔頁面,可能已經知道到,Simulink 提供了Simulink.BlockDiagram.getAlgebraicLoops 函數,它是一種新的,且更有效的代數環高亮顯示方法。
用上述同一示例,結果如下:
這個函數在 R2015a 中引入,并在 R2017b 中做了改進,能找到并高亮顯示更多類型的代數環。在我的案例中,它已經能高亮顯示涉及到定點信號的代數環。根據該環高亮提示,就可找出引入延遲模塊并打斷該環的最佳位置。
請注意以下幾點:
以紅色高亮顯示的模塊是我們稱之為代數變量的模塊。可以先嘗試在這類模塊的輸出端添加一個入延遲模塊(除非是連續信號,參見下列相關閱讀)。
如果檢測到該環是人為代數環,它將以虛線高亮顯示,這表示應使用原子子系統或模型引用的 Minimize Algebraic Loop feature 勾選項來解決這個問題。
Simulink.BlockDiagram.getAlgebraicLoops 還會返回一個對象類型的返回值給出模型代數環的各種屬性,其中包括所涉及模塊的句柄,您可以酌情使用。
以下是高亮顯示的代數環的定點模型示例:
-
信號
+關注
關注
11文章
2842瀏覽量
77921 -
函數
+關注
關注
3文章
4371瀏覽量
64221 -
可視化
+關注
關注
1文章
1246瀏覽量
21647
發布評論請先 登錄
VirtualLab Fusion應用:3D系統可視化
可視化組態物聯網平臺是什么
VirtualLab Fusion中的可視化設置
VirtualLab Fusion應用:光波導k域布局可視化(“神奇的圓環”)
七款經久不衰的數據可視化工具!
光學系統的3D可視化
什么是大屏數據可視化?特點有哪些?
智慧能源可視化監管平臺——助力可視化能源數據管理

智慧樓宇可視化的優點
智慧地鐵站可視化建設的意義
三維可視化運用的主要技術
大屏數據可視化 開源

如何實現園區大屏可視化?

物聯網時代,為什么需要可視化數據大屏

評論