MathWorks應用工程師,博客介紹關于 Simulink 以及其它 MathWorks 的基于模型的設計工具。
幾天前,我需要調試一個較大的模型,出現了下面這個錯誤:

在我這個模型里,這個代數環(huán)涉及到一百多個模塊,信號遍布整個模型,還有總線結構,把問題變得很復雜,難以分析。
ashow(為什么不再需要它了!)
多年來,我一直使用ashow函數高亮顯示代數環(huán)。以下是一個簡單模型的示例:

然而,它不太好用,而且它只能高亮顯示代數環(huán)的一部分。顯然,它也無法高亮顯示我現在需要解決的這個代數環(huán)。
這是因為,這里的代數環(huán)是定點信號,這就導致了類似“先有蛋還是先有雞”的問題。。為了讓 ashow 運行,它需要模型能編譯。然而,該環(huán)是定點信號,Simulink 引擎知道它自己無法求解,于是在模型編譯過程中報錯,導致無法使用 ashow。
就在那時,我想起了一個相對較新,但經常忘記的函數:
Simulink.BlockDiagram.getAlgebraicLoops
如果你仔細閱讀過代數環(huán)的相關文檔頁面,可能已經知道到,Simulink 提供了Simulink.BlockDiagram.getAlgebraicLoops 函數,它是一種新的,且更有效的代數環(huán)高亮顯示方法。
用上述同一示例,結果如下:

這個函數在 R2015a 中引入,并在 R2017b 中做了改進,能找到并高亮顯示更多類型的代數環(huán)。在我的案例中,它已經能高亮顯示涉及到定點信號的代數環(huán)。根據該環(huán)高亮提示,就可找出引入延遲模塊并打斷該環(huán)的最佳位置。
請注意以下幾點:
以紅色高亮顯示的模塊是我們稱之為代數變量的模塊。可以先嘗試在這類模塊的輸出端添加一個入延遲模塊(除非是連續(xù)信號,參見下列相關閱讀)。
如果檢測到該環(huán)是人為代數環(huán),它將以虛線高亮顯示,這表示應使用原子子系統或模型引用的 Minimize Algebraic Loop feature 勾選項來解決這個問題。
Simulink.BlockDiagram.getAlgebraicLoops 還會返回一個對象類型的返回值給出模型代數環(huán)的各種屬性,其中包括所涉及模塊的句柄,您可以酌情使用。
以下是高亮顯示的代數環(huán)的定點模型示例:

-
信號
+關注
關注
12文章
2914瀏覽量
80144 -
函數
+關注
關注
3文章
4417瀏覽量
67523 -
可視化
+關注
關注
1文章
1353瀏覽量
22806
發(fā)布評論請先 登錄
工業(yè)物聯網可視化平臺是什么?有什么功能?
基于 HT 技術的園區(qū)元宇宙可視化管理平臺
工業(yè)可視化平臺是什么
光伏電站可視化的實現
【產品介紹】Altair HyperView用于仿真和CAE分析的后處理和數據可視化
3Dfindit 提供的數字立方體模型為研究項目的可視化提供了支持
如何使用協議分析儀進行數據分析與可視化
工業(yè)設備可視化管理系統是什么
結構可視化:利用數據編輯器剖析數據內在架構?
工業(yè)設備數據集中監(jiān)控可視化管理平臺是什么
VirtualLab Fusion應用:3D系統可視化
可視化組態(tài)物聯網平臺是什么
可視化組態(tài)數據管理平臺是什么
VirtualLab Fusion應用:光學系統的3D可視化
關于可視化定點代數環(huán)的研究分析
評論