!2端子対回路(4端子回路)
! i1→┌──┐i2→
! a ─┤A B├─ b
!E1↑ │ │ ↑E2
! a'─┤C D├─ b'
! └──┘
!基本行列Fを用いて
! (E1)=(A B)(E2)
! (i1) (C D)(i2)
OPTION ARITHMETIC COMPLEX !複素数を扱う
LET j=SQR(-1) !虚数単位 ※電気系はjを使う
!●交流回路
LET f=60 !周波数[Hz]
LET w=2*PI*f !角周波数ω
DEF H2Ohm(L)=j*w*L ![H]を[Ω]へ
DEF F2Ohm(C)=1/(j*w*C) ![F]を[Ω]へ
DEF xL(L)=w*L !誘導リアクタンス
DEF xC(C)=1/(w*C) !容量リアクタンス
SUB DispS(z) !複素数をS表示する ※スタインメッツ(Steinmetz)
PRINT ABS(z);
IF ABS(z)<>0 THEN
IF arg(z)<>0 THEN PRINT "∠";DEG(arg(z));"°";
END IF
PRINT
END SUB
FUNCTION S2COMPLEX(l,th) !S表示(極座標形式)を複素数へ
LET S2COMPLEX=COMPLEX(l*COS(RAD(th)),l*SIN(RAD(th)))
END FUNCTION
!●2端子インピーダンス回路行列
! ─Z─ の場合 F=(1 Z)
! ─-─ (0 1)
SUB seriesF(Z,F(,))
LET F(1,1)=1
LET F(1,2)=Z
LET F(2,1)=0
LET F(2,2)=1
END SUB
! ─┬─ の場合 F=(1 0)
! Z (1/Z 1)
! ─┴─
SUB shuntF(Z,F(,))
WHEN EXCEPTION IN
LET F(1,1)=1
LET F(1,2)=0
LET F(2,1)=1/Z
LET F(2,2)=1
USE
PRINT "0で割れません。"
STOP
END WHEN
END SUB
!●パラメータの相互変換 ※一部
SUB F2Z(F(,), Z(,)) !FパラメータをZパラメータへ
LET Z(1,1)=F(1,1) !A
LET Z(1,2)=DET(F) !AD-BC
LET Z(2,1)=1
LET Z(2,2)=F(2,2) !D
WHEN EXCEPTION IN
MAT Z=(1/F(2,1))*Z !(1/C)倍
USE
PRINT "Zパラメータは存在しません。"
STOP
END WHEN
END SUB
SUB F2Y(F(,),Y(,)) !FパラメータをYパラメータへ
LET Y(1,1)=F(2,2) !D
LET Y(1,2)=-DET(F) !BC-AD
LET Y(2,1)=-1
LET Y(2,2)=F(1,1) !A
WHEN EXCEPTION IN
MAT Y=(1/F(1,2))*Y !(1/B)倍
USE
PRINT "Yパラメータは存在しません。"
STOP
END WHEN
END SUB
SUB Z2Y(Z(,),Y(,)) !ZパラメータをYパラメータへ
WHEN EXCEPTION IN
MAT Y=INV(Z) !Y=Z^-1
USE
PRINT "Yパラメータは存在しません。"
STOP
END WHEN
END SUB
!-------------------- ここまでがサブルーチン
DIM mF(2,2),mZ(2,2),mY(2,2) !F,Z,Yパラメータ
DIM T1(2,2),T2(2,2) !作業用
!●はしご回路の合成抵抗 a-b端子間
!a─R1┬R3┬R5┬ … ┬Rn┬─┬ …
! R2 R4 R6 Rn-1 Rn+1
!b──┴─┴─┴ ┴─┴─┴
!
LET R1=1 !1,2,1,2,…,1,2,1
LET R2=2
CALL seriesF(R1,T1) !─R1┬
CALL shuntF(R2,T2) ! R2
MAT mF=IDN !単位行列
FOR i=1 TO 5 !段数
MAT mF=mF*T1 !─R1┬R1┬ … ┬R1┬
MAT mF=mF*T2 ! R2 R2 R2 R2
NEXT i
MAT mF=mF*T1 !─R1┐
CALL F2Z(mF,mZ) !要素a
MAT PRINT mZ;
!●T型LC回路
! ─L─┬─L─
! C
! ─-─┴─-─
!ω=1[rad/sec]、L=2[H]、C=1[F]
LET L=2
LET C=1
LET w=1 !問題に合わせる
!●Fパラメータ、基本行列
MAT mF=IDN !単位行列
CALL seriesF(H2Ohm(L),T1)
MAT mF=mF*T1
CALL shuntF(F2Ohm(C),T2)
MAT mF=mF*T2
MAT mF=mF*T1
PRINT "Fパラメータ"
MAT PRINT mF;
!●Zパラメータ、インピーダンス行列 V=Z*I
CALL F2Z(mF,mZ)
PRINT "Zパラメータ"
MAT PRINT mZ;
!●Yパラメータ、アドミタンス行列 I=Y*V
CALL F2Y(mF,mY)
PRINT "Yパラメータ"
MAT PRINT mY;
!●Yパラメータ(別解)Y=Z^-1
CALL Z2Y(mZ,mY)
PRINT "Yパラメータ"
MAT PRINT mY;
END
2端子対定数(4端子定数)の計算
投稿者:山中和義 投稿日:2008年11月20日(木)13時40分22秒電卓による筆算の検算としてのプログラムをつくってみました。
以前苦労したラダー回路の合成抵抗値が「F行列の積」と「Zへの変換」で算出できます。