« Python+SymPyで2*NポートのSパラメータをTパラメータに変換(1) 2ポートの場合 | トップページ | 行列の平方根(X^2 =AとなるX)をPython+SciPy(linalg.sqrtm)で計算。 »

2018年3月27日 (火)

Python+SymPy(ブロック行列)で2*NポートのSパラメータをTパラメータに変換(2) 4ポートの場合

先日は2ポートの計算でしたが、こちらが本題。

4ポートの場合のSパラメータ・Tパラメータ変換を以下のように考える。
(ポート1とポート2、ポート3とポート4が組の場合)
Tpara4port
これはブロック行列の計算が必要だが、なんとSymPyはその計算ができる。
4x4行列を2x2行列4個に分解して計算を進める。
MatrixSymbok, BlockMatrix, block_collapseを使う。こんな感じ。
from sympy import *
init_printing()
SA=MatrixSymbol('SA',2,2)
SB=MatrixSymbol('SB',2,2)
SC=MatrixSymbol('SC',2,2)
SD=MatrixSymbol('SD',2,2)
I=Identity(2)
O=ZeroMatrix(2,2)
A=BlockMatrix([[I,-SA],[O,-SC]])
B=BlockMatrix([[SB,O],[SD,-I]])
block_collapse(Inverse(A)*B)

すると、結果はこうなる。

Tpara4port2
おお、完全にあってる。
2*Nポートも全く同様にできます。
案外、この計算している文献が少ない、、、

« Python+SymPyで2*NポートのSパラメータをTパラメータに変換(1) 2ポートの場合 | トップページ | 行列の平方根(X^2 =AとなるX)をPython+SciPy(linalg.sqrtm)で計算。 »

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

参考文献を教えていただけますか?
S-->Tの変換は2端子対回路の説明ばかりで、それ以上だとどうやるのか知りたいです。

行列の変数(a1,a2,a3,a4,b1,b2,b3,b4)が変換後は入れ替わっていますが、ここを任意に入れ替えた場合も同じ計算処理でしょうか。

コメントを書く

(ウェブ上には掲載しません)

« Python+SymPyで2*NポートのSパラメータをTパラメータに変換(1) 2ポートの場合 | トップページ | 行列の平方根(X^2 =AとなるX)をPython+SciPy(linalg.sqrtm)で計算。 »

最近の記事

2025年2月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  

最近のコメント

無料ブログはココログ
フォト