首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算传递函数矩阵的行列式而不必使用"syms"?

如何计算传递函数矩阵的行列式而不必使用"syms"?
EN

Stack Overflow用户
提问于 2017-04-08 00:16:22
回答 1查看 823关注 0票数 1

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

代码语言:javascript
运行
复制
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‘命令,因为我不能做奈奎斯特图。有没有其他方法来计算同样的nyquist图?

EN

回答 1

Stack Overflow用户

发布于 2019-11-15 19:16:58

我陷入了同样的困境,试图计算传递函数矩阵的行列式,目的是检查MIMO Nyquist稳定性准则,参见MIMO Stability ETH Zurich Lecture slides (pg 10)。不幸的是,似乎没有一个简单的MATLAB命令可以做到这一点。我认为它可以手动评估。

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

代码语言:javascript
运行
复制
G = [g_11 g_12; g_21 g_22];

可以通过按照行列式的原始定义对行列式求值来获得行列式,如下所示

代码语言:javascript
运行
复制
det_G = g_11*g_22 - g_12*g_21;

这将产生一个1x1 TF变量。当然,这种方法对于超过2x2系统的任何东西都太复杂了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43282822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档