MATLAB: How to compare for just one time in simulink


in my circuit in simulink i have to compare the current with a constant and if this current is above some value it would disconnect one resistor but when this happens the current will be under the value spicified and the resistor is connected and it stays between connecting and disconnecting all the time of simulation . i wonder how to compare for just one time and keep the same value of the output signal from the compare to constant block after the comparision

Best Answer

  • Put your comparision logic in enabled subsystem and enable the subsystem only on first sample time.
    There can be many ways of enabling subsystem for only first sample time. One of which is as below
    1. Put your comparision logic in subsystem.
    2. Put an Enable port in the same subsystem.Make sure that State when enabling property of your enable block is set to held.
    3. Connect output of an Unit delay block to enable port of this subsystem.For unit delay block set Sample time-->-1, Initial condition-->1
    4. Connect a constant block to the input of Unit delay.For constant block set Constant Value-->0