How exactly does Simulink 6.0 (R14) and Simulink 6.1 (R14SP1) solve algebraic loops?

1 view (last 30 days)
I would like additional information on how exactly Simulink 6.0 (R14) and Simulink 6.1 (R14SP1) solve algebraic loops within models.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
Simulink 6.0 (R14) and Simulink 6.1 (R14SP1) can use either of the following algorithms to solve algebraic loops:
  • a dogleg trust region algorithm
  • three-point parabolic line search globalized Newton method
The choice is up to the user. By default, the trust region algorithm is used.
Starting in Simulink 6.2 (R14SP2), a hidden model parameter was added which can be used to switch back and forth between the two solvers.
The usage is as follows:
set_param(model,'AlgebraicLoopSolver',solverOption);
where solver option can be either 'TrustRegion' (the default), or 'LineSearch'.
Here is some additional information in question-and-answer format:
1. What is the step size of each iteration when trying to solve algebraic loop?
The methods are adaptive, and as such, the step size varies, depending on the algebraic equation residual function behavior.
2. What are the maximum iterations allowed?
We allow 200*(n+1) functions evaluations, counting function evaluations used for generating numerical Jacobians, where "n" is the number of algebraic variables in a particular algebraic loop.
3. What is the convergence criteria?
The Trust Region method uses the following criteria:
|F| < 128*eps*|x|
or
|deltax| < 128*eps*|x|
However, when it looks like the method is converging, but the iterations stop reducing the residual (say, due to the limit of numerical accuracy), we use a more relaxed criterion:
|F| < 1e-4*|x|
or
|deltax| < 1e-4*|x|
The Line Search method uses the following criterion:
|F| < eps*(1+|Finitial|)
or
|deltax| < sqrt(eps)*(1+|x|)
4. Is there a way for me to change the parameters that Simulink uses to solve algebraic loops?
The values are set by Simulink and other than switching between the algorithms, there is no way for the user to change the parameters.

More Answers (0)

Categories

Find more on Systems of Nonlinear Equations in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!