exponenta event banner

voidModel

Пометить отсутствующие или неактуальные модели в массиве моделей

Описание

пример

Mout = voidModel(M,void) устанавливает модели, указанные void кому NaN статические коэффициенты усиления. При работе с массивами моделей, определенными на многомерной сетке точек проектирования, используйте voidModel указывает на отсутствие модели в определенных точках сетки. Например, при использовании systune чтобы настроить параметры контроллера для массива модели, удалите модели в точках за пределами оболочки конструкции или в точках, которые будут игнорироваться во время анализа или конструирования.

  • Если void является вектором целых чисел, то voidModel наборы M(:,:,void) кому NaN.

  • Если void является логическим массивом, то voidModel устанавливает модели, выбранные void кому NaN.

Примеры

свернуть все

Создание массива настраиваемых genss модели. Для этого сначала создайте массив моделей завода путем изменения параметров в функции переноса второго заказа. Затем соедините результирующий массив моделей растений с настраиваемым элементом контроллера.

G = tf(zeros(1,1,3,3));
zeta = [0.66,0.71,0.75];
w = [1.0,1.2,1.5];
for i = 1:length(zeta)
    for j = 1:length(w)
        G(:,:,i,j) = tf(w(j)^2,[1 2*zeta(i)*w(j) w(j)^2]);
    end
end

C = tunablePID('C','PID');
M = feedback(C*G,1)
M =

  3x3 array of generalized continuous-time state-space models.
  Each model has 1 outputs, 1 inputs, 3 states, and the following blocks:
    C: Tunable PID controller, 1 occurrences.

Type "ss(M)" to see the current value, "get(M)" to see all properties, and "M.Blocks" to interact with the blocks.

Предположим, что требуется настроить усиление контроллера PID для всех моделей в M, но что комбинации параметров (zeta,w) = (0.66,1.0) и (zeta,w) = (0.75,1.5) не происходит в вашей физической системе. Аннулируйте эти модели, чтобы они не участвовали в настройке или анализе массива модели. Эти модели являются первой и последней моделями в массиве 3 на 3 с линейными индексами 1 и 9.

void = [1,9]
void = 1×2

     1     9

Mout = voidModel(M,void)
Mout =

  3x3 array of generalized continuous-time state-space models.
  Each model has 1 outputs, 1 inputs, between 0 and 3 states, and between 0 and 1 blocks.

Type "ss(Mout)" to see the current value, "get(Mout)" to see all properties, and "Mout.Blocks" to interact with the blocks.

Отображение показывает, что модели в Mout имеют 0-3 состояния и 0-1 блоки. Модели 0-state, 0-block являются аннулированными записями в Mout. Например, проверьте первую запись и подтвердите, что это NaN статическое усиление.

tf(Mout(:,:,1,1))
ans =
 
  NaN
 
Static gain.

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

void = logical([1 0 0;0 0 0;0 0 1]);
Mout1 = voidModel(M,void);

Подтвердите, что первая и последняя модели в Mout1 являются NaN.

tf(Mout1(:,:,1,1))
ans =
 
  NaN
 
Static gain.
tf(Mout1(:,:,3,3))
ans =
 
  NaN
 
Static gain.

Входные аргументы

свернуть все

Массив модели, заданный как массив модели LTI, например массив genss модели.

Модели для аннулирования, заданные как вектор целочисленных значений или логический массив.

  • Если void является вектором целых чисел, то voidModel наборы M(:,:,void) кому NaN. Например, использование Void = [1,10] пустоты M(:,:,[1 10]), 1-я и 10-я модели в M определяется линейным индексированием, независимо от размеров массива M.

  • Если void является логическим массивом, то voidModel устанавливает модели, выбранные void кому NaN. Например, если M является массивом моделей 2 на 2, а затем использует void = logical([0,1;0,0]) аннулирует вторую модель в первой строке M.

Выходные аргументы

свернуть все

Массив с аннулированными моделями, для которого установлено значение NaN, возвращенный как массив модели LTI того же типа и размера, что и M.

Представлен в R2017b