MATLAB NLE Reformulated

This code generator supplies MATLAB code for solution of an algebraic equation system with fsolve. Critical operations are relaxed, by the following procedure: log(x) and 1/x are written with as log(x+epsilon) and 1/(x+epsilon). The system is first solved with ZERO set to 1E-9 and in a second run with ZERO = 0.

Required Environment

Required Solver

  • fsolve (preinstalled wiath MATLAB)

User Options

  • TolFun: MATLAB’s option to set the convergence criterion for fsolve. For more information refer to MATLAB’s documentation
  • MaxIter: MATLAB’s option to set the maximum number of iterations for fsolve. For more information refer to MATLAB’s documentation.
  • MaxFunEvals: MATLAB’s option to set the maximum number of function evaluations of the algebraic system by fsolve. For more information refer to MATLAB’s documentation.
  • Reuse Jacobian: If this option is set to “yes”, MOSAIC reuses the derivatives from a previous run. The user has to decided if something has changed and if it is necessary to regenerate the derivatives. The generation of the derivatives of course takes some time.
  • Reuse Jacobian Pattern: If yes, MOSAIC reuses the old Jacobian pattern from a previous code generation

Usage for Simulation

  1. Open an NLE Evaluation in MOSAIC
  2. Set the variable specs to obtain a degree of freedom of zero.
  3. Select the Predefined Language Specification “MATLAB NLE”.
  4. Choose the Code Generator and Solver Properties in accordance with the User Options above.
  5. Press Generate Code.
  6. Copy everything from the View Code tab and paste it to a new m-file inside MATLAB’s IDE.
  7. Save the new m-file
  8. Press run inside MATLAB’s IDE.
  9. After completion the results appear in MATLAB’s command line window.
  10. Copy the lines containing the variable names and their final values and paste them into the Import tab of MOSAIC’s evaluation environment.
  11. Select the Predefined Language Specification “MATLAB NLE” and press Import.
  12.  The results will automatically update the Initial values in the Variable Specification tab and can be saved for future use by pressing Save As.