setTunedValue

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

Описание

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

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

пример

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 фильтр lowpass, необходимо ограничить его коэффициенты. Для этого задайте пользовательскую параметризацию 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