インピーダンスの並列合成~導入~

通常の抵抗の並列合成であれば、和分の積(Ra×Rb)/(Ra+Rb)で簡単に求める事ができます。しかし虚数の成分が入ってくるインピーダンスを計算する場合は簡単には行きません。考え方としては和分の積(Za×Zb)/(Za+Zb)で求める事には間違えないのですがこのZaとZbはr+xjと言う虚数の成分を含むため計算が複雑になります。いろいろなサイトや本をみてもZa,Zbの片方が虚数のみの場合、両方が虚数の場合の計算の方法の記載は多くすぐに見つかるのですが両方が実数と虚数を含む場合の計算方法が示されていることは少ないです。そこでZa,Zbともにr+xjの形をとる場合の並列合成の計算の方法を紹介致します。(片方が実数のみの場合にはx=0やr=0とすることでどのパターンにも応用できます。)

インピーダンスの並列合成の計算式EXCELフォーマット

上記のインピーダンスの並列合成の計算式のプログラムをエクセルの標準モジュールへ記入し、関数として使用できるフォーマットは下記よりダウンロードいただけます。

インピーダンスの並列合成の計算式フォーマットダウンロード

インピーダンスの並列合成の計算式フォーマットサンプル画像

抵抗の並列合成の計算式

ここで上記でものべましたが、抵抗の並列合成の計算式を記載しておきます。虚数成分を含むインピーダンスの並列合成の場合にもこの考え方が基本となります。
下記の様にRa[Ω]とRb[Ω]を並列に合成した場合の抵抗Rc[Ω]を求める場合を考えます。

この時に並列合成後の抵抗Rc[Ω]は下記の式で表すことができます。

変数 詳細
Ra 合成される抵抗[Ω]
Rb 合成される抵抗[Ω]
Rc RaとRbを合成した抵抗[Ω]

インピーダンスの並列合成の計算式

上記で抵抗の並列合成の計算が理解できたところで、抵抗の並列合成の場合と同様に考えてゆきます。虚数成分を含むインピーダンスの計算を行う場合も基本的には同様の考え方で下記の様にZa[Ω]とZb[Ω]を並列に合成した場合のインピーダンスZc[Ω]を求める場合を考えます。

この時に並列合成後の抵抗Zc[Ω]は下記の式で表すことができます。

変数 詳細
Za 合成されるインピーダンスRa+Xaj[Ω]
Zb 合成されるインピーダンスRb+Xbj[Ω]
Zc ZaとZbを合成したインピーダンスRc+Xcj [Ω]

インピーダンスの並列合成の複素数計算式

上記の式の「Za」,「Zb」,「Zc」にそれぞれインピーダンスの実数部と虚数部を分けたR+Xjの形へ代入すると、

となります。この式をさらに整理すると、

となります。

ここでこの式の複素数を有利化してゆく必要があるのですが式が非常に複雑になるため、まず下記の様に「A」,「B」,「C」,「D」と置き計算を簡略化します。

この「A」,「B」,「C」,「D」を前述の式に代入すると、

と有利化ができます。
有利化の詳細につきましては複素数の有理化を参照して下さい。

ここで「A」,「B」,「C」,「D」と置き換えた内容をもとの式へ戻してゆきます。それぞれにもとの値を代入すると、

となり、この式を実数成分と虚数成分へ分けると、

となります。

数式が長すぎるので左辺は省略していますが上記の計算で左辺は、

であることから上記の長い式の実数成分がRcとなり虚数成分がXcjとなることがわかります。つまり

の「Rc」と「Xc」は下記となります。

非常に長い式ですが,いずれかのR,Xが0の場合には式が簡略化されます。

インピーダンスの並列合成プログラム

インピーダンスの並列合成の計算を簡単に行うことができる様にコードを作成しましたので参考までに掲載しておきます。

変数 詳細
R1 合成されるインピーダンスの実数部[Ω]
X1 合成されるインピーダンスの虚数部[Ω]
R2 合成されるインピーダンスの実数部[Ω]
X2 合成されるインピーダンスの虚数部[Ω]

※下記のコードで「VB2013」にてインピーダンスの並列合成の実数部の計算を行えます。

Public Function prcombr(R1 As Double, X1 As Double, R2 As Double, X2 As Double) As Double
Dim ba As Double
Dim bb As Double
Dim bc As Double
Dim bd As Double
Dim bf As Double
Dim bg As Double
Dim bi As Double
Dim bj As Double
Dim bk As DoubleIf R1 <= 0 And X1 = 0 And R2 > 0 Then
prcombr = R2
ElseIf R2 <= 0 And X2 = 0 And R1 > 0 Then
prcombr = R1
Else
ba = System.Math.Atan2(X1, R1)
bb = System.Math.Atan2(X2, R2)
bc = Sqr((R1 ^ 2) + (X1 ^ 2))
bd = Sqr((R2 ^ 2) + (X2 ^ 2))
bf = bc * bd * (System.Math.Cos(ba + bb))
bg = bc * bd * (System.Math.Sin(ba + bb))
bi = R1 + R2
bj = X1 + X2
bk = ((bf * bi) + (bg * bj)) / ((bi ^ 2) + (bj ^ 2))
prcombr = bk
End If
End Function

※下記のコードで「VB2013」にてインピーダンスの並列合成の虚数部の計算を行えます。

Public Function prcombx(R1 As Double, X1 As Double, R2 As Double, X2 As Double) As Double
Dim ba As Double
Dim bb As Double
Dim bc As Double
Dim bd As Double
Dim bf As Double
Dim bg As Double
Dim bi As Double
Dim bj As Double
Dim bl As DoubleIf R1 <= 0 And X1 = 0 And X2 <> 0 Then
ElseIf R2 <= 0 And X2 = 0 And X1 <> 0 Then
Else
ba = System.Math.Atan2(X1, R1)
bb = System.Math.Atan2(X2, R2)
bc = Sqr((R1 ^ 2) + (X1 ^ 2))
bd = Sqr((R2 ^ 2) + (X2 ^ 2))
bf = bc * bd * (System.Math.Cos(ba + bb))
bg = bc * bd * (System.Math.Sin(ba + bb))
bi = R1 + R2
bj = X1 + X2
bl = ((bg * bi) – (bf * bj)) / ((bi ^ 2) + (bj ^ 2))
prcombx = bl
End If
End Function

※EXCELの標準モジュールへ下記をコピペしていただくと、エクセルの関数としても利用できます。
実数部の計算関数

Public Function prcombr(R1 As Double, X1 As Double, R2 As Double, X2 As Double) As Double

Dim A As Double
Dim B As Double
Dim C As Double
Dim D As Double

A = (R1 * R2) – (X1 * X2)
B = (R1 * X2) + (R2 * X1)
C = (R1 + R2)
D = (X1 + X2)

If C <= 0 Then prcombr = 0 ElseIf R1 <> 0 And R2 = 0 And X1 = 0 And X2 = 0 Then
prcombr = R1
ElseIf R1 = 0 And R2 <> 0 And X1 = 0 And X2 = 0 Then
prcombr = R1
Else
prcombr = ((A * C) + (B * D)) / ((C ^ 2) + (D ^ 2))
End If

End Function

虚数部の計算関数

Public Function prcombx(R1 As Double, X1 As Double, R2 As Double, X2 As Double) As Double

Dim A As Double
Dim B As Double
Dim C As Double
Dim D As Double

A = (R1 * R2) – (X1 * X2)
B = (R1 * X2) + (R2 * X1)
C = (R1 + R2)
D = (X1 + X2)

If X1 = 0 And X2 = 0 Then
prcombx = 0
ElseIf X1 <> 0 And X2 = 0 And R1 = 0 And R2 = 0 Then
prcombx = R1
ElseIf X1 = 0 And X2 <> 0 And R1 = 0 And R2 = 0 Then
prcombx = R1
Else
prcombx = ((B * C) – (A * D)) / ((C ^ 2) + (D ^ 2))
End If

End Function