In this blog we will learn to simulate a circuit using MATLAB Programming which is the basic step to create your own circuit solver. The circuit we are going to solve is shown in Fig 1. Here V is 6V.
Create NetList and SourceList
You need to first represent this circuit in terms of matrixes so that you can use them in MATLAB. These two matrixs will describe the network- NetList and SourceList
Let us first give a number to all the nodes in the circuit. Two nodes should be separated by atleast an element.
The considered circuit has 4 nodes and let us choose node 4 as the reference/ground node.
Now create a matrix named as NetList with three columns N1, N2 and R. Each row of this matrix will represent a R resistance element between Node N1 and N2.
Now create a matrix named SourceList with two columns N and V. Each row of this matrix will represent a N node with V voltage. Since only two node voltages are know, this will contain two rows.
Create A and B matrix
If Total Nodes are N
A is of N x N
Aij=
Case 1: if i is not a Source Nodes
-1/Rij where Rij is the resistance between i and j (if i!=j)
Sum of inverse of all resistance connected to i (if i==j)
Case 2: if i is a source Node
Aii=1 and
rest Aik=0
If Total Nodes are N
B is of N x 1
Bi=
Case 1: if i is not a Source Node
0
Case 2: if i is a source Node
Voltage of that source Node
Nodal Equations
Using the above nodal equation can be represented as
\[\mathbf{AV=B}\]\[\mathbf{V}=[V_1 V_2 ... V_N]^T\]\[V=A^{-1}B\]
This V represent the Voltage of all the nodes, thus circuit is solved.
MATLAB Code
Initialization of the matrixs
Solution
Fig 1: Circuit |
You need to first represent this circuit in terms of matrixes so that you can use them in MATLAB. These two matrixs will describe the network- NetList and SourceList
Let us first give a number to all the nodes in the circuit. Two nodes should be separated by atleast an element.
The considered circuit has 4 nodes and let us choose node 4 as the reference/ground node.
Now create a matrix named as NetList with three columns N1, N2 and R. Each row of this matrix will represent a R resistance element between Node N1 and N2.
Now create a matrix named SourceList with two columns N and V. Each row of this matrix will represent a N node with V voltage. Since only two node voltages are know, this will contain two rows.
Fig 2: NetList and Source List |
Create A and B matrix
If Total Nodes are N
A is of N x N
Aij=
Case 1: if i is not a Source Nodes
-1/Rij where Rij is the resistance between i and j (if i!=j)
Sum of inverse of all resistance connected to i (if i==j)
Case 2: if i is a source Node
Aii=1 and
rest Aik=0
If Total Nodes are N
B is of N x 1
Bi=
Case 1: if i is not a Source Node
0
Case 2: if i is a source Node
Voltage of that source Node
Nodal Equations
Using the above nodal equation can be represented as
\[\mathbf{AV=B}\]\[\mathbf{V}=[V_1 V_2 ... V_N]^T\]\[V=A^{-1}B\]
This V represent the Voltage of all the nodes, thus circuit is solved.
MATLAB Code
Initialization of the matrixs
NetList=[1 2 2; 1 3 4; 2 3 5.2; 3 4 6; 2 4 3];A Matrix Creation
Vnod=[1 6; 4 2];
l=size(NetList,1);
N=max([NetList(:,1) ;
NetList(:,2)]);
A=zeros(N,N);
B=zeros(N,1);
for i=1:lB Matrix Creation
n1=NetList(i,1);
n2=NetList(i,2);
if n1==n2
else
A(n1,n2)=A(n1,n2)-1/NetList(i,3);
A(n2,n1)=A(n2,n1)-1/NetList(i,3);
A(n1,n1)=A(n1,n1)+1/NetList(i,3);
A(n2,n2)=A(n2,n2)+1/NetList(i,3);
end
end
for i=1:size(Vnod,1)A(Vnod(i,1),:)=zeros(1,N);A(Vnod(i,1),Vnod(i,1))=1;B(Vnod(i,1),1)=Vnod(i,2);end
Solution
Vo=A\B;disp(Vo);