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 вектор из целых чисел, затем 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