transconductance circuit to power a pneumatic valve

Hi, im trying to model a transconductance circuit (or VCCS)
to power a pneumatic proportional valve, using an Arduino DUE
with an opamp and a resistor. The valve specs are 24Vdc and
current from 0 to 85mA, need to be current controlled. It's
simply a resisance of about 200ohm. The signal comes from Arduino
DAC into the amplifier.

So, the arduino signal goes into the noninverting input of the
opamp (i'm using an LM7171, dont know if it's the optimal one),
a precise resistor of 27.4ohm is inserted from the inverting
input to ground and the valve from opamp output to inverting
input. The opamp is single supplied from 30V (V+) to ground (V-).
When arduino applies 2.7V to opamp input, the output should
supply 100mA.

Ive tried simulating this circuit with some programs and seems
working well. But I'm not really good in electronics and i don't
wanna burn the opamp or arduino for a stupid mistake.

Is this circuit a good choice? Is this opamp a good choice too?
Should I add a resistor from arduino output to opamp noninverting
input to prevent high current flowing from or to arduino input (it
can bear like 20mA, i know ideally there should not be any current).
Is it a problem that the load is not grounded?
Should i add some capacitor somewhere in the circuit (I'm not sure
what I'm asking here but I've seen a lot of circuit with capacitors
for stability).

Some more information: this circuit controls a pneumatic valve, so
it's a mechanical system. I chose a fast opamp even if i won't give
an input signal with a freuency higher than 500Hz. I chose it basically
because it can give me 100mA and be supplied with 30V.

Thanks in advance for any answer :slight_smile:

Post the circuit diagram and a link to the opamp data sheet. For most practical purposes, you can consider op amp inputs to draw no current.

Proportional valve control has been discussed on this forum recently, for example
http://forum.arduino.cc/index.php?topic=572994.0

Google "arduino proportional valve control" for many others.

Most Arduinos have no DAC, but analog valves love PWM signals because the ripple will prevent them from sticking. See the data sheet of your valve for details.

Don’t forget the “analog “ output is just a series of Pulses, as mention above, with pulse width modulation , so the average voltage changes in an analog fashion m, it’s not a true analog voltage .
You may be able to just drive a transistor switch to operate your valve, but let’s see the circuit

couple of things.
#1) the op-amp is 15v+/- not 15v / ground. Many op-amps are powered with a +5 and -5v power supply. A single source op-amp could work in this application.

#2) your loop current seems odd for pneumatic valves here in the US. we are typically 4-20mA for commercial although years (decades) ago, I had to do some industrial work with a higher range. but almost all process controls work in a range that is from a non-zero starting point, 10-50mA or some such. the low end provides power to the electronics on the other end and is a 2-wire process control signal.

#3) it is assumed that you are feeding a positioning device on the proportional valve, a device that measures the piston stroke and then positions the distance of the stroke based on the input value. That is the device of concern that takes the electronics and converts them into pneumatic values. For the electronics folks, it is almost like an op-amp, it has two inputs, a control signal and a distance signal and just applies whatever pressure is needed to move the actuator. this makes the assembly operate much like a servo.....

#4) The Op-Amp does not need to be able to power the loop. You can feed an FET. This allows you to pick a more common op-amp and have the power stage a more common device as well.

#5) yes to your question about protecting the output pin a 1k resistor into an op-amp would allow the signal to be present and protect your output pin in case of mistakes.

#6) we hate to work in the dark. you should have data sheet for the device you want to power, and post that for us.
You should have a schematic for the circuit are you working with. Most OP-AMP data sheets have application notes with circuit designs. A good place to start. again, post that so we have a common frame of reference.

DrDiettrich:
Most Arduinos have no DAC, but analog valves love PWM signals because the ripple will prevent them from sticking. See the data sheet of your valve for details.

I always thought that stiction was a listed function of pneumatic valves.
I cannot count how many field techs asked if we wanted the half way point to be as we drove up from 3 psi or as we backed off from 15 psi.

Arduino DUE does have 2 analog output DAC, 12 bit resolution if I remember
correctly, which can give up to 3.3V (2.75V in reality). This valve is a
pure proportional valve, it's not an ON/OFF valve, so it's better to have
a proportional control of the current.

LM7171:

Proportional valve:

You can see it's pure proportional.

The circuit is like the one attached, but Vi comes from arduino dac output, and ZL is
the valve, which is a resistance of 200ohm.

So dave-in-nj I should add a "protection resistor" of 1Kohm between arduino and
opamp (+)? Also, I didnt understand what you talking about the power supply. I
wanna supply the opamp with V+ at 30V and V- at ground, is it wrong?

download.png

Consider the power consumed by the coil driver. The data sheet indicates up to 160mA, that's beyond the 7171 short circuit current and doesn't fit your 200(?) Ohm coil. Please check again and provide the right data sheet.

DrDiettrich:
Consider the power consumed by the coil driver. The data sheet indicates up to 160mA, that's beyond the 7171 short circuit current and doesn't fit your 200(?) Ohm coil. Please check again and provide the right data sheet.

It's the right datasheet. The valve is the PVQ13, it's the one with 24Vdc and up to 85mA. I could give
a little more current if needed, that's why i chose LM7171.

dave-in-nj:
#2) your loop current seems odd for pneumatic valves here in the US. we are typically 4-20mA for commercial although years (decades) ago, I had to do some industrial work with a higher range. but almost all process controls work in a range that is from a non-zero starting point, 10-50mA or some such. the low end provides power to the electronics on the other end and is a 2-wire process control signal.

#3) it is assumed that you are feeding a positioning device on the proportional valve, a device that measures the piston stroke and then positions the distance of the stroke based on the input value. That is the device of concern that takes the electronics and converts them into pneumatic values. For the electronics folks, it is almost like an op-amp, it has two inputs, a control signal and a distance signal and just applies whatever pressure is needed to move the actuator. this makes the assembly operate much like a servo.....

I know it starts operating from 30/40mA, but i dont think it's a problem. I'll just have to start from
a higher voltage to have it working.
You guessed right, I'm feeding a positioning system, but that's the mechanical part. Now my concern
it's the electrical one.

DrDiettrich:
Consider the power consumed by the coil driver. The data sheet indicates up to 160mA, that's beyond the 7171 short circuit current and doesn't fit your 200(?) Ohm coil. Please check again and provide the right data sheet.

I forgot to say that the datasheet of the valve doesn't say much of the electrical characteristic of the coil.
But i measured the resistance and i got values of 200/220ohm. But this circuit shouldnt be able to give the
current i want without considering the load (of course if it has enough power to deliver)?

Your link for the datasheet doesn't work, I found this datasheet for the PVQ13:

https://www.smcpneumatics.com/pdfs/PVQ.pdf

It states that this valve is driven by current ( ~360 mA Under 12 VDC) . IMO it would be safer to drive this valve thru a digital pot connected to an external power supply. Drive the pot itself with an arduino.

ard_newbie:
Your link for the datasheet doesn't work, I found this datasheet for the PVQ13:

https://www.smcpneumatics.com/pdfs/PVQ.pdf

It states that this valve is driven by current ( ~360 mA Under 12 VDC) . IMO it would be safer to drive this valve thru a digital pot connected to an external power supply. Drive the pot itself with an arduino.

I'm sorry i didnt notice. I'm uploading the valve datasheet I have.
At the end of page 3, PVQ13 states that the model working at 24Vdc need up to 85mA.
im not familiar with digital pot. I would like to use the components I have at the moment.
Do you think my circuit would behave poorly as i designed?

PVQ_EU.pdf (959 KB)

You are right, now the diagrams and text in the data sheet fit your coil description. A digital pot may not support the required voltage and current.

A snubber may be required to prevent damage when the solenoid voltage is decreasing.

V- at Arduino Gnd won't work, the input voltage range of the 7171 (Vcm) is restricted to 13.35V, i.e. about 2V away from V+ and V-. For a common Gnd I'd use a transistor for the constant current source.

deeweerf:
Do you think my circuit would behave poorly as i designed?

download.png

yes, it will behave poorly as designed.

This is a simple voltage output, not a current source.

You need to use an OTA circuit : Operational Transconductance Amplifier

This is not ideal, but it shows that the Op-AMP does not need to provide the power, the power can be from an FET, or in this case a Darlington.

OTA.jpg

==================

as for the power for the OP-AMP
as I understand, a dual supply that is +15v and -15v has a balance at 0 volts
if you power the op-amp at +15 and 0 then the balance is at 7.5 volts.

not saying you cannot use it, but that it is not going to work as you think it is.

OTA.jpg

@@dave: Why do you think that it's NOT a constant current source?

This is a simple voltage output, not a current source.

The entire point of that circuit is the constant current through the load ZL, determined by Vi and Ri.

And it will work fine if powered by a single supply.

@OP: You need to read up on how to work with op amps.
Design simplification rule #1: the inputs draw no current.

DrDiettrich:
You are right, now the diagrams and text in the data sheet fit your coil description. A digital pot may not support the required voltage and current.

A snubber may be required to prevent damage when the solenoid voltage is decreasing.

V- at Arduino Gnd won't work, the input voltage range of the 7171 (Vcm) is restricted to 13.35V, i.e. about 2V away from V+ and V-. For a common Gnd I'd use a transistor for the constant current source.

i don't know what a snubber is. But, i thought i shouldnt care about solenoid voltage. It states that operates
at 24Vdc but it's the current flowing that makes it open. I tried just feeding it a voltage up to 24Vdc and measuring the current, and i get the full opening when it absorbs 100mA (above nominal range) even if the voltage is lower than 24Vdc. In fact, from the datrasheet i calculated its resistance as 24V/85mA=282ohm, but
if measured with multimeter i get 200/220ohm. So i thought it's just the current that makes it open, not the voltage because the resistance is not constant (and so the voltage across).

V+ is at 30V (or 25, i have a variable power supply) and V- is at ground. It's single supplied because i dont need to have current switching directions. I dont understand what's your point. And input voltage from Arduino is 2.75V at max.

dave-in-nj:
download.png

yes, it will behave poorly as designed.

This is a simple voltage output, not a current source.

You need to use an OTA circuit : Operational Transconductance Amplifier

This is not ideal, but it shows that the Op-AMP does not need to provide the power, the power can be from an FET, or in this case a Darlington.

OTA.jpg

==================

as for the power for the OP-AMP
as I understand, a dual supply that is +15v and -15v has a balance at 0 volts
if you power the op-amp at +15 and 0 then the balance is at 7.5 volts.

not saying you cannot use it, but that it is not going to work as you think it is.

Why it is not a current source? The circuit looks a lot like a noninverting amplifier, but there will be no load
between opamp output and ground because the load is positioned like a feedback element. I dont think i made a mistake here but correct me if I'm wrong.
Considering my circuit, when i feed with Arduino 2.75V to noninvertin input, the opamp will have to supply enough voltage to make the voltage at the inverting input match the one at the noninverting one. So the current flowing throguh Ri (27.4ohm) will be the voltage from Arduino divided by Ri, which is 100mA. And then the current flowing through my load (Zl, about 200ohm) will be the same.
I dont understand also why you think that im dual supplying. I want to single supply: V+ at 30V and V- at ground. I though i could do it, from datasheet says i can. Just the difference between the two must be 30 at max. Or am i doing a stupid mistake here?

Try to learn more about opamps and inductors, or you risk to kill some chips.

Your circuit implements a current source, what @@dave did not understand. But this implementation does not work as expected with Arduino Gnd at V- and an inductive load.

@deeweerf

You obviously lack the skills to understand or design a working circuit to control a proportional valve, so it is pretty silly to ignore the one discussed in the thread linked in reply #1. If you don't understand it, ask.

DrDiettrich:
Try to learn more about opamps and inductors, or you risk to kill some chips.

Your circuit implements a current source, what @@dave did not understand. But this implementation does not work as expected with Arduino Gnd at V- and an inductive load.

Ok, it is a current source. I upload a circuit made with spice so maybe it's clearer.
So, V1 is the Arduino DAC output (max 2.75V), R1 my control resistor, R2 the valve. The opamp it's not the one in the figure but LM7171 and it's externally supplied with 30V to ground (single supply).
How is gonna influence the inductive load on the circuit behavior? Or can you link me something to read if it's too long to explain? Ty

jremington:
@deeweerf

You obviously lack the skills to understand or design a working circuit to control a proportional valve, so it is pretty silly to ignore the one discussed in the thread linked in reply #1. If you don't understand it, ask.

Im not ignoring your reply, I just wanted to use the component I have. If I can do it and accomplish an acceptable behavior Im good, but if you tell me that it wont work even at low frequency I will change it.

About your circuit, I understand it pretty much expect for the transistor, which I know very little because I never used it, and the role of the capacitance, I guess it's for stability purpose.
Another thing it's not very clear it's why the voltage divider at the input. It only consumes 1mA, but if i fed the voltage directly on the 100K resistor it should just absorb the opamp input current, much lower than 1mA.