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| и сдвиг фазы φ=argG значения

  • 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 имя аргумента и 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- 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) того, как хорошо ответ модели соответствует данным об оценке, выраженным как процент fit = 100 (1-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

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

Для методов оценки, которые не требуют числовой оптимизации поиска, 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], чтобы решить задачу нелинейного метода наименьших квадратов — Считают мультивход системой одно выхода. Проблема нелинейного метода наименьших квадратов состоит в том, чтобы минимизировать функцию потерь:

    minimizeD,Nik=1nf|W(ωk)(y(ωk)i=1nuNi(ωk)D(ωk)ui(ωk))|2

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

    minimizeD,Nik=1nf|W(ωk)D(ωk)(D(ωk)y(ωk)i=1nuNi(ωk)ui(ωk))|2

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

    minimizeDm,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=1nfRe{|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=1nfRe{|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