# How to Solve Complicated Circuits with Kirchhoff's Current Law (KCL)?

Published

While we’ve discussed Ohm’s Law and series and parallel circuits, you’ve probably realized by now that there are many situations where these methods come short when trying to analyze a circuit. Gustav Kirchhoff was a German scientist who came up with two important laws that are the underpinning concept behind most network analysis. These laws can be applied to most, though not all, situations in circuits and we will assume that these laws apply unless specifically mentioned otherwise. While the history is interesting, we’ll let you go to Wikipedia if you want more info on Gustav - we’re going to get into what the laws are.

With that, in this tutorial, we will only be focusing on his current law and nodal analysis. Called Kirchhoff’s Current Law, or most frequently used shorthand, KCL, this law is based on the principle of conservation of charge. In essence - what goes in, must come out.

We spoke about branches and nodes, and this is where that becomes very important. At any node, any current that flows into the node must also flow out of the node. Let’s look at this image below:

In this image, you can see there is a central node with several sources of current flowing in and out. Using the water analogy, imagine those are all pipes that are already filled with water and, stretching the analogy a bit, must always be completely filled with water. If you put water in one pipe, it will have to come out another pipe. If water is coming out of a pipe, it must be getting water from somewhere else. Conceptually, this may seem straightforward and you’d be right!

One note before jumping into how this concept is related to nodal analysis, please remember that you define the direction of currents semi-arbitrarily. Before you do any math, you assign currents and their direction and then the math will work out - if you chose the wrong direction, the current will be negative. In this case, using the image above, you can assume that all the currents are flowing into the node, you just know that at least one (if not all but one) of the currents will be negative.

## Sample Problem 1

Now that we know that, according to KCL, everything that goes into a node must also come out, we can start learning about nodal analysis.

Looking at the figure above, you can see that none of the resistors are in series or parallel, so this can’t be simplified. Also note that there are no voltage sources, just current sources, which makes KCL simpler.

Step 1) The first step I always take when solving a circuit is to review what’s been given, what I need, and to take a moment and breathe. Sometimes a circuit can be overwhelming but just taking your time and going through this process will inevitably simplify the problem. In this case, we have three resistors and we know their values. We’ve been given two current sources and we know their values. So, there are only two nodes (N_{1} and N_{2}) whose voltage we need and one branch that we need to know the current through (R_{3}). Since we identified we need to know the current through R_{3}, let’s put an arrow pointing down next to R_{3} and label it as I_{3}.

Step 2) Now that we’ve written down everything we know and what we need to know, let’s choose a reference ground, if it hasn’t already been done. This is also semi-arbitrary. You can choose any node you want in a circuit, in this case, either N_{1} or N_{2} would work and the math would work out. However, standard practice is to choose the bottom node as ground. In school, teachers will sometimes do tricky things to make sure you understand intuitively what’s going on. That’s fine, but most of the time, you want a schematic that is clear and easy to follow, following best practices. So, let’s label N_{2} as our reference ground.

Step 3) Write out the equations for the current through different branches. In this case, we already know the current through R_{1} and R_{2} because it’s I_{1} (which is 1A) and I_{2} (which is 2A). However, we don’t know the current through R_{3} or I_{3} yet. So, we can define that as the voltage at N_{1} minus N_{2} - our reference voltage in this case - over the resistance. In other words:

or

Step 4) Using the equations you’ve created (only the one in this case), put together the equations for the current into and out of each node. So, at N_{1} we know that we have I_{1} and I_{2} going in and I_{3} going out. Again, we’re **assuming** all of this (and it’s a very reasonable assumption in this case) and if our assumptions are wrong, the way that will be shown is with negative currents and voltages. So, mathematically, our equation at N_{1} is:

or

As we have only one unknown, we only have this single equation. However, when there are more unknowns, there will be more equations. To solve for the unknowns, you need at least as many equations as unknowns. For example, if you need two voltages, you need two equations to be able to get real values for those two voltages. Three currents? Three equations. We’ll get more in-depth with that later.

Step 5) Solve for the unknowns. Again, in this case, it’s pretty straightforward. We know I_{1} and I_{2} so we can see that I_{3} is simply 3A. And, depending on the question, that may be all we need. But supposed that we were asked what the voltage is at N_{1}? Now we can use Ohm’s Law or the equation we put together in Step 3.

We can even use Ohm’s Law to see how much voltage is created by the current sources to supply their rated currents. For example, with R_{1}, to get 1A flowing through a 10Ω resistor, we can see that V = IR is V = 1*10 so the voltage across R_{1} must be 10V. However, since N_{1} is 90V, that means that the voltage on the other side of the resistor must be 100V to get that 10V drop across R_{1}.

I’d recommend trying to figure out what the voltage is across R_{2} and what the voltage out of that current source is.

So, in summary, the steps are:

- Review what you have, label everything you can, establish reference flows. Breathe, take your time, don’t panic.
- Choose a reference ground if necessary.
- Start writing equations for the current through different branches.
- Using the equations for the current, put together equations for the current in an out of each node.
- Solve the equations. For multiple equations, either use linear algebra (matrices) or solve for one variable and insert that variable in the next equation, until you find real numbers and then go back and put those real numbers in for each value.

## Sample Problem 2

Let’s do one more sample problem, a little more complicated this time, though still reasonable. This time, instead of a current source, we’ll use voltage sources connected to reference ground. This isn’t actually much more difficult, but it does put some things in terms of voltage that would be more easily defined as current, so the math is minutely more involved.

Step 1) Let’s review this. In this example, everything is already given and named but it’s still good to review what we have. We have the power source, which is a voltage source in this case, and a very realistic 5V. We have three resistors, two (R_{2} and R_{3}) of which are in parallel (often shown in shorthand as R_{2 }|| R_{3} or R_{2 }// R_{3}) and both of those resistors are in series with the R_{1}. We only have one node whose voltage we don’t know. We can see from inspection that both the currents through R_{2} and R_{3} (I_{2} and I_{3}, respectively - try to keep naming conventions straightforward) are the same as the current through R_{1}. In other words, we can see from inspection that I_{1} = I_{2} + I_{3}. And finally, there is only one node whose voltage we don’t know. These are all things we can see without any math or anything too tough.

Step 2) We see that the voltage source is attached to what is already defined as reference ground at the bottom of the schematic.

Step 3) We’ve already established that I_{1} = I_{2} + I_{3}, but let’s define those currents via their voltages. Let’s call the voltage at the one unknown node V_{1}.

Step 4) Based off of the image, we assumed that I_{1} was going into the node and I_{2} and I_{3} are leaving the node. With that, we create the following equation:

Step 5) Let’s solve this equation! Since we only have one unknown node, we only have one equation, so this is a matter of simple algebra. Of course, that is where I make 95% of my mistakes when it comes to circuit analysis, so don’t underestimate it.

Now, let’s do a sanity check. Is it less than the 5V source? Yes. Is it greater than reference ground? Yes. This won’t always be what you want, but in this case, there’s no reason for that voltage to be higher than the source or lower than ground, so that’s a good sanity check. Also, R_{2 }|| R_{3} is still going to be a higher resistance than R_{1}, so it also makes sense that there will need to be a greater voltage across them to conduct the same amount of current that goes through R_{1}.

If we want to further verify, we can solve for the currents through each branch and the currents should equal zero. I’ll let you do that, it should be simple. I’ll put the answers a couple sentences down so you can double check, though.

Finally, if you’re very paranoid and/or thorough, you can use what you know about parallel and series resistors, put this circuit together as a single voltage source and resistor and you **should** get the same amount of current through that single resistor you do through R_{1}. I recommend you try that.

To double-check your answers, I got:

And the equivalent resistance for the entire circuit is 287.5Ω, which 5V/287.5Ω = 17.4mA, further showing that our numbers are correct.

You don’t have to, nor will you have the time, to do all of these checks when doing a test, but it would be great practice and really help you understand all of this intuitively if you do these checks on homework. And looking at the numbers and seeing if they’re simply “reasonable” should only take a couple of seconds and should be done **every** time.

## Sample Problem 3

And, as there are never enough examples, let’s do another sample problem, upping the complication yet again. If you’re like me, the most complicated part is not messing up the math. This one requires more math so make sure you don’t make any mistakes as they compound quickly.

Step 1) Reviewing everything. We have two current sources and three resistors, all with values we know. We also have two node voltages, and three branch currents that we don’t know. Let’s assume that the current through R_{1} is I_{1} and is flowing down, R_{2} is I_{2} and flowing to the left, and R_{3} is I_{3} and also flowing down. Let’s put a V_{1} and V_{2} at N_{1} and N_{2} respectively, to represent the voltages at those nodes.

Step 2) Let’s put the reference node at the bottom at N_{3}.

Step 3) Setup the equations for the current through the individual branches.

NOTE! As we assigned the current from right to left, that means that we’re assuming that the current is flowing from V_{2} to V_{1}. If we had assumed the current flow the opposite direction, the equation would be (V_{1} - V_{2})/20 — make sure your equation matches the direction of the current flow.

Step 4) Use the equations from step 3 to define the current going in and out of Node1 and Node2. Personally, I like to simplify and arrange them so that the equations equal an actual number, but that’s just me, there’s not a huge amount of value to it.

At Node1:

At Node2:

Step 5) Now we solve the equations. Unlike the last problem, now we have two unknowns (V_{1} and V_{2}) and two equations. We can solve for V_{1} in one equation, and then replace V_{1} in the other equation or we can put this into a matrix. Let’s do both.

First method:

Using the equation from Node1, we get

We then plug that into the equation from Node2:

Now that we know V_{2}, we can plug that back into any equation.

And you can plug those numbers in to easily find the currents.

Now, if we want to solve this as a matrix, you need to get the equations in the right format first, having the first voltage, then the second voltage, and them equalling an actual number:

At Node1:

At Node2:

This turns into:

Which can then be calculated by hand or put into a matrix calculator on your handheld or using CircuitBread's Linear Equations Calculator, which then yields the result:

This matches our manual calculation and makes me feel more confident in my answer! You likely won’t have the time to do both methods in a test, but if you have the time doing homework or studying by yourself, it’s good practice and will double-check your answers, to do both methods of solutions.

## Sample Problem 4

At the risk of making this obscenely long, I want to cover one more thing and do an example of what is called a “supernode”. Voltage sources that are connected on one side to reference ground are pretty easy to deal with, but when both sides of a voltage source (independent or dependent) are connected to non-reference ground, you have to treat them differently - you can create a “supernode”. In this case, you mathematically combine both sides of the voltage source into a single node. Meaning, you create one equation that describes all the currents going in and out of **both** nodes of the voltage source, which in our steps, means that you’ll only be changing step 4. As that’s probably still not clear, let’s use an example:

Let’s go through the first three steps like normal.

Step 1) Breathe, let’s take a look. Again, everything is identified for us - we know the value of both voltage sources and the value of all the resistors. We have four unknown currents and two node voltages that are unknown. We have a reference ground at the bottom and one of our voltage sources is attached to that reference, so we know that the voltage right above that voltage source is 10V.

Step 2) We already have a reference ground, so we’re good. In most cases, this step will either not be needed or will be a natural and intuitive step. So we wouldn’t be offended if you decided to ignore this step in the future. Just be careful to not let it bite you in the butt somehow.

Step 3) Let’s create equations for all of the currents through the individual branches. I’ll skip over some of the math steps to keep this cleaner/faster. It is still essential to make sure you define these equations on the way we have defined the current flow in the figure.

Step 4) As we write the node equations, this is where the supernode comes in. Normally, we would assume the sum of the currents flowing in and out of Node1 is 0. But now we will assume that the sum of the currents flowing in and out of Node1 AND Node2 is 0.

See how we just assumed that there is no voltage source there at all? That the two ends of the voltage source are basically shorted together to combine into a single, “supernode”? We can now take our equations and plug them in for our currents. Pay attention to your signs!

Wait a second! We have two unknowns and one equation! How do we figure this out? This is where we get a little ahead of ourselves. With Kirchhoff’s Voltage Law, KVL, we can get another equation out of this circuit.

We can see that, in a clockwise direction, there is voltage that rises across R_{4}, drops across the 10V voltage source, and drops across R_{3}. We can create an equation with that.

In other words, the voltage across R_{4} minus the voltage across the voltage source minus the voltage across R_{3} is equal to 0. If this is a bit odd to you, don’t worry, go on to the KVL tutorial and then come back to this later, you’ll feel a lot better about the situation.

Finally, now that we have two equations for two unknowns, we can solve this.

Step 5) Solve the equations:

And

I like to go simpler to harder, as it’s easier to replace things in the equation.

which can be placed into the other equation.

And now we know that

Let’s do another sanity check. None of the voltages are greater than the sum of the voltage sources (nothing is greater than +/-20V). There is a 10V difference between V_{1} and V_{2}, just as there should be with a voltage source that forces it. We can tell that we defined the currents I_{2} and I_{3} backwards, making them negative, but I_{1} and I_{4} are both positive. Without taking the time to run this through a matrix calculator or a simulator, this at least looks like it could be right. And don’t worry, I ran it through a simulator because I know I make mistakes - it’s right.

That’s it - finally! That’s the concept behind Kirchhoff’s Current Law, or KCL, and how it’s applied to nodal analysis. Circuits will get more complicated, the math will become even harder, and teachers or life may try to trip you up but as long as you remember that the sum of all the currents in and out of a node equals zero, you can build on that foundation of knowledge with experience and practice.

Get the latest tools and tutorials, fresh from the toaster.