Edit me

Yop uses CasADi for symbolic representation of model objects. This means the expressions making up a YopSystem can only contain expressions the can be formulated in CasADi’s symbolic framework. For instance the if-statesments like:

function dx = mySystem(t, x)

% ...

if x > 10
  % ...
  % Some code
  % ...
end

% ...

end

In this case it is possible to replace the if-statement with the CasADi function if_else(expression, trueCase, falseCase). Most operations are available in CasADi, but for a complete list, visit the CasADi website.

However, it is possible for the function to contain if-statements as long as the conditions do not operate on symbolic variables. The following is possible:

function dx = mySystem(t, x, aVariableNotPartOfTheYopSystem)

% ...

if aVariableNotPartOfTheYopSystem > 10
  dx = yourSymbolicExpression;

else
  dx = yourOtherSymbolicExpression;

end

% ...

end