Develop Your Electrical Circuit Solver in Python
- Description
- Curriculum
- FAQ
- Reviews
Welcome to one of the very few online courses that will teach you how to develop an electrical circuit solver!
Are you interested in the theory used in most circuit simulators and how to implement it yourself?
Are you an electrical engineering student/professional wishing to develop coding skills?
Would you like to switch to a software engineering career and start with a programming project linked to electrical engineering?
If the answer to any of these questions is yes, this course is for you.
If you are a university student, you will find that this course is complementary to your curriculum.
You will discover Modified Nodal Analysis (MNA), a powerful method to solve electrical circuits. Leonhard Martin Wedepohl, a noted electrical engineering educator, emphasised that “the absence of this circuit analysis technique from many academic engineering courses is totally at variance with its widespread application in modern circuit simulation packages”. And here is where you can learn this awesome technique!
Please note that this course does not cover the development of a graphical interface for drawing electrical circuits. However, this may be your next project after completing this one!
In the theory part of this course, you will get the foundations to build a circuit solver both in time domain and frequency domain. Although the implementation only covers independent voltage sources, independent current sources and RLC elements, modelling other components will require minimal additional effort!
If you have never programmed in Python, don’t worry, we have dedicated a section to teach you how to code in Python as well as all the language concepts you need to complete this project! There are many exercises along the way before beginning the development of your circuit solver. These exercises will let you feel better ready for the real project.
You will start your program with a warmup challenge: build a DC solver in steady state. Once done, you will continue with the development of a frequency domain solver followed by a time domain solver.
During your adventure, you will learn an essential software engineering concept: version control. This will make it easier for you to monitor the progress of your development and avoid any loss of information if you screw things up or your program crashes at any time! In this course, you will use Git with GitHub (you will have to create a GitHub account -it’s free- to better understand and apply version control concepts).
The last section of this course focuses on improving the structure of your code and defining an appropriate output format for your end-user.
If, at the end of this course, you are keen to continue with this project and develop further functionalities, you will find many creative opportunities that will help you to expand your programming skills and, in addition, enable you to show up with great achievements to employers! If you need guidance, some improvement suggestions are listed in the very last lecture of this course.
-
2Introduction to Modified Nodal Analysis (MNA)Video lesson
Definition of a graph with an introduction to Nodal Analysis and Modified Nodal Analysis.
-
3MNA Basics - Example 1 - Part 1Video lesson
Define the process to get the MNA system of equations and apply it to a simple circuit.
-
4MNA Basics - Example 1 - Part 2Video lesson
Observations on the system of equations established in the previous video (MNA Basics - Example 1 - Part 1).
-
5MNA Basics - Example 2 - Part 1Video lesson
Applying the process to get the MNA system of equations to a second circuit.
-
6MNA Basics - Example 2 - Part 2Video lesson
Observations on the system of equations established in the previous video (MNA Basics - Example 2 - Part 1).
-
7Application of the MNA Principles - Part 1Video lesson
Application of the MNA principles to a new circuit without writing down the equations one by one, using the observations made in the previous lectures.
-
8Application of the MNA Principles - Part 2Video lesson
Application of the MNA principles to a second circuit.
-
9Application of the MNA Principles - Exercise SolutionVideo lesson
-
10MNA Computational FormulationVideo lesson
Presentation of the MNA algorithm to implement later in this course.
-
11Calculation of Branch Voltages and CurrentsVideo lesson
How to get the branch voltages and currents after solving the MNA system of equations? Presentation of Approach 1.
-
12Incidence MatrixVideo lesson
Introduction of the incidence matrix and the two relevant equations involving this matrix.
-
13Branch Admittance Matrix and Complete Equation for CurrentsVideo lesson
Complete equation for currents with Approach 2, using the incidence matrix and the branch admittance matrix.
-
14LC Modelling in Time Domain - Trapezoid AreaVideo lesson
Reminder of the trapezoid area formula to get comfortable with the proof of the trapezoidal rule.
-
15LC Modelling in Time Domain - Trapezoidal RuleVideo lesson
Proof of the trapezoidal rule.
-
16LC Modelling in Time Domain - Common Representation and Iterative ProcessVideo lesson
Presentation of the common representation of inductors and capacitors in time domain.
Description of the iterative process to solve LC circuits in time domain. -
17LC Modelling in Time Domain - Proof of the Inductor ModelVideo lesson
Proof of the inductor model using the trapezoidal rule.
-
18LC Modelling in Time Domain - Proof of the Capacitor ModelVideo lesson
Proof of the capacitor model using the trapezoidal rule.
-
19LC Modelling in Time Domain - Impact on the MNA Matrix EquationVideo lesson
Impact of the inductor and capacitor models on the MNA matrix equation.
-
20Exercise - Proof of the Nodal Analysis FormulationVideo lesson
This exercise should help you for the more complex proof of the MNA formulation.
-
21Presentation of the Proof of the Nodal Analysis Matrix EquationVideo lesson
Solution to the exercise presented in the previous lecture.
-
22Exercise - Proof of the MNA FormulationVideo lesson
Now you've seen the proof the nodal analysis system of equations, you are ready to try to establish the proof of the MNA formulation! Beware, it's more challenging!
-
23Presentation of the Proof of the MNA FormulationVideo lesson
Solution to the exercise presented in the previous lecture.
-
24Python InstallationVideo lesson
Python Installation and Set Up.
-
25Code Editor and IDEVideo lesson
Presentation of common code editors and IDEs suitable for programming in Python.
-
26Getting Started with PyCharmVideo lesson
-
27Integers, Floats and StringsVideo lesson
-
28ListsVideo lesson
-
29Conditional StatementsVideo lesson
-
30Loops - Part 1Video lesson
-
31Loops - Part 2Video lesson
-
32Exercises - Lists, Loops and Conditional StatementsVideo lesson
Exercises to practice what we've covered so far.
-
33Exercises Solutions - Lists, Loops and Conditional StatementsVideo lesson
Solution to the exercises presented in the previous lecture.
-
34Dictionaries - Part 1Video lesson
-
35Dictionaries - Part 2Video lesson
-
36Exercise - DictionariesVideo lesson
-
37Functions - Part 1Video lesson
-
38Functions - Part 2Video lesson
-
39Functions - Part 3Video lesson
-
40Exercises - FunctionsVideo lesson
-
41Functions - Solution to Exercise 1Video lesson
-
42Functions - Solution to Exercise 2Video lesson
-
43Object-Oriented Programming - Part 1Video lesson
-
44Object-Oriented Programming - Part 2Video lesson
-
45Object-Oriented Programming - Part 3Video lesson
-
46Exercise - Object-Oriented ProgrammingVideo lesson
-
47Object-Oriented Programming - Solution to the ExerciseVideo lesson
-
48Files I/OVideo lesson
-
49Introduction to NumPyVideo lesson
-
50Introduction to PandasVideo lesson
-
51Introduction to MatplotlibVideo lesson
-
52__name__ and __main__Video lesson
-
53Virtual EnvironmentsVideo lesson
-
54IntroductionVideo lesson
Advice before starting programming.
Presentation of the input format and some information on the proposed solution. -
55Program StructureVideo lesson
-
56Solution - Part 1 - Storing the Input DataVideo lesson
-
57Solution - Part 2 - Input Pre-processingVideo lesson
-
58Solution - Part 3 - Node Admittance MatrixVideo lesson
-
59Solution - Part 4 - Incidence Matrix and MNA MatrixVideo lesson
-
60Solution - Part 5 - RHS Vector and System SolutionVideo lesson
-
61Solution - Part 6 - Branch Voltages and CurrentsVideo lesson
-
62Documentation and Arbitrary Nodes LabellingVideo lesson

External Links May Contain Affiliate Links read more