Figure 2.1(a) shows the symbol for a diode, which allows an electric current (as a low resistance) in the forward direction, while blocking current (as a large resistance) in the reverse direction. Figure 2.1(b) shows the v‐i characteristic of a practical diode, which can be approximated by the Shockley diode equation (named after transistor coinventor William Bradford Shockley) or the diode law:
where IS, η, and VT are the leakage (reverse saturation) current, the empirical constant (called the emission coefficient or ideality factor) between 1 and 2, and the thermal voltage, respectively.
Note that the thermal voltage VT is given by
When the signal applied to such electronic devices as diodes and transistors is large in comparison with the bias level, they show ON‐OFF behavior, functioning like a switch.
The v‐i characteristic curve of a diode in terms of its static behavior can be approximated by a solid/dotted piecewise linear (PWL) line for the forward‐/reverse‐bias mode as depicted in Figure 2.2(a). According to the approximation, the operation of a diode in the forward‐/reverse‐bias mode is represented by the equivalent model depicted in Figure 2.2(b).
Figure 2.3(a) and (b) shows the high‐frequency AC models of forward‐/reverse‐biased diodes, respectively. Note that the junction (or depletion or transition) capacitance defined as the ratio of the incremental change (Δqj) in the charge (in the depletion layer) to that (ΔvD) in the anode‐to‐cathode bias voltage vD can be expressed as
where M: junction gradient coefficient, Vj: (built‐in) junction potential with the value of 0.5∼0.9 V for a Si (silicon) diode and 0.2∼0.6 V for a Ge (germanium) diode, and Cj0: zero‐bias junction capacitance
Note also that the diffusion (or transit time) capacitance due to the diffusion of carriers from anode to cathode in the forward‐bias mode can be expressed as
where tT: transit or storage time taken for the charge to cross the diode, IQ: diode current at the operating point Q, η: emission coefficient or ideality factor, and,
Note also that the dynamic resistance rd can be approximated as
The procedure of performing a large‐signal analysis for diode circuits can be summarized:
See the following examples.
For the circuit of Figure 2.5(a), replace the diodes (assumed to be ON) by the CVD model (that is, the PWL model with rf = 0 Ω and VTD = 0.7 V) and find the voltages v1 and v2. Compare them and those obtained using the exponential model (Eq. 2.1.1) with Is = 10 × 10−15 A and ηVT = 25.9 mV.
Note that there are four possible states for the two diodes D1 and D2: ON‐ON, ON‐OFF, OFF‐ON, and OFF‐OFF. First, assuming that both D1 and D2 are ON, we replace them by the Constant Voltage Drop (CVD) model to draw the equivalent as shown in Figure 2.5(b). Then the voltages v1 and v2 can easily be found as
yielding
However, = −0.27 mA < 0 contradicts the assumption that D1 is ON. That is why we make another assumption that D1 and D2 are ON and OFF, respectively, draw the corresponding equivalent as depicted in Figure 2.5(c) and get
Still, = 6.7 V > 0 contradicts the assumption that D2 is OFF. That is why we make another assumption that D1 and D2 are OFF and ON, respectively, draw the corresponding equivalent as depicted in Figure 2.5(d) and get
This yields = v1 = −0.2 V < 0 and = i = 1.02 mA > 0, suiting the assumption that D1 and D2 are OFF and ON, respectively. Therefore, the solution is v1 = −0.2 V and v2 = v1 − 0.7 = −0.9 V.
If we use the (nonlinear) exponential model (2.1.1) for a more exact analysis, KCL can be applied at nodes 1 and 2 to yield a set of two node equations in v1 and v2 as
where Eq. (2.1.1a) has been used to express diode current iD in terms of diode voltage vD. To solve this set of nonlinear equations, the MATLAB function ‘fsolve()
’ can be used as listed in the following script “elec02e02.m”:
%elec02e02.m
Is=10e-15; nVT=0.0259; % Diode exponential model parameters
Vs1=10; Vs2=-6; R1=1e4; R2=5e3; % Circuit parameter values
iD = @(vD)Is*(exp(vD/nVT)-1); % Eq. (2.2.1a)
eqs = @(v)[(Vs1-v(1))/R1-iD(v(1))-iD(v(1)-v(2));
iD(v(1)-v(2))-(v(2)-Vs2)/R2]; % Eq. (E2.2.5)
v = fsolve(eqs,[1 1]), ID2=iD(v(1)-v(2))
Running this script yields the following, which is close to the above result with the CVD model:
v = -0.2289 -0.8855, ID2 = 0.0010
Figure 2.6(a1) and (a2) respectively show clipper circuits for clipping the upper and lower portion of the input signal above/below the reference level of (V1 + VD)/(−V2 −VD), which is determined by the DC voltage source connected in series with the diode. Figure 2.6(b1) and (b2) show their input and output voltage waveforms obtained from PSpice simulation. Running the following MATLAB script yields a similar result.
%elec02f06_1_clipper.m
Is=10e-15; nVT=0.0259; VD=0.7;
iD=@(vD)Is*(exp(vD/nVT)-1); % Eq. (2.2.1a)
t=[0:0.01:2.5]; vi=10*sin(2*pi*t); R=1e3; V1=5;
v10=0; Nt=length(t); options=optimoptions ('fsolve','Display','none');
for n=1:Nt
eq = @(v)vi(n)-v-R*iD(v-V1); % KCL equation in v
if n>1, v10=v(n-1); end; v(n)=fsolve(eq,v10,options);
end
plot(t,vi,'r:', t,v,'g', t,V1+VD,'k:')
Figure 2.6(a3) shows a two‐level clipper circuit, which combines two clipper circuits for clipping the upper and lower portions of the input signal so that the output voltage can be kept within the range of [−V2 −VD, V1+VD]. Figure 2.6(b3) shows its input and output voltage waveforms.
Figure 2.7(a1) and (a2) shows positive/negative clamper circuits (called clamped capacitors or DC restorers), which push the input signal (within [Vi,min, Vi,max]) upward/downward by the positive/negative capacitor voltage charged (when vi = Vi,min/Vi,max), i.e. VC = (−Vi,min + Vr −VD)/(Vi,max −Vr −VD) so that their outputs are related with their inputs as
Note that the trough/peak level of the positive/negative clamper outputs will be (Vr −VD)/(Vr+VD), respectively, where VD depends on the capacitance C and how long C has been charged.
The diode in the circuit of Figure 2.8(a) can be represented by the CVD model as shown in Figure 2.8(b), which is valid in the forward mode of the diode, i.e. while vi ≥ Vos where the offset or cut‐in voltage Vos (slightly less than the threshold voltage VTD) is the diode voltage at which the diode starts to turn on. Here, we can find the cut‐in or ignition angle ϕ at which the diode starts to turn on:
Similarly, the extinction angle at the end of the (first) positive half‐cycle is π − ϕ (see Figure 2.8(c)). Note that the peak inverse voltage (PIV) of the diode is Vm.
Figure 2.9.1(a) shows the PSpice schematic of a half‐wave rectifier composed of a diode, a capacitor, and a resistor, called a peak rectifier, which conducts in the forward direction for vD ≥ VTD = 0.65 V. Figure 2.9.1(b) and (c) shows the equivalent circuits of the rectifier for vi ≥ vo+VTD and vi < vo+VTD, respectively. Figure 2.9.1(d) shows the PSpice simulation result obtained from the Transient Analysis with Run_to_time of 40 ms. From this PSpice simulation result, we find the upper/lower limit VH/VL of the output voltage vo(t) and the rising/falling period TR/TF as
To obtain these parameters, after getting the output voltage waveform in the PSpice A/D (Probe) window, click the Toggle Cursor button on the toolbar to activate the two cross‐type cursors on the graph. Then use the left/right mouse button and/or arrow/shift‐arrow key or click the appropriate toolbar button to move them to the peak/trough and read their coordinates from the Probe Cursor box. If you have two or more waveforms on the Probe window, you can choose one which you want to take a close look at by clicking the name of the corresponding variable under the graph.
To get the upper/lower limit VH/VL of the output voltage vo(t) and the rising/falling period TR/TF via an analytical approach using MATLAB, we set up the following equations:
Noting that VH is already known as VH = Vm − VTD = 5 − 0.65 = 4.35, we solve this set of equations to find VL = 3.23, TR = 0.0018, and TF = 0.0149 by saving these equations into an M‐file named, say, ‘halfwave_rectifier_eq.m’ and running the following MATLAB script “do_halfwave_rectifier.m.”
%do_halfwave_rectifier.m
clear
global Vm f VTD
Vm=5; f=60; VTD=0.65;
VH=Vm-VTD; % Local maximum (High Voltage) of vo(t)
R=1e4; C=5e-6;
x0=[0 0 0]; % Initial guess of [VL TR TF]
% VL: Low Voltage (Local Min) of vo(t), TR: Rise Time, TF: Falling Time
x=fsolve('halfwave_rectifier_eq',x0,optimoptions ('fsolve'),C,R)
VL=x(1); TR=x(2); TF=x(3);
fprintf('\n VH=%8.4f, VL=%8.4f, TR=%8.4f, TF=%8.4f\n', VH,VL,TR,TF)
function y=halfwave_rectifier_eq(x,C,R)
global Vm f VTD
VH=Vm-VTD; w=2*pi*f; T=1/f;
VL=x(1); TR=x(2); TF=x(3);
y=[VH*exp(-TF/R/C)-VL; % Eq. (2.2.3a)
VH-VL-Vm*(1-cos(w*TR)); % Eq. (2.2.3b)
TR+TF-T]; % Eq. (2.2.3c)
Now, to perform the MATLAB simulation of the rectifier circuit with capacitor filter in Figure 2.9.1(a), we discretize the integro‐differential equation for the voltage‐current relationship (VCR) of the capacitor as
where
The numerical solution process to find the output voltage of a half‐wave rectifier as shown in Figure 2.9.1(a) has been cast into the following MATLAB function ‘rectifier_RC()
’. The following MATLAB script “elec02f09.m” uses this function to find vo(t) of the half‐wave rectifier (in Figure 2.9.1(a)) as Figure 2.9.2 together with the values of VH = 4.36, VL = 3.26, TR = 0.002, and TF = 0.0147.
function [vo,vD,iD,iR]=rectifier_RC(vit,R,C,Is,nVT)
% vit = [vi; t]: 2-row matrix consisting of the input signal and time
% R,C = Resistance and Capacitance
% Copyleft: Won Y. Yang, wyyang53@hanmail.net, CAU for academic use only
if nargin<5, nVT=(273+27)/11605; end % Thermal voltage
iDv = @(vD)Is*(exp(vD/nVT)-1); % Eq. (2.1.1a)
[Nr,Nc]=size(vit);
if Nc==2, vi=vit(:,1); ts=vit(:,2); N=Nr;
elseif Nr==2, vi=vit(1,:); ts=vit(2,:); N=Nc;
end
dt=ts(2)-ts(1); % Sampling interval
vo(1) = 0; % Initial value of the output voltage vo(t)
for n=1:N
vD(n) = vi(n)-vo(n); iD(n) = iDv(vD(n)); iR(n) = vo(n)/R;
iC(n) = iD(n) - iR(n); % Eq. (2.2.4b)
vo(n+1) = vo(n) + iC(n)/C*dt; % Eq. (2.2.4a)
end
vo = vo(2:end); % To make the size of vo equal to that of vi
%elec02f09.m
% To simulate the rectifier in Fig. 2.9.1(a)
clear, clf
Vm=5; f=60; w=2*pi*f; P=1/f; % Amplitude, Frequency, Period of vi(t)
R=1e4; C=5e-6; % Values of R and C of the RC filter
dt=1e-5; t=0:dt:0.04; vi=Vm*sin(w*t); % Time range, Input voltage vi(t)
Is=1e-14; % Saturation current
vo=rectifier_RC([vi; t],R,C,Is);
subplot(313), plot(t,vi,'g', t,vo,'r')
N1=floor(P/dt); nn0=1:N1;
[VH,imax]=max(vo(nn0)); VH % The 1st peak value of vo(t)
tH1=t(imax); % The 1st peak time
N2=2*N1+10; nn1=N1:N2;
[VL,imin]=min(abs(vo(nn1))); VL
tL1=t(N1-1+imin); % The 1st valley time
[emin,imin]=min(abs(vo(nn1)-VH));
tH2=t(N1-1+imin); % The 2nd peak time
TF=tL1-tH1, TR=tH2-tL1 % Falling/Rising period
>>elec02f09
VH = 4.3567 % Upper limit (High value) of the output voltage
VL = 3.2586 % Lower limit (Low value) of the output voltage
TF = 0.0147 % Falling time
TR = 0.0020 % Rising time
These results are close to those obtained via an analytical approach or the PSpice simulation results depicted in Figure 2.9.1(d).
One observation about the behavior of the output voltage vo(t) made from Figures 2.9.1(d) or 2.9.2 is that vo(t) follows the input voltage vi(t) = Vmsin (ωt) = 5 sin (2πft) (f = 60 Hz) promptly when rising up, but very lazily when falling down, which is helpful for making the rectifier output vo(t) smooth with a small ripple. Why are the behaviors of the circuit different for the two cases of the capacitor being charged and discharged? It is because the time constant of the circuit with the capacitor being charged (via the diode) from the source is much shorter than that with the diode off and the capacitor being discharged, as can be seen from the equivalent circuits with the diode ON/OFF depicted in Figure 2.9.1(b) and (c):
(cf.) This kind of circuits can be used not only for rectifying and smoothing an AC voltage into a DC voltage in power supplies, but also for demodulating a conventional amplitude modulated (AM) signal to restore the message signal in communication systems.
Figure 2.10(a1) and (a2) shows a full‐wave rectifier using a center‐tapped transformer and another full‐wave rectifier using a diode bridge, respectively.
Figure 2.10(b1) and (b2) shows their input‐output relationships, called voltage transfer characteristic (VTC):
Figure 2.10(c1) and (c2) shows their PSpice simulation results (obtained from the Transient analysis with vi(t) = Vm sin (2πt) (Vm = 5 V)) for the output voltage vo(t) and a reversed diode voltage −vD(t), from which we see their PIVs for a diode as
Figure 2.11(a) shows the PSpice schematic of a rectifier circuit in which a full‐wave rectified voltage vi(t) = |10 sin (2π60t)| is made smooth by an LC low‐pass filter as can be observed from the input and output signals and their spectra in Figure 2.11(b) and (c), respectively. We are going to find the condition on LC (with R = 10 kΩ) that should be satisfied to keep the relative magnitude of the major harmonic component to the DC component less than rmax, say, 5%. To this end, we will perform the Fourier analysis to find the two leading frequency components (including the DC term) of the input vi(t) and output vo(t).
Since the input voltage vi(t) to the LC filter is a full‐wave rectified cosine wave, we can use (E1.5.7) (in Example 1.5) to write its Fourier series representation as
The transfer function and frequency response of the LCR filter are
Thus, the magnitudes of the DC component and the first harmonic in the output are
Consequently, we can write the condition on LC (with R = 10 kΩ) for the relative magnitude of the major harmonic to the DC component to be less than rmax as
It seems to be good to determine the admissible region for (C, L) satisfying the design specification on filtering off harmonics with rmax = 5 and 10%. This can be done by saving Eq. (2.2.11) in an M‐file named ‘elec02f12_f.m’ and running the following MATLAB script “elec02f12.m” that uses the nonlinear equation solver ‘fsolve()
’ to solve Eq. (2.2.11) for L at different values of C in some range and plot the C-L curves for rmax = 5 and 10% as shown in Figure 2.12. Note that the region below the curves in Figure 2.12 is not admissible in the sense that no positive values of (C, L) in the region can satisfy the above inequality constraint (2.2.11).
%elec02f12.m
clear, clf
global R w0
R=1e4; w0=2*pi*60;
CC=logspace(-7,-3,100); % Range of C to 100 points on [10^-7,10^-3]
ftn='elec02f12_f'; gss='brgm'; % The function to solve
ratioms=[0.05 1];
for i=1:numel(ratioms)
for m=1:length(CC)
C= CC(m); % Given the value of C
if m<2, L0=10; else L0=LL(m-1); end % Initial guess of L
LL(m)= fsolve(ftn,L0,optimset('Display','off'),C,ratioms(i));
end
loglog(CC,LL,gss(i)), hold on
end
plot(1e-6,50,'mo'); axis([CC([1 end]) 1e-3 1e3]);
xlabel('C'); ylabel('L')
function y=elec02f12_f(L,C,r_max)
global R w0
w=2*w0; y= (1-w^2*L*C)^2 + (w*L/R)^2 - (2/3/r_max)^2; % Eq. (2.2.11)
Figure 2.13(a) shows a basic precision half‐wave rectifier circuit, which consists of an OP amp (having a diode in its negative‐feedback path) and a resistor where the OP amp output voltage vo0 is basically determined as A(v+ − v−) = A(vi − v−) (A: the open‐loop gain) unless it exceeds the saturation voltage ±Vom (Eq. (5.1.1) in Section 5.1). How will it work? Let us assume that the diode is off so that no current flows through R and thus v− = 0.
When vi = v+ > 0,
vo0 will go positive to make vD = vo0 − v− > 0 so that the forward‐biased diode will conduct. This will make a closed feedback path between the output and the negative input terminal of the OP amp so that by the virtual short principle (Remark 5.1),
When vi = v+ < 0,
vo0 will go negative to make vD = vo0 − v− < 0 so that the reverse‐biased diode will be cut off. Thus, no current will flow through R, causing
where the negative feedback is broken up so that the output voltage vo0 of the OP amp operating in the open‐loop mode will go to the negative saturation voltage −Vom.
Figure 2.13(b) shows the input-output relationship (solid line), called VTC, of the half‐wave rectifier circuit based on Eq. (2.2.12a,b). Note that it does not have the threshold voltage VD unlike that (dotted line) of the simple half‐wave rectifier circuit in Figure 2.8(a) and that is why such a combination of a diode with an OP amp may well be called a “superdiode” with VD = 0. Isn't it marvelous? Now, let us see some improved versions of this basic precision rectifier.
Figure 2.14(a) shows an improved precision half‐wave rectifier circuit. Let us see how it works.
When vi > 0,
vo0 (desiring to be A(v+ − v−) ~ −Avi) will go negative to make = v− − vo0 > 0 so that the forward‐biased diode D1 will conduct. This will make a closed feedback path via D1 between the output and the negative input terminal of the OP amp so that by the virtual short principle, v− ≈ v+ = 0 V (virtual ground) and thus vo0 = v− − = v− − VD = −VD (clamped at one diode drop below zero), keeping D2 off. Then no current flows through R2 so that
When vi < 0,
vo0 will be positive to forward bias D2 (through R2-R1-vi) and reverse bias D1 (with ) so that D1/D2 will be off/on, respectively. Then a negative feedback path is established through D2-R2 so that by the virtual short principle, v‐ ≈ v+ = 0 V and thus
This causes so that the reverse‐biased D1 can be kept off. Note that whether vi > 0 or vi < 0, a negative feedback path is maintained so that time required to bring the OP amp out of saturation (when the sign of vi changes from – to +) can be saved.
Figure 2.14(b) shows the input-output relationship, called VTC, of the half‐wave rectifier circuit based on Eqs. (2.2.13a) and (2.2.13b). The PSpice simulation results (obtained from the Transient analysis with vi(t) = Vm sin (2πt) (Vm = 5 V)) of the two precision half‐wave rectifiers in Figures 2.13(a) and 2.14(a) for the output voltage vo(t) and a reversed diode voltage −vD(t) are shown in Figure 2.15(a) and (b). From the graphs, we see their PIVs for a diode as
where Vm and Vom are the maxima of the input voltage vi(t) and OP amp output voltage vo0(t), respectively.
Figure 2.16.1(a) shows a precision full‐wave rectifier circuit, which consists of a precision half‐wave rectifier, called a “superdiode” (Figure 2.13(a)), in the upper part and another precision half‐wave rectifier with an inverting OP amp circuit (Figure 2.14(a)) in the lower part. When vi = v+
1 > 0, the upper part lets the input vi pass and when vi = v−2 < 0, the lower part inverts the input vi with gain −R2/R1 (see Eq. (6.2.8)). Therefore, as shown in Figure 2.16.1(b), the VTC of this rectifier is
Figure 2.16.2(a) shows another precision full‐wave rectifier circuit, which consists of a “superdiode” (Figure 2.13(a)) (with an additional capacitor C in parallel with diode D1) in the left part and an inverting OP amp circuit (with diode D1 connected to its positive input terminal) in the right part. Note that the two OP amps U1/U2 have negative feedback through C/R2 so that by the virtual short principle, we always have v−1 ≈ v+
1 = vi and v−2 ≈ v+
2. Let us see how it works:
When vi = v+
1 > 0,
vo1 (desiring to be A(v+1 − v−1
)) will be high enough to make D1 off (with = v−1 − vo1 < VTD) and D2 on (with = vo1 − v+
2 = VD) so that vo will be
where no current flows through R1‐R2 since C as well as D1 will not conduct once it has instantly been charged to vC = v−1 − vo1 = v+
2 − vo1 = − = −VD.
When vi = v+
1 ≈ v−1 < 0,
vo1 will be low enough to make D1 on (with = v−1 − vo1 = VD) and D2 off (with = vo1 − v+
2 < VTD) so that iR3 = 0 and thus v−2 ≈ v+
2 =R3iR3 = 0. Then the OP amp U2 together with R1 and R2 functions as an inverting amplifier with gain −R2/R1 (see Eq. (5.2.8)) so that
where C as well as D2 will not conduct once it has instantly been charged to vC = = VD.
Therefore, the VTC of this rectifier can also be described by Eq. (2.2.15) or Figure 2.16.2(b), which is identical to Figure 2.16.1(b).
How do the two precision full‐wave rectifiers compare with? First, the input impedance (seen from vi) of the latter is much larger than that (R1) of the former. Second, the PIVs of D1 and D2 in the latter (where the OP amps never enter the saturation region) are Vm + VD in common, while those in the former (where the OP amps enter the negative saturation region when the diode in their negative feedback paths is off) are as high as max{−vDi(t)} = Vm + Vom in common where Vm and Vom are the maxima of the input voltage vi(t) and OP amp output voltage vo0(t), respectively. From the PSpice simulation results shown in Figure 2.17, we see that the PIVs of the diodes in the two rectifiers are
Consider the circuit with the PSpice schematic of Figure 2.18.1(a) where the PSpice Model for the diode D1N4148 (opened by selecting the diode and clicking on Edit>PSpice Model from the top menu bar) is shown in Figure 2.18.1(b). For PSpice simulation with the schematic, we do the following:
To get the v-i characteristic of the diode and draw the load lines in the PSpice A/D Window, we do the following:
To determine the diode constants of the diode D1N1418, we can use the curve fitting toolbox ‘cftool’ (in MATLAB) to fit the data points (vD, iD) of the v-i characteristic curve (Figure 2.18.2(c)) to the Shockley diode equation. Noting that curve fitting works better for linear functions than for nonlinear functions, let us approximate the Shockley diode equation and take the logarithms of both sides to linearize as
To determine the parameters 1/ηVT and ln IS of Eq. (2.2.18) which fit the PSpice simulation data, do the following:
>>load vD_iD.dat, vD=vD_iD(:,1); iD=vD_iD(:,2);
ln_iD=log(iD); % Take natural logarithm to linearize fitting ftn
cftool % To start the curve fitting toolbox
This will open the CFTOOL window as shown in Figure 2.18.3(a).
y = a*x +ln_Is
where a and ln_Is stand for 1/ηVT and ln IS, respectively. Then click button to close the New Custom Equation dialog box.
Coefficients (with 95% confidence bounds):
a = 21.24 (20.87, 21.6)
ln_Is = -19.72 (-19.88, -19.56)
This implies that the parameters ηVT and IS have been determined as
where the true values of ηVT and IS can be found from the PSpice Model of the diode (Figure 2.18.1(b)) as
With the diode constants found in the corresponding PSpice Model Editor (Figure 2.18.1(b)) or obtained from the curve fitting (Figure 2.18.1(c)), let us make a theoretical analysis of the diode circuit (Figure 2.18.1(a)) by using the nonlinear equation solver ‘fsolve()
’ of MATLAB to solve the (nonlinear) KCL equation
for vD(t) or to solve the (nonlinear) KVL equation
for iD(t). To do this job, we compose the MATLAB script “elec02f1804.m” as below and run it to get Figure 2.18.4, which shows the diode current waveform (plotted as blue line) together with those obtained from the PSpice simulation (Figure 2.18.1(d)) and the theoretical analysis.
(Q) How would you copy the PSpice simulation data (Figure 2.18.1(d)) into a MATLAB graph?
%elec02f1804.m
Vs=1; vd=0.1; % Amplitudes of DC/AC voltage sources
RL=50; % Load resistance
f=1000; w=2*pi*f; % Frequency of the AC source
Is=2.682e-9; nVT=0.0475; % Diode constants Eq. (2.2.20)
dt=1e-6; t=[0:1000]*dt; % Time range for solution
vst = Vs + vd*sin(w*t); % Source voltage waveform
% To solve Eq. (2.2.21) for vD and use Eq. (2.1.1) to find iD(t) from vD(t)
eq_2221=@(vD,Is,nVT,RL,vs)RL*Is*(exp(vD/nVT)-1)-vs+vD; % Eq. (2.2.21)
options=optimset('Display','off');
for n=1:length(t)
vD0=0.7; vD(n)=fsolve(eq_2221,vD0,options,Is,nVT,RL,vst(n));
iD(n)=Is*(exp(vD(n)/nVT)-1);
end
% To solve Eq. (2.2.22) for iD(t)
eq_2222=@(iD,Is,nVT,RL,vs)vs-nVT*log(iD/Is+1)-RL*iD; % Eq. (2.2.22)
for n=1:length(t)
iD0=0.006; iD1(n)=fsolve(eq_2222,iD0,options,Is,nVT,RL,vst(n));
end
load t_iD.dat % iD(t) data from PSpice
t_PSpice=t_iD(:,1); iD_PSpice=t_iD(:,2);
VQ=695e-3; IQ=6.1e-3; % Operating point from Fig. 2.18.2(c)
% To find the dynamic distance rd
dvD=0.7-0.69; diD=0.00665690237656236-0.00552081875503063;
rd1=dvD/diD % Eq. (2.2.23a) using PSpice data in data file 'vD_iD.dat'
rd2=nVT/(Is+IQ) % Eq. (2.2.23b) using the Shockley diode equation
rd0=8.21; % from the output file obtained from Bias Point analysis
% To find iD(t) using the analytical expression Eq. (1.1.12)
iD2 = IQ+vd/(RL+rd0)*sin(w*t); % Eq. (1.1.12)
plot(t,iD, t,iD1,'m:', t_PSpice,iD_PSpice,'g', t,iD2,'r'), grid on, shg
legend('fsolve vD-iD','fsolve iD-vD','PSpice','Eq. (1.1.12) with rd0')
Now, to get an overview of the input-output relationship of the diode circuit, let us perform a (theoretical) small‐signal analysis by using Eqs. (1.1.12) and (1.1.13). First, we get the operating point Q as (VQ, IQ) = (0.695, 0.0061) from the intersection of the (major) load line and the v-i characteristic curve in Figure 2.18.2(c). Then, we find the dynamic resistance rd by reading REQ = 8.21 from the Bias Point analysis result shown in the output file (Figure 2.18.1(d)) or by using the PSpice data (stored in the data file ‘vD_iD.dat’) or Eq. (2.1.5) as follows:
Which one of the three values [8.21 (from PSpice Bias Point analysis), 8.80 (from PSpice simulation data), 7.79 (from the theoretical formula)] should we use for Eqs. (1.1.12) and (1.1.13)? The authors have no idea. How about 8.21 close to their average? Thus, we use Eqs. (1.1.12) and (11.13) with rd = 8.21 to write the theoretical equation for the diode currents/voltages as
This diode current waveform with rd = 8.21 is depicted together with the ones obtained in other ways in Figure 2.18.4. The diode current waveforms are expected to become closer to each other if the magnitude vδ of AC voltage is smaller so that the approximation of the v-i characteristic curve by its tangent line at Q‐point can become more accurate.
Figure 2.19(a) and (b) shows the symbol and the v-i characteristic for a special kind of diode, called a Zener diode where vZ = −vD and iZ = −iD. A Zener diode behaves as other normal diodes in the forward‐bias mode but, in the reverse‐bias mode, withstands the reverse diode current (up to IZ,max) while keeping vZ = −vD close to the Zener (breakdown) voltage VZ (even with some variation in its current iD) as long as iZ = −iD remains between IZ,min and IZ,max. The maximum reverse current IZ,max that the diode can endure is PZ,max/VZ where PZ,max is the maximum power dissipation. The minimum reverse current IZ,min needed to keep the diode in the reverse breakdown mode is slightly below the Zener knee current IZK, at which the diode exhibits the reverse breakdown. The v-i characteristic curve of a Zener diode in terms of its static behavior can be approximated by a red/brown PWL line for the forward‐/reverse‐bias mode as depicted in Figure 2.19(b) where the diode resistance rf (in the forward‐bias mode) and the Zener resistance rz (in the reverse‐bias mode) are defined as
Here, −VZ0 is the diode voltage at the intersection of the straight line having slope 1/rz with the voltage axis and it is almost equal to the Zener knee voltage −VZK. According to the approximation, the v-i characteristic of a Zener diode in the forward‐/reverse‐bias mode is represented by the equivalent model depicted in Figure 2.19(c).
Figure 2.20(a) shows a Zener (shunt) regulator, which is supposed to maintain an almost constant output voltage for all the variation of the DC voltage source vs and the load resistor RL. In order for the regulator to function properly in the breakdown region, the Zener diode current iZ should be bounded as
Thus, the source resistance Rs should satisfy the following inequality:
If IZ,max = PZ,max/VZ has not yet been specified, Rs can be set to some value slightly less than the upper bound of Inequality (2.3.3):
If Rs is fixed, the minimum load resistance can be determined by substituting VZ = VZK and iZ = IZK into Inequality (2.3.3) as
Then the power rating of the Zener diode should be determined so that the following inequality can be satisfied:
Figure 2.20(b) shows the Zener regulator with the Zener diode represented by the reverse bias model (Figure 2.19(c)), for which we can apply KCL at node 1 to write the node equation in vZ as
This can be solved for vZ to yield
According to this (approximate) expression of vZ, its variations w.r.t. vs, RL, and IL are computed as
This implies that the sensitivities of vZ w.r.t. vs/RL become better (smaller) as Rs/RL increases, respectively.
Note that if vZ < VZ0 so that iZ = (vZ − VZ0)/rz < 0, we set iZ = 0(IZK) and use the voltage divider rule to determine vZ as if there were no Zener diode branch:
The following MATLAB function ‘Zener_regulator()
’, given the values of VZ, IZ, rZ, IZK, RL, Rs, vs, and dvs (the variation of vs) for a Zener regulator (shown in Figure 2.20(a)), returns the (output) voltage vZ (across the Zener diode or load resistor) and the current iZ through the Zener diode, together with the sensitivities of vZ w.r.t. vs, RL, and IL.
function [vZ,iZ,dvZdvs,dvZdRL,dvZdIL,Rsmax,RLmin,VZ0] = Zener_regulator(VZ,IZ,rz,IZK,RL,Rs,vs,dvs)
% Input: VZ = (Nominal) voltage across Z at the operating point
% IZ = (Nominal) current through Z at the operating point
% rz = Zener resistance
% IZK = Zener knee current
% RL = Load resistance
% Rs = Source resistance
% vs = Source voltage
% dvs = Absolute variation of vs
% Output:vZ = Output voltage across Z||RL
% iZ = Current through the Zener diode Z
% Copyleft: Won Y. Yang, wyyang53@hanmail.net, CAU for academic use only
if nargin<8, dvs = 0; end
Rsmax = (vs-dvs-VZ)./(VZ./RL+IZK); % Eq. (2.3.4)
VZ0 = VZ - rz*IZ; % Almost equal to the Zener knee voltage VZK
VZK = VZ0+rz*IZK; % Zener knee voltage
RLmin = VZK./((vs-dvs-VZK)/Rs-IZK); % Eq. (2.3.5)
N_RL=length(RL); N_vs=length(vs);
if N_RL<N_vs, RL=repmat(RL,1,N_vs); end
if N_vs<N_RL, vs=repmat(vs,1,N_RL); end
numerator = vs/Rs+VZ0/rz;
denominator = 1/Rs+1/rz+1./RL;
vZ = numerator./denominator; % Eq. (2.3.8)
iZ = (vZ-VZ0)/rz;
for n=1:length(iZ)
if iZ(n)<0 % As if there were no Zener diode branch
iZ(n) = 0; vZ(n) = RL(n)/(Rs+RL(n))*vs(n); % Eq. (2.3.10)
end
end
dvZdvs = 1/Rs./denominator; % Eq. (2.3.9a)
dvZdRL = numerator./RL.^2./denominator.^2; % Eq. (2.3.9b)
dvZdIL = -dvZdRL.*RL.^2/VZ; % Eq. (2.3.9c)
Consider the Zener regulator shown in Figure 2.20(a), whose purpose is to keep the output voltage across RL close to 4.7 V where the source voltage Vs and the load resistance RL vary between 12 ± 2 [V] and between 200 and 1000 Ω, respectively. Let the values of the device parameters of the Zener diode Z (1N750) be
where the maximum and minimum currents for the Zener diode to function properly in the breakdown region are IZ,max = PZ,max/VZ = 352.5[mW]/4.7[V] = 75[mA] and IZ,min = 5[mA], respectively.
Let us fix Rs as 180 Ω.
We can use Eq. (2.3.8) to find vo:
However, vZ = 4.667 < VZ0 = 4.67 [V] is not possible as long as the Zener diode Z is ON. Thus, we have to recalculate vZ for vs = 8.5V on the assumption that Z is OFF so that iZ = 0 A. Then, as if there were no Zener diode branch, the voltage divider rule can be used to find vZ as
Here, we can use the above MATLAB function ‘Zener_regulator()
’ as
VZ=4.7; IZ=0.02; rz=1.5; IZK=1e-3;
Rs=180; RL=200; vss=[14 12 8.5]; dvs=14-12;
[vos,iZ,dvodvs,dvodRL]=…Zener_regulator(VZ,IZ,rz,IZK,RL,Rs,vss,dvs)
Running this block of MATLAB statements yields
vos = 4.7120 4.6957 4.4737
iZ = 0.0280 0.0171 0
dvodvs = 0.0082 0.0082 0.0082
We can use Eq. (2.3.8) to find vo:
Here, we can use the above MATLAB function ‘Zener_regulator()
’ as
VZ=4.7; IZ=0.02; rz=1.5; IZK=1e-3;
Rs=180; RLs=[200 600 1000]; vs=12;
[vos,iZ,dvodvs,dvodRL]=Zener_regulator(VZ,IZ,rz,IZK,RLs,Rs,vs)
Running this block of MATLAB statements yields
vos = 4.6957 4.7189 4.7236
iZ = 0.0171 0.0326 0.0357
dvodRL = 1.0e-03 * 0.1733 0.0195 0.0070
Figure 2.21(a) shows the PSpice schematic of the Zener regulator with Vs = 12 V and Rs = 180 Ω. Referring to Section H.5.4, do the DC Sweep and Parametric Sweep Analyses to get the plots of vo versus vs for different values {200, 400, …, 1000} of RL as follows:
Now, to check if the (maximum) Zener diode current obtained with the largest value of RL = 1000 exceeds IZ,max = 75 [mA], do the following:
Figure 2.22(a1) and (a2) show a symmetrical limiter using two Zener diodes and one using normal diodes, respectively, where Figure 2.22(b1) and b2 shows their input-output relationships called VTCs. Note that the upper/lower limits of the Zener limiter output are (VTD + VZ)/(−VTD − VZ) (Figure 2.22(b1)) and those of the diode limiter output are (VTD + V1)/(−VTD − V2) (Figure 2.22(b2)).
Figure 2.22(a3) and (b3) shows an asymmetrical limiter using two Di -Vi -Ri paths (i = 1, 2) in parallel, and its input‐output relationship, respectively. Note that the slopes of the input‐output relationship above the point (VD+V1, VD+
V1) and below the point (−VD−V2, −VD−V2) are determined as the voltage divider gain of the circuit with the diodes and voltage sources removed by short‐circuiting:
To analyze this limiter based on the exponential model (Eq. (2.1.1)) for the diodes, we can apply KCL at nodes 1, 2, and 3 to write a set of node equations:
where and use the MATLAB function ‘fsolve()
’ to solve it as listed in the following MATLAB script “diode_limiters.m.”
%diode_limiters.m
% Copyleft: Won Y. Yang, wyyang53@hanmail.net, CAU for academic use only
clear, clf
Is=10e-15; % Saturation current
VT=(273+27)/11605; % Thermal voltage
iD = @(vD)Is*(exp(vD/VT)-1); % Eq. (2.1.1a)
options = optimset('TolFun',1e-10, 'Display','off');
vs = [-12:0.05:12]; % Range of the source voltage signal
Rs=1e4; R1=1e4; R2=2500; V1=4.7; V2=4.7;
v=zeros(length(vs),3); % Initialize the voltage values to zero
for n=1:length(vs)
eq = @(v)[(vs(n)-v(1))/Rs-iD(v(1)-v(2))+iD(v(3)-v(1));
iD(v(1)-v(2))-(v(2)-V1)/R1;
iD(v(3)-v(1))+(v(3)+V2)/R2]; %Eq. (2.3.12)
if n<2, v0 = [0 0 0]; else v0 = v(n-1,:); end
v(n,:) = fsolve(eq,v0,options);
end
Vsm=12; VD=0.7; VD1=VD+V1; VD2=VD+V2;
plot(vs,v(:,1), [VD1 VD1 Vsm],[0 VD1 VD1+(Vsm-VD1)*R1/(Rs+R1)],'m:', ...
[-Vsm -VD2 -VD2],[-VD2-(Vsm-VD2)*R2/(Rs+R2) -VD2 0],'m:') %Eq. (2.3.11)
First, assuming that both D1 and D2 are ON, replace them by the Constant Voltage Drop (CVD) model (with VD = 0.7 V) to draw the equivalent as shown in Figure P2.1.1(a2), find the currents and , and check the validity of the solution.
and use the MATLAB function ‘fsolve()
’ to solve them for v1 and v2. To this end, complete the following MATLAB script “elec02p01a.m” and run it to find v1, v2, , and .
%elec02p01a.m
clear, clf
T=27; nVT=(T+273)/11605; % Temperature[Celsius] and Thermal voltage
Is=1e-14; % Leakage current of the diodes
% Diode exponential model parameters
iD = @(vD)Is*(exp(vD/VT)-1); % Eq. (2.2.1a)
R1=5e3; R2=10e3; % Circuit parameter values
eq = @(v)[iD(-v(?))+iD(v(2)-v(?))-(v(?)+10)/R1; ...
iD(v(?)-v(1))-(10-v(?))/R2];
v0 = [0; 0]; % Initial guess of [v1; v2]
options=optimset('Display','off', 'TolX',1e-10, 'TolFun',1e-10);
v = fsolve(eq,v0,options); % Solving the set of nonlinear eqs
ID1 = iD(-v(1)); ID2 = iD(v(?)-v(?));
fprintf(' ID1=%8.3fmA, ID2=%8.3fmA, V1=%8.4fV, V2=%8.4fV\n', ID1*1e3,ID2*1e3,v(1),v(2));
Run the PSpice schematic and click on the ‘Enable Bias Voltage Display’/‘Enable Bias Current Display’ button in the toolbar of the Capture CIS Window to see the bias‐point analysis results on voltages/currents at/through each node/branch.
Consider the bridge rectifier circuit of Figure P2.2(a) consisting of four diodes. Based on the (nonlinear) exponential model (2.1.1) with Is = 1 × 10−14[A] and VT = (27 + 273)/11605[V], apply KCL at nodes 1 and 2 to write two node equations as
and use the MATLAB function ‘fsolve()
’ to solve them for v1 and v2 where vs(t) = 5 sin (2πt) [V]. To this end, complete the following MATLAB script “elec02p02.m” and run it to plot vs(t), vo(t) = v2(t), and − (the reverse
%elec02p02.m
Is=1e-14; T=27; VT=(T+273)/11605; % Device parameters
R=1e3; Vm=5; f=1; w=2*pi*f; % Circuit parameters
t=[0:1e-3:2]; vs=Vm*sin(w*t); vst=[vs; t];
[v1s,vos]=bridge_rectifier(vst,R,Is,VT);
plot(t,vs, t,vos, t,vos-v1s,'m')
function [v1s,v2s]=bridge_rectifier(vst,R,Is,VT)
vs=vst(1,:); t=vst(2,:);
iD=@(vD)Is*(exp(vD/VT)-1);
options=optimoptions('fsolve','Display','none');
for n=1:numel(t)
vsn=vs(n);
eq=@(v)[iD(v(1)-v(?))+iD(v(?)-vsn-v(2))-iD(-v(?))-iD(vsn-v(1));
iD(v(?)-v(2))+iD(v(1)-vsn-v(?))-v(2)/R]*1e6;
if n<2, v0=[0.7 0]; else v0=v; end
v=fsolve(eq,v0,options);
v1s(n)=v(1); v2s(n)=v(2);
end
voltage of diode D2). Compare the waveforms with the PSpice simulation results shown in Figure 2.10c2.
%clippers.m
% Copyleft: Won Y. Yang, wyyang53@hanmail.net, CAU for academic use only
Is=10e-15; VT=25e-3; % Saturation current, Thermal voltage
iDvD = @(vD)Is*(exp(vD/VT)-1).*(vD>0);
iZvZ = @(vD,VZ0,rz)Is*(exp(vD/VT)-1).*(vD>0)-max (-VZ0-vD,0)/rz;
vZiZ = @(iD,VZ0,rz,IZK)VT*???(iD/Is+1).*(iD>0) +... % Eq. (P2.3.1)
(VZ0/???)*iD.*(-IZK<=iD&iD<0)-(iD<-IZK).*(VZ0-??*iD);
options = optimset('TolFun',1e-10, 'Display','off');
% Symmetrical diode limiter
vi=[-10:0.05:10]; % Range of the input signal
Rs=1e3; V1=2; V2=-2;
vo=zeros(size(vi)); % Initialize the output voltage values to zero
for n=1:length(vi)
eq = @(vo)(vi(n)-??)/Rs-iDvD(??-V1)+iDvD(V2-??);
if n<2, vo0=0; else vo0=vo(n-1); end
vo(n) = fsolve(eq,vo0,options);
end
subplot(331), plot(vi,vo)
% Symmetrical Zener limiter
vi=[-10:0.05:10]; % Range of the input signal
VZ0=4.67; IZK=4e-12; VZ=4.7; IZ=2e-3; rz=(VZ-VZ0)/IZ % Eq. (2.3.1b)
vo=zeros(size(vi)); % Initialize the output voltage values to zero
for n=1:length(vi)
eq=@(i,VZ0,rz,IZK)vZiZ(?,VZ0,rz,IZK)-vZiZ(-?,VZ0, rz,IZK) +Rs*?-vi(n);...
if n<2, i0=-1; else i0=i(n-1); end
i(n) = fsolve(eq,i0,options,VZ0,rz,IZK); vo(n) = vi(n)-Rs*i(n);
end
subplot(332), plot(vi,vo)
% To plot the v-i characteristic curve of a Zener diode
i=[-5:0.01:1]*1e-3; vz=vZiZ(i,VZ0,rz,IZK);
subplot(333), plot(vz,i, [-5 1],[0 0],'k', [0 0], i([1 end]),'k')
Consider the two diode clipping circuits (called limiters or clippers) each in Figure P2.3.1(a1) and (a2) where VT = 25 mV, the reverse saturation current of the diodes is Is = 10−14 A, and the Zener diode has VZ = 4.67/4.7 V at IZ = 0/2mA and IZK = 4 × 10−12 A. Note that Figure P2.3.1(b1) and (b2) (obtained from PSpice simulation with Transient analysis) show their output voltage waveforms to sinusoidal input voltage of frequency 1 Hz and amplitude 5 V and 10 V, respectively, and Figure P2.3.1(c1) and c2 (obtained from PSpice simulation with DC sweep analysis and voltage source VSIN replaced by VDC) show their input-output relationships called voltage transfer characteristics (VTCs).
(iZ>0)
, (‐IZK<=iZ&iZ<0)
, and (iZ<‐IZK)
are logical expressions, each of which becomes 1 or 0 depending on whether it is true or not. Then noting that VZ0 = 4.67 V, use Eq. (2.3.1b) to determine the Zener resistance rZ and plot the v-i characteristic of the Zener diode, i.e. iZ versus vZ for iZ = (−5:0.01:1) × 10−3 [A] as shown in Figure P2.3.2(a) by running the last two lines of “clippers.m.”Consider the two diode clampers in Figure P2.4(a1) and (a2) that are driven by a PWL voltage source generating a square wave with magnitude ±5 V and period 2 s. Perform PSpice simulations of the clampers (with the SKIPBP box checked in the Simulation Settings dialog box) to get their input/output voltage waveforms as shown in Figure P2.4(b1) and (b2). Do their input-output relationships conform with Eqs. (2.2.1a) and (2.2.1b)?
%voltage_doubler.m
Is=2.682e-9; T=27; nVT=1.836*(273+T)/11605; % Diode constants
iDv=@(vD)Is*(exp(vD/nVT)-1);
dt=0.001; tf=10; ts=0:dt:tf; Vm=5; f=2; w=2*pi*f; vs=Vm*sin(w*ts);
C1=1e-6; C2=1e-6; vC1(1)=0; vC2(1)=0;
for n=1:length(ts)
vD1(n)=v?(n)-vC?(n); iD1(n)=iDv(vD1(n));
vD2(n)=-vC?(n)-vD?(n); iD2(n)=iDv(vD2(n)); iC1(n)=iD?(n)-iD?(n);
vC1(n+1) = vC1(n) + iC?(n)/C1*dt;
vC2(n+1) = vC2(n) + sgn*iD?(n)/C2*dt;
end
plot(ts,vs,'r', ts,-vC2(1:end-1),'g'); grid on; legend ('vs(t)','vo(t)')
Consider the voltage doubler/quadrupler circuits driven by a sinusoidal voltage source of amplitude 5 V and frequency 2 Hz, whose PSpice schematics are shown in Figures P2.5.1(a) and P2.5.2(a), respectively.
%voltage_quadrupler.m
clear
Is=2.682e-9; T=27; nVT=1.836*(273+T)/11605; % Diode constants
iDv = @(vD)Is*(exp(vD/nVT)-1);
dt=0.001; tf=10; ts=0:dt:tf; % Time vector
Vm=5; f=2; w=2*pi*f; vs=Vm*sin(w*ts); % Input source voltage
C1=1e-6; C2=1e-6; C3=1e-6; C4=1e-6;
vC1(1)=0; vC2(1)=0; vC3(1)=0; vC4(1)=0;
v2(1)=0; v3(1)=0; v4(1)=0; v5(1)=0;
for n=1:length(ts)
vD1 = v?(n); iD1 = iDv(vD1);
vD2 = v?(n)-v?(n); iD2 = iDv(vD2);
vD3 = v?(n)-v?(n); iD3 = iDv(vD3);
vD4 = v?(n)-v?(n); iD4 = iDv(vD4);
vC1(n+1) = vC1(n) + (iD1?iD2?iD3?iD4)/C1*dt;
vC2(n+1) = vC2(n) + (iD2?iD3?iD4)/C2*dt;
vC3(n+1) = vC3(n) + (iD3?iD4)/C3*dt;
vC4(n+1) = vC4(n) + iD?/C4*dt;
v2(n+1) = vs(n) - vC?(n+1);
v3(n+1) = -vC?(n+1);
v4(n+1) = v2(n+1) - vC?(n+1);
v5(n+1) = v3(n+1) - vC?(n+1);
end
plot(ts,vs, ts,v5(1:end-1),'r'), grid on
Noting that VH is already known as VH = Vm − VTD = 5 − 0.65 = 4.35, we can solve this set of equations to find VL = 3.94, TR = 0.02 ms, and TF = 0.98ms by saving these equations into an M‐file named, say, ‘elec02p06_f.m’ and running the following MATLAB script “elec02p06a.m.”
%elec02p06a.m
global Vm f VTD T D
Vm=5; f=1000; T=1/f; D=T/2; VTD=0.65;
VH=Vm-VTD; % Local maximum (High Voltage) of vo(t)
R=5e3; C=1e-6;
x_0=[0 0 0]; % Initial guess of [VL TR TF]
x=fsolve('elec02p06_f',x_0,optimset('fsolve'),C,R)
VL=x(1); TR=x(2); TF=x(3);
fprintf('\n VH=%8.4f, VL=%8.4f, TR=%8.4fms, TF=%8.4fms',
VH,VL,TR*1000,TF*1000)
Vr=VH-VL, VH*T/R/C % Ripple Eq. (P2.6.2)
IC_avg=C*Vr/TR; % Eq. (P2.6.4)
Vo_avg=(VH?VL)/2 % Eq. (P2.6.5)
IR_avg=Vo_avg/R % Eq. (P2.6.6)
ID_avg=IC_avg?IR_avg % Eq. (P2.6.7)
function y=elec02p06_f(x,C,R)
global Vm f VTD
VH=Vm-VTD; w=2*pi*f; T=1/f; VL=x(1); TR=x(2); TF=x(3);
y=[VH*exp(-TF/R/C)-VL; VH-VL-4*Vm*TR/T; TR+TF-T]; % Eqs. (P2.6.1)
%elec02p06b.m
tf=2.5*T; dt=tf/5000; t=0:dt:tf; % Time range
% Input voltage
tri_wave_=@(t,D,T)mod(t,T)/D.*(mod(t,T)<D)+ ...
(1-mod((t-D),T)/D).*(mod(t,T)>=D).*(mod(t,T)<2*D);
vi = 2*Vm*tri_wave_(t,D,T)-Vm; % Input voltage waveform
% Rectification
Is = 1e-14; % Saturation current
[vo,vD,iD,iR] = rectifier_RC([vi; t],R,?,Is);
plot(t,vi,'g', t,vo,'r', t,100*iD,'m', t([1 end]),[0 0],'k')
legend('v_i (t)','v_o (t)','100*i_D (t)')
N1=floor(T/dt); nn0=1:N1;
[VH,imin]=max(vo(nn0)); VH % Te 1st peak value of vo(t)
tH1=t(imin); % The 1st peak time
N2=2*N1+10; nn1=N1:N2;
[VL,imin]=min(abs(vo(nn1))); VL
tL1=t(N1-1+imin); % The 1st valley time
[emin,imin]=min(abs(vo(nn1)-VH));
tH2=t(N1-1+imin); % The 2nd peak time
TF=tL1?tH1 % Falling period
TR=tH?-tL1 % Rising period
Noting that the capacitor voltage charged during the rising period TR is equal to the ripple voltage Vr and is related with the capacitor current iC or its average IC,avg is as
find the average of the capacitor current through C:
Also, noting that the average of the output voltage (across R||C) is
find the average of the resistor current through R:
Also, find the average of the diode current through D:
Consider the precision full‐wave rectifier in Figure P2.7(a) where the maximum (saturation) output voltage and maximum (short‐circuit) output current of the OP Amp μA741 are Vom = 14.6 V and Ios = 40 mA, respectively, for a bipolar power supply of ±15 V.
Consider the precision full‐wave rectifier with the PSpice schematic shown in Figure P2.8(a) where R1 = R2 = R3 = R4 = R5 = 1 kΩ and the maximum (saturation) output voltage of the OP Amp μA741 is Vom = 14.6 V for a bipolar power supply of ±15 V.
–
R4/R3, respectively. Then
When vi < 0, vo0 becomes (low, high) so that D1/D2 can be (on/off, off/on). KCL at node 1 yields a node equation with v3 as an unknown variable:
Then, regarding R2-R3-R4 as a voltage divider, we can find the output voltage vo as
When vi = Vm = 5 V, vo0 becomes low so that D1 is on with = = 0.7 V and D2 is reverse‐biased with
When vi = −Vm = −5 V, vo0 becomes high so that D2 is on with = = 0.7 V and D1 is reverse‐biased with
These PIVs can also be seen from the simulation result in Figure P2.8(b).
Consider the Zener regulator shown in Figure 2.20(a) where the Zener diode has VZ = 6.8 V at IZ = 5 mA, rZ = 20 Ω, and IZK = 0.2 mA, and the supply voltage vS varies by ±1 V around its nominal value 10 V.
Substituting (IZ, VZ) = (5 mA, 6.8 V) and rz = 20 Ω into Eq. (2.3.1b) yields
We can use Eq. (2.3.8) to get
>>([10 9 8.3]/500+6.7/20)/(1/500+1/20+1/2000)
However, for the third value vZ = 6.697 V < VZ0, we set iZ = 0 (IZK) and use the voltage divider rule to redetermine vZ as if there were no Zener diode branch:
You can run the following MATLAB statements to get a help in finding the answers to the above questions:
>>VZ=6.8; IZ=5e-3; rz=20; IZK=0.2e-3;
vss=[10 9 8.3]; Rs=500; RL=2e3;
[vos,iZ,dvodvs,dvodRL,dvodIL,Rsmax,RLmin,VZ0]= ...
Zener_regulator(VZ,IZ,rz,IZK,RL,Rs,vss)
Is your guess close to the real change in vZ (across RL = 2 kΩ to vs = 10V) caused by the −1V‐change in vs, which can be observed in Eq. (P2.9.2)?
We can use Eq. (2.3.8) to get
>>(9/500+6.7/20)./(1/500+1/20+1./[2 1.9 1.4]/1e3)
However, for the third value vZ = 6.696 V < VZ0, we set iZ = 0 (IZK) and use the voltage divider rule to redetermine vZ as if there were no Zener diode branch:
You can run the following MATLAB statements to get a help in finding the answers to the above questions:
>>vs=9; Rs=500; RLs=[2e3 1.9e3 1.4e3];
[vos,iZ,dvodvs,dvodRL,dvodIL,Rsmax,RLmin,VZ0]=...
Zener_regulator(VZ,IZ,rz,IZK,RLs,Rs,vs); vos, dvodRL
Is your guess close to the real change in vZ (across RL = 2 kΩ to vs = 9V) caused by the −100 Ω‐change in RL, which can be observed in Eq. (P2.9.5)?
Does the output voltage vZ drop conspicuously below VZ = 6.8V as the source voltage vs becomes lower than 8.3V? How can the value of vZ to the input source voltage vs = 8V be estimated?