基本电路是线性系统,并确定电路中电流或电压的值需要使用线性代数。我发现,当我“求解”电路时(即确定流经电路中所有元素的电流的值)时,电路定律的应用才能在确定关注量的数量之前完成。在短短几分钟的时间里,我们可以确定一个描述简单电路行为的方程式系统。但是,手动操纵一组代数方程来找到我们要寻找的数量可能需要我们一段时间。
许多学生和教育者经常向MATLAB寻求诸如此类的线性系统的帮助,但是Python和Sympy软件包也可以用来轻松自由地分析DC和稳态AC电路。从DC分析开始,让我们通过查看一些示例来说明这一点。
DC分析示例 - 使用Python求解网格电流
图1中的电路可能在现实生活中不存在,并且没有实用性。、

示例电路示意图。
图1。 直流电路示例示意图。
但是,在典型的电路分析教科书中,具有直流电源的完全电阻电路被用作练习在大型电路的背景下练习应用Kirchhoff定律和欧姆法律的手段。
请注意,我认为,如果您认为这些不是真实的电路,而是对具有特定知识基础和技能设置的人的难题,这会有所帮助……为了娱乐!
除此之外,我在此电路上绘制了网状电流I 1和I 2,我们可以使用网格当前分析技术来设计以下等式1a和1b:
$$3KΩ\ CDOT I_1 +1.5kΩ\ CDOT I_2 = 9V $$等式1a
$$1.5kΩ\ CDOT I_1 +1.65kΩ\ CDOT I_2 = 6V $$等式1b
借助此方程式系统,我们实际上已经应用了电路理论。将这些方程式一起处理以求解网格电流I 1和I 2的值的其余任务纯粹是代数。让我们将此方程式系统转换为矩阵,并使用Python为我们磨削代数。我们的矩阵将由每个网格电流的电阻系数和方程右侧的电压组成,如图2所示。
示例矩阵

图2。 描述图1电路的I,R和V关系的矩阵方程。
接下来,我们转向Python。我将Google合同性用于 此类计算,因为它可以通过网络访问,并且我需要的所有库都可以使用。但是,如果您的Python环境包括Synpy库,则可以使用您喜欢的任何环境。
要在Python中求解我们的方程系统,让我们首先导入Sympy库,然后定义我们的矩阵,并终使用以下命令来确定两个网格电流的值以确定两个网格电流的值:
from sympy import *
dcEquations = Matrix([[3000, 1500, 9],[1500, 1650, 6]])dcEquations.rref()
这会产生以下输出:
(Matrix([
[1, 0, 13/6000],
[0, 1, 1/600]]), (0, 1))
这些代码片段告诉我们,I 1的值是13/6000 A或2.17 mA,I 2的值是1/600 A或1.67 mA。
使用Python的稳态交流分析示例
我们用来分析图1中DC电阻电路的方法也可以用于分析稳态的交流电路,并且在纸上设计AC电路并不需要太多努力,而AC电路 实际上可以实现真正的目的。图3显示了带有两个反应载荷(电感器)的电路,每个电路都可以代表空调单元,污水泵,冰箱压缩机或其他一些家用电气设备的电动机。
带有两个反应载荷的电路示例。

图3。 具有两个反应载荷的稳态交流电路示例。
图3中的电路称为“稳态”交流电路,因为其电源具有固定频率,并具有恒定的幅度。从这里开始,我们需要将电路中的电感转换为阻抗(以欧姆为单位),以便我们可以使用网格当前方法来分析其稳态行为。因此,我们使用源为ω(120πrad/s)的驱动频率根据公式2计算电阻器的阻抗。
$$ z_l =jΩl$$
等式2。
在图4中,我们用标记为每个被动元件的阻抗和相组网电流I 1和I 2重新绘制电路。
示例电路示意图具有阻抗。

图4。 将电感转换为阻抗后的AC电路。
就像我们在图1中使用的电路一样,我们可以使用Kirchhoff的电压定律和欧姆定律来得出一个方程式系统,该方程式与图4中电路中的元素和网格电流相关联。等式3a和3b包含该系统。
$$(2 + J3.77)ω\ CDOT I_1-(2 + J3.77)ω\ CDOT I_2 = 120V $$等式3a。
$$(2 + J3.77)ω\ CDOT I_1-(5 + J6.41)ω\ CDOT I_2 = 0 $$等式3b。
同样,用于求解图4电路中网格电流的其余过程是纯代数。该方程系统的矩阵形式如图5所示。
方程3a和3b的矩阵。

图5。 代表图4的稳态交流电路的公式3A和3B的矩阵。
Python中的以下命令将解决该方程系统的电路中的网格电流值。请注意,我们可以在矩阵定义中使用“ J”,而无需任何特殊的努力,因为“ J”在Sympy中定义为Sympy中的“ J”复杂空间中的假想单元。
from sympy import *
acEquations = Matrix([[2+3.77j,-(2+3.77j), 120],[2+3.77j, -(5+6.41j), 0]])acEquations.rref()
这会产生以下输出:
(Matrix([
[1, 0, 35.7203044893402 - 44.6772284258869*I],[0, 1, 22.5428313796213 - 19.8376916140667*I]]), (0, 1))这告诉我们,相量电流I 1和I 2分别为(35.72 - J44.68)A和(22.54 - J19.84)a。请注意,Python如何将虚构的单位表示为“ I”而不是“ J”。为了将这些转换为时间依赖性函数,我们应用一些三角学来找到它们各自的幅度和相位。 I 1的幅度和相位通过公式4a和4b找到:
$$ | i_1 | = \ sqrt {35.72^2 + 44.68^2} a = 57.20 \ space a $$等式4a。
$$θ_1= atan(\ frac {-44.68} {35.72})= -51.36°= 0.8964 rad $$等式4b。
同样,根据等式5a和5b的幅度和阶段,i 2的幅度和阶段也可以找到:
$$ | i_2 | = \ sqrt {22.54^2 + 19.84^2} a = 30.02 \ space a $$等式5a。
$$θ_2= atan({\ frac {-19.84} {22.54}}})= -41.35°= 0.7217 rad $$等式5b。
,鉴于这些幅度和阶段,我们确定了I 1和I 2的功能形式:
$$ i_1(t)=(57.20)a \ cdot \ cos(120πt -0.8964)$$等式6a。
$$ i_2(t)=(30.02)a \ cdot \ cos(120πt -0.7217)$$等式6b。