[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gnucap] Simulation of trifilar transformer
From: |
al davis |
Subject: |
Re: [Help-gnucap] Simulation of trifilar transformer |
Date: |
Fri, 22 Aug 2008 23:17:51 -0400 |
User-agent: |
KMail/1.9.9 |
On Friday 15 August 2008, al davis wrote:
> So, try extending to 3 inductors ...
>
> .subckt trans3 (a1 a2 b1 b2 c1 c2)
> .param M12 = 'K12*sqrt(L1*L2)'
> .param M23 = 'K23*sqrt(L2*L3)'
> .param M13 = 'K13*sqrt(L1*L3)'
> l1 (a3 a2) 'L1'
> l2 (b3 b2) 'L2'
> l3 (c3 c2) 'L3'
> e21 (a4 a3 b3 b2) 'M12/L2'
> e31 (a1 a4 c3 c2) 'M13/L3'
> e12 (b4 b3 a3 a2) 'M12/L1'
> e32 (b2 b4 c3 c2) 'M23/L3'
> e13 (c4 c3 a3 a2) 'M13/L1'
> e23 (c2 c4 b3 b2) 'M23/L2'
> .ends
>
> Now call it:
>
> Xtrans (a1 a2 b1 b2 c1 c2) trans3 L1=.667 L2=.57 L3=.88
> + K12=.8 K23=.98 K13=.85
>
> ..... and there's your "trifilar transformer".
>
> You can specify either the K's or M's. Either will work.
There is a typo in the netlist ..
e32 (b1 .....
and
e32 (c1 .....
There is another way to do it ... the way Spice does it ...
.subckt trans3 (a1 a2 b1 b2 c1 c2)
.param M12 = {K12*sqrt(L1*L2)}
.param M23 = {K23*sqrt(L2*L3)}
.param M13 = {K13*sqrt(L1*L3)}
R1L1 (a1 0) 1
R2L1 (a1 a3) -1
R3L1 (a3 a2) 1
R4L1 (a2 0) -1
R1L2 (b1 0) 1
R2L2 (b1 b3) -1
R3L2 (b3 b2) 1
R4L2 (b2 0) -1
R1L3 (c1 0) 1
R2L3 (c1 c3) -1
R3L3 (c3 c2) 1
R4L3 (c2 0) -1
C1 (a3 0) {-L1-M12-M13}
C2 (b3 0) {-L2-M12-M23}
C3 (c3 0) {-L3-M13-M23}
C12 (a3 b3) {M12}
C23 (b3 c3) {M23}
C13 (a3 c3) {M13}
.ends
It's really simpler than it looks ..
Replace each inductor with:
.subckt inductor (1 2 c)
R1 (1 0) 1
R2 (1 c) -1
R3 (c 2) 1
R4 (2 0) -1
C1 (3 0) {-L}
.ends
... nodes 1 and 2 are the ends. node c is "current"
Then each mutual adds:
.subckt mutual (a b)
CM (a b) {ML}
CMa (a 0) {-ML}
CMb (b 0) {-ML}
.ends
and you do
.subckt trans2 (a b d e)
.param ML = {K12*sqrt(L1*L2)}
X1 (a b c) inductor L=L1
X2 (d e f) inductor L=L2
X3 (c f) mutual ML=ML
.ends
and you can build them in any size this way.