replaceBlock

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

Синтаксис

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

Описание

Mnew = replaceBlock(M,Block1,Value1,...,BlockN,ValueN) заменяет Управляйте блоками проекта MBlock1,...,BlockN с заданными значениями Value1,...,ValueN. M является Обобщенной моделью 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 совпадают имена блоков Система Управления of M. Используйте значения полей, чтобы задать значения замены для соответствующих блоков M. Заменяющими значениями могут быть числовые значения, числовые модели LTI, блоки Система Управления или обобщенные модели LTI.

mode

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

  • '-once' (по умолчанию) - Векторизованная замена блоков в массиве моделей 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) в Обобщенной модели LTI с помощью чистого усиления, числового ПИ-контроллера или текущего значения настраиваемого контроллера.

  1. Создайте Обобщенную модель 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 по ПИ-контроллеру с пропорциональной составляющей 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 выполнить исследования параметров путем выборки Обобщенных моделей LTI через сетку параметров или оценить настраиваемые модели для конкретных значений настраиваемых блоков. См. примеры.

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

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

Введенный в R2011a