Difference between revisions of "Maple/Example/CAD Fig 03 14"
(→Solve Equations) |
m (DukeEgr93 moved page Maple/Example/CAD Fig 03 13 to Maple/Example/CAD Fig 03 14 without leaving a redirect: 14 is not 13) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | This page goes over how to get the equations from and solve the circuit in Figure 3-14 of [https://cad.eecs.umich.edu/ "Circuit Analysis and Design" by Ulaby, Maharbiz, and Furse]. | + | This page goes over how to get the equations from and solve the circuit in Figure 3-14 of [https://cad.eecs.umich.edu/ "Circuit Analysis and Design" by Ulaby, Maharbiz, and Furse]. The full Maple example is available on the Maple Cloud at [https://maple.cloud/app/4564611728801792/CAD_Fig03p14?key=91476187A8C04D1BA3DF1224600039971BC0759636FC4B3B9DB5AA8F55B78998 CAD_Fig03p14] |
== Convert to Symbols == | == Convert to Symbols == | ||
Line 11: | Line 11: | ||
as the first executable in your worksheet. | as the first executable in your worksheet. | ||
− | + | == Define Equations == | |
To solve this circuit using Mesh Current Method, note that there are three meshes and no current sources so you have three independent KVL equations. While there are six loops to choose from, there is no reason to not just choose the three meshes. If you start at the lower-left hand corner of each mesh and count the voltage drops clockwise, you get: | To solve this circuit using Mesh Current Method, note that there are three meshes and no current sources so you have three independent KVL equations. While there are six loops to choose from, there is no reason to not just choose the three meshes. If you start at the lower-left hand corner of each mesh and count the voltage drops clockwise, you get: | ||
<center><math> | <center><math> | ||
Line 27: | Line 27: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | == Solve Equations == | |
You now want to solve the equations for the mesh currents; you can get the solutions (and store them) with the code: | You now want to solve the equations for the mesh currents; you can get the solutions (and store them) with the code: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
Line 34: | Line 34: | ||
In the example worksheet, the solutions are printed out. You should generally run this command at least once without putting a : at the end to make sure you are actually getting a set of solutions and not just an empty list. Once you have confirmed that you are getting a solution, if you do not need to see the full symbolic solutions, you can then add a : to the end of this line to suppress printing. | In the example worksheet, the solutions are printed out. You should generally run this command at least once without putting a : at the end to make sure you are actually getting a set of solutions and not just an empty list. Once you have confirmed that you are getting a solution, if you do not need to see the full symbolic solutions, you can then add a : to the end of this line to suppress printing. | ||
− | + | == Make Substitutions == | |
− | Now that you have symbolic answers, you can make numerical substitutions for those symbols using the <code>subs</code> command. | + | Now that you have symbolic answers, you can make numerical substitutions for those symbols using the <code>subs</code> command. For this problem, you can make a variable that has all the substitutions and then use them. You may also want Maple to display the results as floating point numbers rather than fractions; use the <code>evalf</code> command for that: |
− | <syntaxhighlight> | + | <syntaxhighlight lang=text> |
− | + | vals := R2 = 2, R3 = 3, R4 = 4, R5 = 5, R6 = 6, R7 = 7, v1 = 6, v2 = 4; | |
+ | numsoln1 := subs(vals, soln1); | ||
+ | evalf[4](numsoln1); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Define Auxiliary Equations == | ||
+ | You may want to find the powers delivered by each source and the powers absorbed by each resistor. To do that, make a set of auxiliary equations and then perform the necessary substitutions; note that the second line is fairly long and is probably wrapping on your screen. | ||
+ | <syntaxhighlight lang=text> | ||
+ | psource := pdelv1 = v1*I1, pdelv2 = v2*(I3 - I1); | ||
+ | presistor := pabsR2 = R2*I1^2, pabsR3 = R3*(I1 - I2)^2, pabsR4 = R4*I2^2, pabsR5 = R5*(I2 - I3)^2, pabsR6 = R6*(I1 - I3)^2, pabsR7 = R7*I3^2; | ||
+ | numpower := subs(soln1[1][], vals, [psource, presistor]); | ||
+ | evalf[4](numpower); | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Check Conservation of Power == | ||
+ | Finally, you may want to see if power is conserved. To do that, you will want to add the powers delivered by the two sources together, then add the powers absorbed by the six resistors together, then compare those two numbers. They should be the same. One way to accomplish this goal is to use a loop in Maple. Inside the loop, you will want to access one of the expressions in the <code>power</code> list, extract the right hand side of the expression, then add that to some kind of accumulator variable. Here is some example code to do just that for this particular problem: | ||
+ | <syntaxhighlight lang=text> | ||
+ | pdel := 0: | ||
+ | for k to 2 do | ||
+ | pdel := pdel + rhs(power[k]); | ||
+ | end do: | ||
+ | pdel; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | <syntaxhighlight lang=text> | |
− | <syntaxhighlight> | + | pabs := 0; |
− | + | for k from 3 to 8 do | |
+ | pabs := pabs + rhs(power[k]); | ||
+ | end do: | ||
+ | pabs; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Note that the : at the end of the <code>end do:</code> command tells Maple to suppress printing out intermediate results in the loop. If you want to see what it is doing, replace the : with a ; | |
+ | |||
+ | For this circuit, you should get that the power delivered by the sources is 4124/1327 and that the power absorbed by all the resistors is also that amount. |
Latest revision as of 18:59, 13 January 2024
This page goes over how to get the equations from and solve the circuit in Figure 3-14 of "Circuit Analysis and Design" by Ulaby, Maharbiz, and Furse. The full Maple example is available on the Maple Cloud at CAD_Fig03p14
Contents
Convert to Symbols
For the Maple worksheet, we are going to use symbols for each of the circuit elements. The 6 V source will be $$v_1$$ and the 4 V source will be $$v_2$$. For the resistors, label each with a subscript that matches the value in ohms (e.g. the 6 $$\Omega$$ resistor will be called $$R_6$$.
Initialization
Go ahead and put
restart
as the first executable in your worksheet.
Define Equations
To solve this circuit using Mesh Current Method, note that there are three meshes and no current sources so you have three independent KVL equations. While there are six loops to choose from, there is no reason to not just choose the three meshes. If you start at the lower-left hand corner of each mesh and count the voltage drops clockwise, you get:
You can add those to your Maple worksheet with:
KVLl1 := -v1 + R2*I1 + R3*(I1 - I2) + R6*(I1 - I3) + v2 = 0;
KVLl2 := R3*(I2 - I1) + R4*I2 + R5*(I2 - I3) = 0;
KVLl3 := -v2 + R6*(I3 - I1) + R5*(I3 - I2) + R7*I3 = 0;
Solve Equations
You now want to solve the equations for the mesh currents; you can get the solutions (and store them) with the code:
soln1 := solve({KVLl1, KVLl2, KVLl3}, [I1, I2, I3])
In the example worksheet, the solutions are printed out. You should generally run this command at least once without putting a : at the end to make sure you are actually getting a set of solutions and not just an empty list. Once you have confirmed that you are getting a solution, if you do not need to see the full symbolic solutions, you can then add a : to the end of this line to suppress printing.
Make Substitutions
Now that you have symbolic answers, you can make numerical substitutions for those symbols using the subs
command. For this problem, you can make a variable that has all the substitutions and then use them. You may also want Maple to display the results as floating point numbers rather than fractions; use the evalf
command for that:
vals := R2 = 2, R3 = 3, R4 = 4, R5 = 5, R6 = 6, R7 = 7, v1 = 6, v2 = 4;
numsoln1 := subs(vals, soln1);
evalf[4](numsoln1);
Define Auxiliary Equations
You may want to find the powers delivered by each source and the powers absorbed by each resistor. To do that, make a set of auxiliary equations and then perform the necessary substitutions; note that the second line is fairly long and is probably wrapping on your screen.
psource := pdelv1 = v1*I1, pdelv2 = v2*(I3 - I1);
presistor := pabsR2 = R2*I1^2, pabsR3 = R3*(I1 - I2)^2, pabsR4 = R4*I2^2, pabsR5 = R5*(I2 - I3)^2, pabsR6 = R6*(I1 - I3)^2, pabsR7 = R7*I3^2;
numpower := subs(soln1[1][], vals, [psource, presistor]);
evalf[4](numpower);
Check Conservation of Power
Finally, you may want to see if power is conserved. To do that, you will want to add the powers delivered by the two sources together, then add the powers absorbed by the six resistors together, then compare those two numbers. They should be the same. One way to accomplish this goal is to use a loop in Maple. Inside the loop, you will want to access one of the expressions in the power
list, extract the right hand side of the expression, then add that to some kind of accumulator variable. Here is some example code to do just that for this particular problem:
pdel := 0:
for k to 2 do
pdel := pdel + rhs(power[k]);
end do:
pdel;
pabs := 0;
for k from 3 to 8 do
pabs := pabs + rhs(power[k]);
end do:
pabs;
Note that the : at the end of the end do:
command tells Maple to suppress printing out intermediate results in the loop. If you want to see what it is doing, replace the : with a ;
For this circuit, you should get that the power delivered by the sources is 4124/1327 and that the power absorbed by all the resistors is also that amount.