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-by- Nu Каналы ввода-вывода.

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

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

name

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

Ny

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

Nu

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

G

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

Свойства

Gain

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

blk.Gain является param.Continuous объект. Для получения общей информации о свойствах param.Continuous(Оптимизация Проекта Simulink) blk.Gain, см. param.Continuous страница с описанием объекта.

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

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

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

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

hinfstruct (Robust 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

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

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

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

sys(:,'controls')

По умолчанию: Struct без полей

OutputName

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

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

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

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

sys.OutputName = 'measurements';

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

Можно использовать сокращённое обозначение y для ссылки на OutputName свойство. Для примера, sys.y эквивалентно sys.OutputName.

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

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

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

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

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

OutputUnit

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

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

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

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

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

OutputGroup

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

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

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

sys('measurement',:)

По умолчанию: Struct без полей

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]

где g 1 и g 2 являются настраиваемыми параметрами, и внедорожные элементы фиксируются на нуле.

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.

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

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

расширить все

Поведение изменено в R2016a

Введенный в R2016a