def test_loopanalysis_incorrect_circuit(): cir = SubCircuit() assert_raises(ValueError, lambda: FeedbackLoopAnalysis(cir)) cir['probe1'] = LoopProbe('out', gnd, 'out_R2', gnd) cir['probe2'] = LoopProbe('out', gnd, 'out_R2', gnd) assert_raises(ValueError, lambda: FeedbackLoopAnalysis(cir))
def test_loopanalysis_numeric(): cir = SubCircuit() cir['A1'] = VCVS(gnd, 'int', 'out', gnd, g = 10) cir['R1'] = R('in', 'int') cir['probe'] = LoopProbe('out', gnd, 'out_R2', gnd) cir['C2'] = C('int', 'out_R2') cir['VS'] = VS('in', gnd) ana = FeedbackLoopAnalysis(cir) res = ana.solve(np.logspace(4,6), complexfreq=True) print abs(res['loopgain'])
def test_loopanalysis_viiv(): sympy.var('R1 R2 CL A s') cir = SubCircuit(toolkit=symbolic) cir['A1'] = VCVS(gnd, 'int', 'out', gnd, g = A, toolkit=symbolic) cir['R1'] = R('in', 'int', r=R1) cir['probe'] = LoopProbe('out', gnd, 'out_R2', gnd, toolkit=symbolic) cir['R2'] = R('int', 'out_R2', r=R2) cir['VS'] = VS('in', gnd) ana = FeedbackLoopAnalysis(cir, toolkit=symbolic) res = ana.solve(s, complexfreq=True) assert sympy.simplify(res['loopgain'] - (- A * R1 / (R1 + R2))) == 0