Maker Pro
Maker Pro

Power factor correction

F

Fred Abse

Jan 1, 1970
0
I am playing around with modeling 3-phase rectifiers. I think PFC
would be a real good thing for 3-phase rectifiers. May be more than
a tad interesting to implement though.

Interesting to do if you need to implement synchronous regeneration back
into the supply from a big variable frequency drive.


Following on from your posted simulations, I did this, it's a simplified
3 phase, 100 amp PSU circuit from a VFD. Regeneration circuitry omitted.
Power factor varies from 0.26 at no load to 0.94 at full load.

Plot definition file and log file included.

File 3phrect.asc


Version 4
SHEET 1 1652 864
WIRE 192 -384 64 -384
WIRE 288 -384 192 -384
WIRE 560 -384 288 -384
WIRE 624 -384 560 -384
WIRE 944 -384 624 -384
WIRE 64 -288 64 -384
WIRE 192 -288 192 -384
WIRE 288 -288 288 -384
WIRE -192 -64 -688 -64
WIRE 288 -64 288 -224
WIRE 288 -64 -112 -64
WIRE -688 -48 -688 -64
WIRE 624 -16 624 -384
WIRE 752 -16 624 -16
WIRE -688 32 -816 32
WIRE 624 32 624 -16
WIRE 752 32 752 -16
WIRE 944 32 944 -384
WIRE -176 112 -688 112
WIRE 192 112 192 -224
WIRE 192 112 -96 112
WIRE -688 144 -688 112
WIRE 624 160 624 96
WIRE 752 160 752 112
WIRE 752 160 624 160
WIRE -816 256 -816 32
WIRE -688 256 -688 224
WIRE -688 256 -816 256
WIRE -192 288 -688 288
WIRE 64 288 64 -224
WIRE 64 288 -112 288
WIRE -688 368 -688 288
WIRE 64 368 64 288
WIRE 192 368 192 112
WIRE 288 368 288 -64
WIRE -816 496 -816 256
WIRE -752 496 -816 496
WIRE -688 496 -688 448
WIRE -688 496 -752 496
WIRE 64 512 64 432
WIRE 192 512 192 432
WIRE 192 512 64 512
WIRE 288 512 288 432
WIRE 288 512 192 512
WIRE 544 512 288 512
WIRE 624 512 624 160
WIRE 624 512 544 512
WIRE 944 512 944 112
WIRE 944 512 624 512
WIRE -752 544 -752 496
FLAG 544 512 VLneg
FLAG 560 -384 VLpos
FLAG -752 544 0
SYMBOL diode 48 432 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D1
SYMATTR Value FWD
SYMBOL diode 176 432 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D2
SYMATTR Value FWD
SYMBOL diode 272 432 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D3
SYMATTR Value FWD
SYMBOL diode 48 -224 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D4
SYMATTR Value FWD
SYMBOL diode 176 -224 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D5
SYMATTR Value FWD
SYMBOL diode 272 -224 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D6
SYMATTR Value FWD
SYMBOL ind2 -96 304 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L9
SYMATTR Value 220u
SYMATTR Type ind
SYMBOL ind2 -80 128 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L10
SYMATTR Value 220u
SYMATTR Type ind
SYMBOL ind2 -96 -48 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L11
SYMATTR Value 220u
SYMATTR Type ind
SYMBOL cap 608 32 R0
SYMATTR InstName C1
SYMATTR Value 5600u
SYMATTR SpiceLine V=400 Rser=.5
SYMBOL current 944 32 R0
WINDOW 123 0 0 Left 0
WINDOW 39 24 116 Left 0
SYMATTR SpiceLine load
SYMATTR InstName I1
SYMATTR Value 0
SYMBOL voltage -688 48 R180
WINDOW 123 0 0 Left 0
WINDOW 39 24 -12 Left 0
SYMATTR SpiceLine Rser=.1
SYMATTR InstName V1
SYMATTR Value SINE(0 163.293 60 0 0 0)
SYMBOL voltage -688 240 R180
WINDOW 123 0 0 Left 0
WINDOW 39 24 76 Left 0
SYMATTR SpiceLine Rser=.1
SYMATTR InstName V2
SYMATTR Value SINE(0 163.293 60 0 0 120)
SYMBOL voltage -688 464 R180
WINDOW 123 0 0 Left 0
WINDOW 39 24 76 Left 0
SYMATTR SpiceLine Rser=.1
SYMATTR InstName V3
SYMATTR Value SINE(0 163.293 60 0 0 240)
SYMBOL res 736 16 R0
SYMATTR InstName R1
SYMATTR Value 5.6k
TEXT 416 24 Left 0 !.ic v(VLpos) 140\n.ic v(VLneg) -140 \n *precharge
TEXT -680 -344 Left 0 !.model FWD D Ron=10m Roff=100e6 Vfwd=0.35 Vrev=600
TEXT -512 536 Left 0 !.tran 0 1 0
TEXT -512 584 Left 0 !.meas tran TP avg(V(n001)*I(V1)) *True power
TEXT -512 640 Left 0 !.meas tran VRMS rms(V(n001))
TEXT -512 688 Left 0 !.meas tran IRMS rms(I(V1))
TEXT -512 744 Left 0 !.meas tran AP avg(VRMS*IRMS) *Apparent power
TEXT -512 800 Left 0 !.meas tran PF param TP/AP *Power factor
TEXT -616 0 Left 0 ;200V between phases
TEXT 768 192 Left 0 !.step I1 0 100 10
TEXT -232 -144 Left 0 !k1 L9 L10 L11 0.5
TEXT 696 576 Left 0 !.meas tran VL avg(v(VLpos)-v(VLneg))\n.meas tran Pout param VL*I(I1)
TEXT -200 -184 Left 0 ;Line reactor


File 3phrect.plt

[Transient Analysis]
{
Npanes: 3
Active Pane: 2
{
traces: 1 {34603010,0,"I(V1)"}
X: (' ',1,0,0.1,1)
Y[0]: (' ',0,-120,20,120)
Y[1]: ('_',0,1e+308,0,-1e+308)
Amps: (' ',0,0,0,-120,20,120)
Log: 0 0 0
GridStyle: 1
},
{
traces: 1 {524291,0,"V(n001)"}
X: (' ',1,0,0.1,1)
Y[0]: (' ',0,-180,30,180)
Y[1]: ('_',0,1e+308,0,-1e+308)
Volts: (' ',0,0,0,-180,30,180)
Log: 0 0 0
GridStyle: 1
},
{
traces: 1 {524292,0,"V(VLpos,VLneg)"}
X: (' ',1,0,0.1,1)
Y[0]: (' ',0,225,5,280)
Y[1]: ('_',0,1e+308,0,-1e+308)
Volts: (' ',0,0,0,225,5,280)
Log: 0 0 0
GridStyle: 1
}
}


Log file from a run:

Circuit: * H:\Spice\test.asc

..step i1=0
Direct Newton iteration for .op point succeeded.
..step i1=10
..step i1=20
..step i1=30
..step i1=40
..step i1=50
..step i1=60
..step i1=70
..step i1=80
..step i1=90
..step i1=100


Measurement: tp
step AVG(v(n001)*i(v1)) FROM TO
1 4.92903 0 1
2 870.501 0 1
3 1719.76 0 1
4 2568.47 0 1
5 3406.9 0 1
6 4215.87 0 1
7 5002.64 0 1
8 5809.35 0 1
9 6569.61 0 1
10 7357.99 0 1
11 8134.66 0 1

Measurement: vrms
step RMS(v(n001)) FROM TO
1 114.699 0 1
2 114.415 0 1
3 113.542 0 1
4 112.69 0 1
5 111.896 0 1
6 111.095 0 1
7 110.262 0 1
8 109.522 0 1
9 108.701 0 1
10 107.999 0 1
11 107.301 0 1

Measurement: irms
step RMS(i(v1)) FROM TO
1 0.165922 0 1
2 10.1219 0 1
3 18.3089 0 1
4 25.879 0 1
5 33.501 0 1
6 41.1342 0 1
7 48.7225 0 1
8 56.68 0 1
9 64.3137 0 1
10 72.3274 0 1
11 80.387 0 1

Measurement: ap
step AVG(vrms*irms) FROM TO
1 19.0311 0 1
2 1158.09 0 1
3 2078.83 0 1
4 2916.3 0 1
5 3748.64 0 1
6 4569.8 0 1
7 5372.22 0 1
8 6207.71 0 1
9 6990.94 0 1
10 7811.25 0 1
11 8625.57 0 1

Measurement: pf
step tp/ap
1 0.258999
2 0.751669
3 0.827272
4 0.880729
5 0.908837
6 0.92255
7 0.931206
8 0.935827
9 0.939733
10 0.941973
11 0.943087

Measurement: vl
step AVG(v(vlpos)-v(vlneg)) FROM TO
1 280.846 0 1
2 269.649 0 1
3 264.674 0 1
4 261.622 0 1
5 259.052 0 1
6 256.417 0 1
7 253.744 0 1
8 251.29 0 1
9 248.669 0 1
10 246.405 0 1
11 244.15 0 1

Measurement: pout
step vl*i(i1)
1 0
2 2696.49
3 5293.48
4 7848.67
5 10362.1
6 12820.9
7 15224.6
8 17590.3
9 19893.5
10 22176.5
11 24415


Date: Sat Jan 16 05:28:55 2010
Total elapsed time: 21.350 seconds.

tnom = 27
temp = 27
method = modified trap
totiter = 34546
traniter = 34542
tranpoints = 15714
accept = 10511
rejected = 5203
matrix size = 11
fillins = 12
solver = Normal
Matrix Compiler1: off
Matrix Compiler2: off
 
J

JosephKK

Jan 1, 1970
0
I am playing around with modeling 3-phase rectifiers. I think PFC
would be a real good thing for 3-phase rectifiers. May be more than
a tad interesting to implement though.

Interesting to do if you need to implement synchronous regeneration back
into the supply from a big variable frequency drive.


Following on from your posted simulations, I did this, it's a simplified
3 phase, 100 amp PSU circuit from a VFD. Regeneration circuitry omitted.
Power factor varies from 0.26 at no load to 0.94 at full load.

Plot definition file and log file included.

File 3phrect.asc


Version 4
SHEET 1 1652 864
WIRE 192 -384 64 -384
WIRE 288 -384 192 -384
WIRE 560 -384 288 -384
WIRE 624 -384 560 -384
WIRE 944 -384 624 -384
WIRE 64 -288 64 -384
WIRE 192 -288 192 -384
WIRE 288 -288 288 -384
WIRE -192 -64 -688 -64
WIRE 288 -64 288 -224
WIRE 288 -64 -112 -64
WIRE -688 -48 -688 -64
WIRE 624 -16 624 -384
WIRE 752 -16 624 -16
WIRE -688 32 -816 32
WIRE 624 32 624 -16
WIRE 752 32 752 -16
WIRE 944 32 944 -384
WIRE -176 112 -688 112
WIRE 192 112 192 -224
WIRE 192 112 -96 112
WIRE -688 144 -688 112
WIRE 624 160 624 96
WIRE 752 160 752 112
WIRE 752 160 624 160
WIRE -816 256 -816 32
WIRE -688 256 -688 224
WIRE -688 256 -816 256
WIRE -192 288 -688 288
WIRE 64 288 64 -224
WIRE 64 288 -112 288
WIRE -688 368 -688 288
WIRE 64 368 64 288
WIRE 192 368 192 112
WIRE 288 368 288 -64
WIRE -816 496 -816 256
WIRE -752 496 -816 496
WIRE -688 496 -688 448
WIRE -688 496 -752 496
WIRE 64 512 64 432
WIRE 192 512 192 432
WIRE 192 512 64 512
WIRE 288 512 288 432
WIRE 288 512 192 512
WIRE 544 512 288 512
WIRE 624 512 624 160
WIRE 624 512 544 512
WIRE 944 512 944 112
WIRE 944 512 624 512
WIRE -752 544 -752 496
FLAG 544 512 VLneg
FLAG 560 -384 VLpos
FLAG -752 544 0
SYMBOL diode 48 432 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D1
SYMATTR Value FWD
SYMBOL diode 176 432 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D2
SYMATTR Value FWD
SYMBOL diode 272 432 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D3
SYMATTR Value FWD
SYMBOL diode 48 -224 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D4
SYMATTR Value FWD
SYMBOL diode 176 -224 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D5
SYMATTR Value FWD
SYMBOL diode 272 -224 M180
WINDOW 0 24 72 Left 0
WINDOW 3 24 0 Left 0
SYMATTR InstName D6
SYMATTR Value FWD
SYMBOL ind2 -96 304 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L9
SYMATTR Value 220u
SYMATTR Type ind
SYMBOL ind2 -80 128 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L10
SYMATTR Value 220u
SYMATTR Type ind
SYMBOL ind2 -96 -48 M270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L11
SYMATTR Value 220u
SYMATTR Type ind
SYMBOL cap 608 32 R0
SYMATTR InstName C1
SYMATTR Value 5600u
SYMATTR SpiceLine V=400 Rser=.5
SYMBOL current 944 32 R0
WINDOW 123 0 0 Left 0
WINDOW 39 24 116 Left 0
SYMATTR SpiceLine load
SYMATTR InstName I1
SYMATTR Value 0
SYMBOL voltage -688 48 R180
WINDOW 123 0 0 Left 0
WINDOW 39 24 -12 Left 0
SYMATTR SpiceLine Rser=.1
SYMATTR InstName V1
SYMATTR Value SINE(0 163.293 60 0 0 0)
SYMBOL voltage -688 240 R180
WINDOW 123 0 0 Left 0
WINDOW 39 24 76 Left 0
SYMATTR SpiceLine Rser=.1
SYMATTR InstName V2
SYMATTR Value SINE(0 163.293 60 0 0 120)
SYMBOL voltage -688 464 R180
WINDOW 123 0 0 Left 0
WINDOW 39 24 76 Left 0
SYMATTR SpiceLine Rser=.1
SYMATTR InstName V3
SYMATTR Value SINE(0 163.293 60 0 0 240)
SYMBOL res 736 16 R0
SYMATTR InstName R1
SYMATTR Value 5.6k
TEXT 416 24 Left 0 !.ic v(VLpos) 140\n.ic v(VLneg) -140 \n *precharge
TEXT -680 -344 Left 0 !.model FWD D Ron=10m Roff=100e6 Vfwd=0.35 Vrev=600
TEXT -512 536 Left 0 !.tran 0 1 0
TEXT -512 584 Left 0 !.meas tran TP avg(V(n001)*I(V1)) *True power
TEXT -512 640 Left 0 !.meas tran VRMS rms(V(n001))
TEXT -512 688 Left 0 !.meas tran IRMS rms(I(V1))
TEXT -512 744 Left 0 !.meas tran AP avg(VRMS*IRMS) *Apparent power
TEXT -512 800 Left 0 !.meas tran PF param TP/AP *Power factor
TEXT -616 0 Left 0 ;200V between phases
TEXT 768 192 Left 0 !.step I1 0 100 10
TEXT -232 -144 Left 0 !k1 L9 L10 L11 0.5
TEXT 696 576 Left 0 !.meas tran VL avg(v(VLpos)-v(VLneg))\n.meas tran Pout param VL*I(I1)
TEXT -200 -184 Left 0 ;Line reactor


File 3phrect.plt

[Transient Analysis]
{
Npanes: 3
Active Pane: 2
{
traces: 1 {34603010,0,"I(V1)"}
X: (' ',1,0,0.1,1)
Y[0]: (' ',0,-120,20,120)
Y[1]: ('_',0,1e+308,0,-1e+308)
Amps: (' ',0,0,0,-120,20,120)
Log: 0 0 0
GridStyle: 1
},
{
traces: 1 {524291,0,"V(n001)"}
X: (' ',1,0,0.1,1)
Y[0]: (' ',0,-180,30,180)
Y[1]: ('_',0,1e+308,0,-1e+308)
Volts: (' ',0,0,0,-180,30,180)
Log: 0 0 0
GridStyle: 1
},
{
traces: 1 {524292,0,"V(VLpos,VLneg)"}
X: (' ',1,0,0.1,1)
Y[0]: (' ',0,225,5,280)
Y[1]: ('_',0,1e+308,0,-1e+308)
Volts: (' ',0,0,0,225,5,280)
Log: 0 0 0
GridStyle: 1
}
}


Log file from a run:

Circuit: * H:\Spice\test.asc

.step i1=0
Direct Newton iteration for .op point succeeded.
.step i1=10
.step i1=20
.step i1=30
.step i1=40
.step i1=50
.step i1=60
.step i1=70
.step i1=80
.step i1=90
.step i1=100


Measurement: tp
step AVG(v(n001)*i(v1)) FROM TO
1 4.92903 0 1
2 870.501 0 1
3 1719.76 0 1
4 2568.47 0 1
5 3406.9 0 1
6 4215.87 0 1
7 5002.64 0 1
8 5809.35 0 1
9 6569.61 0 1
10 7357.99 0 1
11 8134.66 0 1

Measurement: vrms
step RMS(v(n001)) FROM TO
1 114.699 0 1
2 114.415 0 1
3 113.542 0 1
4 112.69 0 1
5 111.896 0 1
6 111.095 0 1
7 110.262 0 1
8 109.522 0 1
9 108.701 0 1
10 107.999 0 1
11 107.301 0 1

Measurement: irms
step RMS(i(v1)) FROM TO
1 0.165922 0 1
2 10.1219 0 1
3 18.3089 0 1
4 25.879 0 1
5 33.501 0 1
6 41.1342 0 1
7 48.7225 0 1
8 56.68 0 1
9 64.3137 0 1
10 72.3274 0 1
11 80.387 0 1

Measurement: ap
step AVG(vrms*irms) FROM TO
1 19.0311 0 1
2 1158.09 0 1
3 2078.83 0 1
4 2916.3 0 1
5 3748.64 0 1
6 4569.8 0 1
7 5372.22 0 1
8 6207.71 0 1
9 6990.94 0 1
10 7811.25 0 1
11 8625.57 0 1

Measurement: pf
step tp/ap
1 0.258999
2 0.751669
3 0.827272
4 0.880729
5 0.908837
6 0.92255
7 0.931206
8 0.935827
9 0.939733
10 0.941973
11 0.943087

Measurement: vl
step AVG(v(vlpos)-v(vlneg)) FROM TO
1 280.846 0 1
2 269.649 0 1
3 264.674 0 1
4 261.622 0 1
5 259.052 0 1
6 256.417 0 1
7 253.744 0 1
8 251.29 0 1
9 248.669 0 1
10 246.405 0 1
11 244.15 0 1

Measurement: pout
step vl*i(i1)
1 0
2 2696.49
3 5293.48
4 7848.67
5 10362.1
6 12820.9
7 15224.6
8 17590.3
9 19893.5
10 22176.5
11 24415


Date: Sat Jan 16 05:28:55 2010
Total elapsed time: 21.350 seconds.

tnom = 27
temp = 27
method = modified trap
totiter = 34546
traniter = 34542
tranpoints = 15714
accept = 10511
rejected = 5203
matrix size = 11
fillins = 12
solver = Normal
Matrix Compiler1: off
Matrix Compiler2: off

Thanks Fred. I am learning some stuff about spice from this.
It seems the power factor is not so bad as the harmonics.
 
F

Fred Abse

Jan 1, 1970
0
Thanks Fred. I am learning some stuff about spice from this. It seems the
power factor is not so bad as the harmonics.

The way true and apparent power were calculated should include the effect
of harmonics.
 
J

JosephKK

Jan 1, 1970
0
The way true and apparent power were calculated should include the effect
of harmonics.

While is most certainly does include the power in the harmonics, it does not
calculate the spectral power of each of the various harmonics. I am
interested in the harmonic power by harmonic number.
 
F

Fred Abse

Jan 1, 1970
0
While is most certainly does include the power in the harmonics, it does
not calculate the spectral power of each of the various harmonics. I am
interested in the harmonic power by harmonic number.

Whilst you are investigating that, it would be interesting to evaluate
the effect of different line reactors on harmonic currents in the supply.
 
J

JosephKK

Jan 1, 1970
0
It is often better to start off with knowing the real power.
Stripping that out
of the waveform makes the wave form you need to process much easier to
deal with.
Only if the FFT in spice works on exactly an integer number of cycles
does it
make the FFT into a single spike. The tail of the skirt on the
fundamental shifts
the other harmonics up.

I studied the impacts of various windowing schemes some 25 years ago.
 
Top