workspace()
gc()
using SymPy, Plots
gr()
Plots.GRBackend()
parallel(z) = 1/sum(map(x->1/x, z))
serial(z) = sum(z)
serial (generic function with 1 method)
@syms L1 R1 C1 omega s z_inv z_inv2 T
(L1, R1, C1, omega, s, z_inv, z_inv2, T)
ZR1 = R1
ZL1 = s * L1
ZC1 = 1/(s * C1)
eq1 = serial([ZR1, ZL1, ZC1])
r1, l1, c1 = 1, 1e-3, 1e-6
(1, 0.001, 1.0e-6)
# 共振周波数の計算
1/(2pi*sqrt(c1*l1))
5032.921210448703
eq2 = simplify(subs(eq1, (R1, r1), (L1, l1), (C1, c1), (s, im * omega)))
eq3 = lambdify(eq2)
x = logspace(-2,10,1000)
pl1 = plot(x, 20*log.(abs.(eq3(2pi*x))), xscale=:log10, label="gain")
pl2 = plot(x, rad2deg.(angle.(eq3(2pi*x))), xscale=:log10, label="angle", ylims=(-90, 90))
plot(pl1, pl2, layout=(2,1))
eq1 = serial([ZR1, ZL1, parallel([ZC1, serial([ZR1, ZL1, ZC1])])])
eq2 = simplify(subs(eq1, (R1, r1), (L1, l1), (C1, c1), (s, im * omega)))
eq3 = lambdify(eq2)
x = logspace(-2.,10.,1000)
pl1 = plot(x, 20*log.(abs.(eq3(2pi*x))), xscale=:log10, label="gain")
pl2 = plot(x, rad2deg.(angle.(eq3(2pi*x))), xscale=:log10, label="angle", ylims=(-90, 90))
plot(pl1, pl2, layout=(2,1))