スマートフォンの電源ボタンを押した瞬間、内部の電源回路には急激な電圧変化が生じます。このとき、回路の電圧や電流はすぐに定常状態に落ち着くわけではなく、一時的に振動したり、ゆっくり這い上がったりする「過渡現象」が起こります。この過渡応答の振る舞いを理解しなければ、電源投入時のオーバーシュートで素子が壊れたり、信号が歪んだりする問題を防ぐことはできません。
RLC回路の過渡応答は、以下のような場面で本質的な役割を果たします。
- フィルタ回路の設計: ローパスフィルタやバンドパスフィルタの立ち上がり特性は、過渡応答の理論で決まります
- 電源回路の安定性: スイッチング電源の起動時のリンギング(振動)やオーバーシュートを抑えるには、減衰条件の設計が不可欠です
- 通信回路のパルス応答: デジタル信号のパルスがRLC回路を通過したときの波形歪みは、過渡応答そのものです
- 共振回路の過渡特性: ラジオ受信回路の周波数選択特性は、RLC回路のQ値と直結しています
本記事の内容
- RC回路の過渡応答と時定数 $\tau = RC$ の直感的理解
- RL回路の過渡応答と時定数 $\tau = L/R$ の導出
- RLC直列回路の微分方程式の立式(KVLの適用)
- 特性方程式と3つの減衰条件(過減衰、臨界減衰、減衰振動)
- 各場合のステップ応答の解の導出
- 減衰定数 $\alpha$、固有角周波数 $\omega_0$、Q値の関係
- RLC並列回路との対応
- Python による3条件の比較可視化とQ値解析
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
RC回路の過渡応答
時定数の直感的な意味
RLC回路の過渡応答に入る前に、まずは最も単純なRC回路から「時定数」の概念を掴んでおきましょう。
スポンジに水を染み込ませる場面を想像してください。最初は勢いよく水を吸いますが、だんだん吸い込む速度が落ちて、やがて飽和します。コンデンサへの充電も全く同じです。最初は大きな電流が流れますが、コンデンサの電圧が電源電圧に近づくにつれて電流は減り、最終的にはゼロになります。この「吸い込みの速さ」を決めるのが時定数 $\tau$ です。
微分方程式の立式
抵抗 $R$ とキャパシタ $C$ が直列に接続された回路に、時刻 $t = 0$ でステップ電圧 $V_0$ を印加する場合を考えます。キルヒホッフの電圧則(KVL)を適用すると、コンデンサの電圧 $v_C(t)$ に関する方程式が得られます。
回路を一巡すると、電源電圧はすべて抵抗とコンデンサの電圧降下の和と等しくなります。
$$ V_0 = Ri(t) + v_C(t) $$
ここで、コンデンサの電流は $i(t) = C \dfrac{dv_C}{dt}$ ですから、これを代入すると次の1階線形常微分方程式が得られます。
$$ V_0 = RC\frac{dv_C}{dt} + v_C(t) $$
解の導出
この微分方程式を解きます。まず、$v_C$ について整理して標準形にします。
$$ \frac{dv_C}{dt} + \frac{1}{RC}v_C = \frac{V_0}{RC} $$
ここで $\tau = RC$ と定義すると、見通しが良くなります。
$$ \frac{dv_C}{dt} + \frac{1}{\tau}v_C = \frac{V_0}{\tau} $$
この方程式は1階線形ODEの標準的な形です。斉次方程式の解は $v_C^{(h)} = Ae^{-t/\tau}$、特殊解(定常解)は $v_C^{(p)} = V_0$ です。したがって、一般解は次のようになります。
$$ v_C(t) = V_0 + Ae^{-t/\tau} $$
初期条件 $v_C(0) = 0$(コンデンサは完全に放電された状態)を適用して定数 $A$ を決定します。$t = 0$ を代入すると $0 = V_0 + A$ より $A = -V_0$ です。
$$ \boxed{v_C(t) = V_0\left(1 – e^{-t/\tau}\right), \quad \tau = RC} $$
時定数の定量的な意味
得られた解から、時定数 $\tau$ の定量的な意味を読み取ってみましょう。
$t = \tau$ のとき、$v_C(\tau) = V_0(1 – e^{-1}) \approx 0.632 V_0$ です。つまり、時定数は最終値の約63.2%に達するまでの時間です。
また、 $t = 5\tau$ では $v_C(5\tau) = V_0(1 – e^{-5}) \approx 0.993 V_0$ となり、ほぼ最終値に到達します。工学的には「$5\tau$ で過渡応答はほぼ終了」と見なされます。
回路の電流 $i(t)$ は次のとおりです。
$$ i(t) = C\frac{dv_C}{dt} = \frac{V_0}{R}e^{-t/\tau} $$
電流は $t = 0$ で最大値 $V_0/R$ を取り、指数的に減衰してゼロに向かいます。これはスポンジのアナロジーと合致しています。最初は勢いよく「吸い込み」、時間が経つにつれて「吸い込み速度」が落ちていきます。
RC回路は抵抗とコンデンサの2要素しか含まないため、応答は単純な指数関数になります。では、抵抗とインダクタの組み合わせではどうなるでしょうか。
RL回路の過渡応答
インダクタの「慣性」
RC回路のコンデンサが「電圧を溜めるバケツ」だとすれば、インダクタは「電流の慣性(フライホイール)」です。回転しているフライホイールを急に止めようとしても、慣性で回り続けるように、インダクタに流れる電流も急には変わりません。この「電流の変わりにくさ」がインダクタンス $L$ の本質です。
微分方程式と解
抵抗 $R$ とインダクタ $L$ が直列に接続された回路に、ステップ電圧 $V_0$ を印加します。KVLを適用します。
$$ V_0 = Ri(t) + L\frac{di}{dt} $$
$i$ について整理します。
$$ \frac{di}{dt} + \frac{R}{L}i = \frac{V_0}{L} $$
ここで $\tau = L/R$ と定義すると、RC回路と全く同じ形式になります。
$$ \frac{di}{dt} + \frac{1}{\tau}i = \frac{V_0}{L} $$
初期条件 $i(0) = 0$(インダクタの電流は急には変われない)の下で解くと、次の解が得られます。
$$ \boxed{i(t) = \frac{V_0}{R}\left(1 – e^{-t/\tau}\right), \quad \tau = \frac{L}{R}} $$
RC回路との対称性
ここで注目すべきは、RC回路とRL回路の数学的な対称性です。
| 特性 | RC回路 | RL回路 |
|---|---|---|
| 観測量 | コンデンサ電圧 $v_C(t)$ | インダクタ電流 $i(t)$ |
| 最終値 | $V_0$ | $V_0/R$ |
| 時定数 | $\tau = RC$ | $\tau = L/R$ |
| 応答形 | $1 – e^{-t/\tau}$ | $1 – e^{-t/\tau}$ |
どちらも「最終値へ指数関数的に近づく」という同じ構造を持ちます。これは偶然ではなく、どちらの回路も1つのエネルギー蓄積要素(CまたはL)を含む1階系であるため、応答は必ず単一の指数関数になるのです。
インダクタ両端の電圧は次のとおりです。
$$ v_L(t) = L\frac{di}{dt} = V_0 e^{-t/\tau} $$
$t = 0$ の瞬間、インダクタの電圧は $V_0$ です。これは「電流がまだゼロなので、抵抗での電圧降下もゼロ、したがって電源電圧の全てがインダクタにかかる」と解釈できます。
RC回路とRL回路はどちらも1階の微分方程式で記述され、振動が生じることはありません。では、コンデンサとインダクタの両方を含むRLC回路ではどうなるでしょうか。2つのエネルギー蓄積要素が存在することで、質的に新しい現象 — 振動 — が出現します。
RLC直列回路の微分方程式
回路方程式の立式
ここからが本記事の核心です。抵抗 $R$、インダクタ $L$、キャパシタ $C$ が直列に接続された回路に、時刻 $t = 0$ でステップ電圧 $V_0$ を印加します。初期条件として $v_C(0) = 0$, $i(0) = 0$ とします。
KVLを適用すると、回路の一巡で電圧降下の和が電源電圧と等しいことから次の式が得られます。
$$ V_0 = L\frac{di}{dt} + Ri + v_C $$
ここで $i = C\dfrac{dv_C}{dt}$ を代入し、$v_C$ の微分方程式に統一します。
$$ V_0 = LC\frac{d^2 v_C}{dt^2} + RC\frac{dv_C}{dt} + v_C $$
両辺を $LC$ で割って標準形に整理します。
$$ \frac{d^2 v_C}{dt^2} + \frac{R}{L}\frac{dv_C}{dt} + \frac{1}{LC}v_C = \frac{V_0}{LC} $$
重要なパラメータの定義
この2階線形ODEを特徴づける2つの基本パラメータを定義します。
減衰定数(damping coefficient):
$$ \alpha = \frac{R}{2L} $$
固有角周波数(natural angular frequency):
$$ \omega_0 = \frac{1}{\sqrt{LC}} $$
これらを使うと、微分方程式は次のように書けます。
$$ \boxed{\frac{d^2 v_C}{dt^2} + 2\alpha\frac{dv_C}{dt} + \omega_0^2 v_C = \omega_0^2 V_0} $$
この形は、機械振動における「質量 $m$ のバネ・ダンパ系」と全く同じ数学的構造を持ちます。
| 機械系 | 電気系 |
|---|---|
| 変位 $x$ | コンデンサ電圧 $v_C$ |
| 質量 $m$ | インダクタンス $L$ |
| ダンパ係数 $c$ | 抵抗 $R$ |
| バネ定数 $k$ | $1/C$ |
| 外力 $F$ | 電圧源 $V_0$ |
バネ・ダンパ系では、バネがエネルギーを位置エネルギーとして蓄え、質量が運動エネルギーとして蓄えます。同様に、RLC回路ではコンデンサが電場エネルギーを、インダクタが磁場エネルギーを蓄えます。2つのエネルギー蓄積要素の間でエネルギーが行き来することが振動の本質であり、抵抗(ダンパ)がこのエネルギーを熱として散逸させることで振動が減衰していきます。
微分方程式の構造がわかったところで、次にこの方程式の解を求めます。解の形は「特性方程式」の根の種類によって3通りに分かれます。
特性方程式と3つの減衰条件
特性方程式の導出
微分方程式を解くために、まず斉次方程式(右辺をゼロとした式)を考えます。
$$ \frac{d^2 v_C}{dt^2} + 2\alpha\frac{dv_C}{dt} + \omega_0^2 v_C = 0 $$
$v_C = Ae^{st}$ を仮定して代入すると、$Ae^{st}$ で括れて次の特性方程式(characteristic equation)を得ます。
$$ s^2 + 2\alpha s + \omega_0^2 = 0 $$
二次方程式の解の公式を適用します。
$$ s = \frac{-2\alpha \pm \sqrt{4\alpha^2 – 4\omega_0^2}}{2} = -\alpha \pm \sqrt{\alpha^2 – \omega_0^2} $$
ここで、根号の中の符号 $\alpha^2 – \omega_0^2$ が正か零か負かによって、解の性質が根本的に変わります。
3つの場合の分類
判別式 $D = \alpha^2 – \omega_0^2$ の符号に基づいて、以下の3つのケースに分類されます。
| 条件 | 名称 | $\alpha$ と $\omega_0$ の関係 | 回路パラメータの条件 |
|---|---|---|---|
| $\alpha > \omega_0$ | 過減衰(overdamped) | $R > 2\sqrt{L/C}$ | 抵抗が大きい |
| $\alpha = \omega_0$ | 臨界減衰(critically damped) | $R = 2\sqrt{L/C}$ | 境界値 |
| $\alpha < \omega_0$ | 減衰振動(underdamped) | $R < 2\sqrt{L/C}$ | 抵抗が小さい |
直感的に理解すると、抵抗 $R$ はエネルギーを散逸させる「ブレーキ」です。ブレーキが強すぎれば振動せずにゆっくり定常値に向かい(過減衰)、ブレーキが弱ければエネルギーが行き来して振動します(減衰振動)。その境界が臨界減衰です。
以下、各ケースについて解を丁寧に導出していきます。
過減衰(Overdamped): $\alpha > \omega_0$
解の導出
$\alpha^2 – \omega_0^2 > 0$ なので、特性方程式の2根は異なる実数になります。
$$ s_1 = -\alpha + \sqrt{\alpha^2 – \omega_0^2}, \quad s_2 = -\alpha – \sqrt{\alpha^2 – \omega_0^2} $$
$\alpha > 0$ かつ $\sqrt{\alpha^2 – \omega_0^2} < \alpha$ であるため、$s_1 < 0$ かつ $s_2 < 0$ です。どちらの根も負なので、解は振動せずに減衰します。
斉次方程式の一般解は次のとおりです。
$$ v_C^{(h)}(t) = A_1 e^{s_1 t} + A_2 e^{s_2 t} $$
非斉次方程式の特殊解(定常解)は $v_C^{(p)} = V_0$ です。$v_C = V_0$ を微分方程式に代入すれば $\omega_0^2 V_0 = \omega_0^2 V_0$ となり、確かに成立します。
したがって、完全解は次のようになります。
$$ v_C(t) = V_0 + A_1 e^{s_1 t} + A_2 e^{s_2 t} $$
初期条件の適用
初期条件 $v_C(0) = 0$, $\dfrac{dv_C}{dt}(0) = \dfrac{i(0)}{C} = 0$ を適用して、$A_1, A_2$ を決定します。
$t = 0$ を代入すると第1の条件式が得られます。
$$ 0 = V_0 + A_1 + A_2 \quad \Longrightarrow \quad A_1 + A_2 = -V_0 \tag{1} $$
$v_C(t)$ を時間微分して $t = 0$ の条件を適用します。
$$ \frac{dv_C}{dt} = A_1 s_1 e^{s_1 t} + A_2 s_2 e^{s_2 t} $$
$t = 0$ を代入すると $e^{s_1 \cdot 0} = e^{s_2 \cdot 0} = 1$ なので、第2の条件式が得られます。
$$ 0 = A_1 s_1 + A_2 s_2 \tag{2} $$
式(2)から $A_1 = -A_2 s_2 / s_1$ を求め、これを式(1)に代入します。
$$ -\frac{A_2 s_2}{s_1} + A_2 = -V_0 $$
$A_2$ について共通因子でくくります。
$$ A_2\left(1 – \frac{s_2}{s_1}\right) = -V_0 $$
左辺の括弧内を通分すると $(s_1 – s_2)/s_1$ となるので、次のように整理できます。
$$ A_2 \cdot \frac{s_1 – s_2}{s_1} = -V_0 $$
両辺に $s_1/(s_1 – s_2)$ を掛けて $A_2$ について解くと、次の結果を得ます。
$$ A_2 = \frac{-V_0 s_1}{s_1 – s_2} $$
同様に $A_1$ は次のようになります。
$$ A_1 = \frac{V_0 s_2}{s_1 – s_2} $$
$s_1 – s_2 = 2\sqrt{\alpha^2 – \omega_0^2}$ を代入して最終結果を整理します。
$$ \boxed{v_C(t) = V_0\left(1 + \frac{s_2 e^{s_1 t} – s_1 e^{s_2 t}}{s_1 – s_2}\right)} $$
物理的解釈
過減衰の応答は、2つの異なる時定数 $\tau_1 = -1/s_1$ と $\tau_2 = -1/s_2$ を持つ指数関数の重ね合わせです。大きい方の時定数(遅い成分)が応答の全体的な速さを支配します。抵抗が大きすぎるためにエネルギーの行き来(振動)が起こる前に散逸してしまう状態です。
ドアのダンパでたとえれば、ダンパのオイルが非常に粘稠な場合にドアがゆっくりとしか閉まらない状態が過減衰に相当します。
振動しないのは安全ですが、定常値に達するまでに時間がかかるのが欠点です。では、「ちょうどギリギリ振動しない」条件で最も速く定常値に達するケースを見てみましょう。
臨界減衰(Critically Damped): $\alpha = \omega_0$
解の導出
$\alpha = \omega_0$ のとき、特性方程式は重根を持ちます。
$$ s_1 = s_2 = -\alpha $$
重根の場合、$e^{-\alpha t}$ だけでは2つの自由定数を持てないため、もう一つの独立解として $te^{-\alpha t}$ を採用します。これは2階線形ODEにおける重根の標準的な取り扱いです。
斉次方程式の一般解は次のとおりです。
$$ v_C^{(h)}(t) = (A_1 + A_2 t)e^{-\alpha t} $$
特殊解 $V_0$ を加えた完全解は次のようになります。
$$ v_C(t) = V_0 + (A_1 + A_2 t)e^{-\alpha t} $$
初期条件 $v_C(0) = 0$ から第1の条件式を得ます。
$$ 0 = V_0 + A_1 \quad \Longrightarrow \quad A_1 = -V_0 $$
次に時間微分を計算します。積の微分則を適用します。
$$ \frac{dv_C}{dt} = A_2 e^{-\alpha t} + (A_1 + A_2 t)(-\alpha)e^{-\alpha t} $$
$t = 0$ で $\dfrac{dv_C}{dt}(0) = 0$ を適用します。
$$ 0 = A_2 + A_1(-\alpha) = A_2 + \alpha V_0 $$
$A_2$ について解くと、次のようになります。
$$ A_2 = -\alpha V_0 $$
したがって、臨界減衰の解は次のとおりです。
$$ \boxed{v_C(t) = V_0\left[1 – (1 + \alpha t)e^{-\alpha t}\right], \quad \alpha = \omega_0 = \frac{1}{\sqrt{LC}}} $$
物理的解釈
臨界減衰は、振動せずに最も速く定常値に到達する応答です。$(1 + \alpha t)$ という1次関数が $e^{-\alpha t}$ と掛け合わさる形になっています。この $t$ の1次項のおかげで、$t$ が小さいうちは「追い上げ」が効き、純粋な指数関数よりも素早く定常値に近づきます。
これは「ドアクローザーの最適調整」にたとえられます。ドアが振動せず、かつ最も速く閉まるように調整された状態が臨界減衰です。実際のドアクローザーや、計測器のメーターの指針の応答は、臨界減衰付近に設計されていることが多いです。
$\alpha = \omega_0$、すなわち $R = 2\sqrt{L/C}$ という条件は、回路パラメータの特定の1点でのみ成立します。少しでも $R$ が小さくなれば振動が生じます。では、その「振動する場合」を見てみましょう。
減衰振動(Underdamped): $\alpha < \omega_0$
解の導出
$\alpha^2 – \omega_0^2 < 0$ なので、根号の中が負になります。ここで減衰固有角周波数 $\omega_d$ を定義します。
$$ \omega_d = \sqrt{\omega_0^2 – \alpha^2} $$
特性方程式の根は複素共役になります。
$$ s_{1,2} = -\alpha \pm j\omega_d $$
ここで $j$ は虚数単位です。斉次方程式の一般解は、オイラーの公式 $e^{j\theta} = \cos\theta + j\sin\theta$ を使って実数の形に書き直すことができます。
$$ v_C^{(h)}(t) = e^{-\alpha t}(B_1 \cos\omega_d t + B_2 \sin\omega_d t) $$
特殊解 $V_0$ を加えた完全解は次のとおりです。
$$ v_C(t) = V_0 + e^{-\alpha t}(B_1 \cos\omega_d t + B_2 \sin\omega_d t) $$
初期条件 $v_C(0) = 0$ を適用すると、$e^0 = 1$, $\cos 0 = 1$, $\sin 0 = 0$ より次の式が得られます。
$$ 0 = V_0 + B_1 \quad \Longrightarrow \quad B_1 = -V_0 $$
時間微分を計算します。積の微分則とチェインルールを丁寧に適用します。
$$ \frac{dv_C}{dt} = -\alpha e^{-\alpha t}(B_1\cos\omega_d t + B_2\sin\omega_d t) + e^{-\alpha t}(-B_1\omega_d\sin\omega_d t + B_2\omega_d\cos\omega_d t) $$
$t = 0$ で $\dfrac{dv_C}{dt}(0) = 0$ を適用します。
$$ 0 = -\alpha B_1 + B_2 \omega_d = \alpha V_0 + B_2 \omega_d $$
$B_1 = -V_0$ を代入して $B_2$ について解くと、次の結果が得られます。
$$ B_2 = -\frac{\alpha V_0}{\omega_d} $$
これらを代入して整理します。$B_1$ と $B_2$ を代入した解を書き下します。
$$ v_C(t) = V_0 – V_0 e^{-\alpha t}\left(\cos\omega_d t + \frac{\alpha}{\omega_d}\sin\omega_d t\right) $$
さらに、三角関数の合成公式を用いると、括弧内をひとつの正弦波にまとめることができます。$A\cos\theta + B\sin\theta = \sqrt{A^2 + B^2}\cos(\theta – \phi)$ で $\phi = \arctan(B/A)$ です。
$$ \cos\omega_d t + \frac{\alpha}{\omega_d}\sin\omega_d t = \frac{\omega_0}{\omega_d}\cos(\omega_d t – \phi) $$
ここで $\phi = \arctan(\alpha/\omega_d)$ です。$\sqrt{1 + \alpha^2/\omega_d^2} = \sqrt{(\omega_d^2 + \alpha^2)/\omega_d^2} = \omega_0/\omega_d$ を使いました。
最終的に、減衰振動の解は次のように書けます。
$$ \boxed{v_C(t) = V_0\left[1 – \frac{\omega_0}{\omega_d}e^{-\alpha t}\cos(\omega_d t – \phi)\right], \quad \phi = \arctan\frac{\alpha}{\omega_d}} $$
物理的解釈
この解の構造を読み解きましょう。
- 定常値 $V_0$: $t \to \infty$ で $e^{-\alpha t} \to 0$ となるため、$v_C \to V_0$ に収束します
- 指数減衰 $e^{-\alpha t}$: 振動の包絡線(エンベロープ)を形成します。$\alpha$ が大きいほど速く減衰します
- 振動 $\cos(\omega_d t – \phi)$: 減衰固有角周波数 $\omega_d$ で振動します。$\omega_d < \omega_0$ であることに注意してください。減衰があると、振動周波数は無減衰の場合 $\omega_0$ よりも低くなります
- 振幅 $\omega_0/\omega_d$: 初期オーバーシュートの大きさに関係します。$\alpha$ が小さい($\omega_d \approx \omega_0$)ほど $\omega_0/\omega_d \approx 1$ に近づきます
ブランコを想像してみてください。空気抵抗(減衰)が小さいブランコは長い時間揺れ続けます。一方、泥の中でブランコを漕ぐと(減衰が大きい)、すぐに揺れが収まります。RLC回路の減衰振動も全く同じメカニズムで、コンデンサとインダクタの間でエネルギーが行き来しながら、抵抗によってエネルギーが熱として失われていきます。
3つの減衰条件の解がすべて揃いました。ここで、これらの解を統一的に理解するために、減衰定数、固有角周波数、そしてQ値の関係を整理しておきましょう。
減衰定数、固有角周波数、Q値の関係
Q値の定義と直感的意味
Q値(Quality Factor)は、回路のエネルギー損失に対するエネルギー蓄積の比を表す無次元量です。
$$ \boxed{Q = \frac{\omega_0}{2\alpha} = \frac{1}{R}\sqrt{\frac{L}{C}}} $$
Q値の直感的な意味は「エネルギーがどれだけ行き来できるか」です。Q値が高い回路は、エネルギーを蓄えて長時間振動を維持できます。逆に、Q値が低い回路では、エネルギーがすぐに散逸してしまいます。
振り子時計をイメージしてください。高品質な振り子時計は空気抵抗やベアリングの摩擦を極力減らし、わずかなエネルギー供給で長時間振動を続けます。これがQ値の高い状態です。
Q値と3つの減衰条件の対応
Q値を使うと、3つの減衰条件は次のようにシンプルに分類できます。
| Q値の範囲 | 減衰条件 | 特性 |
|---|---|---|
| $Q < 1/2$ | 過減衰 | 振動なし、ゆっくり収束 |
| $Q = 1/2$ | 臨界減衰 | 振動なし、最速収束 |
| $Q > 1/2$ | 減衰振動 | 振動しながら収束 |
これは $\alpha = \omega_0/(2Q)$ と書き換えれば明らかです。$Q = 1/2$ が臨界条件 $\alpha = \omega_0$ に対応します。
Q値と減衰固有角周波数の関係
減衰振動の場合($Q > 1/2$)、減衰固有角周波数 $\omega_d$ はQ値を用いて次のように表せます。
$$ \omega_d = \omega_0\sqrt{1 – \frac{1}{4Q^2}} $$
Q値が高いほど $\omega_d \approx \omega_0$ となり、ほぼ固有周波数で振動します。Q値が $1/2$ に近づくと $\omega_d \to 0$ となり、振動成分が消えます。
Q値とオーバーシュート
ステップ応答における最初のピーク値(オーバーシュート)もQ値と関連しています。減衰振動の場合、オーバーシュートの比率 $M_p$(最終値からのパーセント超過)は次のように表されます。
$$ M_p = e^{-\pi\alpha/\omega_d} = e^{-\pi/\sqrt{4Q^2 – 1}} $$
この式から、Q値が高い($Q \gg 1$)ほど $M_p \to e^0 = 1$、すなわち100%に近いオーバーシュートが生じることがわかります。一方、$Q$ が $1/2$ に近づくとオーバーシュートは消えていきます。
例えば、$Q = 1$ のとき $M_p = e^{-\pi/\sqrt{3}} \approx 0.163$(約16.3%のオーバーシュート)、$Q = 5$ のとき $M_p \approx 0.727$(約72.7%のオーバーシュート)です。電源回路の設計では、オーバーシュートが大きすぎると素子の絶対最大定格を超えてしまう可能性があるため、Q値の適切な選択が重要です。
整定時間
整定時間(settling time)は、応答が最終値の一定範囲(通常2%または5%)に収まるまでの時間です。指数減衰の包絡線 $e^{-\alpha t}$ が支配的であるため、2%整定時間は概算で次のようになります。
$$ t_s \approx \frac{4}{\alpha} = \frac{8Q}{\omega_0} \quad (2\% \text{ criterion}) $$
Q値が高いほど整定時間が長くなります。つまり、Q値が高い回路は鋭い共振特性を持つ反面、過渡応答が収束するまでに時間がかかるというトレードオフがあります。
ここまで直列RLC回路の解析を行ってきました。実際の回路設計では、並列RLC回路もよく使われます。次に、並列回路ではどのような違いが生じるかを見てみましょう。
RLC並列回路の対応
回路方程式
RLC並列回路では、抵抗 $R$、インダクタ $L$、キャパシタ $C$ が並列に接続されます。電流源 $I_0$ のステップ入力を考え、各素子の電圧は共通で $v(t)$ とします。KCLを適用すると、電流源の電流はすべての枝路電流の和と等しいことから次の式が得られます。
$$ I_0 = \frac{v}{R} + \frac{1}{L}\int_0^t v\,d\tau + C\frac{dv}{dt} $$
両辺を時間で微分して積分を消去します。
$$ 0 = \frac{1}{R}\frac{dv}{dt} + \frac{v}{L} + C\frac{d^2 v}{dt^2} $$
$C$ で割って標準形に整理します。
$$ \frac{d^2 v}{dt^2} + \frac{1}{RC}\frac{dv}{dt} + \frac{1}{LC}v = 0 $$
直列回路との双対性
直列回路と並列回路の微分方程式を並べて比較しましょう。
直列RLC($v_C$ に関する方程式):
$$ \frac{d^2 v_C}{dt^2} + \frac{R}{L}\frac{dv_C}{dt} + \frac{1}{LC}v_C = \frac{V_0}{LC} $$
並列RLC($v$ に関する方程式):
$$ \frac{d^2 v}{dt^2} + \frac{1}{RC}\frac{dv}{dt} + \frac{1}{LC}v = 0 $$
どちらも固有角周波数は同じ $\omega_0 = 1/\sqrt{LC}$ ですが、減衰定数が異なります。
| パラメータ | 直列RLC | 並列RLC |
|---|---|---|
| 減衰定数 $\alpha$ | $R/(2L)$ | $1/(2RC)$ |
| Q値 | $\dfrac{1}{R}\sqrt{L/C}$ | $R\sqrt{C/L}$ |
ここで注目すべきは、直列回路では抵抗が大きいほどQ値が下がる(減衰が強い)のに対し、並列回路では抵抗が大きいほどQ値が上がる(減衰が弱い)という逆の関係です。
この違いは直感的にも理解できます。直列回路では電流が同じ経路を流れるため、抵抗が大きいほどエネルギー散逸が大きくなります。一方、並列回路では抵抗の経路を電流が流れることが散逸の原因ですが、抵抗が大きいとその経路に流れる電流が減り、エネルギー散逸が小さくなるのです。
並列RLC回路の解も、$\alpha$ の定義を変えるだけで直列回路と全く同じ3分類(過減衰、臨界減衰、減衰振動)になります。数学的な構造は完全に同一です。
理論の導出が一通り完了しました。ここからは、Pythonを使って3つの減衰条件を可視化し、理論で得られた結果を実感してみましょう。
Pythonによるステップ応答の可視化
3つの減衰条件の比較
まず、過減衰、臨界減衰、減衰振動の3つのケースのステップ応答を1つのグラフで比較します。共通の $L$ と $C$ を固定し、$R$ の値だけを変えて3つの条件を実現します。
import numpy as np
import matplotlib.pyplot as plt
# 回路パラメータ
L = 1e-3 # 1 mH
C = 1e-6 # 1 uF
V0 = 5.0 # ステップ電圧 5 V
# 固有角周波数と臨界抵抗
omega0 = 1 / np.sqrt(L * C)
R_crit = 2 * np.sqrt(L / C) # 臨界減衰の抵抗値
print(f"固有角周波数 ω₀ = {omega0:.1f} rad/s")
print(f"固有周波数 f₀ = {omega0/(2*np.pi):.1f} Hz")
print(f"臨界抵抗 R_crit = {R_crit:.2f} Ω")
# 3つの抵抗値
R_over = 3.0 * R_crit # 過減衰
R_crit_val = R_crit # 臨界減衰
R_under = 0.15 * R_crit # 減衰振動
t = np.linspace(0, 0.015, 2000)
def step_response_rlc(t, R, L, C, V0):
"""RLC直列回路のステップ応答を計算する"""
alpha = R / (2 * L)
omega0 = 1 / np.sqrt(L * C)
if alpha > omega0 * (1 + 1e-10): # 過減衰
beta = np.sqrt(alpha**2 - omega0**2)
s1 = -alpha + beta
s2 = -alpha - beta
vc = V0 * (1 + (s2 * np.exp(s1 * t) - s1 * np.exp(s2 * t)) / (s1 - s2))
elif abs(alpha - omega0) < omega0 * 1e-10: # 臨界減衰
vc = V0 * (1 - (1 + alpha * t) * np.exp(-alpha * t))
else: # 減衰振動
omega_d = np.sqrt(omega0**2 - alpha**2)
vc = V0 * (1 - np.exp(-alpha * t) * (
np.cos(omega_d * t) + (alpha / omega_d) * np.sin(omega_d * t)))
return vc
# 応答を計算
vc_over = step_response_rlc(t, R_over, L, C, V0)
vc_crit = step_response_rlc(t, R_crit_val, L, C, V0)
vc_under = step_response_rlc(t, R_under, L, C, V0)
# Q値を計算
Q_over = (1 / R_over) * np.sqrt(L / C)
Q_crit = (1 / R_crit_val) * np.sqrt(L / C)
Q_under = (1 / R_under) * np.sqrt(L / C)
# プロット
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(t * 1e3, vc_over, 'b-', linewidth=2,
label=f'Overdamped (R={R_over:.1f}Ω, Q={Q_over:.2f})')
ax.plot(t * 1e3, vc_crit, 'g-', linewidth=2,
label=f'Critically damped (R={R_crit_val:.1f}Ω, Q={Q_crit:.2f})')
ax.plot(t * 1e3, vc_under, 'r-', linewidth=2,
label=f'Underdamped (R={R_under:.1f}Ω, Q={Q_under:.2f})')
ax.axhline(y=V0, color='k', linestyle='--', alpha=0.3, label=f'Steady state ({V0} V)')
ax.set_xlabel('Time [ms]', fontsize=12)
ax.set_ylabel('Capacitor Voltage $v_C$ [V]', fontsize=12)
ax.set_title('Step Response of Series RLC Circuit', fontsize=14)
ax.legend(fontsize=10, loc='lower right')
ax.grid(True, alpha=0.3)
ax.set_xlim(0, t[-1] * 1e3)
ax.set_ylim(-1, 10)
plt.tight_layout()
plt.savefig('rlc_step_response_comparison.png', dpi=150, bbox_inches='tight')
plt.show()
このグラフから、3つの減衰条件の本質的な違いが視覚的に確認できます。
- 過減衰(青線): 振動せずに定常値に向かいますが、立ち上がりが非常に遅いことが見て取れます。Q値が $0.5$ より小さいため、エネルギーの散逸が支配的で振動が起こりません
- 臨界減衰(緑線): 振動なしで最も速く定常値に到達しています。これが「最適なブレーキ」に相当する応答です。Q値はちょうど $0.5$ です
- 減衰振動(赤線): 定常値を超えて振動(オーバーシュート)してから収束します。Q値が高い($Q > 0.5$)ため、コンデンサとインダクタの間でエネルギーの受け渡しが何度も起こります
理論で予測した通り、$R$ の値(すなわちQ値)によって応答の性質が根本的に変わることが確認できました。臨界減衰が「最速の非振動応答」であることは、緑線が青線よりも常に先に定常値に近づいていることからも明瞭です。
Q値による応答変化の系統的な可視化
次に、Q値を系統的に変化させたときの減衰振動の振る舞いを詳しく観察します。
import numpy as np
import matplotlib.pyplot as plt
# 回路パラメータ
L = 1e-3 # 1 mH
C = 1e-6 # 1 uF
V0 = 5.0 # 5 V
omega0 = 1 / np.sqrt(L * C)
# 様々なQ値
Q_values = [0.5, 1.0, 2.0, 5.0, 10.0]
colors = ['#2ecc71', '#3498db', '#e67e22', '#e74c3c', '#9b59b6']
t = np.linspace(0, 0.02, 3000)
fig, axes = plt.subplots(2, 1, figsize=(10, 10))
# 上段: ステップ応答
ax1 = axes[0]
for Q, color in zip(Q_values, colors):
R = (1 / Q) * np.sqrt(L / C)
vc = step_response_rlc(t, R, L, C, V0)
ax1.plot(t * 1e3, vc, color=color, linewidth=2, label=f'Q = {Q}')
ax1.axhline(y=V0, color='k', linestyle='--', alpha=0.3)
ax1.set_xlabel('Time [ms]', fontsize=12)
ax1.set_ylabel('Capacitor Voltage $v_C$ [V]', fontsize=12)
ax1.set_title('Step Response for Various Q Values', fontsize=14)
ax1.legend(fontsize=10)
ax1.grid(True, alpha=0.3)
ax1.set_xlim(0, 20)
ax1.set_ylim(-2, 12)
# 下段: Q値とオーバーシュートの関係
ax2 = axes[1]
Q_range = np.linspace(0.5, 20, 500)
overshoot = np.zeros_like(Q_range)
for i, Q in enumerate(Q_range):
if Q > 0.5:
zeta = 1 / (2 * Q) # 減衰比
overshoot[i] = np.exp(-np.pi * zeta / np.sqrt(1 - zeta**2)) * 100
else:
overshoot[i] = 0
ax2.plot(Q_range, overshoot, 'b-', linewidth=2)
ax2.set_xlabel('Q Value', fontsize=12)
ax2.set_ylabel('Overshoot [%]', fontsize=12)
ax2.set_title('Overshoot vs Q Value', fontsize=14)
ax2.grid(True, alpha=0.3)
ax2.set_xlim(0.5, 20)
ax2.set_ylim(0, 100)
# 代表的なQ値のマーカー
for Q, color in zip(Q_values, colors):
if Q > 0.5:
zeta = 1 / (2 * Q)
mp = np.exp(-np.pi * zeta / np.sqrt(1 - zeta**2)) * 100
ax2.plot(Q, mp, 'o', color=color, markersize=8, zorder=5)
ax2.annotate(f'Q={Q}\n{mp:.1f}%', (Q, mp),
textcoords="offset points", xytext=(10, 5), fontsize=9)
plt.tight_layout()
plt.savefig('rlc_q_value_analysis.png', dpi=150, bbox_inches='tight')
plt.show()
上段のグラフから、Q値が過渡応答に与える影響が明確に読み取れます。
- Q = 0.5(臨界減衰): 振動せずに最も速く定常値に到達します。オーバーシュートはゼロです
- Q = 1: わずかに定常値を超えた後、素早く収束します。約16%のオーバーシュートが生じています
- Q = 2: はっきりとした振動が見え始め、2回ほどの振動の後に収束します
- Q = 5: 大きなオーバーシュートと何回もの振動が観察されます。整定時間もかなり長くなっています
- Q = 10: 非常に大きなオーバーシュート(約85%)と長い振動が続きます。定常値に達するまでに多くの周期を要します
下段のグラフでは、Q値とオーバーシュートの関係が単調増加であることが確認できます。Q値が大きくなるにつれてオーバーシュートは100%(定常値の2倍)に漸近していきます。実用的なフィルタ設計では、通常 $Q = 0.707$(バターワース特性)程度が用いられ、約4.3%のオーバーシュートで平坦な振幅特性を実現します。
減衰振動の包絡線と減衰固有周波数の可視化
減衰振動の解の構造をさらに深く理解するために、包絡線(エンベロープ)と振動を分離して可視化します。
import numpy as np
import matplotlib.pyplot as plt
# 回路パラメータ(減衰振動の条件)
L = 1e-3
C = 1e-6
V0 = 5.0
Q = 5.0 # 高いQ値で振動を明確に見せる
omega0 = 1 / np.sqrt(L * C)
R = (1 / Q) * np.sqrt(L / C)
alpha = R / (2 * L)
omega_d = np.sqrt(omega0**2 - alpha**2)
print(f"R = {R:.3f} Ω")
print(f"α = {alpha:.1f} rad/s (減衰定数)")
print(f"ω₀ = {omega0:.1f} rad/s (固有角周波数)")
print(f"ω_d = {omega_d:.1f} rad/s (減衰固有角周波数)")
print(f"ω_d/ω₀ = {omega_d/omega0:.4f}")
print(f"減衰振動の周期 T_d = {2*np.pi/omega_d*1e3:.3f} ms")
t = np.linspace(0, 0.02, 3000)
# ステップ応答
vc = step_response_rlc(t, R, L, C, V0)
# 包絡線(エンベロープ)
amp = (omega0 / omega_d) * V0
upper_env = V0 + amp * np.exp(-alpha * t)
lower_env = V0 - amp * np.exp(-alpha * t)
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(t * 1e3, vc, 'b-', linewidth=2, label='$v_C(t)$')
ax.plot(t * 1e3, upper_env, 'r--', linewidth=1.5, alpha=0.7,
label=f'Envelope: $V_0 \\pm \\frac{{\\omega_0}}{{\\omega_d}} V_0 e^{{-\\alpha t}}$')
ax.plot(t * 1e3, lower_env, 'r--', linewidth=1.5, alpha=0.7)
ax.axhline(y=V0, color='k', linestyle='--', alpha=0.3, label=f'Steady state ({V0} V)')
ax.fill_between(t * 1e3, lower_env, upper_env, alpha=0.08, color='red')
# 時定数の位置
tau = 1 / alpha
ax.axvline(x=tau * 1e3, color='green', linestyle=':', alpha=0.5)
ax.annotate(f'τ = 1/α = {tau*1e3:.2f} ms',
xy=(tau * 1e3, 9), fontsize=10, color='green',
ha='left', va='bottom')
ax.set_xlabel('Time [ms]', fontsize=12)
ax.set_ylabel('Capacitor Voltage $v_C$ [V]', fontsize=12)
ax.set_title(f'Underdamped Response with Envelope (Q = {Q})', fontsize=14)
ax.legend(fontsize=10, loc='upper right')
ax.grid(True, alpha=0.3)
ax.set_xlim(0, 20)
plt.tight_layout()
plt.savefig('rlc_envelope.png', dpi=150, bbox_inches='tight')
plt.show()
このグラフから、減衰振動の解の2つの成分が視覚的に分離されて見えます。
- 包絡線(赤い破線): $e^{-\alpha t}$ で決まる指数関数的な減衰を示しています。時定数 $\tau = 1/\alpha$ を過ぎると包絡線の幅は $1/e \approx 37\%$ に縮小し、振動の「揺れ幅」が顕著に小さくなっていることが確認できます
- 振動成分(青い実線): 減衰固有角周波数 $\omega_d$ で振動しています。$Q = 5$ の場合、$\omega_d / \omega_0 \approx 0.9975$ であり、ほとんど固有周波数と同じです。Q値が高いほど減衰の影響が振動周波数に与える影響は小さくなることが数値的にも確認できました
理論式で導出した $\omega_0/\omega_d$ の振幅係数が初期の包絡線の大きさを正しく再現していることも、グラフから読み取れます。
電流応答の可視化
電圧だけでなく、回路の電流の過渡応答も合わせて観察しましょう。
import numpy as np
import matplotlib.pyplot as plt
L = 1e-3
C = 1e-6
V0 = 5.0
omega0 = 1 / np.sqrt(L * C)
# 3つの条件
configs = [
{'label': 'Overdamped (Q=0.2)', 'Q': 0.2, 'color': '#3498db'},
{'label': 'Critically damped (Q=0.5)', 'Q': 0.5, 'color': '#2ecc71'},
{'label': 'Underdamped (Q=3)', 'Q': 3.0, 'color': '#e74c3c'},
]
t = np.linspace(0, 0.015, 3000)
dt = t[1] - t[0]
fig, axes = plt.subplots(2, 1, figsize=(10, 8), sharex=True)
for cfg in configs:
Q = cfg['Q']
R = (1 / Q) * np.sqrt(L / C)
vc = step_response_rlc(t, R, L, C, V0)
# 電流 i(t) = C * dv_C/dt を数値微分で計算
i_t = C * np.gradient(vc, dt)
axes[0].plot(t * 1e3, vc, color=cfg['color'], linewidth=2, label=cfg['label'])
axes[1].plot(t * 1e3, i_t * 1e3, color=cfg['color'], linewidth=2, label=cfg['label'])
axes[0].axhline(y=V0, color='k', linestyle='--', alpha=0.3)
axes[0].set_ylabel('$v_C$ [V]', fontsize=12)
axes[0].set_title('Capacitor Voltage and Circuit Current', fontsize=14)
axes[0].legend(fontsize=9)
axes[0].grid(True, alpha=0.3)
axes[1].axhline(y=0, color='k', linestyle='--', alpha=0.3)
axes[1].set_xlabel('Time [ms]', fontsize=12)
axes[1].set_ylabel('Current $i$ [mA]', fontsize=12)
axes[1].legend(fontsize=9)
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('rlc_voltage_current.png', dpi=150, bbox_inches='tight')
plt.show()
上段のコンデンサ電圧と下段の回路電流を見比べると、次のことがわかります。
- 過減衰(青線): 電流は $t = 0$ から穏やかに立ち上がり、単一のピークを経てゆっくりゼロに向かいます。電圧の変化率が小さいため、電流も小さく抑えられています
- 臨界減衰(緑線): 電流は最も効率よくピークに達した後、素早く減衰します。電圧が振動なしで最速収束するため、電流の「無駄な往復」がありません
- 減衰振動(赤線): 電流が正負に振動しています。これはコンデンサとインダクタの間でエネルギーが行き来している(充放電が繰り返されている)ことを意味します。電流がゼロを横切るたびに、エネルギーの授受の方向が反転します
電流の振動は、コンデンサに蓄えられた電場エネルギー $\frac{1}{2}Cv_C^2$ とインダクタに蓄えられた磁場エネルギー $\frac{1}{2}Li^2$ がシーソーのように交互に変化することに対応しています。
数値解法による検証
最後に、理論解の正しさをSciPyのODEソルバーによる数値解と比較して検証します。
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp
L = 1e-3
C = 1e-6
V0 = 5.0
Q = 3.0
R = (1 / Q) * np.sqrt(L / C)
omega0 = 1 / np.sqrt(L * C)
alpha = R / (2 * L)
def rlc_ode(t, y):
"""RLC直列回路のODE: y = [v_C, dv_C/dt]"""
vc, dvc_dt = y
d2vc_dt2 = -2 * alpha * dvc_dt - omega0**2 * vc + omega0**2 * V0
return [dvc_dt, d2vc_dt2]
# 数値解
t_span = (0, 0.015)
t_eval = np.linspace(*t_span, 2000)
sol = solve_ivp(rlc_ode, t_span, [0, 0], t_eval=t_eval, method='RK45',
rtol=1e-10, atol=1e-12)
# 解析解
vc_analytical = step_response_rlc(t_eval, R, L, C, V0)
fig, axes = plt.subplots(2, 1, figsize=(10, 7), gridspec_kw={'height_ratios': [3, 1]})
# 上段: 解の比較
axes[0].plot(sol.t * 1e3, sol.y[0], 'b-', linewidth=2, label='Numerical (RK45)')
axes[0].plot(t_eval * 1e3, vc_analytical, 'r--', linewidth=2, label='Analytical')
axes[0].set_ylabel('$v_C$ [V]', fontsize=12)
axes[0].set_title(f'Verification: Analytical vs Numerical (Q = {Q})', fontsize=14)
axes[0].legend(fontsize=10)
axes[0].grid(True, alpha=0.3)
# 下段: 誤差
error = sol.y[0] - vc_analytical
axes[1].plot(t_eval * 1e3, error * 1e6, 'k-', linewidth=1)
axes[1].set_xlabel('Time [ms]', fontsize=12)
axes[1].set_ylabel('Error [μV]', fontsize=12)
axes[1].set_title('Absolute Error (Numerical - Analytical)', fontsize=11)
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('rlc_verification.png', dpi=150, bbox_inches='tight')
plt.show()
print(f"最大絶対誤差: {np.max(np.abs(error))*1e6:.3f} μV")
print(f"最大相対誤差: {np.max(np.abs(error/vc_analytical[vc_analytical != 0]))*100:.2e} %")
上段のグラフでは、解析解(赤い破線)と数値解(青い実線)が完全に重なっていることが確認できます。下段の誤差プロットを見ると、誤差はマイクロボルト($\mu V$)のオーダーに収まっており、これは数値解法の離散化に起因する微小な差です。このことから、本記事で導出した解析解が正しいことが数値的にも検証されました。
数値解法は解析解が得られない複雑な回路や非線形回路の解析で不可欠なツールですが、今回のようなRLC回路では解析解が存在するため、理論の正確性を確認する強力な手段になります。
数値例: 具体的な回路パラメータでの計算
理論の理解をさらに深めるために、具体的な数値を入れて計算してみましょう。
設定
$L = 10 \, \text{mH}$, $C = 100 \, \text{nF}$, $V_0 = 10 \, \text{V}$ の回路を考えます。
まず、固有角周波数と臨界抵抗を計算します。
$$ \omega_0 = \frac{1}{\sqrt{LC}} = \frac{1}{\sqrt{10 \times 10^{-3} \times 100 \times 10^{-9}}} = \frac{1}{\sqrt{10^{-9}}} = \frac{1}{10^{-4.5}} \approx 31{,}623 \, \text{rad/s} $$
固有角周波数を $2\pi$ で割ると、固有周波数(Hz単位)が求まります。
$$ f_0 = \frac{\omega_0}{2\pi} \approx 5{,}033 \, \text{Hz} $$
次に、臨界減衰条件 $\alpha = \omega_0$ を $R$ について解くと、臨界抵抗が得られます。
$$ R_{\text{crit}} = 2\sqrt{\frac{L}{C}} = 2\sqrt{\frac{10 \times 10^{-3}}{100 \times 10^{-9}}} = 2\sqrt{10^5} = 2 \times 316.2 \approx 632.5 \, \Omega $$
ケース1: $R = 1000 \, \Omega$(過減衰)
$R > R_{\text{crit}}$ なので過減衰です。Q値は次のとおりです。
$$ Q = \frac{1}{R}\sqrt{\frac{L}{C}} = \frac{1}{1000}\sqrt{\frac{10^{-2}}{10^{-7}}} = \frac{1}{1000} \times 316.2 \approx 0.316 $$
減衰定数は $\alpha = R/(2L) = 1000/(2 \times 0.01) = 50{,}000 \, \text{rad/s}$ です。
$5\tau$ で概算した整定時間を見積もります。遅い方の時定数が支配的であるため、次のように計算します。
$$ s_2 = -\alpha – \sqrt{\alpha^2 – \omega_0^2} = -50000 – \sqrt{50000^2 – 31623^2} \approx -50000 – 38730 \approx -88730 $$
$$ s_1 = -50000 + 38730 = -11270 $$
遅い時定数は $\tau_1 = 1/|s_1| \approx 88.7 \, \mu\text{s}$ であり、$5\tau_1 \approx 0.44 \, \text{ms}$ で応答はほぼ定常に達します。
ケース2: $R = 100 \, \Omega$(減衰振動)
$R < R_{\text{crit}}$ なので減衰振動です。
$$ Q = \frac{316.2}{100} \approx 3.16 $$
$$ \alpha = \frac{100}{2 \times 0.01} = 5{,}000 \, \text{rad/s} $$
$$ \omega_d = \sqrt{31623^2 – 5000^2} = \sqrt{10^{9} – 25 \times 10^{6}} \approx 31{,}224 \, \text{rad/s} $$
減衰振動の周期は $T_d = 2\pi/\omega_d \approx 0.201 \, \text{ms}$ です。
オーバーシュートは次のとおりです。
$$ M_p = e^{-\pi \times 5000 / 31224} \approx e^{-0.503} \approx 0.605 $$
つまり、約60.5%のオーバーシュートが生じ、最初のピークは $V_0(1 + 0.605) = 16.05 \, \text{V}$ に達します。$10 \, \text{V}$ のステップ入力に対して $16 \, \text{V}$ 以上のピーク電圧が発生するのです。素子の耐圧設計では、この過渡的なピーク値を考慮する必要があります。
整定時間は $t_s \approx 4/\alpha = 4/5000 = 0.8 \, \text{ms}$ と概算できます。
このように、同じ $L$ と $C$ の組み合わせでも、$R$ の値ひとつで応答特性が劇的に変わることが具体的な数値計算からも確認できました。
まとめ
本記事では、RLC回路の過渡応答について、微分方程式の立式から解の導出、そしてPythonによる可視化まで体系的に解説しました。
- RC回路とRL回路は、1つのエネルギー蓄積要素を含む1階系であり、応答は時定数 $\tau = RC$ または $\tau = L/R$ で特徴づけられる単純な指数関数です
- RLC直列回路は、2つのエネルギー蓄積要素(CとL)を含む2階系であり、特性方程式の判別式に応じて過減衰、臨界減衰、減衰振動の3つの質的に異なる応答を示します
- 減衰定数 $\alpha = R/(2L)$ と固有角周波数 $\omega_0 = 1/\sqrt{LC}$ の大小関係が応答の種類を決定します
- Q値 $Q = \omega_0/(2\alpha) = (1/R)\sqrt{L/C}$ は、応答特性を統一的に記述するパラメータであり、$Q = 1/2$ が臨界減衰の境界です
- RLC並列回路は数学的に直列回路と双対な構造を持ちますが、$R$ の増減がQ値に与える影響が逆転します
- オーバーシュートと整定時間はQ値で定量的に評価でき、回路設計ではこのトレードオフを考慮する必要があります
本記事で扱った過渡応答の理論は、時間領域での解析手法です。次のステップとして、以下の記事も参考にしてください。
- 共振回路(直列共振と並列共振) — 定常状態での周波数応答とQ値の別の側面を解説しています
- ラプラス変換による微分方程式の解法 — 本記事で使った微分方程式をラプラス変換で解く方法を学ぶことで、より複雑な回路や入力波形にも対応できるようになります