Initializing discrete states with Matlab functions

I have the following hypothetical system:
The discrete delay element uses input port to initialize its state when enabled. When I check the system steps in debug mode I realized that simulink continue to execute/output "matlab function" even after the delay element is initialized properly. Therefore simulink simply wastes computational power for no reason during simulation phase.
Is there a way to disable the matlab function block after the discrete delay is initialized?

 採用された回答

Mark McBroom
Mark McBroom 2018 年 7 月 5 日

0 投票

If you have a newer version of MATLAB, you can place your MATLAB Function block in a Simulink Initialize Function block as described here .
Alternately, you can use a pattern similar to the following to enable the MATLAB function for the first timestep only:
1. Put matlab fcn block into an enabled SS 2. Insert a constant block with value of zero, connect that to a unit delay block ( with initial value set to one) and then connect the unit delay block to the enabled SS. This should then only execute your matlab fcn block at init and t+1. It should be disabled for all subsequent time steps.

その他の回答 (0 件)

カテゴリ

製品

リリース

R2017b

質問済み:

2018 年 7 月 5 日

回答済み:

2018 年 7 月 5 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by