【问题标题】:How do I compute the determinant of a transfer function matrix without having to use "syms"?如何在不必使用“syms”的情况下计算传递函数矩阵的行列式?
【发布时间】:2017-09-03 02:46:40
【问题描述】:

我打算计算传递矩阵的行列式,然后通过制作奈奎斯特图进行奈奎斯特分析,但问题是行列式命令无法识别传递矩阵。代码如下所示

clc
clear all;
close all;

g11 = tf(12.8,[16.7 1],'InputDelay',1)
g12 = tf(-18.9,[21 1],'InputDelay',3)
g21 = tf(6.6,[10.9 1],'InputDelay',7)
g22 = tf(-19.4,[14.4 1],'InputDelay',3)

G=[g11 g12 ; g21 g22]

[re,im,w] = nyquist(G)

F=2.55;


s=tf('s');
%syms s;

ggc11 = g11*(0.96*(1+3.25*F*s)/(3.25*F^2*s))
ggc12 = g12*(0.534*(1+3.31*F*s)/(3.31*F^2*s))
ggc21 = g21*(0.96*(1+3.25*F*s)/(3.25*F^2*s))
ggc22 = g22*(0.534*(1+3.31*F*s)/(3.31*F^2*s))

GGc=[ggc11 ggc12 ; ggc21 ggc22];

L=eye(2)+ GGc;

W= -1 + det(L)

nyquist(W)

出现的错误如下

“ss”类型的输入参数的未定义函数“det”。

BLT_code 中的错误(第 30 行) W= -1 + det(L)

我想避免使用“syms”命令,因为那时我无法进行奈奎斯特图。是否有任何替代方法来计算相同的奈奎斯特图?

【问题讨论】:

  • 您确定要计算传递函数的行列式并用它来绘制奈奎斯特图吗?
  • 是的,我很确定。现在我知道一种方法,那就是将 L 划分为子矩阵,然后手动进行。我需要知道是否还有其他选择。
  • 目的是绘制 W 的闭环对数模数,然后从图中确定最大对数模数。

标签: matlab determinants nyquist


【解决方案1】:

我被困在同一条船上,试图计算传递函数矩阵的行列式以检查 MIMO 奈奎斯特稳定性标准,请参阅MIMO Stability ETH ZurichLecture slides (pg 10)。不幸的是,似乎没有一个简单的 MATLAB 命令。我认为它可以手动评估。

如果你有一个如下形式的 TF 矩阵 G(s):

G = [g_11 g_12; g_21 g_22];

您可以通过根据其原始定义评估它来获得行列式

det_G = g_11*g_22 - g_12*g_21;

这将产生一个 1x1 TF 变量。当然,这种方法对于 2x2 以上的系统来说太复杂了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多