python 电力系统控制_用python/sympy求解RC电路

我正在独立完成马克·纽曼的《计算物理》一书,练习6.5(可以下载here)。该问题是求解由复指数源电压驱动的RC电路中的节点电压。在

我想做的是把节点方程转换成Av=B的形式。以下是我目前正在做的事情。在import numpy as np

import sympy

# Define constants

R1=R3=R5 = 1e3

R2=R4=R6 = 2e3

C1 = 1e-6

C2 = 0.5e-6

x_plus = 3

x_minus = 0

w = 1000

# Define relations

V_plus = sympy.symbols('V_plus')

t = sympy.symbols('t')

V_plus = x_plus*sympy.exp(1j*w*t)

V_minus = 0

V1,V2,V3 = sympy.symbols('V1 V2 V3')

V1_eqn = (V1-V_plus)/R1 + (V1-V2)/(1/(1j*w*C1)) + (V1-V_minus)/R4

V2_eqn = (V2-V_plus)/R2 + (V2-V1)/(1/(1j*w*C1)) + (V2-V_minus)/R5 + (V2-V3)/(1/(1j*w*C2))

V3_eqn = (V3-V_plus)/R3 + (V3-V2)/(1/(1j*w*C2)) + (V3-V_minus)/R6

# Prepare

V = [V1,V2,V3]

V_vec = np.matrix(V)

A = np.matrix([

[V1_eqn.expand().coeff(x) for x in V],

[V2_eqn.expand().coeff(x) for x in V],

[V3_eqn.expand().coeff(x) for x in V]

])

print(A)

现在,我的问题是提取三个方程的常数项,这样我就可以把它们加载到B中。其中一个问题是“常数项”实际上不是常数。它是t的复指数函数。因为这是笔和纸的一个相当简单的问题,我知道常数项是什么样子的,所以我可以提取它。我的目标是用一种不需要知道答案的方式来解决这个问题;)。在

我考虑过的一种方法是取每个方程,然后减去所有我已经输入到Av中的项,但这看起来有点草率,也不太像Python。有没有人知道更好的方法来提取技术上不恒定的常量项?谢谢。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值