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 находится в сопутствующей форме. В сопутствующей форме характеристический полином системы появляется явным образом в крайнем правом столбце матрицы 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 (Simulink Design Optimization) страницу с описанием объекта.

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

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

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

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

Free

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

  • Если 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.

  • 'full' - все записи в 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'.

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

  • '' - Для неназванных состояний.

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

StateUnit

Состояние модулей, заданное как одно из следующих:

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

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

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

Использование StateUnit для отслеживания модулей измерения каждое состояние выражается в. StateUnit не влияет на поведение системы.

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

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® тип данных.

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

Примеры

Создайте параметризованную модель SISO 5-го порядка с нулем 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 (Robust Control Toolbox) для настройки blk.B(i,j), задать   blk.B.Free(i,j) = 1.

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

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

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

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

Введенный в R2016a