I'm trying to solve a problem related to dependant voltage sources. I need to provide two answers which either I can't obtain or don't understand why I have obtained it.
What I have done
This is a summary of what I have done, the details are in the section 'Details'.
For calculating the Norton resistance
In summary, I have obtained the correct Norton resistance by using the following KVL equation, and I have obtained the correct result:
V0 - v1 - v2 - v3 + Au = 0
What I don't understand is why
Au is added instead of being substracted, since its polarity is the opposite as V0. As far as I understand, the correct KVL would be:
V0 - v1 - v2 - v3 - Au = 0
With which I obtain a Norton resistance that is wrong. Why is
Au being added instead of subtracted?
My second question is about the Norton current. What I have done is calculating the Port B voltage (the node just after
R2), and divide it by the Norton resistance, that is:
Vportb = It / (R3 + Ru), where
It is the total current across the loop and
Ru is the
Au equivalent resistance.
Inorton = Vportb / Rnorton
I obtain the wrong result at this point. What am I missing?
The details about what I have done are below (the language used is
# Declare known constants V0 = 5 A = 2 R1 = 1 R2 = 3 R3 = 5 # 'i' is the unknown total current across the loop # v1, v2 and v3 are the voltage drops in R1, R2 and R3 respectively i = var('i') v1 = i * R1 v2 = i * R2 v3 = i * R3 # v1 is the votlage drop in R1 u = V0 - v1 # Au --> dependant voltage source shown in the schema Au = A * u # (1) Use KVL KVL1 = V0 - v1 - v2 - v3 + Au == 0 # Shouldn't the above be -Au? # total current across the loop (solve the KVL equation) _i = float(solve(KVL1, i).rhs()) print("Total current = %f" % _i) # voltage across 'u' _u = V0 - (_i * R1) print("Voltage across 'u' = %f" % _u) # Dependant voltage as if it was a resistor Ru = A * _u / _i # Norton ressistance Rn = float(1 / ((1/(R3 + Ru)) + (1/(R1+R2)))) print("Norton ressitance = %f" % Rn) # Voltage across port B VB = _i * (R3 + Ru) # Norton current: voltage across Port B / Norton resistance In = VB / Rn print("Norton current: %f" % In) ############### Results ############### > Total current = 1.363636 > Voltage across 'u' = 3.636364 > Norton resistance = 2.883721 > Norton current: 4.886364
EDIT - One solution found, but still there are things that I don't understand
Reading the comments, I have found the problem but, still, there are several things I don't understand. What I have done now is:
I have removed this part:
# Dependant voltage as if it was a resistor Ru = A * _u / _i
And I have applied KCL, so add the current through the two branches (
I1 = V0 / (R1 + R2) I2 = 2 * _u / R3 print(I1 + I2)
I still don't understand why treating the dependant voltage source, once I know
_u, as a resistor, is not correct.
In addition, I still don't understand how the wrong KVL equation can give me the right answer while the 'supposed correct one' is causing a failure in my results.
_i is supposed to be the total current across the loop, but it is
1.363636, which does not match with my other result. This is the thing that most disturbs me, it seems that my KVL eq., which takes into account
Au, has given me the current generated only by