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

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

name

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

Ny

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

Nu

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

G

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

Свойства

Gain

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

blk.Gain является объектом param.Continuous. Для получения общей информации о свойствах объекта param.Continuous 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 настраивает все записи в 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

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

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

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

TimeUnit

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

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

Значение по умолчанию: 'seconds'

InputName

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

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

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

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

sys.InputName = 'controls';

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

Можно использовать краткое обозначение u, чтобы относиться к свойству InputName. Например, sys.u эквивалентен sys.InputName.

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

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

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

  • Определение точек контакта, когда взаимосвязанные модели

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

InputUnit

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

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

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

Используйте InputUnit, чтобы отслеживать модули входного сигнала. InputUnit не имеет никакого эффекта на поведение системы.

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

InputGroup

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

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

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

sys(:,'controls')

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

OutputName

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

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

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

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

sys.OutputName = 'measurements';

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

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

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

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

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

  • Определение точек контакта, когда взаимосвязанные модели

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

OutputUnit

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

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

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

Используйте OutputUnit, чтобы отслеживать модули выходного сигнала. OutputUnit не имеет никакого эффекта на поведение системы.

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

OutputGroup

Выведите группы канала. Свойство 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

Создайте 2D вход, параметрический блок усиления с тремя выводами и инициализируйте все значения параметров к 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