相互誘導の回路でトランジェントしてみる。こんなん。(手書きー)
送信側をASK変調するのにいい方法が思いつかなくて、抵抗でダンプした状態をスイッチでバイパスするかどうかで出力を制御してASK変調波形にしています。(後でスイッチの記述方法が分かり、Raはなくても表現できることが分かったのですがそのままやりきります)
ahkabでスイッチの定義の仕方がいまいちわからなかったけど、ここにあった例を見て解決。
ahkabのドキュメントー。そもそも、こんな表現でわかるわけないやん。
気を取り直して、こんな感じで。
import matplotlib import matplotlib.pyplot as plt import numpy as np import ahkab from ahkab import circuit, time_functions 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*1.0 Rg_val=100e6 Ra_val=1000e6 mycircuit.add_capacitor("C1", n1="n2", n2="n3", value=C1_val) mycircuit.add_resistor("R1", n1="n3", n2="n4", value=R1_val) mycircuit.add_inductor("L1", n1="n4", n2=gnd, value=L1_val) mycircuit.add_resistor("R2", n1="n5", n2="n6", value=R2_val) mycircuit.add_inductor("L2", n1="n5", n2="n6", value=L2_val) mycircuit.add_capacitor("C2", n1="n5", n2="n6", value=C2_val) mycircuit.add_resistor("Rg", n1="n6", n2=gnd, value=Rg_val) mycircuit.add_inductor_coupling("M1","L1","L2",0.00007) mycircuit.add_resistor("Ra", n1="n1", n2="n2", value=Ra_val) mycircuit.add_model("sw", "mysw", {'name':"mysw", 'VT':0.5, 'VH':0.2, 'RON':0.1, 'ROFF':None}) mycircuit.add_switch("S1",n1="n1",n2="n2",sn1="n10",sn2=gnd,ic=False,model_label="mysw") voltage_carrier = time_functions.sin(vo=0,va=5,freq=459441) mycircuit.add_vsource("V1", n1="n1", n2=gnd, dc_value=0, ac_value=0, function=voltage_carrier) voltage_step = time_functions.pulse(v1=0, v2=1, td=0, tr=1e-6, pw=0.1e-3, tf=1e-6, per=0.2e-3) mycircuit.add_vsource("V2", n1="n10", n2=gnd, dc_value=0, ac_value=0, function=voltage_step) print(mycircuit) op_analysis = ahkab.new_op() tran_analysis = ahkab.new_tran(tstart=0, tstop=0.5e-3, tstep=1e-6, x0=None) r2 = ahkab.run(mycircuit, an_list=[op_analysis, tran_analysis]) t=r2['tran']['T'] tV_R2=r2['tran']['Vn6']-r2['tran']['Vn5'] matplotlib.use('TkAgg') fig = plt.figure() ax1=plt.subplot(1,1,1) ax1.grid(True) ax1.plot(t, np.real(tV_R2), '-') ax1.set_ylabel('(Vn5-Vn4) [V]') ax1.set_xlabel('time [s]') fig.tight_layout() plt.show()
で、こうなる。
今回は、5Vp(time_functions.sinはva*sin(ωt)らしいのでvaの単位はVp)で約0.15Vpとなっている。
で、前回の回路と同じ構成にして送信側の電圧を5Vrmsでac解析してみる。
import matplotlib import matplotlib.pyplot as plt import numpy as np import ahkab from ahkab import circuit, time_functions 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*1.0 Rg_val=100e6 Ra_val=1e-6 mycircuit.add_capacitor("C1", n1="n2", n2="n3", value=C1_val) mycircuit.add_resistor("R1", n1="n3", n2="n4", value=R1_val) mycircuit.add_inductor("L1", n1="n4", n2=gnd, value=L1_val) mycircuit.add_resistor("R2", n1="n5", n2="n6", value=R2_val) mycircuit.add_inductor("L2", n1="n5", n2="n6", value=L2_val) mycircuit.add_capacitor("C2", n1="n5", n2="n6", value=C2_val) mycircuit.add_resistor("Rg", n1="n6", n2=gnd, value=Rg_val) mycircuit.add_inductor_coupling("M1","L1","L2",0.00007) mycircuit.add_resistor("Ra", n1="n1", n2="n2", value=Ra_val) mycircuit.add_vsource("V1", n1="n1", n2=gnd, dc_value=0, ac_value=5) 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']['Vn4']-r['ac']['Vn3'])/R1_val V_R2=(r['ac']['Vn6']-r['ac']['Vn5']) 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(Vn6-Vn5) [V]') fig.tight_layout() plt.show()
となるので、0.157Vrms。
すなわち、トランジェントでも振幅もちゃんと計算できている。が、3パルス目に何か、、、なんだろう。とりあえず動くようにするだけで力尽きた。
しっかし、甲子園中継の音声、、、カラスすごくね?
<参考文献>
WQC 株式会社
https://www.green-house.co.jp/shared/contents/iot-wireless/casestudy2/iot-casestudy-wireless-WQC.pdf
、、、参考にしたわけじゃないけど、興味深いので記録のため載せておく。
コメントをお書きください