How to calculate PWM duty cycles for Solenoid current control
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 &amp; hold can be determined.