tfest

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

Описание

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

пример

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) дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов.

Сконфигурируйте начальные параметры

пример

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

Задайте дополнительные опции

пример

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

Возвратите предполагаемые начальные условия

пример

[sys,ic] = tfest(___) возвращает предполагаемые начальные условия как initialCondition объект. Используйте этот синтаксис, если вы планируете симулировать или предсказать ответ модели с помощью тех же входных данных оценки и затем сравнить ответ с теми же выходными данными оценки. Слияние начальных условий дает к лучшему соответствию во время первой части симуляции.

Примеры

свернуть все

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

load iddata1 z1;

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

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

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

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

sys.Numerator
ans = 1×2

    2.4554  176.9856

sys.Denominator
ans = 1×3

    1.0000    3.1625   23.1631

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

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

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

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

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

load iddata2 z2;

Оцените модель sys передаточной функции это содержит два полюса и один нуль, и который включает известную транспортную задержку iodelay.

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

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

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

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

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

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

load iddata2 z2

Оцените передаточную функцию дискретного времени с двумя полюсами и одним нулем. Задайте шаг расчета Ts как 0,1 секунды и транспортная задержка iodelay как 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 свойство во время оценки.

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

load iddata5 z5

Во-первых, оцените модель передаточной функции дискретного времени с двумя полюсами, одним нулем и никаким сквозным соединением. Получите шаг расчета от Ts свойство z5.

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

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

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

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

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

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

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

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

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

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

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

Поскольку sys1 не имеет никакого сквозного соединения и поэтому имеет полином числителя это существа с z-1, sys1 имеет задержку одной выборки. IODelay свойство 0.

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

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

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

bode(sys1,sys2);

Дискретные уравнения, которые лежат в основе sys1 и sys2 эквивалентны, и так Предвещать ответы.

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

sys1c = d2c(sys1);
sys2c = d2c(sys2);
bode(sys1c,sys2c);
legend

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

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

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

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

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

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');

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

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

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

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

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

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

Используйте 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);

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

Загрузите данные об отклике системы временного интервала co2data, который содержит данные из двух экспериментов, каждого с двумя входными параметрами и одним выходом. Преобразуйте данные из первого эксперимента в iddata объект data с шагом расчета 0,5 секунд.

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

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

opt = tfestOptions('SearchMethod','gna');
opt.InputOffset = [170;50];
opt.OutputOffset = mean(data.y(1:75));
opt.SearchOptions.MaxIterations = 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 секунд.

Создайте набор опции opt. Задайте опции оценки для метода поиска и смещений ввода и вывода. Также задайте максимальное количество поисковых итераций.

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

Задайте неизвестные и известные транспортные задержки iodelay, использование 2 для известной задержки 2 секунд и nan для неизвестной задержки. Оцените передаточную функцию с помощью iodelay и opt.

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

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];

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

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);

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

Анализируйте результат оценки для сравнения. Создайте compareOptions опция установила opt2 и задайте смещения ввода и вывода, и затем используйте compare.

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

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

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

Например, используйте 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 указывает, что передаточная функция от первого входа до выхода содержит три полюса. Точно так же второй элемент np указывает, что передаточная функция от второго входа до выхода содержит четыре полюса.

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

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

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

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

Используйте idtf создать модель G передаточной функции из следующей системы:

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

G = idtf({[1 2], 5},{[1 2 4 5],[1 2 1 1 1]});

Используйте idfrd получить модель данных частотной характеристики data для G. Задайте 100 точек частоты в пределах от от 0,01 рад/с до 100 рад/с.

data = idfrd(G,logspace(-2,2,100));

data idfrd объект.

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

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

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

nz задает количество нулей в предполагаемой передаточной функции. Первый элемент nz указывает, что передаточная функция от первого входа до выхода содержит один нуль. Точно так же второй элемент 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

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

load iddata1ic z1i
plot(z1i)

Исследуйте начальное значение выходных данных y(1).

ystart = z1i.y(1)
ystart = -3.0491

Измеренный выход не запускается в 0.

Оцените передаточную функцию второго порядка sys и возвратите предполагаемое начальное условие ic.

[sys,ic] = tfest(z1i,2,1);
ic
ic = 
  initialCondition with properties:

     A: [2x2 double]
    X0: [2x1 double]
     C: [0.2957 5.2441]
    Ts: 0

ic initialCondition объект, который инкапсулирует свободный ответ sys, в форме пространства состояний, к вектору начального состояния в X0.

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

y_no_ic = sim(sys,z1i);
plot(y_no_ic,z1i)
legend('Model Response','Output Data')

Измеренные и симулированные выходные параметры не соглашаются в начале симуляции.

Включите начальное условие в simOptions опция установлена.

opt = simOptions('InitialCondition',ic);
y_ic = sim(sys,z1i,opt);
plot(y_ic,z1i)
legend('Model Response','Output Data')

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

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

свернуть все

Данные об оценке в виде iddata объект, frd объект или idfrd объект.

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

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

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

  • Записанные данные о частотной характеристике (frd (Control System Toolbox) или idfrd)

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

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

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

    • Domain'Frequency'

Данные об оценке должны быть однородно произведены.

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

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

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

Для систем, которые имеют несколько входных параметров и/или несколько выходных параметров, можно применить или глобальное значение или отдельные значения np к парам ввода - вывода, можно следующим образом:

  • То же количество полюсов для каждой пары — Задает np как скаляр.

  • Отдельное количество полюсов для каждой пары — Задает np как ny-by-nu матрица. ny является количеством выходных параметров, и nu является количеством входных параметров.

Для примера см. Оценочную Модель Передаточной функции путем Определения Количества полюсов.

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

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

Транспортная задержка в виде неотрицательного целого числа, NaN скаляр или матрица.

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

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

Заданные значения обработаны как зафиксированные задержки. Чтобы обозначить неизвестные транспортные задержки, задайте NaN в iodelay матрица.

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

Для примера смотрите, что Оценочная Передаточная функция Содержит Известную Транспортную Задержку.

Опции оценки в виде tfestOptions опция установлена. Опции заданы opt включение:

  • Цель оценки

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

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

Для примера смотрите, что Оценочная Передаточная функция Использует Набор Опции Оценки.

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

Если init_sys idtf модель, tfest использует значения параметров init_sys как исходное предположение для оценки sys.

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

  • Задавать исходное предположение для матрицы A init_sys, установите init_sys.Structure.Numerator.Value к исходному предположению.

  • Задавать ограничения для матрицы B 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.

Пример: sys = tfest(data,np,nz,'Ts',0.1)

Шаг расчета предполагаемой модели в виде разделенной запятой пары, состоящей из 'Ts' и любой 0 или положительная скалярная величина.

  • Для моделей непрерывного времени задайте 'Ts' как 0.

  • Для моделей дискретного времени задайте 'Ts' когда шаг расчета данных в модулях сохранен в TimeUnit свойство. В дискретном случае, np и nz обратитесь к количеству корней z-1 для полинома числителя и полинома знаменателя.

Для примера смотрите Оценочную Передаточную функцию Дискретного времени.

Введите задержку каждого входного канала в виде разделенной запятой пары, состоящей из 'InputDelay' и числовой вектор.

  • Для моделей непрерывного времени задайте 'InputDelay' в единицах измерения времени, сохраненных в TimeUnit свойство.

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

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

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

Для примера смотрите Specify Model Properties Предполагаемой Передаточной функции.

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

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

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

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

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

свернуть все

Идентифицированная передаточная функция, возвращенная как 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.

DataUsed

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

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

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

Type

Тип данных.

Length

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

Ts

Размер шага.

InterSample

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

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

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

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

InputOffset

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

OutputOffset

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

Termination

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

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

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

Iterations

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

FirstOrderOptimality

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

FcnCount

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

UpdateNorm

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

LastImprovement

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

Algorithm

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

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

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

Предполагаемые начальные условия, возвращенные как initialCondition возразите или объектный массив initialCondition значения.

  • Для набора данных одно эксперимента, ic представляет, в форме пространства состояний, свободном ответе модели передаточной функции (A и матрицы C) к предполагаемым начальным состояниям (x0).

  • Для набора данных нескольких-экспериментов с экспериментами Ne, ic объектный массив длины Ne, который содержит один набор initialCondition значения для каждого эксперимента.

Если tfest возвращает ic значения 0 и вы знают, что вы имеете ненулевые начальные условия, устанавливаете 'InitialCondition' опция в tfestOptions к 'estimate' и передайте обновленный набор опции tfest. Например:

opt = tfestOptions('InitialCondition,'estimate')
[sys,ic] = tfest(data,np,nz,opt)
'auto' по умолчанию установка 'InitialCondition' использует 'zero' метод, когда начальные условия оказывают незначительное влияние на полный процесс минимизации ошибки расчета. Определение 'estimate' гарантирует, что программное обеспечение оценивает значения для ic.

Для получения дополнительной информации смотрите initialCondition. Для примера использования этого аргумента смотрите, Получают и Применяют Предполагаемые Начальные условия.

Алгоритмы

свернуть все

Детали алгоритмов оценки, используемых 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 или ранее (см. tfest Обновление Алгоритма Оценки) для оценки использования модели непрерывного времени данных частотного диапазона непрерывного времени, то для данных непрерывного времени и зафиксированных задержек, алгоритм Ошибки на выходе используется для оценки модели. Для данных непрерывного времени и свободных задержек, используется алгоритм оценки пространства состояний. В этом алгоритме коэффициенты модели инициализируются с помощью метода оценки N4SID. Эта инициализация сопровождается нелинейным методом наименьших квадратов основанные на поиске обновления, чтобы минимизировать взвешенную ошибочную норму предсказания.

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

Вопросы совместимости

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

Ссылки

[1] Garnier, H., М. Менслер и А. Ричард. “Идентификация Модели непрерывного времени от Выборочных данных: Проблемы Реализации и Оценка результатов деятельности”. Международный журнал Управления 76, № 13 (январь 2003): 1337–57. https://doi.org/10.1080/0020717031000149636.

[2] Ljung, Lennart. “Эксперименты с Идентификацией Непрерывных Моделей Времени”. Объемы Продолжений IFAC 42, № 10 (2009): 1175–80. https://doi.org/10.3182/20090706-3-FR-2004.00195.

[3] Молодой, Питер и Энтони Джейкмен. “Усовершенствованные Инструментальные Переменные Методы Рекурсивной Аналитической Части III Timeseries. Расширения”. Международный журнал Управления 31, № 4 (апрель 1980): 741–64. https://doi.org/10.1080/00207178008961080.

[4] Drmač, Z., С. Гуджеркин и К. Битти. “Основанный на квадратуре Вектор, Соответствующий Дискретизированному Приближению H2”. SIAM Journal на Научных вычислениях 37, № 2 (январь 2015): A625–52. https://doi.org/10.1137/140961511.

[5] Ozdemir, Ахмет Арда и Суэт Гумассой. “Оценка Передаточной функции System Identification Toolbox через Подбор кривой Вектора”. IFAC-PapersOnLine 50, № 1 (июль 2017): 6232–37. https://doi.org/10.1016/j.ifacol.2017.08.1026.

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

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