我有一个阻抗方程,我已将其转移到 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 ...

最佳答案

您的函数不是 ss^(-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/

10-15 21:40