tunableSS

Настраиваемая модель в пространстве состояний фиксированного порядка

Синтаксис

blk = tunableSS(name,Nx,Ny,Nu)
blk = tunableSS(name,Nx,Ny,Nu,Ts)
blk = tunableSS(name,sys)
blk = tunableSS(...,Astruct)

Описание

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

tunableSS является частью семейства Блоков Системы управления параметрических моделей. Другие Блоки Системы управления включают tunablePID, tunableGain и tunableTF.

Конструкция

blk = tunableSS(name,Nx,Ny,Nu) создает непрерывно-разовую параметрическую модель в пространстве состояний под названием name. Модель в пространстве состояний blk имеет состояния Nx, Ny выходные параметры и входные параметры Nu. Настраиваемые параметры являются записями в A, B, C и матрицах D модели в пространстве состояний.

blk = tunableSS(name,Nx,Ny,Nu,Ts) создает дискретное время параметрическая модель в пространстве состояний с шагом расчета Ts.

blk = tunableSS(name,sys) использует динамическую систему sys, чтобы определить размеры параметрической модели в пространстве состояний, установить ее шаг расчета и инициализировать настраиваемые параметры.

blk = tunableSS(...,Astruct) создает параметрическую модель в пространстве состояний, матрица A которой ограничивается структурой, заданной в Astruct.

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

name

Параметрическая модель в пространстве состояний Name, заданный как вектор символов, такой как 'C0'. (См. Свойства.)

Nx

Неотрицательное целое число, задающее количество состояний (порядок) параметрической модели в пространстве состояний blk.

Ny

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

Nu

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

Ts

Скалярный шаг расчета.

Astruct

Ограничения на форму матрицы A параметрической модели в пространстве состояний blk, заданный как одно из следующих значений:

Значение для AstructСтруктура матрицы A
'tridiag'A трехдиагонален. В трехдиагональной форме A имеет свободные элементы только в основной диагонали, первой диагонали ниже основной диагонали и первой диагонали выше основной диагонали. Остающиеся элементы A фиксируются, чтобы обнулить.
'full'A полон (каждая запись в A является свободным параметром).
'companion'A находится в сопутствующей форме. В сопутствующей форме характеристический полином системы появляется явным образом в крайнем правом столбце матрица. Смотрите canon для получения дополнительной информации.

Если вы не задаете Astruct, значения по умолчанию blk к форме 'tridiag'.

sys

Модель динамической системы, обеспечивающая количество состояний, количество вводов и выводов, шага расчета и начальных значений параметров blk. Чтобы получить размерности и начальные значения параметров, tunableSS преобразовывает sys в модель в пространстве состояний со структурой, заданной в Astruct. Если вы не используете Astruct, tunableSS преобразовывает sys в трехдиагональную форму пространства состояний.

Свойства

A, B, C, D

Параметризация матриц пространства состояний A, B, C и D настраиваемой модели в пространстве состояний blk.

blk.A, blk.B, blk.C и blk.D являются объектами param.Continuous. Для получения общей информации о свойствах этих объектов param.Continuous, смотрите страницу ссылки на объект param.Continuous.

Следующие поля blk.A, blk.B, blk.C и blk.D используются, когда вы настраиваете blk с помощью hinfstruct:

Поле Описание
Value

Текущие значения записей в параметрической матрице пространства состояний. Например, blk.A.Value содержит значения матрицы A blk.

hinfstruct настраивает все записи в blk.A.Value, blk.B.Value, blk.C.Value и blk.D.Value кроме тех, значения которых фиксируются blk.Gain.Free.

Free

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

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

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

Значения по умолчанию: По умолчанию все записи в B, C и D являются настраиваемыми. Свободные входы по умолчанию в A зависят от значения Astruct:

  • tridiag записями на трех диагоналях blk.A.Free является 1; остальные - 0.

  • полный всеми записями в blk.A.Free является 0.

  • 'companion'blk.A.Free(1,:) = 1 и blk.A.Free(j,j-1) = 1; всеми другими записями является 0.

Minimum

Минимальное значение параметра. Это свойство помещает нижнюю границу в настроенное значение параметра. Например, установка blk.A.Minimum(1,1) = 0 гарантирует, что первая запись в матрице A остается положительной.

Значение по умолчанию: -Inf

Maximum

Максимальное значение параметра. Это свойство помещает верхнюю границу в настроенное значение параметра. Например, установка blk.A.Maximum(1,1) = 0 гарантирует, что первая запись в матрице A остается отрицательной.

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

StateName

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

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

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

  • '' — Для состояний без имени.

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

StateUnit

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

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

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

  • '' — Для состояний без заданных модулей

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

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

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®.

Значение по умолчанию: []

Примеры

Создайте параметрический 5-й порядок модель SISO с нулевой матрицей D.

 blk = tunableSS('ssblock',5,1,1);
 blk.D.Value = 0;      % set D = 0
 blk.D.Free = false;   % fix D to zero

По умолчанию матрица A находится в трехдиагональной форме. Чтобы параметризовать модель в сопутствующей форме, используйте входной параметр 'companion':

 blk = tunableSS('ssblock',5,1,1,'companion');
 blk.D.Value = 0;      % set D = 0
 blk.D.Free = false;   % fix D to zero

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

blk = tunableSS('ssblock',5,2,2) % 5 states, 2 outputs, 2 inputs
blk.InputName = {'Xerror','Yerror'} % assign input names

Советы

  • Используйте входной параметр Astruct, чтобы ограничить структуру матрицы A параметрической модели в пространстве состояний. Наложить дополнительную структуру ограничивает на матрицах пространства состояний, используйте поля blk.A.Free, blk.B.Free, blk.C.Free и blk.D.Free, чтобы зафиксировать значения определенных записей в матрицах параметра.

    Например, чтобы зафиксировать значение blk.B(i,j), установите   blk.B.Free(i,j) = 0. Чтобы позволить hinfstruct настраивать blk.B(i,j), установите   blk.B.Free(i,j) = 1.

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

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

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

Поведение изменяется в R2016a

Введенный в R2016a