Sida 1 av 1

Har en Pspice Modell fil som funkar inte helt

Postat: 24 mars 2010, 13:21:00
av TheNano
i boken Switch-Mode Power Supply Spice cookbok har jag hittat en kod
som beskriver en "Dead-Time generator" som ska se till att MOSFETarna
i en brygga inte är på samtidigt när en clk eller pwm signal kopplas
in , så får man helt enkelt en försening BARA på positivflank.
Vi har försökt med detta kod och andra lösningar men inte lyckats få
en AND-grind som orkar med +-3.6 vilt utsignal dvs Låg = -3.5 och Hög
= +3.5.
här är koden , jag tror att en nod saknas då PSpice klagar på att nod
1 "is floating"

.SUBCKT NEWDT CLK GU SU QL
+ PARAMS: DT=500ns VHIGH=5 VLOW=0 RS=10
* jag försökte lägga till detta men det blev mer fel: EBU 1 CLK {V(0)}


+ {VHIGH},{VLOW})}
* jag har testat tag bort raden ovan då den ger fel, saknas en ifsats ?
EBU2 4 SU VALUE = { V(1) }
RSU 4 GU {RS}
EBL 2 0 VALUE = {IF ((V(CLKB) > 800M) & (V(TD2)>800M),{VHIGH},{VLOW})}
RSL 2 QL {RS}
X1 CLK TD1 DL PARAMS: TD={DT}
X2 CLKB TD2 DL PARAMS: TD={DT}
X3 CLK CLKB INV
.ENDS
*********
.SUBCKT DL 1 2 PARAMS: TD=500nS
*
*k=GAIN TD = DELAY
RIN 1 0 1E15
E1 3 0 1 0 1
T1 3 0 2 0 Z0=1 TD={TD}
R1 2 0 1
.ENDS
**** 1 INPUT INVErTER ***
.SUBCKT INV 1 2
EB1 4 0 VALUE = { IF ( V(1)>800M, 0, 5)}
RD 4 2 100
CD 2 0 10P
.ENDS

för att se boken kolla här :
sid 73 74 (koden finns inte med i google books)

tack för din tid ;-)

Re: Har en Pspice Modell fil som funkar inte helt

Postat: 24 mars 2010, 14:12:26
av TheNano
Hittade rätt kod på internet , min ovan saknade rader, jag var på rätt väg för att lösa det men här är svaret :
di2490l2.txt
;***************************************************************************************************
; LISTING 2 - HALF-BRIDGE DRIVER IN PSPICE
;
; "Delay line eases Spice dead-time generation," March 2, 2000, pg 120
;
; http://www.ednmag.com/ednmag/reg/2000/0 ... .htm305di3
;*****************************************************************************************************

.SUBCKT NEWDT CLK GU SU QL PARAMS: DT=500N VHIGH=10V VLOW=100M RS=10
* Clock_In GateUpper SourceUpper GateLower
*
* DT: Dead time in seconds
* VHIGH: Output level when high
* VLOW: Output level when low
* RS: Driver's output resistance
*
EBU1 1 0 VALUE = { IF ( (V(CLK)>800M) & (V(TD1)>800M), {VHIGH}, {VLOW} ) }
EBU2 4 SU VALUE = { V(1) }
RSU 4 GU {RS}
RFLO SU 0 1G
EBL 2 0 VALUE = { IF ( (V(CLKB)>800M) & (V(TD2)>800M), {VHIGH}, {VLOW} ) }
RSL 2 QL {RS}
X1 CLK TD1 DL PARAMS: TD={DT}
X2 CLKB TD2 DL PARAMS: TD={DT}
X3 CLK CLKB INV
.ENDS
**********
.SUBCKT DL 1 2 PARAMS: TD=500n
*
RIN 1 0 1E15
E1 3 0 1 0 1
T1 3 0 2 0 Z0=1 TD={TD}
R1 2 0 1
.ENDS DL
**** 1 INPUT INVERTER ****
.SUBCKT INV 1 2
EB1 4 0 VALUE = { IF ( V(1)>800M, 0, 5V ) }
RD 4 2 100
CD 2 0 10P
.ENDS INV