在 Mathematica 中定义线性时滞系统并绘制其伯德图和奈奎斯特图

发布于 2024-11-10 04:55:36 字数 414 浏览 3 评论 0原文

我有一个时滞系统的特征方程,但无法使用 Mathematica 中的 StateSpaceModel 或 TransferFunctionModel 命令定义它;因为这些命令只适用于线性系统,没有延迟。

我的目的是在 Mathematica 8.0.1 中定义一个时间延迟系统并绘制< em>伯德图奈奎斯特像这样的系统的图表

g = ((s + 1) (1-E^(-2 s) + E^(-3 s)))/(s^2 + 2 s + 10)

I have a characteristic equation of a time-delay system and i can't define it with StateSpaceModel or TransferFunctionModel command in Mathematica; Because these commands only work for linear systems without delay.

My purpose is to define a Time-Delay system in Mathematica 8.0.1 and plotting Bode Diagram and Nyquist Diagram for a system like this:

g = ((s + 1) (1-E^(-2 s) + E^(-3 s)))/(s^2 + 2 s + 10)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨小墨 2024-11-17 04:55:36

从文档来看,MMA​​ 似乎期望传递函数是多项式的。 TransferFunctionModel 的文档页面显示:


TransferFunctionModel[{num,den},var]
num 必须是多项式矩阵并且
den 可以指定为多项式
矩阵或只是公分母
多项式。

我见过的所有例子都有多项式的分子和分母。

Matlab 的 bodeplot 也不做纯粹的时间延迟。

有时人们会听到使用指数的 Padé 近似的建议。这可以通过 mma 函数 PadeApproximant 来完成。

在此处输入图像描述

但是,这似乎仅对相当低的频率有效(第一个 180 度的相位变化左右) )如所述 这里

Judging from the documentation, it seems MMA expects transfer functions to be polynomial. The doc page for TransferFunctionModel says:

In
TransferFunctionModel[{num,den},var]
num must be a polynomial matrix and
den can be specified as a polynomial
matrix or just the common denominator
polynomial.

All the examples I have seen have polynomials in the nominator and denominator.

Matlab's bodeplot also doesn't do pure time delays.

One sometimes hears the suggestion to use a Padé approximation of the exponential. This could be done with the mma function PadeApproximant.

enter image description here

However, this seems to be valid only for rather low frequencies (the first 180 degrees of phase change or so) as stated here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文