【電気回路】F行列を使用して任意点での電圧を算出

こんにちは。今回は電気回路(高周波)に関する投稿になります。電気・電子分野を専攻している方は行列を一度は習ったことがあるかと思います。私は大学3年の頃に電気回路の座学で学習しました。当時は行列計算のありがたみがわからなかったのですが、実はとても有用であることをつい先日実感しました。

タイトルにもあるとおり、F行列を使用することで、任意交流回路の任意点における電圧・電流を簡単に算出できるのです!シンプルな構成の回路だと暗算で算出した方が早いかもしれませんが、複雑化した回路において、観測したい点の電圧・電流を知りたい時にものすごく便利になりました。特に、メーカーなどで部品の定格電圧・電力を選定したい際に役立つのではないかと思います。
では、早速紹介していきましょう。

F行列とは

まずは、そもそもF行列とは何かについて説明します。
F行列とは、二端子回路(入力、出力がそれぞれ2端子ある状態)からなる回路について、回路計算を単純にするツールです。間にある素子がどれだけ複雑であっても、任意区間の入出力の電圧・電流の4変数を使用した方程式に落とし込むことができます。

$$\begin{cases}
{V_{1}=A\cdot V_{2}+B\cdot I_{2}}\\
{I_{1}=C\cdot V_{2}+D\cdot I_{2}}
\end{cases}$$

上記の式で使用されているA, B, C, Dはそれぞれ、以下の考え方で算出できます。


  • A
    右側端子を開放とすると、$I_{2}=0$となり、上の式から、
    $$A=\frac{V_{1}}{V_{2}}$$となります。そのため、右側端子開放時の入出力電圧比から求めることができます。これは無次元となります。
  • B
    右側端子を短絡すると、$V_{2}=0$となり、同じく上の式から、
    $$B= \frac{V_{1}}{I_{2}}$$となります。つまり、右側端子短絡時の入力電圧と出力電流の比から求まります。次元としては抵抗のΩとなります。
  • C
    右側端子を開放すると、$I_{2}=0$となり、下の式から、
    $$C=\frac{I_{1}}{V_{2}}$$となります。つまり、右側端子開放時の入力電流と出力電圧の比から算出できます。次元としては抵抗の逆数であるS(ジーメンス)になります。
  • D
    右側端子を短絡すると、$V_{2}=0$となり、同じく下の式から、$$D=\frac{I_{1}}{I_{2}}$$となります。つまり、右側端子短絡時の入出力電流比から求められます。
    これは無次元です。

F行列の役割

電気回路以外でも使われるF行列ですが、この行列の特徴は、縦続接続可能な点です。
従属接続とは、行列の積を取ることで、全体のF行列が算出できるものです。
下図に従属接続の例を示します。

n個の2端子対回路があり、縦続接続されている場合、全体のF行列は以下の式で表現できます。

$$F=F_{1}\cdot F_{2}\cdot \cdot \cdot F_{n}$$


電気回路におけるFパラメータ計算

ここで、電気回路におけるFパラメータの計算を紹介します。電気回路を細分化すると、全ての回路は直列と並列からなります。Fパラメータにおいてもこれが適用されるため、細分化するとFパラメータは3パターンからなります。

直列接続

インピーダンスZの素子が回路上に直列接続されていることを考えます。2端子対回路の入出力電圧・電流の関係式は以下のようになります。

$$\begin{cases}
{V_{1}=V_{2}+ZI_{2}}\\
{I_{1}=I_{2}}
\end{cases}$$

上式を行列式に変換すると、以下の式になります。

$$\begin{bmatrix}
V_{1}\\
I_{1}\\
\end{bmatrix}=\begin{bmatrix}
1&Z\\
0&1\\
\end{bmatrix}\begin{bmatrix}
V_{2}\\
I_{2}\\
\end{bmatrix}$$

上式より、直列接続時のFパラメータは以下の式で表せます。

$$F=\begin{bmatrix}
1&Z\\
0&1\\
\end{bmatrix}$$

並列接続

2端子対回路に、インピーダンスZが並列接続していることを考えます。
入出力電圧・電流の関係式は以下のようになります。

$$\begin{cases}
{V_{1}=V_{2}}\\
{I_{1}=\frac{1}{Z}V_{2}}+I_{2}
\end{cases}$$

直列接続時と同様に、行列式に変形すると以下の式が得られます。

$$\begin{bmatrix}
V_{1}\\
I_{1}\\
\end{bmatrix}=\begin{bmatrix}
1&0\\
\frac{1}{Z}&1\\
\end{bmatrix}\begin{bmatrix}
V_{2}\\
I_{2}\\
\end{bmatrix}$$

上式より、インピーダンスZを並列接続した際のF行列は以下になります。

$$F=\begin{bmatrix}
1&0\\
\frac{1}{Z}&1\\
\end{bmatrix}$$

回路の任意点における電圧計算

さて、ここから本題に入ります。先程のF行列を使用して、任意回路の任意点の電圧を計算していきます。今回は、以下の回路について電圧$V_{a}$を算出します。

方針としては、F行列の入力インピーダンスを使用することで算出していきます。
まずは$V_{a}$から右側の回路において、2端子対回路を作成します。

そして、F行列からBlackBoxの入力インピーダンス$Z_{in}$を求めて、分圧から求めたい電圧$V_{a}$を算出します。今回は簡単のため、$V_{a}$から左側の素子がRのみになっていますが、こちらが複雑な場合でももちろん計算できます。(次回紹介予定)

計算とシミュレーション結果の比較

では実際に計算していきます。なお、今回は比較対象として、LTSpiceで同じ条件の解析モデルを作成し、シミュレーション結果と行列式の計算結果の比較していきます。
なお、今回はPythonのsympyというモジュールを使用して行列計算しました。

Pythonによる行列計算

まずはモジュールをインポートします。
ここで、sympyを使用することで代数計算を行えるようにします。
sym.init_printing()は、結果を出力する際の設定で、見やすいように調整してくれるといった認識で大丈夫です。

import sympy as sym
sym.init_printing()
import math

次に、変数を指定し、F行列を記述します。ここら辺はsympyの記述方法に従って記入します。

sym.var('R,C1,C2,L,ω')

F1=sym.Matrix([[1,R],[0,1]])
F2=sym.Matrix([[1,0],[sym.I*ω*C1,1]])
F3=sym.Matrix([[1,sym.I*ω*L],[0,1]])
F4=sym.Matrix([[1,0],[sym.I*ω*C2,1]])

今回求める電圧はF1より右側であるので、F2からF4までの行列を縦続接続して合成します。

F_all=F2*F3*F4

計算結果は以下の通りです。同類項はまとめていません。(まとめ方分かる方いましたら教えてください笑)

$$F_{all}=\left[\begin{matrix}- C_{2} L ω^{2} + 1 & i L ω\\i C_{1} ω + i C_{2} ω \left(- C_{1} L ω^{2} + 1\right) & – C_{1} L ω^{2} + 1\end{matrix}\right]$$

ここから入力インピーダンスを求めていきます。今回の回路は出力端が開放となっているため、入力インピーダンス$\frac{V_{2}}{I_{2}}$は「F行列とは」に記載したF行列のA~Dのうち、$\frac{A}{C}$で算出できます(単位計算してみると理解しやすいです)

Z_in=F_all[0]/F_all[2]

$$Z_{in}=\frac{- C_{2} L ω^{2} + 1}{i C_{1} ω + i C_{2} ω \left(- C_{1} L ω^{2} + 1\right)}$$

あとは、直列接続されたインピーダンスの分圧により求めたい電圧$V_{a}$を算出します。ここで、入力電圧は5Vとしています。

V1=Z_in/(R+Z_in)*5

あとは、変数に値を代入して、電圧を計算します。振幅で比較するため、
絶対値をとって電圧の振幅を出力します。

Pi=sym.N(sym.pi,10)
V1=V1.subs([(R,1*10**3),(C1,100*10**-12),(C2,100*10**-12),(L,100*10**-6),(ω,Pi*2*10*10**6)])
abs(V1)

計算した結果、0.8063Vとなりました。

LTspiceによるシミュレーション

続いて、LTSpiceによるシミュレーションを実施しました。Pythonと同じ回路定数、電源電圧に設定し、$V_{a}$をモニタします。LTspiceの使い方はここでは割愛させてください。解析条件を以下に示します。

解析結果を以下に示します。スクリーンショットになりますが、結果として、振幅で0.7885Vが得られました。計算結果と2.3%のずれが生じていますが、解析時間を短縮しており、解析精度が低いためだと考えています。結果を示す通り、F行列を使用した計算により任意回路の任意点における電圧が求められることがわかりました。

まとめ

今回は電気回路において、任意点における電圧をF行列を用いて算出できることを示しました。電気回路における行列計算の有用性を示す具体例を作れたかなと思います。学生の頃は手計算が多く、行列計算のありがたみが全くわかりませんでしたがPCを使った計算をする際に行列計算を用いることで格段に計算処理が楽になります。

みなさんの研究や業務に少しでも役に立てばと思います。今回は2端子対回路の左側が抵抗の場合を扱ったため、シンプルな計算となりましたが、実際は複雑な回路の場合が大半のため、次回は複雑な場合でも計算できることを示したいと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


ABOUT US
shota_py
メーカー勤務のエンジニアです。 自分の趣味である、「電気回路」、「ガジェット」「株式投資」、「Python」に関する記事をつらつらと書いています