Я пытаюсь программно рассчитать изменения напряжения в очень большой цепи.
* Этот вопрос может показаться ориентированным на электронику, но это больше о применении алгоритма по набору данных.
Чтобы все было просто,
вот полная схема, с уже рассчитанными напряжениями:
Мне изначально дано напряжение батареи и сопротивления:
Проблема заключается в том, что напряжение рассчитывается по-разному между параллельными и последовательными схемами.
Несколько аналогичный вопрос, заданный по SO.
Некоторые формулы:
When resistors are in parallel:
Rtotal = 1/(1/R1 + 1/R2 + 1/R3 ... + 1/Rn)
When resistors are in series:
Rtotal = R1 + R2 + R3 ... + Rn
Закон Ома:
V = IR
I = V/R
R = V/I
V is voltage
(volts)
I is current
(amps)
R is resistance
(ohms)
Каждый учебник, который я нашел в Интернете, состоит из людей, которые концептуально группируют параллельные схемы, чтобы получить общее сопротивление, а затем используя это сопротивление для расчета сопротивления в серии.
Это хорошо для небольших примеров, но трудно получить алгоритм из него для крупномасштабных схем.
Мой вопрос:
Учитывая матрицу всех полных путей,
есть ли способ для меня рассчитать все падения напряжения?
В настоящее время я имею систему как структуру данных графа.
Все узлы представлены (и могут быть просмотрены) номером id.
Итак, для примера выше, если я запускаю обходы, я верну список таких путей:
[[0,1,2,4,0]
,[0,1,3,4,0]]
Каждый номер может использоваться для получения фактического node и соответствующих ему данных. Какие преобразования/алгоритмы мне нужны для выполнения этого набора данных?
Очень вероятно, что части схемы будут составными, и эти составные секции могут оказаться параллельными или рядами с другими составными участками.
Я думаю, что моя проблема сродни этому:
http://en.wikipedia.org/wiki/Series-parallel_partial_order