Simulink中的虚拟和非虚拟子系统
說明:以下內(nèi)容僅來自個人觀點。
本人最近在使用Goto/From模塊穿越子系統(tǒng)時遇到以下報錯內(nèi)容:
Goto/From connections cannot cross nonvirtual subsystem boundaries. The only exception is when a goto is connected to a state output port.
(Goto/From連接不能跨越非虛擬子系統(tǒng)邊界。唯一的例外是當(dāng)goto連接到狀態(tài)輸出端口時。)
1.虛擬/非虛擬
在網(wǎng)上或MATLAB的幫助文檔中并沒有找到關(guān)于虛擬/非虛擬子系統(tǒng)的詳細介紹,但是可以找到關(guān)于虛擬/非虛擬模塊的介紹,大致如下:
simulink將模塊分為虛擬/非虛擬模塊。非虛擬模塊在仿真中起主動作用,添加或刪除會影響仿真結(jié)果;虛擬模塊在仿真中不起主動作用,只是用來組織、簡化模型。
典型的虛擬模塊有:Goto、From、Mux等。
對于Subsystem模塊,默認為虛擬子系統(tǒng)。若將其改為條件執(zhí)行子系統(tǒng),如,Enabled Subsystem、Trigger Subsystem等(個人認為是Ports & Subsystems庫中除了Subsystem模塊外的所有條件子系統(tǒng),具體可自行測試),則為非虛擬子系統(tǒng)。其在系統(tǒng)仿真中的作用可類比非虛擬模塊。
非虛擬和虛擬模塊幫助文檔網(wǎng)址:https://ww2.mathworks.cn/help/simulink/ug/nonvirtual-and-virtual-blocks.html
2.Goto模塊穿越子系統(tǒng)邊界
查看goto模塊幫助文檔可以看到這句話:From-Goto模塊連接不能穿過非虛擬子系統(tǒng)邊界。但存在以下例外情況,與一個條件子系統(tǒng)的狀態(tài)端口連接的Goto模塊,對另一個條件執(zhí)行子系統(tǒng)中的From模塊是可見的。
Goto模塊幫助文檔網(wǎng)址:https://ww2.mathworks.cn/help/simulink/slref/goto.html?searchHighlight=goto&s_tid=srchtitle
一個穿越非虛擬子系統(tǒng)邊界的很好的例子是該幫助文檔下的Building a Clutch LockUp Model.
該模型中Unlocked和Locked都是使能子系統(tǒng),這兩個子系統(tǒng)中的積分模塊的狀態(tài)輸出端口連接goto模塊,各自積分模塊的初始值輸入端口來自對應(yīng)的使能子系統(tǒng)積分模塊的狀態(tài)輸出端口。
進行下列實驗:將Unlocked子系統(tǒng)中的unlocked_wv在模型最外層系統(tǒng)進行輸出顯示可得下圖。
總結(jié)
以上是生活随笔為你收集整理的Simulink中的虚拟和非虚拟子系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文带你了解安全多方计算
- 下一篇: 台式计算机重装系统,台式机重装系统其实很