Assessing Precision of a Current‑Pump Circuit Across Resistor Tolerances and Automotive Temperature Ranges
In this article, we use LTspice to analyze the precision of a current‑pump circuit when all resistors are non‑ideal and temperature is varied across the automotive temperature range.
Last week, I published two articles on a constant‑current source circuit comprising two op‑amps and five resistors:

Diagram of a precision current pump. Image used courtesy of Analog Devices
In the second article, I employed LTspice to evaluate how imperfect resistor matching affects the circuit’s output. The error was defined as the difference between the simulated load current and the current predicted by the analytical expression in the application note.
$$I_{OUT}=\\frac{V_{IN}\\left(\\frac{R4}{R2}\\right)}{R1}$$
Imperfect matching was simulated by applying LTspice’s Monte Carlo function to vary R3 and R5 within a specified tolerance, while keeping R1, R2, and R4 at their nominal values.
In this study, we perform a comprehensive simulation that accounts for 0.1% resistor tolerance and temperature variations. The goal is to quantify the precision achievable under realistic conditions.
Simulating at Specific Temperatures
Some op‑amp models in LTspice exhibit temperature dependence, while others do not. Using a trial‑and‑error approach, I found that the AD8606—designed for low‑voltage, high‑precision applications—shows temperature sensitivity in its macro‑model, whereas the LT1001A does not.
Temperature can be incorporated into LTspice using the .temp directive. For example, .temp -40 125 runs the simulation at –40 °C and +125 °C.
The following schematic illustrates how an op‑amp’s output varies with temperature.

The theoretical output current for the test case is (0.6 V – 0.5 V)/(100 Ω) = 1 mA. The simulated values at the temperatures specified by the .temp directive are shown below:

Monte Carlo Simulation with Temperature Variations
When the Monte Carlo function (mc) is applied to a resistor and combined with .step param run …, LTspice performs multiple independent runs, each time selecting a new resistor value within the tolerance range.
Assuming the circuit must operate across the full automotive temperature range (–40 °C to +125 °C)—the AD8606’s specified range—I added a .temp directive. The number of runs equals the number of temperature points times the number of Monte Carlo iterations per temperature.
To keep simulation time reasonable, I chose a few representative temperatures that span the entire range, because the op‑amp’s temperature response is monotonic and subtle.
The schematic used for the tolerance‑plus‑temperature study is shown below:

The resulting plot of load current from 900 runs (100 runs per temperature) is displayed here:

Performance Statistics
I exported the simulation data to a text file and imported it into Excel for analysis. The raw data table looks like this after import:

From the dataset, the mean output current is 0.9977 mA, indicating a 0.0023 mA (0.23 %) offset due to non‑ideal op‑amp behavior. The standard deviation is 2.86 µA, with a maximum of 1.0053 mA and a minimum of 0.9899 mA.
Even with all resistors at 0.1 % tolerance and a wide temperature swing, the load current stays within ±5 µA of the target in the positive direction and within –10 µA in the negative direction—an impressive level of precision.
Conclusion
By combining Monte Carlo analysis with LTspice’s temperature directive, we demonstrated that a two‑op‑amp precision current source can deliver exceptional accuracy over a broad automotive temperature range. Statistical analysis confirms sub‑10 µA variation under realistic component tolerances.
Industrial Technology
- Enhance SaaS and Cloud Security with Automated Testing and Performance Monitoring
- Integrated QR, RFID, and Temperature Verification Access Control System
- Accurate Temperature Monitoring in a Server Closet with Raspberry Pi
- Optimizing Autoclave Manufacturing for Superior Performance and Safety
- Harnessing Collaborative Robots: Boost Efficiency & Growth for Small & Medium Manufacturers
- Read Temperature & Humidity with DHT11 on Blynk – Step‑by‑Step Arduino Tutorial
- Arduino-Based Outdoor Thermometer with Trend, Max, and Min Readings
- Arduino Ultrasonic Distance & Temperature Monitor with LCD Alarm System
- Arduino‑Powered Smart Coffee Maker with Bluetooth Control and Temperature Monitoring
- Enhancing 3D-Printed Parts: Secondary Operations for Superior Performance & Finish