3

我正在编写一个 javascript 小程序,让其他人可以轻松了解带有和不带有比例控制器的系统如何工作以及输出是什么。

首先对小程序做一点解释(如果你愿意,你可以跳过这个,真正的问题在最后一段。):

我设法为系统实现了一种输入方式(在频域中),因此小程序可以进行数学运算并向用户展示他们提供的系统。此时小程序计算系统的极点和零点,将它们与根轨迹一起绘制,绘制系统的奈奎斯特曲线并绘制系统的波特图。

我希望小程序做的下一件事是计算和绘制脉冲响应。为此,我需要对系统的传递函数执行拉普拉斯逆变换。

现在真正的问题是:我在频域中有一个函数(传递函数)。该函数是一个有理函数,在程序中存储为两个多项式(分子和分母由它们的系数存储)。将此函数转换为时域的最佳方法是什么?(逆拉普拉斯)。或者是否有一个开源库已经实现了这一点。我已经搜索过它,但只找到了一些用于更简单数学的数学库。

提前致谢

4

2 回答 2

2

现在问题解决了。在检查了一些数值方法之后,我通过使用系统的极点和最小二乘法来计算系数来进行部分分数分解。在此之后,反向 LT 并不难找到。

谢谢你的建议;)

问我是否要查看代码。

于 2014-09-04T14:45:03.177 回答
2

这是一个相当复杂和有趣的问题。几个想法。

(1) 如果解必须是严格的JS:通过部分分数分解可以找到一些有理函数的逆LT。你有多项式的数值系数,对吧?您可以尝试在 JS 中实现部分分数分解,或者找到一个。这里的困难是不能保证你可以通过部分分数找到逆 LT。

(2) 使用 JS 作为胶水代码并将有理函数发送到另一个进程(运行例如 Sympy 或 Maxima)以计算逆 LT。这样您就可以利用所有可用的功能,但需要一些工作才能连接到其他进程并解析结果。至少对于 Maxima 来说,已经有很多项目使用 Maxima 作为计算后端;见: http: //maxima.sourceforge.net/relatedprojects.html

于 2014-08-19T17:21:45.623 回答