RLC 回路シミュレータ

薮哲郎

シミュレートする回路

東京書籍 高校物理 探究12 の RLC 回路のシミュレータです。

L, C, 周波数などのパラメータを設定して実行すると、 共振周波数、各場所の電圧、電流、豆電球が消費する電力、 ベクトル図などを表示します。

以下の2つのバージョンがあります。

  1. 豆電球の抵抗値は固定。コイルの巻線抵抗は無視(R2 に加算してください)

  2. 豆電球の抵抗値は電圧によって定まる。コイルの巻線抵抗も設定可能

計算方法

最初、fortran と自作のグラフライブラリを用いて開発しました。 fortran のプログラムは利用するための敷居が高いので、 JavaScript 版を作りました。本プログラムは GPL としますので、 ご自由に改造してお楽しみ下さい。

電気回路は複素記号法を使って解きます。 1. のシミュレータの場合、以下の手順で求めます。

インピーダンスは以下のとおりです。

L と R2 の直列インピーダンス:  Z2 = R2 + jwL
C と R3 の直列インピーダンス:  Z3 = R3 + 1/jwC
VM より下側の合成インピーダンス: Z23 = (Z2 * Z3)/(Z2 + Z3)
回路全体のインピーダンス:    Z = R1 + Z23

回路全体の電流 I1 は「電圧÷インピーダンス」で以下のように 求まります。

I1 = E / Z

I2, I3 は分流の式を用いて次式で得られます。

I2 = I1 * Z3 / (Z2 + Z3)
I3 = I1 * Z2 / (Z2 + Z3)

電圧は電流とインピーダンスの積なので、次式で得られます。

V1 = I1 * R1
V2 = I2 * R2
VL = I2 * jwL
V3 = I3 * R3
VC = I3 * 1/jwC

複素数で得られた電圧・電流の絶対値を取れば、 電圧計や電流計の指示値が得られます。

電力は公式より以下の式で得られます。

P1 = Re{ V1 * (I1)^*}  (注) (I1)^* は I1 の複素共役
P2 = Re{ V2 * (I2)^*}
P3 = Re{ V3 * (I3)^*}


fortran はデフォルトで複素数の演算をサポートしているので、 数式をそのまま書くことができますが、 JavaScript で複素数の計算をするのは非常に厄介です。 興味がある人は「ソースを表示」として中身を見て下さい。

Z3 = R3 + 1/jwc

を JavaScript では以下のように書く必要があります (複素数のライブラリとして complex.js を使っています)。

z_rc = c_r3.add(one.div(jj.mul(w*C)));

fortran なら次式で済みます。

z_rc = r3 + 1 / ( jj * w * C )

どちらが分かりやすいかは一目瞭然ですね。