Оценка передаточной функции
использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение. Этот синтаксис можно использовать с любой из предыдущих комбинаций входных аргументов.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);Расчетная передаточная функция имеет следующий вид:
a1z-1 + a2z-2
По умолчанию модель не имеет сквозного соединения, а числительный полином расчетной передаточной функции имеет нулевой коэффициент начала b0. Оценить b0, укажите Feedthrough свойство во время оценки.
sys = tfest(z5,np,nz,'Ts',z5.Ts,'Feedthrough',true);
Числительный полином оценочной передаточной функции теперь имеет ненулевой ведущий коэффициент:
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 не имеет сквозной связи и поэтому имеет числительный многочлен, что существа с , sys1 имеет отставание в один образец. IODelay свойство равно 0.
Оцените другую дискретно-временную модель с проходом и с уменьшением от двух нулей до одной, что приведет к задержке ввода-вывода одной выборки.
sys2 = tfest(z1,np,nz-1,1,'Ts',z1.Ts,'Feedthrough',true);
Сравните ответы Боде моделей.
bode(sys1,sys2);

Дискретные уравнения, лежащие в основе sys1 и sys2 эквивалентны и ответы Боде.
Преобразуйте модели в непрерывное время и сравните ответы Боде для этих моделей.
sys1c = d2c(sys1); sys2c = d2c(sys2); bode(sys1c,sys2c); legend

Как показано на графике, отклики Боде двух моделей не совпадают при преобразовании их в непрерывное время. При отсутствии сквозного прохода, как с sys1c, должно быть некоторое отставание. При наличии сквозного соединения, как с sys2c, не может быть отставания. Непрерывные переходы к дискретным переходам. Непрерывное запаздывание отображает дискретные задержки.
Оцените двухвходовую дискретно-временную передаточную функцию с задержкой в два 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);
Feedthrough выбираемое значение определяет, равен ли начальный числительный коэффициент нулю (без прохождения) или нет (ненулевое прохождение). Задержки обычно выражаются отдельно с использованием InputDelay или IODelay собственность. В этом примере используется InputDelay только для того, чтобы выразить задержки.
Проверка расчетной модели. Исключить отклонения данных для проверки.
I = 1:201;
I(114:118) = [];
opt = compareOptions('Samples',I);
compare(zv,model,opt)
Определение модели функции переноса 15-го порядка с использованием оценки регуляризованного импульсного отклика.
Загрузите данные.
load regularizationExampleData m0simdata;
Получить модель регуляризованной импульсной характеристики (FIR).
opt = impulseestOptions('RegularizationKernel','DC'); m0 = impulseest(m0simdata,70,opt);
Преобразуйте модель в модель передаточной функции после уменьшения порядка до 15.
m = idtf(balred(idss(m0),15));
Сравните выходные данные модели с данными.
compare(m0simdata,m);

Создание набора опций для tfest определяет методы инициализации и поиска. Также задайте опцию отображения, которая определяет отображение значений функции потери для каждой итерации.
opt = tfestOptions('InitializeMethod','n4sid','Display','on','SearchMethod','lsqnonlin');
Загрузка данных ответа системы временной области z2 и использовать его для оценки передаточной функции с двумя полюсами и одним нулем. Определить opt для вариантов оценки.
load iddata2 z2; np = 2; nz = 1; iodelay = 0.2; sys = tfest(z2,np,nz,iodelay,opt);
sys является idtf модель, содержащая расчетную передаточную функцию.
Загрузка данных ответа системы временной области z2и использовать его для оценки двухполюсной, однонулевой передаточной функции. Укажите задержку ввода.
load iddata2 z2; np = 2; nz = 1; input_delay = 0.2; sys = tfest(z2,np,nz,'InputDelay',input_delay);
sys является idtf модель, содержащая расчетную передаточную функцию с задержкой ввода 0,2 секунды.
Использовать bode для получения величины и фазовой характеристики для следующей системы:
2s2 + s + 1
Для получения данных частотного отклика используются 100 частотные точки от 0,1 рад/с до 10 рад/с. Использовать frd для создания объекта данных частотного отклика.
freq = logspace(-1,1,100); [mag,phase] = bode(tf([1 0.2],[1 2 1 1]),freq); data = frd(mag.*exp(1j*phase*pi/180),freq);
Оценка трехполюсной, однонулевой передаточной функции с помощью data.
np = 3; nz = 1; sys = tfest(data,np,nz);
sys является idtf модель, содержащая расчетную передаточную функцию.
Загрузка данных ответа системы временной области co2data, который содержит данные двух экспериментов, каждый с двумя входами и одним выходом. Преобразование данных первого эксперимента в iddata объект data с временем выборки 0,5 секунды.
load co2data;
Ts = 0.5;
data = iddata(Output_exp1,Input_exp1,Ts);Задайте параметры оценки для метода поиска и смещения ввода и вывода. Также укажите максимальное количество итераций поиска.
opt = tfestOptions('SearchMethod','gna'); opt.InputOffset = [170;50]; opt.OutputOffset = mean(data.y(1:75)); opt.SearchOptions.MaxIterations = 50;
Оценка передаточной функции с использованием измеренных данных и набора опций оценки opt. Укажите задержки транспортировки от входов к выходу.
np = 3; nz = 1; iodelay = [2 5]; sys = tfest(data,np,nz,iodelay,opt);
iodelay определяет задержку ввода-вывода с первого и второго входов на выход как 2 секунды и 5 секунд соответственно.
sys является idtf модель, содержащая расчетную передаточную функцию.
Загрузите данные ответа системы временной области и используйте их для оценки передаточной функции системы. Укажите известные и неизвестные задержки транспорта.
load co2data;
Ts = 0.5;
data = iddata(Output_exp1,Input_exp1,Ts);data является iddata объект с двумя входными каналами и одним выходным каналами, который имеет частоту дискретизации 0,5 секунды.
Создание набора опций opt. Задайте параметры оценки для метода поиска и смещения ввода и вывода. Также укажите максимальное количество итераций поиска.
opt = tfestOptions('Display','on','SearchMethod','gna'); opt.InputOffset = [170; 50]; opt.OutputOffset = mean(data.y(1:75)); opt.SearchOptions.MaxIterations = 50;
Укажите неизвестные и известные задержки транспортировки в iodelay, использование 2 для известной задержки в 2 секунды и nan для неизвестной задержки. Оцените передаточную функцию с помощью iodelay и opt.
np = 3; nz = 1; iodelay = [2 nan]; sys = tfest(data,np,nz,iodelay,opt);
sys является idtf модель, содержащая расчетную передаточную функцию.
Создайте модель передаточной функции с ожидаемой структурой числителя и знаменателя и ограничениями задержки.
В этом примере данные эксперимента состоят из двух входов и одного выхода. Обе транспортные задержки неизвестны и имеют одинаковую верхнюю границу. Кроме того, передаточные функции от обоих входов к выходу идентичны по структуре.
init_sys = idtf(NaN(1,2),[1,NaN(1,3)],'IODelay',NaN);
init_sys.Structure(1).IODelay.Free = true;
init_sys.Structure(1).IODelay.Maximum = 7;init_sys является idtf модель, описывающая структуру передаточной функции от одного входа к выходу. Передаточная функция состоит из одного нуля, трех полюсов и транспортной задержки. Использование NaN указывает неизвестные коэффициенты.
init_sys.Structure(1).IODelay.Free = true указывает на то, что задержка передачи не зафиксирована.
init_sys.Structure(1).IODelay.Maximum = 7 устанавливает верхнюю границу задержки транспортировки равной 7 секундам.
Укажите функцию переноса с обоих входов на выход.
init_sys = [init_sys,init_sys];
Загрузите данные ответа системы временной области и используйте их для оценки передаточной функции. Укажите параметры в tfestOptions набор опций opt.
load co2data; Ts = 0.5; data = iddata(Output_exp1,Input_exp1,Ts); opt = tfestOptions('Display','on','SearchMethod','gna'); opt.InputOffset = [170;50]; opt.OutputOffset = mean(data.y(1:75)); opt.SearchOptions.MaxIterations = 50; sys = tfest(data,init_sys,opt);
sys является idtf модель, содержащая расчетную передаточную функцию.
Проанализируйте результат оценки путем сравнения. Создать compareOptions набор опций opt2 и укажите входные и выходные смещения, а затем используйте compare.
opt2 = compareOptions; opt2.InputOffset = opt.InputOffset; opt2.OutputOffset = opt.OutputOffset; compare(data,sys,opt2)

Оцените передаточную функцию с несколькими входами и одним выходом, содержащую различное количество полюсов для пар «вход-выход» для данных.
Получение данных частотного отклика.
Например, использовать frd для создания модели данных частотного отклика для следующей системы:
+ 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 следующей системы:
2s3 + s2 + s + 1]
G = idtf({[1 2], 5},{[1 2 4 5],[1 2 1 1 1]});Использовать idfrd для получения модели данных частотного отклика data для G. Укажите точки частоты 100 диапазоне от 0,01 рад/с до 100 рад/с.
data = idfrd(G,logspace(-2,2,100));
data является idfrd объект.
Оценка передаточной функции для data.
np = [3 4]; nz = [1 0]; sys = tfest(data,np,nz);
np определяет количество полюсов в расчетной передаточной функции. Первый элемент np указывает, что передаточная функция от первого входа к выходу содержит три полюса. Аналогично, второй элемент np указывает, что передаточная функция от второго входа к выходу содержит четыре полюса.
nz указывает количество нулей в расчетной передаточной функции. Первый элемент nz указывает, что передаточная функция от первого входа к выходу содержит один ноль. Аналогично, второй элемент nz указывает, что функция переноса со второго входа на выход не содержит нулей.
sys является idtf модель, содержащая расчетную передаточную функцию.
pole(sys)
ans = 7×1 complex
-1.5260 + 0.0000i
-0.2370 + 1.7946i
-0.2370 - 1.7946i
-1.4656 + 0.0000i
-1.0000 + 0.0000i
0.2328 + 0.7926i
0.2328 - 0.7926i
sys является нестабильной системой, как показывает полюсный дисплей.
Загрузите данные измерения частотной характеристики высокой плотности. Данные соответствуют нестабильному процессу, поддерживаемому при равновесии с помощью управления с обратной связью.
load HighModalDensityData FRF f
Упаковывать данные как idfrd объект для идентификации и поиска отклика величины Боде.
G = idfrd(permute(FRF,[2 3 1]),f,0,'FrequencyUnit','Hz'); bodemag(G)

Оцените передаточную функцию с 32 полюсами и 32 нулями и сравните отклик величины Боде.
sys = tfest(G,32,32); bodemag(G, sys) xlim([0.01,2e3]) legend

Загрузите и постройте график данных.
load iddata1ic z1i plot(z1i)

Проверьте исходное значение выходных данных y(1).
ystart = z1i.y(1)
ystart = -3.0491
Измеренный выходной сигнал не начинается с 0.
Оценка функции переноса по второму заказу sys и вернуть предполагаемое начальное условие ic.
[sys,ic] = tfest(z1i,2,1); ic
ic =
initialCondition with properties:
A: [2x2 double]
X0: [2x1 double]
C: [0.2957 5.2441]
Ts: 0
ic является initialCondition объект, инкапсулирующий свободный ответ sys, в форме state-space, к вектору начального состояния в 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 объект, содержащий значения входного и выходного сигналов.
Модели временных рядов, которые являются моделями, не содержащими измеренных входных данных, не могут быть оценены с помощью tfest. Использовать ar, arx, или armax для моделей временных рядов.
Для оценки частотной области 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) оценивает передаточную функцию вида + b2z − 2), в то время какtfest(data,2,2,'Ts',data.Ts) оценки a1z − 1 + b2z − 2). Здесь 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 - Линейная система, конфигурирующая начальную параметризацию sysidtf модель | линейная модель | структураЛинейная система, настраивающая начальную параметризацию 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 как скаляр.
Рассмотрим модель дискретного времени с двумя полюсами и тремя нулями:
− 31 + a1z − 1 + a2z − 2
Если модель имеет прямой проход, b0 является свободным параметром, значение которого оценивается вместе с остальными параметрами модели b1, b2, b3, a1 и a2. Если модель не имеет сквозного соединения, b0 фиксируется как ноль. Пример см. в разделе Оценка функции передачи дискретного времени с помощью канала.
sys - Идентифицированная передаточная функцияidtf модельИдентифицированная передаточная функция, возвращенная как idtf объект. Эта модель создается с использованием указанных заказов модели, задержек и опций оценки.
Информация о результатах оценки и используемых опциях хранится в Report свойство модели. Report имеет следующие поля.
| Поле отчета | Описание | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводка состояния модели, указывающая, была ли модель создана путем построения или получена путем оценки. | ||||||||||||||||||
Method | Используется команда оценки. | ||||||||||||||||||
InitializeMethod | Алгоритм, используемый для инициализации числителя и знаменателя для оценки функций передачи непрерывного времени с использованием данных временной области, возвращаемых как одно из следующих значений:
Это поле особенно полезно для просмотра алгоритма, используемого при | ||||||||||||||||||
N4Weight | Матрицы взвешивания, используемые на этапе разложения сингулярного значения, когда
Это поле особенно полезно для просмотра матриц взвешивания, используемых при | ||||||||||||||||||
N4Horizon | Горизонты прогнозирования вперед и назад, используемые при | ||||||||||||||||||
InitialCondition | Обработка исходных условий при оценке модели, возвращаемых как одно из следующих значений:
Это поле особенно полезно для просмотра того, как обрабатывались начальные условия при | ||||||||||||||||||
Fit | Количественная оценка оценки, возвращенная как структура. Дополнительные сведения об этих показателях качества см. в разделе Метрики качества функции потери и модели. Структура имеет следующие поля:
| ||||||||||||||||||
Parameters | Оценочные значения параметров модели. | ||||||||||||||||||
OptionsUsed | Набор опций, используемый для оценки. Если пользовательские параметры не были настроены, это набор параметров по умолчанию. Посмотрите | ||||||||||||||||||
RandState | Состояние потока случайных чисел в начале оценки. Пустое, | ||||||||||||||||||
DataUsed | Атрибуты данных, используемых для оценки, возвращаемые в виде структуры со следующими полями:
| ||||||||||||||||||
Termination | Условия завершения итеративного поиска, используемые для минимизации ошибок прогнозирования, возвращены в виде структуры со следующими полями:
Для методов оценки, которые не требуют оптимизации числового поиска, |
Дополнительные сведения об использовании Report, см. Отчет по оценке.
ic - Исходные условияinitialCondition object | массив объектов initialCondition ценностиПредполагаемые начальные условия, возвращенные в виде initialCondition объект или массив объектов initialCondition значения.
Для набора данных одного эксперимента: ic представляет в форме state-space свободный отклик модели передаточной функции (матрицы 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 Variable (IV).
Подход State-Variable Filters (SVF) и подход Generalized Poisson Moment Functions (GPMF) к оценке параметров непрерывного времени используют предварительно отфильтрованные данные [1]
. [2]Константа 1λ в [1] и [2] соответствует опции инициализации (InitializeOptions) поле FilterTimeConstant. IV является упрощенным усовершенствованным методом IV и называется SRIVC в [3]. Этот метод имеет предварительный фильтр, являющийся знаменателем текущей модели, инициализированной с помощью SVF. Этот предварительный фильтр итерируется до MaxIterations раз, пока изменение модели не будет меньше Tolerance. MaxIterations и Tolerance - это параметры, которые можно указать с помощью InitializeOptions структура. 'n4sid' опция инициализации оценивает дискретно-временную модель, используя алгоритм оценки N4SID, которую она преобразует в непрерывное время, используя d2c.
Использовать tfestOptions для создания набора опций, используемого для оценки передаточной функции.
Инициализированные параметры обновляются с помощью нелинейного метода поиска методом наименьших квадратов, заданного параметром SearchMethod вариант оценки. Целью метода поиска является минимизация взвешенной нормы ошибки прогнозирования.
Для дискретных временных данных, tfest использует тот же алгоритм, что и oe для определения числительных и знаменательных полиномиальных коэффициентов. В этом алгоритме инициализация выполняется с использованием arx, за которыми следуют нелинейные обновления на основе поиска наименьших квадратов, чтобы минимизировать взвешенную норму ошибки прогнозирования.
Алгоритм оценки выполняет следующие задачи:
Выполните билинейное отображение для преобразования области (частотной сетки) передаточной функции. Для моделей непрерывного времени воображаемая ось преобразуется в единичный диск. Для дискретно-временных моделей исходный диск блока домена преобразуется в другой диск блока.
Выполните итерации S-K [4] для решения нелинейной задачи наименьших квадратов. Рассмотрим систему с одним выходом с множеством входов. Нелинейная задача наименьших квадратов заключается в минимизации следующей функции потерь:
ui (startk)) | 2
Здесь W - это частотно-зависимый вес, который вы указываете. D - знаменатель модели передаточной функции, которая должна быть оценена, а Ni - числитель, соответствующий i-му входу. y и u - измеренные выходные и входные данные соответственно. nf и nu - число частот и входов, а w - частота. Перестановка терминов дает
ui (startk)) | 2
Для выполнения итераций S-K алгоритм итеративно решает
startk) ui (startk)) | 2
Здесь m - текущая итерация, а Dm-1 (λ) - ответ знаменателя, идентифицированный на предыдущей итерации. Теперь каждый шаг итерации является линейной задачей наименьших квадратов, где идентифицированные параметры захватывают отклики Dm (λ) и Ni, m (λ) для i = 1,2,... nu. Итерация инициализируется путем выбора D0 (λ) = 1.
Первая итерация алгоритма идентифицирует D1 (λ). Полиномы D1 (λ) и Ni,1 (λ) выражены в мономиальной основе.
Вторая и последующие итерации выражают многочлены Dm (λ) и Ni, m (λ) в терминах ортогональных рациональных базисных функций на единичном диске. Эти базовые функции имеют вид
m − 1) * q (λ) q (λ) − λ r, m − 1
Здесь λ j, m-1 - это j-й полюс, который идентифицирован на предыдущем шаге m-1 итерации. λ j, m-1 * является комплексным сопряжением λ j, m-1, а q является переменной частотной области на единичном диске.
Алгоритм работает не более 20 итераций. Итерации завершаются рано, если относительное изменение значения функции потерь меньше 0,001 в последних трех итерациях.
Если задать границы для коэффициентов передаточной функции, эти границы соответствуют аффинным ограничениям для идентифицированных параметров. Если у вас есть только ограничения равенства (фиксированные коэффициенты передаточной функции), соответствующая задача ограничения равенства наименьших квадратов решается алгебраически. Для этого программа вычисляет ортогональный базис для нулевого пространства матрицы ограничений равенства, а затем решает задачу наименьших квадратов в этом нулевом пространстве. Если на коэффициентах передаточной функции имеются верхние или нижние границы, соответствующая задача ограничения неравенства наименьших квадратов решается с помощью методов внутренней точки.
Выполнять линейные уточнения - итерации S-K, даже когда они сходятся, не всегда дают локально оптимальное решение. Чтобы найти критическую точку задачи оптимизации, которая может дать локально оптимальное решение, выполняется второй набор итераций. Критическими точками являются решения для набора нелинейных уравнений. Алгоритм ищет критическую точку, последовательно создавая линейное приближение к нелинейным уравнениям и решая результирующие линейные уравнения в смысле наименьших квадратов. Далее следуют уравнения.
Уравнение для параметра j-го знаменателя:
(startk) −∑i=1nuNi,m (startk) ui (startk))}
Уравнение для j-го числительного параметра, соответствующего входу 1:
−∑i=1nuNi,m (startk) ui (startk))}
Первая итерация начинается с наилучшего решения, найденного для числителей Ni и знаменателя D параметров во время S-K итераций. В отличие от S-K итераций, базисные функции Bj (λ) не изменяются при каждой итерации; итерации выполняются с помощью базисных функций, которые дают наилучшее решение в итерациях S-K. Как и прежде, алгоритм работает максимум 20 итераций. Итерации завершаются рано, если относительное изменение значения функции потерь меньше 0,001 в последних трех итерациях.
Если задать границы коэффициентов передаточной функции, эти границы включаются в необходимые условия оптимальности с использованием обобщенных множителей Лагранжа. Результирующие линейные задачи наименьших квадратов решаются с использованием тех же методов, что и на этапе S-K итераций.
Возврат параметров передаточной функции, соответствующих оптимальному решению - шаги итерации S-K и линейной уточнения не гарантируют улучшения значения функции потерь. Алгоритм отслеживает наилучшее значение параметра, наблюдаемое во время этих шагов, и возвращает эти значения.
Инвертируйте билинейное отображение, выполненное на шаге 1.
Выполните итеративное уточнение параметров передаточной функции с помощью нелинейного метода поиска методом наименьших квадратов, указанного в SearchMethod вариант оценки. Этот шаг выполняется в следующих ситуациях:
При указании EnforceStability вариант оценки как true (запрашивается стабильность), и результатом шага 5 этого алгоритма является нестабильная модель. Нестабильные полюса отражаются внутри границы устойчивости, и полученные параметры итеративно уточняются. Сведения о параметрах оценки см. в разделе tfestOptions.
При добавлении штрафа за регуляризацию к функции потерь с помощью Regularization вариант оценки. Пример о регуляризации см. в разделе Регуляризованная идентификация динамических систем.
Модель непрерывного времени оценивается с использованием данных дискретного времени (см. Оценка функции передачи дискретного времени с использованием данных дискретного времени частотной области).
Данные ввода-вывода в частотной области используются для идентификации модели с несколькими входами.
Если для оценки модели непрерывного времени с использованием данных частотной области непрерывного времени используется алгоритм оценки R2016a или более ранней версии (см. tfest Estimation Algorithm Update), то для данных непрерывного времени и фиксированных задержек для оценки модели используется алгоритм ошибки вывода. Для непрерывных временных данных и свободных задержек используется алгоритм оценки состояния-пространства. В этом алгоритме коэффициенты модели инициализируются с использованием метода оценки N4SID. За этой инициализацией следуют нелинейные обновления на основе поиска наименьших квадратов, чтобы минимизировать взвешенную норму ошибки прогнозирования.
Алгоритм оценки тот же, что и для оценки передаточной функции непрерывного времени с использованием данных частотной области непрерывного времени, за исключением использования данных дискретного времени.
Если используется алгоритм оценки из R2016a или более ранних версий (см. tfest Estimation Algorithm Update), алгоритм аналогичен алгоритму оценки дискретно-временной передаточной функции с использованием данных временной области.
Примечание
Программное обеспечение не поддерживает оценку функции передачи дискретного времени с использованием данных частотной области непрерывного времени.
tfest команда сначала оценивает дискретную временную модель на основе дискретных временных данных. Затем расчетная модель преобразуется в модель непрерывного времени с использованием d2c команда. Частотная характеристика результирующей модели непрерывного времени затем вычисляется по частотной сетке данных оценки. Модель с непрерывным временем желаемой (заданной пользователем) структуры затем подгоняется к этой частотной характеристике. Алгоритм оценки для использования данных частотно-ответной реакции для получения модели непрерывного времени аналогичен алгоритму оценки функции непрерывного временного переноса с использованием данных непрерывного времени.
Если используется алгоритм оценки из R2016a или более ранних версий (см. tfest Estimation Algorithm Update), алгоритм оценки состояния-пространства используется для оценки моделей непрерывного времени по данным дискретного времени. В этом алгоритме коэффициенты модели инициализируются с использованием метода оценки N4SID. За этой инициализацией следуют нелинейные обновления на основе поиска наименьших квадратов, чтобы минимизировать взвешенную норму ошибки прогнозирования.
Когда значения задержки указаны как NaN, они оцениваются отдельно от числителя модели и коэффициентов знаменателя, используя delayest. Определенные таким образом значения задержки обрабатываются как фиксированные значения во время итеративного обновления модели с использованием нелинейного метода поиска наименьших квадратов. Таким образом, значения задержки не обновляются итеративно.
Для начальной модели: init_sys, с:
init_sys.Structure.IODelay.Value указано как конечные значения
init_sys.Structure.IODelay.Free указано как true
исходные значения задержки остаются неизменными.
Оценка задержек часто представляет собой сложную проблему. Оптимальная практика заключается в оценке наличия и ценности задержки. Для этого используйте физическое понимание моделируемого процесса и такие функции, как arxstruc, delayest, и impulseest. Пример определения задержки ввода см. в разделе Выбор структуры модели: определение порядка модели и задержки ввода.
tfest Обновление алгоритма оценкиНачиная с R2016b, используется новый алгоритм для выполнения оценки передаточной функции из данных частотной области. Вы, вероятно, увидите более быстрые и точные результаты с новым алгоритмом, особенно для данных с динамикой в большом диапазоне частот и амплитуд. Однако результаты оценки могут не совпадать с результатами предыдущих версий. Для выполнения оценки по предыдущему алгоритму оценки добавить '-R2016a' в синтаксис.
Например, предположим, что вы оцениваете модель передаточной функции с помощью np полюса с использованием данных частотной области data.
sys = tfest(data,np)
Для использования предыдущего алгоритма оценки используйте следующий синтаксис.
sys = tfest(data,np,'-R2016a')[1] Garnier, H., М. Менслер и А. Ричард. «Непрерывная идентификация модели на основе выборочных данных: проблемы реализации и оценка эффективности». Международный журнал контроля 76, № 13 (январь 2003 года): 1337-57. https://doi.org/10.1080/0020717031000149636.
[2] Люнг, Леннарт. «Эксперименты с идентификацией непрерывных моделей времени». Труды ИФАК Тома 42, № 10 (2009): 1175-80. https://doi.org/10.3182/20090706-3-FR-2004.00195.
[3] Янг, Питер и Энтони Джейкман. «Усовершенствованные методы инструментальных переменных рекурсивного анализа временных рядов, расширения III.» Международный журнал контроля 31, № 4 (апрель 1980 года): 741-64. https://doi.org/10.1080/00207178008961080.
[4] Дрмач, З., С. Гугерцин и К. Битти. «Квадратурный векторный фитинг для дискретизированной аппроксимации H2». SIAM Journal on Scientific Computing 37, No. 2 (январь 2015): A625-52. https://doi.org/10.1137/140961511.
[5] Оздемир, Ахмет Арда и Суат Гумуссой. «Оценка передаточной функции в панели инструментов идентификации системы с помощью векторного фитинга». IFAC-PapersOnLine 50, № 1 (июль 2017): 6232-37. https://doi.org/10.1016/j.ifacol.2017.08.1026.
Поддержка параллельных вычислений доступна для оценки с использованием lsqnonlin метод поиска (требуется 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.