exponenta event banner

setBlockValue

Задать значение параметризации настроенного блока в slTuner интерфейс

Описание

setBlockValue позволяет инициализировать или изменять текущее значение параметризации настроенного блока в slTuner интерфейс.

Один slTuner интерфейс параметризует каждый настроенный блок Simulink ® в качестве блока Control Design Block или обобщенной параметрической модели типаgenmat или genss. Эта параметризация определяет настроенные переменные для таких команд, как systune.

пример

setBlockValue(st,blk,value) устанавливает текущее значение параметризации блока в slTuner интерфейс, st.

пример

setBlockValue(st,blkValues) обновляет значения параметризаций нескольких блоков с помощью структуры, blkValues.

Примеры

свернуть все

Создание slTuner интерфейс для scdcascade и задайте значение параметризации одного из настроенных блоков.

Создание slTuner интерфейс.

open_system('scdcascade');
st = slTuner('scdcascade',{'C1','C2'});

Оба C1 и C2 являются контроллерами PI. Проверьте параметризацию по умолчанию C1.

getBlockParam(st,'C1')
ans = 

  Tunable continuous-time PID controller "C1" with formula:

             1 
  Kp + Ki * ---
             s 

  and tunable parameters Kp, Ki.

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

Параметризация по умолчанию - это PI-контроллер с двумя настраиваемыми параметрами, Kp и Ki.

Установка значения параметризации C1.

C = pid(4.2);
setBlockValue(st,'C1',C);

Проверьте значение параметризации C1.

getBlockValue(st,'C1')
ans =
 
  Kp = 4.2
 
Name: C1
P-only controller.

Проверьте параметризацию C1.

getBlockParam(st,'C1')
ans = 

  Tunable continuous-time PID controller "C1" with formula:

             1 
  Kp + Ki * ---
             s 

  and tunable parameters Kp, Ki.

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

Обратите внимание, что, хотя текущим значением блока является контроллер только P, параметризация блока продолжает оставаться PI-контроллером.

Создание slTuner интерфейс.

open_system('scdcascade');
st = slTuner('scdcascade',{'C1','C2'});

Создание структуры значений блоков с именами полей, соответствующими настраиваемым блокам в st.

blockValues = getBlockValue(st);
blockValues.C1 = pid(0.2,0.1);
blockValues.C2 = pid(2.3);

Установка значений параметризации настраиваемых блоков в st с использованием определенной структуры.

setBlockValue(st,blockValues);

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

свернуть все

Интерфейс для настройки систем управления, смоделированных в Simulink, указанный как slTuner интерфейс.

Блок в списке настроенных блоков для st, указанный как символьный вектор или строка. Можно указать полный путь блока или любую часть пути, которая однозначно идентифицирует блок среди других настроенных блоков st.

Пример: blk = 'scdcascade/C1', blk = "C1"

Примечание

setBlockValue позволяет изменять только общее значение параметризации blk. Для изменения значений элементов в пользовательских параметризациях блоков, таких как обобщенные модели состояний и пространств, используйте setTunedValue.

Значение параметризации блока, указанное как числовая модель LTI или блок конструкции элемента управления, например tunableGain или tunablePID. Значение value должны быть совместимы с параметризацией blk. Например, если blk параметризуется как PID-контроллер, затем value должно быть tunablePID блок, числовой pid модель или числовое значение tf модель, представляющая контроллер PID.

setBlockValue обновляет значение параметров настроенного блока на основе параметров value. Используя setBlockValue не изменяет структуру параметризации настроенного блока. Изменение параметризации blk, использовать setBlockParam. Например, можно использовать setBlockParam чтобы изменить параметризацию блока из tunablePID к трехполюснику tunableTF модель.

Значения параметризации нескольких блоков, заданные как структура с полями, заданными как числовые модели LTI или управляющие блоки проектирования. Имена полей - это имена блоков в st. Только блоки, общие для st и blkValues обновляются, в то время как все остальные блоки в st остаются неизменными.

Определить blkValues, можно извлечь и изменить структуру значений параметризации блока из st.

blkValues = getblockValue(st);
blkValues.C1 = pid(0.1,0.2);

Примечание

Для блоков Simulink, имена которых недопустимы, укажите соответствующее имя поля в blkValues как показано в параметризации блока.

blockParam = getBlockParam(st,'B-1');
fieldName = blockParam.Name;
blockValues = struct(fieldName,newB1);

Подробнее

свернуть все

Настроенные блоки

Настроенные блоки, используемые slTuner определите блоки в модели Simulink, параметры которых должны быть настроены в соответствии с целями настройки. Можно настроить большинство блоков Simulink, которые представляют линейные элементы, такие как коэффициенты усиления, передаточные функции или модели пространства состояний. (Полный список блоков, поддерживающих настройку, см. в разделе Как параметризованы настроенные блоки Simulink). Можно также настроить более сложные блоки, такие как блоки субсистемы или S-функции, указав эквивалентную настраиваемую линейную модель.

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

Необходимо указать настроенные блоки (например, C1 и C2) при создании slTuner интерфейс.

st = slTuner('scdcascade',{'C1','C2'})

Изменить список настроенных блоков можно с помощью addBlock и removeBlock.

Для взаимодействия с настроенными блоками используйте:

  • getBlockParam, getBlockValue, и getTunedValue для доступа к настроенным параметризациям блока и их текущим значениям.

  • setBlockParam, setBlockValue, и setTunedValue для изменения параметров настроенного блока и их значений.

  • writeBlockValue обновление блоков в модели Simulink текущими значениями параметризаций настроенного блока.

Настроенные переменные

В пределах slTuner настраиваемые переменные интерфейса - это любые управляющие блоки проектирования, участвующие в параметризации настроенного блока Simulink либо непосредственно, либо через обобщенную параметрическую модель. Настроенные переменные - это параметры, которыми манипулируют команды настройки, такие как systune.

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

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

  • setBlockValue не может использоваться для изменения значения блока. Чтобы изменить значения настроенных переменных в параметризации блока, используйте setTunedValue.

Для блоков Simulink, параметризованных блоком Control Design, сам блок является настраиваемой переменной. Для изменения значения блока можно использовать либо setBlockValue или setTunedValue. Аналогично, можно извлечь значение блока с помощью одного из следующих способов: getBlockValue или getTunedValue.

Представлен в R2011b