MathWorks應用工程師,博客介紹關于 Simulink 以及其它 MathWorks 的基于模型的設計工具。
幾天前,我需要調(diào)試一個較大的模型,出現(xiàn)了下面這個錯誤:
在我這個模型里,這個代數(shù)環(huán)涉及到一百多個模塊,信號遍布整個模型,還有總線結(jié)構,把問題變得很復雜,難以分析。
ashow(為什么不再需要它了?。?/p>
多年來,我一直使用ashow函數(shù)高亮顯示代數(shù)環(huán)。以下是一個簡單模型的示例:
然而,它不太好用,而且它只能高亮顯示代數(shù)環(huán)的一部分。顯然,它也無法高亮顯示我現(xiàn)在需要解決的這個代數(shù)環(huán)。
這是因為,這里的代數(shù)環(huán)是定點信號,這就導致了類似“先有蛋還是先有雞”的問題。。為了讓 ashow 運行,它需要模型能編譯。然而,該環(huán)是定點信號,Simulink 引擎知道它自己無法求解,于是在模型編譯過程中報錯,導致無法使用 ashow。
就在那時,我想起了一個相對較新,但經(jīng)常忘記的函數(shù):
Simulink.BlockDiagram.getAlgebraicLoops
如果你仔細閱讀過代數(shù)環(huán)的相關文檔頁面,可能已經(jīng)知道到,Simulink 提供了Simulink.BlockDiagram.getAlgebraicLoops 函數(shù),它是一種新的,且更有效的代數(shù)環(huán)高亮顯示方法。
用上述同一示例,結(jié)果如下:
這個函數(shù)在 R2015a 中引入,并在 R2017b 中做了改進,能找到并高亮顯示更多類型的代數(shù)環(huán)。在我的案例中,它已經(jīng)能高亮顯示涉及到定點信號的代數(shù)環(huán)。根據(jù)該環(huán)高亮提示,就可找出引入延遲模塊并打斷該環(huán)的最佳位置。
請注意以下幾點:
以紅色高亮顯示的模塊是我們稱之為代數(shù)變量的模塊??梢韵葒L試在這類模塊的輸出端添加一個入延遲模塊(除非是連續(xù)信號,參見下列相關閱讀)。
如果檢測到該環(huán)是人為代數(shù)環(huán),它將以虛線高亮顯示,這表示應使用原子子系統(tǒng)或模型引用的 Minimize Algebraic Loop feature 勾選項來解決這個問題。
Simulink.BlockDiagram.getAlgebraicLoops 還會返回一個對象類型的返回值給出模型代數(shù)環(huán)的各種屬性,其中包括所涉及模塊的句柄,您可以酌情使用。
以下是高亮顯示的代數(shù)環(huán)的定點模型示例:
-
信號
+關注
關注
11文章
2853瀏覽量
78293 -
函數(shù)
+關注
關注
3文章
4381瀏覽量
64893 -
可視化
+關注
關注
1文章
1264瀏覽量
21866
發(fā)布評論請先 登錄
如何使用協(xié)議分析儀進行數(shù)據(jù)分析與可視化
VirtualLab Fusion應用:3D系統(tǒng)可視化
可視化組態(tài)物聯(lián)網(wǎng)平臺是什么

VirtualLab Fusion中的可視化設置
VirtualLab Fusion應用:光波導k域布局可視化(“神奇的圓環(huán)”)
七款經(jīng)久不衰的數(shù)據(jù)可視化工具!
光學系統(tǒng)的3D可視化
什么是大屏數(shù)據(jù)可視化?特點有哪些?
如何找到適合的大屏數(shù)據(jù)可視化系統(tǒng)
智慧能源可視化監(jiān)管平臺——助力可視化能源數(shù)據(jù)管理

評論