Jack
Jack

Reputation: 1232

The initialization process in Dymola and Start attribute uses

For a simple model in Dymola, the Start attribute works to provide initial conditions for the DOE equations, like the following examples.

model QuiescentModelUsingStart "Find steady-state solutions to LotkaVolterra equations"
  parameter Real alpha=0.1 "Reproduction rate of prey";
  parameter Real beta=0.02 "Mortality rate of predator per prey";
  parameter Real gamma=0.4 "Mortality rate of predator";
  parameter Real delta=0.02 "Reproduction rate of predator per prey";
  Real x(start=10) "Prey population";
  Real y(start=10) "Predator population";
initial equation
  der(x) = 0;
  der(y) = 0;
equation
  der(x) = x*(alpha-beta*y);
  der(y) = y*(delta*x-gamma);
end QuiescentModelUsingStart;

But for the complicated model like a power plant model, which is a strong nonlinear model, it is a lot more complicated.

enter image description here

Based on the Modelica by example(https://mbe.modelica.university/behavior/equations/variables/), the start attribute may also be used as an initial guess if the variable has been chosen as an iteration variable.

So, what is the process of initializing a model in Dymola? Would Dymola take the "equation" part into consideration during initialization, and set the derivate as zero, so it could Find the Steady-State as Initial Conditions?

Or Dymola just uses the "start attributes" and "initial equation" part to get a group of initial values?

How should I ensure that the initialization values I use could make up a steady-state? enter image description here

Upvotes: 1

Views: 697

Answers (1)

Markus A.
Markus A.

Reputation: 7500

Probably an excerpt from the Modelica Language Specification describes what you are looking for:

Before any operation is carried out with a Modelica model [e.g., simulation or linearization], initialization takes place to assign consistent values for all variables present in the model. During this phase, also the derivatives, der(..), and the pre-variables, pre(..), are interpreted as unknown algebraic variables. The initialization uses all equations and algorithms that are utilized in the intended operation [such as simulation or linearization].

This is the first part of Section 8.6, which is about three pages and should give you a pretty good insight on what happens during initialization. It also discusses the start attribute with fixed=true/false.

Upvotes: 4

Related Questions