* APWM * Controller by Anders Mikkelsen * Self-oscillating ZCS (Zero Current Switching) controller with phase-lead compensation * * CUSTOMIZABLE PARAMETERS: * pvolts - Primary voltage (default: 330V) * Adjust to match your bus voltage * * rlead - Phase lead resistor (default: 1k) * Higher = less phase lead * * rfreq - Frequency compensation resistor (default: 2k) * Affects self-oscillation frequency * * iscale - Current sense scaling (default: 0.05) * Adjust based on CT ratio and sense resistor .param pvolts=330 .param rlead=1k .param rfreq=2k .param iscale=0.05 .param rterm=50 V_5v p5v 0 5 R6 0 N012 1k R7 N012 p5v 1k Rbias N001 N012 100k XU1 N014 N001 p5v 0 N008 LT1720 R1 N008 N014 22k R4 N011 N008 {rfreq} R3 N011 N001 1k C1 N001 0 1n XU2 N003 N001 p5v 0 N002 LT1720 Vramp N003 0 PULSE(0v 5v 100us 100n 100n 500us) A1 N002 N008 0 0 0 0 N009 0 AND T1 N009 0 N007 N010 Td=50n Z0={rterm} R10 N007 N010 {rterm} R5 N013 N012 {rlead} C3 N013 N015 470p R2 N014 N013 4k7 R9 N013 N016 1k C4 N016 N015 10n B2 N015 0 V=I(L1)*{iscale} B1 vin 0 V=if(V(N009)>0.5, {pvolts/2}, -{pvolts/2}) .tran 0 600u 100u 10n startup .lib LT1720.sub