enter image description here

Since there is a current in the circuit, supermesh is much preferred. However, how do I do that as the current source is not in between 2 loops? Do I just open circuit at the current source and I will be left with just right and upper loops?


I think maybe you have only ever seen circuits where the current source is sitting in a leg shared between two loops. In that case, you do need to use a supermesh because a loop equation containing unknowns cannot include the current source since the voltage drop across the current source is unknown. Since it is an extra unknown, it is difficult to solve if you make it appear in the loop equations.

Therefore, the approach is to assign the current value of whatever current loop you decide the current source will be part of (it could even be a super loop if you wanted) to a known value (the current source's value). This prevents the voltage drop of the current source from appearing in the loop equation.

But since the current source is sitting in a shared leg, another loop equation must account for it as well (and account for components that have been left out somehow). You obviously don't want another loop equation to contain current source's unknown voltage drop, but you also can't just set a assign a second current loop to be the current source's value. So what do you do?

Well, what you do instead is you make a super loop that encompasses, but bypasses (i.e. does not run through) the leg that the current source is in so you can account for every component in the circuit, but not have the current source's unknown voltage drop sitting inside any loop equations. This is why you need a super mesh.

But it is obviously not universal, as your example circuit demonstrates. If the current source is not in a shared leg, you don't need a super mesh. In this question, the current source is not in a shared leg. Therefore, after you set the current circulating inside the current source's loop to be a known value, there is no need for the current source's unknown voltage drop to appear in any other loop equations so you can go ahead and assign the rest of the loops however you want. They can be individual loops or super loops or whatever.

  1. No super-anything is ever needed. No supermeshes, no supernodes, etc. Any time you hear it is needed, just know it is NOT really needed.
  2. Always use the existing schematic editor when posting a question about a schematic. It will provide numbering for each part and it makes the schematic easier to comment on and read.


simulate this circuit – Schematic created using CircuitLab

Above, I've grounded the bottom node because (1) it's convenient; and, (2) it makes the analysis with your dependent source easier to deal with. (But it's also the same circuit.) The indicated mesh currents are arranged clockwise.

$$\begin{align*} I_\text{J}&=1\:\text{mA}\\ V_\text{X}&=0\:\text{V}-R_2\cdot\left(I_\text{K}-I_\text{J}\right)\\ V_2&=2\cdot V_\text{X}\\ 0\:\text{V}+V_{\text{I}_1}-R_1\cdot\left(I_\text{J}-I_\text{L}\right)-R_2\cdot\left(I_\text{J}-I_\text{K}\right)&=0\:\text{V}\\ 0\:\text{V}-R_2\cdot\left(I_\text{K}-I_\text{J}\right)-3\:\text{V}-R_3\cdot I_\text{K}&=0\:\text{V}\\ V_{\text{I}_1}-V_2+3\:\text{V}-R_1\cdot\left(I_\text{L}-I_\text{J}\right) &= V_{\text{I}_1} \end{align*}$$

That simplifies, of course, to:

$$\begin{align*} 0\:\text{V}+V_{\text{I}_1}-R_1\cdot\left(1\:\text{mA}-I_\text{L}\right)-R_2\cdot\left(1\:\text{mA}-I_\text{K}\right)&=0\:\text{V}\\ 0\:\text{V}-R_2\cdot\left(I_\text{K}-1\:\text{mA}\right)-3\:\text{V}-R_3\cdot I_\text{K}&=0\:\text{V}\\ 0\:\text{V}-2\cdot\left[-R_2\cdot\left(I_\text{K}-1\:\text{mA}\right)\right]+3\:\text{V}-R_1\cdot\left(I_\text{L}-1\:\text{mA}\right) &= 0\:\text{V} \end{align*}$$

The three unknowns are \$I_\text{K}\$, \$I_\text{L}\$, and \$V_{\text{I}_1}\$. You can find \$V_\text{X}\$ easily from there.

Edit: Since someone appears to doubt my approach, I'll now complete the solution for you and prove it's accuracy. (Something I will do everytime there appears to be doubt, but when also lacking any specific added criticism, in order to ensure that other readers may have confidence in what's written.) Using sympy (free to get):

var('vi1 ik il r1 r2 r3')

Using Spice simulation to verify the above, I do find exactly those result values.

  • 2
    \$\begingroup\$ Not sure what the downvotes are for. \$\endgroup\$
    – DKNguyen
    May 30 '19 at 1:35
  • \$\begingroup\$ @DKNguyen The moderators and their followers, probably. \$\endgroup\$
    – jonk
    May 30 '19 at 1:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.