Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

How does the feedback work in an inverting op amp amplifier?

Status
Not open for further replies.
I just learned that there is another way to understand the feedback in the closed-loop inverting op amp. I'd like to share with anyone who might be interested in this topic.
upload_2015-2-3_6-22-27.png

When V1 is increased, Vn is increased correspondingly. The voltage difference between the two input terminals increases, causing Vout become more negative. Part of the negative voltage is fed back to Vn through the R1 R2 divider, making Vn decrease.

Although it seems it's not very difficult to understand the mechanism involved, I like MrAl's model, it made me realize how exactly the feedback develops gradually, and more.
 
Since an opamp has a voltage gain of about 200,000 times or more then when V1 voltage changes you might not see the very tiny change of voltage at Vn.
 
A
Since an opamp has a voltage gain of about 200,000 times or more then when V1 voltage changes you might not see the very tiny change of voltage at Vn.
Although the change at Vn may not be seen, it still happens, doesn't it?
 
Since an opamp has a voltage gain of about 200,000 times or more then when V1 voltage changes you might not see the very tiny change of voltage at Vn.
Although the change at Vn may not be seen, it still happens, doesn't it?
 
There is another way to understand that one. What Vout is required to make Vn=0 for some input voltage,

So, you have V1*R1=Vout*R2

Another concept to use, is that the OP amp takes the difference of it's inputs and multiplies it by a BIG number which is the open loop gain.
 
A

Although the change at Vn may not be seen, it still happens, doesn't it?

Hi again,

I thought you were not looking at this anymore but i guess you are, that's good too.

Yes, the change in Vn may not be seen by 'normal' measurements, but yes it does change. You might be able to see it with a regular 3.5 digit volt meter if the resolution is good. We can calculate the change instead however.

Using superposition, the voltage at Vn is (Vn is inverting terminal voltage as usual):
Vn=(Vin*R2)/(R2+R1)+(Vout*R1)/(R2+R1)

The output voltage is the difference between the non inverting terminal voltage Vp and Vn times the open loop gain:
Vout=(Vp-Vn)*Aol

where Aol is the open loop gain.

Substituting the first equation for Vn into the second equation for Vout we get an implicit equation for Vout:
Vout=(Vp-(Vin*R2)/(R2+R1)-(Vout*R1)/(R2+R1))*Aol

This is implicit in Vout because Vout appears on both the left and right sides, so we solve for Vout using algebraic manipulation to get Vout on the left only, and we end up with:
Vout=Aol*(Vp*(R1+R2)-Vin*R2)/(R2+Aol*R1+R1)

Now we have an explicit equation for Vout. We can now do at least two things:
1. Take the limit as Aol approaches infinity to get the ideal response, or
2. Set Aol to some specific value so we can evaluate what the final value of Vout will be.

We can also set some value for Vp to show what happens with a non zero offset, or we can set Vp=0 to get the more ideal response.

Lets leave Vp alone for now and just take the limit as Aol goes toward infinity. We end up with:
Vout=Vp+(Vp-Vin)*R2/R1

Now since we know what Vn is:
Vn=(Vin*R2)/(R2+R1)+(Vout*R1)/(R2+R1)

we can calculate that knowing Vout, and we get:
Vn=Vp

That is the ideal response with Aol near infinity. Without allowing Aol to go to infinity, we get:
Vn=(Vin*R2+Aol*Vp*R1)/(R2+Aol*R1+R1)

which of course depends on Aol now. With Aol=1000 we get:
Vn=(Vin*R2+1000*Vp*R1)/(R2+1001*R1)

so for Vp=0 and R1=1k and R2=3k and Vin=1 we get:
Vn=3/1004 which is approximately 2.988 millivolts.

With Vp non zero, say 2mv itself, we get:
Vn=4.98 mv

which is roughly 2mv higher now.

If we plot Vn vs Aol we will see Vn decrease as Aol increases because one of the effects of larger Aol is that Vn gets smaller. So with the same values as above except Aol=2000, we see Vn go to:
Vn=0.003493 volts approximately

so Vn did decrease, and as Aol gets near infinity the limiting Vn is as we calculated above:
Vn=Vp

so with Vp=2mv we will see Vn=2mv.
 
Last edited:
Excellent!

I guess I could add an assumption to your work, that is we assume there's no current entering the non-inverting terminal of the op amp.
Lets leave Vp alone for now
Let me give it a try to see what happens when Vp is not zero:

Since there's no current entering the non-inverting terminal, we have

(Vin-Vn)/R1 = (Vn-Vout)/R2
or
Vn = (R2*Vin + R1*Vout)/(R1+R2) ------- (1)

Assume the op amp is "working", that is Vout is not saturated, we get Vout to be

Vout = Aol*(Vp-Vn)

Substituting Vout into (1) and doing some rearrangements, we get

Vn = (R2*Vin + R1*Aol*Vp)/(R1+R2+R1*Aol) -------- (2)

As Aol goes to ∞,

Vn = R1*Aol*Vp/R1*Aol = Vp ----------(3)

Therefore, no matter what the gain is or Vin might be, we can calculate Vn by (2) or (3).

One thing I think is important from your work or the above calculation is that in order for an op amp to work properly, in addition to providing a feedback path, the open-loop gain of the op amp itself must be very large to make Vn approach Vp very closely. Correct?
 
Last edited:
Excellent!

I guess I could add an assumption to your work, that is we assume there's no current entering the non-inverting terminal of the op amp.

Let me give it a try to see what happens when Vp is not zero:

Since there's no current entering the non-inverting terminal, we have

(Vin-Vn)/R1 = (Vn-Vout)/R2
or
Vn = (R2*Vin + R1*Vout)/(R1+R2) ------- (1)

Assume the op amp is "working", that is Vout is not saturated, we get Vout to be

Vout = Aol*(Vp-Vn)

Substituting Vout into (1) and doing some rearrangements, we get

Vn = (R2*Vin + R1*Aol*Vp)/(R1+R2+R1*Aol) -------- (2)

As Aol goes to ∞,

Vn = R1*Aol*Vp/R1*Aol = Vp ----------(3)

Therefore, no matter what the gain is or Vin might be, we can calculate Vn by (2) or (3).

One thing I think is important from your work or the above calculation is that in order for an op amp to work properly, in addition to providing a feedback path, the open-loop gain of the op amp itself must be very large to make Vn approach Vp very closely. Correct?

Hi again,

Yes there was a couple typos in my previous post that i fixed now, thanks for telling me.
One funny one was something like, "we wills see Vn=2mv" :)
I have been switching keyboards a lot lately and i noticed i hit keys differently depending on the response of the keys. I bought a new one a couple months ago and it was nice and lighted, but the keys started wearing out as the letters were getting to be no longer visible so i switched back to the old one, and now have to get used to that one again. I do touch type but i like to see the letters lit up now and then. I was surprised to see it wear so quickly.

And yes, the open loop gain has to be large to see Vn get very very close to Vp, and infinite to see Vn=Vp, but with somewhat large gain (not too too high) we still see Vn becoming somewhat close to Vp anyway as this graph shows. The graph shows Vn-Vp not Vn. It was produced using R1=1k, R2=3k, Vp=0.002v, Vin=1.
 

Attachments

  • Vn-Vp_vs_Aol-1.gif
    Vn-Vp_vs_Aol-1.gif
    4.7 KB · Views: 332
Last edited:
Hi, MrAl

I guess you must type a lot everyday. I remember seeing you at AllAboutCircuits.com.

I have been trying to do a parametric sweep in PSpice, but I never manage to type in the correct "Model type" and "Model name" for an op amp, a diode, or a MOSFET. Did you know where I can find related information?
upload_2015-2-4_22-22-25.png
 
Hi, MrAl

I guess you must type a lot everyday. I remember seeing you at AllAboutCircuits.com.

I have been trying to do a parametric sweep in PSpice, but I never manage to type in the correct "Model type" and "Model name" for an op amp, a diode, or a MOSFET. Did you know where I can find related information?
View attachment 90547

Hi there Heidi,

Well, i can type about five regular sized paragraphs in five minutes so i dont think i type that much, but i also program under Windows mostly so i type a lot doing that, but then again i dont program every day anymore.

I dont really use that simulator, i use another one and also LT Spice.
Is that one you are using free? If so perhaps i can take a look at it too.
I would think you can find more info under the menu "Help", but sometimes the help is limited in these programs. Sometimes user groups can help too, users that use that particular environment.
Sorry i can help more with that, at least not right now.

LT Spice has a lot of built in components, and maybe that one does too i dont know, where you can access them just by finding them on some menu somewhere. I have heard complaints about LT Spice too though, but all i can say is it takes a little time to find everything, but once you find it it's easy from there.
Adding your own models is a little more difficult, but doable.
 
Is that one you are using free?
Yes, the PSpice I'm using is a free student edition, but please don't bother looking at the "Help" at the menu, it has nothing in there.

Since you also use LTspice, I was wondering if you would show me how to do the simulation for a range of Aol in one run, like you did in your last post? The ".step" directive didn't seem to work. : (

Thanks a lot!
 
Yes, the PSpice I'm using is a free student edition, but please don't bother looking at the "Help" at the menu, it has nothing in there.

Since you also use LTspice, I was wondering if you would show me how to do the simulation for a range of Aol in one run, like you did in your last post? The ".step" directive didn't seem to work. : (

Thanks a lot!

Hi,

Well, i didnt do a simulation i just did a plot of the function we found previously. Any graphing program should be able to do that.

If you still want to use LT Spice to do a simulation with a changing Aol, then i'll have to look at how to do that unless someone else beats me to it before tomorrow.
 
Hello again,

Ok one way to do this is to use a behavioral voltage source (bv) and define the function something like:
V=v(Vx)*v(Vn)

the idea being that Vn will be the inverting input of the op amp, and Vx will be the gain expressed as a separate voltage source.

So next set up a regular voltage source V2 and ground the negative terminal, and label the output node "Vx". The output node of the input voltage source will be labeled "Vn".
To get the non inverting input to the op amp we'd just add a "Vp" to the mix such as:
V=v(Vx)*(v(Vp)-v(Vn))

In this way, Vn is the same as the inverting input and V2 with Vx output node is just a regular source used to set the gain.
The step command is then:
.step V2 2 5 1

to set the voltage of source V2 to values 2 through 5 stepped by 1v each, which sets the gain from 2 though 5 with gain steps of 1 each.

This however does not create the graph i had shown previously, but it does set the gain and does several complete simulations for the entire time period. If that's what you want then that's about it.

There may be other ways to do it too.

Here's a quick screen shot with gain steps from 1 though 5, with gain steps equal to 1.
 

Attachments

  • VariableGainOpAmp-1.gif
    VariableGainOpAmp-1.gif
    15.2 KB · Views: 336
Last edited:
Hi MrAl,

That is a good way, but, sorry, no offense, that seems a little ... Sorry again, I'm not able to describe the feeling in English ... :D

Anyway, thanks a lot.

Maybe someone else has an idea about doing a model parameter sweep, perhaps we can wait and see. Thanks again!;)
 
...
Maybe someone else has an idea about doing a model parameter sweep, perhaps we can wait and see. Thanks again!;)

Go back and look at post #2 in this thread.
 
Hi MrAl,

That is a good way, but, sorry, no offense, that seems a little ... Sorry again, I'm not able to describe the feeling in English ... :D

Anyway, thanks a lot.

Maybe someone else has an idea about doing a model parameter sweep, perhaps we can wait and see. Thanks again!;)

Hello again,

Yes, as Mike was nice enough to show in post #2 the gain itself can be changed via the bracketing syntax.

Here's a quick screen shot...note the new source E1 and the changed step command.
 

Attachments

  • VariableGainOpAmp-2.gif
    VariableGainOpAmp-2.gif
    16.4 KB · Views: 310
Thanks, Mike, MrAl.
Go back and look at post #2 in this thread.
I had tried the ".step" and ".param" directives right after you showed me the graph in post #2. But when I use an op amp (what I used is called "opamp" in [Opamps] folder in LTspice) instead of a VCVS, an error appears:
upload_2015-2-5_19-10-39.png

I was trying to get the response by automatically changing the value of the gain for a given op amp, I used {Aol} as shown below, but it didn't work. I felt that there must be something wrong in the paramter setting, but I don't know what that is. The gain in a VCVS seems to be a so-called "global parameter", while the gain (here in this case called Aol?) for a given op amp belongs to "model parameters".(?) Is it possible that there's a different way of dealing them?
upload_2015-2-5_19-16-13.png
 

Attachments

  • upload_2015-2-5_19-10-7.png
    upload_2015-2-5_19-10-7.png
    73.7 KB · Views: 310
Last edited:
Hi,

I think you need to include the following spice directive:
.lib opamp.sub

and then change the op amp model line with Aol to:
Aol=G

then the step directive:
.step param G 10 510 100

for example.

Be aware that the op amp model you are using now is the current source based model, not the voltage source model we have been using all along.
 
Hi,

I think you need to include the following spice directive:
.lib opamp.sub

and then change the op amp model line with Aol to:
Aol=G

then the step directive:
.step param G 10 510 100

for example.

Be aware that the op amp model you are using now is the current source based model, not the voltage source model we have been using all along.
Yes! That works! Thanks a lot, MrAl.

upload_2015-2-5_22-14-41.png

upload_2015-2-5_22-15-27.png
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top