idss

Модель пространства состояний с идентифицируемыми параметрами

Описание

Использование idss создать модель пространства состояний в непрерывном времени или дискретном времени с идентифицируемыми (оцениваемыми) коэффициентами или преобразовать Динамические Системные Модели в форму пространства состояний.

Модель пространства состояний системы с входным вектором u, выходным вектором y и e нарушения порядка принимает следующую форму за непрерывное время:

dx(t)dt=Ax(t)+Bu(t)+Ke(t)y(t)=Cx(t)+Du(t)+e(t)

В дискретном времени модель пространства состояний принимает следующую форму:

x[k+1]=Ax[k]+Bu[k]+Ke[k]y[k]=Cx[k]+Du[k]+e[k]

Для idss модели, элементы матриц пространства состояний A, B, C и D могут быть оценочными параметрами. Элементы K нарушения порядка состояния могут также быть оценочными параметрами. The idss модель хранит значения этих элементов матрицы в A, B, C, D, и K свойства модели.

Создание

Вы можете получить idss моделировать объект одним из трех способов.

  • Оцените idss модель, основанная на измерениях вход-выход системы при помощи n4sid или ssest. Эти команды оценки оценивают значения оцениваемых элементов матриц пространства состояний. Оцененные значения хранятся в A, B, C, D, и K свойства полученного idss модель. The Report свойство полученной модели хранит информацию об оценке, такую как обработка начальных значений состояния и опций, используемых в оценке. Для примера:

    sys = ssest(data,nx);
    A = sys.A;
    B = sys.B;
    sys.Report

    Для получения дополнительных примеров оценки idss модель, см. ssest или n4sid.

  • Создайте idss модель с использованием idss команда. Для примера:

    sys = idss(A,B,C,D)
    Вы можете создать idss модель, чтобы сконфигурировать начальную параметризацию для оценки модели пространства состояний, чтобы соответствовать измеренному отклику данным. Когда вы делаете это, можно задать ограничения на один или несколько элементов матрицы пространства состояний. Например, можно исправить значения некоторых элементов или задать минимальные или максимальные значения для свободных элементов. Затем можно использовать сконфигурированную модель как входной параметр к команде оценки (ssest или n4sid) для оценки значений параметров с этими ограничениями. Для примеров смотрите Создать модель пространства состояний с идентифицируемыми параметрами и Сконфигурируйте идентифицируемые параметры модели пространства состояний.

  • Преобразуйте существующую модель динамической системы в модель idss модели с использованием idss команда. Для примера:

    sys_ss = idss(sys_tf);

Для получения информации о функциях, которые вы можете использовать, чтобы извлечь информацию из или преобразовать idss моделировать объекты, см. Функции объекта.

Описание

Создайте модель пространства состояний

пример

sys = idss(A,B,C,D) создает модель пространства состояний с заданными матрицами пространства состояний A,B,C,D. По умолчанию sys является моделью в дискретном времени с неопределенным шагом расчета и без элемента нарушения порядка состояния. Используйте этот синтаксис, особенно когда вы хотите сконфигурировать начальную параметризацию как вход в функцию оценки пространства состояний, такую как n4sid или ssest.

пример

sys = idss(A,B,C,D,K) задает матрицу нарушений порядка K.

пример

sys = idss(A,B,C,D,K,x0) инициализирует значения состояния с помощью вектора x0.

пример

sys = idss(A,B,C,D,K,x0,Ts) задает свойство шага расчета Ts. Использование Ts = 0 для создания модели в непрерывном времени.

пример

sys = idss(___,Name,Value) устанавливает дополнительные свойства с помощью одного или нескольких аргументов пары "имя-значение". Задайте аргументы пары "имя-значение" после любой комбинации входных аргументов в предыдущих синтаксисах.

Преобразуйте Динамическую систему модель в модель пространства состояний

пример

sys = idss(sys0) преобразует любую динамическую систему модель sys0 на idss форма модели.

sys = idss(sys0,'split') преобразует sys0 на idss моделирует форму и обрабатывает последние Ny входных канала sys0 как шумовые каналы в возвращенной модели. sys0 должен быть числом (неопознанным) tf (Control System Toolbox), zpk (Control System Toolbox), или ss (Control System Toolbox) объект модели. Кроме того, sys0 должно иметь, по крайней мере, столько входов, сколько выходов.

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

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

Начальные значения состояния, заданные как вектор-столбец Nx значений.

Динамическая система, заданная как динамическая системная модель для преобразования в idss модель.

  • Когда sys0 является идентифицированной моделью, ее оцененная ковариация параметра теряется во время преобразования. Если вы хотите переместить предполагаемую ковариацию параметра во время преобразования, используйте translatecov.

  • Когда sys0 - числовая (неопознанная) модель, данные пространства состояний sys0 задает A, B, C, и D матрицы преобразованной модели. Матрица нарушений порядка K фиксируется в нуле. The NoiseVariance значение по умолчанию равняется eye(Ny), где Ny - количество выходов sys.

Для получения синтаксиса sys = idss(sys0,'split'), sys0 должен быть числом (неопознанным) tf (Control System Toolbox), zpk (Control System Toolbox), или ss (Control System Toolbox) объект модели. Кроме того, sys0 должно иметь, по крайней мере, столько входов, сколько выходов. Наконец, подсистема sys0(:,Ny+1:Ny+Nu) должен содержать ненулевой термин feedthrough (подсистема должна быть бипроперной).

Свойства

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

Значения матриц пространства состояний, заданные как матрицы, которые соответствуют каждой из матриц A, B, C и D.

Для системы с Ny выходами, Nu входами и Nx состояниями матрицы пространства состояний имеют следующие размерности:

  • A - Nx -by- Nx матрица

  • B - Nx -by- Nu матрица

  • C - Ny -by- Nx матрица

  • D - Ny -by- Nu матрица

Если вы получаете idss модели sys по идентификации с помощью ssest или n4sid, затем sys.A, sys.B, sys.C, и sys.D содержат оценочные значения элементов матрицы.

Если вы создаете idss модели sys использование idss команда, sys.A, sys.B, sys.C, и sys.D содержат начальные значения матриц пространства состояний, которые вы задаете со A,B,C,D входные параметры.

Для idss модели sys, каждое свойство sys.A, sys.B, sys.C, и sys.D является псевдонимом соответствующего Value запись в Structure свойство sys. Для примера, sys.A является псевдонимом значения свойства sys.Structure.A.Value.

Значение матрицы нарушения порядка состояния K, заданное как матрица Nx -by Ny, где Nx - количество состояний, а Ny - количество выходов.

Если вы получаете idss модели sys по идентификации с помощью ssest или n4sid, затем sys.K содержит предполагаемые значения элементов матрицы.

Если вы создаете idss модели sys использование idss команда, sys.K содержит начальные значения матриц пространства состояний, которые вы задаете со K входной параметр.

Для idss модели sys, sys.K является псевдонимом значения свойства sys.Structure.K.Value.

Имена состояний, заданные как вектор символов или массив ячеек.

  • Модель первого порядка - Вектор символов

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

  • Безымянные состояния - ''

Пример: 'velocity' называет единственное состояние в модели первого порядка

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

  • Модель первого порядка - Вектор символов

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

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

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

Пример: 'rad' соответствует модулям единственного состояния в модели первого порядка

Информация об оценочных параметрах idss модель, заданная как значения специфичные для свойств. Structure.A, Structure.B, Structure.C, Structure.D, и Structure.K содержат информацию о A, B, C, D и K матрицах, соответственно. Каждый параметр в Structure содержит следующие поля.

ОбластьОписаниеПримеры
ЗначениеЗначения параметров - Каждое свойство sys.A, sys.B, sys.C, и sys.D является псевдонимом соответствующего Value запись в Structure свойство sys. NaN представляет неизвестные значения параметров.sys.Structure.A.Value содержит начальные или оценочные значения матрицы A sys.A. является псевдонимом значения свойства sys.Structure.A.Value.
МинимумМинимальное значение, которое параметр может принять во время оценкиsys.Structure.K.Minimum = 0 ограничивает все записи в матрице K, чтобы быть больше или равной нулю.
МаксимумМаксимальное значение, которое параметр может принять во время оценки 
БесплатноЛогическое значение, определяющее, является ли параметр переменной свободной оценки. Если вы хотите исправить значение параметра во время оценки, установите соответствующее Free = false.Если A является матрицей 3 на 3, sys.Structure.A.Free = eyes(3) исправляет все заданные значения в A к значениям, указанным в sys.Structure.A.Value. В этом случае могут быть оценены только диагональные элементы в A.
ШкалаШкала значения параметра. Алгоритм оценки не использует Scale. 
ИнформацияМассив структур, содержащий поля Label и Unit для хранения меток параметров и модулей. Задайте метки параметров и модулей как векторы символов.'Time'

Для примера конфигурации параметров модели с помощью Structure свойство, см. «Конфигурирование идентифицируемых параметров модели пространства состояний».

Отклонение (ковариационная матрица) e инноваций модели, заданная в виде скаляра или матрицы.

  • SISO модели - Скаляр

  • Модель MIMO с выходами Ny - Ny -by- Ny матрица

Идентифицированная модель включает белый Гауссов шумовой компонент e (t). NoiseVariance - отклонение этого шумового компонента. Обычно функция оценки модели (такая как ssest) определяет это отклонение.

Это свойство доступно только для чтения.

Сводный отчет, который содержит информацию об опциях оценки и результатах для модели пространства состояний, полученной с помощью команд оценки, таких как ssest, ssregest, и n4sid. Использование Report для поиска информации об оценке для идентифицированной модели, включая:

  • Метод оценки

  • Опции оценки

  • Условия окончания поиска

  • Подгонка данных оценки и другие метрики качества

Если вы создаете модель по конструкции, содержимое Report нерелевантны.

A = [-0.1 0.4; -0.4 -0.1];
B = [1; 0];
C = [1 0];
D = 0;
m = idss(A,B,C,D);
sys.Report.OptionsUsed
ans =

     []

Если вы получаете используемые команды оценки, поля Report содержат информацию о данных оценки, опциях и результатах.

load iddata2 z2;
m = ssest(z2,3);
m.Report.OptionsUsed
InitialState: 'auto'
          N4Weight: 'auto'
         N4Horizon: 'auto'
             Focus: 'prediction'
EstimateCovariance: 1
           Display: 'off'
       InputOffset: []
      OutputOffset: []
      OutputWeight: []
      SearchMethod: 'auto'
     SearchOptions: [1x1 idoptions.search.identsolver]
    Regularization: [1x1 struct]
          Advanced: [1x1 struct]

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

Входная задержка для каждого входного канала, заданная как скалярное значение или числовой вектор. Для систем непрерывного времени задайте задержки на входе в модуле времени, сохраненной в TimeUnit свойство. Для систем в дискретном времени задайте входные задержки в целочисленных множителях шага расчета Ts. Для примера установка InputDelay на 3 задает задержку в три шагов расчета.

Для системы с Nu входами установите InputDelay к Nu -by-1 вектору. Каждый элемент этого вектора является числовым значением, которое представляет входу задержку для соответствующего канала входа.

Можно также задать InputDelay к скалярному значению, чтобы применить ту же задержку ко всем каналам.

Для идентифицированных систем, таких как idss, OutputDelay фиксируется в нуле.

Шаг расчета, заданный как один из следующих.

  • Модель в непрерывном времени - 0

  • Модель в дискретном времени с заданным временем дискретизации - положительная скалярная величина, представляющая период дискретизации, выраженный в модуле, заданной TimeUnit свойство модели

  • Модель в дискретном времени с неопределенным шагом расчета - -1

Изменение этого свойства не дискретизирует и не переопределяет модель. Использовать c2d и d2c для преобразования между представлениями непрерывного и дискретного времени. Использовать d2d для изменения шага расчета системы дискретного времени.

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

Изменение этого свойства не приводит к повторному сбору или преобразованию данных. Изменение свойства изменяет только интерпретацию существующих данных. Использовать chgTimeUnit (Control System Toolbox) для преобразования данных в различные временные модули

Входные имена каналов, заданные как вектор символов или массив ячеек.

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

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

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

sys.InputName = 'controls';

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

Когда вы оцениваете модель, используя iddata data объектапрограммное обеспечение автоматически устанавливает InputName на data.InputName.

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

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

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

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

  • Чтобы задать точки соединения при соединении моделей

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

  • Модель с одним входом - Вектор символов

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

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

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

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

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

Затем можно извлечь подсистему из controls входы ко всем выходам с использованием следующего синтаксиса:

sys(:,'controls')

Выходы каналов, заданные как вектор символов или массив ячеек.

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

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

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

sys.OutputName = 'measurements';

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

Когда вы оцениваете модель, используя iddata объект, dataпрограммное обеспечение автоматически устанавливает OutputName на data.OutputName.

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

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

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

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

  • Чтобы задать точки соединения при соединении моделей

Выход модулей канала, заданный как вектор символов или массив ячеек.

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

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

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

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

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

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

Затем можно извлечь подсистему из всех входов в measurement выходы с использованием следующего синтаксиса:

sys('measurement',:)

Имя системы, заданное как вектор символов. Для примера, 'system_1'.

Любой текст, который вы хотите связать с системой, заданный как строка или массив ячеек из векторов символов. Свойство сохраняет любой тип данных, которые вы предоставляете. Для образца, если 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.'

Данные для связи с системой, заданные как любой тип данных MATLAB.

Сетка дискретизации для массивов моделей, заданная как структура.

Для массивов идентифицированных линейных (IDLTI) моделей, которые вы выводите путем выборки одной или нескольких независимых переменных, это свойство отслеживает значения переменных, сопоставленные с каждой моделью. Эта информация появляется при отображении или построении графика массива моделей. Используйте эту информацию для отслеживания результатов к независимым переменным.

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

Например, предположим, что вы собираете данные в различных рабочих точках системы. Можно идентифицировать модель для каждой рабочей точки отдельно, а затем сложить результаты в один системный массив. Можно пометить отдельные модели в массиве информацией о рабочей точке.

nominal_engine_rpm = [1000 5000 10000];
sys.SamplingGrid = struct('rpm', nominal_engine_rpm)

Здесь, sys - массив, содержащий три идентифицированные модели, полученные при 1000, 5000 и 10000 об/мин соответственно.

Для массивов моделей, которые вы генерируете путем линеаризации Simulink® моделируйте в нескольких значениях параметров или рабочих точках, программное обеспечение заполняет SamplingGrid автоматически со значениями переменных, соответствующими каждой записи в массиве.

Функции объекта

В целом любая функция, применимая к динамическим системным моделям, применима к idss объект модели. Эти функции имеют четыре общих типа.

  • Функции, которые работают и возвращают idss объекты модели позволяют вам преобразовывать и манипулировать idss модели. Для образца:

    • Использовать canon для преобразования idss модель в каноническую форму

    • Использовать merge для объединения предполагаемых idss модели.

    • Использовать c2d для преобразования idss от непрерывного до дискретного времени. Использовать d2c для преобразования idss от дискретного до непрерывного времени.

  • Функции, которые выполняют аналитические и симуляционные функции на idss объекты, такие как bode и sim

  • Функции, которые извлекают или интерпретируют информацию о модели, такие как advice и getpar

  • Функции, которые преобразуют idss объекты в другой тип модели, например idpoly или idtf для временного интервала или idfrd для непрерывной области

Следующие списки содержат репрезентативное подмножество функций, которые можно использовать с idss модели.

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

canonКаноническая реализация пространства состояний
ss2ssПреобразование координат состояния для модели пространства состояний
balredМоделируйте сокращение порядка
translatecovПереведите ковариацию параметра через операции преобразования моделей
setparУстановите атрибуты, такие как значения и границы параметров линейной модели
chgTimeUnitИзменение временных модулей динамической системы
d2dПовторная выборка модели в дискретном времени
d2cПреобразуйте модель из дискретного в непрерывное время
c2dПреобразуйте модель из непрерывной в дискретное время
mergeОбъедините оцененные модели

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

simСимулируйте реакцию идентифицированной модели
predictСпрогнозируйте состояние и ковариацию ошибки расчета состояния на следующем временном шаге с помощью расширенного или сигма-точечного фильтра Калмана или фильтра частиц
compareСравните идентифицированный выход модели и измеренный выход
impulseГрафик импульсной характеристики динамической системы; данные импульсной характеристики
stepПереходный процесс динамической системы; переходные характеристики
bodeДиаграмма Боде частотной характеристики, или данные величины и фазы
data2stateСопоставьте прошлые данные с состояниями пространственно-нелинейных моделей ARX
findstatesОценка начальных состояний модели

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

idssdataПространственно-государственные данные идентифицированной системы
getДоступ к значениям свойств модели
getparПолучите атрибуты, такие как значения и границы параметров линейной модели
getcovПараметрическая ковариация идентифицированной модели
adviceАнализ и рекомендации для данных или предполагаемых линейных моделей

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

idpolyПолиномиальная модель с идентифицируемыми параметрами
idtfМодель передаточной функции с идентифицируемыми параметрами
idfrdДанные частотной характеристики или модель

Примеры

свернуть все

Создайте модель SISO 4-го порядка с идентифицируемыми параметрами. Инициализируйте начальные значения состояния равные 0,1 для всех записей. Установите шаг расчета равное 0,1 с.

A = blkdiag([-0.1 0.4; -0.4 -0.1],[-1 5; -5 -1]);
B = [1; zeros(3,1)]; 
C = [1 0 1 0]; 
D = 0; 
K = zeros(4,1);
x0 = [0.1,0.1,0.1,0.1];
Ts = 0.1;

sys = idss(A,B,C,D,K,x0,Ts);

sys является SISO 4-го порядка idss модель. Количество состояний и размерностей вход-выход определяются размерностями матриц пространство состояний. По умолчанию все записи в матрицах A, B, C, D, и K являются идентифицируемыми параметрами.

Можно использовать sys чтобы задать начальную параметризацию для оценки модели пространства состояний с ssest или n4sid.

Создайте модель SISO 4-го порядка с идентифицируемыми параметрами. Назовите входной и выходной каналы модели и укажите минуты как модуль времени модели.

Можно использовать аргументы пары "имя-значение", чтобы задать дополнительные свойства модели во время создания модели.

A = blkdiag([-0.1 0.4; -0.4 -0.1],[-1 5; -5 -1]);
B = [1; zeros(3,1)]; 
C = [1 0 1 0]; 
D = 0; 

sys = idss(A,B,C,D,'InputName','Drive','TimeUnit','minutes');

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

sys.OutputName = 'Torque';

Сконфигурируйте idss модель так, что он не имеет элемента нарушения порядка состояния и только ненулевые значения A матрица является оценочной. Кроме того, исправьте значения B матрица.

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

Создайте idss модель.

A = blkdiag([-0.1 0.4; -0.4 -0.1],[-1 5; -5 -1]);
B = [1; zeros(3,1)]; 
C = [1 0 1 0]; 
D = 0; 
K = zeros(4,1);
x0 = [0.1,0.1,0.1,0.1];

sys = idss(A,B,C,D,K,x0,0);

Установка всех записей K to 0 создает idss модель без элемента нарушения порядка состояния.

Используйте Structure свойство модели для фиксации значений некоторых параметров.

sys.Structure.A.Free = (A~=0);
sys.Structure.B.Free = false;
sys.Structure.K.Free = false;

Записи в sys.Structure.A.Free определить, соответствуют ли соответствующие записи в sys.A являются свободными (идентифицируемыми) или фиксированными. Первая линия задает sys.Structure.A.Free в логическую матрицу, которая true где бы A ненулевое, и false повсюду в другом месте. Эта настройка фиксирует значения нулевых значений в sys.A.

Остальные линии фиксируют все значения в sys.B и sys.K к значениям, заданным во время создания модели.

Моделируйте динамическую систему с помощью передаточной функции. Затем используйте idss для преобразования модели передаточной функции в форму пространства состояний.

Использование idtf, создайте передаточную функцию непрерывного времени с одним входом и одним выходом (SISO), описанную как:

G(s)=s+4s2+20s+5

num = [1 4];
den = [1 20 5];
G = idtf(num,den)
G =
 
      s + 4
  --------------
  s^2 + 20 s + 5
 
Continuous-time identified transfer function.

Parameterization:
   Number of poles: 2   Number of zeros: 1
   Number of free coefficients: 4
   Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                                         
Created by direct construction or transformation. Not estimated.

Преобразуйте передаточную функцию в форму пространства состояний.

sys0 = idss(G)
sys0 =
  Continuous-time identified state-space model:
      dx/dt = A x(t) + B u(t) + K e(t)
       y(t) = C x(t) + D u(t) + e(t)
 
  A = 
         x1    x2
   x1   -20  -2.5
   x2     2     0
 
  B = 
       u1
   x1   2
   x2   0
 
  C = 
        x1   x2
   y1  0.5    1
 
  D = 
       u1
   y1   0
 
  K = 
       y1
   x1   0
   x2   0
 
Parameterization:
   FREE form (all coefficients in A, B, C free).
   Feedthrough: none
   Disturbance component: none
   Number of free coefficients: 8
   Use "idssdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                                         
Created by direct construction or transformation. Not estimated.

Создайте массив моделей пространства состояний.

Можно создать массив моделей пространства состояний одним из нескольких способов:

  • Прямые конструкции массива с использованием n-мерные массивы пространства состояний

  • Построение массивов по индексированному назначению

  • Построение массивов с использованием stack команда

  • Выборка идентифицированной модели с использованием rsample команда

Создайте массив путем предоставления n-мерные массивы как входной параметр к idss, вместо 2-мерных матриц.

A = rand(2,2,3,4);
sysarr = idss(A,[2;1],[1 1],0);

Когда вы предоставляете многомерный массив, чтобы idss вместо одной из матриц пространства состояний первые две размерности определяют количество состояний, входов или выходов каждой модели в массиве. Остальные размерности определяют размерности самого массива. A массив 2 на 2 на 3 на 4. Поэтому sysarr массив 3 на 4 idss модели. Каждая модель в sysarr имеет два состояния, заданные первыми двумя размерностями A. Далее, каждая модель в sysarr имеет то же B, C, и D значения.

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

sysarr = idss(zeros(1,1,2));
sysarr(:,:,1) = idss([4 -3; -2 0],[2;1],[1 1],0);
sysarr(:,:,2) = idss(rand(2),rand(2,1),rand(1,2),1);

Первая команда предварительно выделяет массив. Первые два измерения массива являются размерностями ввода-вывода каждой модели в массиве. Поэтому sysarr является 2-элементным вектором моделей SISO.

Остальные команды назначают idss модель в каждую позицию в sysarr. Каждая модель в массиве должна иметь одинаковые размерности ввода-вывода.

Добавьте другую модель к sysarr использование stack.

stack является альтернативой созданию массива путем индексации.

sysarr = stack(1,sysarr,idss([1 -2; -4 9],[0;-1],[1 1],0));

Эта команда добавляет другое idss модель вдоль первого измерения массива sysarr. sysarr теперь это массив SISO размером 3 на 1 idss модели.

Введенный в R2006a