setBlockValue

Измените значение блока Система Управления в обобщенной модели

Синтаксис

M = setBlockValue(M0,blockname,val)
M = setBlockValue(M0,blockvalues)
M = setBlockValue(M0,Mref)

Описание

M = setBlockValue(M0,blockname,val) изменяет текущее или номинальное значение блока Система Управления blockname в Обобщенной Модели M0 к значению, заданному val.

M = setBlockValue(M0,blockvalues) изменяет значение нескольких блоков Система Управления сразу. Структура blockvalues определяет блоки и значения замены. Блоки M0 не указаны в blockvalues не изменяются.

M = setBlockValue(M0,Mref) принимает значения замены из блоков Система Управления в Обобщенной Модели Mref. Этот синтаксис изменяет блоки Система Управления в M0 для соответствия текущим значениям всех соответствующих блоков в Mref.

Используйте этот синтаксис для распространения значений блоков, таких как настроенные значения параметров, от одной параметрической модели к другим моделям, которые зависят от тех же параметров.

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

M0

Обобщенная Модель, содержащая блоки, текущее или номинальное значение которых изменено на val. Для получения синтаксиса M = setBlockValue(M0,Mref) M0 может представлять собой один блок Система Управления, значение которого изменено таким образом, чтобы оно совпадало со значением соответствующего блока в Mref.

blockname

Имя блока Система Управления в M0 модели текущее или номинальное значение которого изменено.

Чтобы получить список блоков Система Управления в M0, введите M0.Blocks.

val

Значение замены для текущего или номинального значения блока Система Управления, blockname. Значение val может быть любым значением, которое совместимо с blockname без изменения размера, типа или шага расчета blockname.

Для примера можно задать значение настраиваемого ПИД блока (tunablePID) к pid модели контроллеров, или к передаточной функции (tf) модель, которая представляет ПИД-регулятору.

blockvalues

Структура, задающая блоки Система Управления of M0 для изменения и соответствующих значений замены. Поля структуры являются именами блоков, которые нужно изменить. Значение каждого поля задает ток замены или номинальное значение для соответствующего блока.

Mref

Обобщенная модель, которая разделяет некоторые блоки Система Управления с M0. Значения этих блоков в Mref используются для обновления их аналогов в M0.

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

M

Обобщенная модель, полученная из M0 путем обновления значений указанных блоков.

Примеры

свернуть все

Распространите значения настроенных параметров на другие блоки Система Управления.

Можно использовать такие команды настройки, как systune, looptune, или команда Robust Control Toolbox™ hinfstruct для настройки блоков в модели системы управления с обратной связью. Если вы это делаете, настроенные параметры контроллера встроены в обобщенную модель. Можно использовать setBlockValue чтобы распространить эти параметры на модели контроллеров.

Создайте настраиваемую модель обратной связи системы управления и настройте параметры с помощью systune.

s = tf('s');
num = 33000*(s^2 - 200*s + 90000);
den = (s + 12.5)*(s^2 + 25*s + 63000);
G = num/den;

C0 = tunablePID('C0','pi');
a = realp('a',1);
F0 = tf(a,[1 a]);
T0 = feedback(G*C0,F0);
T0.InputName = 'r';
T0.OutputName = 'y';

T0 является обобщенной моделью системы управления с обратной связью и содержит два настраиваемых блока:

  • C0 - Настраиваемый ПИД-регулятор

  • a - Действительный настраиваемый параметр

Создайте требование настройки для выхода y для отслеживания входа r, и настроить систему, чтобы удовлетворить это требование.

Req = TuningGoal.Tracking('r','y',0.05);
[T,fSoft,~] = systune(T0,Req);
Final: Soft = 1.43, Hard = -Inf, Iterations = 59

Обобщенная модель T содержит настроенные значения C0 и a.

Распространите настроенные значения контроллера в T в модели контроллеров C0.

C = setBlockValue(C0,T)
C = 
  Tunable continuous-time PID controller "C0" with formula:

             1 
  Kp + Ki * ---
             s 

  and tunable parameters Kp, Ki.

Type "pid(C)" to see the current value and "get(C)" to see all properties.

C все еще является tunablePID контроллер. Текущие коэффициенты ПИД в C заданы значения контроллера в T.

Получите числовую модель LTI настроенного контроллера с помощью getValue.

 CVal = getValue(C,T);

Эта команда возвращает числовую модель пространства состояний настроенного контроллера.

См. также

| | | | | | (Robust Control Toolbox)

Введенный в R2011b