replaceBlock

Замените или обновите блоки системы управления в обобщенной модели 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,...,ValueNM модель 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' — Пакетная замена блока. Каждый блок заменяется массивом значений, и тот же массив значений используется для каждой модели в M. Полученный массив модели Mnew имеет размер [size(M) Asize], где Asize размер заменяющего значения.

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

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

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

Mnew

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

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

Примеры

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

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

  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 isa ss модель, которая равняется feedback(G*5,1).

  3. Замените C ПИ-контроллером с пропорциональной составляющей 5 и интегральной составляющей 0,1.

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

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

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

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

    T3 isa 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