ILIMIT |

Current limiter

The Current Limiter models the behavior of an operational amplifier or comparator device at a high level of abstraction. All of its pins act as inputs; three of the four also act as outputs. The model takes as input a voltage value from the "in" connector. It then applies an offset and a gain, and derives from it an equivalent internal voltage (veq), which it limits to fall between pos_pwr and neg_pwr. If veq is greater than the output voltage seen on the "out" connector, a sourcing current will flow from the output pin. Conversely, if the voltage is less than vout, a sinking current will flow into the output pin.

Depending on the polarity of the current flow, either a sourcing or a sinking resistance value (r_outsource, r_out_sink) is applied to govern the vout/i_out relationship. The chosen resistance will continue to control the output current until it reaches a maximum value specified by either i_limit_source or i_limit_sink. The latter mimics the current limiting behavior of many operational amplifier output stages.

During all operation, the output current is reflected either in the pos_pwr connector current or the neg_pwr current, depending on the polarity of i_out. Thus, realistic power consumption as seen in the supply rails is included in the model.

The user-specified smoothing parameters relate to model operation as follows: v_pwr_range controls the voltage below vpos_pwr and above vneg_pwr inputs beyond which veq [= gain * (vin + voffset)] is smoothed; i_source_range specifies the current below i_limit_source at which smoothing begins, as well as specifying the current increment above i_out=0.0 at which i_pos_pwr begins to transition to zero; i_sink_range serves the same purpose with respect to i_limit_sink and i_neg_pwr that i_source range serves for i_limit_source & i_pos_pwr; r_out_domain specifies the incremental value above and below (veq-vout)=0.0 at which r_out will be set to r_out_source and r_out_sink, respectively. For values of (veq- vout) less than r_out_domain and greater than -r_out_domain, r_out is interpolated smoothly between r_out_source & r_out_sink.

Description | Direction | Default Type | Allowed Types | Vector | Vector Bounds | Null Allowed |

input | IN | v | v,vd,i,id,vnam | NO | NO | |

positive power supply | INOUT | g | g,gd | NO | YES | |

negative power supply | INOUT | g | g,gd | NO | YES | |

output | INOUT | g | g,gd | NO | NO |

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 | ||

r_out_source | sourcing resistance | Real | 1.0 | 1.0e-9 / 1.0e9 | NO | YES | |

r_out_sink | sinking resistance | Real | 1.0 | 1.0e-9 / 1.0e9 | NO | YES | |

i_limit_source | current sourcing limit | Real | 10.0e-3 | 1.0e-12 / - | NO | YES | |

i_limit_sink | current sinking limit | Real | 10.0e-3 | 1.0e-12 / - | NO | YES | |

v_pwr_range | upper & lower power supply smoothing range | Real | 1.0e-6 | 1.0e-15 / - | NO | YES | |

i_source_range | sourcing current smoothing range | Real | 1.0e-9 | 1.0e-15 / - | NO | YES | |

i_sink_range | sinking current smoothing range | Real | 1.0e-9 | 1.0e-15 / - | NO | YES | |

r_out_domain | output resistance smoothing domain | Real | 1.0e-9 | 1.0e-15 / - | NO | YES |

```
al0 3 10 20 4 amp3
.model amp3 ilimit(in_offset=0.0 gain=16.0 r_out_source=i.0 r_out_sink=l.0 i_limit_source=le-3 i_limit_sink=10e-3
+ v_pwr_range=0.2 i_source_range=le-6 i_sink_range=le-6 r_out_domain=le-6)
```