NodeLab:从电路图到节点方程

NodeLab 实际界面:上方为电路画布,右侧为网络节点,下方为对应的节点方程矩阵。 打开 NodeLab 电路分析工具

学节点电压法时,我们往往先看到一张电路图,再看到一大块矩阵。两者之间的过程,却常常只用一句“列写节点方程”带过。

NodeLab 想把这个过程展开给你看:电路怎样连接,支路电流怎样表示,元件的系数怎样进入节点矩阵,以及内部节点消去以后,外部端口还剩下什么关系。

它是本站配套的浏览器电路分析工具。你可以一边修改连接,一边对照方程,观察电路结构与数学模型之间的关系。

1. 它能帮我们看清什么?

从一条支路开始

以一条从节点 aa 指向节点 bb 的电阻支路为例,设电导为 G=1/RG=1/R,两端节点电压分别为 uau_a 和 ubu_b,那么支路电流为:

iab=G(ua−ub) i_{ab}=G(u_a-u_b)

这里的电流正方向是从 aa 到 bb。同一条支路,在节点 aa 和节点 bb 的电流平衡式中,会以相反的方向出现。因此,它对这两个节点的导纳矩阵贡献为:

[G−G−GG] \begin{bmatrix} G & -G \\ -G & G \end{bmatrix}

NodeLab 中的“支路电流”和“节点方程”视图,正好对应这两个观察层次:前者看每条支路,后者看支路汇总后的网络关系。本文用 uu 表示节点电压,工具界面中使用的 VV 表示同一类量。

再看整个网络

多个元件连接到一起以后,可以把节点方程整理成:

I=Gu+Ihis \mathbf{I}=\mathbf{G}\mathbf{u}+\mathbf{I}_{\mathrm{his}}

其中,u\mathbf{u} 是按节点顺序排列的电压向量,G\mathbf{G} 是组装后的节点导纳矩阵,Ihis\mathbf{I}_{\mathrm{his}} 表示按当前方向约定汇总的历史项或等效源项。这里沿用工具的表达形式;若把源项移到等式另一侧,它的符号也要随之改变。

工具的价值不只是给出结果,而是让我们能同时对照连接、节点顺序和矩阵位置。 比如修改一个节点名或一处连接后,可以检查相关支路是否真正接到了同一节点,以及方程中哪些位置发生了变化。

2. 第一次打开,可以这样试

建议先保留默认示例,不必从空白画布开始。

  1. 看电路连接。 画布中的节点标签帮助我们识别哪些端点属于同一个电气节点;图上的位置接近,并不等于已经连接。
  2. 看支路电流。 对照元件两端节点和箭头方向,检查每条电流表达式。
  3. 切到节点方程。 按右侧的节点顺序,逐行对照矩阵和电压向量。
  4. 区分外部和内部节点。 外部节点是希望保留的接口,内部节点是准备在等效过程中消去的未知量。
  5. 打开“消去版本”。 对照消去前后的方程,并查看内部节点电压如何恢复。

画布可以缩放和平移,下方输出窗口也可以拖动调整高度。电路较大时,可以把更多空间留给画布;检查矩阵时,再把输出区拉高。

3. “消去内部节点”是什么意思?

消去不是把某条支路从电路里删掉,也不是忽略它的作用,而是把内部未知量用外部未知量表示,再代回外部方程。

把源项整理到右端以后,节点方程可以分块写成:

[GeeGeiGieGii][ueui]=[bebi] \begin{bmatrix} \mathbf{G}_{ee} & \mathbf{G}_{ei} \\ \mathbf{G}_{ie} & \mathbf{G}_{ii} \end{bmatrix} \begin{bmatrix} \mathbf{u}_e \\ \mathbf{u}_i \end{bmatrix}=\begin{bmatrix} \mathbf{b}_e \\ \mathbf{b}_i \end{bmatrix}

下标 ee 表示外部节点,ii 表示内部节点。如果 Gii\mathbf{G}_{ii} 可逆,内部电压可以写成:

ui=Gii−1(bi−Gieue) \mathbf{u}_i=\mathbf{G}_{ii}^{-1}(\mathbf{b}_i-\mathbf{G}_{ie}\mathbf{u}_e)

代回外部方程,得到:

(Gee−GeiGii−1Gie)ue=be−GeiGii−1bi (\mathbf{G}_{ee}-\mathbf{G}_{ei}\mathbf{G}_{ii}^{-1}\mathbf{G}_{ie})\mathbf{u}_e =\mathbf{b}_e-\mathbf{G}_{ei}\mathbf{G}_{ii}^{-1}\mathbf{b}_i

左边括号中的矩阵,就是保留外部接口后的等效导纳矩阵。工具还会提供内部节点电压恢复关系:未知量在外部求解中减少了,但内部电压并不是从此无法得到。

这里写逆矩阵是为了表达消去关系,并不要求数值实现显式计算矩阵的逆。如果内部子块不可逆,就不能直接使用这组公式,需要检查节点划分、参考节点或模型约束。

4. 怎样建立和保存自己的电路?

左侧工具栏提供支路、电流源、电压源串联电导、单相变压器、自定义多节点支路和接地等入口。选择元件后,可以在右侧检查并修改相应参数。对较复杂的局部网络,也可以探索工具中的组合和 Y 节点黑盒功能。

开始时建议只改一处:增加一条支路,或者调整一个节点的内部、外部属性,然后观察方程怎样变化。这样更容易判断结果是否符合预期。

需要保留电路时,请使用“导出电路组合”保存 JSON 文件。 后续可以通过“导入电路组合”读回。当前导入行为是追加元件,不是自动替换已有电路;导入前应留意当前画布中的内容。

浏览器页面不是服务器上的电路文件管理器。重要版本应主动导出保存,不要把页面当前状态当作唯一备份。

5. 它不是完整的时域仿真器

NodeLab 当前侧重的是电路拓扑、代数方程与符号消去。画出一个电路,并不等于已经完成了带时间步进、开关事件和非线性迭代的电磁暂态仿真。

对于电感、电容等动态元件,若要利用其离散后的电导和历史项,还需要先确定离散化方法、步长和状态更新关系。看到工具中存在历史电流参数,也不意味着工具已经替你完成整段时域计算。

还需要注意:

  • 方向和节点顺序要一致。 对照手算结果时,应先统一电流方向、节点排列和源项放置位置。
  • 符号运算也有成本。 网络变大、表达式变复杂时,化简可能更慢,结果也可能很长。
  • 首次计算需要加载依赖。 当前浏览器版本通过 Pyodide 和 SymPy 完成符号运算,首次加载需要网络;网络不可达时,相关计算可能无法完成。
  • 结果仍要核对。 建议从能够手算的小电路开始,再逐渐增加支路和耦合关系。

它更适合作为一个学习和建模时的检查工具:帮助我们把电路图、节点方程和等效网络放在一起看,而不是替代对模型本身的判断。

打开工具,试着消去一个内部节点


相关内容

Buy me a coffee~
RLC侠 支付宝支付宝
RLC侠 微信微信