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