exponenta event banner

idss

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

Описание

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

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

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

За дискретное время модель state-space принимает следующий вид:

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

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

Создание

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

  • Оценить idss модель, основанная на измерениях ввода-вывода системы с использованием n4sid или ssest. Эти команды оценки оценивают значения оцениваемых элементов матриц состояния-пространства. Оценочные значения хранятся в A, B, C, D, и K свойства результирующего idss модель. 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) создает модель state-space с заданными матрицами state-space 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) задает свойство sample time Ts. Использовать Ts = 0 для создания модели непрерывного времени.

пример

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

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

пример

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

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

Входные аргументы

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

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

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

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

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

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

Свойства

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

Значения матриц состояния-пространства, определенные как матрицы, которые соответствуют каждой из матриц 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 содержат начальные значения матриц state-space, указанных с помощью A,B,C,D входные аргументы.

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

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

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

При создании idss модель sys с использованием idss команда, sys.K содержит начальные значения матриц state-space, указанных с помощью 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(Панель инструментов системы управления) для преобразования данных в различные единицы времени

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

  • Модель с одним входом - символьный вектор. Например, 'controls'.

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

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

sys.InputName = 'controls';

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

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

Можно использовать сокращенную нотацию u см. InputName собственность. Например, sys.u эквивалентно sys.InputName.

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

  • Определение каналов при отображении модели и графиков

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

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

Единицы входного канала, заданные как символьный вектор или массив ячеек:

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

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

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

Входные группы каналов, заданные как структура. 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 не влияет на поведение системы.

Группы выходных каналов, заданные как структура. 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 преобразование модели передаточной функции в форму state-space.

Используя 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.

Преобразование функции переноса в форму state-space.

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-мерных массивов state-space

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

  • Построение массива с использованием 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