Using wxMaxima to obtain a transfer function from T-twin filter & op amp

filteroperational-amplifiertransfer function

I'm trying to get the transfer function from this circuit using wxMaxima
T-twin filter with Op Amp

So first using the ideal op amp model I know Vx = Vy and I can know Vy from that voltage divider from Vo
Input equations

Now I solve this system
Algebraic equation system

From here I'm not pretty sure what should I do next.

I've tried some solutions without success. Like this
Fail

Anyone can give me a hint about what to do next? I'm not pretty familiar with Maxima nor op amps but I guess I have the right idea about this.

Thanks in advance for any suggestion and your time reading this.

Best Answer

I think you have to add one more equation \$ \frac{\text{Vx}-\text{V1}}{R}+\mathcal{C} s (\text{Vx}-\text{V2}) == 0\$ and solve for \$V0\$ as well. Also your first equation needs to have the term \$ 2 \mathcal{C}\$ instead of \$ \mathcal{C}\$.

Computations using Mathematica.

sols = Solve[{
(V1 - Vi)/R + (V1 - Vx)/R + (V1 - V0) s 2 \[ScriptCapitalC] == 0, 
(V2 - Vi) s \[ScriptCapitalC] + (V2 - Vx) s \[ScriptCapitalC] + V2/(R/2) == 0, 
Vx == (RA V0)/(RA + RB), 
(Vx - V1)/R + (Vx - V2) s \[ScriptCapitalC] == 0}
, 
{V1, V2, Vx, V0}
];

tfm = TransferFunctionModel[V0/Vi /. sols[[1]] // Simplify, s]

enter image description here

Special cases:

  1. \$RA = 0 \$, and any value of \$RB\$

    tfm /. RA -> 0

enter image description here

  1. \$RB = 0 \$, and any value of \$RA\$

    tfm /. RB -> 0

enter image description here

  1. \$R = 0 \$, and any value of \$\mathcal{C}\$

    tfm /. R -> 0

    enter image description here

  2. \$\mathcal{C} = 0 \$, and any value of \$R\$

    tfm /. \[ScriptCapitalC] -> 0

    enter image description here

These are notch filters when \$\text{RA}<\text{RB}\$.

values = {0.01, 0.1, 1, 10, 100, 1000};
Table[tfm /. {RA -> 1, RB -> 10, R -> f/\[ScriptCapitalC]}, {f, values}];
BodePlot[%, PlotLayout -> "Magnitude", PlotLegends -> values]

enter image description here

They are still notch when \$\text{RA}>\text{RB}\$.

Table[tfm /. {RA -> 10, RB -> 1, R -> f/\[ScriptCapitalC]}, {f, values}];
BodePlot[%, PlotLayout -> "Magnitude", PlotLegends -> values, PlotRange -> All]

enter image description here

If \$\text{RA}=\text{RB}\$, it turns out to be "all-pass" filters.

Table[tfm /. {RA -> 1, RB -> 1, R -> f/\[ScriptCapitalC]}, {f, values}];
BodePlot[%, PlotLayout -> "Magnitude", PlotLegends -> values, PlotRange -> All]

enter image description here