isstable

Определите, устойчива ли система

Синтаксис

B = isstable(sys)
B = isstable(sys,'elem')

Описание

B = isstable(sys) возвращает логическое значение 1 TRUE) если модель sys динамической системы имеет устойчивую динамику и логическое значение 0 ложь) в противном случае. Если sys массив моделей, затем B= 1 только если все модели в sys устойчивы.

B = isstable(sys,'elem') возвращает логический массив тех же размерностей как массив моделей sys. Логический массив указывает который модели в sys устойчивы.

isstable только поддержан для аналитических моделей с конечным числом полюсов.

Примеры

свернуть все

Создайте массив моделей передаточной функции SISO с полюсами, варьирующимися от-2 до 2. Для этого сначала инициализируйте массив размерности [1,length(a)] с передаточными функциями SISO с нулевым знаком.

a = [-2:2];
sys = tf(zeros(1,1,1,length(a)));

Заполните этот массив с передаточными функциями формы 1/(s-a).

for j = 1:length(a)
    sys(1,1,1,j) = tf(1,[1 -a(j)]);
end
sys.SamplingGrid = struct('a',a);

Исследуйте устойчивость массива моделей.

B_all = isstable(sys)
B_all = logical
   0

По умолчанию, isstable возвращает одно булево значение, которое равняется 1 (true) только если все модели в массиве устойчивы. sys содержит некоторые модели с неотрицательными полюсами, которые не устойчивы. Поэтому isstable возвращается 0 (false) для целого массива.

Исследуйте устойчивость каждой модели в массиве, поэлементно.

B_elem = isstable(sys,'elem')
B_elem = 1x5 logical array

   1   1   0   0   0

'elem' флаг вызывает isstable возвратить массив булевых значений, которые указывают на устойчивость соответствующей записи в массиве моделей. Например, B_elem(2) = 1, который указывает на тот sys(1,1,1,2) устойчиво. Этот результат ожидается, потому что sys(1,1,1,2) имеет a = -1.

Смотрите также

Представленный в R2012a