MATLAB Answers


If block does not check conditions and do all of them at the same time

Asked by Mehrshad Abdollahpour on 10 Nov 2018 at 13:35
Latest activity Commented on by Mehrshad Abdollahpour on 12 Nov 2018 at 10:24
i using if block to solve a equation but the problem is when "0<u1<=0.0042" condition is not happen (X=0.0043) simulink acts like it happens and mathematical errors happen because of that.


Sign in to comment.


1 Answer

Answer by Walter Roberson
on 10 Nov 2018 at 15:56

0<u1<=0.0042 means ((0<u1)<=0.0042) . The first of those gives a result that is either 0 (false) or 1 (true) and that is then compared to 0.0042.
You need to use the general form A<u && u<=B


look at the pic (for X=0.0043) , i done as you said and it shows the same error as "0<u1<0.0042" :
I notice that the block dialog talks about comma separated lists of expressions, but I do not know if they are and'd or or'd together
comma separator just make another elsif expression in if block.

Sign in to comment.