Как вычислить определитель матрицы передаточной функции без необходимости использовать "syms"?

Я намерен вычислить определитель матрицы переноса, а затем подвергнуть анализу Найквиста, построив график Найквиста, но проблема в том, что команда определителя не распознает матрицу переноса. Код показан ниже

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)

Ошибка, которая появляется в следующем

Неопределенная функция 'det' для входных аргументов типа 'ss'.

Ошибка в BLT_code (строка 30) W= -1 + det(L)

Я хотел бы избежать команды 'syms', так как тогда я не смог бы составить сюжет Найквиста. Есть ли альтернативный способ вычисления сюжета Найквиста?

0 ответов

Я застрял в той же лодке, пытаясь вычислить определитель матриц передаточной функции с целью проверки критериев стабильности MIMO Nyquist, см. Слайды лекции MIMO Stability ETH Zurich (стр. 10). К сожалению, для этого не существует простой команды MATLAB. Я подумал, что это можно оценить вручную.

Если у вас есть TF-матрица G(s) следующего вида:

G = [g_11 g_12; g_21 g_22];

вы можете получить определитель, оценив его в соответствии с его исходным определением как

det_G = g_11*g_22 - g_12*g_21;

Это приведет к переменной TF 1x1. Конечно, этот метод становится слишком сложным для всего, что выше системы 2x2.

Другие вопросы по тегам