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.

Предположим, что вы хотите настроить коэффициент усиления ПИД-регулятора для всех моделей в 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-состояния, 0-блока являются пустыми записями в 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, заданные как вектор целочисленных значений или логический массив.

  • Если 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