Operační zesilovače

ClearAll["Global`*"];

Zesilovač s konstantním zesílením ((R1+R2)/R2)

rceObvod={((u2-u3)/R1)==(u3/R2)};
rceOZ={A*(u1-u3)==u2};
dohr=Union[rceObvod,rceOZ]
Solve[dohr,{u2,u3}][[1]]
Limit[u2/.%,A->∞]

A=(10^5);
USat=12;
f[uplusMinusUMinus_]:=USat*Tanh[(A/USat)*uplusMinusUMinus];
Plot[{f[Δu],A*Δu},{Δu,-2*(10^(-4)),2*(10^(-4))},PlotRange->All,PlotStyle->Thick,AxesLabel->{"(SuperPlus[u])-(SuperMinus[u])[V]","uV[V]"}]

Trochu reálnější model OZ

R1=900;
R2=100;
rceOZRealnejsi={f[u1-u3]==u2};
dohrR=Union[rceObvod,rceOZRealnejsi];
ClearAll[v];
v[u1_]=dohrR[[2]]/.Solve[dohrR[[1]],u3][[1]];
res[u1_]:=u2/.FindRoot[v[u1],{u2,0.5A*u1}];
dat=Table[{u1,res[u1]},{u1,-3,3,0.01}];

vystup[u1_]=Interpolation[dat][u1];
ω=314;
T=2*(Pi/ω);
u1z=2.5*Sin[ω*t];

Plot[{((R1+R2)/R2)*u1z,vystup[u1z]},{t,0,T},PlotRange->All,PlotStyle->Evaluate[{Thick,Hue[#]}&/@{0,0.63}],AxesLabel->{"(SuperPlus[u])-(SuperMinus[u])[V]","uV[V]"}]

Plot[{vystup[u1z]},{t,0,T},PlotRange->All,PlotStyle->Evaluate[{Thick,Hue[#]}&/@{{0.63}}],AxesLabel->{"(SuperPlus[u])-(SuperMinus[u])[V]","uV[V]"}]