我有一个时间延迟系统的特征方程,我无法在MathematicaStateSpaceModel
中使用或TransferFunctionModel
命令定义它;因为这些命令只适用于线性系统,没有延迟。
我的目的是在Mathematica 8.0.1中定义一个延时系统,并为这样的系统绘制波特图和奈奎斯特图:
g = ((s + 1) (1-E^(-2 s) + E^(-3 s)))/(s^2 + 2 s + 10)
从文档来看,似乎 MMA 期望传递函数是多项式的。TransferFunctionModel 的文档页面说:
在 TransferFunctionModel[{num,den},var] 中,num 必须是多项式矩阵,而 den 可以指定为多项式矩阵或只是公分母多项式。
我见过的所有例子在提名者和分母中都有多项式。
Matlab 的 bodeplot 也不做纯时间延迟。
有时会听到使用指数的 Padé 近似值的建议。这可以通过 mma 函数来完成PadeApproximant
。
然而,这似乎只对相当低的频率(第一个 180 度左右的相位变化)有效,如此处所述。