CONTINUOUS_MODEL Comparator ABSTRACT "Comparator of two signals, with dead band. IF InHigh - InLow > DeadBand/2 THEN Outsignal = maxOut + offset ELSE_IF InHigh - InLow < - DeadBand/2 THEN Outsignal = -maxOut + offset ELSE Old_signal END_IF " EQUATIONS OutSignal = OldSignal; Top := eventp(Hi, InHigh - InLow - DeadBand/2) ; Bottom := eventn(Lo, InHigh - InLow + DeadBand/2) ; OldSignal := IF Top > 0 THEN maxOut + offset ELSE_IF Bottom < 0 THEN -maxOut + offset ELSE OldSignal END_IF ; LINKS /* type name variables */ GENERIC InLowLink InLow ; GENERIC InHighLink InHigh ; GENERIC OutSignalLink OutSignal ; VARIABLES /* type name role def min max description */ generic Hi A_S 1 "Event var up" generic Lo A_S 1 "Event var down" generic OldSignal A_S 1 "State On or Off" generic InHigh IN 1 "In-signal (High), Positive output if greater than other insignal" generic InLow IN 0 "In-signal (Low), Positive output if smaller than other insignal" generic OutSignal OUT 0 "Out-signal, amplitude and offset according to parameters" generic Top LOC "Over the top" generic Bottom LOC "Down under" PARAMETERS /* type name role def min max description */ generic DeadBand S_P 0.01 "Dead band, within which outsignal of last timestep is retained" generic maxOut S_P 0.5 "output amplitude" generic offset S_P 0.5 "output offset" END_MODEL