2009年9月1日火曜日

PythonでRC回路の過渡解析をしてみる その1 手計算

↓の回路を対象に計算。最終的にはVcの式が知りたい。

ファイル:Series-RC.svg

まずは微分方程式を建てる。

Vc=1/C∫Idt --(1)
I=Vr/R --(2)
Vin-Vc=Vr --(3)
この3つの式をまとめる。
Vcをみたいので、VcとVinの関係式に持ち込むという方針で変形する。
(3)を(2)に代入すると、
I=(Vin-Vc)/R --(3')
(3')を(1)に代入すると
Vc=1/C∫(Vin+Vc)/Rdt
Rは定数なので移動して
Vc=1/(RC)∫(Vin-Vc)dt --(微分方程式)


<初期条件を建てる>
次に初期値を設定。
設定としては、Vinの電圧がVcc→0.0に落ちたということにします。あとは、コンデンサはフルチャージされていることとする。

Vin(-0) = Vcc
Vin(+0) = 0.0
Vc(0)= Vcc(コンデンサには電荷が完全チャージされている状態を想定。)

上で導出した微分方程式を並べる。

Vc=1/(RC)∫(Vin-Vc)dt --(微分方程式)
話が前後しますが、微分方程式を微分形式に直します。両辺を微分すると、

Vc'=1/(RC)(Vin-Vc) --(4)

微分したら積分定数が消える気がするが、積分定数とはすなわち初期条件のことなので(たぶん)OK。

<手計算で解く>
この微分方程式は、非斉次方程式ですので、定数変化法で解きます。

まずは、斉次方程式の一般解を求める。
Vc'=1/(RC)(Vin-Vc)
を斉次化するには
非斉次項Vinを
Vin=0とおけばよいので
Vc'=-1/(RC)Vc --(7)

次に、(5)に初期条件を代入してやると、
Vc(0)=Vcc=A×exp(0)
∴A=Vcc
よって
斉次方程式の一般解=Vcc×exp{-1/(RC)×t} --(8)

(8)より
非斉次方程式の一般解=B(t)×Vcc×exp{-1/(RC)×t}
となっているはずなので、B(t)を求める
初期条件を代入すると、
B(t)=1
となる。よって、

Vc(t)=Vcc×exp{-1/(RC)×t}
となる。
この式は、t=0でVc=Vccとなり、t>0の領域で指数関数的に減少するカーブを描く。
これはコンデンサの放電時の波形。

0 件のコメント:

コメントを投稿