Оцените передаточную функцию
дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов.sys
= tfest(___,Name,Value
)
[
возвращает предполагаемые начальные условия как 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);
Предполагаемая передаточная функция имеет следующую форму:
По умолчанию модель не имеет никакого сквозного соединения, и полином числителя предполагаемой передаточной функции имеет нуль ведущий коэффициент b0
. Оценить b0
, задайте Feedthrough
свойство во время оценки.
sys = tfest(z5,np,nz,'Ts',z5.Ts,'Feedthrough',true);
Полином числителя предполагаемой передаточной функции теперь имеет ненулевой ведущий коэффициент:
Сравните две модели дискретного времени с и без проходной и транспортной задержки.
Если существует задержка от измеренного входа, чтобы вывести, это может быть приписано или отсутствию сквозного соединения или к фактической транспортной задержке. Для моделей дискретного времени отсутствие сквозного соединения соответствует задержке одной выборки между вводом и выводом. Оценка модели с помощью 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
не имеет никакого сквозного соединения и поэтому имеет полином числителя это существа с , 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
получить величину и фазовый отклик для следующей системы:
Используйте 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
создать модель данных частотной характеристики для следующей системы:
Используйте 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 = 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
.
data
— Данные об оценкеiddata
возразите | frd
возразите | idfrd
объектДанные об оценке в виде iddata
объект, frd
объект или idfrd
объект.
Для оценки временного интервала, data
должен быть iddata
объект, содержащий значения сигналов ввода и вывода.
Модели timeseries, которые являются моделями, которые не содержат измеренных входных параметров, не могут быть оценены с помощью tfest
Использование ar
, arx
, или armax
для моделей timeseries вместо этого.
Для оценки частотного диапазона, data
может быть одно из следующего:
Данные об оценке должны быть однородно произведены.
Для данных о мультиэксперименте должны соответствовать шаги расчета и междемонстрационное поведение всех экспериментов.
Можно оценить оба моделей непрерывного и дискретного времени (шага расчета, совпадающего с тем из data
) использование данных временного интервала и данных частотной области дискретного времени. Можно оценить только модели непрерывного времени, использующие данные частотной области непрерывного времени.
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)
оценивает передаточную функцию формы , в то время как tfest(data,2,2,'Ts',data.Ts)
оценки . Здесь, z-1 переменная задержки Z-преобразования. Для получения дополнительной информации о передаточных функциях дискретного времени, смотрите Представление Дискретного времени. Для примера смотрите Оценочную Передаточную функцию Дискретного времени.
iodelay
— Транспортная задержка[]
(значение по умолчанию) | неотрицательное целое число | матрицаТранспортная задержка в виде неотрицательного целого числа, NaN
скаляр или матрица.
Для систем непрерывного времени задайте транспортные задержки единицы измерения времени, сохраненной в TimeUnit
свойство data
. Для систем дискретного времени задайте транспортные задержки как целые числа, обозначающие задержки кратного шагу расчета Ts
.
Для системы MIMO с Ny выходные параметры и входные параметры Nu, набор iodelay
к Ny-by-Nu массив. Каждая запись этого массива является численным значением, которое представляет транспортную задержку соответствующей пары ввода - вывода. Можно также установить iodelay
к скалярному значению, чтобы применить ту же задержку со всеми парами ввода - вывода.
Заданные значения обработаны как зафиксированные задержки. Чтобы обозначить неизвестные транспортные задержки, задайте NaN
в iodelay
матрица.
Использование
или 0
указать, что нет никакой транспортной задержки.
Для примера смотрите, что Оценочная Передаточная функция Содержит Известную Транспортную Задержку.
opt
— Опции оценкиn4sidOptions
опция установленаОпции оценки в виде tfestOptions
опция установлена. Опции заданы opt
включение:
Цель оценки
Обработка начальных условий
Числовой метод поиска, который будет использоваться по оценке
Для примера смотрите, что Оценочная Передаточная функция Использует Набор Опции Оценки.
init_sys
— Линейная система, которая конфигурирует начальную параметризацию sys
idtf
модель | линейная модель | структураЛинейная система, которая конфигурирует начальную параметризацию 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
— Шаг расчета предполагаемой модели
(непрерывное время) (значение по умолчанию) | положительная скалярная величинаШаг расчета предполагаемой модели в виде разделенной запятой пары, состоящей из 'Ts'
и любой 0
или положительная скалярная величина.
Для примера смотрите Оценочную Передаточную функцию Дискретного времени.
InputDelay
— Введите задержки
(значение по умолчанию) | скаляр | векторВведите задержку каждого входного канала в виде разделенной запятой пары, состоящей из 'InputDelay'
и числовой вектор.
Для моделей непрерывного времени задайте 'InputDelay'
в единицах измерения времени, сохраненных в TimeUnit
свойство.
Для моделей дискретного времени задайте 'InputDelay'
в целочисленных множителях шага расчета Ts
. Например, установка 'InputDelay'
к 3
задает задержку трех периодов выборки.
Для системы с входными параметрами Nu, набор InputDelay
к Nu-by-1 вектор. Каждая запись этого вектора является численным значением, которое представляет входную задержку соответствующего входного канала.
Чтобы применить ту же задержку со всеми каналами, задайте InputDelay
как скаляр.
Для примера смотрите Specify Model Properties Предполагаемой Передаточной функции.
Feedthrough
— Сквозное соединение для передаточной функции дискретного времени
(значение по умолчанию) | 1
| логическая матрицаСквозное соединение для передаточных функций дискретного времени в виде разделенной запятой пары, состоящей из 'Feedthrough'
логический скаляр или Ny-by-Nu логическая матрица. Ny является количеством выходных параметров, и Nu является количеством входных параметров. Чтобы использовать то же сквозное соединение для всех каналов ввода-вывода, задайте Feedthrough
как скаляр.
Рассмотрите модель дискретного времени с двумя полюсами и тремя нулями:
Когда модель имеет прямое сквозное соединение, b0 является свободным параметром, значение которого оценивается наряду с остальной частью параметров модели b1, b2, b3, a1 и a2. Когда модель не имеет никакого сквозного соединения, b0 фиксируется, чтобы обнулить. Для примера смотрите Оценочную Передаточную функцию Дискретного времени со Сквозным соединением.
sys
— Идентифицированная передаточная функцияidtf
модельИдентифицированная передаточная функция, возвращенная как idtf
объект. Эта модель создается с помощью заданных порядков модели, задержек и опций оценки.
Информация о результатах оценки и используемых опциях хранится в Report
свойство модели. Report
имеет следующие поля.
Сообщите о поле | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводные данные состояния модели, которое указывает, была ли модель создана конструкцией или получена оценкой. | ||||||||||||||||||
Method | Команда оценки используется. | ||||||||||||||||||
InitializeMethod | Алгоритм, используемый, чтобы инициализировать числитель и знаменатель для оценки передаточных функций непрерывного времени с помощью данных временного интервала, возвратился как одно из следующих значений:
Это поле особенно полезно, чтобы просмотреть алгоритм, используемый когда | ||||||||||||||||||
N4Weight | Взвешивание матриц использовало на шаге сингулярного разложения когда
Это поле особенно полезно, чтобы просмотреть матрицы взвешивания, используемые когда | ||||||||||||||||||
N4Horizon | Передайте и обратные горизонты предсказания, используемые когда | ||||||||||||||||||
InitialCondition | Обработка начальных условий во время оценки модели, возвращенной как одно из следующих значений:
Это поле особенно полезно, чтобы просмотреть, как начальные условия были обработаны когда | ||||||||||||||||||
Fit | Количественная оценка оценки, возвращенной как структура. Смотрите Функцию потерь и Метрики качества Модели для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:
| ||||||||||||||||||
Parameters | Ориентировочные стоимости параметров модели. | ||||||||||||||||||
OptionsUsed | Набор опции используется для оценки. Если никакие пользовательские опции не были сконфигурированы, это - набор опций по умолчанию. Смотрите | ||||||||||||||||||
RandState | Состояние потока случайных чисел в начале оценки. | ||||||||||||||||||
DataUsed | Атрибуты данных используются для оценки, возвращенной как структура со следующими полями.
| ||||||||||||||||||
Termination | Условия завершения для итеративного поиска, используемого для ошибочной минимизации предсказания, возвращенной как структура со следующими полями:
Для методов оценки, которые не требуют числовой оптимизации поиска, |
Для получения дополнительной информации об использовании Report
, см. Отчет Оценки.
ic
— Начальные условияinitialCondition
возразите | объектный массив initialCondition
значенияПредполагаемые начальные условия, возвращенные как 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] и [2] соответствует опции инициализации (InitializeOptions
) поле FilterTimeConstant
. IV является упрощенным усовершенствованным методом IV и называется SRIVC в [3]. Этот метод имеет предварительный фильтр, который является знаменателем текущей модели, инициализированной SVF. Этот предварительный фильтр выполнен с помощью итераций до MaxIterations
времена, пока изменение модели не меньше Tolerance
'MaxIterations'
и Tolerance
опции, что можно задать использование InitializeOptions
структура. 'n4sid'
опция инициализации оценивает модель дискретного времени, с помощью алгоритма оценки N4SID, который она преобразовывает к непрерывному времени с помощью d2c
.
Использование tfestOptions
создать набор опции раньше оценивало передаточную функцию.
Инициализированные параметры обновляются с помощью метода поиска нелинейного метода наименьших квадратов, заданного SearchMethod
опция оценки. Цель метода поиска состоит в том, чтобы минимизировать взвешенную ошибочную норму предсказания.
Для данных дискретного времени, tfest
использует тот же алгоритм как oe
определить числитель и коэффициенты полинома знаменателя. В этом алгоритме инициализация выполняется с помощью arx
, сопровождаемый нелинейным методом наименьших квадратов основанные на поиске обновления, чтобы минимизировать взвешенную ошибочную норму предсказания.
Алгоритм оценки выполняет следующие задачи:
Выполните билинейное отображение, чтобы преобразовать область (сетка частоты) передаточной функции. Для моделей непрерывного времени мнимая ось преобразовывается к единичному диску. Для моделей дискретного времени исходный доменный единичный диск преобразовывается к другому единичному диску.
Выполните итерации S-K [4], чтобы решить задачу нелинейного метода наименьших квадратов — Считают мультивход системой одно выхода. Проблема нелинейного метода наименьших квадратов состоит в том, чтобы минимизировать следующую функцию потерь:
Здесь, W является зависимым частотой весом, который вы задаете. D является знаменателем модели передаточной функции, которая должна быть оценена, и Ni является числителем, соответствующим i th вход. y и u является измеренный выход и входные данные, соответственно. nf и nu являются количеством частот и входных параметров, и w является частотой. Реорганизация терминов дает
Чтобы выполнить итерации S-K, алгоритм итеративно решает
Здесь, m является текущей итерацией, и Dm-1(ω) является ответом знаменателя, идентифицированным в предыдущей итерации. Теперь каждый шаг итерации является проблемой линейного метода наименьших квадратов, где идентифицированные параметры получают ответы Dm(ω) и Ni,m(ω) для i = 1,2... nu. Итерация инициализируется путем выбора D0(ω) = 1.
Первая итерация алгоритма идентифицирует D1(ω). D1(ω) и полиномы Ni,1(ω) описываются в одночленном базисе.
Вторые и после итераций описывают полиномы Dm(ω) и Ni,m(ω) в терминах ортогональных рациональных основных функций на единичном диске. Эти основные функции имеют форму
Здесь, λj,m-1 является j th полюс, который идентифицирован на предыдущем шаге m-1 из итерации. λj, m-1* сопряженное комплексное число λj,m-1, и q является переменной частотного диапазона на единичном диске.
Алгоритм запускается максимум для 20 итераций. Итерации отключены рано, если относительное изменение в значении функции потерь меньше 0.001 в последних трех итерациях.
Если вы задаете границы на коэффициентах передаточной функции, эти границы соответствуют аффинным ограничениям на идентифицированные параметры. Если у вас есть только ограничения равенства (зафиксированные коэффициенты передаточной функции), соответствующая задача метода наименьших квадратов с ограничениями равенства решена алгебраически. Для этого программное обеспечение вычисляет ортогональный базис для ядра матрицы ограничения равенства, и затем решает задачу наименьших квадратов в этом пустом пробеле. Если у вас есть верхние или нижние границы на коэффициентах передаточной функции, соответствующая задача метода наименьших квадратов с ограничениями неравенства решена с помощью методов внутренней точки.
Выполните линейные улучшения — итерации S-K, даже когда они сходятся, не всегда давайте к локально оптимальному решению. Чтобы найти критическую точку задачи оптимизации, которая может дать к локально оптимальному решению, второй набор итераций выполняется. Критические точки являются решениями набора нелинейных уравнений. Алгоритм ищет критическую точку путем последовательного построения линейной аппроксимации к нелинейным уравнениям и решения получившихся линейных уравнений в смысле наименьших квадратов. Уравнения следуют.
Уравнение для j th параметр знаменателя:
Уравнение для j th параметр числителя, который соответствует входу l:
Первая итерация начата с лучшего решения, найденного для числителей Ni и знаменатель параметры D во время итераций S-K. В отличие от итераций S-K, основные функции Bj(ω) не изменяются в каждой итерации; итерации выполняются с основными функциями, которые дали к лучшему решению в итерациях S-K. Как прежде, алгоритм запускается максимум для 20 итераций. Итерации отключены рано, если относительное изменение в значении функции потерь меньше 0.001 в последних трех итерациях.
Если вы задаете границы на коэффициентах передаточной функции, эти границы включены в необходимые условия оптимальности с помощью обобщенных множителей Лагранжа. Получившиеся ограниченные задачи линейного метода наименьших квадратов решены с помощью тех же методов, объясненных на шаге итераций S-K.
Возвратите параметры передаточной функции, соответствующие оптимальному решению — И S-K и линейные шаги итерации улучшения не гарантируют улучшение значения функции потерь. Алгоритм отслеживает лучшее значение параметров, наблюдаемое во время этих шагов, и возвращает эти значения.
Инвертируйте билинейное отображение, выполняемое на шаге 1.
Выполните итеративное улучшение параметров передаточной функции с помощью метода поиска нелинейного метода наименьших квадратов, заданного в SearchMethod
опция оценки. Этот шаг реализован в следующих ситуациях:
Когда вы задаете EnforceStability
опция оценки как true
(устойчивость требуют), и результатом шага 5 этого алгоритма является нестабильная модель. Нестабильные полюса отражаются в контуре устойчивости, и получившиеся параметры итеративно усовершенствованы. Для получения информации об опциях оценки смотрите tfestOptions
.
Когда вы добавляете штраф регуляризации функции потерь с помощью Regularization
опция оценки. Для примера о регуляризации смотрите Упорядоченную Идентификацию Динамических систем.
Вы оцениваете модель непрерывного времени, использующую данные дискретного времени (см., что Оценка Передаточной функции Дискретного времени Использует Данные частотной области Дискретного времени).
Вы используете данные ввода - вывода частотного диапазона, чтобы идентифицировать мультивходную модель.
Если вы используете алгоритм оценки от 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
. Для примера определения входной задержки смотрите Выбор Структуры модели: Определение Задержки Порядка и Входа Модели.
tfest
Обновление алгоритма оценкиНачиная в R2016b, новый алгоритм используется для выполнения оценки передаточной функции от данных частотной области. Вы, вероятно, будете видеть более быстрые и более точные результаты с новым алгоритмом, особенно для данных с динамикой по большому спектру частот и амплитуд. Однако результаты оценки не могут совпадать с результатами предыдущих релизов. Чтобы выполнить оценку с помощью предыдущего алгоритма оценки, добавьте '-R2016a'
к синтаксису.
Например, предположите, что вы оцениваете модель передаточной функции с np
полюса с помощью данных частотной области data
.
sys = tfest(data,np)
Чтобы использовать предыдущий алгоритм оценки, используйте следующий синтаксис.
sys = tfest(data,np,'-R2016a')
[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.
Поддержка параллельных вычислений доступна для оценки с помощью lsqnonlin
метод поиска (требует Optimization Toolbox™). Чтобы включить параллельные вычисления, использовать tfestOptions
, установите SearchMethod
к 'lsqnonlin'
, и набор SearchOptions.Advanced.UseParallel
к true
.
Например:
opt = tfestOptions;
opt.SearchMethod = 'lsqnonlin';
opt.SearchOptions.Advanced.UseParallel = true;
tfestOptions
| idtf
| ssest
| procest
| ar
| arx
| oe
| bj
| polyest
| greyest
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.