在电路理论里,我们经常会遇到一些听起来很抽象的词:自耦、互耦、自感、互感。初学时很容易把它们理解成一种“物理上靠得很近”的关系:两个线圈绕在同一个铁芯上,所以有耦合;两条支路没有导线相连,所以没有耦合。
这个说法有直觉,但还不够适合数值仿真。
在 EMT 程序里,元件最后都要进入矩阵方程。于是“有没有耦合”就可以换成一个更直接的问题:一个端口的电压或电流,是否会进入另一个端口的方程? 如果会,矩阵里就会出现跨端口的非零项;如果不会,矩阵就可以分成互不影响的块。
所以,今天我们不先从磁场形状、铁芯结构或空间距离去理解耦合,而是从矩阵的角度去看电路里的“耦合”到底长什么样。
两个孤立电阻:没有耦合
先看最简单的情况:两个电阻完全没有连接。R1 接在节点 N1,N2 之间,R2 接在节点 N3,N4 之间,中间没有任何共享节点,也没有受控关系、互感关系或变压器关系。
两个完全不连接的电阻。令:
G1=R11,G2=R21对 R1 来说,支路电流只由它两端电压决定:
i1=G1(uN1−uN2)因此它只会把下面这个局部矩阵加到 N1,N2 对应的行列里。英文资料里常把这个动作叫做 stamp,意思不是抽象地“盖个章”,而是“把某个元件对矩阵的贡献填入全局矩阵的指定位置”:
[G1−G1−G1G1]同理,R2 的局部矩阵只会加到 N3,N4 对应的行列里:
[G2−G2−G2G2]如果节点顺序取为:
N1, N2, N3, N4全局节点方程就是:
IN1IN2IN3IN4=G1−G100−G1G10000G2−G200−G2G2uN1uN2uN3uN4这个矩阵最重要的特征是右上角和左下角都是零块:
G(N1,N2)00G(N3,N4)这说明 N1,N2 子电路的电压不会直接进入 N3,N4 子电路的电流方程,反过来也一样。两个电阻虽然同时出现在一个全局矩阵里,但它们在数学上是两个互不影响的分块。
这就是**“没有耦合”**的矩阵形式。
两绕组变压器:有耦合
现在换成一个两绕组变压器或两端口耦合支路。左侧绕组接在 N1,N2 之间,右侧绕组接在 N3,N4 之间。即使这两个绕组在电气上没有直接导线相连,它们仍然会通过磁场耦合。
两绕组变压器:绕组之间没有直接导线相连,但通过磁场耦合。为了先抓住矩阵结构,可以把两绕组看成一个线性二端口。定义两个端口电压:
up=uN1−uN2us=uN3−uN4端口电流写成:
[ipis]=[G11G12G12G22][upus]+[Ihis,pIhis,s]其中 G11 描述一次侧自身电压对一次侧电流的影响,G22 描述二次侧自身电压对二次侧电流的影响。真正代表耦合的是 G12:
ip=G11up+G12us+Ihis,pis=G12up+G22us+Ihis,s只要 G12=0,一次侧电流方程里就含有二次侧电压,二次侧电流方程里也含有一次侧电压。这就是耦合。
把这个端口方程加到节点 N1,N2,N3,N4 对应的全局矩阵位置上,会得到类似下面的结构:
IN1IN2IN3IN4=G11−G11G12−G12−G11G11−G12G12G12−G12G22−G22−G12G12−G22G22uN1uN2uN3uN4+Ihis,p−Ihis,pIhis,s−Ihis,s和前面的两个孤立电阻相比,区别非常明显:矩阵的右上角和左下角不再是零块,而是出现了 G12 相关项。
从这个角度看,耦合不是“图上画得近”或者“看起来像一个元件”,而是矩阵结构发生了变化:
[G11G12G12G22]非对角块 G12 把两个端口连接成了一个整体。求解器不能把它们拆成两个互不影响的支路来处理。
更复杂的例子:三支路互阻互感
再看一个更复杂但很常见的结构:三条支路并排,从 k1,k2,k3 指向 m1,m2,m3。每条支路有自己的电阻和电感,同时支路之间存在互阻和互感。
三支路互阻互感:每一条支路的电流变化都可能影响其他支路的电压。令支路电压、电流为:
u=uk1m1uk2m2uk3m3,i=ik1m1ik2m2ik3m3如果三条支路完全独立,那么可以写成:
u=R11000R22000R33i+L11000L22000L33dtdi但如果存在互阻、互感,就会变成:
u=Ri+Ldtdi其中:
R=R11R12R13R12R22R23R13R23R33L=L11L12L13L12L22L23L13L23L33这里的下角标 11,22,33 表示自身项,12,13,23 表示支路之间的互相影响。例如 L11 是第一条支路自己的电感,L12 是第一条支路和第二条支路之间的互感。
有些资料也会用 s 和 m 来强调这两类项:s 来自英文 self,表示“自身”;m 来自英文 mutual,表示“相互”。如果三条支路的自身参数相同、互耦参数也相同,上面的矩阵可以简写成:
R=RsRmRmRmRsRmRmRmRs,L=LsLmLmLmLsLmLmLmLs所以可以这样记:对角线上的项是 self,也就是自阻、自感;非对角线上的项是 mutual,也就是互阻、互感。
比如第一条支路的电压方程为:
uk1m1=R11ik1m1+R12ik2m2+R13ik3m3+L11dtdik1m1+L12dtdik2m2+L13dtdik3m3这句话的物理意思是:第一条支路的电压不仅由第一条支路自己的电流决定,也会受到第二、第三条支路电流及其变化率的影响。
解耦的意义
理解了“耦合在矩阵里表现为非对角项”,就很容易理解“解耦”为什么重要。
从矩阵角度看,如果一个全局矩阵可以写成分块对角形式:
[A00B]那么 A 对应的子网络和 B 对应的子网络,在当前这个代数方程里就是相互独立的。求 A 这部分未知量时,不需要同时知道 B 那部分未知量;反过来也一样。
从数学求解角度看,这意味着一个大问题可以拆成两个小问题:
Ax1=b1,Bx2=b2这件事很有工程价值。第一,小矩阵通常比大矩阵更容易求解;第二,不同子网络可以并行计算;第三,在实时仿真里,不同 CPU 线程、不同计算核,甚至不同仿真节点可以分别处理不同的网络分区。
所以,解耦的意义不是说物理系统真的完全没有联系,而是说在某种建模或求解安排下,原来必须放在同一个矩阵里同时求的变量,被拆成了可以分别求解的子问题。
工程上确实有一些办法会利用这种思想,把原本强耦合的电路网络拆开处理。例如传输线方法会利用传播延时,把线路两端在同一个时间步内的直接代数耦合隔开;也有一些分区求解、接口等效、延时接口或迭代接口方法,用边界量交换来连接两个子网络。
这些方法的细节本文先不展开。这里先抓住一个朴素判断:如果矩阵里的跨分区非对角块被消掉、延后处理,或者变成边界接口量,那么两个网络就更容易被分开计算。