Skip to main content

Section 4.5 Full-Wave Rectifier

Let’s look at a full-wave rectifier circuit pictured in Figure 4.5.1.
Figure 4.5.1.
Let’s examine this circuit analytically through several cases.
  1. Times when \(V_\text{in}\gt 2V_F\text{:}\)
    In this case, \(V_A=V_\text{in}\gt V_1,\ V_2,\ V_B\text{.}\) This means that diode \(D_2\) will conduct current \(i_2\) while \(i_3=0\text{.}\) Since \(V_2\gt V_B\text{,}\) diode \(D_4\) will remain off meaning that current will flow across the resistor \(R\text{,}\) dropping voltage in the process. Then, since \(V_A\gt V_1\text{,}\) we confirm that diode \(D_1\) remains off. Consequently, diode \(D_3\) will conduct current \(i_4\text{.}\) Since there was a voltage drop across \(R\) and \(D_3\text{,}\) we find that \(V_B \lt V_2\text{,}\) confirming our assertion that \(D_4\) is off. This current path is represented in Figure 4.5.2
    Figure 4.5.2.
  2. In a similar way, we find that Figure 4.5.3 shows the current path when \(V_\text{in}\lt -2V_F\text{.}\)
    Figure 4.5.3.

Example 4.5.4. Solution Using Newton’s method in Python.

We find KCL equations for the junctions labeled \(V_1\) and \(V_2\)
\begin{align} 0 = \amp I_3 + I_6 - I_4 \tag{4.5.1}\\ 0 = \amp I_2 - I_5 - I_6 \text{.}\tag{4.5.2} \end{align}
We can also write down expressions for the currents by examining voltage changes across components
\begin{align} I_2 = \amp I_0\left(e^{\left(V_\text{in}-V_2\right)/V_T}-1\right) \tag{4.5.3}\\ I_3 = \amp -I_0\left(e^{\left(V_1-V_\text{in}\right)/V_T}-1\right) \tag{4.5.4}\\ I_4 = \amp I_0\left(e^{V_1/V_T}-1\right) \tag{4.5.5}\\ I_5 = \amp -I_0\left(e^{-V_2/V_T}-1\right) \tag{4.5.6}\\ I_6 = \amp \frac{V_2-V_1}{R} \text{.}\tag{4.5.7} \end{align}
Combining (4.5.1)-(4.5.2) with (4.5.3)-(4.5.7), we find that
\begin{align*} 0 = \amp -I_0\left(e^{\left(V_1-V_\text{in}\right)/V_T} + e^{V_1/V_T} - 2\right) + \frac{V_2-V_1}{R} \\ 0 = \amp I_0\left(e^{-V_2/V_T}+e^{\left(V_\text{in}-V_2\right)/V_T}-2\right) - \frac{V_2 - V_1}{R} \text{.} \end{align*}
Using Newton’s method in Section A.1, we’ll set
\begin{equation*} \vec{f}(\vec{V})= \begin{pmatrix} -I_0\left(e^{\left(V_1-V_\text{in}\right)/V_T} + e^{V_1/V_T} - 2\right) + \frac{V_2-V_1}{R}\\ I_0\left(e^{-V_2/V_T}+e^{\left(V_\text{in}-V_2\right)/V_T}-2\right) - \frac{V_2-V_1}{R} \end{pmatrix} \end{equation*}
where
\begin{equation*} \vec{V}=\begin{pmatrix} V_1 \\ V_2\end{pmatrix}\text{.} \end{equation*}
Given \(\vec{f}(\vec{V})\text{,}\) we then calculate
\begin{equation*} \nabla\vec{f}\left(\vec{V}\right) = \begin{pmatrix} -\frac{I_0}{V_T}\left(e^{\left(V_1-V_\text{in}\right)/V_T} + e^{V_1/V_T}\right)-\frac{1}{R} \amp \frac{1}{R}\\ \frac{1}{R} \amp -\frac{I_0}{V_T}\left(e^{-V_2/V_T}+e^{\left(V_\text{in}-V_2\right)/V_T}\right) - \frac{1}{R} \end{pmatrix}\text{.} \end{equation*}
Then, Newton’s method can be used in Python to estimate the circuit behavior governed by
\begin{equation*} \nabla\vec{f}\left(\vec{V}\right) \cdot \vec{V} = \vec{f}\left(\vec{V}\right) \end{equation*}
to solve for \(\Delta\vec{x}\) and find our new root estimate
\begin{equation*} \vec{x}' = \vec{x}-\Delta\vec{x}\text{,} \end{equation*}
iterating to some desired tolerance.