相互誘導やってみる。こんなん。
早速だけど、こうする。
ソース側は電流を1Aにする。そのため電源電圧を100Vにする。
受信側を完全にGNDから浮かすと(たぶん)怒られるのでRg(=10MΩ)でソース側と接続する。
import matplotlib import matplotlib.pyplot as plt import numpy as np import ahkab from ahkab import circuit mycircuit = circuit.Circuit(title="mutual coupling circuit") gnd = mycircuit.get_ground_node() R1_val=100e0 L1_val=600e-6 C1_val=200e-12 R2_val=100e3 L2_val=3e-3 C2_val=40e-12 mycircuit.add_capacitor("C1", n1="n1", n2="n2", value=C1_val) mycircuit.add_resistor("R1", n1="n2", n2="n3", value=R1_val) mycircuit.add_inductor("L1", n1="n3", n2=gnd, value=L1_val) mycircuit.add_resistor("R2", n1="n4", n2="n5", value=R2_val) mycircuit.add_inductor("L2", n1="n4", n2="n5", value=L2_val) mycircuit.add_capacitor("C2", n1="n4", n2="n5", value=C2_val) mycircuit.add_resistor("Rg", n1="n5", n2=gnd, value=10e6) mycircuit.add_inductor_coupling("M1","L1","L2",0.00007) mycircuit.add_vsource("V1", n1="n1", n2=gnd, dc_value=0, ac_value=-100) print(mycircuit) op_analysis = ahkab.new_op() ac_analysis = ahkab.new_ac(start=300e3, stop=600e3, points=1001) r = ahkab.run(mycircuit, an_list=[op_analysis, ac_analysis]) f=r['ac']['f'] I_R1=(r['ac']['Vn3']-r['ac']['Vn2'])/R1_val V_R2=(r['ac']['Vn5']-r['ac']['Vn4']) matplotlib.use('TkAgg') fig = plt.figure() ax1=plt.subplot(2,1,1) ax1.grid(True) ax1.plot(f, np.abs(I_R1), '-') ax1.set_yscale('log') ax1.set_ylabel('abs(I@R1) [I]') ax1.set_title(mycircuit.title + " - AC Simulation") ax2=plt.subplot(2,1,2) ax2.grid(True) ax2.plot(f, np.abs(V_R2), '-') ax2.set_xlabel('frequency [Hz]') ax2.set_ylabel('abs(Vn5-Vn4) [rad]') fig.tight_layout() plt.show()
ソース側が1Aも流れているので結合係数k=0.00007で受信側に3Vが得られる。
ちなみにkを大きくしていくと、相互インダクタンスにより定数が変わってしまうし、共振の経路が複数できることになる、で、共振周波数が変わるわ割れるわってなります。
ちなみに、Q値。
ソース側のQ値は計算値で17.3。受信側のQ値は計算値で11.5。系全体で28.8になってほしい(そうなると思ってた)んだけど、結果の波形から算出すると、22.5。なんでそうなるのか、、、結合によって微妙に共振がずれたり割れたりするので、バンド幅が広くなってQが低くなるんだろうけど、kを小さくしていっても22.6くらいにしかならない、、、まぁ世の中わからんことだらけですよ。
コメントをお書きください