2端子対定数(4端子定数)の計算

 投稿者:山中和義  投稿日:2008年11月20日(木)13時40分22秒
  電気回路計算の演習問題を解いています。
電卓による筆算の検算としてのプログラムをつくってみました。

以前苦労したラダー回路の合成抵抗値が「F行列の積」と「Zへの変換」で算出できます。
!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
 

戻る