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.


_______________________________________________
Help-gnucap mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gnucap

Reply via email to