replaceBlock

Замените или обновите Блоки Системы управления в модели Generalized LTI

Синтаксис

Mnew = replaceBlock(M,Block1,Value1,...,BlockN,ValueN)
Mnew = replaceBlock(M,blockvalues)
Mnew = replaceBlock(...,mode)

Описание

Mnew = replaceBlock(M,Block1,Value1,...,BlockN,ValueN) заменяет Блоки системы управления Block1,...,BlockN M с заданными значениями Value1,...,ValueN. M является моделью Generalized LTI или Обобщенной матрицей.

Mnew = replaceBlock(M,blockvalues) задает имена блока и заменяющие значения как имена полей и значения структуры blockvalues.

Mnew = replaceBlock(...,mode) выполняет замену блока на массиве моделей M с помощью режима замены, заданного mode.

Входные параметры

M

Обобщенная модель LTI, Обобщенная матрица или массив таких моделей.

Block1,...,BlockN

Имена Блоков Системы управления в M. Команда replaceBlock заменяет каждый перечисленный блок M с соответствующими значениями Value1,...,ValueN, который вы предоставляете.

Если заданный Block не является блоком M, replaceBlock, которые блокируются и соответствующее значение.

Value1,...,ValueN

Заменяющие значения для соответствующих блоков Block1,...,BlockN.

Заменяющее значение для блока может быть любым значением, совместимым с размером блока, включая различный Блок Системы управления, числовую матрицу или модель LTI. Если значением является [], соответствующий блок заменяется его номинальным (текущим) значением.

blockvalues

Блоки определения структуры M, чтобы заменить и значения, на которые можно заменить те блоки.

Имена полей blockvalues совпадают с именами Блоков Системы управления M. Используйте значения полей, чтобы задать заменяющие значения для соответствующих блоков M. Заменяющие значения могут быть числовыми значениями, моделями Numeric LTI, Блоками Системы управления или моделями Generalized LTI.

mode

Блокируйте заменяющий режим для входного массива M Обобщенных матриц или моделей LTI, заданных как одно из следующих значений:

  • '-once' (значение по умолчанию) — Замена блока Vectorized через образцовый массив M. Каждый блок заменяется одним значением, но значение может измениться от модели до модели через массив.

    Для векторизованной замены блока используйте массив структур для входа blockvalues или массивы ячеек для входных параметров Value1,...,ValueN. Например, если M является массивом 2х3 моделей:

    • Mnew = replaceBlock(M,blockvalues,'-once'), где blockvalues 2 3 массив структур, задает один набор значений блока blockvalues(k) для каждой модели M(:,:,k) в массиве.

    • Mnew = replaceBlock(M,Block,Value,'-once'), где Value является 2 3 массивом ячеек, заменяет Block Value{k} в модели M(:,:,k) в массиве.

  • Замена блока '-batch' — Batch. Каждый блок заменяется массивом значений, и тот же массив значений используется для каждой модели в M. Полученный массив модели Mnew имеет размер [size(M) Asize], где Asize является размером заменяющего значения.

Когда вход M является одной моделью, '-once' и '-batch' возвращают идентичные результаты.

Значение по умолчанию: '-once'

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

Mnew

Матричная или линейная модель или матрица, где заданные блоки заменяются заданными заменяющими значениями.

Mnew является числовым массивом или числовой моделью LTI, когда все заданные заменяющие значения являются числовыми значениями или числовыми моделями LTI.

Примеры

Замените блок системы управления на числовые значения

Этот пример показывает, как заменить настраиваемый ПИД-регулятор (tunablePID) в модели Generalized LTI чистым усилением, числовым контроллером PI или текущим значением настраиваемого контроллера.

  1. Создайте модель Generalized LTI следующей системы:

    где объект G(s)=(s1)(s+1)3, и C является настраиваемым ПИД-регулятором.

    G = zpk(1,[-1,-1,-1],1);
    C = tunablePID('C','pid');
    Try = feedback(G*C,1)
  2. Замените C чистым усилением 5.

    T1 = replaceBlock(Try,'C',5);

    T1 является моделью ss, которая равняется feedback(G*5,1).

  3. Замените C контроллером PI с пропорциональным усилением 5 и интегральным усилением 0,1.

    C2 = pid(5,0.1);
    T2 = replaceBlock(Try,'C',C2);

    T2 является моделью ss, которая равняется feedback(G*C2,1).

  4. Замените C его текущим (номинальным) значением.

    T3 = replaceBlock(Try,'C',[]);

    T3 является моделью ss, где C был заменен getValue(C).

Демонстрационная настраиваемая модель по сетке значений

Считайте фильтр второго порядка представленным:

F(s)=ωn2s2+2ζωns+ωn2.

Выберите этот фильтр в переменных значениях постоянного затухания ζ и собственная частота ωn. Создайте настраиваемую модель фильтра при помощи настраиваемых элементов для ζ и ωn.

wn = realp('wn',3);
zeta = realp('zeta',0.8);
F = tf(wn^2,[1 2*zeta*wn wn^2])
F =

  Generalized continuous-time state-space model with 1 outputs, 1 inputs, 2 states, and the following blocks:
    wn: Scalar parameter, 5 occurrences.
    zeta: Scalar parameter, 1 occurrences.

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

Создайте сетку демонстрационных значений.

wnvals = [3;5];
zetavals = [0.6 0.8 1.0];
[wngrid,zetagrid] = ndgrid(wnvals,zetavals);
Fsample = replaceBlock(F,'wn',wngrid,'zeta',zetagrid);
size(Fsample)
2x3 array of state-space models.
Each model has 1 outputs, 1 inputs, and 2 states.

ndgrid команда производит полное 2 3 сетка комбинаций параметра. Таким образом Fsample является массивом 2х3 моделей в пространстве состояний. Каждая запись в массиве является моделью в пространстве состояний, которая представляет F, оцененный при соответствии (wn, zeta) пара. Например, Fsample(:,:,2,3) имеет wn = 5 и zeta = 1.0.

damp(Fsample(:,:,2,3))
                                                           
   Pole        Damping       Frequency      Time Constant  
                           (rad/seconds)      (seconds)    
                                                           
 -5.00e+00     1.00e+00       5.00e+00         2.00e-01    
 -5.00e+00     1.00e+00       5.00e+00         2.00e-01    

Советы

  • Используйте replaceBlock, чтобы выполнить исследования параметра путем выборки моделей Generalized LTI через сетку параметров или оценить настраиваемые модели для определенных значений настраиваемых блоков. Смотрите Примеры.

  • Для дополнительных опций для выборки блоков системы управления, включая параллельную выборку, sampleBlock использования.

  • Чтобы взять случайные выборки блоков системы управления, смотрите rsampleBlock

Введенный в R2011a