blockPre

Breaks algebraic loops by adding a delay of the output without advancing time (y = pre(u): event iteration continues until u = pre(u))

Information

This block delays the Boolean input by an infinitesimal small time delay and therefore breaks algebraic loops. In a network of logical blocks, in every closed connection loop, at least one logical block must have a delay, since algebraic systems of Boolean equations are not solvable.

This block returns the value of the input signal u from the last event iteration. The event iteration stops once both values are identical, i.e., if u = pre(u).

Parameters

TypeNameDefaultDescription
Booleanpre_u_startfalseStart value of pre(u) at initial time

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputuInput to be delayed by one event iteration
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputyInput delayed by one event iteration

Revisions

  • July 17, 2026, by Antoine Gautier:
    Replaced initial equation with start attribute on input. This is for IBPSA, #2136.
  • May 24, 2017, by Milica Grahovac:
    First CDL implementation.