Differential OP AMP
Differential OP AMP
The goal is to model mathematically a differential Op Amp considering its input impedance. This will allow to analyze the stability of the amp op and to predict input/output values.
Nodal analysis
Nodal analysis
Nodal analysis
Here a nodal analysis base on the Kirchhoff's law will be performed.
Here a nodal analysis base on the Kirchhoff's law will be performed.
Known Values
Known Values
In[]:=
VCC2V5=2.5VCM=2.5CP=560*10^-12Cin=1*10^-12CL=2.2*10^-9;RO=0.2frequency=1000Av=1eqZCP=Solve[ZCP==1/(I*2*Pi*frequency*CP),ZCP][[1]][[1]]eqZCin=Solve[ZCin==1/(I*2*Pi*frequency*Cin),ZCin][[1]][[1]]eqZCL=Solve[ZCL==1/(I*2*Pi*frequency*CL),ZCL][[1]][[1]]RP=510Rin=12*10^6;RL=51.1;
Out[]=
2.5
Out[]=
2.5
Out[]=
7
12500000000
Out[]=
1
1000000000000
Out[]=
0.2
Out[]=
1000
Out[]=
1
Out[]=
ZCP-
6250000
7π
Out[]=
ZCin-
500000000
π
Out[]=
ZCL0.-72343.2
Out[]=
510
Equations
Equations
In[]:=
eqZP=Solve[{ZP==1/(1/RP+1/ZCP)}/.ZCPZCP/.eqZCP,ZP][[1]][[1]]eqZin=Solve[{Zin==1/(1/Rin+1/ZCin)}/.ZCinZCin/.eqZCin,Zin][[1]][[1]]eqRPOL=Solve[{RPOL==1/(1/RO+1/(RL+ZCL))}/.ZCLZCL/.eqZCL,RPOL][[1]][[1]]eq1={Iplus+IfbPlus==ILplus}[[1]]eq2={Iin+IpullUp==IfbPlus}[[1]]eq3={Iin+IfbMoins==Isig}[[1]]eq4={IfbMoins+Imoins==ILmoins}[[1]]eq5=Solve[{Iplus==((VCC2V5+Av/2*Vd)-V1)/RO},Iplus][[1]][[1]]eq6=Solve[{IfbPlus==(Vmoins-V1)/ZP},IfbPlus][[1]][[1]]eq7=Solve[ILplus==(V1-VoutPlus)/RL,ILplus][[1]][[1]]eq8={Solve[IpullUp==(VCC2V5-Vmoins)/RP,IpullUp]}[[1]][[1]][[1]]eq9=Solve[{Iin==Vd/Zin},Iin][[1]][[1]]eq10={Solve[{Isig==(Vsig-Vplus)/RP},Isig]}[[1]][[1]][[1]]eq11=Solve[{IfbMoins==(Vplus-V3)/ZP},IfbMoins][[1]][[1]]eq12={Solve[{Imoins==((VCC2V5+Av/2*Vd)-V3)/RO},Imoins]}[[1]][[1]][[1]]eq13={Solve[ILmoins==(V3-VoutMoins)/RL,ILmoins]}[[1]][[1]][[1]]eq14=Solve[Vd==Vplus-Vmoins,Vd][[1]][[1]]eqCurrPlus=Solve[{CurrPlus==(Av/2*Vd+VCM)/(RO)}/.VdVd/.eq14,CurrPlus][[1]][[1]]eqCurrMoins=Solve[{CurrMoins==(Av/2*Vd+VCM)/(RO)}/.VdVd/.eq14,CurrMoins][[1]][[1]]eq15intermediary=Solve[{(Vmoins-V1)/RP+CurrPlus==V1/RPOL}/.CurrPlusCurrPlus/.eqCurrPlus/.RPOLRPOL/.eqRPOL,Vmoins][[1]][[1]]eq16intermediary=Solve[{(Vplus-V3)/RP+CurrMoins==V3/RPOL}/.CurrMoinsCurrMoins/.eqCurrMoins/.RPOLRPOL/.eqRPOL,Vplus][[1]][[1]]eq15=Solve[Vmoins==(eq15intermediary/.VplusVplus/.eq16intermediary)[[2]],Vmoins][[1]][[1]]eq16=Solve[Vplus==(eq16intermediary/.VplusVplus/.eq15intermediary)[[2]],Vplus][[1]][[1]]eq17=Solve[{VoutPlus==V1*ZCL/(RL+ZCL)}/.ZCLZCL/.eqZCL,V1][[1]][[1]]eq18=Solve[{VoutMoins==V3*ZCL/(RL+ZCL)}/.ZCLZCL/.eqZCL,V3][[1]][[1]]
Out[]=
ZP
199218750000000-113793750000π
390625000000+127449
2
π
Out[]=
Zin
187500000000-4500000000π
15625+9
2
π
Out[]=
RPOL0.2-5.5292×
-7
10
Out[]=
IfbPlus+IplusILplus
Out[]=
Iin+IpullUpIfbPlus
Out[]=
IfbMoins+IinIsig
Out[]=
IfbMoins+ImoinsILmoins
Out[]=
Iplus5.(2.5-1.V1+0.5Vd)
Out[]=
IfbPlus
-V1+Vmoins
ZP
Out[]=
ILplus0.0195695(V1-1.VoutPlus)
Out[]=
IpullUp-0.00196078(-2.5+Vmoins)
Out[]=
Iin
Vd
Zin
Out[]=
Isig(-Vplus+Vsig)
1
510
Out[]=
IfbMoins
-V3+Vplus
ZP
Out[]=
Imoins5.(2.5-1.V3+0.5Vd)
Out[]=
ILmoins0.0195695(V3-1.VoutMoins)
Out[]=
Vd-Vmoins+Vplus
Out[]=
CurrPlus5.(2.5+0.5(-1.Vmoins+Vplus))
Out[]=
CurrMoins5.(2.5+0.5(-1.Vmoins+Vplus))
Out[]=
Vmoins-0.400314(-12.5+(5.00196+0.000013823)V1-2.5Vplus)
Out[]=
Vplus0.399687(-12.5+(5.00196+0.000013823)V3+2.5Vmoins)
Out[]=
Vmoins-1.62562×(0.00392157-(2.00235+5.53354×)V1+(2.00079+5.5292×)V3)
6
10
-6
10
-6
10
Out[]=
Vplus-1.62562×(0.00392157-(2.00079+5.5292×)V1+(1.99922+5.52487×)V3)
6
10
-6
10
-6
10
Out[]=
V1(1.+0.000706356)VoutPlus
Out[]=
V3(1.+0.000706356)VoutMoins
Solving for Vd (VoutPlus, VoutMoins)
Solving for Vd (VoutPlus, VoutMoins)
In[]:=
eq19=(eq14/.VmoinsVmoins/.eq15/.VplusVplus/.eq16/.V3V3/.eq18/.V1->V1/.eq17/.ZPZP/.eqZP/.ZCLZCL/.eqZCL)
Out[]=
Vd1.62562×(0.00392157+(2.00079+0.0014188)VoutMoins-(2.00235+0.00141991)VoutPlus)-1.62562×(0.00392157+(1.99922+0.00141768)VoutMoins-(2.00079+0.0014188)VoutPlus)
6
10
6
10
Solving for VoutMoins(VoutPlus, Vsig) and VoutPlus(VoutMoins)
Solving for VoutMoins(VoutPlus, Vsig) and VoutPlus(VoutMoins)
In[]:=
eq20=Solve[(eq1/.IplusIplus/.eq5/.IfbPlusIfbPlus/.eq6/.ILplusILplus/.eq7/.VdVd/.eq19/.VmoinsVmoins/.eq15/.V1V1/.eq17/.VplusVplus/.eq16/.V3V3/.eq18/.ZPZP/.eqZP/.ZCLZCL/.eqZCL/.ZinZin/.eqZin),VoutPlus][[1]][[1]]eq21=Solve[(eq2/.IfbPlusIfbPlus/.eq6/.IPullUpIPullUp/.eq8/.IinIin/.eq9/.VdVd/.eq19/.VmoinsVmoins/.eq15/.V1V1/.eq17/.VplusVplus/.eq16/.V3V3/.eq18/.ZPZP/.eqZP/.ZCLZCL/.eqZCL/.ZinZin/.eqZin),VoutPlus][[1]][[1]]eq22=Solve[(eq3/.IinIin/.eq9/.IsigIsig/.eq10/.IfbMoinsIfbMoins/.eq11/.VdVd/.eq19/.VmoinsVmoins/.eq15/.VplusVplus/.eq16/.V1V1/.eq17/.V3V3/.eq18/.ZPZP/.eqZP/.ZCLZCL/.eqZCL/.ZinZin/.eqZin),VoutMoins][[1]][[1]]eq23=Solve[(eq4/.ImoinsImoins/.eq12/.ILmoinsILmoins/.eq13/.IfbMoinsIfbMoins/.eq11/.VdVd/.eq19/.VmoinsVmoins/.eq15/.VplusVplus/.eq16/.V1V1/.eq17/.V3V3/.eq18/.ZPZP/.eqZP/.ZCLZCL/.eqZCL/.ZinZin/.eqZin),VoutMoins][[1]][[1]]
Out[]=
VoutPlus(-0.0000619142-0.0873114)((-8.56744×+0.022431)-(0.00811536-11.4443)VoutMoins)
-10
10
Out[]=
VoutPlus(-0.000078339+1.25841×)((-25.0049-0.022431)-(12755.+20.4891)VoutMoins)
-7
10
Out[]=
VoutMoins(-0.000078462+1.26038×)((25.+0.022431)-(12755.+20.4891)VoutPlus+0.00196078Vsig)
-7
10
Out[]=
VoutMoins(0.0000620113+0.0874484)((-8.56744×+0.022431)+(0.00811536-11.4443)VoutPlus)
-10
10
Solving for VoutMoins and VoutPlus(Vsig)
Solving for VoutMoins and VoutPlus(Vsig)
In[]:=
eq24=Solve[eq20[[2]]==eq21[[2]],VoutMoins][[1]][[1]]eq25=Solve[eq22[[2]]==eq23[[2]],VoutPlus][[1]][[1]]
Out[]=
VoutMoins2.5-0.0020953
Out[]=
VoutPlus(6.4943×+6880.45)((3.34448×-7.27922×)+(1.53847×-2.47133×)Vsig)
6
10
-10
10
-11
10
-7
10
-10
10
Solving for VoutPlus-VoutMoins in terms of Vsig
Solving for VoutPlus-VoutMoins in terms of Vsig
In[]:=
VoutPlus-VoutMoins==Simplify[eq25[[2]]-eq24[[2]]]
Alternative Part 1 Solving for Vmoins(VoutMoins, VoutPlus) and Vplus(VoutMoins, VoutPlus)
Alternative Part 1 Solving for Vmoins(VoutMoins, VoutPlus) and Vplus(VoutMoins, VoutPlus)
Alternative Part 2 Solving for (VoutPlus-VoutMoins)/(Vplus-Vmoins)
Alternative Part 2 Solving for (VoutPlus-VoutMoins)/(Vplus-Vmoins)