Оценка передаточной функции
использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов.sys
= tfest(___,Name,Value
)
[
возвращает предполагаемые начальные условия как sys
,ic
] = tfest(___)initialCondition
объект. Используйте этот синтаксис, если вы планируете моделировать или предсказать ответ модели с помощью тех же входных данных оценки, а затем сравнить ответ с теми же выходными данными оценки. Включение начальных условий приводит к лучшему соответствию во время первой части симуляции.
Загрузите данные отклика системы во временной области z1
.
load iddata1 z1;
Установите количество полюсов np
на 2
и оцените передаточную функцию.
np = 2; sys = tfest(z1,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
.
Загрузка данных отклика системы во временной области 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
и используйте его, чтобы оценить двухполюсную передаточную функцию с одним нулем для системы. Задайте неизвестную задержку переноса для передаточной функции путем установки значения 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
имеет задержку в одной выборке. The IODelay
свойство равно 0.
Оцените другую модель в дискретном времени с сквозным соединением и с сокращением с двух нулей до одного, что приводит к задержке ввода-вывода с одной выборкой.
sys2 = tfest(z1,np,nz-1,1,'Ts',z1.Ts,'Feedthrough',true);
Сравните отклики Боде моделей.
bode(sys1,sys2);
Дискретные уравнения, лежащие в основе sys 1
и sys 2
эквивалентны, как и ответы Боде.
Преобразуйте модели в непрерывное время и сравните отклики Боде для этих моделей.
sys1c = d2c(sys1); sys2c = d2c(sys2); bode(sys1c,sys2c); legend
Как показывает график, отклики Bode двух моделей не совпадают, когда вы преобразовываете их в непрерывное время. Когда нет сквозного соединения, как с sys1c
Должно быть некоторое отставание. Когда есть сквозное соединение, как с sys2c
, задержки быть не может. Непрерывное сквозное соединение преобразуется в сквозное соединение дискретного времени. Задержка в непрерывном времени преобразуется в задержки в дискретном времени.
Оцените передаточную функцию с двумя входами, с одним выходом в дискретном времени с задержкой из двух 2 выборок на первом входе и нулевых выборок на втором входе. Оба входа не имеют сквозного соединения.
Загрузите данные и разделите данные на наборы данных оценки и валидации.
load iddata7 z7 ze = z7(1:300); zv = z7(200:400);
Оцените передаточную функцию с двумя входами, с одним выходом с двумя полюсами и одним нулем для каждой передаточной функции с входом на выход.
Lag = [2;0]; Ft = [false,false]; model = tfest(ze,2,1,'Ts',z7.Ts,'Feedthrough',Ft,'InputDelay',Lag);
The Feedthrough
значение, которое вы выбираете, определяет, равен ли начальный коэффициент числителя нулю (без сквозного соединения) или нет (ненулевое сквозное соединение). Задержки обычно выражаются отдельно с помощью InputDelay
или IODelay
свойство. Этот пример использует InputDelay
только для выражения задержек.
Проверьте предполагаемую модель. Исключить выбросы данных для валидации.
I = 1:201;
I(114:118) = [];
opt = compareOptions('Samples',I);
compare(zv,model,opt)
Идентифицируйте модель передаточной функции 15-го порядка при помощи регулярной оценки импульсной характеристики.
Загрузите данные.
load regularizationExampleData m0simdata;
Получите модель регуляризованной импульсной характеристики (конечной импульсной характеристики).
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
и используйте его для оценки двухполюсной передаточной функции с одним нулем. Задайте вход задержку.
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'
- Шаг расчета расчетной модели0
(непрерывное время) (по умолчанию) | положительная скалярная величинаШаги расчета предполагаемой модели, заданные как разделенная запятой пара, состоящие из 'Ts'
и любой из них 0
или положительная скалярная величина.
Для получения примера смотрите Оценку Передаточной Функции в Дискретном Времени.
'InputDelay'
- Входные задержки0
(по умолчанию) | скалярный вектор |Входная задержка для каждого входного канала, заданная как разделенная разделенными запятой парами, состоящая из 'InputDelay'
и числовой вектор.
Для моделей в непрерывном времени задайте 'InputDelay'
в модулях времени, сохраненных в TimeUnit
свойство.
Для моделей в дискретном времени задайте 'InputDelay'
в целочисленных множителях шага расчета Ts
. Для примера установка 'InputDelay'
на 3
задает задержку на три периода дискретизации.
Для системы с Nu входами установите InputDelay
к Nu -by-1 вектору. Каждый элемент этого вектора является числовым значением, которое представляет входу задержку для соответствующего канала входа.
Чтобы применить ту же задержку ко всем каналам, задайте InputDelay
как скаляр.
Для получения примера смотрите Задать свойства модели Предполагаемой передаточной функции.
'Feedthrough'
- Сквозное соединение для передаточной функции в дискретном времени0
(по умолчанию) | 1
| логическую матрицуСквозное соединение для передаточных функций в дискретном времени, заданное как разделенная разделенными запятой парами, состоящая из 'Feedthrough'
логический скаляр или Ny -by Nu логическая матрица. Ny - количество выходов, а Nu - количество входов. Чтобы использовать то же сквозное соединение для всех входно-выходных каналов, задайте Feedthrough
как скаляр.
Рассмотрим модель в дискретном времени с двумя полюсами и тремя нулями:
Когда у модели есть прямое сквозное соединение, b0 - свободный параметр, значение которого оценено наряду с остальной частью параметров модели b1, b2, b3, a1, и a2. Когда модель не имеет сквозного соединения, b0 фиксируется на нуле. Для получения примера смотрите Оценка передаточной функции в дискретном времени с Сквозным соединением.
sys
- Идентифицированная передаточная функцияidtf
модельИдентифицированная передаточная функция, возвращенная как idtf
объект. Эта модель создается с использованием заданных порядков модели, задержек и опций оценки.
Информация о результатах оценки и используемых опциях хранится в Report
свойство модели. Report
имеет следующие поля.
Поле отчета | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводными данными статуса модели, которое указывает, была ли модель создана конструкцией или получена оценкой. | ||||||||||||||||||
Method | Используется команда estimation. | ||||||||||||||||||
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
опция оценки. Метод по умолчанию является методом Instrument Переменной (IV).
Подход фильтров переменных состояний (SVF) и подход обобщенных функций Пуассона (GPMF) к оценке параметра в непрерывном времени используют предфильтрованные данные [1]
. [2]Константа в [1] и [2] соответствует опции инициализации (InitializeOptions
) поле FilterTimeConstant
. IV является упрощенным методом IV и называется SRIVC в [3]. Этот метод имеет предварительный фильтр, который является знаменателем текущей модели, инициализированный SVF. Этот предварительный фильтр итерация до MaxIterations
раз, пока изменение модели не будет меньше Tolerance
. MaxIterations
и Tolerance
опции, которые можно задать с помощью InitializeOptions
структура. The 'n4sid'
опция инициализации оценивает модель в дискретном времени, используя алгоритм оценки N4SID, которую она преобразует к непрерывному времени, используя d2c
.
Использовать tfestOptions
для создания набора опций, используемого для оценки передаточной функции.
Инициализированные параметры обновляются с помощью нелинейного метода поиска методом наименьших квадратов, заданного SearchMethod
опция оценки. Цель метода поиска состоит в том, чтобы минимизировать взвешенную норму ошибки предсказания.
Для данных в дискретном времени, tfest
использует тот же алгоритм, что и oe
для определения числителя и полиномиальных коэффициентов знаменателя. В этом алгоритме инициализация выполняется с помощью arx
, далее нелинейные методы наименьших квадратов основанные на поиске обновления, чтобы минимизировать взвешенную норму ошибки предсказания.
Алгоритм оценки выполняет следующие задачи:
Выполните билинейное отображение, чтобы преобразовать область (частотную сетку) передаточной функции. Для моделей в непрерывном времени мнимая ось преобразуется в единичный диск. Для моделей в дискретном времени исходный единичный диск области преобразуется в другой единичный диск.
Выполните итерации S-K [4], чтобы решить нелинейный метод наименьших квадратов задачу - Рассмотрите мультивход систему с одним выходом. Нелинейный метод наименьших квадратов состоит в том, чтобы минимизировать следующую функцию потерь:
Здесь W является частотно-зависимым весом, который вы задаете. D является знаменателем модели передаточной функции, которая должна быть оценена, и Ni является числителем, соответствующим i-му входу. 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-й полюс, который идентифицируется на предыдущем шаге m -1 итерации. и j, m-1* является комплексным сопряженным λj,m-1, и q является переменной частотного диапазона на единичном диске.
Алгоритм запускается максимум 20 итераций. Итерации прекращаются раньше, если относительное изменение значения функции потерь меньше 0,001 в последних трех итерациях.
Если вы задаете ограничения на коэффициенты передаточной функции, эти ограничения соответствуют аффинным ограничениям идентифицированных параметров. Если у вас есть только ограничения равенства (коэффициенты фиксированной передаточной функции), соответствующая задача методом наименьших квадратов с ограничениями на равенство решается алгебраически. Для этого программа вычисляет ортогональный базис для ядра матрицы ограничений равенства, а затем решает задачу наименьших квадратов в этом нулевом пространстве. Если у вас есть верхние или более низкие ограничения коэффициентов передаточной функции, соответствующая задача метода наименьших квадратов с ограничениями неравенством решается с помощью методов interior-point.
Выполняйте линейные уточнения - итерации S-K, даже когда они сходятся, не всегда дают локально оптимальное решение. Чтобы найти критическую точку задачи оптимизации, которая может привести к локально оптимальному решению, выполняется второй набор итераций. Критические точки являются решениями множества нелинейных уравнений. Алгоритм ищет критическую точку путем последовательного построения линейного приближения к нелинейным уравнениям и решения получившихся линейных уравнений в смысле наименьших квадратов. Уравнения следуют.
Уравнение для j-го параметра знаменателя:
Уравнение для j-го параметра числителя, который соответствует входным 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 или более ранних версий (см. «Обновление алгоритма оценки») для оценки модели непрерывного времени с использованием данных частотного частотного диапазона непрерывного времени, то для данных непрерывного времени и фиксированных задержек алгоритм Output-Error используется для оценки модели. Для данных в непрерывном времени и свободных задержек используется алгоритм оценки пространства состояний. В этом алгоритме коэффициенты модели инициализируются с помощью N4SID метода оценки. За этой инициализацией следуют обновления нелинейного метода наименьших квадратов основанные на поиске, чтобы минимизировать взвешенную норму ошибки предсказания.
Алгоритм оценки такой же, как и для оценки передаточной функции в непрерывном времени, используя данные частотного частотного диапазона в непрерывном времени, за исключением того, что используются данные в дискретном времени.
Если вы используете алгоритм оценки из R2016a или более ранних версий (см. «Обновление алгоритма оценки»), алгоритм такой же, как и алгоритм оценки передаточной функции в дискретном времени с использованием данных временной области.
Примечание
Программное обеспечение не поддерживает оценку передаточной функции в дискретном времени, используя данные частотного частотного диапазона в непрерывном времени.
tfest
команда сначала оценивает модель в дискретном времени из данных в дискретном времени. Предполагаемая модель затем преобразуется в модель в непрерывном времени, используя d2c
команда. Частотная характеристика полученной модели в непрерывном времени затем вычисляется по частотной сетке данных оценки. Модель требуемой (заданной пользователем) структуры в непрерывном времени затем соответствует этой частотной характеристике. Алгоритм оценки для использования данных частотной характеристики для получения модели непрерывного времени аналогичен алгоритму для оценки непрерывной передаточной функции с использованием данных непрерывного времени.
Если вы используете алгоритм оценки из R2016a или более ранних версий (см. «Обновление алгоритма оценки»), алгоритм оценки пространства состояний используется для оценки моделей непрерывного времени из данных дискретного времени. В этом алгоритме коэффициенты модели инициализируются с помощью 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] Гарнье, Х., М. Менслер и А. Ричард. «Идентификация модели в непрерывном времени из выборочных данных: вопросы реализации и оценка эффективности». Международный журнал контроля 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] Янг, Питер и Энтони Джейкман. «Уточненные инструментальные переменные методы рекурсивного анализа Timeseries, часть III. Расширения». Международный журнал контроля 31, № 4 (апрель 1980 года): 741-64. https://doi.org/10.1080/00207178008961080.
[4] Дрмач, З., С. Гугерцин и К. Битти. Квадратурная аппроксимация Вектора для дискретизированных H2 Приближения. SIAM Journal on Scientific Computing 37, № 2 (январь 2015): A625-52. https://doi.org/10.1137/140961511.
[5] Оздемир, Ахмет Арда и Суат Гумуссой. «Оценка передаточной функции в 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;
ar
| arx
| bj
| greyest
| idtf
| oe
| polyest
| procest
| ssest
| tfestOptions
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.