tfest

Оценка передаточной функции

Синтаксис

sys = tfest(data,np)
sys = tfest(data,np,nz)
sys = tfest(data,np,nz,iodelay)
sys = tfest(___,Name,Value)
sys = tfest(data,init_sys)
sys = tfest(___,opt)

Описание

sys = tfest(data,np) оценивает непрерывно-разовую передаточную функцию, sys, с помощью времени - или данные частотного диапазона, data, и содержит полюса np. Количеством нулей в sys является max(np-1,0).

sys = tfest(data,np,nz) оценивает передаточную функцию, содержащую нули nz.

sys = tfest(data,np,nz,iodelay) оценивает передаточную функцию с транспортной задержкой пар ввода/вывода iodelay.

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

sys = tfest(data,init_sys) использует линейную систему init_sys, чтобы сконфигурировать начальную параметризацию sys.

sys = tfest(___,opt) указывает, что поведение оценки с помощью опции установило opt. Все входные параметры, описанные для предыдущих синтаксисов также, применяются здесь.

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

data

Данные об оценке.

Для оценки области времени data является объектом iddata, содержащим значения сигналов ввода и вывода.

Модели timeseries, которые являются моделями, которые не содержат измеренных входных параметров, не могут быть оценены с помощью tfest. Используйте ar, arx или armax для моделей timeseries вместо этого.

Для оценки частотного диапазона data может быть одним из следующего:

  • Объект frd или idfrd, который представляет записанные данные о частотной характеристике:

    • Комплексные числа G (eiω), для данных частот ω

    • Амплитуда |G| и сдвиг фазы φ=аргументG значения

  • Объект iddata с его свойствами, заданными можно следующим образом:

    • InputData — Преобразование Фурье входного сигнала

    • OutputData — Преобразование Фурье выходного сигнала

    • Domain'Frequency'

Для данных мультиэксперимента должны соответствовать шаги расчета и междемонстрационное поведение всех экспериментов.

np

Количество полюсов в предполагаемой передаточной функции.

np является неотрицательным номером.

Для систем, которые являются несколькими - входом или несколькими - вывод или оба:

  • Чтобы использовать то же количество полюсов для всех пар ввода/вывода, задайте np как скаляр.

  • Чтобы использовать различное количество полюсов для пар ввода/вывода, задайте np как ny-by-nu матрица. ny является количеством выходных параметров, и nu является количеством входных параметров.

nz

Количество нулей в предполагаемой передаточной функции.

nz является неотрицательным номером.

Для систем, которые являются несколькими - входом или несколькими - вывод или оба:

  • Чтобы использовать то же количество нулей для всех пар ввода/вывода, задайте nz как скаляр.

  • Чтобы использовать различное количество нулей для пар ввода/вывода, задайте nz как Ny-by-Nu матрица. Ny является количеством выходных параметров, и Nu является количеством входных параметров.

Для непрерывно-разовой модели, оцененных данных дискретного времени использования, устанавливает nz <= np.

Для оценки модели дискретного времени задайте nz как количество нулей полинома числителя передаточной функции. Например, tfest(data,2,1,'Ts',data.Ts) оценивает передаточную функцию формы b1z1/(1+a1z1+b2z2), в то время как tfest(data,2,2,'Ts',data.Ts) оценивает (b1z1+b2z2)/(1+a1z1+b2z2). Здесь z-1 является переменной задержки Z-преобразования. Для получения дополнительной информации о передаточных функциях дискретного времени, смотрите Представление Дискретного времени. Для примера смотрите Оценочную Передаточную функцию Дискретного времени.

iodelay

Транспортная задержка.

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

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

Заданные значения обработаны как зафиксированные задержки.

iodelay должен содержать или неотрицательные числа или NaNs. Используйте NaN в матрице iodelay, чтобы обозначить неизвестные транспортные задержки.

Используйте [] или 0, чтобы указать, что нет никакой транспортной задержки.

opt

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

opt является набором опций, созданное использование tfestOptions, который задает опции оценки включая:

  • Цель оценки

  • Обработка начальных условий

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

init_sys

Линейная система, которая конфигурирует начальную параметризацию sys.

Вы получаете init_sys или выполнением оценки с помощью результатов измерений или прямой конструкцией.

Если init_sys является моделью idtf, tfest использует параметры и ограничения, заданные в init_sys как исходное предположение для оценки sys. Используйте свойство Structure init_sys сконфигурировать исходные предположения и ограничения для числителя, знаменателя и транспортной задержки. Например:

  • Чтобы задать исходное предположение для числителя init_sys, установите init_sys.Structure.Numerator.Value на исходное предположение.

  • Задавать ограничения для числителя init_sys:

    • Установите init_sys.Structure.Numerator.Minimum на минимальные содействующие значения числителя

    • Установите init_sys.Structure.Numerator.Maximum на максимальные содействующие значения числителя

    • Установите init_sys.Structure.Numerator.Free указывать, какие коэффициенты числителя свободны для оценки

Если init_sys не является моделью idtf, программное обеспечение сначала преобразовывает init_sys в передаточную функцию. tfest использует параметры получившейся модели как исходное предположение для оценки.

Если opt не задан, и init_sys был получен оценкой, то опции оценки от init_sys.Report.OptionsUsed используются.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

'Ts'

'SampleTime' .

Используйте следующие значения для Ts:

  • 0 — Непрерывно-разовая модель.

  • data.Ts — Модель дискретного времени. В этом случае np и nz относятся к количеству корней z^-1 для полиномов знаменателя и числителя.

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

'InputDelay'

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

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

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

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

'Feedthrough'

Сквозное соединение для передаточной функции дискретного времени, заданной как Ny-by-Nu логическая матрица. Ny является количеством выходных параметров, и Nu является количеством входных параметров. Чтобы использовать то же сквозное соединение для всех каналов ввода-вывода, задайте Feedthrough как скаляр.

Рассмотрите модель дискретного времени с двумя полюсами и тремя нулями:

H(z1)=b0+b1z1+b2z2+b3z31+a1z1+a2z2

Когда модель имеет прямое сквозное соединение, b0 является свободным параметром, значение которого оценивается наряду с остальной частью параметров модели b1, b2, b3, a1, a2. Когда модель не имеет никакого сквозного соединения, b0 фиксируется, чтобы обнулить. Для примера смотрите Оценочную Передаточную функцию Дискретного времени Со Сквозным соединением.

Значение по умолчанию: false (Ny, Nu)

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

sys

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

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

Сообщите о полеОписание
Status

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

Method

Команда оценки используется.

InitializeMethod

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

  • 'iv' — Инструментальный подход Переменной.

  • 'svf' — Подход Фильтров переменной состояния.

  • 'gpmf' — Обобщенный подход Функций Момента Пуассона.

  • 'n4sid' — Подход оценки пространства состояний подпространства.

Это поле особенно полезно, чтобы просмотреть алгоритм, используемый, когда опцией InitializeMethod в наборе опции оценки является 'all'.

N4Weight

Взвешивание матриц использовало на шаге сингулярного разложения, когда InitializeMethod является 'n4sid', возвращенный как одно из следующих значений:

  • 'MOESP' — Использует алгоритм MOESP Verhaegen.

  • 'CVA' — Использует канонический переменный алгоритм (CVA) Larimore.

  • 'SSARX' — Метод идентификации подпространства, который использует ARX основанный на оценке алгоритм, чтобы вычислить взвешивание.

Это поле особенно полезно, чтобы просмотреть матрицы взвешивания, используемые, когда опцией N4Weight в наборе опции оценки является 'auto'.

N4Horizon

Передайте и обратные горизонты прогноза, используемые, когда InitializeMethod является 'n4sid', возвращенный как вектор - строка с тремя элементами — [r sy su], где r является максимальным прямым горизонтом прогноза. sy является количеством мимо выходных параметров, и su является количеством прошлых входных параметров, которые используются для прогнозов.

InitialCondition

Обработка начальных условий во время образцовой оценки, возвращенной как одно из следующих значений:

  • 'zero' — Начальные условия были обнулены.

  • 'estimate' — Начальные условия были обработаны как независимые параметры оценки.

  • 'backcast' — Начальные условия были оценены с помощью лучшего метода наименьших квадратов.

Это поле особенно полезно, чтобы просмотреть, как начальные условия были обработаны, когда опцией InitialCondition в наборе опции оценки является 'auto'.

Fit

Количественная оценка оценки, возвращенной как структура. Смотрите Функцию потерь и Образцовые Метрики качества для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:

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

Мера по нормированной среднеквадратической ошибке (NRMSE) того, как хорошо ответ модели соответствует данным об оценке, выраженным как процент.

LossFcn

Значение функции потерь, когда оценка завершается.

MSE

Мера по среднеквадратической ошибке (MSE) того, как хорошо ответ модели соответствует данным об оценке.

FPE

Итоговая ошибка прогноза для модели.

AIC

Необработанная мера по Критериям информации о Akaike (AIC) образцового качества.

AICc

Маленький объем выборки исправил AIC.

nAIC

Нормированный AIC.

BIC

Байесовы информационные критерии (BIC).

Parameters

Ориентировочные стоимости параметров модели.

OptionsUsed

Набор опции используется для оценки. Если никакие пользовательские опции не были сконфигурированы, это - набор опций по умолчанию. Смотрите polyestOptions для получения дополнительной информации.

RandState

Состояние потока случайных чисел в начале оценки. Пустой, [], если рандомизация не использовалась во время оценки. Для получения дополнительной информации смотрите rng в документации MATLAB®.

DataUsed

Атрибуты данных используются для оценки, возвращенной как структура со следующими полями:

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

Имя набора данных.

Type

Тип данных.

Length

Количество выборок данных.

Ts

'SampleTime' .

InterSample

Введите междемонстрационное поведение, возвращенное как одно из следующих значений:

  • 'zoh' — Нулевой порядок содержит, поддерживает кусочно-постоянный входной сигнал между выборками.

  • 'foh' — Хранение первого порядка поддерживает кусочно-линейный входной сигнал между выборками.

  • 'bl' — Ограниченное полосой поведение указывает, что непрерывно-разовый входной сигнал имеет нулевую силу выше частоты Найквиста.

InputOffset

Сместите удаленный из входных данных временного интервала во время оценки. Для нелинейных моделей это - [].

OutputOffset

Сместите удаленный из выходных данных временного интервала во время оценки. Для нелинейных моделей это - [].

Termination

Условия завершения для итеративного поиска используются для ошибочной минимизации прогноза. Структура со следующими полями:

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

Причина завершения числового поиска.

Iterations

Количество поисковых итераций выполняется алгоритмом оценки.

FirstOrderOptimality

- норма вектора просмотра градиента, когда алгоритм поиска останавливается.

FcnCount

Число раз целевая функция было названо.

UpdateNorm

Норма вектора просмотра градиента в последней итерации. Не использованный, когда методом поиска является 'lsqnonlin' или 'fmincon'.

LastImprovement

Улучшение критерия последней итерации, выраженной как процент. Не использованный, когда методом поиска является 'lsqnonlin' или 'fmincon'.

Algorithm

Алгоритм используется методом поиска 'fmincon' или 'lsqnonlin'. Не использованный, когда другие методы поиска используются.

Для методов оценки, которые не требуют числовой оптимизации поиска, не использовано поле Termination.

Для получения дополнительной информации об использовании Report см. Отчет Оценки.

Примеры

свернуть все

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

load iddata1 z1;
np = 2;
sys = tfest(z1,np);

z1 является объектом iddata, который содержит временной интервал, данные ввода - вывода.

np задает количество полюсов в предполагаемой передаточной функции.

sys является моделью idtf, содержащей предполагаемую передаточную функцию.

Видеть числитель и коэффициенты знаменателя получившейся предполагаемой модели sys, введите:

sys.Numerator
ans = 1×2

    2.4554  176.9856

sys.Denominator
ans = 1×3

    1.0000    3.1625   23.1631

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

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

load iddata2 z2;
np = 2;
nz = 1;
sys = tfest(z2,np,nz);

z2 является объектом iddata, который содержит данные об отклике системы временного интервала.

np и nz задают количество полюсов и нулей в предполагаемой передаточной функции, соответственно.

sys является моделью idtf, содержащей предполагаемую передаточную функцию.

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

load iddata2 z2;
np = 2;
nz = 1;
iodelay = 0.2;
sys = tfest(z2,np,nz,iodelay);

z2 является объектом iddata, который содержит данные об отклике системы временного интервала.

np и nz задают количество полюсов и нулей в предполагаемой передаточной функции, соответственно.

iodelay задает транспортную задержку предполагаемой передаточной функции как 0,2 секунды.

sys является моделью idtf, содержащей предполагаемую передаточную функцию с набором свойств IODelay к 0,2 секундам.

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

load iddata2 z2;
np = 2;
nz = 1;
iodelay = NaN;
sys = tfest(z2,np,nz,iodelay);

z2 является объектом iddata, который содержит данные об отклике системы временного интервала.

np и nz задают количество полюсов и нулей в предполагаемой передаточной функции, соответственно.

iodelay задает транспортную задержку предполагаемой передаточной функции. iodelay = NaN обозначает транспортную задержку как неизвестный параметр, который будет оценен.

sys является моделью idtf, содержащей предполагаемую передаточную функцию, свойство IODelay которой оценивается с помощью данных.

Загрузите данные об отклике системы временного интервала.

load iddata2 z2;

z2 является объектом iddata, который содержит данные об отклике системы временного интервала.

Оцените передаточную функцию дискретного времени с двумя полюсами и одним нулем. Задайте шаг расчета как 0,1 секунды и транспортную задержку как 2 секунды.

np = 2;
nz = 1;
iodelay = 2;
Ts = 0.1;
sysd = tfest(z2,np,nz,iodelay,'Ts',Ts)
sysd =
 
  From input "u1" to output "y1":
                     1.8 z^-1
  z^(-2) * ----------------------------
           1 - 1.418 z^-1 + 0.6613 z^-2
 
Sample time: 0.1 seconds
Discrete-time identified transfer function.

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

Status:                                        
Estimated using TFEST on time domain data "z2".
Fit to estimation data: 80.26%                 
FPE: 2.095, MSE: 2.063                         

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

Загрузите данные об оценке.

load iddata5 z5

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

np = 2;
nz = 1;
model = tfest(z5,np,nz,'Ts',z5.Ts);

Предполагаемая передаточная функция имеет форму:

H(z-1)=b1z-1+b2z-21+a1z-1+a2z-2

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

model = tfest(z5,np,nz,'Ts',z5.Ts,'Feedthrough',true);

Полином числителя предполагаемой передаточной функции теперь имеет ненулевой ведущий коэффициент:

H(z-1)=b0+b1z-1+b2z-21+a1z-1+a2z-2

Сравните две модели дискретного времени с и без проходной и транспортной задержки.

Если существует задержка от измеренного входа, чтобы вывести, это может быть приписано отсутствию сквозного соединения или к истинной транспортной задержке. Для моделей дискретного времени отсутствие сквозного соединения соответствует задержке 1 выборки между вводом и выводом. Оценка модели с Feedthrough = false и IODelay = 0 таким образом создает систему дискретного времени, которая эквивалентна системе с Feedthrough = true и IODelay = 1. И системы показывают те же временные и частотные характеристики, например, на шаге и Диаграммах Боде. Однако вы получаете различные результаты, если вы уменьшаете эти модели с помощью balred или преобразовываете их в их непрерывно-разовое представление. Поэтому необходимо проверять, должна ли наблюдаемая задержка быть приписана, чтобы транспортировать задержку или в отсутствие сквозного соединения.

Оцените модель дискретного времени без сквозного соединения.

load iddata1 z1
np = 2; 
nz = 2; 
model1 = tfest(z1,np,nz,'Ts',z1.Ts);

model1 имеет транспортную задержку 1 выборки, и ее свойство IODelay 0. Его полином числителя начинается z-1.

Оцените другую модель дискретного времени со сквозным соединением и 1 демонстрационной задержкой ввода - вывода.

model2 = tfest(z1,np,nz-1,1,'Ts',z1.Ts,'Feedthrough',true);

Сравните Предвещать ответ моделей.

bode(model1,model2);

Уравнения для model1 и model2 эквивалентны, но транспортная задержка model2 была поглощена в числитель model1.

Преобразуйте модели в непрерывное время и сравните их Предвещать ответы.

bode(d2c(model1),d2c(model2));

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

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

Разделите данные в наборы данных оценки и валидации.

load iddata7 z7
ze = z7(1:300);
zv = z7(200:400);

Оцените передаточную функцию с 1 выводом, с 2 входами с 2 полюсами и 1 нулем для каждой передаточной функции входа к выводу.

Lag = [2;0];
Ft = [false,false];
model = tfest(ze,2,1,'Ts',z7.Ts,'Feedthrough',Ft,'InputDelay',Lag);

Выбор Feedthrough диктует, является ли ведущий коэффициент числителя нулем (никакое сквозное соединение) или не (ненулевое сквозное соединение). Задержки выражаются отдельно с помощью свойства InputDelay или IODelay. Этот пример использует InputDelay, чтобы выразить задержки.

Подтвердите предполагаемую модель. Исключите выбросы данных для валидации.

I = 1:201; 
I(114:118) = [];
opt = compareOptions('Samples',I);
compare(zv,model,opt)

Идентифицируйте 15-ю модель передаточной функции порядка при помощи упорядоченной импульсной оценки ответа

Загрузка данных.

load regularizationExampleData m0simdata;

Получите упорядоченную импульсную модель (FIR) ответа.

opt = impulseestOptions('RegularizationKernel','DC');
m0 = impulseest(m0simdata,70,opt);

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

m = idtf(balred(idss(m0),15));

Сравните образцовый вывод с данными.

compare(m0simdata,m);

Создайте набор опции для tfest.

opt = tfestOptions('InitializeMethod','n4sid','Display','on','SearchMethod','lsqnonlin');

opt указывает что метод инициализации как 'n4sid' и метод поиска как 'lsqnonlin'. Это также указывает, что значения функции потерь для каждой итерации показывают.

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

load iddata2 z2;
np = 2;
nz = 1;
iodelay = 0.2;
sysc = tfest(z2,np,nz,iodelay,opt);

z2 является объектом iddata, который содержит данные об отклике системы временного интервала.

np и nz задают количество полюсов и нулей в предполагаемой передаточной функции, соответственно.

iodelay задает транспортную задержку предполагаемой передаточной функции как 0,2 секунды.

opt задает опции оценки.

sys является моделью idtf, содержащей предполагаемую передаточную функцию.

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

load iddata2 z2;
np = 2;
nz = 1;
input_delay = 0.2;
sys = tfest(z2,np,nz,'InputDelay',input_delay);

z2 является объектом iddata, который содержит данные об отклике системы временного интервала.

np и nz задают количество полюсов и нулей в предполагаемой передаточной функции, соответственно.

input_delay задает входную задержку предполагаемой передаточной функции как 0,2 секунды.

sys является моделью idtf, содержащей предполагаемую передаточную функцию с входной задержкой 0,2 секунд.

Этот пример требует лицензии Control System Toolbox™.

Получите данные частотной характеристики.

Например, используйте bode, чтобы получить значение и данные о фазовом отклике для следующей системы:

H(s)=s+0.2s3+2s2+s+1

Используйте 100 точек частоты, в пределах от от 0,1 рад/с до 10 рад/с, чтобы получить данные частотной характеристики. Используйте frd, чтобы создать объект данных частотной характеристики.

freq = logspace(-1,1,100);
[mag,phase] = bode(tf([1 0.2],[1 2 1 1]),freq);
data = frd(mag.*exp(1j*phase*pi/180),freq);

Оцените передаточную функцию с помощью data.

np = 3;
nz = 1;
sys = tfest(data,np,nz);

np и nz задают количество полюсов и нулей в предполагаемой передаточной функции, соответственно.

sys является моделью idtf, содержащей предполагаемую передаточную функцию.

Загрузите данные об отклике системы временного интервала.

load co2data;
Ts = 0.5;
data = iddata(Output_exp1,Input_exp1,Ts);

data является объектом iddata и имеет частоту дискретизации 0,5 секунд.

Задайте метод поиска как gna. Также задайте максимальные поисковые итерации и смещения ввода/вывода.

opt = tfestOptions('SearchMethod','gna');
opt.InputOffset = [170;50];
opt.OutputOffset = mean(data.y(1:75));
opt.SearchOptions.MaxIterations = 50;

opt является набором опции оценки, который задает метод поиска как gna, имеющий до 50 итераций. opt также задает входное смещение и выходное смещение.

Оцените передаточную функцию с помощью результатов измерений и набора опции оценки. Задайте транспортные задержки от входных параметров до вывода.

np = 3;
nz = 1;
iodelay = [2 5];
sys = tfest(data,np,nz,iodelay,opt);

iodelay задает вход, чтобы вывести задержку от первых и вторых входных параметров до вывода как 2 секунды и 5 секунд, соответственно.

sys является моделью idtf, содержащей предполагаемую передаточную функцию.

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

load co2data;
Ts = 0.5;
data = iddata(Output_exp1,Input_exp1,Ts);

data является объектом iddata и имеет частоту дискретизации 0,5 секунд.

Задайте метод поиска как gna. Также задайте максимальные поисковые итерации и смещения ввода/вывода.

opt = tfestOptions('Display','on','SearchMethod','gna');
opt.InputOffset = [170; 50];
opt.OutputOffset = mean(data.y(1:75));
opt.SearchOptions.MaxIterations = 50;

opt является набором опции оценки, который задает метод поиска как gna, имеющий до 50 итераций. opt также задает смещения ввода/вывода.

Оцените передаточную функцию. Задайте неизвестные и известные транспортные задержки.

np = 3;
nz = 1;
iodelay = [2 nan];
sys = tfest(data,np,nz,iodelay,opt);

iodelay задает транспортную задержку от первого входа до вывода как 2 секунды. Используя NaN задает транспортную задержку от второго входа до вывода как неизвестную.

sys является моделью idtf, содержащей предполагаемую передаточную функцию.

Создайте модель передаточной функции с ожидаемым числителем и структурой знаменателя и ограничениями задержки.

В этом примере данные об эксперименте состоят из двух входных параметров и одного вывода. Обе транспортных задержки неизвестны и имеют идентичную верхнюю границу. Кроме того, передаточные функции от обоих входных параметров до вывода идентичны в структуре.

init_sys = idtf(NaN(1,2),[1,NaN(1,3)],'IODelay',NaN);
init_sys.Structure(1).IODelay.Free = true;
init_sys.Structure(1).IODelay.Maximum = 7;

init_sys является моделью idtf, описывающей структуру передаточной функции от одного входа до вывода. Передаточная функция состоит из одного нуля, трех полюсов и транспортной задержки. Использование NaN указывает на неизвестные коэффициенты.

init_sys.Structure(1).IODelay.Free = true указывает, что транспортная задержка не фиксируется.

init_sys.Structure(1).IODelay.Maximum = 7 устанавливает верхнюю границу для транспортной задержки с 7 секундами.

Задайте передаточную функцию от обоих входных параметров до вывода.

init_sys = [init_sys,init_sys];

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

load co2data;
Ts = 0.5; 
data = iddata(Output_exp1,Input_exp1,Ts);
opt = tfestOptions('Display','on','SearchMethod','gna');
opt.InputOffset = [170;50];
opt.OutputOffset = mean(data.y(1:75));
opt.SearchOptions.MaxIterations = 50;
sys = tfest(data,init_sys,opt);

data является объектом iddata и имеет частоту дискретизации 0,5 секунд.

opt является набором опции оценки, который задает метод поиска как gna, имеющий до 50 итераций. opt также задает входное смещение и выходное смещение.

sys является моделью idtf, содержащей предполагаемую передаточную функцию.

Анализируйте результат оценки для сравнения.

opt2 = compareOptions;
opt2.InputOffset = opt.InputOffset;
opt2.OutputOffset = opt.OutputOffset;
compare(data,sys,opt2)

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

Этот пример требует лицензии Control System Toolbox™.

Получите данные частотной характеристики.

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

G=[e-4ss+2s3+2s2+4s+5e-0.6s5s4+2s3+s2+s]

Используйте 100 точек частоты, в пределах от от 0,01 рад/с до 100 рад/с, чтобы получить данные частотной характеристики.

G = tf({[1 2],[5]},{[1 2 4 5],[1 2 1 1 0]},0,'IODelay',[4 0.6]);
data = frd(G,logspace(-2,2,100));

data является объектом frd, содержащим непрерывно-разовую частотную характеристику для G.

Оцените передаточную функцию для data.

 np = [3 4];
 nz = [1 0];
 iodelay = [4 0.6];
 sys = tfest(data,np,nz,iodelay);

np задает количество полюсов в предполагаемой передаточной функции. Первый элемент np указывает, что передаточная функция от первого входа до вывода содержит 3 полюса. Точно так же второй элемент np указывает, что передаточная функция от второго входа до вывода содержит 4 полюса.

nz задает количество нулей в предполагаемой передаточной функции. Первый элемент nz указывает, что передаточная функция от первого входа до вывода содержит 1 нуль. Точно так же второй элемент np указывает, что передаточная функция от второго входа до вывода не содержит нулей.

iodelay задает транспортную задержку от первого входа до вывода как 4 секунды. Транспортная задержка от второго входа до вывода задана как 0,6 секунды.

sys является моделью idtf, содержащей предполагаемую передаточную функцию.

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

Получите данные частотной характеристики.

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

G=[s+2s3+2s2+4s+55s4+2s3+s2+s+1]

Используйте 100 точек частоты, в пределах от от 0,01 рад/с до 100 рад/с, чтобы получить данные частотной характеристики.

G = idtf({[1 2], 5},{[1 2 4 5],[1 2 1 1 1]});
data = idfrd(G,logspace(-2,2,100));

data является объектом idfrd, содержащим непрерывно-разовую частотную характеристику для G.

Оцените передаточную функцию для data.

np = [3 4];
nz = [1 0];
sys = tfest(data,np,nz);

np задает количество полюсов в предполагаемой передаточной функции. Первый элемент np указывает, что передаточная функция от первого входа до вывода содержит 3 полюса. Точно так же второй элемент np указывает, что передаточная функция от второго входа до вывода содержит 4 полюса.

nz задает количество нулей в предполагаемой передаточной функции. Первый элемент nz указывает, что передаточная функция от первого входа до вывода содержит 1 нуль. Точно так же второй элемент nz указывает, что передаточная функция от второго входа до вывода не содержит нулей.

sys является моделью idtf, содержащей предполагаемую передаточную функцию.

pole(sys)
ans = 7×1 complex

  -1.5260 + 0.0000i
  -0.2370 + 1.7946i
  -0.2370 - 1.7946i
  -1.4656 + 0.0000i
  -1.0000 + 0.0000i
   0.2328 + 0.7926i
   0.2328 - 0.7926i

sys является нестабильной системой, как проверено отображением полюса.

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

load HighModalDensityData FRF f

Группируйте данные как объект idfrd для идентификации и, найдите Предвещать ответ значения.

G = idfrd(permute(FRF,[2 3 1]),f,0,'FrequencyUnit','Hz');
bodemag(G)

Оцените передаточную функцию с 32 полюсами и 32 нулями, и сравните Предвещать ответ значения.

sys = tfest(G,32,32);
bodemag(G, sys)
xlim([0.01,2e3])
legend

Больше о

свернуть все

Совместимость

Начиная в R2016b, новый алгоритм используется для выполнения оценки передаточной функции от данных частотного диапазона. Вы, вероятно, будете видеть более быстрые и более точные результаты с новым алгоритмом, особенно для данных с динамикой по большому спектру частот и амплитуд. Однако результаты оценки не могут совпадать с результатами предыдущих релизов. Чтобы выполнить оценку с помощью предыдущего алгоритма оценки, добавьте '-R2016a' к синтаксису.

Например, предположите, что вы оцениваете модель передаточной функции с полюсами np с помощью данных частотного диапазона, data.

sys = tfest(data,np)

Чтобы использовать предыдущий алгоритм оценки, используйте следующий синтаксис.

sys = tfest(data,np,'-R2016a')

Алгоритмы

свернуть все

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

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

Инициализация параметра

Алгоритм оценки инициализирует допускающие оценку параметры с помощью метода, заданного опцией оценки InitializeMethod. Метод по умолчанию является методом Инструментальной переменной (IV).

Подход Фильтров переменной состояния (SVF) и Обобщенные функции момента Пуассона (GPMF) приближаются к непрерывно-разовому использованию оценки параметра к предварительно отфильтрованному [1] [2] данных. Константа 1λ в [1] и [2] соответствует опции инициализации поле (InitializeOptions) FilterTimeConstant. IV является упрощенным усовершенствованным методом IV и называется SRIVC в [3]. Этот метод имеет предварительный фильтр, который является знаменателем текущей модели, инициализированной с SVF. Этот предварительный фильтр выполнен с помощью итераций до времен MaxIterations, пока образцовое изменение не является меньше, чем Tolerance. MaxIterations и Tolerance являются опциями, что можно задать использование структуры InitializeOptions. Опция инициализации 'n4sid' оценивает модель дискретного времени, с помощью алгоритма оценки N4SID, что это преобразовывает к непрерывно-разовому использованию d2c.

Вы используете tfestOptions, чтобы создать набор опции, используемый, чтобы оценить передаточную функцию.

Обновление параметра

Инициализированные параметры обновляются с помощью метода поиска нелинейного метода наименьших квадратов, заданного опцией оценки SearchMethod. Цель метода поиска состоит в том, чтобы минимизировать взвешенную ошибочную норму прогноза.

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

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

Непрерывно-разовая оценка передаточной функции Используя непрерывно-разовые данные частотного диапазона

Алгоритм оценки выполняет следующие задачи:

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

  2. Выполните итерации S-K [4], чтобы решить проблему нелинейного метода наименьших квадратов — Считают мультивход системой одно вывода. Проблема нелинейного метода наименьших квадратов состоит в том, чтобы минимизировать функцию потерь:

    минимизироватьD,Nik=1nf|W(ωk)(y(ωk)i=1nuNi(ωk)D(ωk)ui(ωk))|2

    Здесь W является зависимым частотой весом, который вы задаете. D является знаменателем модели передаточной функции, которая должна быть оценена, и Ni является числителем, соответствующим i th вход. y и u является измеренный вывод и входные данные, соответственно. nf и nu являются количеством частот и входных параметров, и w является частотой. Реорганизация условий дает:

    минимизироватьD,Nik=1nf|W(ωk)D(ωk)(D(ωk)y(ωk)i=1nuNi(ωk)ui(ωk))|2

    Чтобы выполнить итерации S-K, алгоритм итеративно решает

    минимизироватьDm,Ni,mk=1nf|W(ωk)Dm1(ωk)(Dm(ωk)y(ωk)i=1nuNi,m(ωk)ui(ωk))|2

    где m является текущей итерацией, и Dm-1(ω) является ответом знаменателя, идентифицированным в предыдущей итерации. Теперь каждый шаг итерации является проблемой линейного метода наименьших квадратов, где идентифицированные параметры получают ответы Dm(ω) и Ni,m(ω) для i = 1,2... nu. Итерация инициализируется путем выбора D0(ω) = 1.

    • Первая итерация алгоритма идентифицирует D1(ω). D1(ω) и полиномы Ni,1(ω) выражаются в одночленном основании.

    • Вторые и после итераций выражают полиномы Dm(ω) и Ni,m(ω) с точки зрения ортогональных рациональных основных функций на единичном диске. Эти основные функции имеют форму:

      Bj,m(ω)=(1|λj,m1|2qλj,m1)r=0j11(λj,m1)*q(ω)q(ω)λr,m1

      Здесь λj,m-1 является j th полюс, который идентифицирован на предыдущем шаге, m-1, итерации. λj,m-1* является сопряженным комплексным числом λj,m-1, и q является переменной частотного диапазона на единичном диске.

    • Алгоритм запускается максимум для 20 итераций. Итерации отключены рано, если относительное изменение в значении функции потерь - меньше чем 0,001 в последних трех итерациях.

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

  3. Выполните линейные улучшения — итерации S-K, даже когда они сходятся, не всегда приводите к локально оптимальному решению. Чтобы найти критическую точку задачи оптимизации, которая может привести к локально оптимальному решению, второй набор итераций выполняется. Критические точки являются решениями набора нелинейных уравнений. Алгоритм ищет критическую точку путем последовательного построения линейной аппроксимации к нелинейным уравнениям и решения получившихся линейных уравнений в смысле наименьших квадратов. Уравнения:

    • Уравнение для j th параметр знаменателя:

      0=2k=1nfРе{|W(ωk)|2Bj*(ωk)i=1nuNi,m1*(ωk)ui*(ωk)Dm1*(ωk)|Dm1(ωk)|2(Dm(ωk)y(ωk)i=1nuNi,m(ωk)ui(ωk))}

    • Уравнение для j th параметр числителя, который соответствует входу l:

      0=2k=1nfРе{|W(ωk)|2Bj*(ωk)ul*(ωk)|Dm1(ωk)|2(Dm(ωk)y(ωk)i=1nuNi,m(ωk)ui(ωk))}

    Первая итерация запускается с лучшего решения, найденного для числителей Ni и знаменатель параметры D во время итераций S-K. В отличие от итераций S-K, основные функции Bj(ω) не изменяется в каждой итерации, итерации выполняются с основными функциями, которые привели к лучшему решению в итерациях S-K. Как прежде, алгоритм запускается максимум для 20 итераций. Итерации отключены рано, если относительное изменение в значении функции потерь - меньше чем 0,001 в последних трех итерациях.

    Если вы задаете границы на коэффициентах передаточной функции, эти границы включены в необходимые условия оптимальности через обобщенные множители Лагранжа. Получившиеся ограниченные проблемы линейного метода наименьших квадратов решены с помощью тех же методов, объясненных на шаге итераций S-K.

  4. Возвратите параметры передаточной функции, соответствующие оптимальному решению — И S-K и линейные шаги итерации улучшения не гарантируют улучшение значения функции потерь. Алгоритм отслеживает лучшее значение параметров, наблюдаемое во время этих шагов, и возвращает эти значения.

  5. Инвертируйте билинейное отображение, выполняемое на шаге 1.

  6. Выполните итеративное улучшение параметров передаточной функции с помощью метода поиска нелинейного метода наименьших квадратов, заданного в опции оценки SearchMethod. Этот шаг реализован в следующих ситуациях:

Если вы используете алгоритм оценки от R2016a или ранее (см. Совместимость) для оценки непрерывно-разовой модели с помощью непрерывно-разовых данных частотного диапазона, то для непрерывно-разовых данных и зафиксированных задержек, алгоритм Ошибки на выходе используется для образцовой оценки. Для непрерывно-разовых данных и свободных задержек, используется алгоритм оценки пространства состояний. В этом алгоритме коэффициенты модели инициализируются с помощью метода оценки N4SID. Эта инициализация сопровождается нелинейным методом наименьших квадратов основанные на поиске обновления, чтобы минимизировать взвешенную ошибочную норму прогноза.

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

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

Если вы используете алгоритм оценки от R2016a или ранее (см. Совместимость), алгоритм совпадает с алгоритмом для оценки передаточной функции дискретного времени с помощью данных временного интервала.

Примечание

Программное обеспечение не поддерживает оценку передаточной функции дискретного времени с помощью непрерывно-разовых данных частотного диапазона.

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

Команда tfest сначала оценивает модель дискретного времени от данных дискретного времени. Предполагаемая модель затем преобразована в непрерывно-разовую модель с помощью команды d2c. Частотная характеристика получившейся непрерывно-разовой модели затем вычисляется по сетке частоты данных об оценке. Непрерывно-разовая модель желаемой (заданной пользователями) структуры является затем подходящей к этой частотной характеристике. Алгоритм оценки для использования данных частотной характеристики, чтобы получить непрерывно-разовую модель совпадает с этим для непрерывно-разовой оценки передаточной функции с помощью непрерывно-разовых данных.

Если вы используете алгоритм оценки от R2016a или ранее (см. Совместимость), алгоритм оценки пространства состояний используется для оценки непрерывно-разовых моделей от данных дискретного времени. В этом алгоритме коэффициенты модели инициализируются с помощью метода оценки N4SID. Эта инициализация сопровождается нелинейным методом наименьших квадратов основанные на поиске обновления, чтобы минимизировать взвешенную ошибочную норму прогноза.

Задержите оценку

  • Когда значения задержки заданы как NaN, они оцениваются отдельные от образцового числителя и коэффициентов знаменателя, с помощью delayest. Значения задержки, таким образом определенные, обработаны как фиксированные значения во время итеративного обновления модели с помощью метода поиска нелинейного метода наименьших квадратов. Таким образом значения задержки итеративно не обновляются.

  • Для первоначальной модели, init_sys, с:

    • init_sys.Structure.IODelay.Value, заданный как конечные значения

    • init_sys.Structure.IODelay.Free, заданный как true

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

Оценка задержек часто является трудной проблемой. Необходимо оценить присутствие и значение задержки. Для этого используйте физическое понимание смоделированного процесса и функции, такие как arxstruc, delayest и impulseest. Для примера определения входной задержки смотрите Образцовый Выбор Структуры: Определение Образцовой Задержки Порядка и Входа.

Ссылки

[1] Garnier, H., М. Менслер и А. Ричард. “Непрерывно-разовая Образцовая Идентификация От Выборочных данных: Проблемы Реализации и Оценка результатов деятельности”. Международный журнал Управления, 2003, Издание 76, Выпуск 13, стр 1337–1357.

[2] Ljung, L. “Эксперименты с идентификацией непрерывно-разовых моделей”. Продолжения 15-го симпозиума IFAC по System Identification. 2009.

[3] Молодой, P. C. и А.Дж. Джейкмен. “Усовершенствованные инструментальные переменные методы анализа timeseries: Часть III, расширения”. Международный журнал Управления 31, 1980, стр 741–764.

[4] Drmac, Z., С. Гуджеркин и К. Битти. “Основанный на квадратуре вектор, соответствующий дискретизированному приближению H2”. SIAM Journal на Научных вычислениях. Издание 37, Numer 2, 2014, стр A625–A652.

[5] Ozdemir, A. A. и С. Гумассой. “Оценка Передаточной функции System Identification Toolbox через Подбор кривой Вектора”. Продолжения 20-го Мирового Конгресса Международной федерации Автоматического управления. Тулуза, Франция, июль 2017.

Расширенные возможности

Представленный в R2012a