· 

ahkab(python)で回路シミュレーション(8)

2重の相互誘導がどのような特性の変化をもたらすのかを計算してみる。とは、

回路図に書くとこんな状態で、K1, K3が非常に小さい状態から、V1=0としてK1を大きくしていくと並列共振回路の電圧(わかりやすくに言うとR2の両端電圧)がどうなるかをahkabを使って見てみます。すなわち、並列共振のコイルに別のコイルを近づけることで、並列共振の特性がどう変わるのかをみるってことです。

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()

volt_1=-50
#volt_1=0

R1_val=100e0
L1_val=600e-6
C1_val=200e-12

R2_val=100e3
L2_val=3e-3
C2_val=40e-12

K1_val=220e-9
#K1_val=0.4e-3

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("R8", n1="n5", n2=gnd, value=10e6)

mycircuit.add_inductor_coupling("M1","L1","L2",K1_val)

mycircuit.add_vsource("V1", n1="n1", n2=gnd, dc_value=0, ac_value=volt_1)

"""
volt_3=-50
R3_val=100e0
L3_val=600e-6
C3_val=200e-12
K3_val=220e-9
mycircuit.add_capacitor("C3", n1="n6", n2="n7", value=C3_val)
mycircuit.add_resistor("R3", n1="n7", n2="n8", value=R3_val)
mycircuit.add_inductor("L3", n1="n8", n2="n9", value=L3_val)
mycircuit.add_resistor("R9", n1="n9", n2=gnd, value=10e6)
mycircuit.add_inductor_coupling("M2","L2","L3",K3_val)
mycircuit.add_vsource("V2", n1="n6", n2="n9", dc_value=0, ac_value=volt_3)
"""

print(mycircuit)

op_analysis = ahkab.new_op()
ac_analysis = ahkab.new_ac(start=300e3, stop=600e3, points=10001)

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'])

V_R2_abs=np.abs(V_R2)
V_R2_max=np.max(V_R2_abs)
f_band=f[V_R2_abs>=(V_R2_max/np.sqrt(2))]
q_sim=(f[V_R2_abs==V_R2_max]/(f_band[-1]-f_band[0]))[0]
print ('Q from waveform=',end='')
print(q_sim)

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) [A]')
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) [V]')
fig.tight_layout()
plt.show()

上のソースのコメント部分がV3あたりの回路で、今は接続されていません。このまま実行すると、

V1系に0.5Aが流れて、相互誘導で並列共振回路に5mVが現れます。波形から計算されるQ値は22.65となります。

で、K1を0.1ってすると、

V1系の電流は0.2Aに減少して、並列共振回路にはピークで800Vが現れます。で波形から計算されるQ値は7.55になります。

ではK1=220e-9にもどして、V1=0にして、V3=-50にすると、

V3系からの相互誘導で5mVが現れます。ここで、K1=0.1とすると、

というように、並列共振回路に現れる電圧は1.7mVくらいになっちゃいます。波形から推定されるQはやはり約7.55。

何が言いたいのか、、、並列共振回路を無線通信の受信回路、V3系を無線通信の送信回路とすると、送受とは関係なくても並列共振回路のインダクタと何かが結合することによって、受信電圧は大きく変化するってこと。または、並列共振回路を無線通信の受信回路、V1系を無線通信の送信回路、V3系をノイズ源とすると、送信回路と受信回路を近づけることで、ノイズの絶対値も小さくなるってこと。

いやそりゃそうだなんだけど、いちおう計算してみたかっただけ。

 

今年こそはよい年になってほしい。

よい年の定義が不明。人として願ってはいけないことしか思いつかない。