 | CriticalDamping Output the input signal filtered with an n-th order filter with critical damping |
 | Der Derivative of input (= analytic differentations) |
 | Derivative Approximated derivative block |
 | FirstOrder First order transfer function block (= 1 pole) |
 | Integrator Output the integral of the input signal |
 | LimIntegrator Integrator with limited value of the output |
 | LimPID P, PI, PD, and PID controller with limited output, anti-windup compensation and setpoint weighting |
 | LowpassButterworth Output the input signal filtered with a low pass Butterworth filter of any order |
 | PI Proportional-Integral controller |
 | PID PID-controller in additive description form |
 | SecondOrder Second order transfer function block (= 2 poles) |
 | StateSpace Linear state space system |
 | TransferFunction Linear transfer function |
This package contains basic continuous input/output blocks
described by differential equations.
All blocks of this package can be initialized in different
ways controlled by parameter initType. The possible
values of initType are defined in
Modelica.Blocks.Types.Init:
| Name |
Description |
| Init.NoInit |
no initialization (start values are used as guess values with fixed=false) |
| Init.SteadyState |
steady state initialization (derivatives of states are zero) |
| Init.InitialState |
Initialization with initial states |
| Init.InitialOutput |
Initialization with initial outputs (and steady state of the states if possibles) |
For backward compatibility reasons the default of all blocks is
Init.NoInit, with the exception of Integrator and LimIntegrator
where the default is Init.InitialState (this was the initialization
defined in version 2.2 of the Modelica standard library).
In many cases, the most useful initial condition is
Init.SteadyState because initial transients are then no longer
present. The drawback is that in combination with a non-linear
plant, non-linear algebraic equations occur that might be
difficult to solve if appropriate guess values for the
iteration variables are not provided (i.e. start values with fixed=false).
However, it is often already useful to just initialize
the linear blocks from the Continuous blocks library in SteadyState.
This is uncritical, because only linear algebraic equations occur.
If Init.NoInit is set, then the start values for the states are
interpreted as guess values and are propagated to the
states with fixed=false.
Note, initialization with Init.SteadyState is usually difficult
for a block that contains an integrator
(Integrator, LimIntegrator, PI, PID, LimPID).
This is due to the basic equation of an integrator:
initial equation
der(y) = 0; // Init.SteadyState
equation
der(y) = k*u;
The steady state equation leads to the condition that the input to the
integrator is zero. If the input u is already (directly or indirectly) defined
by another initial condition, then the initialization problem is singular
(has none or infinitely many solutions). This situation occurs often
for mechanical systems, where, e.g., u = desiredSpeed - measuredSpeed and
since speed is both a state and a derivative, it is always defined by
Init.InitialState or Init.SteadyState initializtion.
In such a case, Init.NoInit has to be selected for the integrator
and an additional initial equation has to be added to the system
to which the integrator is connected. E.g., useful initial conditions
for a 1-dim. rotational inertia controlled by a PI controller are that
angle, speed, and acceleration of the inertia are zero.