Пытаюсь решить схему, содержащую 2 источника тока и 1 источник напряжения и резисторы: что я делаю неправильно?

Вот схема и приведенные значения. Это для теста Coursera по линейным цепям, который я сдаю и где я застрял :-(

введите описание изображения здесь введите описание изображения здесь

Выполняя KCL и KVL, я получаю следующее:

В а В б р 1 "=" я 1 + я Б я А + я Б "=" я 2 я 2 + В а В б р 1 + В б р 3 + В 1 В б р 2 "=" 0 В 1 + ( я Б + я С ) * р 2 + ( я Д + я С ) * р 3 "=" 0 В б р 3 "=" я Д + я С В 1 В б р 2 "=" я Б + я С
и при iD=I1
В а В Б я а * р 1 "=" р 1 * я 1 я а + я Б "=" я 2 В А * 1 р 1 + В Б * ( 1 р 1 + 1 р 3 1 р 2 ) "=" я 2 В 1 р 2 р 2 * я Б + я С * ( р 2 + р 3 ) "=" В 1 я 1 * р 3 В Б р 3 * я С "=" р 3 * я 1

Это дает эту матрицу A * X = B с этим решением в Matlab

I1=10*1e-3; I2=30*1e-3; V1=10; R1=800; R2=100; R3=300; R4=1000;

A=[1 -1 -R1 0 0; 0 0 1 1 0; 1/R1 (-1/R1+1/R3-1/R2) 0 0 0; ...
    0 0 0 R2 (R2+R3);  0 1 0 0 -R3]
B=[R1*I1; I2; I2-V1/R2; V1-R1*I1; R3*I1]

X=linsolve(A,B)
X=inv(A)*B

с

X =

 -103.5000  Va
   -7.5000  Vb
   -0.1300  iA
    0.1600  iB
   -0.0350  iC

Что, к сожалению, неверно :-(

Где моя ошибка? Что я делаю не так?

Это кажется такой простой схемой...

Спасибо.

В третьей формуле Vb/R3 должен иметь отрицательный знак
Спасибо. С логической точки зрения вы правы. Ток течет в обратном направлении. К сожалению, теперь все становится еще хуже, и я получаю предупреждение: «Матрица близка к единственной или плохо масштабирована. Результаты могут быть неточными. RCOND = 2,729154e-23». Поэтому я подозреваю, что должно быть больше, чем эта одна ошибка (или значение проблемы неверно - всегда есть возможность)
В первой формуле должно быть I1+Ia, а не I1+Ib.
Спасибо. Это верно. К сожалению, это только кажется опечаткой, так как в следующем уравнении я использовал iA.

Ответы (2)

Поскольку вы предоставили свою собственную работу (спасибо!), вот как я подхожу к проблеме. Вы можете прополоть свою собственную работу, просматривая мою, на предмет собственных ошибок. Я хочу оставить кое-что для вас; это, а также немного работы по алгебре я также позже оставлю для вас ниже.

Я всегда буду начинать циклы (все четыре) с центрального узла вашей схемы. И я также всегда буду следовать направлению ваших собственных стрелок, поскольку я генерирую каждое уравнение ниже. И, чтобы быть полным, я всегда буду начинать каждое уравнение с явного 0 В . Указанная земля цепи просто игнорируется для следующих целей:

0 В + В я 2 я А р 4 ( я А + я Д ) р 1 "=" 0 В 0 В + В я 2 ( я Б + я С ) р 2 "=" 0 В 0 В ( я С + я Д ) р 3 + В 1 ( я С + я Б ) р 2 "=" 0 В 0 В ( я С + я Д ) р 3 + В я 1 ( я А + я Д ) р 1 "=" 0 В я 1 "=" я Д я 2 "=" я А + я Б

Вы можете либо использовать последние два уравнения, чтобы подставить их обратно в предыдущие четыре уравнения, а затем решить четыре неизвестных переменных в четырех уравнениях, либо вы можете просто решить все шесть уравнений выше для шести неизвестных переменных. В любом случае работает нормально.

Обратите внимание, что я не беспокоился о напряжениях узлов, а вместо этого использовал В я 1 и В я 2 для представления напряжений на двух ваших источниках тока.


Я не собираюсь приводить приведенные выше уравнения в матричную форму. Это просто алгебраические манипуляции, и я уверен, что вы без труда справитесь с этим.

Это также оставлено вам в качестве упражнения.

Так что просто позвольте Sage предоставить прямые результаты:

sage: var('i1 i2 ia ib ic id r1 r2 r3 r4 v1 vi1 vi2')
(i1, i2, ia, ib, ic, id, r1, r2, r3, r4, v1, vi1, vi2)
sage: e1=Eq(vi2-ia*r4-(ia+id)*r1,0)
sage: e2=Eq(vi2-(ib+ic)*r2,0)
sage: e3=Eq(-(ic+id)*r3+v1-(ic+ib)*r2,0)
sage: e4=Eq(-(ic+id)*r3+vi1-(id+ia)*r1,0)
sage: e5=Eq(i2,ia+ib)
sage: e6=Eq(i1,id)
sage: ans=solve([e1,e2,e3,e4,e5,e6],[ia,ib,ic,id,vi1,vi2])
sage: ans[ia].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
-0.00213333333333333
sage: ans[ib].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
0.0321333333333333
sage: ans[ic].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
0.00946666666666666
sage: ans[id].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
0.0100000000000000
sage: ans[vi1].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
12.1333333333333
sage: ans[vi2].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
4.16000000000000

Эти результаты будут правильными, я верю. Я только что запустил его в Spice, только после того, как сделал все вышеперечисленное, и он выдал те же цифры.


Список соединений LTSpice:

R1 N003 N002 800
R2 N001 N003 100
R3 N003 0 300
R4 N001 N002 1k
V1 N001 0 10
I1 0 N002 10m
I2 N003 N001 30m

введите описание изображения здесь

Большое спасибо. Это намного больше, чем я хотел. И я рад, что у меня есть другой подход к этой проблеме. Я сравню ваш способ и попытаюсь выяснить свои ошибки. Самая большая проблема в дистанционном обучении, таком как Coursera, заключается в отсутствии прямого общения с коллегами, «решающими проблемы» ;-) Кстати, не могли бы вы прислать мне свою модель Spice для справки. Я попробую свой выложить в LTSpice и тогда можно будет сравнить с вашим?
@АндреасК. Добавлено в конце.
Человеку, поставившему оценку (-1), имейте смелость назвать себя и свои рассуждения. Трусость не является добродетелью.
@jonk Боюсь, такие слова бесполезны, поскольку эти люди не только воспользуются анонимностью действия, но и продвинутся дальше в мете (возможно, даже не в мете EE). У меня больше нет ссылки, но я знаю, что по этому поводу была очень оживленная ветка, и (возможно) неудивительно, что мнения разделились довольно равномерно.
@aconcernedcitizen Я никого не контролирую. Просто предлагаю свое мнение. Конечно, каждый волен поступать так, как он считает нужным.

Я бы использовал узловой анализ для VA и VB, используя Текущий закон Кирхгофа (KCL). Сначала определите напряжения, а затем используйте напряжения для решения токов. Помните, что все токи, входящие в узел, равны величине тока, выходящего из узла, и, поскольку элементы являются резисторами, вы можете просто использовать V = IR, чтобы получить ток резистора. Используя узловой анализ, вы должны иметь два уравнения с двумя неизвестными, что упростит работу с ним, чем с сеточным анализом и множественными токами. Когда у вас есть напряжения, должно быть довольно просто найти токи через резисторы.