exponenta event banner

tunableGain

Настраиваемый блок статического усиления

Синтаксис

blk = tunableGain(name,Ny,Nu)
blk = tunableGain(name,G)

Описание

Объект модели для создания настраиваемых статических коэффициентов усиления. tunableGain позволяет параметризовать настраиваемые статические коэффициенты усиления для анализа параметров или для автоматической настройки с помощью таких команд настройки, как systune или looptune.

tunableGain входит в семейство параметрических моделей «Блок управления конструкцией». Другие блоки проектирования элементов управления включают tunablePID, tunableSS, и tunableTF.

Строительство

blk = tunableGain(name,Ny,Nu) создает параметрический статический блок усиления с именем name. Этот блок имеет Ny результаты и Nu входные данные. Настраиваемые параметры - это коэффициенты усиления для каждого из Nyоколо-Nu Каналы ввода-вывода.

blk = tunableGain(name,G) использует двойной массив G для определения размера блока и инициализации настраиваемых параметров.

Входные аргументы

name

Блок Name, указанный как символьный вектор, такой как 'K' или 'gain1'. (См. раздел Свойства.)

Ny

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

Nu

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

G

Двойной массив статических значений усиления. Количество строк и столбцов G определить количество входов и выходов blk. Записи G - начальные значения параметров параметрического блока усиления.

Свойства

Gain

Параметризация настраиваемого коэффициента усиления.

blk.Gain является param.Continuous объект. Общие сведения о свойствах param.Continuous Объект (Simulink Design Optimization) blk.Gain, см. param.Continuous страница ссылки на объект.

Следующие поля blk.Gain используются при настройке blk использование hinfstruct:

ОбластьОписание
Value

Текущее значение матрицы усиления. Для блока, имеющего Ny результаты и Nu входы, blk.Gain.Value является Nyоколо-Nu матрица.

Если вы используете G входной аргумент для создания blk, blk.Gain.Value инициализируется в значения G. В противном случае все записи blk.Gain.Value инициализировать до нуля.

hinfstruct (Rustive Control Toolbox) настраивает все записи в blk.Gain.Value за исключением тех, значения которых зафиксированы blk.Gain.Free.

По умолчанию: массив нулевых значений

Free

Массив логических значений, определяющих, являются ли значения коэффициента усиления в blk.Gain.Value являются фиксированными или свободными параметрами.

  • Если blk.Gain.Free(i,j) = 1, то blk.Gain.Value(i,j) является настраиваемым параметром.

  • Если blk.Gain.Free(i,j) = 0, то blk.Gain.Value(i,j) фиксируется.

По умолчанию: массив 1 (true) значения

Minimum

Минимальное значение параметра. Это свойство помещает нижнюю границу на настроенное значение параметра. Например, настройка blk.Gain.Minimum = 1 гарантирует, что все записи в матрице усиления будут иметь коэффициент усиления больше 1.

По умолчанию: -Inf

Maximum

Максимальное значение параметра. Это свойство помещает верхнюю границу на настроенное значение параметра. Например, настройка blk.Gain.Maximum = 100 гарантирует, что все записи в матрице усиления будут иметь коэффициент усиления менее 100.

По умолчанию: Inf

Ts

Время выборки. Для моделей непрерывного времени Ts = 0. Для дискретно-временных моделей Ts - положительный скаляр, представляющий период выборки. Это значение выражается в единицах, указанных TimeUnit свойство модели. Для обозначения дискретно-временной модели с неопределенным временем выборки установите Ts = -1.

Изменение этого свойства не дискретизирует и не выполняет повторную выборку модели.

По умолчанию: 0 (непрерывное время)

TimeUnit

Единицы измерения для переменной времени, времени выборки Tsи любые временные задержки в модели, указанные как одно из следующих значений:

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

Изменение этого свойства не влияет на другие свойства и, следовательно, изменяет общее поведение системы. Использовать chgTimeUnit преобразование между единицами времени без изменения поведения системы.

По умолчанию: 'seconds'

InputName

Имена входных каналов, указанные как одно из следующих:

  • Символьный вектор - для моделей с одним входом, например, 'controls'.

  • Массив ячеек символьных векторов - для моделей с несколькими входами.

Можно также использовать автоматическое векторное расширение для назначения входных имен для моделей с несколькими входами. Например, если sys является моделью с двумя входами, введите:

sys.InputName = 'controls';

Имена вводимых данных автоматически расширяются до {'controls(1)';'controls(2)'}.

Можно использовать сокращенную нотацию u см. InputName собственность. Например, sys.u эквивалентно sys.InputName.

Имена входных каналов имеют несколько применений, в том числе:

  • Идентификация каналов на дисплее модели и графиках

  • Извлечение подсистем систем MIMO

  • Указание точек соединения при соединении моделей

По умолчанию: '' для всех входных каналов

InputUnit

Блоки входных каналов, указанные как одно из следующих:

  • Символьный вектор - для моделей с одним входом, например, 'seconds'.

  • Массив ячеек символьных векторов - для моделей с несколькими входами.

Использовать InputUnit отслеживание блоков входных сигналов. InputUnit не влияет на поведение системы.

По умолчанию: '' для всех входных каналов

InputGroup

Группы входных каналов. InputGroup позволяет назначать входные каналы систем MIMO в группы и ссылаться на каждую группу по имени. Укажите входные группы как структуру. В этой структуре имена полей являются именами групп, а значения полей - входными каналами, принадлежащими каждой группе. Например:

sys.InputGroup.controls = [1 2];
sys.InputGroup.noise = [3 5];

создает входные группы с именем controls и noise которые включают в себя входные каналы 1, 2 и 3, 5 соответственно. Затем можно извлечь подсистему из controls входы на все выходы с использованием:

sys(:,'controls')

По умолчанию: структура без полей

OutputName

Имена выходных каналов, указанные как одно из следующих:

  • Символьный вектор - для моделей с одним выходом. Например, 'measurements'.

  • Массив ячеек символьных векторов - для моделей с несколькими выходами.

Можно также использовать автоматическое векторное расширение для назначения выходных имен для моделей с несколькими выходами. Например, если sys является моделью с двумя выходами, введите:

sys.OutputName = 'measurements';

Имена вывода автоматически расширяются до {'measurements(1)';'measurements(2)'}.

Можно использовать сокращенную нотацию y см. OutputName собственность. Например, sys.y эквивалентно sys.OutputName.

Имена выходных каналов имеют несколько применений, в том числе:

  • Идентификация каналов на дисплее модели и графиках

  • Извлечение подсистем систем MIMO

  • Указание точек соединения при соединении моделей

По умолчанию: '' для всех выходных каналов

OutputUnit

Единицы выходного канала, указанные как одно из следующих:

  • Символьный вектор - для моделей с одним выходом. Например, 'seconds'.

  • Массив ячеек символьных векторов - для моделей с несколькими выходами.

Использовать OutputUnit отслеживание блоков выходного сигнала. OutputUnit не влияет на поведение системы.

По умолчанию: '' для всех выходных каналов

OutputGroup

Группы выходных каналов. OutputGroup позволяет назначать выходные каналы систем MIMO в группы и ссылаться на каждую группу по имени. Укажите группы вывода в качестве структуры. В этой структуре имена полей являются именами групп, а значения полей - выходными каналами, принадлежащими каждой группе. Например:

sys.OutputGroup.temperature = [1];
sys.InputGroup.measurement = [3 5];

создает выходные группы с именем temperature и measurement которые включают в себя выходные каналы 1 и 3, 5 соответственно. Затем можно извлечь подсистему из всех входов в measurement вывод с использованием:

sys('measurement',:)

По умолчанию: структура без полей

Name

Имя системы, указанное как символьный вектор. Например, 'system_1'.

По умолчанию: ''

Notes

Любой текст, который требуется связать с системой, хранится в виде строки или массива ячеек символьных векторов. Свойство хранит данные любого типа. Например, если sys1 и sys2 являются динамическими моделями систем, можно задать их Notes следующие свойства:

sys1.Notes = "sys1 has a string.";
sys2.Notes = 'sys2 has a character vector.';
sys1.Notes
sys2.Notes
ans = 

    "sys1 has a string."


ans =

    'sys2 has a character vector.'

По умолчанию: [0×1 string]

UserData

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

По умолчанию: []

Примеры

Создание параметрического блока усиления формы 2 на 2

[g100g2]

где g1 и g2 - перестраиваемые параметры, а внедиагональные элементы зафиксированы на нуле.

blk = tunableGain('gainblock',2,2);  % 2 outputs, 2 inputs
blk.Gain.Free = [1 0; 0 1];    % fix off-diagonal entries to zero

Все записи в blk.Gain.Value инициализировать до нуля. Инициализируйте диагональные значения до 1 следующим образом.

blk.Gain.Value = eye(2);    % set diagonals to 1

Создайте параметрический блок усиления с двумя входами и тремя выходами и инициализируйте все значения параметров в 1.

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

G = ones(3,2);
blk = tunableGain('gainblock',G);

Создайте параметрический блок усиления 2 на 2 и назначьте имена входам.

blk = tunableGain('gainblock',2,2)   % 2 outputs, 2 inputs 
blk.InputName = {'Xerror','Yerror'}    % assign input names

Совет

  • Используйте blk.Gain.Free поле blk для указания дополнительной структуры или фиксации значений определенных записей в блоке. Фиксация значения коэффициента усиления на входе i производить j, комплект blk.Gain.Free(i,j) = 0. Позволить hinfstruct для настройки этого значения усиления установите blk.Gain.Free(i,j) = 1.

  • Преобразование tunableGain параметрическая модель к числовому (не настраиваемому) объекту модели, используйте команды модели, такие как tf, zpk, или ss.

Вопросы совместимости

развернуть все

В R2016a изменилось поведение

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