0
我想做一個函數庫,將允許我參數化過濾器和其他功能。在simulink標準塊中,我只能設置一個採樣時間,而不是採取輸入。有沒有關於我如何創建這個的想法?我的第一種方法是使用條件和時鐘來允許此參數存在,但時鐘也不能被參數化。作爲輸入simulink的採樣時間
在此先感謝。
我想做一個函數庫,將允許我參數化過濾器和其他功能。在simulink標準塊中,我只能設置一個採樣時間,而不是採取輸入。有沒有關於我如何創建這個的想法?我的第一種方法是使用條件和時鐘來允許此參數存在,但時鐘也不能被參數化。作爲輸入simulink的採樣時間
在此先感謝。
要做到這一點,唯一的方法是將每個塊編寫爲S函數。
如果使用M代碼則setup
方法,那麼您會需要定義塊採樣時間
block.SampleTimes = [-2 0];
則output
方法,那麼您會需要設置下一個樣本時間(基於輸入信號的值),將新值分配到block.NextTimeHit
。通過使用mdlGetTimeOfNextVarHit方法A Square Wave with Jitter
類似的事情可以在C-MEX S函數來完成: 這樣的例子可以在這裏找到。
參數化塊的典型方法是在Simulink上下文中定義它們的參數,具體意味着將數據作爲MATLAB變量輸入到塊對話框中,然後在開始模擬前設置這些變量的值。但不清楚這是你要求的,還是你說你想在模擬運行時(使用輸入信號)改變每個模塊的採樣率?或者您可能希望獲得恆定的採樣率,但允許用戶將其指定爲輸入信號而不是對話框?請澄清你的問題。 –
對不起,我試圖在模擬運行時使用輸入信號來改變每個模塊的採樣率。 I.E.如果我有一個離散的濾波器塊,我希望能夠用給定的輸入信號來改變這個塊的採樣。 – Adam