39  Klon Centaur, part 3

Code
from sympy import *
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
import matplotlib.ticker
import pandas as pd
import SymMNA
from IPython.display import display, Markdown, Math, Latex
init_printing()

39.1 Design review

In has been reported that Finnegan worked with MIT graduate Fred Fenning and other electrical engineer friends on this project. The description of the developmnent is a little vage but sounded like the design flow was mainly building prototype circuits and Finnegan doing evaluation and playing tests to get the sound he wanted.

Obvsiously a circuit of this size would not be analysised by hand. In the earily 1990’s when the Klon Centuar was under development, the circuit analysis tools would have been limited some version of SPICE either running on a PC or a larger computer at a university.

for four and a half years to create prototype pedals

  • intro
    • uniqueness of the circuit - blend of clean and clipped
      • make a block diagram
    • reputation and use by famous musicians
    • prices for used Klon Centaurs, rarity and clones
    • musical diodes, special Germanium diodes as a marketing feature
    • use of carbon composit resistors
    • this is a paper analysis only and building and testing of circuit would validate the analysis
  • theory of operation
    • operation of bypass circuit
    • purpose of R1
    • purpose of R15 and C11 path
    • analysis of circuit paths
      • clean path 1 seems to contribute minimally
      • function of clean path 2, probably doesn’t add to the tonal quality in a way that could be implemented in clean path 2 and could avoid use and expense of dual gang pot
      • saturation of U1b - loud playing at gains of more than 50% will saturate U1b, those harmonics will color the tone.
      • use of dual gang P1 - dual gang probably could be eliminated
    • comments about germanium diodes, life time buy and parts screening
  • power and grounding
    • purpose of charge pump
    • bypass caps at the Op Amp power pins and +Vb connections
  • capacitor and resistor types eg film caps and metal film resistors in the audio path
  • manufacturability
    • point to point wiring, extra assembly work
    • chassis
    • hand solding of PCB
    • parts obsolesence eg germanium diodes
    • diode screening
  • temperature analysis
  • tolerance analysis
    • mix of carbon and metal film resistors, to control RC frequency because metal film is 1% and carbon is 5%

39.1.1 Variations

  • clean path is a BP centered at 100 Hz with upper cut off around 1kHz
  • clipped path is a HP with peaking at 1kHz
  • different clipping circuit
  • new power supply section
  • 2nd order filter with independed w and Q adj

There are many pedals inspired by the Klon Centuar, here are a few:

  • Wampler Tumnus Overdrive Pedal: This is a very popular Klon clone that captures the essence of the Klon Centaur in a compact and affordable package. It has a wide range of gain on tap, from a subtle boost to a more overdriven sound. It also has a toggle switch that allows you to select between two different clipping voicings.
  • EarthQuaker Devices Westwood Translucent Overdrive: This pedal is a bit more of a modern take on the Klon Centaur sound. It has a more aggressive clipping section that can add a bit more bite to your overdrive sound. It also has a three-band EQ that allows you to dial in your tone precisely.
  • J Rockett Rockaway Archer: This pedal is another well-regarded Klon clone that is known for its versatility. It has a wide range of gain on tap, as well as a toggle switch that allows you to select between two different clipping voicings. It also has a built-in clean boost that can be used to push your amp into overdrive.
  • Tone City Bad Horse Overdrive: This is a very affordable Klon clone that is surprisingly good. It captures the essence of the Klon Centaur sound in a compact and affordable package. However, it is not quite as transparent as some of the other pedals on this list.
  • Best Klon clones 2024: Our pick of the best Klon Centaur Klones for every budget From straight-up klones to full reimaginings, here are some of the best Klon Centaur-inspired pedals on the market today.
  • Way Huge Smalls Deep State Conspiracy Theory Diodes Overdrive The Way Huge Deep State Overdrive is a limited-edition guitar pedal designed to emulate the sound of the Klon Centaur, a highly sought-after overdrive pedal from the mid-1990s. The Deep State utilizes a unique diode that Way Huge’s “resident mad scientist” Jeorge Tripps discovered. Tripps’ discovery of the diode was accidental and occurred during an experiment where he inserted the diodes into a Conspiracy Theory overdrive. Way Huge describes this diode as having a “truly magical-sounding voltage drop,” resulting in “smooth, velvety clipping” that is very responsive to playing dynamics.

39.2 Analysis of reactive branches

  • sum path 2a
  • gain pot set to 50%
  • V2 set to zero

39.2.1 sum path 1

Figure 39.1: Schematic of Klon-Centaur_sum_path1_v1
Code
sum_path1_v1_net_list = '''
* Klon-Centaur_sum_path1_v1.asc
V1 1 0 1
C3 3 1 100e-9
R6 4 3 10e3
C5 4 3 68e-9
R7 3 5 1.5e3
R24 2 5 15e3
C16 5 0 1e-6
Rp1 0 4 50e3
V2 2 0 0
'''
Code
report, network_df, i_unk_df, A, X, Z = SymMNA.smna(sum_path1_v1_net_list)

Build the network equations

Code
# Put matrices into SymPy 
X = Matrix(X)
Z = Matrix(Z)

NE_sym = Eq(A*X,Z)

# display the equations
temp = ''
for i in range(shape(NE_sym.lhs)[0]):
    temp += '${:s} = {:s}$<br>'.format(latex(NE_sym.rhs[i]),latex(NE_sym.lhs[i]))
Markdown(temp)

\(0 = C_{3} s v_{1} - C_{3} s v_{3} + I_{V1}\)
\(0 = I_{V2} + \frac{v_{2}}{R_{24}} - \frac{v_{5}}{R_{24}}\)
\(0 = - C_{3} s v_{1} + v_{3} \left(C_{3} s + C_{5} s + \frac{1}{R_{7}} + \frac{1}{R_{6}}\right) + v_{4} \left(- C_{5} s - \frac{1}{R_{6}}\right) - \frac{v_{5}}{R_{7}}\)
\(0 = v_{3} \left(- C_{5} s - \frac{1}{R_{6}}\right) + v_{4} \left(C_{5} s + \frac{1}{Rp_{1}} + \frac{1}{R_{6}}\right)\)
\(0 = v_{5} \left(C_{16} s + \frac{1}{R_{7}} + \frac{1}{R_{24}}\right) - \frac{v_{3}}{R_{7}} - \frac{v_{2}}{R_{24}}\)
\(V_{1} = v_{1}\)
\(V_{2} = v_{2}\)

Turn the free symbols into SymPy variables.

Code
var(str(NE_sym.free_symbols).replace('{','').replace('}',''))

\(\displaystyle \left( v_{3}, \ v_{2}, \ v_{5}, \ R_{6}, \ R_{24}, \ I_{V1}, \ R_{7}, \ C_{5}, \ v_{1}, \ Rp_{1}, \ s, \ v_{4}, \ C_{3}, \ V_{1}, \ C_{16}, \ V_{2}, \ I_{V2}\right)\)

Code
element_values = SymMNA.get_part_values(network_df)

39.2.2 Symbolic solution

The network equations can be solved symbolically.

Code
U_sym = solve(NE_sym,X)

Display the symbolic solution

Code
temp = ''
for i in U_sym.keys():
    temp += '${:s} = {:s}$<br>'.format(latex(i),latex(U_sym[i]))

Markdown(temp)

\(v_{1} = V_{1}\)
\(v_{2} = V_{2}\)
\(v_{3} = \frac{C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp_{1} V_{1} s^{3} + C_{16} C_{3} R_{24} R_{6} R_{7} V_{1} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp_{1} V_{1} s^{2} + C_{3} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp_{1} V_{1} s^{2} + C_{3} R_{24} R_{6} V_{1} s + C_{3} R_{24} Rp_{1} V_{1} s + C_{3} R_{6} R_{7} V_{1} s + C_{3} R_{7} Rp_{1} V_{1} s + C_{5} R_{6} Rp_{1} V_{2} s + R_{6} V_{2} + Rp_{1} V_{2}}{C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp_{1} s^{3} + C_{16} C_{3} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp_{1} s^{2} + C_{16} C_{5} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{16} R_{24} R_{6} s + C_{16} R_{24} R_{7} s + C_{16} R_{24} Rp_{1} s + C_{3} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp_{1} s^{2} + C_{3} R_{24} R_{6} s + C_{3} R_{24} Rp_{1} s + C_{3} R_{6} R_{7} s + C_{3} R_{7} Rp_{1} s + C_{5} R_{24} R_{6} s + C_{5} R_{6} R_{7} s + C_{5} R_{6} Rp_{1} s + R_{24} + R_{6} + R_{7} + Rp_{1}}\)
\(v_{4} = \frac{C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp_{1} V_{1} s^{3} + C_{16} C_{3} R_{24} R_{7} Rp_{1} V_{1} s^{2} + C_{3} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp_{1} V_{1} s^{2} + C_{3} R_{24} Rp_{1} V_{1} s + C_{3} R_{7} Rp_{1} V_{1} s + C_{5} R_{6} Rp_{1} V_{2} s + Rp_{1} V_{2}}{C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp_{1} s^{3} + C_{16} C_{3} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp_{1} s^{2} + C_{16} C_{5} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{16} R_{24} R_{6} s + C_{16} R_{24} R_{7} s + C_{16} R_{24} Rp_{1} s + C_{3} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp_{1} s^{2} + C_{3} R_{24} R_{6} s + C_{3} R_{24} Rp_{1} s + C_{3} R_{6} R_{7} s + C_{3} R_{7} Rp_{1} s + C_{5} R_{24} R_{6} s + C_{5} R_{6} R_{7} s + C_{5} R_{6} Rp_{1} s + R_{24} + R_{6} + R_{7} + Rp_{1}}\)
\(v_{5} = \frac{C_{3} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp_{1} V_{2} s^{2} + C_{3} R_{24} R_{6} V_{1} s + C_{3} R_{24} Rp_{1} V_{1} s + C_{3} R_{6} R_{7} V_{2} s + C_{3} R_{7} Rp_{1} V_{2} s + C_{5} R_{6} R_{7} V_{2} s + C_{5} R_{6} Rp_{1} V_{2} s + R_{6} V_{2} + R_{7} V_{2} + Rp_{1} V_{2}}{C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp_{1} s^{3} + C_{16} C_{3} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp_{1} s^{2} + C_{16} C_{5} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{16} R_{24} R_{6} s + C_{16} R_{24} R_{7} s + C_{16} R_{24} Rp_{1} s + C_{3} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp_{1} s^{2} + C_{3} R_{24} R_{6} s + C_{3} R_{24} Rp_{1} s + C_{3} R_{6} R_{7} s + C_{3} R_{7} Rp_{1} s + C_{5} R_{24} R_{6} s + C_{5} R_{6} R_{7} s + C_{5} R_{6} Rp_{1} s + R_{24} + R_{6} + R_{7} + Rp_{1}}\)
\(I_{V1} = \frac{- C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} V_{1} s^{3} - C_{16} C_{3} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{3} - C_{16} C_{3} R_{24} R_{6} V_{1} s^{2} - C_{16} C_{3} R_{24} R_{7} V_{1} s^{2} - C_{16} C_{3} R_{24} Rp_{1} V_{1} s^{2} - C_{3} C_{5} R_{24} R_{6} V_{1} s^{2} - C_{3} C_{5} R_{6} R_{7} V_{1} s^{2} - C_{3} C_{5} R_{6} Rp_{1} V_{1} s^{2} + C_{3} C_{5} R_{6} Rp_{1} V_{2} s^{2} - C_{3} R_{24} V_{1} s - C_{3} R_{6} V_{1} s + C_{3} R_{6} V_{2} s - C_{3} R_{7} V_{1} s - C_{3} Rp_{1} V_{1} s + C_{3} Rp_{1} V_{2} s}{C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp_{1} s^{3} + C_{16} C_{3} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp_{1} s^{2} + C_{16} C_{5} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{16} R_{24} R_{6} s + C_{16} R_{24} R_{7} s + C_{16} R_{24} Rp_{1} s + C_{3} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp_{1} s^{2} + C_{3} R_{24} R_{6} s + C_{3} R_{24} Rp_{1} s + C_{3} R_{6} R_{7} s + C_{3} R_{7} Rp_{1} s + C_{5} R_{24} R_{6} s + C_{5} R_{6} R_{7} s + C_{5} R_{6} Rp_{1} s + R_{24} + R_{6} + R_{7} + Rp_{1}}\)
\(I_{V2} = \frac{- C_{16} C_{3} C_{5} R_{6} R_{7} Rp_{1} V_{2} s^{3} - C_{16} C_{3} R_{6} R_{7} V_{2} s^{2} - C_{16} C_{3} R_{7} Rp_{1} V_{2} s^{2} - C_{16} C_{5} R_{6} R_{7} V_{2} s^{2} - C_{16} C_{5} R_{6} Rp_{1} V_{2} s^{2} - C_{16} R_{6} V_{2} s - C_{16} R_{7} V_{2} s - C_{16} Rp_{1} V_{2} s + C_{3} C_{5} R_{6} Rp_{1} V_{1} s^{2} - C_{3} C_{5} R_{6} Rp_{1} V_{2} s^{2} + C_{3} R_{6} V_{1} s - C_{3} R_{6} V_{2} s + C_{3} Rp_{1} V_{1} s - C_{3} Rp_{1} V_{2} s - C_{5} R_{6} V_{2} s - V_{2}}{C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp_{1} s^{3} + C_{16} C_{3} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp_{1} s^{2} + C_{16} C_{5} R_{24} R_{6} R_{7} s^{2} + C_{16} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{16} R_{24} R_{6} s + C_{16} R_{24} R_{7} s + C_{16} R_{24} Rp_{1} s + C_{3} C_{5} R_{24} R_{6} Rp_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp_{1} s^{2} + C_{3} R_{24} R_{6} s + C_{3} R_{24} Rp_{1} s + C_{3} R_{6} R_{7} s + C_{3} R_{7} Rp_{1} s + C_{5} R_{24} R_{6} s + C_{5} R_{6} R_{7} s + C_{5} R_{6} Rp_{1} s + R_{24} + R_{6} + R_{7} + Rp_{1}}\)

39.2.3 Transfer function

Explanation of operation by looking at the pole and zero locations.

Should this be Z11? Z_sym?

Think about inverting op amp conf with C13 || R20 as R feedback

Code
H_sym = cancel(U_sym[v1]/U_sym[I_V1])
H_sym

\(\displaystyle \frac{- C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp_{1} V_{1} s^{3} - C_{16} C_{3} R_{24} R_{6} R_{7} V_{1} s^{2} - C_{16} C_{3} R_{24} R_{7} Rp_{1} V_{1} s^{2} - C_{16} C_{5} R_{24} R_{6} R_{7} V_{1} s^{2} - C_{16} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{2} - C_{16} R_{24} R_{6} V_{1} s - C_{16} R_{24} R_{7} V_{1} s - C_{16} R_{24} Rp_{1} V_{1} s - C_{3} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{2} - C_{3} C_{5} R_{6} R_{7} Rp_{1} V_{1} s^{2} - C_{3} R_{24} R_{6} V_{1} s - C_{3} R_{24} Rp_{1} V_{1} s - C_{3} R_{6} R_{7} V_{1} s - C_{3} R_{7} Rp_{1} V_{1} s - C_{5} R_{24} R_{6} V_{1} s - C_{5} R_{6} R_{7} V_{1} s - C_{5} R_{6} Rp_{1} V_{1} s - R_{24} V_{1} - R_{6} V_{1} - R_{7} V_{1} - Rp_{1} V_{1}}{C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{3} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{3} + C_{16} C_{3} R_{24} R_{6} V_{1} s^{2} + C_{16} C_{3} R_{24} R_{7} V_{1} s^{2} + C_{16} C_{3} R_{24} Rp_{1} V_{1} s^{2} + C_{3} C_{5} R_{24} R_{6} V_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} V_{1} s^{2} + C_{3} C_{5} R_{6} Rp_{1} V_{1} s^{2} - C_{3} C_{5} R_{6} Rp_{1} V_{2} s^{2} + C_{3} R_{24} V_{1} s + C_{3} R_{6} V_{1} s - C_{3} R_{6} V_{2} s + C_{3} R_{7} V_{1} s + C_{3} Rp_{1} V_{1} s - C_{3} Rp_{1} V_{2} s}\)

Code
sym_num, sym_denom = fraction(H_sym) #returns numerator and denominator
Code
sym_num

\(\displaystyle - C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp_{1} V_{1} s^{3} - C_{16} C_{3} R_{24} R_{6} R_{7} V_{1} s^{2} - C_{16} C_{3} R_{24} R_{7} Rp_{1} V_{1} s^{2} - C_{16} C_{5} R_{24} R_{6} R_{7} V_{1} s^{2} - C_{16} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{2} - C_{16} R_{24} R_{6} V_{1} s - C_{16} R_{24} R_{7} V_{1} s - C_{16} R_{24} Rp_{1} V_{1} s - C_{3} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{2} - C_{3} C_{5} R_{6} R_{7} Rp_{1} V_{1} s^{2} - C_{3} R_{24} R_{6} V_{1} s - C_{3} R_{24} Rp_{1} V_{1} s - C_{3} R_{6} R_{7} V_{1} s - C_{3} R_{7} Rp_{1} V_{1} s - C_{5} R_{24} R_{6} V_{1} s - C_{5} R_{6} R_{7} V_{1} s - C_{5} R_{6} Rp_{1} V_{1} s - R_{24} V_{1} - R_{6} V_{1} - R_{7} V_{1} - Rp_{1} V_{1}\)

Code
nr = solve(sym_num,s)
Code
len(nr)

\(\displaystyle 3\)

Code
N(nr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -1198.55051381319 + 1.53728466142967 \cdot 10^{-13} i\)

Code
nr[0].free_symbols

\(\displaystyle \left\{C_{16}, C_{3}, C_{5}, R_{24}, R_{6}, R_{7}, Rp_{1}\right\}\)

Code
N(nr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -279.870301857556 - 6.80987679360742 \cdot 10^{-13} i\)

Code
nr[1].free_symbols

\(\displaystyle \left\{C_{16}, C_{3}, C_{5}, R_{24}, R_{6}, R_{7}, Rp_{1}\right\}\)

Code
N(nr[2].subs(element_values))/(2*np.pi)

\(\displaystyle -12.0184161074726 + 5.27258661038143 \cdot 10^{-13} i\)

Code
nr[2].free_symbols

\(\displaystyle \left\{C_{16}, C_{3}, C_{5}, R_{24}, R_{6}, R_{7}, Rp_{1}\right\}\)

Code
sym_denom

\(\displaystyle C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{3} C_{5} R_{24} R_{6} Rp_{1} V_{1} s^{3} + C_{16} C_{3} R_{24} R_{6} V_{1} s^{2} + C_{16} C_{3} R_{24} R_{7} V_{1} s^{2} + C_{16} C_{3} R_{24} Rp_{1} V_{1} s^{2} + C_{3} C_{5} R_{24} R_{6} V_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} V_{1} s^{2} + C_{3} C_{5} R_{6} Rp_{1} V_{1} s^{2} - C_{3} C_{5} R_{6} Rp_{1} V_{2} s^{2} + C_{3} R_{24} V_{1} s + C_{3} R_{6} V_{1} s - C_{3} R_{6} V_{2} s + C_{3} R_{7} V_{1} s + C_{3} Rp_{1} V_{1} s - C_{3} Rp_{1} V_{2} s\)

Code
dr = solve(sym_denom,s)
Code
len(dr)

\(\displaystyle 3\)

Code
N(dr[0].subs(element_values))/(2*np.pi)

\(\displaystyle 0\)

Code
dr[0].free_symbols

\(\displaystyle \left\{\right\}\)

Code
N(dr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -280.025615636318\)

Code
dr[1].free_symbols

\(\displaystyle \left\{C_{16}, C_{5}, R_{24}, R_{6}, R_{7}, Rp_{1}, V_{1}, V_{2}\right\}\)

Code
N(dr[2].subs(element_values))/(2*np.pi)

\(\displaystyle -13.1733592901789\)

Code
dr[2].free_symbols

\(\displaystyle \left\{C_{16}, C_{5}, R_{24}, R_{6}, R_{7}, Rp_{1}, V_{1}, V_{2}\right\}\)

39.3 sum path 1a

Figure 39.2: Schematic of Klon-Centaur_sum_path1a_v1
Code
sum_path1a_v1_netlist = '''
* Klon-Centaur_sum_path1a_v1.asc
V1 1 0 1 
C3 3 1 100e-9
R6 4 3 10e3
C5 4 3 68e-9
Rp1b1 0 4 50e3
Rp1a1 5 0 50e3
R10 6 5 2e3
R11 7 6 15e3
C7 7 6 82e-9
C8 2 7 390e-12
R12 2 7 422e3
R7 3 8 1.5e3
R24 9 8 15e3
O1b 7 4 2
C16 8 0 1e-6
V2 9 0 0
'''
Code
report, network_df, i_unk_df, A, X, Z = SymMNA.smna(sum_path1a_v1_netlist)

Build the network equations

Code
# Put matrices into SymPy 
X = Matrix(X)
Z = Matrix(Z)

NE_sym = Eq(A*X,Z)

# display the equations
temp = ''
for i in range(shape(NE_sym.lhs)[0]):
    temp += '${:s} = {:s}$<br>'.format(latex(NE_sym.rhs[i]),latex(NE_sym.lhs[i]))
Markdown(temp)

\(0 = C_{3} s v_{1} - C_{3} s v_{3} + I_{V1}\)
\(0 = I_{O1b} + v_{2} \left(C_{8} s + \frac{1}{R_{12}}\right) + v_{7} \left(- C_{8} s - \frac{1}{R_{12}}\right)\)
\(0 = - C_{3} s v_{1} + v_{3} \left(C_{3} s + C_{5} s + \frac{1}{R_{7}} + \frac{1}{R_{6}}\right) + v_{4} \left(- C_{5} s - \frac{1}{R_{6}}\right) - \frac{v_{8}}{R_{7}}\)
\(0 = v_{3} \left(- C_{5} s - \frac{1}{R_{6}}\right) + v_{4} \left(C_{5} s + \frac{1}{Rp1b1} + \frac{1}{R_{6}}\right)\)
\(0 = v_{5} \cdot \left(\frac{1}{Rp1a1} + \frac{1}{R_{10}}\right) - \frac{v_{6}}{R_{10}}\)
\(0 = v_{6} \left(C_{7} s + \frac{1}{R_{11}} + \frac{1}{R_{10}}\right) + v_{7} \left(- C_{7} s - \frac{1}{R_{11}}\right) - \frac{v_{5}}{R_{10}}\)
\(0 = v_{2} \left(- C_{8} s - \frac{1}{R_{12}}\right) + v_{6} \left(- C_{7} s - \frac{1}{R_{11}}\right) + v_{7} \left(C_{7} s + C_{8} s + \frac{1}{R_{12}} + \frac{1}{R_{11}}\right)\)
\(0 = v_{8} \left(C_{16} s + \frac{1}{R_{7}} + \frac{1}{R_{24}}\right) - \frac{v_{3}}{R_{7}} - \frac{v_{9}}{R_{24}}\)
\(0 = I_{V2} - \frac{v_{8}}{R_{24}} + \frac{v_{9}}{R_{24}}\)
\(V_{1} = v_{1}\)
\(V_{2} = v_{9}\)
\(0 = - v_{4} + v_{7}\)

Turn the free symbols into SymPy variables.

Code
var(str(NE_sym.free_symbols).replace('{','').replace('}',''))

\(\displaystyle \left( Rp1b1, \ v_{2}, \ v_{5}, \ I_{V1}, \ s, \ v_{9}, \ C_{3}, \ V_{1}, \ R_{10}, \ C_{8}, \ v_{7}, \ I_{O1b}, \ v_{3}, \ C_{7}, \ R_{6}, \ R_{24}, \ R_{7}, \ C_{5}, \ R_{12}, \ v_{1}, \ v_{4}, \ v_{8}, \ R_{11}, \ v_{6}, \ C_{16}, \ V_{2}, \ Rp1a1, \ I_{V2}\right)\)

Code
element_values = SymMNA.get_part_values(network_df)

39.3.1 Symbolic solution

The network equations can be solved symbolically.

Code
U_sym = solve(NE_sym,X)

Display the symbolic solution

temp = ’’ for i in U_sym.keys(): temp += ‘\({:s} = {:s}\)
’.format(latex(i),latex(U_sym[i]))

Markdown(temp)

39.3.2 Transfer function

Explanation of operation by looking at the pole and zero locations.

Code
H_sym = cancel(U_sym[v2]/U_sym[v1])
H_sym

\(\displaystyle \frac{C_{16} C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{5} + C_{16} C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{5} + C_{16} C_{3} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{7} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{7} R_{11} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{12} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} R_{10} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{11} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{7} R_{10} R_{11} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} R_{11} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{10} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{12} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} R_{10} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{11} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{10} R_{11} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{10} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{12} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} R_{10} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{10} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{11} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{7} R_{10} R_{11} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{10} R_{11} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} R_{10} R_{24} Rp1b1 V_{1} s + C_{3} R_{10} R_{7} Rp1b1 V_{1} s + C_{3} R_{11} R_{24} Rp1b1 V_{1} s + C_{3} R_{11} R_{7} Rp1b1 V_{1} s + C_{3} R_{12} R_{24} Rp1b1 V_{1} s + C_{3} R_{12} R_{7} Rp1b1 V_{1} s + C_{3} R_{24} Rp1a1 Rp1b1 V_{1} s + C_{3} R_{7} Rp1a1 Rp1b1 V_{1} s + C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} Rp1b1 V_{2} s^{3} + C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} Rp1a1 Rp1b1 V_{2} s^{3} + C_{5} C_{7} R_{10} R_{11} R_{6} Rp1b1 V_{2} s^{2} + C_{5} C_{7} R_{11} R_{12} R_{6} Rp1b1 V_{2} s^{2} + C_{5} C_{7} R_{11} R_{6} Rp1a1 Rp1b1 V_{2} s^{2} + C_{5} C_{8} R_{10} R_{12} R_{6} Rp1b1 V_{2} s^{2} + C_{5} C_{8} R_{11} R_{12} R_{6} Rp1b1 V_{2} s^{2} + C_{5} C_{8} R_{12} R_{6} Rp1a1 Rp1b1 V_{2} s^{2} + C_{5} R_{10} R_{6} Rp1b1 V_{2} s + C_{5} R_{11} R_{6} Rp1b1 V_{2} s + C_{5} R_{12} R_{6} Rp1b1 V_{2} s + C_{5} R_{6} Rp1a1 Rp1b1 V_{2} s + C_{7} C_{8} R_{10} R_{11} R_{12} Rp1b1 V_{2} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 Rp1b1 V_{2} s^{2} + C_{7} R_{10} R_{11} Rp1b1 V_{2} s + C_{7} R_{11} R_{12} Rp1b1 V_{2} s + C_{7} R_{11} Rp1a1 Rp1b1 V_{2} s + C_{8} R_{10} R_{12} Rp1b1 V_{2} s + C_{8} R_{11} R_{12} Rp1b1 V_{2} s + C_{8} R_{12} Rp1a1 Rp1b1 V_{2} s + R_{10} Rp1b1 V_{2} + R_{11} Rp1b1 V_{2} + R_{12} Rp1b1 V_{2} + Rp1a1 Rp1b1 V_{2}}{C_{16} C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{5} + C_{16} C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{5} + C_{16} C_{3} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{7} R_{11} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{12} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} R_{10} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{11} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} R_{7} V_{1} s^{4} + C_{16} C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{4} + C_{16} C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{7} R_{10} R_{11} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{3} C_{7} R_{10} R_{11} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} R_{11} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{3} C_{7} R_{11} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{10} R_{12} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{3} C_{8} R_{10} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{3} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{12} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{12} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} R_{10} R_{24} R_{6} R_{7} V_{1} s^{2} + C_{16} C_{3} R_{10} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{11} R_{24} R_{6} R_{7} V_{1} s^{2} + C_{16} C_{3} R_{11} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{16} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} R_{7} V_{1} s^{4} + C_{16} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{4} + C_{16} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{4} + C_{16} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{16} C_{5} C_{7} R_{11} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{5} C_{7} R_{11} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{16} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{16} C_{5} C_{8} R_{12} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{5} C_{8} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{5} R_{10} R_{24} R_{6} R_{7} V_{1} s^{2} + C_{16} C_{5} R_{10} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{16} C_{5} R_{11} R_{24} R_{6} R_{7} V_{1} s^{2} + C_{16} C_{5} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{16} C_{5} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{16} C_{5} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{16} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} V_{1} s^{3} + C_{16} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{7} V_{1} s^{3} + C_{16} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{3} + C_{16} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{3} + C_{16} C_{7} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{7} C_{8} R_{11} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{7} R_{10} R_{11} R_{24} R_{6} V_{1} s^{2} + C_{16} C_{7} R_{10} R_{11} R_{24} R_{7} V_{1} s^{2} + C_{16} C_{7} R_{10} R_{11} R_{24} Rp1b1 V_{1} s^{2} + C_{16} C_{7} R_{11} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{16} C_{7} R_{11} R_{24} R_{7} Rp1a1 V_{1} s^{2} + C_{16} C_{7} R_{11} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{16} C_{8} R_{10} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{16} C_{8} R_{10} R_{12} R_{24} R_{7} V_{1} s^{2} + C_{16} C_{8} R_{10} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{16} C_{8} R_{11} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{16} C_{8} R_{11} R_{12} R_{24} R_{7} V_{1} s^{2} + C_{16} C_{8} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{16} C_{8} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{16} C_{8} R_{12} R_{24} R_{7} Rp1a1 V_{1} s^{2} + C_{16} C_{8} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{16} R_{10} R_{24} R_{6} V_{1} s + C_{16} R_{10} R_{24} R_{7} V_{1} s + C_{16} R_{10} R_{24} Rp1b1 V_{1} s + C_{16} R_{11} R_{24} R_{6} V_{1} s + C_{16} R_{11} R_{24} R_{7} V_{1} s + C_{16} R_{11} R_{24} Rp1b1 V_{1} s + C_{16} R_{24} R_{6} Rp1a1 V_{1} s + C_{16} R_{24} R_{7} Rp1a1 V_{1} s + C_{16} R_{24} Rp1a1 Rp1b1 V_{1} s + C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{10} R_{11} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{10} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{12} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} R_{10} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{10} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{11} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} V_{1} s^{3} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} R_{7} V_{1} s^{3} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{7} R_{10} R_{11} R_{24} R_{6} V_{1} s^{2} + C_{3} C_{7} R_{10} R_{11} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{10} R_{11} R_{6} R_{7} V_{1} s^{2} + C_{3} C_{7} R_{10} R_{11} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{6} R_{7} V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{6} R_{7} V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} R_{10} R_{24} R_{6} V_{1} s + C_{3} R_{10} R_{24} Rp1b1 V_{1} s + C_{3} R_{10} R_{6} R_{7} V_{1} s + C_{3} R_{10} R_{7} Rp1b1 V_{1} s + C_{3} R_{11} R_{24} R_{6} V_{1} s + C_{3} R_{11} R_{24} Rp1b1 V_{1} s + C_{3} R_{11} R_{6} R_{7} V_{1} s + C_{3} R_{11} R_{7} Rp1b1 V_{1} s + C_{3} R_{24} R_{6} Rp1a1 V_{1} s + C_{3} R_{24} Rp1a1 Rp1b1 V_{1} s + C_{3} R_{6} R_{7} Rp1a1 V_{1} s + C_{3} R_{7} Rp1a1 Rp1b1 V_{1} s + C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} V_{1} s^{3} + C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} R_{7} V_{1} s^{3} + C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} Rp1b1 V_{1} s^{3} + C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{3} + C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} V_{1} s^{2} + C_{5} C_{7} R_{10} R_{11} R_{6} R_{7} V_{1} s^{2} + C_{5} C_{7} R_{10} R_{11} R_{6} Rp1b1 V_{1} s^{2} + C_{5} C_{7} R_{11} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{5} C_{7} R_{11} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{5} C_{7} R_{11} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{5} C_{8} R_{10} R_{12} R_{6} R_{7} V_{1} s^{2} + C_{5} C_{8} R_{10} R_{12} R_{6} Rp1b1 V_{1} s^{2} + C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{5} C_{8} R_{11} R_{12} R_{6} R_{7} V_{1} s^{2} + C_{5} C_{8} R_{11} R_{12} R_{6} Rp1b1 V_{1} s^{2} + C_{5} C_{8} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{5} C_{8} R_{12} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{5} C_{8} R_{12} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{5} R_{10} R_{24} R_{6} V_{1} s + C_{5} R_{10} R_{6} R_{7} V_{1} s + C_{5} R_{10} R_{6} Rp1b1 V_{1} s + C_{5} R_{11} R_{24} R_{6} V_{1} s + C_{5} R_{11} R_{6} R_{7} V_{1} s + C_{5} R_{11} R_{6} Rp1b1 V_{1} s + C_{5} R_{24} R_{6} Rp1a1 V_{1} s + C_{5} R_{6} R_{7} Rp1a1 V_{1} s + C_{5} R_{6} Rp1a1 Rp1b1 V_{1} s + C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} V_{1} s^{2} + C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} V_{1} s^{2} + C_{7} C_{8} R_{10} R_{11} R_{12} R_{7} V_{1} s^{2} + C_{7} C_{8} R_{10} R_{11} R_{12} Rp1b1 V_{1} s^{2} + C_{7} C_{8} R_{11} R_{12} R_{24} Rp1a1 V_{1} s^{2} + C_{7} C_{8} R_{11} R_{12} R_{6} Rp1a1 V_{1} s^{2} + C_{7} C_{8} R_{11} R_{12} R_{7} Rp1a1 V_{1} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 Rp1b1 V_{1} s^{2} + C_{7} R_{10} R_{11} R_{24} V_{1} s + C_{7} R_{10} R_{11} R_{6} V_{1} s + C_{7} R_{10} R_{11} R_{7} V_{1} s + C_{7} R_{10} R_{11} Rp1b1 V_{1} s + C_{7} R_{11} R_{24} Rp1a1 V_{1} s + C_{7} R_{11} R_{6} Rp1a1 V_{1} s + C_{7} R_{11} R_{7} Rp1a1 V_{1} s + C_{7} R_{11} Rp1a1 Rp1b1 V_{1} s + C_{8} R_{10} R_{12} R_{24} V_{1} s + C_{8} R_{10} R_{12} R_{6} V_{1} s + C_{8} R_{10} R_{12} R_{7} V_{1} s + C_{8} R_{10} R_{12} Rp1b1 V_{1} s + C_{8} R_{11} R_{12} R_{24} V_{1} s + C_{8} R_{11} R_{12} R_{6} V_{1} s + C_{8} R_{11} R_{12} R_{7} V_{1} s + C_{8} R_{11} R_{12} Rp1b1 V_{1} s + C_{8} R_{12} R_{24} Rp1a1 V_{1} s + C_{8} R_{12} R_{6} Rp1a1 V_{1} s + C_{8} R_{12} R_{7} Rp1a1 V_{1} s + C_{8} R_{12} Rp1a1 Rp1b1 V_{1} s + R_{10} R_{24} V_{1} + R_{10} R_{6} V_{1} + R_{10} R_{7} V_{1} + R_{10} Rp1b1 V_{1} + R_{11} R_{24} V_{1} + R_{11} R_{6} V_{1} + R_{11} R_{7} V_{1} + R_{11} Rp1b1 V_{1} + R_{24} Rp1a1 V_{1} + R_{6} Rp1a1 V_{1} + R_{7} Rp1a1 V_{1} + Rp1a1 Rp1b1 V_{1}}\)

Code
sym_num, sym_denom = fraction(H_sym) #returns numerator and denominator
Code
sym_num.subs(element_values)

\(\displaystyle 8.052800652 \cdot 10^{-7} s^{5} + 0.04721935889448 s^{4} + 138.433239882 s^{3} + 131454.26595 s^{2} + 40342500.0 s\)

Code
sym_num

\(\displaystyle C_{16} C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{5} + C_{16} C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{5} + C_{16} C_{3} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{7} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{7} R_{11} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{12} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} R_{10} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{11} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{7} R_{10} R_{11} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} R_{11} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{10} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{12} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} R_{10} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{11} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{10} R_{11} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{10} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{12} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} R_{10} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{10} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{11} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{7} R_{10} R_{11} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{10} R_{11} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} R_{10} R_{24} Rp1b1 V_{1} s + C_{3} R_{10} R_{7} Rp1b1 V_{1} s + C_{3} R_{11} R_{24} Rp1b1 V_{1} s + C_{3} R_{11} R_{7} Rp1b1 V_{1} s + C_{3} R_{12} R_{24} Rp1b1 V_{1} s + C_{3} R_{12} R_{7} Rp1b1 V_{1} s + C_{3} R_{24} Rp1a1 Rp1b1 V_{1} s + C_{3} R_{7} Rp1a1 Rp1b1 V_{1} s + C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} Rp1b1 V_{2} s^{3} + C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} Rp1a1 Rp1b1 V_{2} s^{3} + C_{5} C_{7} R_{10} R_{11} R_{6} Rp1b1 V_{2} s^{2} + C_{5} C_{7} R_{11} R_{12} R_{6} Rp1b1 V_{2} s^{2} + C_{5} C_{7} R_{11} R_{6} Rp1a1 Rp1b1 V_{2} s^{2} + C_{5} C_{8} R_{10} R_{12} R_{6} Rp1b1 V_{2} s^{2} + C_{5} C_{8} R_{11} R_{12} R_{6} Rp1b1 V_{2} s^{2} + C_{5} C_{8} R_{12} R_{6} Rp1a1 Rp1b1 V_{2} s^{2} + C_{5} R_{10} R_{6} Rp1b1 V_{2} s + C_{5} R_{11} R_{6} Rp1b1 V_{2} s + C_{5} R_{12} R_{6} Rp1b1 V_{2} s + C_{5} R_{6} Rp1a1 Rp1b1 V_{2} s + C_{7} C_{8} R_{10} R_{11} R_{12} Rp1b1 V_{2} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 Rp1b1 V_{2} s^{2} + C_{7} R_{10} R_{11} Rp1b1 V_{2} s + C_{7} R_{11} R_{12} Rp1b1 V_{2} s + C_{7} R_{11} Rp1a1 Rp1b1 V_{2} s + C_{8} R_{10} R_{12} Rp1b1 V_{2} s + C_{8} R_{11} R_{12} Rp1b1 V_{2} s + C_{8} R_{12} Rp1a1 Rp1b1 V_{2} s + R_{10} Rp1b1 V_{2} + R_{11} Rp1b1 V_{2} + R_{12} Rp1b1 V_{2} + Rp1a1 Rp1b1 V_{2}\)

Code
nr = solve(sym_num,s)
Code
len(nr)

\(\displaystyle 5\)

Code
N(nr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -234.051386899846\)

Code
nr[0].free_symbols

\(\displaystyle \left\{C_{5}, R_{6}\right\}\)

Code
N(nr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -8848.65333990331\)

Code
nr[1].free_symbols

\(\displaystyle \left\{C_{7}, C_{8}, R_{10}, R_{11}, R_{12}, Rp1a1\right\}\)

Code
N(nr[2].subs(element_values))/(2*np.pi)

\(\displaystyle -132.980030458265\)

Code
nr[2].free_symbols

\(\displaystyle \left\{C_{7}, C_{8}, R_{10}, R_{11}, R_{12}, Rp1a1\right\}\)

Code
N(nr[3].subs(element_values))/(2*np.pi)

\(\displaystyle -116.713624934057\)

Code
nr[3].free_symbols

\(\displaystyle \left\{C_{16}, C_{3}, R_{24}, R_{7}, V_{1}, V_{2}\right\}\)

Code
N(nr[4].subs(element_values))/(2*np.pi)

\(\displaystyle -1.36532531823375 \cdot 10^{-14}\)

Code
nr[4].free_symbols

\(\displaystyle \left\{C_{16}, C_{3}, R_{24}, R_{7}, V_{1}, V_{2}\right\}\)

Code
sym_denom.subs(element_values)

\(\displaystyle 8.052800652 \cdot 10^{-7} s^{5} + 0.01327770575352 s^{4} + 70.074953839296 s^{3} + 128794.0633644 s^{2} + 77206734.79 s + 5125500000.0\)

Code
sym_denom

\(\displaystyle C_{16} C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{5} + C_{16} C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{5} + C_{16} C_{3} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{7} R_{11} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} C_{8} R_{12} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{5} R_{10} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{11} R_{24} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{5} R_{24} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} R_{7} V_{1} s^{4} + C_{16} C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{4} + C_{16} C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{3} C_{7} R_{10} R_{11} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{3} C_{7} R_{10} R_{11} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{7} R_{11} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{3} C_{7} R_{11} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{10} R_{12} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{3} C_{8} R_{10} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{3} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1b1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{12} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{3} C_{8} R_{12} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{3} R_{10} R_{24} R_{6} R_{7} V_{1} s^{2} + C_{16} C_{3} R_{10} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{11} R_{24} R_{6} R_{7} V_{1} s^{2} + C_{16} C_{3} R_{11} R_{24} R_{7} Rp1b1 V_{1} s^{2} + C_{16} C_{3} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{16} C_{3} R_{24} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{16} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} R_{7} V_{1} s^{4} + C_{16} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{4} + C_{16} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{4} + C_{16} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{4} + C_{16} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{16} C_{5} C_{7} R_{11} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{5} C_{7} R_{11} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{16} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} R_{7} V_{1} s^{3} + C_{16} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{16} C_{5} C_{8} R_{12} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{5} C_{8} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{5} R_{10} R_{24} R_{6} R_{7} V_{1} s^{2} + C_{16} C_{5} R_{10} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{16} C_{5} R_{11} R_{24} R_{6} R_{7} V_{1} s^{2} + C_{16} C_{5} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{16} C_{5} R_{24} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{16} C_{5} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{16} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} V_{1} s^{3} + C_{16} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{7} V_{1} s^{3} + C_{16} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{3} + C_{16} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{3} + C_{16} C_{7} C_{8} R_{11} R_{12} R_{24} R_{7} Rp1a1 V_{1} s^{3} + C_{16} C_{7} C_{8} R_{11} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{3} + C_{16} C_{7} R_{10} R_{11} R_{24} R_{6} V_{1} s^{2} + C_{16} C_{7} R_{10} R_{11} R_{24} R_{7} V_{1} s^{2} + C_{16} C_{7} R_{10} R_{11} R_{24} Rp1b1 V_{1} s^{2} + C_{16} C_{7} R_{11} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{16} C_{7} R_{11} R_{24} R_{7} Rp1a1 V_{1} s^{2} + C_{16} C_{7} R_{11} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{16} C_{8} R_{10} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{16} C_{8} R_{10} R_{12} R_{24} R_{7} V_{1} s^{2} + C_{16} C_{8} R_{10} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{16} C_{8} R_{11} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{16} C_{8} R_{11} R_{12} R_{24} R_{7} V_{1} s^{2} + C_{16} C_{8} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{16} C_{8} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{16} C_{8} R_{12} R_{24} R_{7} Rp1a1 V_{1} s^{2} + C_{16} C_{8} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{16} R_{10} R_{24} R_{6} V_{1} s + C_{16} R_{10} R_{24} R_{7} V_{1} s + C_{16} R_{10} R_{24} Rp1b1 V_{1} s + C_{16} R_{11} R_{24} R_{6} V_{1} s + C_{16} R_{11} R_{24} R_{7} V_{1} s + C_{16} R_{11} R_{24} Rp1b1 V_{1} s + C_{16} R_{24} R_{6} Rp1a1 V_{1} s + C_{16} R_{24} R_{7} Rp1a1 V_{1} s + C_{16} R_{24} Rp1a1 Rp1b1 V_{1} s + C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{4} + C_{3} C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{10} R_{11} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{7} R_{11} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{10} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{12} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} C_{8} R_{12} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{5} R_{10} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{10} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{11} R_{24} R_{6} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{11} R_{6} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{24} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{5} R_{6} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} V_{1} s^{3} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} R_{7} V_{1} s^{3} + C_{3} C_{7} C_{8} R_{10} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{3} C_{7} C_{8} R_{11} R_{12} R_{7} Rp1a1 Rp1b1 V_{1} s^{3} + C_{3} C_{7} R_{10} R_{11} R_{24} R_{6} V_{1} s^{2} + C_{3} C_{7} R_{10} R_{11} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{10} R_{11} R_{6} R_{7} V_{1} s^{2} + C_{3} C_{7} R_{10} R_{11} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{3} C_{7} R_{11} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{6} R_{7} V_{1} s^{2} + C_{3} C_{8} R_{10} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{24} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{6} R_{7} V_{1} s^{2} + C_{3} C_{8} R_{11} R_{12} R_{7} Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{24} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{3} C_{8} R_{12} R_{7} Rp1a1 Rp1b1 V_{1} s^{2} + C_{3} R_{10} R_{24} R_{6} V_{1} s + C_{3} R_{10} R_{24} Rp1b1 V_{1} s + C_{3} R_{10} R_{6} R_{7} V_{1} s + C_{3} R_{10} R_{7} Rp1b1 V_{1} s + C_{3} R_{11} R_{24} R_{6} V_{1} s + C_{3} R_{11} R_{24} Rp1b1 V_{1} s + C_{3} R_{11} R_{6} R_{7} V_{1} s + C_{3} R_{11} R_{7} Rp1b1 V_{1} s + C_{3} R_{24} R_{6} Rp1a1 V_{1} s + C_{3} R_{24} Rp1a1 Rp1b1 V_{1} s + C_{3} R_{6} R_{7} Rp1a1 V_{1} s + C_{3} R_{7} Rp1a1 Rp1b1 V_{1} s + C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} R_{6} V_{1} s^{3} + C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} R_{7} V_{1} s^{3} + C_{5} C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} Rp1b1 V_{1} s^{3} + C_{5} C_{7} C_{8} R_{11} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{3} + C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} R_{7} Rp1a1 V_{1} s^{3} + C_{5} C_{7} C_{8} R_{11} R_{12} R_{6} Rp1a1 Rp1b1 V_{1} s^{3} + C_{5} C_{7} R_{10} R_{11} R_{24} R_{6} V_{1} s^{2} + C_{5} C_{7} R_{10} R_{11} R_{6} R_{7} V_{1} s^{2} + C_{5} C_{7} R_{10} R_{11} R_{6} Rp1b1 V_{1} s^{2} + C_{5} C_{7} R_{11} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{5} C_{7} R_{11} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{5} C_{7} R_{11} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{5} C_{8} R_{10} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{5} C_{8} R_{10} R_{12} R_{6} R_{7} V_{1} s^{2} + C_{5} C_{8} R_{10} R_{12} R_{6} Rp1b1 V_{1} s^{2} + C_{5} C_{8} R_{11} R_{12} R_{24} R_{6} V_{1} s^{2} + C_{5} C_{8} R_{11} R_{12} R_{6} R_{7} V_{1} s^{2} + C_{5} C_{8} R_{11} R_{12} R_{6} Rp1b1 V_{1} s^{2} + C_{5} C_{8} R_{12} R_{24} R_{6} Rp1a1 V_{1} s^{2} + C_{5} C_{8} R_{12} R_{6} R_{7} Rp1a1 V_{1} s^{2} + C_{5} C_{8} R_{12} R_{6} Rp1a1 Rp1b1 V_{1} s^{2} + C_{5} R_{10} R_{24} R_{6} V_{1} s + C_{5} R_{10} R_{6} R_{7} V_{1} s + C_{5} R_{10} R_{6} Rp1b1 V_{1} s + C_{5} R_{11} R_{24} R_{6} V_{1} s + C_{5} R_{11} R_{6} R_{7} V_{1} s + C_{5} R_{11} R_{6} Rp1b1 V_{1} s + C_{5} R_{24} R_{6} Rp1a1 V_{1} s + C_{5} R_{6} R_{7} Rp1a1 V_{1} s + C_{5} R_{6} Rp1a1 Rp1b1 V_{1} s + C_{7} C_{8} R_{10} R_{11} R_{12} R_{24} V_{1} s^{2} + C_{7} C_{8} R_{10} R_{11} R_{12} R_{6} V_{1} s^{2} + C_{7} C_{8} R_{10} R_{11} R_{12} R_{7} V_{1} s^{2} + C_{7} C_{8} R_{10} R_{11} R_{12} Rp1b1 V_{1} s^{2} + C_{7} C_{8} R_{11} R_{12} R_{24} Rp1a1 V_{1} s^{2} + C_{7} C_{8} R_{11} R_{12} R_{6} Rp1a1 V_{1} s^{2} + C_{7} C_{8} R_{11} R_{12} R_{7} Rp1a1 V_{1} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 Rp1b1 V_{1} s^{2} + C_{7} R_{10} R_{11} R_{24} V_{1} s + C_{7} R_{10} R_{11} R_{6} V_{1} s + C_{7} R_{10} R_{11} R_{7} V_{1} s + C_{7} R_{10} R_{11} Rp1b1 V_{1} s + C_{7} R_{11} R_{24} Rp1a1 V_{1} s + C_{7} R_{11} R_{6} Rp1a1 V_{1} s + C_{7} R_{11} R_{7} Rp1a1 V_{1} s + C_{7} R_{11} Rp1a1 Rp1b1 V_{1} s + C_{8} R_{10} R_{12} R_{24} V_{1} s + C_{8} R_{10} R_{12} R_{6} V_{1} s + C_{8} R_{10} R_{12} R_{7} V_{1} s + C_{8} R_{10} R_{12} Rp1b1 V_{1} s + C_{8} R_{11} R_{12} R_{24} V_{1} s + C_{8} R_{11} R_{12} R_{6} V_{1} s + C_{8} R_{11} R_{12} R_{7} V_{1} s + C_{8} R_{11} R_{12} Rp1b1 V_{1} s + C_{8} R_{12} R_{24} Rp1a1 V_{1} s + C_{8} R_{12} R_{6} Rp1a1 V_{1} s + C_{8} R_{12} R_{7} Rp1a1 V_{1} s + C_{8} R_{12} Rp1a1 Rp1b1 V_{1} s + R_{10} R_{24} V_{1} + R_{10} R_{6} V_{1} + R_{10} R_{7} V_{1} + R_{10} Rp1b1 V_{1} + R_{11} R_{24} V_{1} + R_{11} R_{6} V_{1} + R_{11} R_{7} V_{1} + R_{11} Rp1b1 V_{1} + R_{24} Rp1a1 V_{1} + R_{6} Rp1a1 V_{1} + R_{7} Rp1a1 V_{1} + Rp1a1 Rp1b1 V_{1}\)

Code
dr = solve(sym_denom,s)
Code
len(dr)

\(\displaystyle 5\)

Code
N(dr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -967.036961306935\)

Code
dr[0].free_symbols

\(\displaystyle \left\{C_{8}, R_{12}\right\}\)

Code
N(dr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -166.71953075605\)

Code
dr[1].free_symbols

\(\displaystyle \left\{C_{7}, R_{10}, R_{11}, Rp1a1\right\}\)

Code
N(dr[2].subs(element_values))/(2*np.pi)

\(\displaystyle -1198.55051381319 + 1.53728466142967 \cdot 10^{-13} i\)

Code
dr[2].free_symbols

\(\displaystyle \left\{C_{16}, C_{3}, C_{5}, R_{24}, R_{6}, R_{7}, Rp1b1\right\}\)

Code
N(dr[3].subs(element_values))/(2*np.pi)

\(\displaystyle -279.870301857556 - 6.80987679360742 \cdot 10^{-13} i\)

Code
dr[3].free_symbols

\(\displaystyle \left\{C_{16}, C_{3}, C_{5}, R_{24}, R_{6}, R_{7}, Rp1b1\right\}\)

Code
N(dr[4].subs(element_values))/(2*np.pi)

\(\displaystyle -12.0184161074726 + 5.27258661038143 \cdot 10^{-13} i\)

Code
dr[4].free_symbols

\(\displaystyle \left\{C_{16}, C_{3}, C_{5}, R_{24}, R_{6}, R_{7}, Rp1b1\right\}\)

39.4 sum path 1b

Figure 39.3: Schematic of Klon-Centaur_sum_path1b_v1

Klon-Centaur_sum_path1b_v1

Fix P1 ref designators, seems like Rp1b1 and Rp1a1 parts A and B are mixed

Code
sum_path1b_v1_net_list = '''
* Klon-Centaur_sum_path1b_v1.asc
V1 1 0 1
Rp1b1 0 1 50e3
Rp1a1 3 0 50e3
R10 4 3 2e3
R11 5 4 15e3
C7 5 4 82e-9
C8 2 5 390e-12
R12 2 5 422e3
O1b 5 1 2 
'''
Code
report, network_df, i_unk_df, A, X, Z = SymMNA.smna(sum_path1b_v1_net_list)

Build the network equations

Code
# Put matrices into SymPy 
X = Matrix(X)
Z = Matrix(Z)

NE_sym = Eq(A*X,Z)

# display the equations
temp = ''
for i in range(shape(NE_sym.lhs)[0]):
    temp += '${:s} = {:s}$<br>'.format(latex(NE_sym.rhs[i]),latex(NE_sym.lhs[i]))
Markdown(temp)

\(0 = I_{V1} + \frac{v_{1}}{Rp1b1}\)
\(0 = I_{O1b} + v_{2} \left(C_{8} s + \frac{1}{R_{12}}\right) + v_{5} \left(- C_{8} s - \frac{1}{R_{12}}\right)\)
\(0 = v_{3} \cdot \left(\frac{1}{Rp1a1} + \frac{1}{R_{10}}\right) - \frac{v_{4}}{R_{10}}\)
\(0 = v_{4} \left(C_{7} s + \frac{1}{R_{11}} + \frac{1}{R_{10}}\right) + v_{5} \left(- C_{7} s - \frac{1}{R_{11}}\right) - \frac{v_{3}}{R_{10}}\)
\(0 = v_{2} \left(- C_{8} s - \frac{1}{R_{12}}\right) + v_{4} \left(- C_{7} s - \frac{1}{R_{11}}\right) + v_{5} \left(C_{7} s + C_{8} s + \frac{1}{R_{12}} + \frac{1}{R_{11}}\right)\)
\(V_{1} = v_{1}\)
\(0 = - v_{1} + v_{5}\)

Turn the free symbols into SymPy variables.

Code
var(str(NE_sym.free_symbols).replace('{','').replace('}',''))

\(\displaystyle \left( Rp1b1, \ v_{2}, \ v_{5}, \ v_{3}, \ I_{V1}, \ R_{12}, \ v_{1}, \ s, \ v_{4}, \ R_{11}, \ V_{1}, \ R_{10}, \ C_{7}, \ C_{8}, \ Rp1a1, \ I_{O1b}\right)\)

Code
element_values = SymMNA.get_part_values(network_df)

39.4.1 Symbolic solution

The network equations can be solved symbolically.

Code
U_sym = solve(NE_sym,X)

Display the symbolic solution

Code
temp = ''
for i in U_sym.keys():
    temp += '${:s} = {:s}$<br>'.format(latex(i),latex(U_sym[i]))

Markdown(temp)

\(v_{1} = V_{1}\)
\(v_{2} = \frac{C_{7} C_{8} R_{10} R_{11} R_{12} V_{1} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 V_{1} s^{2} + C_{7} R_{10} R_{11} V_{1} s + C_{7} R_{11} R_{12} V_{1} s + C_{7} R_{11} Rp1a1 V_{1} s + C_{8} R_{10} R_{12} V_{1} s + C_{8} R_{11} R_{12} V_{1} s + C_{8} R_{12} Rp1a1 V_{1} s + R_{10} V_{1} + R_{11} V_{1} + R_{12} V_{1} + Rp1a1 V_{1}}{C_{7} C_{8} R_{10} R_{11} R_{12} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 s^{2} + C_{7} R_{10} R_{11} s + C_{7} R_{11} Rp1a1 s + C_{8} R_{10} R_{12} s + C_{8} R_{11} R_{12} s + C_{8} R_{12} Rp1a1 s + R_{10} + R_{11} + Rp1a1}\)
\(v_{3} = \frac{C_{7} R_{11} Rp1a1 V_{1} s + Rp1a1 V_{1}}{C_{7} R_{10} R_{11} s + C_{7} R_{11} Rp1a1 s + R_{10} + R_{11} + Rp1a1}\)
\(v_{4} = \frac{C_{7} R_{10} R_{11} V_{1} s + C_{7} R_{11} Rp1a1 V_{1} s + R_{10} V_{1} + Rp1a1 V_{1}}{C_{7} R_{10} R_{11} s + C_{7} R_{11} Rp1a1 s + R_{10} + R_{11} + Rp1a1}\)
\(v_{5} = V_{1}\)
\(I_{V1} = - \frac{V_{1}}{Rp1b1}\)
\(I_{O1b} = \frac{- C_{7} R_{11} V_{1} s - V_{1}}{C_{7} R_{10} R_{11} s + C_{7} R_{11} Rp1a1 s + R_{10} + R_{11} + Rp1a1}\)

39.4.2 Transfer function

Explanation of operation by looking at the pole and zero locations.

Code
H_sym = cancel(U_sym[v2]/U_sym[v1])
H_sym

\(\displaystyle \frac{C_{7} C_{8} R_{10} R_{11} R_{12} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 s^{2} + C_{7} R_{10} R_{11} s + C_{7} R_{11} R_{12} s + C_{7} R_{11} Rp1a1 s + C_{8} R_{10} R_{12} s + C_{8} R_{11} R_{12} s + C_{8} R_{12} Rp1a1 s + R_{10} + R_{11} + R_{12} + Rp1a1}{C_{7} C_{8} R_{10} R_{11} R_{12} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 s^{2} + C_{7} R_{10} R_{11} s + C_{7} R_{11} Rp1a1 s + C_{8} R_{10} R_{12} s + C_{8} R_{11} R_{12} s + C_{8} R_{12} Rp1a1 s + R_{10} + R_{11} + Rp1a1}\)

find the DC gain

Code
H_sym.subs({s:0})

\(\displaystyle \frac{R_{10} + R_{11} + R_{12} + Rp1a1}{R_{10} + R_{11} + Rp1a1}\)

Code
str(H_sym.subs({s:0}))
'(R10 + R11 + R12 + Rp1a1)/(R10 + R11 + Rp1a1)'
Code
H_sym.subs(element_values).subs({s:0})

\(\displaystyle 7.29850746268657\)

High freq gain

Code
H_sym.subs(element_values).subs({s:100e3*2*np.pi})

\(\displaystyle 1.07769815524754\)

Code
sym_num, sym_denom = fraction(H_sym) #returns numerator and denominator
Code
sym_num.subs(element_values)

\(\displaystyle 0.0105265368 s^{2} + 594.04686 s + 489000.0\)

Code
sym_num

\(\displaystyle C_{7} C_{8} R_{10} R_{11} R_{12} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 s^{2} + C_{7} R_{10} R_{11} s + C_{7} R_{11} R_{12} s + C_{7} R_{11} Rp1a1 s + C_{8} R_{10} R_{12} s + C_{8} R_{11} R_{12} s + C_{8} R_{12} Rp1a1 s + R_{10} + R_{11} + R_{12} + Rp1a1\)

Code
nr = solve(sym_num,s)
Code
len(nr)

\(\displaystyle 2\)

Code
N(nr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -8848.65333990331\)

Code
nr[0].free_symbols

\(\displaystyle \left\{C_{7}, C_{8}, R_{10}, R_{11}, R_{12}, Rp1a1\right\}\)

Code
N(nr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -132.980030458265\)

Code
nr[1].free_symbols

\(\displaystyle \left\{C_{7}, C_{8}, R_{10}, R_{11}, R_{12}, Rp1a1\right\}\)

Try plotting the location of the zeros as a function of P1a

Code
p1_value = 100e3
num_roots = []
for i in np.linspace(1,99,20)/100:
    element_values[Rp1a1] = p1_value - i*p1_value
    element_values[Rp1b1] = i*p1_value
    num_roots.append(solve(sym_num.subs(element_values),s))
    #print(np.array(num_roots)/(2*np.pi))

r1, r2 = zip(*num_roots)
plt.plot(np.linspace(1,99,len(r1)),np.array(r1)/(2*np.pi),'x-')
plt.plot(np.linspace(1,99,len(r2)),np.array(r2)/(2*np.pi),'.-')
plt.show()

Code
sym_denom.subs(element_values)

\(\displaystyle 0.0006073002 s^{2} + 6.65244 s + 18000.0\)

Code
sym_denom

\(\displaystyle C_{7} C_{8} R_{10} R_{11} R_{12} s^{2} + C_{7} C_{8} R_{11} R_{12} Rp1a1 s^{2} + C_{7} R_{10} R_{11} s + C_{7} R_{11} Rp1a1 s + C_{8} R_{10} R_{12} s + C_{8} R_{11} R_{12} s + C_{8} R_{12} Rp1a1 s + R_{10} + R_{11} + Rp1a1\)

Code
dr = solve(sym_denom,s)
Code
len(dr)

\(\displaystyle 2\)

Code
N(dr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -967.036961306935\)

Code
dr[0].free_symbols

\(\displaystyle \left\{C_{8}, R_{12}\right\}\)

Code
N(dr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -776.365576058026\)

Code
dr[1].free_symbols

\(\displaystyle \left\{C_{7}, R_{10}, R_{11}, Rp1a1\right\}\)

Try plotting the location of the poles as a function of P1a

Code
p1_value = 100e3
denom_roots = []
for i in np.linspace(1,99,20)/100:
    element_values[Rp1a1] = p1_value - i*p1_value
    element_values[Rp1b1] = i*p1_value
    denom_roots.append(solve(sym_denom.subs(element_values),s))
    #print(np.array(num_roots)/(2*np.pi))

r1, r2 = zip(*denom_roots)
plt.plot(np.linspace(1,99,len(r1)),np.array(r1)/(2*np.pi),'x-')
plt.plot(np.linspace(1,99,len(r2)),np.array(r2)/(2*np.pi),'.-')
plt.show()

39.4.3 Numerical solution

Construct a dictionary of element values.

Code
# display the component values
for k,v in element_values.items():
    print('{:s} = {:s}'.format(str(k), str(v)))
V1 = 1.0
Rp1b1 = 99000.0
Rp1a1 = 1000.0
R10 = 2000.0
R11 = 15000.0
C7 = 8.2e-08
C8 = 3.9e-10
R12 = 422000.0
O1b = nan

39.4.3.1 U1b circuit

Gain setting is a percent of full scale

Code
x_axis = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
color_list = ['tab:blue','tab:red','tab:green','tab:orange','k']
gain_setting = np.array([1,25,50,75,99])/100
p1_value = 100e3

tf_num_coef_list = []
tf_denom_coef_list = []

#clean_path1_mag = np.zeros((len(gain_setting),len(x_axis)))

#color_list = ['tab:blue','tab:red','tab:green','tab:orange','k']

fig, ax1 = plt.subplots()
ax1.set_ylabel('magnitude, dB')
ax1.set_xlabel('frequency, Hz')

# instantiate a second y-axes that shares the same x-axis
ax2 = ax1.twinx()
color = 'k'

ax2.set_ylabel('phase, deg',color=color)
ax2.tick_params(axis='y', labelcolor=color)

for i in range(len(gain_setting)):
    element_values[Rp1a1] = p1_value - gain_setting[i]*p1_value
    element_values[Rp1b1] = gain_setting[i]*p1_value
    
    #element_values[Rp1a2] = p1_value - gain_setting[i]*p1_value
    #element_values[Rp1b2] = gain_setting[i]*p1_value
    
    NE = NE_sym.subs(element_values)
    U = solve(NE,X)
    H = U[v2]/U[v1]
    num, denom = fraction(H) #returns numerator and denominator

    # convert symbolic to numpy polynomial
    a = np.array(Poly(num, s).all_coeffs(), dtype=float)
    b = np.array(Poly(denom, s).all_coeffs(), dtype=float)
    tf_num_coef_list.append(a)
    tf_denom_coef_list.append(b)
    
    #x = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
    w, mag, phase = signal.bode((a, b), w=x_axis) # returns: rad/s, mag in dB, phase in deg
    #clean_path1_mag[i] = mag
    
    # plot the results.  
    ax1.semilogx(w/(2*np.pi), mag,'-',color=color_list[i],label='mag: {:.0f}%'.format(gain_setting[i]*100))    # magnitude plot
    ax2.semilogx(w/(2*np.pi), phase,':',color=color_list[i],label='phase: {:.0f}%'.format(gain_setting[i]*100))  # phase plot

# highlight the guitar audio band, 80 to 8kHz
plt.axvspan(80, 8e3, color='y', alpha=0.3) 

ax1.legend(loc='lower left')
ax2.legend(loc='lower right')
ax1.grid()
plt.title('Magnitude and phase response')
plt.show()

39.5 Sum path 2a

Schematic of Klon-Centaur_sum_path2a_v1 Klon-Centaur_sum_path2a_v1

Try for a symbolic solution again.

Think about P1b2 and P1a2 as just a 100k resistor from node 3 to ground. The center tap supplies signal to next branch. Analyze v3/v1.

Code
sum_path2a_v1_net_list = '''
* Klon-Centaur_sum_path2a_v1.asc
R5 1 2 5.1e3
R8 2 0 1.5e3
C4 1 2 68e-9
C6 2 3 390e-9
R9 3 0 1e3
Rp1b2 2 4 50e3
Rp1a2 4 0 50e3
V1 1 0 1
'''
Code
report, network_df, i_unk_df, A, X, Z = SymMNA.smna(sum_path2a_v1_net_list)

Build the network equations

Code
# Put matrices into SymPy 
X = Matrix(X)
Z = Matrix(Z)

NE_sym = Eq(A*X,Z)

# display the equations
temp = ''
for i in range(shape(NE_sym.lhs)[0]):
    temp += '${:s} = {:s}$<br>'.format(latex(NE_sym.rhs[i]),latex(NE_sym.lhs[i]))
Markdown(temp)

\(0 = I_{V1} + v_{1} \left(C_{4} s + \frac{1}{R_{5}}\right) + v_{2} \left(- C_{4} s - \frac{1}{R_{5}}\right)\)
\(0 = - C_{6} s v_{3} + v_{1} \left(- C_{4} s - \frac{1}{R_{5}}\right) + v_{2} \left(C_{4} s + C_{6} s + \frac{1}{Rp1b2} + \frac{1}{R_{8}} + \frac{1}{R_{5}}\right) - \frac{v_{4}}{Rp1b2}\)
\(0 = - C_{6} s v_{2} + v_{3} \left(C_{6} s + \frac{1}{R_{9}}\right)\)
\(0 = v_{4} \cdot \left(\frac{1}{Rp1b2} + \frac{1}{Rp1a2}\right) - \frac{v_{2}}{Rp1b2}\)
\(V_{1} = v_{1}\)

Turn the free symbols into SymPy variables.

Code
var(str(NE_sym.free_symbols).replace('{','').replace('}',''))

\(\displaystyle \left( v_{3}, \ v_{2}, \ I_{V1}, \ C_{4}, \ v_{1}, \ R_{9}, \ s, \ v_{4}, \ Rp1a2, \ V_{1}, \ R_{8}, \ C_{6}, \ Rp1b2, \ R_{5}\right)\)

Code
element_values = SymMNA.get_part_values(network_df)

39.5.1 Symbolic solution

The network equations can be solved symbolically.

Code
U_sym = solve(NE_sym,X)

Display the symbolic solution

Code
temp = ''
for i in U_sym.keys():
    temp += '${:s} = {:s}$<br>'.format(latex(i),latex(U_sym[i]))

Markdown(temp)

\(v_{1} = V_{1}\)
\(v_{2} = \frac{C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 V_{1} s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 V_{1} s^{2} + C_{4} R_{5} R_{8} Rp1a2 V_{1} s + C_{4} R_{5} R_{8} Rp1b2 V_{1} s + C_{6} R_{8} R_{9} Rp1a2 V_{1} s + C_{6} R_{8} R_{9} Rp1b2 V_{1} s + R_{8} Rp1a2 V_{1} + R_{8} Rp1b2 V_{1}}{C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 s^{2} + C_{4} R_{5} R_{8} Rp1a2 s + C_{4} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{8} R_{9} s + C_{6} R_{5} R_{8} Rp1a2 s + C_{6} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{9} Rp1a2 s + C_{6} R_{5} R_{9} Rp1b2 s + C_{6} R_{8} R_{9} Rp1a2 s + C_{6} R_{8} R_{9} Rp1b2 s + R_{5} R_{8} + R_{5} Rp1a2 + R_{5} Rp1b2 + R_{8} Rp1a2 + R_{8} Rp1b2}\)
\(v_{3} = \frac{C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 V_{1} s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 V_{1} s^{2} + C_{6} R_{8} R_{9} Rp1a2 V_{1} s + C_{6} R_{8} R_{9} Rp1b2 V_{1} s}{C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 s^{2} + C_{4} R_{5} R_{8} Rp1a2 s + C_{4} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{8} R_{9} s + C_{6} R_{5} R_{8} Rp1a2 s + C_{6} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{9} Rp1a2 s + C_{6} R_{5} R_{9} Rp1b2 s + C_{6} R_{8} R_{9} Rp1a2 s + C_{6} R_{8} R_{9} Rp1b2 s + R_{5} R_{8} + R_{5} Rp1a2 + R_{5} Rp1b2 + R_{8} Rp1a2 + R_{8} Rp1b2}\)
\(v_{4} = \frac{C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 V_{1} s^{2} + C_{4} R_{5} R_{8} Rp1a2 V_{1} s + C_{6} R_{8} R_{9} Rp1a2 V_{1} s + R_{8} Rp1a2 V_{1}}{C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 s^{2} + C_{4} R_{5} R_{8} Rp1a2 s + C_{4} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{8} R_{9} s + C_{6} R_{5} R_{8} Rp1a2 s + C_{6} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{9} Rp1a2 s + C_{6} R_{5} R_{9} Rp1b2 s + C_{6} R_{8} R_{9} Rp1a2 s + C_{6} R_{8} R_{9} Rp1b2 s + R_{5} R_{8} + R_{5} Rp1a2 + R_{5} Rp1b2 + R_{8} Rp1a2 + R_{8} Rp1b2}\)
\(I_{V1} = \frac{- C_{4} C_{6} R_{5} R_{8} R_{9} V_{1} s^{2} - C_{4} C_{6} R_{5} R_{8} Rp1a2 V_{1} s^{2} - C_{4} C_{6} R_{5} R_{8} Rp1b2 V_{1} s^{2} - C_{4} C_{6} R_{5} R_{9} Rp1a2 V_{1} s^{2} - C_{4} C_{6} R_{5} R_{9} Rp1b2 V_{1} s^{2} - C_{4} R_{5} R_{8} V_{1} s - C_{4} R_{5} Rp1a2 V_{1} s - C_{4} R_{5} Rp1b2 V_{1} s - C_{6} R_{8} R_{9} V_{1} s - C_{6} R_{8} Rp1a2 V_{1} s - C_{6} R_{8} Rp1b2 V_{1} s - C_{6} R_{9} Rp1a2 V_{1} s - C_{6} R_{9} Rp1b2 V_{1} s - R_{8} V_{1} - Rp1a2 V_{1} - Rp1b2 V_{1}}{C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 s^{2} + C_{4} R_{5} R_{8} Rp1a2 s + C_{4} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{8} R_{9} s + C_{6} R_{5} R_{8} Rp1a2 s + C_{6} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{9} Rp1a2 s + C_{6} R_{5} R_{9} Rp1b2 s + C_{6} R_{8} R_{9} Rp1a2 s + C_{6} R_{8} R_{9} Rp1b2 s + R_{5} R_{8} + R_{5} Rp1a2 + R_{5} Rp1b2 + R_{8} Rp1a2 + R_{8} Rp1b2}\)

39.5.2 Transfer function

Explanation of operation by looking at the pole and zero locations.

Code
H_sym = cancel(U_sym[v2]/U_sym[v1])
H_sym

\(\displaystyle \frac{C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 s^{2} + C_{4} R_{5} R_{8} Rp1a2 s + C_{4} R_{5} R_{8} Rp1b2 s + C_{6} R_{8} R_{9} Rp1a2 s + C_{6} R_{8} R_{9} Rp1b2 s + R_{8} Rp1a2 + R_{8} Rp1b2}{C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 s^{2} + C_{4} R_{5} R_{8} Rp1a2 s + C_{4} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{8} R_{9} s + C_{6} R_{5} R_{8} Rp1a2 s + C_{6} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{9} Rp1a2 s + C_{6} R_{5} R_{9} Rp1b2 s + C_{6} R_{8} R_{9} Rp1a2 s + C_{6} R_{8} R_{9} Rp1b2 s + R_{5} R_{8} + R_{5} Rp1a2 + R_{5} Rp1b2 + R_{8} Rp1a2 + R_{8} Rp1b2}\)

Code
sym_num, sym_denom = fraction(H_sym) #returns numerator and denominator
Code
sym_num.subs(element_values)

\(\displaystyle 20.2878 s^{2} + 110520.0 s + 150000000.0\)

Code
sym_num

\(\displaystyle C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 s^{2} + C_{4} R_{5} R_{8} Rp1a2 s + C_{4} R_{5} R_{8} Rp1b2 s + C_{6} R_{8} R_{9} Rp1a2 s + C_{6} R_{8} R_{9} Rp1b2 s + R_{8} Rp1a2 + R_{8} Rp1b2\)

Code
nr = solve(sym_num,s)
Code
len(nr)

\(\displaystyle 2\)

Code
N(nr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -458.924288038914\)

Code
nr[0].free_symbols

\(\displaystyle \left\{C_{4}, R_{5}\right\}\)

Code
N(nr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -408.089597671527\)

Code
nr[1].free_symbols

\(\displaystyle \left\{C_{6}, R_{9}\right\}\)

Try plotting the location of the zeros as a function of P1a

Code
sym_denom.subs(element_values)

\(\displaystyle 20.2878 s^{2} + 610753.5 s + 667650000.0\)

Code
sym_denom

\(\displaystyle C_{4} C_{6} R_{5} R_{8} R_{9} Rp1a2 s^{2} + C_{4} C_{6} R_{5} R_{8} R_{9} Rp1b2 s^{2} + C_{4} R_{5} R_{8} Rp1a2 s + C_{4} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{8} R_{9} s + C_{6} R_{5} R_{8} Rp1a2 s + C_{6} R_{5} R_{8} Rp1b2 s + C_{6} R_{5} R_{9} Rp1a2 s + C_{6} R_{5} R_{9} Rp1b2 s + C_{6} R_{8} R_{9} Rp1a2 s + C_{6} R_{8} R_{9} Rp1b2 s + R_{5} R_{8} + R_{5} Rp1a2 + R_{5} Rp1b2 + R_{8} Rp1a2 + R_{8} Rp1b2\)

Code
dr = solve(sym_denom,s)
Code
len(dr)

\(\displaystyle 2\)

Code
N(dr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -4610.4711311767\)

Code
dr[0].free_symbols

\(\displaystyle \left\{C_{4}, C_{6}, R_{5}, R_{8}, R_{9}, Rp1a2, Rp1b2\right\}\)

Code
N(dr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -180.804341554495\)

Code
dr[1].free_symbols

\(\displaystyle \left\{C_{4}, C_{6}, R_{5}, R_{8}, R_{9}, Rp1a2, Rp1b2\right\}\)

Try plotting the location of the poles as a function of P1a

Code
p1_value = 100e3
denom_roots = []
for i in np.linspace(1,99,20)/100:
    element_values[Rp1a2] = p1_value - i*p1_value
    element_values[Rp1b2] = i*p1_value
    denom_roots.append(solve(sym_denom.subs(element_values),s))
    #print(np.array(num_roots)/(2*np.pi))

r1, r2 = zip(*denom_roots)
plt.plot(np.linspace(1,99,len(r1)),np.array(r1)/(2*np.pi),'x-')
plt.plot(np.linspace(1,99,len(r2)),np.array(r2)/(2*np.pi),'.-')
plt.show()

39.5.3 Numerical solution

Construct a dictionary of element values.

Code
# display the component values
for k,v in element_values.items():
    print('{:s} = {:s}'.format(str(k), str(v)))
V1 = 1.0
R5 = 5100.0
R8 = 1500.0
C4 = 6.8e-08
C6 = 3.9e-07
R9 = 1000.0
Rp1b2 = 99000.0
Rp1a2 = 1000.0
Code
x_axis = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
color_list = ['tab:blue','tab:red','tab:green','tab:orange','k']
gain_setting = np.array([1,25,50,75,99])/100
p1_value = 100e3

tf_num_coef_list = []
tf_denom_coef_list = []

#clean_path1_mag = np.zeros((len(gain_setting),len(x_axis)))

#color_list = ['tab:blue','tab:red','tab:green','tab:orange','k']

fig, ax1 = plt.subplots()
ax1.set_ylabel('magnitude, dB')
ax1.set_xlabel('frequency, Hz')

# instantiate a second y-axes that shares the same x-axis
ax2 = ax1.twinx()
color = 'k'

ax2.set_ylabel('phase, deg',color=color)
ax2.tick_params(axis='y', labelcolor=color)

for i in range(len(gain_setting)):
    element_values[Rp1a2] = p1_value - gain_setting[i]*p1_value
    element_values[Rp1b2] = gain_setting[i]*p1_value
    
    #element_values[Rp1a2] = p1_value - gain_setting[i]*p1_value
    #element_values[Rp1b2] = gain_setting[i]*p1_value
    
    NE = NE_sym.subs(element_values)
    U = solve(NE,X)
    H = U[v2]/U[v1]
    num, denom = fraction(H) #returns numerator and denominator

    # convert symbolic to numpy polynomial
    a = np.array(Poly(num, s).all_coeffs(), dtype=float)
    b = np.array(Poly(denom, s).all_coeffs(), dtype=float)
    tf_num_coef_list.append(a)
    tf_denom_coef_list.append(b)
    
    #x = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
    w, mag, phase = signal.bode((a, b), w=x_axis) # returns: rad/s, mag in dB, phase in deg
    #clean_path1_mag[i] = mag
    
    # plot the results.  
    ax1.semilogx(w/(2*np.pi), mag,'-',color=color_list[i],label='mag: {:.0f}%'.format(gain_setting[i]*100))    # magnitude plot
    ax2.semilogx(w/(2*np.pi), phase,':',color=color_list[i],label='phase: {:.0f}%'.format(gain_setting[i]*100))  # phase plot

# highlight the guitar audio band, 80 to 8kHz
plt.axvspan(80, 8e3, color='y', alpha=0.3) 

ax1.legend(loc='lower left')
ax2.legend(loc='lower right')
ax1.grid()
plt.title('Magnitude and phase response')
plt.show()

39.5.4 Sum path 2b

Figure 39.4: Schematic of Klon-Centaur_sum_path2b_v1
Code
sum_path2b_v1_net_list = '''
* Klon-Centaur_sum_path2b_v1.asc
C11 5 3 2.2e-9
R15 3 7 22e3
R17 6 7 27e3
R18 4 7 12e3
C12 6 4 27e-9
R16 6 5 47e3
V1 1 0 1
R1 2 6 392e3
C1 2 6 820e-12
O1 6 0 2
Rp1b2 1 7 50e3
Rp1a2 7 0 50e3
'''
Code
report, network_df, i_unk_df, A, X, Z = SymMNA.smna(sum_path2b_v1_net_list)

Build the network equations

Code
# Put matrices into SymPy 
X = Matrix(X)
Z = Matrix(Z)

NE_sym = Eq(A*X,Z)

# display the equations
temp = ''
for i in range(shape(NE_sym.lhs)[0]):
    temp += '${:s} = {:s}$<br>'.format(latex(NE_sym.rhs[i]),latex(NE_sym.lhs[i]))
Markdown(temp)

\(0 = I_{V1} + \frac{v_{1}}{Rp1b2} - \frac{v_{7}}{Rp1b2}\)
\(0 = I_{O1} + v_{2} \left(C_{1} s + \frac{1}{R_{1}}\right) + v_{6} \left(- C_{1} s - \frac{1}{R_{1}}\right)\)
\(0 = - C_{11} s v_{5} + v_{3} \left(C_{11} s + \frac{1}{R_{15}}\right) - \frac{v_{7}}{R_{15}}\)
\(0 = - C_{12} s v_{6} + v_{4} \left(C_{12} s + \frac{1}{R_{18}}\right) - \frac{v_{7}}{R_{18}}\)
\(0 = - C_{11} s v_{3} + v_{5} \left(C_{11} s + \frac{1}{R_{16}}\right) - \frac{v_{6}}{R_{16}}\)
\(0 = - C_{12} s v_{4} + v_{2} \left(- C_{1} s - \frac{1}{R_{1}}\right) + v_{6} \left(C_{1} s + C_{12} s + \frac{1}{R_{17}} + \frac{1}{R_{16}} + \frac{1}{R_{1}}\right) - \frac{v_{7}}{R_{17}} - \frac{v_{5}}{R_{16}}\)
\(0 = v_{7} \cdot \left(\frac{1}{Rp1b2} + \frac{1}{Rp1a2} + \frac{1}{R_{18}} + \frac{1}{R_{17}} + \frac{1}{R_{15}}\right) - \frac{v_{1}}{Rp1b2} - \frac{v_{4}}{R_{18}} - \frac{v_{6}}{R_{17}} - \frac{v_{3}}{R_{15}}\)
\(V_{1} = v_{1}\)
\(0 = v_{6}\)

Turn the free symbols into SymPy variables.

Code
var(str(NE_sym.free_symbols).replace('{','').replace('}',''))

\(\displaystyle \left( v_{2}, \ v_{5}, \ I_{V1}, \ R_{16}, \ s, \ C_{1}, \ Rp1a2, \ V_{1}, \ Rp1b2, \ R_{18}, \ v_{7}, \ v_{3}, \ C_{12}, \ v_{1}, \ v_{4}, \ I_{O1}, \ R_{1}, \ v_{6}, \ R_{15}, \ C_{11}, \ R_{17}\right)\)

Code
element_values = SymMNA.get_part_values(network_df)

39.5.5 Symbolic solution

The network equations can be solved symbolically.

Code
U_sym = solve(NE_sym,X)

Display the symbolic solution

Code
temp = ''
for i in U_sym.keys():
    temp += '${:s} = {:s}$<br>'.format(latex(i),latex(U_sym[i]))

Markdown(temp)

\(v_{1} = V_{1}\)
\(v_{2} = \frac{- C_{11} C_{12} R_{1} R_{15} R_{17} Rp1a2 V_{1} s^{2} - C_{11} C_{12} R_{1} R_{15} R_{18} Rp1a2 V_{1} s^{2} - C_{11} C_{12} R_{1} R_{16} R_{17} Rp1a2 V_{1} s^{2} - C_{11} C_{12} R_{1} R_{16} R_{18} Rp1a2 V_{1} s^{2} - C_{11} C_{12} R_{1} R_{17} R_{18} Rp1a2 V_{1} s^{2} - C_{11} R_{1} R_{15} Rp1a2 V_{1} s - C_{11} R_{1} R_{16} Rp1a2 V_{1} s - C_{11} R_{1} R_{17} Rp1a2 V_{1} s - C_{12} R_{1} R_{17} Rp1a2 V_{1} s - C_{12} R_{1} R_{18} Rp1a2 V_{1} s - R_{1} Rp1a2 V_{1}}{C_{1} C_{11} C_{12} R_{1} R_{15} R_{17} R_{18} Rp1a2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{15} R_{17} R_{18} Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{15} R_{17} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{15} R_{18} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{17} R_{18} Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{17} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{18} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{17} R_{18} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} R_{1} R_{15} R_{17} Rp1a2 s^{2} + C_{1} C_{11} R_{1} R_{15} R_{17} Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{15} Rp1a2 Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{16} R_{17} Rp1a2 s^{2} + C_{1} C_{11} R_{1} R_{16} R_{17} Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{16} Rp1a2 Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{17} Rp1a2 Rp1b2 s^{2} + C_{1} C_{12} R_{1} R_{17} R_{18} Rp1a2 s^{2} + C_{1} C_{12} R_{1} R_{17} R_{18} Rp1b2 s^{2} + C_{1} C_{12} R_{1} R_{17} Rp1a2 Rp1b2 s^{2} + C_{1} C_{12} R_{1} R_{18} Rp1a2 Rp1b2 s^{2} + C_{1} R_{1} R_{17} Rp1a2 s + C_{1} R_{1} R_{17} Rp1b2 s + C_{1} R_{1} Rp1a2 Rp1b2 s + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} R_{15} R_{17} Rp1a2 s + C_{11} R_{15} R_{17} Rp1b2 s + C_{11} R_{15} Rp1a2 Rp1b2 s + C_{11} R_{16} R_{17} Rp1a2 s + C_{11} R_{16} R_{17} Rp1b2 s + C_{11} R_{16} Rp1a2 Rp1b2 s + C_{11} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{17} R_{18} Rp1a2 s + C_{12} R_{17} R_{18} Rp1b2 s + C_{12} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{18} Rp1a2 Rp1b2 s + R_{17} Rp1a2 + R_{17} Rp1b2 + Rp1a2 Rp1b2}\)
\(v_{3} = \frac{C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 V_{1} s^{2} + C_{11} R_{16} R_{17} Rp1a2 V_{1} s + C_{12} R_{17} R_{18} Rp1a2 V_{1} s + R_{17} Rp1a2 V_{1}}{C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} R_{15} R_{17} Rp1a2 s + C_{11} R_{15} R_{17} Rp1b2 s + C_{11} R_{15} Rp1a2 Rp1b2 s + C_{11} R_{16} R_{17} Rp1a2 s + C_{11} R_{16} R_{17} Rp1b2 s + C_{11} R_{16} Rp1a2 Rp1b2 s + C_{11} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{17} R_{18} Rp1a2 s + C_{12} R_{17} R_{18} Rp1b2 s + C_{12} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{18} Rp1a2 Rp1b2 s + R_{17} Rp1a2 + R_{17} Rp1b2 + Rp1a2 Rp1b2}\)
\(v_{4} = \frac{C_{11} R_{15} R_{17} Rp1a2 V_{1} s + C_{11} R_{16} R_{17} Rp1a2 V_{1} s + R_{17} Rp1a2 V_{1}}{C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} R_{15} R_{17} Rp1a2 s + C_{11} R_{15} R_{17} Rp1b2 s + C_{11} R_{15} Rp1a2 Rp1b2 s + C_{11} R_{16} R_{17} Rp1a2 s + C_{11} R_{16} R_{17} Rp1b2 s + C_{11} R_{16} Rp1a2 Rp1b2 s + C_{11} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{17} R_{18} Rp1a2 s + C_{12} R_{17} R_{18} Rp1b2 s + C_{12} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{18} Rp1a2 Rp1b2 s + R_{17} Rp1a2 + R_{17} Rp1b2 + Rp1a2 Rp1b2}\)
\(v_{5} = \frac{C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 V_{1} s^{2} + C_{11} R_{16} R_{17} Rp1a2 V_{1} s}{C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} R_{15} R_{17} Rp1a2 s + C_{11} R_{15} R_{17} Rp1b2 s + C_{11} R_{15} Rp1a2 Rp1b2 s + C_{11} R_{16} R_{17} Rp1a2 s + C_{11} R_{16} R_{17} Rp1b2 s + C_{11} R_{16} Rp1a2 Rp1b2 s + C_{11} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{17} R_{18} Rp1a2 s + C_{12} R_{17} R_{18} Rp1b2 s + C_{12} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{18} Rp1a2 Rp1b2 s + R_{17} Rp1a2 + R_{17} Rp1b2 + Rp1a2 Rp1b2}\)
\(v_{6} = 0\)
\(v_{7} = \frac{C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 V_{1} s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 V_{1} s^{2} + C_{11} R_{15} R_{17} Rp1a2 V_{1} s + C_{11} R_{16} R_{17} Rp1a2 V_{1} s + C_{12} R_{17} R_{18} Rp1a2 V_{1} s + R_{17} Rp1a2 V_{1}}{C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} R_{15} R_{17} Rp1a2 s + C_{11} R_{15} R_{17} Rp1b2 s + C_{11} R_{15} Rp1a2 Rp1b2 s + C_{11} R_{16} R_{17} Rp1a2 s + C_{11} R_{16} R_{17} Rp1b2 s + C_{11} R_{16} Rp1a2 Rp1b2 s + C_{11} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{17} R_{18} Rp1a2 s + C_{12} R_{17} R_{18} Rp1b2 s + C_{12} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{18} Rp1a2 Rp1b2 s + R_{17} Rp1a2 + R_{17} Rp1b2 + Rp1a2 Rp1b2}\)
\(I_{V1} = \frac{- C_{11} C_{12} R_{15} R_{17} R_{18} V_{1} s^{2} - C_{11} C_{12} R_{15} R_{17} Rp1a2 V_{1} s^{2} - C_{11} C_{12} R_{15} R_{18} Rp1a2 V_{1} s^{2} - C_{11} C_{12} R_{16} R_{17} R_{18} V_{1} s^{2} - C_{11} C_{12} R_{16} R_{17} Rp1a2 V_{1} s^{2} - C_{11} C_{12} R_{16} R_{18} Rp1a2 V_{1} s^{2} - C_{11} C_{12} R_{17} R_{18} Rp1a2 V_{1} s^{2} - C_{11} R_{15} R_{17} V_{1} s - C_{11} R_{15} Rp1a2 V_{1} s - C_{11} R_{16} R_{17} V_{1} s - C_{11} R_{16} Rp1a2 V_{1} s - C_{11} R_{17} Rp1a2 V_{1} s - C_{12} R_{17} R_{18} V_{1} s - C_{12} R_{17} Rp1a2 V_{1} s - C_{12} R_{18} Rp1a2 V_{1} s - R_{17} V_{1} - Rp1a2 V_{1}}{C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} R_{15} R_{17} Rp1a2 s + C_{11} R_{15} R_{17} Rp1b2 s + C_{11} R_{15} Rp1a2 Rp1b2 s + C_{11} R_{16} R_{17} Rp1a2 s + C_{11} R_{16} R_{17} Rp1b2 s + C_{11} R_{16} Rp1a2 Rp1b2 s + C_{11} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{17} R_{18} Rp1a2 s + C_{12} R_{17} R_{18} Rp1b2 s + C_{12} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{18} Rp1a2 Rp1b2 s + R_{17} Rp1a2 + R_{17} Rp1b2 + Rp1a2 Rp1b2}\)
\(I_{O1} = \frac{C_{11} C_{12} R_{15} R_{17} Rp1a2 V_{1} s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 V_{1} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 V_{1} s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 V_{1} s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 V_{1} s^{2} + C_{11} R_{15} Rp1a2 V_{1} s + C_{11} R_{16} Rp1a2 V_{1} s + C_{11} R_{17} Rp1a2 V_{1} s + C_{12} R_{17} Rp1a2 V_{1} s + C_{12} R_{18} Rp1a2 V_{1} s + Rp1a2 V_{1}}{C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} R_{15} R_{17} Rp1a2 s + C_{11} R_{15} R_{17} Rp1b2 s + C_{11} R_{15} Rp1a2 Rp1b2 s + C_{11} R_{16} R_{17} Rp1a2 s + C_{11} R_{16} R_{17} Rp1b2 s + C_{11} R_{16} Rp1a2 Rp1b2 s + C_{11} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{17} R_{18} Rp1a2 s + C_{12} R_{17} R_{18} Rp1b2 s + C_{12} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{18} Rp1a2 Rp1b2 s + R_{17} Rp1a2 + R_{17} Rp1b2 + Rp1a2 Rp1b2}\)

39.5.6 Transfer function

Explanation of operation by looking at the pole and zero locations.

Code
H_sym = cancel(U_sym[v2]/U_sym[v1])
H_sym

\(\displaystyle \frac{- C_{11} C_{12} R_{1} R_{15} R_{17} Rp1a2 s^{2} - C_{11} C_{12} R_{1} R_{15} R_{18} Rp1a2 s^{2} - C_{11} C_{12} R_{1} R_{16} R_{17} Rp1a2 s^{2} - C_{11} C_{12} R_{1} R_{16} R_{18} Rp1a2 s^{2} - C_{11} C_{12} R_{1} R_{17} R_{18} Rp1a2 s^{2} - C_{11} R_{1} R_{15} Rp1a2 s - C_{11} R_{1} R_{16} Rp1a2 s - C_{11} R_{1} R_{17} Rp1a2 s - C_{12} R_{1} R_{17} Rp1a2 s - C_{12} R_{1} R_{18} Rp1a2 s - R_{1} Rp1a2}{C_{1} C_{11} C_{12} R_{1} R_{15} R_{17} R_{18} Rp1a2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{15} R_{17} R_{18} Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{15} R_{17} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{15} R_{18} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{17} R_{18} Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{17} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{18} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{17} R_{18} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} R_{1} R_{15} R_{17} Rp1a2 s^{2} + C_{1} C_{11} R_{1} R_{15} R_{17} Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{15} Rp1a2 Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{16} R_{17} Rp1a2 s^{2} + C_{1} C_{11} R_{1} R_{16} R_{17} Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{16} Rp1a2 Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{17} Rp1a2 Rp1b2 s^{2} + C_{1} C_{12} R_{1} R_{17} R_{18} Rp1a2 s^{2} + C_{1} C_{12} R_{1} R_{17} R_{18} Rp1b2 s^{2} + C_{1} C_{12} R_{1} R_{17} Rp1a2 Rp1b2 s^{2} + C_{1} C_{12} R_{1} R_{18} Rp1a2 Rp1b2 s^{2} + C_{1} R_{1} R_{17} Rp1a2 s + C_{1} R_{1} R_{17} Rp1b2 s + C_{1} R_{1} Rp1a2 Rp1b2 s + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} R_{15} R_{17} Rp1a2 s + C_{11} R_{15} R_{17} Rp1b2 s + C_{11} R_{15} Rp1a2 Rp1b2 s + C_{11} R_{16} R_{17} Rp1a2 s + C_{11} R_{16} R_{17} Rp1b2 s + C_{11} R_{16} Rp1a2 Rp1b2 s + C_{11} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{17} R_{18} Rp1a2 s + C_{12} R_{17} R_{18} Rp1b2 s + C_{12} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{18} Rp1a2 Rp1b2 s + R_{17} Rp1a2 + R_{17} Rp1b2 + Rp1a2 Rp1b2}\)

Code
sym_num, sym_denom = fraction(H_sym) #returns numerator and denominator
Code
sym_num.subs(element_values)

\(\displaystyle - 3510.1836 s^{2} - 24778320.0 s - 19600000000.0\)

Code
sym_num

\(\displaystyle - C_{11} C_{12} R_{1} R_{15} R_{17} Rp1a2 s^{2} - C_{11} C_{12} R_{1} R_{15} R_{18} Rp1a2 s^{2} - C_{11} C_{12} R_{1} R_{16} R_{17} Rp1a2 s^{2} - C_{11} C_{12} R_{1} R_{16} R_{18} Rp1a2 s^{2} - C_{11} C_{12} R_{1} R_{17} R_{18} Rp1a2 s^{2} - C_{11} R_{1} R_{15} Rp1a2 s - C_{11} R_{1} R_{16} Rp1a2 s - C_{11} R_{1} R_{17} Rp1a2 s - C_{12} R_{1} R_{17} Rp1a2 s - C_{12} R_{1} R_{18} Rp1a2 s - R_{1} Rp1a2\)

Code
nr = solve(sym_num,s)
Code
len(nr)

\(\displaystyle 2\)

Code
N(nr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -978.999657124153\)

Code
nr[0].free_symbols

\(\displaystyle \left\{C_{11}, C_{12}, R_{15}, R_{16}, R_{17}, R_{18}\right\}\)

Code
N(nr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -144.472092191972\)

Code
nr[1].free_symbols

\(\displaystyle \left\{C_{11}, C_{12}, R_{15}, R_{16}, R_{17}, R_{18}\right\}\)

Try plotting the location of the zeros as a function of P1a

Code
sym_denom.subs(element_values)

\(\displaystyle 0.1866030366816 s^{3} + 2009.3743704 s^{2} + 6116648.0 s + 5200000000.0\)

Code
sym_denom

\(\displaystyle C_{1} C_{11} C_{12} R_{1} R_{15} R_{17} R_{18} Rp1a2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{15} R_{17} R_{18} Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{15} R_{17} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{15} R_{18} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{17} R_{18} Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{17} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{16} R_{18} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} C_{12} R_{1} R_{17} R_{18} Rp1a2 Rp1b2 s^{3} + C_{1} C_{11} R_{1} R_{15} R_{17} Rp1a2 s^{2} + C_{1} C_{11} R_{1} R_{15} R_{17} Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{15} Rp1a2 Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{16} R_{17} Rp1a2 s^{2} + C_{1} C_{11} R_{1} R_{16} R_{17} Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{16} Rp1a2 Rp1b2 s^{2} + C_{1} C_{11} R_{1} R_{17} Rp1a2 Rp1b2 s^{2} + C_{1} C_{12} R_{1} R_{17} R_{18} Rp1a2 s^{2} + C_{1} C_{12} R_{1} R_{17} R_{18} Rp1b2 s^{2} + C_{1} C_{12} R_{1} R_{17} Rp1a2 Rp1b2 s^{2} + C_{1} C_{12} R_{1} R_{18} Rp1a2 Rp1b2 s^{2} + C_{1} R_{1} R_{17} Rp1a2 s + C_{1} R_{1} R_{17} Rp1b2 s + C_{1} R_{1} Rp1a2 Rp1b2 s + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 Rp1b2 s^{2} + C_{11} R_{15} R_{17} Rp1a2 s + C_{11} R_{15} R_{17} Rp1b2 s + C_{11} R_{15} Rp1a2 Rp1b2 s + C_{11} R_{16} R_{17} Rp1a2 s + C_{11} R_{16} R_{17} Rp1b2 s + C_{11} R_{16} Rp1a2 Rp1b2 s + C_{11} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{17} R_{18} Rp1a2 s + C_{12} R_{17} R_{18} Rp1b2 s + C_{12} R_{17} Rp1a2 Rp1b2 s + C_{12} R_{18} Rp1a2 Rp1b2 s + R_{17} Rp1a2 + R_{17} Rp1b2 + Rp1a2 Rp1b2\)

Code
dr = solve(sym_denom,s)
Code
len(dr)

\(\displaystyle 3\)

Code
N(dr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -495.131107179864\)

Code
dr[0].free_symbols

\(\displaystyle \left\{C_{1}, R_{1}\right\}\)

Code
N(dr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -989.336941523892\)

Code
dr[1].free_symbols

\(\displaystyle \left\{C_{11}, C_{12}, R_{15}, R_{16}, R_{17}, R_{18}, Rp1a2, Rp1b2\right\}\)

Code
N(dr[2].subs(element_values))/(2*np.pi)

\(\displaystyle -229.340414751218\)

Code
dr[2].free_symbols

\(\displaystyle \left\{C_{11}, C_{12}, R_{15}, R_{16}, R_{17}, R_{18}, Rp1a2, Rp1b2\right\}\)

Code
NE = NE_sym.subs(element_values)

Display the equations with component values.

Code
temp = ''
for i in range(shape(NE.lhs)[0]):
    temp += '${:s} = {:s}$<br>'.format(latex(NE.rhs[i]),latex(NE.lhs[i]))

Markdown(temp)

\(0 = I_{V1} + 2.0 \cdot 10^{-5} v_{1} - 2.0 \cdot 10^{-5} v_{7}\)
\(0 = I_{O1} + v_{2} \cdot \left(8.2 \cdot 10^{-10} s + 2.55102040816327 \cdot 10^{-6}\right) + v_{6} \left(- 8.2 \cdot 10^{-10} s - 2.55102040816327 \cdot 10^{-6}\right)\)
\(0 = - 2.2 \cdot 10^{-9} s v_{5} + v_{3} \cdot \left(2.2 \cdot 10^{-9} s + 4.54545454545455 \cdot 10^{-5}\right) - 4.54545454545455 \cdot 10^{-5} v_{7}\)
\(0 = - 2.7 \cdot 10^{-8} s v_{6} + v_{4} \cdot \left(2.7 \cdot 10^{-8} s + 8.33333333333333 \cdot 10^{-5}\right) - 8.33333333333333 \cdot 10^{-5} v_{7}\)
\(0 = - 2.2 \cdot 10^{-9} s v_{3} + v_{5} \cdot \left(2.2 \cdot 10^{-9} s + 2.12765957446809 \cdot 10^{-5}\right) - 2.12765957446809 \cdot 10^{-5} v_{6}\)
\(0 = - 2.7 \cdot 10^{-8} s v_{4} + v_{2} \left(- 8.2 \cdot 10^{-10} s - 2.55102040816327 \cdot 10^{-6}\right) - 2.12765957446809 \cdot 10^{-5} v_{5} + v_{6} \cdot \left(2.782 \cdot 10^{-8} s + 6.08646531898811 \cdot 10^{-5}\right) - 3.7037037037037 \cdot 10^{-5} v_{7}\)
\(0 = - 2.0 \cdot 10^{-5} v_{1} - 4.54545454545455 \cdot 10^{-5} v_{3} - 8.33333333333333 \cdot 10^{-5} v_{4} - 3.7037037037037 \cdot 10^{-5} v_{6} + 0.000205824915824916 v_{7}\)
\(1.0 = v_{1}\)
\(0 = v_{6}\)

Solve for voltages and currents and display the results.

Code
U = solve(NE,X)
Code
temp = ''
for i in U.keys():
    temp += '${:s} = {:s}$<br>'.format(latex(i),latex(U[i]))

Markdown(temp)

\(v_{1} = 1.0\)
\(v_{2} = \frac{- 5.30431515957447 \cdot 10^{50} s^{2} - 3.74430609284333 \cdot 10^{54} s - 2.96179883945842 \cdot 10^{57}}{2.81979927287234 \cdot 10^{46} s^{3} + 3.03640952973888 \cdot 10^{50} s^{2} + 9.24300048355902 \cdot 10^{53} s + 7.85783365570603 \cdot 10^{56}}\)
\(v_{3} = \frac{1.215 \cdot 10^{41} s^{2} + 1.55004835589942 \cdot 10^{45} s + 3.62669245647969 \cdot 10^{48}}{1.55953723404256 \cdot 10^{42} s^{2} + 1.19416505480336 \cdot 10^{46} s + 1.39694820545885 \cdot 10^{49}}\)
\(v_{4} = \frac{5.50531914893617 \cdot 10^{44} s + 3.62669245647969 \cdot 10^{48}}{1.55953723404256 \cdot 10^{42} s^{2} + 1.19416505480336 \cdot 10^{46} s + 1.39694820545885 \cdot 10^{49}}\)
\(v_{5} = \frac{1.215 \cdot 10^{41} s^{2} + 3.75 \cdot 10^{44} s}{1.55953723404256 \cdot 10^{42} s^{2} + 1.19416505480336 \cdot 10^{46} s + 1.39694820545885 \cdot 10^{49}}\)
\(v_{6} = 0.0\)
\(v_{7} = \frac{1.78372340425532 \cdot 10^{41} s^{2} + 1.72558027079304 \cdot 10^{45} s + 3.62669245647969 \cdot 10^{48}}{1.55953723404256 \cdot 10^{42} s^{2} + 1.19416505480336 \cdot 10^{46} s + 1.39694820545885 \cdot 10^{49}}\)
\(I_{V1} = \frac{- 1.38116489361702 \cdot 10^{42} s^{2} - 1.02160702772405 \cdot 10^{46} s - 1.03427895981088 \cdot 10^{49}}{7.79768617021278 \cdot 10^{46} s^{2} + 5.97082527401678 \cdot 10^{50} s + 6.98474102729425 \cdot 10^{53}}\)
\(I_{O1} = \frac{2.16502659574468 \cdot 10^{38} s^{2} + 1.52828820116054 \cdot 10^{42} s + 1.20889748549323 \cdot 10^{45}}{1.4035835106383 \cdot 10^{43} s^{2} + 1.07474854932302 \cdot 10^{47} s + 1.25725338491296 \cdot 10^{50}}\)

Plot the frequency response of the transfer function

Code
H = U[v2]/U[v1]
H

\(\displaystyle \frac{1.0 \left(- 5.30431515957447 \cdot 10^{50} s^{2} - 3.74430609284333 \cdot 10^{54} s - 2.96179883945842 \cdot 10^{57}\right)}{2.81979927287234 \cdot 10^{46} s^{3} + 3.03640952973888 \cdot 10^{50} s^{2} + 9.24300048355902 \cdot 10^{53} s + 7.85783365570603 \cdot 10^{56}}\)

Code
num, denom = fraction(H) #returns numerator and denominator

# convert symbolic to numpy polynomial
a = np.array(Poly(num, s).all_coeffs(), dtype=float)
b = np.array(Poly(denom, s).all_coeffs(), dtype=float)

x = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
w, mag, phase = signal.bode((a, b), w=x) # returns: rad/s, mag in dB, phase in deg
Code
fig, ax1 = plt.subplots()
ax1.set_ylabel('magnitude, dB')
ax1.set_xlabel('frequency, Hz')

plt.semilogx(w/(2*np.pi), mag,'-k',label='MNA mag, dB')    # MNA magnitude plot

ax1.tick_params(axis='y')
#ax1.set_ylim((-30,20))
plt.grid()
plt.legend(loc='upper right')

# instantiate a second y-axes that shares the same x-axis
ax2 = ax1.twinx()
color = 'tab:blue'

plt.semilogx(w/(2*np.pi), phase,':',color='b',label='MNA phase')  # MNA phase plot
plt.legend(loc='lower right')

ax2.set_ylabel('phase, deg',color=color)
ax2.tick_params(axis='y', labelcolor=color)
#ax2.set_ylim((-5,25))

# highlight the guitar audio band, 80 to 8kHz
plt.axvspan(80, 8e3, color='y', alpha=0.3)

plt.title('Magnitude and phase response')
plt.show()

Code
x_axis = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
color_list = ['tab:blue','tab:red','tab:green','tab:orange','k']
gain_setting = np.array([1,25,50,75,99])/100
p1_value = 100e3

tf_num_coef_list = []
tf_denom_coef_list = []

#clean_path1_mag = np.zeros((len(gain_setting),len(x_axis)))

#color_list = ['tab:blue','tab:red','tab:green','tab:orange','k']

fig, ax1 = plt.subplots()
ax1.set_ylabel('magnitude, dB')
ax1.set_xlabel('frequency, Hz')

# instantiate a second y-axes that shares the same x-axis
ax2 = ax1.twinx()
color = 'k'

ax2.set_ylabel('phase, deg',color=color)
ax2.tick_params(axis='y', labelcolor=color)

for i in range(len(gain_setting)):
    element_values[Rp1a2] = p1_value - gain_setting[i]*p1_value
    element_values[Rp1b2] = gain_setting[i]*p1_value
    
    #element_values[Rp1a2] = p1_value - gain_setting[i]*p1_value
    #element_values[Rp1b2] = gain_setting[i]*p1_value
    
    NE = NE_sym.subs(element_values)
    U = solve(NE,X)
    H = U[v2]/U[v1]
    num, denom = fraction(H) #returns numerator and denominator

    # convert symbolic to numpy polynomial
    a = np.array(Poly(num, s).all_coeffs(), dtype=float)
    b = np.array(Poly(denom, s).all_coeffs(), dtype=float)
    tf_num_coef_list.append(a)
    tf_denom_coef_list.append(b)
    
    #x = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
    w, mag, phase = signal.bode((a, b), w=x_axis) # returns: rad/s, mag in dB, phase in deg
    #clean_path1_mag[i] = mag
    
    # plot the results.  
    ax1.semilogx(w/(2*np.pi), mag,'-',color=color_list[i],label='mag: {:.0f}%'.format(gain_setting[i]*100))    # magnitude plot
    ax2.semilogx(w/(2*np.pi), phase,':',color=color_list[i],label='phase: {:.0f}%'.format(gain_setting[i]*100))  # phase plot

# highlight the guitar audio band, 80 to 8kHz
plt.axvspan(80, 8e3, color='y', alpha=0.3) 

ax1.legend(loc='lower left')
ax2.legend(loc='lower right')
ax1.grid()
plt.title('Magnitude and phase response')
plt.show()

39.6 Sum path 3

Figure 39.5: Schematic of Klon-Centaur_sum_path3_v1
  • comment out diodes and look at path from output of U1b to output of summing amp. what is the summing amp circuit doing?
Code
sum_path2b_v1_net_list = '''
* Klon-Centaur_sum_path3_v1.asc simplified
Rp1a2 6 0 50e3
R13 4 3 1e3
C11 4 7 2.2e-9
R15 7 6 22e3
R17 5 6 27e3
R18 8 6 12e3
C12 5 8 27e-9
R16 5 4 47e3
R20 2 5 392e3
C13 2 5 820e-12
O2a 5 0 2
C9 1 3 0.5e-6
V3 1 0 1
'''
Code
report, network_df, i_unk_df, A, X, Z = SymMNA.smna(sum_path2b_v1_net_list)

Build the network equations

Code
# Put matrices into SymPy 
X = Matrix(X)
Z = Matrix(Z)

NE_sym = Eq(A*X,Z)

# display the equations
temp = ''
for i in range(shape(NE_sym.lhs)[0]):
    temp += '${:s} = {:s}$<br>'.format(latex(NE_sym.rhs[i]),latex(NE_sym.lhs[i]))
Markdown(temp)

\(0 = C_{9} s v_{1} - C_{9} s v_{3} + I_{V3}\)
\(0 = I_{O2a} + v_{2} \left(C_{13} s + \frac{1}{R_{20}}\right) + v_{5} \left(- C_{13} s - \frac{1}{R_{20}}\right)\)
\(0 = - C_{9} s v_{1} + v_{3} \left(C_{9} s + \frac{1}{R_{13}}\right) - \frac{v_{4}}{R_{13}}\)
\(0 = - C_{11} s v_{7} + v_{4} \left(C_{11} s + \frac{1}{R_{16}} + \frac{1}{R_{13}}\right) - \frac{v_{5}}{R_{16}} - \frac{v_{3}}{R_{13}}\)
\(0 = - C_{12} s v_{8} + v_{2} \left(- C_{13} s - \frac{1}{R_{20}}\right) + v_{5} \left(C_{12} s + C_{13} s + \frac{1}{R_{20}} + \frac{1}{R_{17}} + \frac{1}{R_{16}}\right) - \frac{v_{6}}{R_{17}} - \frac{v_{4}}{R_{16}}\)
\(0 = v_{6} \cdot \left(\frac{1}{Rp1a2} + \frac{1}{R_{18}} + \frac{1}{R_{17}} + \frac{1}{R_{15}}\right) - \frac{v_{8}}{R_{18}} - \frac{v_{5}}{R_{17}} - \frac{v_{7}}{R_{15}}\)
\(0 = - C_{11} s v_{4} + v_{7} \left(C_{11} s + \frac{1}{R_{15}}\right) - \frac{v_{6}}{R_{15}}\)
\(0 = - C_{12} s v_{5} + v_{8} \left(C_{12} s + \frac{1}{R_{18}}\right) - \frac{v_{6}}{R_{18}}\)
\(V_{3} = v_{1}\)
\(0 = v_{5}\)

Turn the free symbols into SymPy variables.

Code
var(str(NE_sym.free_symbols).replace('{','').replace('}',''))

\(\displaystyle \left( V_{3}, \ v_{2}, \ v_{5}, \ R_{16}, \ s, \ R_{20}, \ Rp1a2, \ R_{18}, \ v_{7}, \ I_{V3}, \ v_{3}, \ C_{12}, \ v_{1}, \ I_{O2a}, \ R_{13}, \ v_{4}, \ v_{8}, \ C_{9}, \ v_{6}, \ R_{15}, \ C_{11}, \ R_{17}, \ C_{13}\right)\)

Code
element_values = SymMNA.get_part_values(network_df)

39.6.1 Symbolic solution

The network equations can be solved symbolically.

Code
U_sym = solve(NE_sym,X)

Display the symbolic solution

Code
temp = ''
for i in U_sym.keys():
    temp += '${:s} = {:s}$<br>'.format(latex(i),latex(U_sym[i]))

Markdown(temp)

\(v_{1} = V_{3}\)
\(v_{2} = \frac{- C_{11} C_{12} C_{9} R_{15} R_{17} R_{18} R_{20} V_{3} s^{3} - C_{11} C_{12} C_{9} R_{15} R_{17} R_{20} Rp1a2 V_{3} s^{3} - C_{11} C_{12} C_{9} R_{15} R_{18} R_{20} Rp1a2 V_{3} s^{3} - C_{11} C_{12} C_{9} R_{16} R_{17} R_{20} Rp1a2 V_{3} s^{3} - C_{11} C_{12} C_{9} R_{16} R_{18} R_{20} Rp1a2 V_{3} s^{3} - C_{11} C_{12} C_{9} R_{17} R_{18} R_{20} Rp1a2 V_{3} s^{3} - C_{11} C_{9} R_{15} R_{17} R_{20} V_{3} s^{2} - C_{11} C_{9} R_{15} R_{20} Rp1a2 V_{3} s^{2} - C_{11} C_{9} R_{16} R_{20} Rp1a2 V_{3} s^{2} - C_{11} C_{9} R_{17} R_{20} Rp1a2 V_{3} s^{2} - C_{12} C_{9} R_{17} R_{18} R_{20} V_{3} s^{2} - C_{12} C_{9} R_{17} R_{20} Rp1a2 V_{3} s^{2} - C_{12} C_{9} R_{18} R_{20} Rp1a2 V_{3} s^{2} - C_{9} R_{17} R_{20} V_{3} s - C_{9} R_{20} Rp1a2 V_{3} s}{C_{11} C_{12} C_{13} C_{9} R_{13} R_{15} R_{17} R_{18} R_{20} s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{15} R_{17} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{15} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{16} R_{17} R_{18} R_{20} s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{16} R_{17} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{16} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{17} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{15} R_{16} R_{17} R_{18} R_{20} s^{4} + C_{11} C_{12} C_{13} C_{9} R_{15} R_{16} R_{17} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{15} R_{16} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{16} R_{17} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} R_{15} R_{17} R_{18} R_{20} s^{3} + C_{11} C_{12} C_{13} R_{15} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{15} R_{18} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{16} R_{17} R_{18} R_{20} s^{3} + C_{11} C_{12} C_{13} R_{16} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{16} R_{18} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{17} R_{18} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{13} C_{9} R_{13} R_{15} R_{17} R_{20} s^{3} + C_{11} C_{13} C_{9} R_{13} R_{15} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{13} R_{16} R_{17} R_{20} s^{3} + C_{11} C_{13} C_{9} R_{13} R_{16} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{13} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{15} R_{16} R_{17} R_{20} s^{3} + C_{11} C_{13} C_{9} R_{15} R_{16} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{16} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{13} R_{15} R_{17} R_{20} s^{2} + C_{11} C_{13} R_{15} R_{20} Rp1a2 s^{2} + C_{11} C_{13} R_{16} R_{17} R_{20} s^{2} + C_{11} C_{13} R_{16} R_{20} Rp1a2 s^{2} + C_{11} C_{13} R_{17} R_{20} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{13} C_{9} R_{13} R_{17} R_{18} R_{20} s^{3} + C_{12} C_{13} C_{9} R_{13} R_{17} R_{20} Rp1a2 s^{3} + C_{12} C_{13} C_{9} R_{13} R_{18} R_{20} Rp1a2 s^{3} + C_{12} C_{13} C_{9} R_{16} R_{17} R_{18} R_{20} s^{3} + C_{12} C_{13} C_{9} R_{16} R_{17} R_{20} Rp1a2 s^{3} + C_{12} C_{13} C_{9} R_{16} R_{18} R_{20} Rp1a2 s^{3} + C_{12} C_{13} R_{17} R_{18} R_{20} s^{2} + C_{12} C_{13} R_{17} R_{20} Rp1a2 s^{2} + C_{12} C_{13} R_{18} R_{20} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{13} C_{9} R_{13} R_{17} R_{20} s^{2} + C_{13} C_{9} R_{13} R_{20} Rp1a2 s^{2} + C_{13} C_{9} R_{16} R_{17} R_{20} s^{2} + C_{13} C_{9} R_{16} R_{20} Rp1a2 s^{2} + C_{13} R_{17} R_{20} s + C_{13} R_{20} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2}\)
\(v_{3} = \frac{C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} V_{3} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} V_{3} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} V_{3} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{9} R_{13} R_{15} R_{17} V_{3} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 V_{3} s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} V_{3} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 V_{3} s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 V_{3} s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} V_{3} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 V_{3} s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 V_{3} s^{2} + C_{12} C_{9} R_{13} R_{17} R_{18} V_{3} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 V_{3} s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 V_{3} s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} V_{3} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 V_{3} s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 V_{3} s^{2} + C_{9} R_{13} R_{17} V_{3} s + C_{9} R_{13} Rp1a2 V_{3} s + C_{9} R_{16} R_{17} V_{3} s + C_{9} R_{16} Rp1a2 V_{3} s}{C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2}\)
\(v_{4} = \frac{C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} V_{3} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{9} R_{15} R_{16} R_{17} V_{3} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 V_{3} s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 V_{3} s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} V_{3} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 V_{3} s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 V_{3} s^{2} + C_{9} R_{16} R_{17} V_{3} s + C_{9} R_{16} Rp1a2 V_{3} s}{C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2}\)
\(v_{5} = 0\)
\(v_{6} = \frac{C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{9} R_{16} R_{17} Rp1a2 V_{3} s^{2}}{C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2}\)
\(v_{7} = \frac{C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} V_{3} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{9} R_{15} R_{16} R_{17} V_{3} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 V_{3} s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 V_{3} s^{2}}{C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2}\)
\(v_{8} = \frac{C_{11} C_{9} R_{16} R_{17} Rp1a2 V_{3} s^{2}}{C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2}\)
\(I_{V3} = \frac{- C_{11} C_{12} C_{9} R_{15} R_{17} R_{18} V_{3} s^{3} - C_{11} C_{12} C_{9} R_{15} R_{17} Rp1a2 V_{3} s^{3} - C_{11} C_{12} C_{9} R_{15} R_{18} Rp1a2 V_{3} s^{3} - C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} V_{3} s^{3} - C_{11} C_{12} C_{9} R_{16} R_{17} Rp1a2 V_{3} s^{3} - C_{11} C_{12} C_{9} R_{16} R_{18} Rp1a2 V_{3} s^{3} - C_{11} C_{12} C_{9} R_{17} R_{18} Rp1a2 V_{3} s^{3} - C_{11} C_{9} R_{15} R_{17} V_{3} s^{2} - C_{11} C_{9} R_{15} Rp1a2 V_{3} s^{2} - C_{11} C_{9} R_{16} R_{17} V_{3} s^{2} - C_{11} C_{9} R_{16} Rp1a2 V_{3} s^{2} - C_{11} C_{9} R_{17} Rp1a2 V_{3} s^{2} - C_{12} C_{9} R_{17} R_{18} V_{3} s^{2} - C_{12} C_{9} R_{17} Rp1a2 V_{3} s^{2} - C_{12} C_{9} R_{18} Rp1a2 V_{3} s^{2} - C_{9} R_{17} V_{3} s - C_{9} Rp1a2 V_{3} s}{C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2}\)
\(I_{O2a} = \frac{C_{11} C_{12} C_{9} R_{15} R_{17} R_{18} V_{3} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{17} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{16} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{12} C_{9} R_{17} R_{18} Rp1a2 V_{3} s^{3} + C_{11} C_{9} R_{15} R_{17} V_{3} s^{2} + C_{11} C_{9} R_{15} Rp1a2 V_{3} s^{2} + C_{11} C_{9} R_{16} Rp1a2 V_{3} s^{2} + C_{11} C_{9} R_{17} Rp1a2 V_{3} s^{2} + C_{12} C_{9} R_{17} R_{18} V_{3} s^{2} + C_{12} C_{9} R_{17} Rp1a2 V_{3} s^{2} + C_{12} C_{9} R_{18} Rp1a2 V_{3} s^{2} + C_{9} R_{17} V_{3} s + C_{9} Rp1a2 V_{3} s}{C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2}\)

39.6.2 Transfer function

Explanation of operation by looking at the pole and zero locations.

Code
H_sym = cancel(U_sym[v2]/U_sym[v1])
H_sym

\(\displaystyle \frac{- C_{11} C_{12} C_{9} R_{15} R_{17} R_{18} R_{20} s^{3} - C_{11} C_{12} C_{9} R_{15} R_{17} R_{20} Rp1a2 s^{3} - C_{11} C_{12} C_{9} R_{15} R_{18} R_{20} Rp1a2 s^{3} - C_{11} C_{12} C_{9} R_{16} R_{17} R_{20} Rp1a2 s^{3} - C_{11} C_{12} C_{9} R_{16} R_{18} R_{20} Rp1a2 s^{3} - C_{11} C_{12} C_{9} R_{17} R_{18} R_{20} Rp1a2 s^{3} - C_{11} C_{9} R_{15} R_{17} R_{20} s^{2} - C_{11} C_{9} R_{15} R_{20} Rp1a2 s^{2} - C_{11} C_{9} R_{16} R_{20} Rp1a2 s^{2} - C_{11} C_{9} R_{17} R_{20} Rp1a2 s^{2} - C_{12} C_{9} R_{17} R_{18} R_{20} s^{2} - C_{12} C_{9} R_{17} R_{20} Rp1a2 s^{2} - C_{12} C_{9} R_{18} R_{20} Rp1a2 s^{2} - C_{9} R_{17} R_{20} s - C_{9} R_{20} Rp1a2 s}{C_{11} C_{12} C_{13} C_{9} R_{13} R_{15} R_{17} R_{18} R_{20} s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{15} R_{17} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{15} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{16} R_{17} R_{18} R_{20} s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{16} R_{17} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{16} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{17} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{15} R_{16} R_{17} R_{18} R_{20} s^{4} + C_{11} C_{12} C_{13} C_{9} R_{15} R_{16} R_{17} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{15} R_{16} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{16} R_{17} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} R_{15} R_{17} R_{18} R_{20} s^{3} + C_{11} C_{12} C_{13} R_{15} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{15} R_{18} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{16} R_{17} R_{18} R_{20} s^{3} + C_{11} C_{12} C_{13} R_{16} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{16} R_{18} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{17} R_{18} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{13} C_{9} R_{13} R_{15} R_{17} R_{20} s^{3} + C_{11} C_{13} C_{9} R_{13} R_{15} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{13} R_{16} R_{17} R_{20} s^{3} + C_{11} C_{13} C_{9} R_{13} R_{16} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{13} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{15} R_{16} R_{17} R_{20} s^{3} + C_{11} C_{13} C_{9} R_{15} R_{16} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{16} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{13} R_{15} R_{17} R_{20} s^{2} + C_{11} C_{13} R_{15} R_{20} Rp1a2 s^{2} + C_{11} C_{13} R_{16} R_{17} R_{20} s^{2} + C_{11} C_{13} R_{16} R_{20} Rp1a2 s^{2} + C_{11} C_{13} R_{17} R_{20} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{13} C_{9} R_{13} R_{17} R_{18} R_{20} s^{3} + C_{12} C_{13} C_{9} R_{13} R_{17} R_{20} Rp1a2 s^{3} + C_{12} C_{13} C_{9} R_{13} R_{18} R_{20} Rp1a2 s^{3} + C_{12} C_{13} C_{9} R_{16} R_{17} R_{18} R_{20} s^{3} + C_{12} C_{13} C_{9} R_{16} R_{17} R_{20} Rp1a2 s^{3} + C_{12} C_{13} C_{9} R_{16} R_{18} R_{20} Rp1a2 s^{3} + C_{12} C_{13} R_{17} R_{18} R_{20} s^{2} + C_{12} C_{13} R_{17} R_{20} Rp1a2 s^{2} + C_{12} C_{13} R_{18} R_{20} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{13} C_{9} R_{13} R_{17} R_{20} s^{2} + C_{13} C_{9} R_{13} R_{20} Rp1a2 s^{2} + C_{13} C_{9} R_{16} R_{17} R_{20} s^{2} + C_{13} C_{9} R_{16} R_{20} Rp1a2 s^{2} + C_{13} R_{17} R_{20} s + C_{13} R_{20} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2}\)

Code
sym_num, sym_denom = fraction(H_sym) #returns numerator and denominator
Code
sym_num.subs(element_values)

\(\displaystyle - 0.0018380788272 s^{3} - 14.3599008 s^{2} - 15092.0 s\)

Code
sym_num

\(\displaystyle - C_{11} C_{12} C_{9} R_{15} R_{17} R_{18} R_{20} s^{3} - C_{11} C_{12} C_{9} R_{15} R_{17} R_{20} Rp1a2 s^{3} - C_{11} C_{12} C_{9} R_{15} R_{18} R_{20} Rp1a2 s^{3} - C_{11} C_{12} C_{9} R_{16} R_{17} R_{20} Rp1a2 s^{3} - C_{11} C_{12} C_{9} R_{16} R_{18} R_{20} Rp1a2 s^{3} - C_{11} C_{12} C_{9} R_{17} R_{18} R_{20} Rp1a2 s^{3} - C_{11} C_{9} R_{15} R_{17} R_{20} s^{2} - C_{11} C_{9} R_{15} R_{20} Rp1a2 s^{2} - C_{11} C_{9} R_{16} R_{20} Rp1a2 s^{2} - C_{11} C_{9} R_{17} R_{20} Rp1a2 s^{2} - C_{12} C_{9} R_{17} R_{18} R_{20} s^{2} - C_{12} C_{9} R_{17} R_{20} Rp1a2 s^{2} - C_{12} C_{9} R_{18} R_{20} Rp1a2 s^{2} - C_{9} R_{17} R_{20} s - C_{9} R_{20} Rp1a2 s\)

Code
nr = solve(sym_num,s)
Code
len(nr)

\(\displaystyle 3\)

Code
N(nr[0].subs(element_values))/(2*np.pi)

\(\displaystyle 0\)

Code
nr[0].free_symbols

\(\displaystyle \left\{\right\}\)

Code
N(nr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -1044.21627794572\)

Code
nr[1].free_symbols

\(\displaystyle \left\{C_{11}, C_{12}, R_{15}, R_{16}, R_{17}, R_{18}, Rp1a2\right\}\)

Code
N(nr[2].subs(element_values))/(2*np.pi)

\(\displaystyle -199.173918823348\)

Code
nr[2].free_symbols

\(\displaystyle \left\{C_{11}, C_{12}, R_{15}, R_{16}, R_{17}, R_{18}, Rp1a2\right\}\)

Try plotting the location of the zeros as a function of P1a

Code
sym_denom.subs(element_values)

\(\displaystyle 3.1368980323296 \cdot 10^{-8} s^{4} + 0.000627495159826816 s^{3} + 2.267007349904 s^{2} + 1948.80748 s + 77000.0\)

Code
sym_denom

\(\displaystyle C_{11} C_{12} C_{13} C_{9} R_{13} R_{15} R_{17} R_{18} R_{20} s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{15} R_{17} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{15} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{16} R_{17} R_{18} R_{20} s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{16} R_{17} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{16} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{13} R_{17} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{15} R_{16} R_{17} R_{18} R_{20} s^{4} + C_{11} C_{12} C_{13} C_{9} R_{15} R_{16} R_{17} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{15} R_{16} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} C_{9} R_{16} R_{17} R_{18} R_{20} Rp1a2 s^{4} + C_{11} C_{12} C_{13} R_{15} R_{17} R_{18} R_{20} s^{3} + C_{11} C_{12} C_{13} R_{15} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{15} R_{18} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{16} R_{17} R_{18} R_{20} s^{3} + C_{11} C_{12} C_{13} R_{16} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{16} R_{18} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{13} R_{17} R_{18} R_{20} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{15} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{13} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} R_{18} s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{17} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{15} R_{16} R_{18} Rp1a2 s^{3} + C_{11} C_{12} C_{9} R_{16} R_{17} R_{18} Rp1a2 s^{3} + C_{11} C_{12} R_{15} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{15} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{15} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{17} R_{18} s^{2} + C_{11} C_{12} R_{16} R_{17} Rp1a2 s^{2} + C_{11} C_{12} R_{16} R_{18} Rp1a2 s^{2} + C_{11} C_{12} R_{17} R_{18} Rp1a2 s^{2} + C_{11} C_{13} C_{9} R_{13} R_{15} R_{17} R_{20} s^{3} + C_{11} C_{13} C_{9} R_{13} R_{15} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{13} R_{16} R_{17} R_{20} s^{3} + C_{11} C_{13} C_{9} R_{13} R_{16} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{13} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{15} R_{16} R_{17} R_{20} s^{3} + C_{11} C_{13} C_{9} R_{15} R_{16} R_{20} Rp1a2 s^{3} + C_{11} C_{13} C_{9} R_{16} R_{17} R_{20} Rp1a2 s^{3} + C_{11} C_{13} R_{15} R_{17} R_{20} s^{2} + C_{11} C_{13} R_{15} R_{20} Rp1a2 s^{2} + C_{11} C_{13} R_{16} R_{17} R_{20} s^{2} + C_{11} C_{13} R_{16} R_{20} Rp1a2 s^{2} + C_{11} C_{13} R_{17} R_{20} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{15} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{15} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{13} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{11} C_{9} R_{15} R_{16} R_{17} s^{2} + C_{11} C_{9} R_{15} R_{16} Rp1a2 s^{2} + C_{11} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{11} R_{15} R_{17} s + C_{11} R_{15} Rp1a2 s + C_{11} R_{16} R_{17} s + C_{11} R_{16} Rp1a2 s + C_{11} R_{17} Rp1a2 s + C_{12} C_{13} C_{9} R_{13} R_{17} R_{18} R_{20} s^{3} + C_{12} C_{13} C_{9} R_{13} R_{17} R_{20} Rp1a2 s^{3} + C_{12} C_{13} C_{9} R_{13} R_{18} R_{20} Rp1a2 s^{3} + C_{12} C_{13} C_{9} R_{16} R_{17} R_{18} R_{20} s^{3} + C_{12} C_{13} C_{9} R_{16} R_{17} R_{20} Rp1a2 s^{3} + C_{12} C_{13} C_{9} R_{16} R_{18} R_{20} Rp1a2 s^{3} + C_{12} C_{13} R_{17} R_{18} R_{20} s^{2} + C_{12} C_{13} R_{17} R_{20} Rp1a2 s^{2} + C_{12} C_{13} R_{18} R_{20} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{13} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{13} R_{18} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{17} R_{18} s^{2} + C_{12} C_{9} R_{16} R_{17} Rp1a2 s^{2} + C_{12} C_{9} R_{16} R_{18} Rp1a2 s^{2} + C_{12} R_{17} R_{18} s + C_{12} R_{17} Rp1a2 s + C_{12} R_{18} Rp1a2 s + C_{13} C_{9} R_{13} R_{17} R_{20} s^{2} + C_{13} C_{9} R_{13} R_{20} Rp1a2 s^{2} + C_{13} C_{9} R_{16} R_{17} R_{20} s^{2} + C_{13} C_{9} R_{16} R_{20} Rp1a2 s^{2} + C_{13} R_{17} R_{20} s + C_{13} R_{20} Rp1a2 s + C_{9} R_{13} R_{17} s + C_{9} R_{13} Rp1a2 s + C_{9} R_{16} R_{17} s + C_{9} R_{16} Rp1a2 s + R_{17} + Rp1a2\)

Code
dr = solve(sym_denom,s)
Code
len(dr)

\(\displaystyle 4\)

Code
N(dr[0].subs(element_values))/(2*np.pi)

\(\displaystyle -495.131107179864\)

Code
dr[0].free_symbols

\(\displaystyle \left\{C_{13}, R_{20}\right\}\)

Code
N(dr[1].subs(element_values))/(2*np.pi)

\(\displaystyle -2488.36991124334 + 5.79794135604776 \cdot 10^{-14} i\)

Code
dr[1].free_symbols

\(\displaystyle \left\{C_{11}, C_{12}, C_{9}, R_{13}, R_{15}, R_{16}, R_{17}, R_{18}, Rp1a2\right\}\)

Code
N(dr[2].subs(element_values))/(2*np.pi)

\(\displaystyle -193.580625369937 - 7.69570544676559 \cdot 10^{-13} i\)

Code
dr[2].free_symbols

\(\displaystyle \left\{C_{11}, C_{12}, C_{9}, R_{13}, R_{15}, R_{16}, R_{17}, R_{18}, Rp1a2\right\}\)

Code
N(dr[3].subs(element_values))/(2*np.pi)

\(\displaystyle -6.60349430838314 + 7.11587265858656 \cdot 10^{-13} i\)

Code
dr[3].free_symbols

\(\displaystyle \left\{C_{11}, C_{12}, C_{9}, R_{13}, R_{15}, R_{16}, R_{17}, R_{18}, Rp1a2\right\}\)

Code
NE = NE_sym.subs(element_values)

Display the equations with component values.

Code
temp = ''
for i in range(shape(NE.lhs)[0]):
    temp += '${:s} = {:s}$<br>'.format(latex(NE.rhs[i]),latex(NE.lhs[i]))

Markdown(temp)

\(0 = I_{V3} + 5.0 \cdot 10^{-7} s v_{1} - 5.0 \cdot 10^{-7} s v_{3}\)
\(0 = I_{O2a} + v_{2} \cdot \left(8.2 \cdot 10^{-10} s + 2.55102040816327 \cdot 10^{-6}\right) + v_{5} \left(- 8.2 \cdot 10^{-10} s - 2.55102040816327 \cdot 10^{-6}\right)\)
\(0 = - 5.0 \cdot 10^{-7} s v_{1} + v_{3} \cdot \left(5.0 \cdot 10^{-7} s + 0.001\right) - 0.001 v_{4}\)
\(0 = - 2.2 \cdot 10^{-9} s v_{7} - 0.001 v_{3} + v_{4} \cdot \left(2.2 \cdot 10^{-9} s + 0.00102127659574468\right) - 2.12765957446809 \cdot 10^{-5} v_{5}\)
\(0 = - 2.7 \cdot 10^{-8} s v_{8} + v_{2} \left(- 8.2 \cdot 10^{-10} s - 2.55102040816327 \cdot 10^{-6}\right) - 2.12765957446809 \cdot 10^{-5} v_{4} + v_{5} \cdot \left(2.782 \cdot 10^{-8} s + 6.08646531898812 \cdot 10^{-5}\right) - 3.7037037037037 \cdot 10^{-5} v_{6}\)
\(0 = - 3.7037037037037 \cdot 10^{-5} v_{5} + 0.000185824915824916 v_{6} - 4.54545454545455 \cdot 10^{-5} v_{7} - 8.33333333333333 \cdot 10^{-5} v_{8}\)
\(0 = - 2.2 \cdot 10^{-9} s v_{4} - 4.54545454545455 \cdot 10^{-5} v_{6} + v_{7} \cdot \left(2.2 \cdot 10^{-9} s + 4.54545454545455 \cdot 10^{-5}\right)\)
\(0 = - 2.7 \cdot 10^{-8} s v_{5} - 8.33333333333333 \cdot 10^{-5} v_{6} + v_{8} \cdot \left(2.7 \cdot 10^{-8} s + 8.33333333333333 \cdot 10^{-5}\right)\)
\(1.0 = v_{1}\)
\(0 = v_{5}\)

Solve for voltages and currents and display the results.

Code
U = solve(NE,X)
Code
temp = ''
for i in U.keys():
    temp += '${:s} = {:s}$<br>'.format(latex(i),latex(U[i]))

Markdown(temp)

\(v_{1} = 1.0\)
\(v_{2} = \frac{- 6.94390272606383 \cdot 10^{49} s^{3} - 5.42488999032883 \cdot 10^{53} s^{2} - 5.70146276595748 \cdot 10^{56} s}{1.18505879485372 \cdot 10^{45} s^{4} + 2.37055412773066 \cdot 10^{49} s^{3} + 8.56431089029255 \cdot 10^{52} s^{2} + 7.3622139446325 \cdot 10^{55} s + 2.90890957446798 \cdot 10^{57}}\)
\(v_{3} = \frac{6.55416622340426 \cdot 10^{40} s^{3} + 1.10026871104664 \cdot 10^{45} s^{2} + 1.24113475177305 \cdot 10^{48} s}{6.55416622340426 \cdot 10^{40} s^{3} + 1.10717453551472 \cdot 10^{45} s^{2} + 1.29221510315925 \cdot 10^{48} s + 5.17139479905418 \cdot 10^{49}}\)
\(v_{4} = \frac{6.20887500000001 \cdot 10^{40} s^{3} + 1.07472853535354 \cdot 10^{45} s^{2} + 1.21527777777778 \cdot 10^{48} s}{6.55416622340426 \cdot 10^{40} s^{3} + 1.10717453551472 \cdot 10^{45} s^{2} + 1.29221510315925 \cdot 10^{48} s + 5.17139479905418 \cdot 10^{49}}\)
\(v_{5} = 0.0\)
\(v_{6} = \frac{1.51875 \cdot 10^{40} s^{3} + 4.68749999999999 \cdot 10^{43} s^{2}}{6.55416622340426 \cdot 10^{40} s^{3} + 1.10717453551472 \cdot 10^{45} s^{2} + 1.29221510315925 \cdot 10^{48} s + 5.17139479905418 \cdot 10^{49}}\)
\(v_{7} = \frac{6.20887500000001 \cdot 10^{40} s^{3} + 1.05694444444445 \cdot 10^{44} s^{2}}{6.55416622340426 \cdot 10^{40} s^{3} + 1.10717453551472 \cdot 10^{45} s^{2} + 1.29221510315925 \cdot 10^{48} s + 5.17139479905418 \cdot 10^{49}}\)
\(v_{8} = \frac{4.68749999999999 \cdot 10^{43} s^{2}}{6.55416622340426 \cdot 10^{40} s^{3} + 1.10717453551472 \cdot 10^{45} s^{2} + 1.29221510315925 \cdot 10^{48} s + 5.17139479905418 \cdot 10^{49}}\)
\(I_{V3} = \frac{- 3.4529122340425 \cdot 10^{39} s^{3} - 2.55401756931003 \cdot 10^{43} s^{2} - 2.58569739952709 \cdot 10^{46} s}{6.55416622340426 \cdot 10^{43} s^{3} + 1.10717453551472 \cdot 10^{48} s^{2} + 1.29221510315925 \cdot 10^{51} s + 5.17139479905418 \cdot 10^{52}}\)
\(I_{O2a} = \frac{1.13369840425532 \cdot 10^{43} s^{3} + 8.85696324951646 \cdot 10^{46} s^{2} + 9.30851063829792 \cdot 10^{49} s}{2.35949984042553 \cdot 10^{47} s^{3} + 3.985828327853 \cdot 10^{51} s^{2} + 4.65197437137331 \cdot 10^{54} s + 1.86170212765951 \cdot 10^{56}}\)

Plot the frequency response of the transfer function

Code
H = U[v2]/U[v1]
H

\(\displaystyle \frac{1.0 \left(- 6.94390272606383 \cdot 10^{49} s^{3} - 5.42488999032883 \cdot 10^{53} s^{2} - 5.70146276595748 \cdot 10^{56} s\right)}{1.18505879485372 \cdot 10^{45} s^{4} + 2.37055412773066 \cdot 10^{49} s^{3} + 8.56431089029255 \cdot 10^{52} s^{2} + 7.3622139446325 \cdot 10^{55} s + 2.90890957446798 \cdot 10^{57}}\)

Code
num, denom = fraction(H) #returns numerator and denominator

# convert symbolic to numpy polynomial
a = np.array(Poly(num, s).all_coeffs(), dtype=float)
b = np.array(Poly(denom, s).all_coeffs(), dtype=float)

x = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
w, mag, phase = signal.bode((a, b), w=x) # returns: rad/s, mag in dB, phase in deg
Code
fig, ax1 = plt.subplots()
ax1.set_ylabel('magnitude, dB')
ax1.set_xlabel('frequency, Hz')

plt.semilogx(w/(2*np.pi), mag,'-k',label='MNA mag, dB')    # MNA magnitude plot

ax1.tick_params(axis='y')
#ax1.set_ylim((-30,20))
plt.grid()
plt.legend(loc='upper right')

# instantiate a second y-axes that shares the same x-axis
ax2 = ax1.twinx()
color = 'tab:blue'

plt.semilogx(w/(2*np.pi), phase,':',color='b',label='MNA phase')  # MNA phase plot
plt.legend(loc='lower right')

ax2.set_ylabel('phase, deg',color=color)
ax2.tick_params(axis='y', labelcolor=color)
#ax2.set_ylim((-5,25))

# highlight the guitar audio band, 80 to 8kHz
plt.axvspan(80, 8e3, color='y', alpha=0.3)

plt.title('Magnitude and phase response')
plt.show()

Code
x_axis = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
color_list = ['tab:blue','tab:red','tab:green','tab:orange','k']
gain_setting = np.array([1,25,50,75,99])/100
p1_value = 100e3

tf_num_coef_list = []
tf_denom_coef_list = []

#clean_path1_mag = np.zeros((len(gain_setting),len(x_axis)))

#color_list = ['tab:blue','tab:red','tab:green','tab:orange','k']

fig, ax1 = plt.subplots()
ax1.set_ylabel('magnitude, dB')
ax1.set_xlabel('frequency, Hz')

# instantiate a second y-axes that shares the same x-axis
ax2 = ax1.twinx()
color = 'k'

ax2.set_ylabel('phase, deg',color=color)
ax2.tick_params(axis='y', labelcolor=color)

for i in range(len(gain_setting)):
    element_values[Rp1a2] = p1_value - gain_setting[i]*p1_value
    element_values[Rp1b2] = gain_setting[i]*p1_value
    
    #element_values[Rp1a2] = p1_value - gain_setting[i]*p1_value
    #element_values[Rp1b2] = gain_setting[i]*p1_value
    
    NE = NE_sym.subs(element_values)
    U = solve(NE,X)
    H = U[v2]/U[v1]
    num, denom = fraction(H) #returns numerator and denominator

    # convert symbolic to numpy polynomial
    a = np.array(Poly(num, s).all_coeffs(), dtype=float)
    b = np.array(Poly(denom, s).all_coeffs(), dtype=float)
    tf_num_coef_list.append(a)
    tf_denom_coef_list.append(b)
    
    #x = np.logspace(1, 5, 2000, endpoint=False)*2*np.pi
    w, mag, phase = signal.bode((a, b), w=x_axis) # returns: rad/s, mag in dB, phase in deg
    #clean_path1_mag[i] = mag
    
    # plot the results.  
    ax1.semilogx(w/(2*np.pi), mag,'-',color=color_list[i],label='mag: {:.0f}%'.format(gain_setting[i]*100))    # magnitude plot
    ax2.semilogx(w/(2*np.pi), phase,':',color=color_list[i],label='phase: {:.0f}%'.format(gain_setting[i]*100))  # phase plot

# highlight the guitar audio band, 80 to 8kHz
plt.axvspan(80, 8e3, color='y', alpha=0.3) 

ax1.legend(loc='lower left')
ax2.legend(loc='lower right')
ax1.grid()
plt.title('Magnitude and phase response')
plt.show()

39.7 Summary for part 3

39.8 Summary and conclusion for Klon Centaur analysis

The Klon Centaur is famous for its:

  • Exceptional Tone: It’s renowned for its incredibly transparent and musical overdrive. It’s known for adding warmth, dimension, and a touch of sparkle to your guitar tone without significantly altering your core sound.
  • Versatility: While primarily an overdrive, it can also be used as a clean boost to increase signal strength and add subtle drive.
  • Rarity and High Demand: Production of the original Centaur was limited, and demand far exceeded supply. This scarcity has driven prices into the stratosphere on the used market.
  • Cult Following: The pedal has developed a cult following among professional guitarists and audiophiles. Its reputation for sonic excellence has been solidified by word-of-mouth and endorsements from top players.

Essentially, the Klon Centaur is revered for its ability to enhance your guitar’s natural voice in a subtle yet impactful way, making it a highly sought-after and legendary piece of gear.

39.8.1 Recient developments

From Google NotebookLM

The complaint in the lawsuit filed by Klon LLC and William Finnegan against Empower Tribe HQ FZE et al. was dated May 30, 2025.

39.8.2 This document is a Complaint.

It is a formal legal document filed in the United States District Court, District of Massachusetts. The complaint outlines the allegations made by the Plaintiffs, Klon LLC and William Finnegan, against the Defendants, including Empower Tribe HQ FZE and other related entities, and details the legal claims for which they are seeking relief. The document also includes specific dates, such as the filing date of May 30, 2025, at the very end where the attorneys’ signatures appear.

The complaint outlines a lawsuit filed by Klon LLC (“Klon”) and William Finnegan (“Finnegan”) against Empower Tribe HQ FZE, Empower Tribe Commercial FZE, Music Tribe Brands DK A/S, Empower Tribe Innovations UK Ltd., Empower Tribe Innovations US Inc., and John Does 1-10 (collectively, “Defendants”).

39.8.3 Here’s a summary of the complaint:

  • Plaintiffs’ Product and History:
    • In 1994, Finnegan, a musician and innovator, developed an “iconic” guitar overdrive pedal named the CENTAUR®. This pedal was a “completely new idea that revolutionize[d] the guitar world” and delivered a “great tone”.
    • Finnegan painstakingly built each CENTAUR® pedal by hand with expensive custom parts, prioritizing quality over profit.
    • The CENTAUR® pedal’s popularity led to demand exceeding production, resulting in significant lead times. By mid-1995, Finnegan was working over 60 hours per week.
    • Around 2009, Finnegan transitioned to limited production, which contributed to “one of the most famous price hikes in guitar pedal history,” with used CENTAUR® pedals selling for thousands of dollars.
    • Klon LLC, a Massachusetts limited liability company, was organized by Finnegan in 2012, and he assigned all intellectual property rights related to his prior business “Klon” to the LLC.
    • The CENTAUR® pedal is used by famous musicians like John Mayer, Jeff Beck, and Matt Schofield. It has achieved “mythical and legendary status” due to its scarcity, craftsmanship, quality, and tone. An active secondary market exists where authentic used pedals sell for thousands, sometimes over ten thousand dollars.
    • The CENTAUR® Mark was federally registered by Klon in 2019 (U.S. Reg. No. 5661741 on January 22, 2019, and U.S. Reg. No. 6147899 on September 8, 2020), covering various electronic effects pedals and repair services. The registration is based on use of the mark in commerce, demonstrated by eBay sales.
    • The Original CENTAUR Pedal features the CENTAUR® Mark (in all caps with a subscript “TM”) on its face and underneath. It also has an originally-created CENTAUR Logo.
    • The pedal possesses unique and distinctive CENTAUR Trade Dress, including specific custom-shaped enclosures, control knob arrangements, font styles, LED light placement, and jack locations.
    • Plaintiffs continue to produce and sell new CENTAUR pedals on a limited basis, including through eBay accounts, with recent sales in early 2025. They also actively monitor and remove infringing listings from platforms like eBay.
  • Defendants’ Alleged Actions:
    • Defendants are accused of manufacturing and selling musical equipment, including guitar effects pedals, and have a reputation for creating “cheap and inferior copies” under the “Behringer” brand. They have previously been sued for similar intellectual property infringements.
    • In late 2024, Defendants announced the CENTAUR OVERDRIVE pedal (the “Counterfeit CENTAUR Pedal”).
    • Plaintiffs allege that Defendants’ pedal is not merely a “clone” but a “blatant counterfeit” that misappropriates and exploits Plaintiffs’ intellectual property, goodwill, and reputation.
    • The Counterfeit CENTAUR Pedal prominently features Klon’s federally-registered CENTAUR Mark, larger than any other word, and in the same font and color as used by Plaintiffs.
    • Unlike most of Defendants’ other pedals, the Counterfeit CENTAUR Pedal does not include the BEHRINGER mark on its face, which Plaintiffs allege was intentional to make it look more like Plaintiffs’ product and suggest affiliation.
    • Defendants’ pedal is gold-colored with a centaur logo design “virtually identical” to Plaintiffs’ original CENTAUR Logo.
    • The overall product design of the Counterfeit CENTAUR Pedal is “largely identical and deceptively similar” to the CENTAUR Trade Dress. While smaller, Defendants admitted this was to “save space” and was a “testament to the engineers’ efforts to replicate [Finnegan’s] design as accurately as possible,” not to distinguish it.
    • To promote their pedal, Defendants released a YouTube video titled “The stomp, the myth, the legend - Behringer CENTAUR OVERDRIVE”. This video extensively discusses Plaintiffs’ CENTAUR® pedals while deceptively showing Defendants’ counterfeit pedal and using Finnegan’s name and likeness to suggest his involvement or endorsement. The video misrepresents the Counterfeit CENTAUR Pedal as having hit the market in 1994, when it was 2024.
    • Defendants never disclaimed an association with Klon or Finnegan in their marketing.
    • This conduct has caused extensive actual confusion among consumers, who expressed belief that the Counterfeit CENTAUR Pedal was licensed or endorsed by Plaintiffs, or that Defendants were affiliated with Plaintiffs. Some industry influencers also identified it as a “shameless,” “blatant copy”.
    • Plaintiffs sent a cease and desist letter to Defendants on January 10, 2025, but Defendants continue to offer the Counterfeit CENTAUR Pedal for sale.
  • Legal Claims: The plaintiffs are suing for:
    • Willful Trademark Counterfeiting under the Lanham Act (15 U.S.C. §§ 1114 & 1116).
    • Trademark Infringement under the Lanham Act (15 U.S.C. §§ 1114).
    • Trademark and Trade Dress Infringement, False Designation of Origin, Passing Off, and Unfair Competition under Section 43(a)(1)(A) of the Lanham Act (15 U.S.C. § 1125(a)(1)(A)).
    • Common Law Trademark and Trade Dress Infringement under Massachusetts law.
    • Common Law Unfair Competition under Massachusetts law.
    • Trademark Dilution under M.G.L c. 110H, § 13 (by blurring and tarnishment).
    • False Advertising under M.G.L. c. 266, § 91.
    • Unauthorized Use of Individual’s Name, Portrait, or Picture under M.G.L. c. 214, § 3A (referring to Finnegan’s name and likeness).
  • Requested Relief: Plaintiffs seek:
    • A finding that Defendants engaged in the alleged unlawful conduct and that their actions were willful.
    • Preliminary and permanent injunctions to prevent Defendants from manufacturing, advertising, selling, or promoting products that bear the CENTAUR Mark, CENTAUR Logo, CENTAUR Trade Dress, or any confusingly similar elements, or from engaging in any activity constituting the alleged infringements, false designation, false advertising, or misappropriation.
    • Requiring Defendants to file a report on their compliance with the injunction.
    • Requiring Defendants to destroy all counterfeits or colorable imitations of the CENTAUR Mark.
    • An order to prevent consumers from erroneously believing Defendants’ products are authorized or related to Plaintiffs.
    • Statutory damages of up to $2,000,000 per counterfeit mark or, alternatively, payment of all Defendants’ profits, which should be trebled.
    • Increasing recoverable damages by up to three times where applicable.
    • Punitive damages.
    • Attorneys’ fees and costs.
    • Pre-judgment interest on any monetary award.
    • Any other just and proper relief.
    • Plaintiffs also demand a jury trial.

The lawsuit was filed in the United States District Court, District of Massachusetts.

39.8.4 The history of the Klon, primarily referring to the CENTAUR® overdrive pedal and the entity Klon LLC, is detailed in the provided complaint.

Here’s a comprehensive overview:

  • Inception and Early Development (1990s)
    • In 1990, William Finnegan (“Finnegan”), a musician and innovator, identified a need for a new type of overdrive pedal that could provide a transparent tone, similar to a turned-up tube amplifier.
    • Inspired by antiquity and Greek mythology, Finnegan named his revolutionary guitar pedal the CENTAUR.
    • After years of development and experimentation, Finnegan (operating under the name “Klon” at the time) built and sold his first Original CENTAUR Pedal in 1994.
    • Finnegan meticulously built each CENTAUR® overdrive pedal by hand using many expensive custom parts, prioritizing quality over profit.
    • The Original CENTAUR Pedal and its subsequent versions featured the CENTAUR® Mark (in all capital letters with a subscript “TM”) on both the face and underneath the pedal. It also featured an originally-created CENTAUR Logo design.
    • The pedal possessed a unique and distinctive CENTAUR Trade Dress, including a gold or silver custom-shaped enclosure with a gently-sloped face and sculptural protrusions, specific oxblood-colored control knob arrangements (“GAIN,” “TREBLE,” “OUTPUT” in Times New Roman semi-bold font), a laterally-offset metal on-off footswitch, red LED light placement, and top-side signal and power jacks.
    • The internal circuitry was hand-wired, including custom-specified parts and specially-selected germanium diodes for hard clipping.
  • Growth in Popularity and Scarcity
    • The Original CENTAUR Pedal was wildly popular and immediately met with critical acclaim, leading to overwhelming demand that quickly outpaced production.
    • By mid-1995, Finnegan’s workload exceeded 60 hours per week, and for the next fifteen years, he struggled to keep up.
    • From 1994 to 2010, Finnegan built hundreds of pedals annually, but never more than 700 in any given year, despite significant demand.
    • At the end of 2009, Finnegan transitioned from full-time to limited CENTAUR® production. This shift contributed to “one of the most famous price hikes in guitar pedal history,” with used CENTAUR® pedals selling for thousands of dollars.
    • An active secondary market exists where authentic used CENTAUR pedals sell for thousands, sometimes over ten-thousand dollars. The Original CENTAUR Pedal, with its gold finish, CENTAUR Mark, CENTAUR Logo, and full CENTAUR Trade Dress, remains the most coveted and valuable.
  • Company Formation and Continued Production
    • Klon LLC, a Massachusetts limited liability company, was organized in 2012 by William Finnegan, who is its sole member and manager.
    • Finnegan assigned all intellectual property rights and related causes of action from his prior business “Klon” (under which he operated for approximately 18 years) to Klon LLC.
    • Klon continues to manufacture and sell new CENTAUR pedals on a limited basis. Sales have been conducted through third-party eBay accounts (like “boxing_rabbit” since 2008) and Klon’s own eBay account (“klondirectsales” since 2019), with recent sales occurring in February, March, and April 2025.
    • Klon also continues to service previously sold CENTAUR pedals.
  • Intellectual Property and Enforcement
    • Klon obtained two U.S. federal trademark registrations for the CENTAUR Mark:
      • U.S. Reg. No. 5661741, registered on January 22, 2019, for electronic effects pedals, foot pedals, guitar pedals, sound effect pedals (Class 15), and repair/maintenance services (Class 37).
      • U.S. Reg. No. 6147899, registered on September 8, 2020, for electronic effects pedals, sound effect pedals (Class 9), foot pedals, and guitar pedals (Class 15).
    • Both registrations are live and based on the use of the CENTAUR Mark in commerce, with eBay sales providing specimens for use.
    • The CENTAUR Logo also remains a key source identifier, with pedals featuring it typically selling for more.
    • Plaintiffs actively monitor and remove infringing listings from platforms like eBay, having removed hundreds over many years. They also provide warnings of potentially infringing third-party clone pedals on their website and eBay listings.
    • This lawsuit specifically targets a “blatant counterfeit” that cannot be stopped through simple eBay takedown procedures as it’s not sold by the Defendants on eBay.
  • Reputation and Cultural Impact
    • The CENTAUR pedals are used by numerous famous musicians, including John Mayer, Jeff Beck, Billy Gibbons, Joe Perry, and Matt Schofield, among others.
    • The pedals have been featured in countless guitar magazines and online publications, and widely discussed on online music forums and videos for three decades.
    • Plaintiffs’ CENTAUR pedals have achieved “mythical and legendary status” in the music industry due to their scarcity, craftsmanship, quality, and “utterly glorious tone”. They are so desirable that they have been reported stolen from musicians’ pedal boards during live concerts.
    • The complaint states that Finnegan has dedicated over 30 years of his life to developing, promoting, servicing, and defending his rights in the CENTAUR® overdrive pedal.

39.8.5 what is special about the klon

The Klon CENTAUR® overdrive pedal holds a special and legendary status in the guitar world due to a combination of its unique sound, meticulous craftsmanship, deliberate scarcity, distinctive design, and significant cultural impact.

Here’s what makes the Klon CENTAUR® special:

  • Revolutionary Tone and Transparent Overdrive
    • In 1990, William Finnegan (“Finnegan”) set out to create a revolutionary new type of overdrive pedal that would provide guitar players with an open, transparent tone, similar to that of a turned-up tube amplifier. This was a “completely new idea that revolutionize[d] the guitar world”.
    • The pedal delivers a “great tone” that “create[s] a whole new sonic avenue” for guitarists.
    • It offers a rich, harmonic drive at low volume levels. Finnegan’s goal was a “subtle” pedal that makes an amp “sound like you’re always in that sweet spot that we all crave so desperately”.
    • A key part of its uniqueness is its dual-potentiometer gain control, which not only introduces clipping but also blends the clean sound with the overdriven signal, providing dynamic range, clarity, and natural picking response, leading to its transparent tonal quality.
    • Internally, it steps up the voltage to 18 volts, providing more headroom and higher harmonic information, resulting in a “harmonically rich, but clear sound”.
  • Meticulous Hand-Built Craftsmanship and Quality
    • Finnegan personally painstakingly developed the pedal and built and continues to build each CENTAUR® overdrive pedal by himself, by hand.
    • It uses many expensive custom parts and is built “in a manner that no profit-prioritizing business would ever consider”.
    • The internal circuitry is hand-wired, including custom-specified parts and specially-selected germanium diodes for hard clipping. Each unit is rigorously tested by Finnegan.
    • This commitment to quality over profit contributes to its “impeccable craftsmanship and quality”.
  • Distinctive and Recognizable Design (Trade Dress and Logo)
    • The Original CENTAUR Pedal, first sold in 1994, and its subsequent versions feature the CENTAUR® Mark (in all capital letters with a subscript “TM”) on both the face and underneath the pedal.
    • It includes an originally-created CENTAUR Logo design. The CENTAUR Logo remains a key source identifier, and pedals with it typically sell for more.
    • It possesses a unique and distinctive CENTAUR Trade Dress, characterized by:
      • Gold- or silver-colored, custom-shaped enclosures with a gently-sloped face, sculptural protrusions, and pointed corners.
      • Oxblood-colored control knobs arranged horizontally and labeled “GAIN,” “TREBLE,” and “OUTPUT” in Times New Roman semi-bold font.
      • A laterally-offset metal on-off footswitch with the CENTAUR Mark nearby.
      • A red LED light to the left of the “GAIN” knob.
      • Top-side signal jacks (“IN” and “OUT”) and a power supply input jack.
  • Overwhelming Demand, Scarcity, and High Value
    • The Original CENTAUR Pedal was “wildly popular” and “immediately met with critical acclaim,” leading to overwhelming demand that quickly surpassed production.
    • By mid-1995, Finnegan struggled with a workload exceeding 60 hours per week to keep up. From 1994-2010, he never sold more than 700 pedals in any given year despite demonstrable demand for more.
    • At the end of 2009, Finnegan transitioned to limited CENTAUR® production, which led to “one of the most famous price hikes in guitar pedal history”.
    • Used CENTAUR® pedals now sell for thousands of dollars, sometimes over ten-thousand dollars, in an active secondary market. The Original CENTAUR Pedal with its gold finish, mark, logo, and full trade dress is the most coveted and valuable.
  • “Mythical and Legendary Status” and Esteemed Users
    • Plaintiffs’ CENTAUR pedals have achieved “mythical and legendary status” in the music industry.
    • They are used by numerous famous musicians, including John Mayer, Jeff Beck, Billy Gibbons, Joe Perry, Matt Schofield, among others.
    • The pedals have been featured in countless guitar magazines and online publications and discussed extensively on online forums and videos for three decades.
    • They are so desirable that they have even been reported stolen from musicians’ pedal boards during live concerts.
    • The name “CENTAUR” itself draws from antiquity and Greek mythology, adding to its mystique.

In essence, the Klon CENTAUR is special because it’s not just an effects pedal; it’s a handcrafted, high-quality, sonically unique, and scarce instrument that has attained an almost mythical reputation among guitarists worldwide, defining a specific, highly sought-after transparent overdrive tone and aesthetic.

39.8.6 What about the diodes

The Klon CENTAUR® overdrive pedal incorporates specially-selected germanium diodes for hard clipping. This design choice is a key component of its unique sound.

Regarding the internal workings, a significant aspect that makes the CENTAUR® pedal special is its ability to step up the voltage internally to 18 volts, which provides more headroom and puts out higher harmonic information, resulting in a harmonically rich, but clear sound. This higher voltage works in conjunction with the germanium diodes to achieve its distinctive tonal qualities.

In the context of the Counterfeit CENTAUR Pedal produced by the Defendants, the complaint states that it features “All analog circuitry with Germanium diodes for soft transitional clipping”, implying an attempt to replicate this characteristic of the original Klon. The promotional video for the counterfeit pedal also highlights that a “huge part of what makes this pedal so unique is hidden beneath the Gain control,” noting that the Gain introduces “clipping from the Germanium diodes” and blends the clean sound with the overdriven signal. This blending provides dynamic range, clarity, and natural picking response, which is where the transparent tonal quality originates.