exponenta event banner

setTunedValue

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

Описание

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

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

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 интерфейс для модели Simulink ®rct_diskdrive в genss модель для настройки блоков модели с помощью hinfstruct. После настройки обновите slTuner выполните интерфейс с настроенными параметрами и запишите значения параметров в модель Simulink для проверки.

Использование hinfstruct требуется лицензия Rustive 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 модели, зависящие от проектных требований. Затем выполняется настройка дополненной модели. Дополнительные сведения см. в разделе Синтез фиксированной структуры H-бесконечности с помощью hinfstruct (Rustive 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, указанный как символьный вектор или строка. Настраиваемая переменная - это любой блок Control Design, такой как realp, tunableSS, или tunableGain, участвующий в параметризации настроенного блока Simulink, либо непосредственно, либо через обобщенную параметрическую модель. Чтобы получить список всех настроенных переменных в st, использовать getTunedValue(st).

var может означать:

  • Для блока, параметризованного блоком «Control Design», имя блока. Например, если параметризация блока

    C = tunableSS('C')

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

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

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

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

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

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

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

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

Настроенная модель, имеющая некоторые параметры, общие с st, указанный как обобщенная модель LTI. Только переменные, общие для st и model обновляются, в то время как все другие переменные в st остаются неизменными.

Подробнее

свернуть все

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

Настроенные блоки, используемые 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.

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