isstable

Определите, стабильна ли система

Синтаксис

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

Описание

B = isstable(sys) возвращает логическое значение 1 (true), если модель sys динамической системы имеет стабильную динамику и логическое значение 0 (false) в противном случае. Если 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