節点解析法について (3)

 投稿者:大熊 正メール  投稿日:2009年 2月 9日(月)12時12分3秒
  大熊です。
前回投稿したのですが、4X4行列が対称でないのが気に食わず、
5x5にし、そのうち4X4は対称で、5行目に一括して増幅器
の増幅度Kの関係を入れるように改良しました。
このようにすれば、入力ミスが少なく、後はマトリクスが自動で
答えを出してくれる・・・??。

敬具。

10 OPTION ARITHMETIC COMPLEX
   LET j=SQR(-1)
   OPTION BASE 1
   OPTION ANGLE DEGREES

   DIM FREQ(100,5)
   LET FREQ(1,1)=10
   LET FREQ(2,1)=12.25
   LET FREQ(3,1)=15
   LET FREQ(4,1)=17.32
   LET FREQ(5,1)=20
   LET FREQ(6,1)=24.5
   LET FREQ(7,1)=30
   LET FREQ(8,1)=34.6
   LET FREQ(9,1)=40
   LET FREQ(10,1)=50
   LET FREQ(11,1)=60
   LET FREQ(12,1)=70
   LET FREQ(13,1)=80
   LET FREQ(14,1)=90

   FOR I=1 TO 14
      LET P=I
      LET FREQ(I,1)=FREQ(P,1)
   NEXT I
   FOR I=15 TO 28
      LET P=I-14
      LET FREQ(I,1)=FREQ(P,1)*10
   NEXT I
   FOR I=29 TO 42
      LET P=I-28
      LET FREQ(I,1)=FREQ(P,1)*100
   NEXT I
   FOR I=43 TO 56
      LET P=I-42
      LET FREQ(I,1)=FREQ(P,1)*1000
   NEXT I
   LET FREQ(57,1)=100000

   ! FOR I=1 TO 57
   !    PRINT "FREQ(";I;",1)=";FREQ(I,1)
   ! NEXT I


   !                             ┌─C2─┬──────┐ 「注意」
   !                             │      │  ┌──┐  │  山中さんの回路と
   !                             │      └─┤-   │  │  1番端子番号が
   !                             │          │  K├─⑤─小さい。
   !         ┌─①─R1─②─R2─③─R3─④─┤+   │  ↑ V5
   !         ↑  ↑V1    ↑V2    ↑V3    ↑V4└──┘  │
   !         Is  Rs      C1              C3            │
   !         ↑  │      │              │            │
   !         ┴─0───┴───────┴──────┴─
   !             │
   !             ≡アース
   !    GND=0 !アース
   !    V1=1V !入力端子① Rs=0.1オームに定電流源Is から10A流して1V。
   !    V5=⑤ !出力端子⑤ V5=K*V4

20 ! CR 3段回路
   LET FF=1000             !Fの単位はヘルツ
   LET R1=51000            !Rの単位はオーム
   LET R2=82000
   LET R3=39000
   LET C1=0.00685/(10^6)   !Cの単位はuF,
   LET C2=0.022/(10^6)     !Cの単位はuF,
   LET C3=330/(10^12)      !Cの単位はPF,

   LET Y1=(2*PI*FF*C1)     !Yの単位はモー
   LET Y2=(2*PI*FF*C2)
   LET Y3=(2*PI*FF*C3)

   LET ω=(2*PI*FF)
   LET Rs=0.1    !Rsの単位はオーム      ①とアースに入れる。
   LET IS=10     !Isの単位はアムペア  Rsを1Vにする。

   LET NP=5
   DIM A(NP,NP)
   DIM T(NP,NP)

   DIM EOUT(NP,1)
   DIM B(NP,1)
   LET K=1

   !*********** データーと計算方法*****************
   !方法-1
   !  ミルマンの定理やキルヒホッフの法則なぞを多用、直接解く。

   !方法-2B
   !  回路の①端子とアース間に0.1オームの抵抗、アドミッタンスGsをとつける。
   !  電流源 10A を入力にして①端子とアース間の(Gs)に加えて V1を約  1V。
   !  以下は、想定の回路につなげ、端子間のアドミッタンスを考え節点方程式。
   !  ①ー②にR1,②ー③にR2,②ーアースに容量C1,③ー④にR3,④ーアースに容量
   !  C3、C3の電圧V4を増幅器に入力。⑤にはV5=K*V4の電圧がでる。
   !  ③に増幅器の出力V5を、⑤から容量C2で ③に正帰還,・・・ V5=K*V4
   !  ②端子の電圧をV2,③端子の電圧をV3,④端子の電圧をV4,⑤端子の電圧をV5
   !  総てアドミッタンスで計算。
   !  ①①,②②,③③,④④等 Gij(i=j)はその節点に接続されるアドミッタンス和
   !  ①-②, ②-③ 等 Gij(i?j)は接続されてるアドミッタンスに-1を掛けて代入
   !  Ampを除き、要素のみを考えると対称行列になり,ノードの数が行列の大きさ
   !  行列は 5x5 で4x4 の部分は対称に成る。 これが利点。
   !  行列の 5行目に E5=K*E4の関係をいれる。これが利点。
   !  Kは A(5,4)=-K   A(5,5)=1   B(5,1)=0  で増幅器の出力を関係付ける。
   !  最終の行列は  5x5 の非対称に成るが、Kが直接指定できる利点があるようだ
   !  結果はKの値に敏感で K=0.9875~1.0125までで、K=1 が最適。


   !方法-3
   !文献や投稿を参照

   !***********************方法-2Bの計算  今回はこれで挑戦*****************

   FOR K=0.9875 TO 1.0125 STEP 0.0125       !KはAMPのゲイン。
      FOR P=1 TO 57
         LET FF=FREQ(P,1)
         LET ω=(2*PI*FF)

         LET A(1,1)=(1/Rs)+(1/R1)       !①①端子のアドミタンスの合計
         LET A(1,2)=-(1/R1)             !①②端子のアドミタンスの -1
         LET A(1,3)=0
         LET A(1,4)=0
         LET A(1,5)=0

         LET A(2,1)=-(1/R1)
         LET A(2,2)=(1/R1)+(1/R2)+ω*C1*j  !②②端子のアドミタンスの合計
         LET A(2,3)=-(1/R2)
         LET A(2,4)=0
         LET A(2,5)=0

         LET A(3,1)=0
         LET A(3,2)=-(1/R2)
         LET A(3,3)=(1/R2)+(1/R3)+ω*C2*j!③③端子のアドミタンスの合計
         LET A(3,4)=-(1/R3)   !A(4,3)と値が同じくし対称行列にする。
         LET A(3,5)=-ω*C2*j

         LET A(4,1)=0
         LET A(4,2)=0
         LET A(4,3)=-(1/R3)  !A(3,4)と値が同じくし対称行列にする。
         LET A(4,4)=(1/R3)+ω*C3*j !④④端子のアドミタンスの合計
         LET A(4,5)=0

         LET A(5,1)=0
         LET A(5,2)=0
         LET A(5,3)=0
         LET A(5,4)=-K   ! ここにKの値を入れ V5=K*V4 を反映。
         LET A(5,5)=1    ! ここに1の値を入れ V5=K*V4 を反映。

         LET B(1,1)=10   ! 電流源から10Aを流す。①端子は1V。
         LET B(2,1)=0    ! キルヒホッフの法則から  ゼロである。
         LET B(3,1)=0    ! キルヒホッフの法則から  ゼロである。
         LET B(4,1)=0    ! キルヒホッフの法則から  ゼロである。
         LET B(5,1)=0    ! ここに0の値を入れ V5=K*V4 を反映。
         MAT T=INV(A)
         MAT EOUT=T*B
         ! PRINT "FF=";FF
         ! MAT PRINT EOUT
         LET EE1=EOUT(1,1)
         LET EE2=EOUT(2,1)
         LET EE3=EOUT(3,1)
         LET EE4=EOUT(4,1)
         LET EE5=EOUT(5,1)
         PRINT
         LET FREQ(P,2)=20*LOG10(ABS(EE5))
         ! LET FREQ(P,3)=20*LOG10(ABS(EE3))
         LET  G5=(ATN(IM(EE5)/RE(EE5)))
         IF FF>750 THEN LET G5=G5-180
         IF G5>0 THEN LET G5=G5-180
         LET  FREQ(P,4)=G5
         ! LET  G3=(ATN(IM(EE3)/RE(EE3)))
         ! IF FF>750 THEN LET G3=G3-180
         ! LET  FREQ(P,5)=G3
      NEXT P
      PRINT "K=";K
      PRINT "番号   周波数      E5         E3         θ5         θ3"
      FOR I=1 TO 57
         PRINT USING "###": I;
         PRINT USING " ###,###.#"  : FREQ(I,1);
         PRINT USING " ####.### dB": FREQ(I,2);
         PRINT USING " ####.### dB": FREQ(I,3);
         PRINT USING " ####.### 度": FREQ(I,4);
         PRINT USING " ####.### 度": FREQ(I,5)
      NEXT I

      !ここからは、山中様のグラフプログラムを参照。
      SET WINDOW 0.5,5.5, -55,5      !表示領域
      DRAW grid(1,5)                  !左端の目盛り
      FOR f=1 TO 6   !x軸が対数目盛 f=1 TO 5 で100k まで目盛る。
         SET COLOR 1 !1は黒色
   PLOT TEXT ,AT f-0.1,+0.15: mid$("10  100 1k  10k 100k ",4*(f-1)+1,4)
      NEXT f

      FOR f=1 TO 6   !y軸が直線目盛り
         SET COLOR 1 !1は黒色
PLOT TEXT ,AT 0.8,-10*(f-1)-2: mid$("  0 -25 -50 -75 -100-125 ",4*(f-1)+1,4)
      NEXT f

      FOR I=1 TO 57 STEP 1 !周波数[Hz]
         SET COLOR 1
         PLOT LINES:LOG10(FREQ(I,1)) ,FREQ(I,2)/2.5; !利得[dB]
      NEXT I
      PLOT LINES

      !  FOR I=1 TO 57 STEP 1 !周波数[Hz]
      !     SET COLOR 5    !5は水色
      !     PLOT LINES: LOG10(FREQ(I,1)) ,FREQ(I,3)/2; !利得[dB]
      !  NEXT I
      !  PLOT LINES

      FOR I=1 TO 57 STEP 1 !位相角度[度]
         SET COLOR 4  !4は赤色
         PLOT LINES:LOG10(FREQ(I,1)) ,0.125*FREQ(I,4); !角度[度]
      NEXT I
      PLOT LINES

      !  FOR I=1 TO 57 STEP 1 !位相角度[度]
      !     SET COLOR 3   !3は緑色
      !     PLOT LINES:LOG10(FREQ(I,1)) ,0.25*FREQ(I,5); !角度[度]
      !  NEXT I
      !  PLOT LINES
      FOR f=1 TO 6     !y軸が直線目盛り
         SET COLOR 4
PLOT TEXT ,AT 5.1,-10*(f-1)-2: mid$(" 0  -80 -160-240-320-400 ",4*(f-1)+1,4)
      NEXT f
      PRINT
    NEXT K   ! ここで,利得 Kを変化させる。

END
 

Re: 節点解析法について (3)

 投稿者:SECOND  投稿日:2009年 2月19日(木)11時24分57秒
  > No.267[元記事へ]

大熊 正さんへのお返事です。

! Rsを付加するのは、良くありません。
! 下の2つの回路は、同じものです。テブナンの定理を。
!                             ┌─C2─┬──────┐
!                             │      │  ┌──┐  │
!                             │      └─┤-   │  │
!                             │          │    ├─⑤─
!             ┌─R1─①─R2─②─R3─③─┤+   │  ↑ V5
!             ↑      ↑V1    ↑V2    ↑V3└──┘  │
!             Vin     C1              C3     K=1    │
!             │      │              │            │
!             0───┴───────┴──────┴─
!
! |(1/R1)+(1/R2)+ω*C1*j -(1/R2)               0                | |V1| |Vin/R1|
! |-(1/R2)               (1/R2)+(1/R3)+ω*C2*j -(1/R3)-K*ω*C2*j| |V2|=| 0    |
! |0                     -(1/R3)               (1/R3)+ω*C3*j   | |V3| | 0    |
!

!                             ┌─C2─┬──────┐
!                             │      │  ┌──┐  │
!                             │      └─┤-   │  │
!         ┌─────┐      │          │    ├─⑤─
!         │ ┌─R1─①─R2─②─R3─③─┤+   │  ↑ V5
!         ↑  │     ↑V1    ↑V2    ↑V3└──┘  │
!   Is=Vin/R1 │      C1              C3     K=1    │
!         ↑  │      │              │            │
!         ┴─0───┴───────┴──────┴─
!
! K≒1は、ボルテージフォロアとしての利得で、AMP自体の電圧利得は、10E6 程度に極めて大きい。
! 回路上で、K<>1にするには、
! V5~Amp(-in)間に、減衰器を挿入→ K>1、減衰器出力内部抵抗は、大きくても可。
! V5~C2 間に、減衰器を挿入→ K<1、減衰器出力内部抵抗は、十分に小さい事。
!
OPTION ANGLE DEGREES
OPTION ARITHMETIC COMPLEX
LET j=COMPLEX(0,1)
LET NP=3
DIM FREQ(57,5), A(NP,NP), T(NP,NP), EOUT(NP,1), B(NP,1)
!----
! 周波数10Hz~100KHz、等比ステップ
FOR i=1 TO 57
   LET FREQ(i,1)=10^(1+4*(i-1)/56)
NEXT i
!----
! CR 3段回路
LET R1=51000            !Ω
LET R2=82000            !Ω
LET R3=39000            !Ω
LET C1=0.00685/(10^6)   !F
LET C2=0.022/(10^6)     !F
LET C3=330/(10^12)      !F
!----
SET WINDOW 0.5,5.5, -55,5
DRAW grid(1,5)
FOR K=1-0.0125 TO 1.0125 STEP 0.0125
   FOR P=1 TO 57
      LET ω=(2*PI*FREQ(P,1))
      !
      LET A(1,1)=(1/R1)+(1/R2)+j*ω*C1
      LET A(1,2)=-(1/R2)
      LET A(1,3)=0
      !
      LET A(2,1)=-(1/R2)
      LET A(2,2)=(1/R2)+(1/R3)+j*ω*C2
      LET A(2,3)=-(1/R3)-K*j*ω*C2
      !
      LET A(3,1)=0
      LET A(3,2)=-(1/R3)
      LET A(3,3)=(1/R3)+j*ω*C3
      !
      LET Vin=1           !1V
      LET B(1,1)=(Vin/R1) !電圧源Vin 直列抵抗R1を、電流源Vin/R1 並列抵抗R1 に変形。
      LET B(2,1)=0
      LET B(3,1)=0
      MAT T=INV(A)
      MAT EOUT=T*B
      LET EE1=EOUT(1,1)
      LET EE2=EOUT(2,1)
      LET EE3=EOUT(3,1)
      !
      LET Gv=K*EOUT(3,1)/Vin
      LET FREQ(P,2)=20*LOG10(ABS(Gv))
      LET Pv=arg(Gv)
      IF Pv>0 THEN LET Pv=Pv-360
      LET  FREQ(P,4)=Pv
   NEXT P
   !------
   !リスト
   PRINT "K=";K
   PRINT "番号   周波数      E5         θ5"
   FOR i=1 TO 57
      PRINT USING "###": i;
      PRINT USING " ###,###.#"  : FREQ(i,1);
      PRINT USING " ####.### dB": FREQ(i,2);
      PRINT USING " ####.### 度": FREQ(i,4)
   NEXT i
   !------
   !グラフ
   FOR f=1 TO 6
      SET TEXT COLOR "black"
      PLOT TEXT ,AT f-0.1, 1: mid$("10  100 1k  10k 100k ",4*(f-1)+1,4) !x軸 10Hz^100kHz
      PLOT TEXT ,AT 0.8,-10*(f-1)-2: mid$("  0 -25 -50 -75 -100-125 ",4*(f-1)+1,4) !左y軸 0~-125dB
      SET TEXT COLOR "red"
      PLOT TEXT ,AT 5.1,-10*(f-1)-2: mid$(" 0  -80 -160-240-320-400 ",4*(f-1)+1,4) !右y軸 0~-400°
   NEXT f
   SET LINE COLOR "black"
   FOR i=1 TO 57
      PLOT LINES:LOG10(FREQ(i,1)) ,FREQ(i,2)/2.5; !利得[dB]
   NEXT i
   PLOT LINES
   SET LINE COLOR "red"
   FOR i=1 TO 57
      PLOT LINES:LOG10(FREQ(i,1)) ,0.125*FREQ(i,4); !位相角度[度]
   NEXT i
   PLOT LINES
NEXT K

END
 

Re: 節点解析法について (3)

 投稿者:大熊 正メール  投稿日:2009年 2月20日(金)14時06分15秒
  > No.284[元記事へ]

SECONDさんへのお返事です。

> ! Rsを付加するのは、良くありません。
> ! 下の2つの回路は、同じものです。テブナンの定理を。

> !
> ! |(1/R1)+(1/R2)+ω*C1*j -(1/R2)               0                | |V1| |Vin/R1|
> ! |-(1/R2)               (1/R2)+(1/R3)+ω*C2*j -(1/R3)-K*ω*C2*j| |V2|=| 0    |
> ! |0                     -(1/R3)               (1/R3)+ω*C3*j   | |V3| | 0    |
> !

> !                             ┌─C2─┬──────┐
> !                             │      │  ┌──┐  │
> !                             │      └─┤-   │  │
> !         ┌─────┐      │          │    ├─⑤─
> !         │ ┌─R1─①─R2─②─R3─③─┤+   │  ↑ V5
> !         ↑  │     ↑V1    ↑V2    ↑V3└──┘  │
> !   Is=Vin/R1 │      C1              C3     K=1    │
> !         ↑  │      │              │            │
> !         ┴─0───┴───────┴──────┴─
> !
> LET NP=3
> DIM FREQ(57,5), A(NP,NP), T(NP,NP), EOUT(NP,1), B(NP,1)
> !----
> ! 周波数10Hz~100KHz、等比ステップ
> FOR i=1 TO 57
>    LET FREQ(i,1)=10^(1+4*(i-1)/56)
> NEXT i
> !----
>

大熊 です。

お忙しいところ、色々御検討頂きまして有難うございます。
(1)入力にRsが無くてもよいことや、
(2)周波数10Hz~100KHz、等比ステップでプログラムが
   簡素に綺麗になることなど勉強させていただきました。

このプラグラムをコピーして、直ぐに動かしました。
綺麗にグラフを描いてくれました。
本当に有難うございます。
今後とも御指導のほどよろしくお願いいたします。


敬具
 

Re: 節点解析法について (3)

 投稿者:SECOND  投稿日:2009年 2月22日(日)01時18分14秒
  > No.284[元記事へ]

!<<付録>>
! トランジスタ1つのエミッタ・フォロアなどを使用する場合、利得Gv が
! 十分でなく、入力のイマジナル・ショート扱いが出来ない場合も、あります。
! Gv=10~100位の小さい時、下図のKで計算します。

!                         直列帰還型 Negative.Feed.Back amp
!                         Gv →∞、K →1 の簡易ベクトル図
!             ┌─R1─①               ──────→V3
!             ↑                       →  ────→(Ei)+(Ei)*Gv =V3
!             Vin                     (Ei) (Ei)*Gv =V5
!             │                                         K=V5/V3
!             0              ┌───────────┐
!                             │      ┌──────┐│ ※(Ei)は、
!             同上            C2      │  ┌───┐││   +~-の差分
!                             │      └─┤-     │││
!         ┌─────┐      │      (Ei)│利得Gv├┴⑤─
!         │ ┌─R1─①─R2─②─R3─③─┤+     │  ↑ V5
!         ↑  │     ↑V1    ↑V2    ↑V3└───┘  │
!   Is=Vin/R1 │      C1              C3   K=Gv/(1+Gv)│
!         ↑  │      │              │              │
!         ┴─0───┴───────┴───────┴─
!
! | 1/R1+1/R2+j*ω*C1  -1/R2                0             | |V1| |Vin/R1|
! |-1/R2                1/R2+1/R3+j*ω*C2  -1/R3-K*j*ω*C2| |V2|=| 0    |
! | 0                  -1/R3                1/R3+j*ω*C3  | |V3| | 0    |
!

OPTION ANGLE DEGREES
OPTION ARITHMETIC COMPLEX
LET NP=3
LET rss=10 !14 周波数、10倍毎のステップ数
!
DIM FREQ(0 TO rss*4, 4), A(NP,NP), T(NP,NP), EOUT(NP,1), B(NP,1)
!----
! 周波数10Hz~100KHz、等比ステップ
FOR p=0 TO rss*4
   LET FREQ(p,1)=10^(1+p/rss)
NEXT p
!----
! CR 3段回路
LET R1=51E3       !Ω
LET R2=82E3       !Ω   51E3 ! 以下、右側の数値でGv=100でも、ほぼ平坦に戻る。
LET R3=39E3       !Ω
LET C1=0.00685E-6 !F    0.0047E-6
LET C2=0.022E-6   !F    0.033E-6
LET C3=330E-12    !F    270E-12
!----
SET WINDOW 0.5,5.5, -55,5
DRAW grid(1,5)
!----
! 目盛り
FOR p=0 TO 5
   SET TEXT COLOR "black"
   PLOT TEXT ,AT p+0.9, 1    :mid$("10  100 1k  10k 100k", 4*p+1, 4)    !x軸 10Hz~100kHz
   PLOT TEXT ,AT 0.7,-10*p-2 :mid$("  0 -25 -50 -75 -100-125", 4*p+1, 4)!y軸 0~-125dB 左
   SET TEXT COLOR "red"
   PLOT TEXT ,AT 5.1,-10*p-2 :mid$(" 0  -80 -160-240-320-400", 4*p+1, 4)!y軸 0~-400°右
NEXT p
!----
FOR Gv=10 TO 100 STEP 10
   LET K=Gv/(1+Gv)
   PRINT USING "Gv=### K=.####" :Gv, K
   PRINT "番号   周波数      E5         θ5"
   !----
   FOR p=0 TO rss*4
      LET ω=2*PI*FREQ(p,1)
      !
      LET A(1,1)= 1/R1+1/R2+COMPLEX(0,ω*C1)
      LET A(1,2)=-1/R2
      LET A(1,3)=0
      LET A(2,1)=-1/R2
      LET A(2,2)= 1/R2+1/R3+COMPLEX(0,ω*C2)
      LET A(2,3)=-1/R3-K*COMPLEX(0,ω*C2)
      LET A(3,1)=0
      LET A(3,2)=-1/R3
      LET A(3,3)= 1/R3+COMPLEX(0,ω*C3)
      !
      LET Vin=1
      LET B(1,1)=Vin/R1
      LET B(2,1)=0
      LET B(3,1)=0
      !
      MAT T=INV(A)
      MAT EOUT=T*B
      !
      LET Af=K*EOUT(3,1)/Vin
      LET Pf=arg(Af)
      IF Pf>0 THEN LET Pf=Pf-360
      LET FREQ(p,2)=20*LOG10(ABS(Af))
      LET FREQ(p,4)=Pf
      !------
      !リスト
      PRINT USING "### ###,###.# ####.### dB ####.### 度": p, FREQ(p,1), FREQ(p,2), FREQ(p,4)
      !------
      !グラフ
      IF 0<p THEN
         SET LINE COLOR "black"
         PLOT LINES:LOG10(FREQ(p-1,1)),0.4*FREQ(p-1,2); LOG10(FREQ(p,1)),0.4*FREQ(p,2) !利得[dB]
         SET LINE COLOR "red"
         PLOT LINES:LOG10(FREQ(p-1,1)),0.125*FREQ(p-1,4); LOG10(FREQ(p,1)),0.125*FREQ(p,4) !位相[度]
      END IF
   NEXT p
NEXT Gv

END
 

Re: 節点解析法について (3)

 投稿者:大熊 正メール  投稿日:2009年 2月22日(日)14時41分46秒
  > No.288[元記事へ]

SECONDさんへのお返事です。

> !<<付録>>
> ! トランジスタ1つのエミッタ・フォロアなどを使用する場合、利得Gv が
> ! 十分でなく、入力のイマジナル・ショート扱いが出来ない場合も、あります。
> ! Gv=10~100位の小さい時、下図のKで計算します。
>
> !                         直列帰還型 Negative.Feed.Back amp
> !                         Gv →∞、K →1 の簡易ベクトル図
> !             ┌─R1─①               ──────→V3
> !             ↑                       →  ────→(Ei)+(Ei)*Gv =V3
> !             Vin                     (Ei) (Ei)*Gv =V5
> !             │                                         K=V5/V3
> !             0              ┌───────────┐
> !                             │      ┌──────┐│ ※(Ei)は、
> !             同上            C2      │  ┌───┐││   +~-の差分
> !                             │      └─┤-     │││
> !         ┌─────┐      │      (Ei)│利得Gv├┴⑤─
> !         │ ┌─R1─①─R2─②─R3─③─┤+     │  ↑ V5
> !         ↑  │     ↑V1    ↑V2    ↑V3└───┘  │
> !   Is=Vin/R1 │      C1              C3   K=Gv/(1+Gv)│
> !         ↑  │      │              │              │
> !         ┴─0───┴───────┴───────┴─
> !
> ! | 1/R1+1/R2+j*ω*C1  -1/R2                0             | |V1| |Vin/R1|
> ! |-1/R2                1/R2+1/R3+j*ω*C2  -1/R3-K*j*ω*C2| |V2|=| 0    |
> ! | 0                  -1/R3                1/R3+j*ω*C3  | |V3| | 0    |
> !
>

大熊です。
お忙しい所、色色と御指導頂き有難うございます。

スマートなプログラムや方程式の考え方について
勉強させていただいております。
今後ともよろしく御願いいたします。

敬具


 

Re: 節点解析法について (3)

 投稿者:SECOND  投稿日:2009年 2月23日(月)16時03分38秒
  > No.288[元記事へ]

!<<付録2>>
! 節点方程式:キルヒホッフ第1法則 …1点への電流 総和=0
! 網路方程式:キルヒホッフ第2法則 …閉回路の電位差総和=0

! 余計ですが、網路方程式(第2法則)の方を、使った例。
!
!                   ┌───────────┐
!                   │      ┌──────┐│
!                   C2      │  ┌───┐││
!                   ││i3  └─┤-     │││
!                   │└───┐│利得Gv├┴┼─
!  ┌─R1─┬─R2─┴─R3─┬┼┤+     │  ↑ Vout=K*(i2+i3)/(j*ω*C3)
!   ↑ ┌→ │    ┌→      │↓└───┘  │
!   Vin│i1 C1    │i2      C3   K=Gv/(1+Gv)│
!   │ └   │    └        │              │
!   0───┴───────┴───────┴─
!
! | R1+1/(j*ω*C1) -1/(j*ω*C1)                   0                         | |i1| |Vin |
! |-1/(j*ω*C1)     1/(j*ω*C1)+R2+R3+1/(j*ω*C3) R3+1/(j*ω*C3)            | |i2|=| 0  |
! | 0               R3+1/(j*ω*C3)                1/(j*ω*C2)+R3+1/(j*ω*C3)| |i3| |Vout|

! | R1+1/(j*ω*C1) -1/(j*ω*C1)                   0                                     | |i1| |Vin|
! |-1/(j*ω*C1)     1/(j*ω*C1)+R2+R3+1/(j*ω*C3) R3+1/(j*ω*C3)                        | |i2|=| 0 |
! | 0               R3+1/(j*ω*C3)-K/(j*ω*C3)    1/(j*ω*C2)+R3+1/(j*ω*C3)-K/(j*ω*C3)| |i3| | 0 |
!

OPTION ANGLE DEGREES
OPTION ARITHMETIC COMPLEX
LET NP=3
LET rss=10 !14 周波数、10倍毎のステップ数
!
DIM FREQ(0 TO rss*4, 4), A(NP,NP), T(NP,NP), IOUT(NP,1), B(NP,1)
!----
! 周波数10Hz~100KHz、等比ステップ
FOR p=0 TO rss*4
   LET FREQ(p,1)=10^(1+p/rss)
NEXT p
!----
! CR 3段回路      ! (Gv=1000000) ! (Gv=100)
LET R1=51E3       !Ω
LET R2=51E3       !Ω 82E3       ! 51E3
LET R3=39E3       !Ω
LET C1=0.0047E-6  !F  0.00685E-6 ! 0.0047E-6
LET C2=0.033E-6   !F  0.022E-6   ! 0.033E-6
LET C3=270E-12    !F  330E-12    ! 270E-12
!----
SET WINDOW 0.5,5.5, -55,5
DRAW grid(1,5)
!----
! 目盛り
FOR p=0 TO 5
   SET TEXT COLOR "black"
   PLOT TEXT ,AT p+0.9, 1    :mid$("10  100 1k  10k 100k", 4*p+1, 4)    !x軸 10Hz~100kHz
   PLOT TEXT ,AT 0.7,-10*p-2 :mid$("  0 -25 -50 -75 -100-125", 4*p+1, 4)!y軸 0~-125dB 左
   SET TEXT COLOR "red"
   PLOT TEXT ,AT 5.1,-10*p-2 :mid$(" 0  -80 -160-240-320-400", 4*p+1, 4)!y軸 0~-400°右
NEXT p
!----
FOR Gv=10 TO 100 STEP 10
   LET K=Gv/(1+Gv)
   PRINT USING "Gv=### K=.####" :Gv, K
   PRINT "番号   周波数    Vout/Vin    θ"
   !----
   FOR p=0 TO rss*4
      LET ω=2*PI*FREQ(p,1)
      !
      LET A(1,1)= R1+1/COMPLEX(0,ω*C1)
      LET A(1,2)=-1/COMPLEX(0,ω*C1)
      LET A(1,3)=0
      LET A(2,1)=-1/COMPLEX(0,ω*C1)
      LET A(2,2)= 1/COMPLEX(0,ω*C1)+R2+R3+1/COMPLEX(0,ω*C3)
      LET A(2,3)= R3+1/COMPLEX(0,ω*C3)
      LET A(3,1)=0
      LET A(3,2)= R3+1/COMPLEX(0,ω*C3)-K/COMPLEX(0,ω*C3)
      LET A(3,3)=1/COMPLEX(0,ω*C2)+R3+1/COMPLEX(0,ω*C3)-K/COMPLEX(0,ω*C3)
      !
      LET Vin=1
      LET B(1,1)=Vin
      LET B(2,1)=0
      LET B(3,1)=0
      !
      MAT T=INV(A)
      MAT IOUT=T*B
      !
      LET Af=K*((IOUT(2,1)+IOUT(3,1))/COMPLEX(0,ω*C3))/Vin
      LET Pf=arg(Af)
      IF Pf>0 THEN LET Pf=Pf-360
      LET FREQ(p,2)=20*LOG10(ABS(Af))
      LET FREQ(p,4)=Pf
      !------
      !リスト
      PRINT USING "### ###,###.# ####.### dB ####.### 度": p, FREQ(p,1), FREQ(p,2), FREQ(p,4)
      !------
      !グラフ
      IF 0< p THEN
         SET LINE COLOR "black"
         PLOT LINES:LOG10(FREQ(p-1,1)),0.4*FREQ(p-1,2); LOG10(FREQ(p,1)),0.4*FREQ(p,2) !利得[dB]
         SET LINE COLOR "red"
         PLOT LINES:LOG10(FREQ(p-1,1)),0.125*FREQ(p-1,4); LOG10(FREQ(p,1)),0.125*FREQ(p,4) !位相[度]
      END IF
   NEXT p
NEXT Gv

END

!
下図は、i3 を逆方向にしたもので、全く同じものです。各式の負号に注意!
!
!                   ┌───────────┐
!                   │      ┌──────┐│
!                   C2↑    │  ┌───┐││
!                   ││i3  └─┤-     │││
!                   │└───┐│利得Gv├┴┼─
!  ┌─R1─┬─R2─┴─R3─┬┼┤+     │  ↑ Vout=K*(i2-i3)/(j*ω*C3)
!   ↑ ┌→ │    ┌→      │  └───┘  │
!   Vin│i1 C1    │i2      C3   K=Gv/(1+Gv)│
!   │ └   │    └        │              │
!   0───┴───────┴───────┴─
!
! | R1+1/(j*ω*C1) -1/(j*ω*C1)                    0                         | |i1| | Vin |
! |-1/(j*ω*C1)     1/(j*ω*C1)+R2+R3+1/(j*ω*C3) -R3-1/(j*ω*C3)            | |i2|=|  0  |
! | 0              -R3-1/(j*ω*C3)                 1/(j*ω*C2)+R3+1/(j*ω*C3)| |i3| |-Vout|

! | R1+1/(j*ω*C1) -1/(j*ω*C1)                    0                                     | |i1| |Vin|
! |-1/(j*ω*C1)     1/(j*ω*C1)+R2+R3+1/(j*ω*C3) -R3-1/(j*ω*C3)                        | |i2|=| 0 |
! | 0              -R3-1/(j*ω*C3)+K/(j*ω*C3)     1/(j*ω*C2)+R3+1/(j*ω*C3)-K/(j*ω*C3)| |i3| | 0 |
!

! i3 逆方向の、差し替え部分( 左端!を外して使用。)
!      LET A(1,1)= R1+1/COMPLEX(0,ω*C1)
!      LET A(1,2)=-1/COMPLEX(0,ω*C1)
!      LET A(1,3)= 0
!      LET A(2,1)=-1/COMPLEX(0,ω*C1)
!      LET A(2,2)= 1/COMPLEX(0,ω*C1)+R2+R3+1/COMPLEX(0,ω*C3)
!      LET A(2,3)=-R3-1/COMPLEX(0,ω*C3)
!      LET A(3,1)= 0
!      LET A(3,2)=-R3-1/COMPLEX(0,ω*C3)+K/COMPLEX(0,ω*C3)
!      LET A(3,3)= 1/COMPLEX(0,ω*C2)+R3+1/COMPLEX(0,ω*C3)-K/COMPLEX(0,ω*C3)
!      !
!      LET Vin=1
!      LET B(1,1)=Vin
!      LET B(2,1)=0
!      LET B(3,1)=0
!      !
!      MAT T=INV(A)
!      MAT IOUT=T*B
!      !
!      LET Af=K*((IOUT(2,1)-IOUT(3,1))/COMPLEX(0,ω*C3))/Vin
!ここまで
!
 

戻る