idpoly

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

Описание

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

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

A(q)y(t)=B(q)F(q)u(t)+C(q)D(q)e(t)

Переменные A, B, C, D и F являются полиномами, выраженными оператором q сдвига во времени-1. Для образца полином A принимает такую форму:

A(q)=1+a1q1+a2q2++anaqna

Здесь na является порядком A полинома. q-1y (t) эквивалентно y (t - 1).

Например, если A (q) = 1 + a1 q-1 + a2 q-2, затем A (y (t)) = 1 + a1 (t-1) + a2 (t-2).

C, D и F полиномы принимают ту же форму, что и A полином, начиная с 1. Полином B не начинается с 1.

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

A(s)Y(s)=B(s)F(s)U(s)+C(s)D(s)E(s)

U (s) содержит преобразованные входы Лапласа в sys. Y (s) содержит преобразованные выходы Лапласа. E (s) содержит преобразование Лапласа нарушений порядка для каждого выхода.

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

Модели timeseries являются частными случаями полиномиальных моделей для систем без измеренных входов. Для моделей, B и F пусты, и C и D 1 для всех выходов. Для моделей ARMA, B и F пусты, в то время как D равен 1.

Хотя idpoly поддерживает модели в непрерывном времени, idtf и idproc обеспечивают больший выбор для оценки моделей в непрерывном времени. Поэтому для большинства приложений в непрерывном времени эти другие типы модели являются предпочтительными.

Для получения дополнительной информации о полиномиальных моделях смотрите Что такое полиномиальные модели?

Создание

Можно получить idpoly модель одним из трех способов.

  • Оцените idpoly модель, основанная на выходных или входно-выходных измерениях системы при помощи таких команд, как polyest, arx, armax, oe, bj, iv4, или ivar. Эти команды оценивают значения свободных полиномиальных коэффициентов. Оцененные значения хранятся в A, B, C, D, и F свойства полученного idpoly модель. The Report свойство полученной модели хранит информацию об оценке, такую как информацию о обработке начальных условий и опции, используемые в оценке.

    Когда вы получаете idpoly модель путем оценки, можно извлечь предполагаемые коэффициенты и их неопределенности из модели с помощью команд, таких как polydata, getpar, или getcov.

  • Создайте idpoly модель с использованием idpoly команда. Можно создать idpoly модель, чтобы сконфигурировать начальную параметризацию для оценки модели полинома, чтобы соответствовать измеренному отклику данным. Когда вы делаете это, можно задать ограничения на полиномиальные коэффициенты. Для примера можно зафиксировать значения некоторых коэффициентов или задать минимальные или максимальные значения для свободных коэффициентов. Затем можно использовать сконфигурированную модель как входной параметр для polyest для оценки значений параметров с этими ограничениями.

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

Описание

Создайте модель Полинома ввода-вывода

пример

sys = idpoly(A,B,C,D,F,NoiseVariance,Ts) создает полиномиальную модель с идентифицируемыми коэффициентами. A, B, C, D, и F задайте начальные значения коэффициентов. NoiseVariance задает начальное значение отклонения источника белого шума. Ts является моделью шага расчета.

пример

sys = idpoly(A,B,C,D,F,NoiseVariance,Ts,Name,Value) создает полиномиальную модель с использованием дополнительных опций, заданных одним или несколькими аргументами пары "имя-значение".

Создайте модель Timeseries

sys = idpoly(A) создает модель timeseries с только авторегрессивным термином. В этом случае sys представляет модель AR, заданную A (q) y (t) = e (t). Шумовая e (t) имеет отклонение 1. A задает начальные значения оценочных коэффициентов.

пример

sys = idpoly(A,[],C,D,[],NoiseVariance,Ts) создает модель timeseries с авторегрессивным и скользящим средним терминами. Входы A, C, и D, задайте начальные значения оценочных коэффициентов. NoiseVariance задает начальное значение шумового e (t). Ts является моделью шага расчета. (Опустошить NoiseVariance и Ts использовать их значения по умолчанию.)

Если D установлено в [], затем sys представляет модель ARMA, заданную как

A(q)y(t)=C(q)e(t)

пример

sys = idpoly(A,[],C,D,[],NoiseVariance,Ts,Name,Value) создает модель timeseries с использованием дополнительных опций, заданных одним или несколькими аргументами пары "имя-значение".

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

пример

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

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

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

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

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

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

Для получения синтаксиса sys = idpoly(sys0,'split'), sys0 должны соответствовать следующим требованиям.

  • sys0 является числом tf (Control System Toolbox), zpk (Control System Toolbox), или ss (Control System Toolbox) объект модели.

  • sys0 имеет, по крайней мере, столько входов, сколько выходов.

  • Подсистема sys0(:,Ny+1:Nu) должен быть бипропером.

Свойства

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

Значения полиномиальных коэффициентов, заданные в качестве векторов-строк для моделей SISO или, для моделей MIMO, массивов ячеек векторов-строк, которые соответствуют каждому из A, B, C, D, и F полиномы. Для каждого полинома коэффициенты сохраняются в следующем порядке:

  • Возрастающие степени z–1 или q–1 (для полиномиальных моделей в дискретном времени).

  • Нисходящие степени s или p (для полиномиальных моделей в непрерывном времени).

Начальные коэффициенты A, C, D, и F всегда равны 1.

Для моделей MIMO с Ny выходами и Nu входами, A, B, C, D, и F являются массивами ячеек векторов-строк. Каждая запись в массиве ячеек содержит коэффициенты конкретного полинома, который связывает входные, выходные и шумовые значения.

ПолиномРазмерности и ограниченияОтношение, описанное
A

Ny -by - Ny массив ячеек из векторов-строк

Начальные коэффициенты:

  • Диагональные элементы - Фиксировано на 1

  • Не-диагональные значения - Фиксировано к 0

A{i,j} содержит коэффициенты, которые связывают выход yi с выходом yj.

Для примера, для системы с двумя выходами, A - массив ячеек 2 на 2, такой как:

A{1,1} = [1 .1]
A{1,2} = [0.4 -0.6]
A{2,1} = 0
A{2,2} = [1 0.2 0.3]

B,F

Ny -by - Nu массив векторов-строк

Начальные коэффициенты:

  • B - Не ограничено

  • F - Фиксированное значение 1

B{i,j} и F{i,j} содержат коэффициенты, которые связывают выход yi с входом uj.

Для примера, для системы с двумя выходами, B и F представляют собой массивы ячеек 2 на 1, такие как:

B{1,1} = [0.1 0.2]
B{2,1} = [0.5 0.3]
F{1,1} = [1 0.8]
F{2,1} = [1 0.4]

C,D

Ny массив -by-1 из векторов-строк

Начальные коэффициенты:

  • C - Фиксированное значение 1

  • D - Фиксированное значение 1

C{i} и D{i} содержат коэффициенты, которые связывают выходной yi с шумовой ei.

Для примера, для системы с двумя выходами, C и D представляют собой массивы ячеек 2 на 1, такие как:

C{1,1} = [1 0.3]
C{2,1} = [1 0.5 0.3]
D{1,1} = [1 0.7]
D{2,1} = [1 0.1 0.2]

Для модели временных рядов (модель без измеренных входов), B = [] и F = [].

Если вы получаете idpoly модели sys путем идентификации с помощью функции, такой как polyest или arx, затем sys.A, sys.B, sys.C, sys.D, и sys.F содержат оцененные значения полиномиальных коэффициентов.

Если вы создаете idpoly модели sys использование idpoly команда, sys.A, sys.B, sys.C, sys.D, и sys.F содержать начальные значения коэффициентов, которые вы задаете со A,B,C,D,F входные параметры. Использование NaN для любого коэффициента, начальное значение которого не известно. Использование [] для любого полинома, который не присутствует в структуре модели, которую вы хотите создать. Для примера, чтобы создать модель ARX, используйте [] для C, D, и F. Для модели временных рядов ARMA используйте [] для B и F. Начальные значения по умолчанию при создании idpoly модель являются:

  • B - []

  • C - 1 для всех выходов

  • D - 1 для всех выходов

  • F - []

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

Переменная отображения полиномиальной модели, заданная как одно из следующих значений:

  • 'z^-1' - По умолчанию для моделей в дискретном времени

  • 'q^-1' - Эквивалентно 'z^-1'

  • 's' - По умолчанию для моделей в непрерывном времени

  • 'p' - Эквивалентно 's'

Значение Variable отражается на отображении, а также влияет на интерпретацию A, B, C, D, и F векторы коэффициентов для моделей в дискретном времени. Когда Variable установлено в 'z^-1' или 'q^-1'векторы коэффициентов упорядочены как возрастающие степени переменной.

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

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

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

Если вы создаете idpoly модели sys использование idpoly команда, sys.IODelay содержит начальные значения задержки переноса, заданные с помощью аргумента пары "имя-значение".

Если вы получаете idpoly модели sys путем идентификации с помощью функции, такой как polyest или arx, затем sys.IODelay содержит расчетные значения задержки транспортировки.

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

Логический вектор, обозначающий наличие или отсутствие интегрирования в шумовых каналах, задается как логический вектор с длиной, равной количеству выходов.

IntegrateNoise(i) = true указывает, что канал шума для i-го выхода содержит интегратор. В этом случае соответствующий D полином содержит дополнительный член, который не представлен в свойстве sys.D. Этот член интегратора равен 1/ s для систем непрерывного времени и 1/( 1-z-1) для систем в дискретном времени.

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

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

  • sys.Structure.A - Ny -by- Ny

  • sys.Structure.B - Ny -by- Nu

  • sys.Structure.C - Ny -by- 1

  • sys.Structure.D - Ny -by- 1

  • sys.Structure.F - Ny -by- Nu

sys.Structure.A, sys.Structure.B, sys.Structure.C, sys.Structure.D, и sys.Structure.F содержат информацию о полиномиальных коэффициентах. sys.Structure.IODelay содержит информацию о задержке транспортировки. sys.Structure.IntegrateNoise содержит информацию об условиях интегрирования шума. Каждый параметр в Structure содержит следующие поля.

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

Неактивный полином, такой как B полином в модели временных рядов, не доступен как параметр в Structure свойство. Для примера, sys = idpoly([1 -0.2 0.5]) создает модель AR. sys.Structure содержит поля sys.Structure.A и sys.Structure.IntegrateNoise. Однако нет поля в Structure соответствующий B, C, D, F, или IODelay.

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

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

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

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

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

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

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

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

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

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

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

m = idpoly({[1 0.5]},{[1 5]},{[1 0.01]});
m.Report.OptionsUsed
ans =

     []

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

load iddata2 z2;
m = polyest(z2,[2 2 3 3 2 1]);
m.Report.OptionsUsed
Option set for the polyest command:

    InitialCondition: 'auto'
               Focus: 'prediction'
  EstimateCovariance: 1
             Display: 'off'
         InputOffset: []
        OutputOffset: []
      Regularization: [1x1 struct]
        SearchMethod: 'auto'
       SearchOptions: [1x1 idoptions.search.identsolver]
            Advanced: [1x1 struct]

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

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

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

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

В оценке InputDelay является фиксированной константой модели. Программное обеспечение использует IODelay свойство для оценки временных задержек. Чтобы задать начальные значения и ограничения для оценки временных задержек, используйте sys.Structure.IODelay.

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

Выходная задержка для каждого выходного канала, заданная как 0. Это значение фиксировано для идентифицированных систем, таких как idpoly.

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

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

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

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

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

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

Любой текст, который вы хотите связать с системой, заданный как строка.

  • Для одной заметки задайте Notes как строка или вектор символов

  • Для нескольких заметок задайте Notes как строковые массивы.

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

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

sys1.Notes = "sys1 has a string.";
sys2.Notes = ["sys2 has a first string";"sys3 has a second string"];
sys3.Notes = 'sys3 has a character vector.';
sys1.Notes
sys2.Notes
sys3.Notes
ans = 

    "sys1 has a string."

ans = 

  2×1 string array

    "sys2 has a first string"
    "sys2 has a second string"

ans =

  1×1 cell array

    {'sys3 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 автоматически со значениями переменных, соответствующими каждой записи в массиве.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

Создайте idpoly модель, представляющая модель ARMAX с одним входом, одним выходом, описанную следующим уравнением:

y(t)+0.5y=u(t)+5u(t-1)+2u(t-2)+e(t)+0.01e(t-1)

y является выходом, u является входом, и e - белый шум, нарушение порядка на y.

Как создать idpoly модель, задайте A, B, и C полиномы, которые описывают отношения между выходным, входным и шумовым значениями, соответственно. Поскольку в системном уравнении нет членов знаменателя, D и F 1.

A = [1 0.5];
B = [1 5 2];
C = [1 0.01];

Создайте idpoly модель с заданными коэффициентами.

sys = idpoly(A,B,C)
sys =
Discrete-time ARMAX model: A(z)y(t) = B(z)u(t) + C(z)e(t)
  A(z) = 1 + 0.5 z^-1                                    
                                                         
  B(z) = 1 + 5 z^-1 + 2 z^-2                             
                                                         
  C(z) = 1 + 0.01 z^-1                                   
                                                         
Sample time: unspecified
  
Parameterization:
   Polynomial orders:   na=1   nb=3   nc=1   nk=0
   Number of free coefficients: 5
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

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

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

Создайте idpoly модель с заданным отклонением шума nv и шаг расчета Ts. Для этого необходимо также включить значения 1 для D и F.

Ts = 0.1;
nv = 0.01;
sys = idpoly(A,B,C,1,1,nv,Ts)
sys =
Discrete-time ARMAX model: A(z)y(t) = B(z)u(t) + C(z)e(t)
  A(z) = 1 + 0.5 z^-1                                    
                                                         
  B(z) = 1 + 5 z^-1 + 2 z^-2                             
                                                         
  C(z) = 1 + 0.01 z^-1                                   
                                                         
Sample time: 0.1 seconds
  
Parameterization:
   Polynomial orders:   na=1   nb=3   nc=1   nk=0
   Number of free coefficients: 5
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

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

Отображение показывает шаг расчета 0,1 секунды.

Задайте задержку ввода-вывода iod из одной выборки, когда вы создаете idpoly модель.

iod = 1;
sys = idpoly(A,B,C,1,1,nv,Ts,'IODelay',1)
sys =
Discrete-time ARMAX model: A(z)y(t) = B(z)u(t) + C(z)e(t)
  A(z) = 1 + 0.5 z^-1                                    
                                                         
  B(z) = 1 + 5 z^-1 + 2 z^-2                             
                                                         
  C(z) = 1 + 0.01 z^-1                                   
                                                         
Input delays (listed by channel): 1                      
Sample time: 0.1 seconds
  
Parameterization:
   Polynomial orders:   na=1   nb=3   nc=1   nk=0
   Number of free coefficients: 5
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

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

На отображении показан вход одной выборки.

Можно использовать sys задать начальную параметризацию для оценки с помощью таких команд, как polyest или armax.

Создайте idpoly модель, представляющая модель ARMA с одним выходом, описанную следующим уравнением:

y(t)+0.5y=e(t)+0.01e(t-1)

Поскольку временные ряды не имеет измеренных входов, эта модель содержит только A и C полиномы.

A = [1 0.5];
C = [1 0.01];

Создайте модель дискретного времени timeseries без определения шага расчета.

sys = idpoly(A,[],C)
sys =
Discrete-time ARMA model: A(z)y(t) = C(z)e(t)
  A(z) = 1 + 0.5 z^-1                        
                                             
  C(z) = 1 + 0.01 z^-1                       
                                             
Sample time: unspecified
  
Parameterization:
   Polynomial orders:   na=1   nc=1
   Number of free coefficients: 2
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

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

Отображение отражает ваши спецификации.

Создайте непрерывный timeseries путем определения шага расчета 0 для аргумента пары "имя-значение" 'Ts'.

sys = idpoly(A,[],C,'Ts',0)
sys =
Continuous-time ARMA model: A(s)y(t) = C(s)e(t)
  A(s) = s + 0.5                               
                                               
  C(s) = s + 0.01                              
                                               
Parameterization:
   Polynomial orders:   na=1   nc=1
   Number of free coefficients: 2
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

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

Можно также задать шаг расчета с помощью Ts входной параметр, а не аргумент пары "имя-значение", но синтаксис более сложный. Вы должны задать D значение как 1 или пустой, и установите оба F положение и положение отклонения шума (если вы не задаете отклонение шума) в пустом состоянии.

Ts = 0;
sys = idpoly(A,[],C,1,[],[],Ts)
sys =
Continuous-time ARMA model: A(s)y(t) = C(s)e(t)
  A(s) = s + 0.5                               
                                               
  C(s) = s + 0.01                              
                                               
Parameterization:
   Polynomial orders:   na=1   nc=1
   Number of free coefficients: 2
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

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

Создайте idpoly модель, представляющая модель ARMAX с одним входом, двумя выходами, описанную следующими уравнениями:

y1(t)+0.5y1(t-1)+0.9y2(t-1)+0.1y2(t-2)=u(t)+5u(t-1)+2u(t-2)+e1(t)+0.01e1(t-1)y2(t)+0.05y2(t-1)+0.3y2(t-2)=10u(t-2)+e2(t)+0.1e2(t-1)+0.02e2(t-2).

y1 и y2 являются двумя выходами, и u является входом. e1 и e2 являются ли нарушения порядка белого шума на выходах y1 и y2, соответственно.

Как создать idpoly модель, задайте A, B, и C полиномы, которые описывают отношения между выходами, входами и значениями шума. (Поскольку в уравнениях системы нет членов знаменателя, D и F 1.)

Задайте массив ячеек, содержащий коэффициенты A полиномы.

A = cell(2,2); 		
A{1,1} = [1 0.5];	
A{1,2} = [0 0.9 0.1];
A{2,1} = [0]; 	
A{2,2} = [1 0.05 0.3];

Значения каждой записи можно считать в A массив ячеек с левой стороны уравнений, описывающих систему. Для примера, A{1,1} описывает полином, который дает зависимость y1 на самом себе. Этот полином является A11=1+0.5q-1, потому что каждый фактор q-1 соответствует единичному уменьшению времени. Поэтому A{1,1} = [1 0.5], задавая коэффициенты A11 в увеличении экспонентов q-1.

Точно так же A{1,2} описывает полином, который дает зависимость y1 на y2. Из уравнений, A12=0+0.9q-1+0.1q-2. Таким образом, A{1,2} = [0 0.9 0.1].

Оставшиеся записи в A аналогично построены.

Задайте массив ячеек, содержащий коэффициенты B полиномы.

B = cell(2,1);
B{1,1} = [1 5 2];	
B{2,1} = [0 0 10];

B описывает полиномы, которые дают зависимость выходов y1 и y2 на входе u. Из уравнений, B11=1+5q-1+2q-2. Поэтому B{1,1} = [1 5 2].

Точно так же из уравнений, B21=0+0q-1+10q-2. Поэтому B{2,1} = [0 0 10].

Задайте массив ячеек, содержащий коэффициенты C полиномы.

C = cell(2,1);
C{1,1} = [1 0.01]; 
C{2,1} = [1 0.1 0.02];

C описывает полиномы, которые дают зависимость выходов y1 и y2 на условиях шума e1 и e2. Записи C можно считать из уравнений аналогично уравнениям A и B.

Создайте idpoly модель с заданными коэффициентами.

sys = idpoly(A,B,C)
sys =
Discrete-time ARMAX model:                                                      
  Model for output number 1: A(z)y_1(t) = - A_i(z)y_i(t) + B(z)u(t) + C(z)e_1(t)
    A(z) = 1 + 0.5 z^-1                                                         
                                                                                
    A_2(z) = 0.9 z^-1 + 0.1 z^-2                                                
                                                                                
    B(z) = 1 + 5 z^-1 + 2 z^-2                                                  
                                                                                
    C(z) = 1 + 0.01 z^-1                                                        
                                                                                
  Model for output number 2: A(z)y_2(t) = B(z)u(t) + C(z)e_2(t)
    A(z) = 1 + 0.05 z^-1 + 0.3 z^-2                            
                                                               
    B(z) = 10 z^-2                                             
                                                               
    C(z) = 1 + 0.1 z^-1 + 0.02 z^-2                            
                                                               
Sample time: unspecified
  
Parameterization:
   Polynomial orders:   na=[1 2;0 2]   nb=[3;1]   nc=[1;2]
   nk=[0;2]
   Number of free coefficients: 12
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

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

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

Можно использовать sys задать начальную параметризацию для оценки с помощью таких команд, как polyest или armax.

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

Использование 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.

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

sys = idpoly(G)
sys =
Continuous-time OE model: y(t) = [B(s)/F(s)]u(t) + e(t)
  B(s) = s + 4                                         
                                                       
  F(s) = s^2 + 20 s + 5                                
                                                       
Parameterization:
   Polynomial orders:   nb=2   nf=2   nk=0
   Number of free coefficients: 4
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

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

Отображение показывает полиномиальную форму и полиномиальные коэффициенты.

Представлено до R2006a