setBlockValue

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

Описание

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

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

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

Создайте 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 параметризируется как ПИД-регулятор, затем value должен быть tunablePID блок, число pid модель, или число tf модель, которая представляет ПИД-регулятору.

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);

Подробнее о

свернуть все

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

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