Controlled Limiter

The Controlled Limiter is a single input, single output function similar to the Gain Block. However, the output of the Limiter function is restricted to the range specified by the output lower and upper limits. This model will operate in DC, AC and Transient analysis modes.

Note that the limit range is the value below the cntl_upper_limit and above the cntl_lower_limit at witch smoothing of the output begins (minimum positive value of voltage must exist between the cntl_upper input and the cntl_lower input at all times). For this model, then, the limit_range represents the delta with respect to the output level at witch smoothing occurs. Thus, for an input gain of 2.0 and output limits of 1.0 and -1.0 volts, the output will begin to smooth out at ±0.9 volts, which occurs when the input value is at ±0.4.

Note also that the Controlled Limiter code tests the input values of cntl_lower and cntl_upper to make sure that they are spaced far enough apart to guarantee the existence of a linear range between them. The range is calculated as the difference between (cntl_upper - upper_delta - limit_range) and (cntl_lower + lower_delta + limit_range) and must be greater than or equal to zero. Note that when the limit_range is specified as a fractional value, the limit_range used in the above is taken as the calculed fraction of the difference between cntl_upper and cntl_lower. Still, the potential exists for too great a limit_range value to be specified for proper operation, in which case the model will return an error message.

Port Table

Description Direction Default Type Allowed Types Vector Vector Bounds Null Allowed
input  IN v v,vd,i,id,vnam NO   NO
upper limit control input IN v v,vd,i,id,vnam NO   NO
lower limit control input IN v v,vd,i,id,vnam NO   NO
output OUT v v,vd,i,id NO   NO

Parameter Table

Name Description Data Type Default Value Limits Vector Vector Bounds Null Allowed
in_offset Input offset Real 0.0   NO   YES
gain Gain Real 1.0   NO   YES
upper_delta Output upper delta Real 0.0   NO   YES
lower_delta Output lower delta Real 0.0   NO   YES
limit_range Upper & lower sm. range Real 1.0e-6   NO   YES
fraction Smoothing percent/abs switch Boolean FALSE   NO   YES

Error Messages

CLIMIT function linear range less than zero.

This message occurs whenever the difference between the upper and lower control input values are close enough that there is no effective room for proper limiting to occur; this indicates an error in the control input values.


a6 36 84 varlimit

.model varlimit climit(in_offset=0.1 gain=2.5 upper_delta=0.0 lower_delta=0.0 limit_range=0.1 fraction=FALSE)

See also

XSPICE Devices
XSPICE Code Models