modelLimitersHomotopy

Tests the homotopy-based initialization options of the limiter blocks

Extends from Modelica.Icons.Example (Icon for runnable examples).

Information

These test models demonstrate the use of the advanced homotopy options homotopyType of the Limiter and VariableLimiter blocks.

The models represent a basic control system using a PI with anti-windup in three different configurations:

  1. The loop is initialized in steady-state with the upper saturation active and homotopyType=UpperLimit
  2. The loop is initialized in steady-state with the lower saturation active and homotopyType=LowerLimit
  3. The loop is initialized in steady-state with the upper saturation active and homotopyType=NoHomotopy

The mustUseHomotopyblock forces the tool to use homotopy-based initialization; in order to do so, a system with two solutions x = 0 and x = 100 is provided. The start value leads to the convergence to x = 0; only if homotopy is active, the solution accepted by the assert statement (x = 100) is obtained.

Components

TypeNameDefaultDescription
MustUseHomotopymustUseHomotopy
Modelica.Blocks.Continuous.FirstOrdercontrollerFeedbackPart1
Modelica.Blocks.Nonlinear.Limiterlimiter1
Modelica.Blocks.Math.FeedbackinternalFeedback1
Modelica.Blocks.Math.Asinasin1
Modelica.Blocks.Sources.Rampramp1
Modelica.Blocks.Continuous.FirstOrderfirstOrder1
Modelica.Blocks.Math.Feedbackfeedback1
Modelica.Blocks.Continuous.FirstOrdercontrollerFeedbackPart2
Modelica.Blocks.Nonlinear.Limiterlimiter2
Modelica.Blocks.Math.FeedbackinternalFeedback2
Modelica.Blocks.Math.Asinasin2
Modelica.Blocks.Sources.Rampramp2
Modelica.Blocks.Continuous.FirstOrderfirstOrder2
Modelica.Blocks.Math.Feedbackfeedback2
Modelica.Blocks.Continuous.FirstOrdercontrollerFeedbackPart3
Modelica.Blocks.Nonlinear.Limiterlimiter3
Modelica.Blocks.Math.FeedbackinternalFeedback3
Modelica.Blocks.Math.Asinasin3
Modelica.Blocks.Sources.Rampramp3
Modelica.Blocks.Continuous.FirstOrderfirstOrder3
Modelica.Blocks.Math.Feedbackfeedback3
Modelica.Blocks.Continuous.FirstOrdercontrollerFeedbackPart4
Modelica.Blocks.Nonlinear.VariableLimiterlimiter4
Modelica.Blocks.Math.FeedbackinternalFeedback4
Modelica.Blocks.Math.Asinasin4
Modelica.Blocks.Sources.Rampramp4
Modelica.Blocks.Continuous.FirstOrderfirstOrder4
Modelica.Blocks.Math.Feedbackfeedback4
Modelica.Blocks.Continuous.FirstOrdercontrollerFeedbackPart5
Modelica.Blocks.Nonlinear.VariableLimiterlimiter5
Modelica.Blocks.Math.FeedbackinternalFeedback5
Modelica.Blocks.Math.Asinasin5
Modelica.Blocks.Sources.Rampramp5
Modelica.Blocks.Continuous.FirstOrderfirstOrder5
Modelica.Blocks.Math.Feedbackfeedback5
Modelica.Blocks.Continuous.FirstOrdercontrollerFeedbackPart6
Modelica.Blocks.Nonlinear.VariableLimiterlimiter6
Modelica.Blocks.Math.FeedbackinternalFeedback6
Modelica.Blocks.Math.Asinasin6
Modelica.Blocks.Sources.Rampramp6
Modelica.Blocks.Continuous.FirstOrderfirstOrder6
Modelica.Blocks.Math.Feedbackfeedback6
Modelica.Blocks.Sources.RealExpressionuMax1
Modelica.Blocks.Sources.RealExpressionuMax2
Modelica.Blocks.Sources.RealExpressionuMax3
Modelica.Blocks.Sources.RealExpressionuMin1
Modelica.Blocks.Sources.RealExpressionuMin2
Modelica.Blocks.Sources.RealExpressionuMin3

Contents

NameDescription
MustUseHomotopyOnly works with homotopy-based initialization