次のサブシステムを含む Simulink モデルがあります。
ブロックは同じ名前のbm_train_adapter
MATLAB 関数を呼び出し、すべての入力引数を 1 つのベクトルで渡します。
サブシステムには 900 (秒) のサンプル時間が与えられています。これが、すべての信号が赤色で表示されている理由です (離散信号の場合)。
ただし、デバッガーでは、bm_train_adapter
各シミュレーション タイムステップで関数が 2 回呼び出されることがわかりました。関数には副作用が含まれているため、これはひどく間違った結果をもたらします。
Simulink が解釈された MATLAB 関数をタイムステップごとに複数回呼び出すのはなぜですか? どうすればこれを防ぐことができますか?