2015-04-05 102 views
0

我在Matlab Simulink上創建了以下程序框圖。當INPUT> = 0時OUT1 = 1 OUT2 = 0,當INPUT <爲0時OUT1 = 0 OUT2 = 1但是它沒有給出預期的結果。這是什麼原因。任何建議,使其正常工作,將不勝感激。在MATLAB中使用if函數Simulink

enter image description here

+1

您的塊沒有連接。檢查連接。 (你會發現它並不是一條直線 – thewaywewalk 2015-04-05 10:53:12

+1

沒有它們已經連接在matlab simulink中if塊和動作子系統之間用虛線表示的連接 – user2835684 2015-04-05 12:55:20

+0

如果連接到u1輸入的常量值塊給出了預期的結果,當常數變爲正值或負值時,但當信號生成器塊連接到輸入u1時,它不起作用。 – user2835684 2015-04-05 12:59:08

回答

0

如果此功能塊的東西沒有工作。所以我想出了一種不同的方法來獲得我想要的符號塊的結果。解決方案發布如下。感謝大家的幫助。

enter image description here

0

在許多情況下的IF被轉換成switch。你計算案例並選擇預期的案例。在這裏,您可以將常數[1 0]和常數[0 1]連接到第一個和第三個輸入,並將解決方案中的符號塊連接到第二個輸入。

2

您看到的行爲可以通過注意以下進行說明:

  • 從如果子系統輸出的作用就像一個使能信號。
  • 默認情況下,如果(子)系統被禁用,則If Action Subsystem的輸出端口設置爲,其值爲

這可以通過將輸出端口(if動作子系統內)的參數對話框,並改變輸出時禁用屬性重置改變。您還需要將默認值更改爲零。