Block that compares a boolean set point u_s with
a measured signal u_m and produces two outputs
that may be used to raise alarms about malfunctioning equipment.
The block sets the output yLocFal = true if
the set point is u_s = true but the measured signal is locked
at false, i.e., u_m = false.
Similarly, the block sets the output yLocTru = true
if the set point is u_s = false but the measured signal is locked
at true, i.e., u_m = true.
Hence, any output being true indicates an operational
problem.
To use this block, proceed as follows:
Set the parameter feedbackDelay ≥ 0 to specify how long the
feedback of the controlled device is allowed to take to report
its measured operational signal u_s
after a set point change u_m.
Set the parameter debounce ≥ 0
to specify how long the measured
signal u_m need to remain constant for it to be considered
stable.
Connect the inputs for the set point u_s and
the measured signal u_m to the output signals that need to be checked.
If either output is true, raise an alarm, such as by
connecting instances of
Buildings.Controls.OBC.CDL.Utilities.Assert
to the outputs of this block.
Any output being true indicates a problem.
The block has two timers that each start whenever the corresponding input changes.
One timer, called feedbackDelay+debounce timer, starts
whenever the set point u_s change, and it runs for a time equal to
feedbackDelay+debounce.
The other timer, called debounce timer, starts whenever
the measured signal u_m changes, and it runs for a time equal to
debounce.
The block starts verifying the inputs whenever the feedbackDelay+debounce timer
lapsed, or the debounce timer lapsed,
(and hence the measurement is stable,) whichever is first.
Both outputs being true indicates that the measured signal u_m
is not stable within feedbackDelay+debounce time.
Exactly one output being true indicates
that the measured signal u_m is stable, but
u_s ≠ u_m. In this case,
the block sets yLocFal = true if u_s = true
(the measured signal is locked at false),
or it sets yLocTru = true if u_s = false
(the measured signal is locked at true).
Therefore, exactly one output being true can be interpreted as follows:
Suppose true means on and false means off.
Then, yLocTru = true indicates that an equipment is locked
in operation mode but is commanded off; and similarly,
yLocFal = true indicates that it is locked in off mode
when it is commanded on.
The block works as follows.
Any change in set point u_s starts the feedbackDelay+debounce timer, and
any change in measured signal u_m starts the debounce timer.
As soon as the feedbackDelay+debounce timer
or the debounce timer lapsed,
whichever happens first,
the controller continuously performs these checks:
u_m is stable, thenyLocFal = yLocTru = true.true to flag an unstable measurement signal.)u_s ≠ u_m, thenyLocFal = false and yLocTru = false.u_s = true , thenyLocFal = true and yLocTru = false.yLocFal = false and yLocTru = true.