# How to calculate PWM duty cycles for Solenoid current control

How to calculate the PWM duty cycle for Solenoid current control

I am trying to design a current control driver for Solenoid. I know the peak and the holding current range for solenoid.
How would I find the PWM duty cycle based on the current that I need to control?

Solenoid resistance at different temperature

1.1 Ohm @ 20 C 1.61 Ohm @ 150 C 0.85 Ohm @ -40 C

Voltage Range 9 V min 13 V Normal 16 V Max

Current Range

Disengaging clutch current 7 A min & Max 16 A, but I would like to limit the max current up to 10 A only.

Holding current for clutch is 1.2 A min to 2.2 Max

Frequency Range: 1000 to 50 Hz

Microcontroller is used for PWM output.

I want to design a current control circuitry using N MOSFETS for Solenoid

I am using current sense opamp to monitor the current through solenoid. I am using 20 m Ohm resistance for the current measurement.

I am trying to figure out how to calculate the PWM duty cycle for the disengaging current & holding current?

Should I go 100% duty cycle and control the current once the clutch is disengaged by the solenoid?

If you separate out the solenoid coil into its two main parts

1) resistance 2) inductance

you can determine the duty required reasonably accurately

What duty required to overcome the resistive component?

determine the voltage drop (pull-in current * resistance)

determine the duty to overcome this (Vr/Vdc)*100

What duty required to manage the current?

utilising $V = L\frac{\delta i}{\delta t}$

and knowing the voltage you are applying to the coil (Vdc - Vr), the inductance and the ripple you want to tolerate. This will give you an ON-TIME.

With the duty known for the resistive component and now the duty for the inductive component, a reasonable estimate of the required duty for pullin & hold can be determined.