setTunedValue

Установите текущее значение настроенной переменной в интерфейсе slTuner

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

Интерфейс slTuner параметризовал каждый настроенный блок как Блок Системы управления (Control System Toolbox) или обобщенная параметрическая модель типа genmat или genss. Эта параметризация задает настроенные переменные для команд, таких как systune.

Синтаксис

setTunedValue(st,var,value)
setTunedValue(st,varValues)
setTunedValue(st,model)

Описание

пример

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

пример

setTunedValue(st,varValues) устанавливает значения нескольких настроенных переменных в st с помощью структуры, varValues.

пример

setTunedValue(st,model) обновляет значения настроенных переменных в st, чтобы совпадать с их значениями в обобщенной модели model. Чтобы распространить настроенные значения от одной модели до другого, используйте этот синтаксис.

Примеры

свернуть все

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

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

Установите пользовательскую параметризацию для одного из настраиваемых блоков.

C1CustParam = realp('Kp',1) + tf(1,[1 0]) * realp('Ki',1);
setBlockParam(st,'C1',C1CustParam);

Эти команды устанавливают параметризацию контроллера C1 блок к обобщенной модели (genss) пространства состояний, содержащей два настраиваемых параметра, Ki и Kp.

Инициализируйте значение Ki к 10, не изменяя значение Kp.

setTunedValue(st,'Ki',10);

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

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

Установите пользовательскую параметризацию для одного из настраиваемых блоков.

C1CustParam = realp('Kp',1) + tf(1,[1 0]) * realp('Ki',1);
setBlockParam(st,'C1',C1CustParam);

Эти команды устанавливают параметризацию контроллера C1 блок к обобщенной модели (genss) пространства состояний, содержащей два настраиваемых параметра, Ki и Kp.

Создайте структуру настраиваемых значений элемента, установки Kp к 5 и Ki к 10.

S = struct('Kp',5,'Ki',10);

Установите значения настраиваемых элементов в st.

setTunedValue(st,S);

Преобразуйте интерфейс slTuner для модели rct_diskdrive Simulink® к модели genss, чтобы настроить блоки модели с помощью hinfstruct. После настройки обновите интерфейс slTuner с настроенными параметрами и запишите значения параметров в модель Simulink для валидации.

Использование hinfstruct требует лицензии Robust Control Toolbox.

Создайте интерфейс slTuner для rct_diskdrive. Добавьте C и F как настроенные блоки интерфейса.

open_system('rct_diskdrive');
st = slTuner('rct_diskdrive',{'C','F'});

Параметризация по умолчанию блока передаточной функции, F, является передаточной функцией с двумя свободными параметрами. Поскольку F является фильтром нижних частот, необходимо ограничить его коэффициенты. Для этого задайте пользовательскую параметризацию F с коэффициентом фильтра a.

a = realp('a',1);
setBlockParam(st,'F',tf(a,[1 a]));

Преобразуйте st в модель genss.

m = getIOTransfer(st,{'r','n'},{'y','e'});

Как правило, для настройки с hinfstruct, вы добавляете функции взвешивания к модели genss, которые зависят от ваших конструктивных требований. Вы затем настраиваете увеличенную модель. Для получения дополнительной информации смотрите Синтез Fixed-Structure H-infinity с HINFSTRUCT (Robust Control Toolbox).

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

m.Blocks.C.Kp.Value = 0.00085;
m.Blocks.C.Ki.Value = 0.01;
m.Blocks.a.Value = 5500;

После настройки обновите значения параметризации блока в st.

setTunedValue(st,m);

Это эквивалентно setBlockValue(st,m.Blocks).

Чтобы подтвердить настраивающийся результат в Simulink, сначала обновите модель Simulink с настроенными значениями.

writeBlockValue(st);

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

свернуть все

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

Настроенная переменная в st, заданном как вектор символов или строка. Настроенная переменная является любым Блоком Системы управления, таким realp, tunableSS или tunableGain, вовлеченным в параметризацию настроенного блока Simulink, или непосредственно или через обобщенную параметрическую модель. Чтобы получить список всех настроенных переменных в st, используйте getTunedValue(st).

var может относиться к следующему:

  • Для блока, параметризованного Блоком Системы управления, именем блока. Например, если параметризация блока

    C = tunableSS('C')

    затем установите var = 'C'.

  • Для блока, параметризованного genmat/genss модель, M, имя любого Блока Системы управления перечислено в M.Blocks. Например, если параметризация блока

    a = realp('a',1);
    C = tf(a,[1 a]);

    затем установите var = 'a'.

Значение настроенной переменной в st, заданном в виде числа, числового массива или модели в пространстве состояний, которая совместима с настроенной переменной. Например, если var является скалярным элементом, таким как коэффициент ПИД, value должен быть скаляром. Если var является tunableGain 2 на 2, то value должен быть скалярным массивом 2 на 2.

Значения нескольких настроенных переменных в st, заданном как структура с полями, заданными в виде чисел, числовых массивов или моделей в пространстве состояний. Имена полей являются именами настроенных переменных в st. Только блокируется характерный для st, и varValues обновляются, в то время как все другие блоки в st остаются неизменными.

Чтобы задать varValues, можно получить и изменить настроенную переменную структуру от st.

varValues = getTunedValue(st);
varValues.Ki = 10;

Настроенная модель, которая имеет некоторые параметры вместе с st, заданным как Обобщенная Модель LTI (Control System Toolbox). Только переменные, характерные для st и model, обновляются, в то время как все другие переменные в st остаются неизменными.

Больше о

свернуть все

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

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

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

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

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

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

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

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

  • setBlockParam, setBlockValue и setTunedValue, чтобы изменить настроенную параметризацию блока и их значения.

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

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

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

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

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

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

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

Введенный в R2015b