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

Просмотрите коэффициенты числителя и знаменателя полученной оцененной модели 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);

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

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 имеет задержку в одной выборке. The IODelay свойство равно 0.

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

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

Сравните отклики Боде моделей.

bode(sys1,sys2);

Figure contains 2 axes. Axes 1 with title From: u1 To: y1 contains 2 objects of type line. These objects represent sys1, sys2. Axes 2 contains 2 objects of type line. These objects represent sys1, sys2.

Дискретные уравнения, лежащие в основе sys 1 и sys 2 эквивалентны, как и ответы Боде.

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

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

Figure contains 2 axes. Axes 1 with title From: u1 To: y1 contains 2 objects of type line. These objects represent sys1c, sys2c. Axes 2 contains 2 objects of type line. These objects represent sys1c, sys2c.

Как показывает график, отклики 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)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent zv (y1), model: 81.01%.

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

Загрузите данные.

load regularizationExampleData m0simdata;

Получите модель регуляризованной импульсной характеристики (конечной импульсной характеристики).

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

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

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

Сравните выходные данные модели с данными.

compare(m0simdata,m);

Figure contains an axes. The axes contains 2 objects of type line. These objects represent m0simdata (y1), m: 63.82%.

Создайте набор опций для 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 для получения величины и фазового отклика для следующей системы:

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)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent data (y1), sys: 66.19%.

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

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

Для примера используйте 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)

Figure contains an axes. The axes contains an object of type line. This object represents G.

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

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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent G, sys.

Загрузите и постройте график данных.

load iddata1ic z1i
plot(z1i)

Figure contains 2 axes. Axes 1 with title y1 contains an object of type line. This object represents z1i. Axes 2 with title u1 contains an object of type line. This object represents 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')

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent Model Response, Output Data. Axes 2 with title u1 contains an object of type line. This object represents Output Data.

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

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

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

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent Model Response, Output Data. Axes 2 with title u1 contains an object of type line. This object represents 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 как скаляр.

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

Сквозное соединение для передаточных функций в дискретном времени, заданное как разделенная разделенными запятой парами, состоящая из '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

Используется команда estimation.

InitializeMethod

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

  • 'iv' - Подход с переменной КИПиА

  • 'svf' - Подход к фильтрам переменных состояний

  • 'gpmf' - Обобщенный подход к функциям пуассона

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

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

N4Weight

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

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

  • 'CVA' - Используйте канонический алгоритм вариации (CVA) Ларимора.

  • '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 Information Criteria (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

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

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 опция оценки. Метод по умолчанию является методом Instrument Переменной (IV).

Подход фильтров переменных состояний (SVF) и подход обобщенных функций Пуассона (GPMF) к оценке параметра в непрерывном времени используют предфильтрованные данные [1] . [2]Константа 1λ в [1] и [2] соответствует опции инициализации (InitializeOptions) поле FilterTimeConstant. IV является упрощенным методом IV и называется SRIVC в [3]. Этот метод имеет предварительный фильтр, который является знаменателем текущей модели, инициализированный SVF. Этот предварительный фильтр итерация до MaxIterations раз, пока изменение модели не будет меньше Tolerance. MaxIterations и Tolerance опции, которые можно задать с помощью InitializeOptions структура. The '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-му входу. 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-й полюс, который идентифицируется на предыдущем шаге m -1 итерации. и j, m-1* является комплексным сопряженным λj,m-1, и q является переменной частотного диапазона на единичном диске.

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

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

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

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

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

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

расширить все

Ссылки

[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.

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

Введенный в R2012a