【发布时间】:2015-06-03 07:17:13
【问题描述】:
我正在尝试以编程方式计算一个非常大的电路上的电压变化。
*这个问题似乎是针对电子产品的,但它是 更多关于在一组数据上应用算法。
为了简单起见,
这是一个完整的电路,已经计算了电压:
我最初只知道电池电压和电阻:
我遇到的问题是并联和串联电路的电压计算方式不同。
A somewhat similar question asked on SO.
一些公式:
When resistors are in parallel: <strong>Rtotal = 1/(1/R1 + 1/R2 + 1/R3 ... + 1/Rn)</strong>
When resistors are in series: <strong>Rtotal = R1 + R2 + R3 ... + Rn</strong>
欧姆定律:
<strong>V = IR</strong> <strong>I = V/R</strong><strong>R = V/I</strong>
V is voltage (volts)I is current (amps)R is resistance(ohms)
我在互联网上找到的每个教程都包含人们在概念上将并联电路组合在一起以获得总电阻,然后使用该电阻来计算串联电阻。
这对于小例子来说很好,但对于大规模电路,很难从中推导出算法。
我的问题:
给定一个包含所有完整路径的矩阵,
有没有办法计算所有的电压降?
我目前将系统作为图形数据结构。
所有节点都由一个 ID 号表示(并且可以通过它来查找)。
所以对于上面的例子,如果我运行遍历,我会得到一个这样的路径列表:
[[0,1,2,4,0]
,[0,1,3,4,0]]
每个数字都可以用来推导出实际的节点及其对应的数据。我需要对这组数据执行什么样的转换/算法?
电路的某些部分很可能是复合的,而这些复合部分可能会发现自己与其他复合部分并联或串联。
我认为我的问题类似于:
http://en.wikipedia.org/wiki/Series-parallel_partial_order
【问题讨论】:
-
你的电路是并联还是串联?或者它可以包含桥电路?
-
你可能想查一下基尔霍夫定律:en.wikipedia.org/wiki/Kirchhoff%27s_circuit_laws 它可以用来导出一组线性方程来求解。
-
@PhamTrung 好问题。没有桥梁。纯并行和串联。
-
您的大型电路有多大?您是在说数千、数百万或数十亿个电阻器吗?您是否考虑过使用递归将电路分解成更小、更易于管理的部分?
标签: algorithm graph tree graph-algorithm graph-traversal