1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
|
.PS
# Rectifiers.m4
cct_init
tmax = 3.5
period = tmax/1.75
eamp = 0.5
omega = twopi_/period
ed = eamp/6
r = 0.95
# For DC voltages
ted = asin(ed/eamp)/twopi_*period
npts = 40; sum = 0
for i=0 to npts do {
t = ted+(period/2-2*ted)*i/npts
sum += (eamp*cos(omega*t-pi_/2) - ed)*r }
define(`Sine',`Cosine(eamp,omega,`$1',-pi_/2)')
define(`axis',`line thick 0.4 right tmax chop -tmax*0.04 chop 0')
Threephase: [ linethick_(1)
Ai: axis ; "$N_o$" ljust
EOrig: Ai.start+(tmax*0.04,0)
E1: sinusoid(eamp,omega,-pi_/2,-ted,tmax) with .Origin at EOrig
E2: sinusoid(eamp,omega,-pi_/2-twopi_/3,-ted,tmax) with .Origin at EOrig
E3: sinusoid(eamp,omega,-pi_/2+twopi_/3,-ted,tmax) with .Origin at EOrig
"$e_1$" at EOrig+(period/3,eamp*0.8) ljust above
"$e_2$" at EOrig+(2*period/3,eamp*0.8) ljust above
"$e_3$" at EOrig+(period,eamp*0.8) ljust above
Ad: axis with .end at Ai.end+(0,-eamp*2.1); "$N_o$" ljust
DOrig: Ad.start+(tmax*0.04,0)
Id: axis with .end at Ad.end+(0,-eamp*1.2); "${}0$" ljust
IOrig: Id.start+(tmax*0.04,0)
for i=1 to 11 by 2 do {
tl = max(0,period/2-i*period/6)
tr = min(period/2,tmax-(i*period/6-period/2))
sinusoid(eamp,omega,-pi_/2,tl,tr,thick 0.4 dashed) \
with .Origin at DOrig+(i*period/6-period/2,0)
tl = max(period/12,-(i*period/6-period/2+period/12) )
tr = period/2-period/12
S1: sinusoid(eamp*r,omega,-pi_/2,tl,tr) \
with .Origin at DOrig+(i*period/6-period/2,0)+(0,-ed*r); round(at S1.End)
S2: sinusoid(eamp*r,omega,-pi_/2,tl,tr) \
with .Origin at IOrig+(i*period/6-period/2,0)+(0,-ed*r); round(at S2.End)
}
"$e_1$" at DOrig+(period/3,eamp*0.8) ljust above
"$e_2$" at DOrig+(2*period/3,eamp*0.8) ljust above
"$e_3$" at DOrig+(period,eamp*0.8) ljust above
"$e_L$" at DOrig+(period/4,eamp*0.8) below
"$i_L$" at IOrig+(period/6,eamp*0.6) rjust above
vEd = r*eamp*cos(pi_/12)/(5*pi_/12) - r*ed
VEd: axis with .end at Ad.end+(0,vEd); "$E_D$" ljust
IEd: axis with .end at Id.end+(0,vEd); "$I_D$" ljust
]
Cct3:[
No: dot; "$N_o$" at last [].s below rjust
E2: No+(Rect_(dimen_,60))
E3: No+(Rect_(dimen_,-60))
E1: No+(-dimen_,0)
inductor(from No to E2,W); round; "$e_2$" ljust
inductor(from No to E3,W); round; "$e_3$" ljust
inductor(from E1 to No,W); round(at E1); "$e_1$" at E1 above
D3: diode(down_ from E3); b_current(i_3,rjust); llabel(,,D_3)
line from E1 to (E1.x,D3.start.y+dimen_/3) then right_ (E3.x-E1.x)/2 \
then down_ dimen_/3
D1: diode(down_); b_current(i_1,rjust); llabel(,,D_1); dot
line from E2 left_ E2.x-E1.x+dimen_/3 then down_ E2.y-E3.y \
then to 2 between D3.start and D1.start; corner
D2: diode(down_); b_current(i_2,rjust); llabel(,,D_2)
{ line from D2.end to D3.end }
arrowline(from D1.end down_ elen_/2); rlabel(,i_L)
resistor(right_ elen_); rlabel(+,e_L,-); llabel(,R)
line to (Here,No) then to No
] with .e at Threephase.w-(0.5,0)
Fullwave: [
linethick_(1)
Ai: axis ; "$N_o$" ljust
EOrig: Ai.start+(tmax*0.05,0)
E1: sinusoid(eamp,omega,-pi_/2,-ted,tmax) with .Origin at EOrig
"$e_1$" at EOrig+(period/3,eamp*0.8) ljust above
E2: sinusoid(eamp,omega, pi_/2,-ted,tmax) with .Origin at EOrig
"$e_2$" at EOrig+(period*5/6,eamp*0.8) ljust above
Ad: axis with .end at Ai.end+(0,-eamp*2.1); "$N_o$" ljust
DOrig: Ad.start+(tmax*0.05,0)
Id: axis with .end at Ad.end+(0,-eamp*1.2); "${}0$" ljust
IOrig: Id.start+(tmax*0.05,0)
for i=0 to 3 do {
if i<3 then { tf = period/2 } else { tf = Ad.end.x-(DOrig.x+3*period/2) }
sinusoid(eamp,omega,-pi_/2,0,tf,thick 0.4 dashed) \
with .Origin at DOrig+(i*period/2,0)
line from DOrig+(i*period/2-ted,0) right 2*ted
line from IOrig+(i*period/2-ted,0) right 2*ted
if i<3 then {tf = period/2-ted } else {tf = Ad.end.x-(DOrig.x+3*period/2) }
Ed: sinusoid(eamp*r,omega,-pi_/2,ted,tf) \
with .Origin at DOrig+(i*period/2,-ed*r)
Ed: sinusoid(eamp*r,omega,-pi_/2,ted,tf) \
with .Origin at IOrig+(i*period/2,-ed*r)
}
"$e_1$" at DOrig+(period/6,eamp*0.9) rjust above
"$e_2$" at DOrig+(period/6+period/2,eamp*0.9) rjust above
"$e_L$" at DOrig+(period/4,eamp*0.8) below
"$i_L$" at IOrig+(period/6,eamp*0.6) rjust above
vEd = sum/(period/2/(period/2-2*ted)*npts)
VEd: axis with .end at Ad.end+(0,vEd); "$E_D$" ljust
IEd: axis with .end at Id.end+(0,vEd); "$I_D$" ljust
] with .sw at Threephase.nw+(0,0.5)
Cct2:[
T: transformer(right_ elen_,R,8,AW,8)
line up elen_/2 from T.P1
gap(right_ elen_)
{ sinusoid(0.08,omega*8,-pi_/2,0,twopi_/(omega*8)) with .c at last [] }
line to T.P2
line from T.S1 to (T.P1,T.S1) then down elen_/2
D1: diode(down_ elen_*3/4); rlabel(,D_1)
line from T.S2 to (T.P2,T.S2) then to (T.P2,D1.start)
D2: diode(down_ elen_*3/4); rlabel(,D_2)
corner; line to D1.end; corner
dot(at 0.5 between D1.end and D2.end)
arrowline(down elen_/2); rlabel(,i_L)
resistor(right_ elen_); rlabel(+,e_L,-); llabel(,R)
line to (Here,T.TS)-(0,elen_/2) then left Here.x-T.TS.x then to T.TS
{"$N_o$" at T.TS-(0,elen_/2) below }
thinlines_
move to T.TS-(0,0.1)
{ arrow to (T.P1,Here) chop 0.05 "$e_1$" below }
{ arrow to (T.P2,Here) chop 0.05 "$e_2$" below }
linethick_(1)
] at (Cct3,Fullwave)
Halfwave: [
linethick = 1
Ai: axis ; "$N_o$" ljust
EOrig: Ai.start+(tmax*0.05,0)
Ei: sinusoid(eamp,omega,-pi_/2,0,tmax) with .Origin at EOrig
"$e_i$" at EOrig+(period/3,eamp*0.8) ljust above
Ad: axis with .end at Ai.end+(0,-eamp*1.75); "$N_o$" ljust
DOrig: Ad.start+(tmax*0.05,0)
sinusoid(eamp,omega,-pi_/2,0,period/2,thick 0.4 dashed) with .Origin at DOrig
sinusoid(eamp,omega,-pi_/2,0,period/2,thick 0.4 dashed) \
with .Origin at DOrig+(period,0)
"$e_i$" at DOrig+(period/5,eamp*0.9) rjust above
line from Ad.start to DOrig+(ted,0)
Ed: sinusoid(eamp*r,omega,-pi_/2,ted,period/2-ted) \
with .Origin at DOrig+(0,-ed*r)
"$e_L$" at DOrig+(period/3,eamp*0.6) below
line from Ed.End right period/2+2*ted
Ed2: sinusoid(eamp*r,omega,-pi_/2,ted,period/2-ted) \
with .Origin at DOrig+(period,-ed*r)
line from Ed2.End to Ad.end
vEd = sum/(period/(period/2-2*ted)*npts)
VEd: axis with .end at Ad.end+(0,vEd); "$E_D$" ljust above
Id: axis with .end at Ad.end+(0,-eamp*1.0); "${}0$" ljust
IOrig: Id.start+(tmax*0.05,0)
line from Id.start to IOrig+(ted,0)
Sd: sinusoid(eamp*r,omega,-pi_/2,ted,period/2-ted) \
with .Origin at IOrig+(0,-ed*r)
"$i_L$" at IOrig+(period/3,eamp*0.7) above
line from Sd.End right period/2+2*ted
Sd2: sinusoid(eamp*r,omega,-pi_/2,ted,period/2-ted) \
with .Origin at IOrig+(period,-ed*r)
line from Sd2.End to Id.end
IEd: axis with .end at Id.end+(0,vEd); "$I_D$" ljust above
] with .sw at Fullwave.nw+(0,0.5)
Cct1:[ diode(down_ elen_); b_current(i_L,rjust,O,E); rlabel(D)
resistor(right_ elen_); rlabel(+,e_L,-); llabel(,R)
line up elen_
{ "$N_o$" ljust below }
gap(left_ elen_); rlabel(-,e_i,+)
] at (Cct3,Halfwave)
.PE
|