exponenta event banner

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,...,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 совпадающие имена блоков проектирования элементов управления M. Используйте значения полей для указания значений замены для соответствующих блоков M. Заменяемыми значениями могут быть числовые значения, числовые модели LTI, управляющие блоки проектирования или обобщенные модели LTI.

mode

Режим замены блоков для входного массива 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.

Примеры

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

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

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

    где установка G (ы) = (s 1) (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) =

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

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