我有一个阻抗方程,我已将其转移到 Mathematica 以希望对其进行简化。它代表电路原理图,电路阻抗(Z,来自 V = iZ)是 s 平面中几个项的很大一部分。
作为一个缩写示例,它可能如下所示:
L0s + (R1/(1 + R1 C1 s) + R3b + L3s + V3/s)/(R2a L2a s/(R2a + L2a s))
我想将数据重新排列为:
k1*s^-1 + k2*s^0 + k3*s^1 ...
k
的所有值都表示多余的数据(各种 R、L 和 C 值的分数)。什么公式操作最适合用来制作这些类型的结构?
.
.
.
我相信
Collect
函数无法根据 s 的指数处理将事物分开,即使由于项之间的划分级别,方程被简化然后 ExpandAll ed - 有几层未解析的分数。在想知道这一点时,我也很好奇,如果我将所有内容都转换到时域,是否可以按素数(推导/积分的次数)排序?
S c0 + c1 + d/dt*c2 + d^2/dt^2*c3 ...
最佳答案
您的函数不是 s
和 s^(-1)
中的多项式。我最能理解您的问题的方法是将您的表达式发展为围绕 s==0
的系列,然后确定系列系数。这可以使用 SeriesCoefficient
来完成:
In[80]:= SeriesCoefficient[
L0*s + (R1/(1 + R1*C1*s) + R3b + L3s + V3/s)/(R2a*
L2a*(s/(R2a + L2a*s))), {s, 0, n}]
Out[80]= Piecewise[{
{(R1*((-C1)*R1)^n*(L2a - C1*R1*R2a))/(L2a*R2a), n > 1},
{L0 + (C1*R1^2*(-L2a + C1*R1*R2a))/(L2a*R2a), n == 1},
{((-C1)*R1^2*R2a + L2a*(L3s + R1 + R3b))/(L2a*R2a), n == 0},
{V3/L2a, n == -2},
{(L3s*R2a + R1*R2a + R2a*R3b + L2a*V3)/(L2a*R2a), n == -1}
}, 0]
我希望这是有帮助的。
关于根据导数或指数级别对 Mathematica 中的公式进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5071381/