setBlockParam

Установите параметризацию настроенного блока в slTuner интерфейс

Описание

setBlockParam позволяет переопределить параметризацию по умолчанию для настроенного блока в slTuner интерфейс. Можно также задать параметризацию для неатомных компонентов, таких как Subsystem или S-Function блоки.

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

пример

setBlockParam(st,blk,tunable_mdl) присваивает настраиваемую модель как параметризацию заданного блока slTuner интерфейс.

пример

setBlockParam(st,blk1,tunable_mdl1,...,blkN,tunable_mdlN) присваивает параметризации нескольким блокам сразу.

пример

setBlockParam(st,blk) возвращается к параметризации по умолчанию для блока, на который ссылаются blk и инициализирует блок с текущим значением блока в Simulink.

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

Примеры

свернуть все

Создайте slTuner интерфейс для scdcascade модель.

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

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

Параметризация по умолчанию является настраиваемым ПИ-контроллером (tunablePID).

Репараметризация C1 как пропорциональный контроллер. Инициализируйте пропорциональную составляющую равный 4,2 и присвойте параметризацию блоку.

G = tunableGain('C1',4.2);
setBlockParam(st,'C1',G);

Команды настройки, такие как systune, теперь используйте эту пропорциональную параметризацию контроллера C1 блок st. Пользовательская параметризация совместима с параметризацией по умолчанию блока Simulink ®. Поэтому можно использовать writeBlockValue чтобы записать настроенные значения назад в блок.

Можно также использовать setBlockParam чтобы задать несколько параметров блоков сразу, не требуя многократных перекомпиляций модели. Например, репараметризовать оба C1 и C2 как ПИД-регуляторы.

C1PID = tunablePID('C1PID','PID');
C2PID = tunablePID('C2PID','PID');
setBlockParam(st,'C1',C1PID,'C2',C2PID);

Создайте slTuner интерфейс для scdcascade модель.

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

Измените параметризацию C2 быть настраиваемым усилением и изучить результат.

G = tunableGain('C2',5);
setBlockParam(st,'C2',G);
getBlockParam(st,'C2')
ans = 

  Tunable gain "C2" with 1 outputs, 1 inputs, and 1 tunable parameters.

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

Верните параметризацию C2 вернитесь к ПИ-контроллеру по умолчанию и исследуйте результат.

setBlockParam(st,'C2');
getBlockParam(st,'C2')
ans = 

  Tunable continuous-time PID controller "C2" 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.

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

свернуть все

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

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

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

При возвращении к параметризации блока по умолчанию с помощью setBlockParam(st,blk), можно задать blk как массив ячеек из векторов символов или строковых массивов для возврата нескольких блоков.

Пример: {'C1','C2'}

Параметризация блока, заданная как одно из следующего:

Подробнее о

свернуть все

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

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

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

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

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

Список настроенных блоков можно изменить используя addBlock и removeBlock.

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

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

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

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

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

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

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

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

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

Для блоков Simulink, параметризованных Блоком Системой управления, сам блок является настроенной переменной. Чтобы изменить значение блока, можно использовать или setBlockValue или setTunedValue. Точно так же можно получить значение блока, используя либо getBlockValue или getTunedValue.

Введенный в R2011b