Hi,
I am controlling a proportional coil on a proportional hydraulic solenoid valve. My circuit is very basic but it works well using the Arduino Uno and a MOSFET transistor. I am currently running PWM to control my coil at a 122hz frequency. You can see my attached circuit.
In order to reduce stiction and hysteresis inside the valve I am trying to introduce a dither / noise ripple over my PWM control as shown below.
I know at low frequency PWM dither is produced naturally as a by-product of PWM. (see below).
However my PWM duty cycle varies depending on an input from a potentiometer and so it is impossible to control the dither frequency and amplitude independently of the PWM frequency and duty cycle. I am wanting to run my PWM frequency much higher eg. 3kHz, but superimpose a constant and periodic dither of 140Hz in which I can control the frequency and amplitude separately.
I've already done quite alot of research into this and have a few ideas. The first is a software induced dither, creating small fluctuations in the duty cycle using code such as this.
The problem is, I am still unable to control the frequency of the dither.
My other option is some form of hardware method. So basically using an additional mosfet with its gate controlled by 3kHz PWM, but also its source linked to a separate PWM pin operating at 140hZ @ 10% duty cycle of the 3kHz PWM pin. The drain from this MOSFET is then used to drive the gate of a second MOSFET? See my attachment PWM Mosfet config.
Is this a feasible method of achieving my goal? Or has anyone had luck introducing dither in other ways?
Many thanks,
Jim
I am controlling a proportional coil on a proportional hydraulic solenoid valve. My circuit is very basic but it works well using the Arduino Uno and a MOSFET transistor. I am currently running PWM to control my coil at a 122hz frequency. You can see my attached circuit.
In order to reduce stiction and hysteresis inside the valve I am trying to introduce a dither / noise ripple over my PWM control as shown below.

I know at low frequency PWM dither is produced naturally as a by-product of PWM. (see below).

However my PWM duty cycle varies depending on an input from a potentiometer and so it is impossible to control the dither frequency and amplitude independently of the PWM frequency and duty cycle. I am wanting to run my PWM frequency much higher eg. 3kHz, but superimpose a constant and periodic dither of 140Hz in which I can control the frequency and amplitude separately.
I've already done quite alot of research into this and have a few ideas. The first is a software induced dither, creating small fluctuations in the duty cycle using code such as this.
Code:
analogWrite(pinNumber, dutyCycle+random(-x,y));
The problem is, I am still unable to control the frequency of the dither.
My other option is some form of hardware method. So basically using an additional mosfet with its gate controlled by 3kHz PWM, but also its source linked to a separate PWM pin operating at 140hZ @ 10% duty cycle of the 3kHz PWM pin. The drain from this MOSFET is then used to drive the gate of a second MOSFET? See my attachment PWM Mosfet config.
Is this a feasible method of achieving my goal? Or has anyone had luck introducing dither in other ways?
Many thanks,
Jim
Attachments
-
159 KB Views: 40
-
48.4 KB Views: 38