To control and shape the current in RL circuit configurations for proportional solenoids, relay coils, or DC motors, you must size the series resistor to set the steady-state DC ceiling ($I = V/R$) and the inductor to set the time constant ($τ = L/R$) for ripple smoothing. Unlike purely resistive loads, inductive loads store energy in a magnetic field, meaning current cannot change instantaneously. By deliberately designing a series RL topology driven by a PWM signal, you convert a choppy digital voltage into a smooth, predictable analog current that dictates physical force or valve position.
The Core Topology: Series RL for Current Shaping
When designing a drive for an inductive load, the series RL topology is the standard. Here is the node layout for a low-side PWM switched circuit:
- Node A (V+): DC supply rail (e.g., 12V or 24V).
- Node B (Load Junction): Connection between the positive supply and the series Resistor ($R$).
- Node C (Switch Junction): Connection between the Inductor ($L$) and the low-side MOSFET drain.
- Node D (Ground): Source of the MOSFET to system ground, often containing a shunt resistor for current measurement.
Why series over parallel? A parallel RL circuit divides current and is primarily used in AC phase-shift networks or RF tank circuits. It is useless for DC load driving. A series RL topology forces the exact same current through both components. The resistor limits the maximum steady-state current to prevent thermal destruction of the coil wire, while the inductor opposes rapid changes in current ($di/dt$), effectively integrating the PWM voltage pulses into a flat DC current.
Behavior Matrix: How Component Shifts Alter RL Current
Understanding how each variable impacts the current waveform is critical for tuning proportional valves. The time constant $τ = L / R_{total}$ dictates how fast the current reaches 63.2% of its final value.
| Parameter Change | Effect on Steady-State Current | Effect on Time Constant ($τ$) | Effect on PWM Ripple |
|---|---|---|---|
| Increase Series $R$ | Decreases ($I = V/R$) | Decreases (Faster settling) | Decreases (Lower $ΔI$) |
| Increase Series $L$ | No Change | Increases (Slower settling) | Decreases (Smoother DC) |
| Increase PWM Freq | No Change | No Change | Decreases (Less $t_{on}$ time) |
| Increase Duty Cycle | Increases (Higher avg $V$) | No Change | Varies (Max at 50%) |
What Breaks at the Extremes?
Designing the current in an RL circuit requires respecting the failure modes at the topological extremes:
- Short the Resistor ($R = 0$): The time constant approaches infinity, limited only by the inductor's parasitic DCR. The current will ramp linearly and continuously until it exceeds the power supply's limit or melts the inductor's enamel winding. This is thermal runaway.
- Open the Inductor ($L = ∞$ or broken wire): Current drops to zero. If the circuit opens while current is flowing (e.g., a wire snaps off Node C while the MOSFET is on), the inductor's collapsing magnetic field will generate a massive voltage spike ($V = L × di/dt$), easily exceeding 100V and avalanching your switching MOSFET.
- Short the Inductor ($L = 0$): The circuit becomes purely resistive. PWM smoothing is lost entirely. The solenoid will chatter violently at the PWM frequency, causing acoustic noise and rapid mechanical wear.
Design Walkthrough: Sizing an RL Filter for a 12V Proportional Solenoid
Let's design a circuit to drive a generic 12V proportional solenoid (e.g., a Ledex or Johnson Electric tubular type) using a 20kHz PWM signal from an ESP32. We want a maximum holding current of 1.2A and a peak-to-peak current ripple of less than 10%.
Step 1: Baseline Load Characteristics
The solenoid datasheet shows a DC resistance ($R_{DCR}$) of 6.0 Ω and an inductance of 15mH. If we drove it directly with 12V DC, the steady-state current would be $12V / 6Ω = 2.0A$, which exceeds our 1.2A target and risks overheating the coil.
Step 2: Sizing the Resistor
To limit the maximum steady-state current to 1.2A at 100% duty cycle, the total resistance must be:
$R_{total} = V / I = 12V / 1.2A = 10Ω$
Since the solenoid already has 6Ω of DCR, we need an external series resistor of:
$R_{ext} = 10Ω - 6Ω = 4Ω$
Step 3: Sizing the Inductor for Ripple
The formula for peak-to-peak current ripple in an RL circuit is approximately $ΔI = (V_{L} × t_{on}) / L_{total}$.
At 20kHz, the period is 50μs. At 50% duty cycle (worst-case ripple), $t_{on} = 25μs$.
The voltage across the inductor during $t_{on}$ is roughly $V_{supply} - V_{R_{drop}} = 12V - (1.2A × 10Ω) = 0V$ at steady state, but during the transient ripple swing, it's roughly half the supply voltage minus the average drop. Let's use the simplified buck-derivative ripple formula: $ΔI = (V_{in} × D × (1-D)) / (f × L_{total})$.
We want $ΔI < 0.12A$ (10% of 1.2A).
$0.12A = (12V × 0.5 × 0.5) / (20,000 × L_{total})$
$L_{total} = 3 / (20,000 × 0.12) = 0.00125 H = 1.25mH$.
Wait, 1.25mH is very small. The solenoid's native 15mH is already more than enough to achieve <10% ripple at 20kHz. Therefore, no external inductor is needed for ripple smoothing at this frequency.
Step 4: The Concrete Component Pick
We only need the external resistor. We must handle the heat: $P = I^2 × R = (1.2A)^2 × 4Ω = 5.76W$.
We select the Vishay WSN2512 series wirewound resistor, specifically a custom 4Ω or two 2Ω in series. Let's use two Vishay WSN25122R000JEA (2Ω, 1W each) in series to share the thermal load, or step up to a WSN4527 4Ω 2W resistor and derate it with a heatsink. For robust bench testing, a Ohmite 25J4R0E (4Ω, 5W wirewound, ~$2.50) is the perfect physical fit.
Decision Tree: Picking Your R and L Strategy
Not every application prioritizes smooth DC current. Use this decision matrix to finalize your component strategy when shaping the current in an RL circuit.
| Application Goal | Primary Constraint | Design Strategy | Concrete Default Pick |
|---|---|---|---|
| High-Speed Sorting Valve | Fastest possible $di/dt$ (response time) | Minimize $L$, maximize $R$, drive with high voltage (e.g., 48V) but limit current with $R$. | Low-inductance voice coil + Ohmite 80 Series high-wattage wirewound resistor. |
| Ultra-Smooth Force Control | Zero acoustic hum, minimal ripple at low PWM freq (1kHz) | Maximize $L$, minimize $R$. Add external toroidal choke. | Bourns 1140-101K-RC (100μH, radial) + low-side MOSFET with minimal $R_{DS(on)}$. |
| High-Efficiency Battery Drive | Minimize $I^2R$ heat losses in the resistor. | Eliminate series $R$. Use high-frequency PWM (>30kHz) and rely on the load's native DCR. | Use a TI DRV103 or similar integrated PWM solenoid driver IC. |
| General Purpose 12V Proportional | Balance of heat, cost, and ripple at 20kHz. | Add series $R$ to limit max current; rely on native $L$ for smoothing. | Ohmite 25J Series 5W resistor sized to $R_{total} = V_{max}/I_{target}$. |
Breadboard Verification: Testing RL Current Step-by-Step
You cannot verify the current in an RL circuit by simply measuring voltage across the load. You must measure the actual current waveform. Here is the exact bench procedure to validate your design using a current shunt and an oscilloscope.
- Insert the Shunt: Place a 0.1Ω 1W precision resistor (e.g., Bourns CSS2H-2512R) between Node D (MOSFET source) and system Ground. This converts current to a measurable voltage ($V = I × 0.1$). At 1.2A, you will see 120mV.
- Probe Setup: Connect Oscilloscope CH1 to Node A (PWM signal) to monitor duty cycle. Connect CH2 across the 0.1Ω shunt resistor. Use the oscilloscope's math function to multiply CH2 by 10, scaling the display directly to Amps.
- Trigger Configuration: Set the scope to trigger on the rising edge of CH1 (PWM). Set the timebase to 10μs/div to clearly see the 50μs period of a 20kHz signal.
- Initial Power-On: Set your microcontroller PWM to 10% duty cycle. Power the 12V rail. Observe CH2. You should see the current ramping up exponentially during the $t_{on}$ phase and decaying during $t_{off}$.
- Measure the Time Constant ($τ$): Change PWM to a single long pulse (or 90% duty cycle). Use the scope cursors to measure the time it takes for the current to reach 63.2% of its final steady-state value. Compare this measured $τ$ against your calculated $L/R$ value. If it's significantly faster, your inductor is saturating and losing inductance at high current.
- Ripple Validation: Set PWM to 50%. Zoom in on the steady-state waveform. Measure the peak-to-peak voltage on CH2. If your target was <10% ripple (120mA), your CH2 peak-to-peak voltage should be less than 12mV. If it is higher, your PWM frequency is too low, or your inductance is insufficient.
- Flyback Diode Check: Ensure a fast-recovery or Schottky diode (e.g., 1N5819) is placed in reverse-parallel across the entire RL load (Cathode to Node B, Anode to Node C). Turn off the PWM abruptly and check Node C with CH1. The voltage spike should be clamped to roughly -0.4V. If you see spikes exceeding 20V, your diode is missing, too slow, or wired backward.
By systematically sizing the resistor for thermal limits and validating the inductive smoothing on the bench, you transform a theoretical RL schematic into a reliable, field-ready actuator drive. Always trust the shunt resistor over the math; the physical copper will tell you exactly what the current is doing.






