fitmagfrd

Подгонка данных величины частотной характеристики с помощью модели пространства состояний минимальной фазы с использованием проекта величины Чебышева

Синтаксис

B = fitmagfrd(A,N)
B = fitmagfrd(A,N,RD)
B = fitmagfrd(A,N,RD,WT)
B = fitmagfrd(A,N,RD,WT,C)

Описание

B = fitmagfrd(A,N) является стабильной, минимально-фазовой ss объект с размерностью состояния N, величина частотной характеристики которого тесно совпадает с данными величины в A. A представляет собой frd 1 на 1 объект, и N является неотрицательным целым числом.

B = fitmagfrd(A,N,RD) увеличивает относительную степень B чтобы быть RD. RD должно быть неотрицательным целым числом, значение по умолчанию которого 0. Можно задать значение по умолчанию для RD путем установки RD в пустую матрицу.

B = fitmagfrd(A,N,RD,WT) использует величину WT для взвешивания критериев подгонки оптимизации. WT может быть double, ss или frd. Если WT является скаляром, затем используется для взвешивания всех записей критериев ошибки (A-B). Если WT является вектором, он должен быть того же размера, что и A, и каждый отдельный ввод WT действует как функция взвешивания на соответствующем элементе (A-B). Значение по умолчанию для WT равен 1, и вы можете задать его путем установки WT в пустую матрицу.

B = fitmagfrd(A,N,RD,WT,C) применяет дополнительные ограничения величины к B, заданный значениями C.LowerBound и C.UpperBound. Они могут быть пустыми double или frdC.Frequency равно A.Frequency). Если C.LowerBound непусто, тогда величина B ограничено лежать выше C.LowerBound. Никакая нижняя граница не применяется на частотах, где C.LowerBound равно -inf. Точно так же UpperBound поле может использоваться, чтобы задать верхнюю границу на величину B. Если C является double или frdC.Frequency равно A.Frequency), затем верхние и нижние ограничения, накладываемые на B берутся непосредственно из A как:

  • если C (w) = = -1, тогда примените abs (B (w)) < = abs (A (w))

  • если C (w) = = 1, тогда примените abs (B (w)) > = abs (A (w))

  • если C (w) = = 0, то никаких дополнительных ограничений

где w обозначает частоту.

Примеры

свернуть все

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

sys = tf([1 2 2],[1 2.5 1.5])*tf(1,[1 0.1]); 
sys = sys*tf([1 3.75 3.5],[1 2.5 13]); 
omega = logspace(-1,1); 
sysg = abs(frd(sys,omega)); 
bodemag(sysg,'r');

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

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

ord = 3; 
b1 = fitmagfrd(sysg,ord); 
b1g = frd(b1,omega); 
bodemag(sysg,'r',b1g,'k:');
legend('Data','3rd order fit');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Data, 3rd order fit.

Подгонка данных величины с помощью системы третьего порядка, ограниченной для лежания ниже и выше заданных данных.

C2.UpperBound = sysg;
C2.LowerBound = [];
b2 = fitmagfrd(sysg,ord,[],[],C2); 
b2g = frd(b2,omega); 
C3.UpperBound = [];
C3.LowerBound = sysg;
b3 = fitmagfrd(sysg,ord,[],[],C3); 
b3g = frd(b3,omega); 
bodemag(sysg,'r',b1g,'k:',b2g,'b-.',b3g,'m--') 
legend('Data','3rd order fit','3rd order fit, below data',...
       '3rd order fit, above data')

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Data, 3rd order fit, 3rd order fit, below data, 3rd order fit, above data.

Подгонка данных величины с системой второго порядка, ограниченной для лежания ниже и выше заданных данных.

ord = 2;
C2.UpperBound = sysg;
C2.LowerBound = [];
b2 = fitmagfrd(sysg,ord,[],sysg,C2);
b2g = frd(b2,omega);
C3.UpperBound = [];
C3.LowerBound = sysg;
b3 = fitmagfrd(sysg,ord,[],sysg,C3);
b3g = frd(b3,omega);
bgp = fitfrd(genphase(sysg),ord);
bgpg = frd(bgp,omega);
bodemag(sysg,'r',b1g,'k:',b2g,'b-.',b3g,'m--',bgpg,'r--')
legend('Data','3rd order fit','2d order fit, below data',...
       '2nd order fit, above data','bgpg')

Figure contains an axes. The axes contains 5 objects of type line. These objects represent Data, 3rd order fit, 2d order fit, below data, 2nd order fit, above data, bgpg.

Ограничения

Этот входной frd объект должен быть скаляром объектом 1 на 1 или строкой или вектором-столбцом.

Алгоритмы

fitmagfrd использует версию log-Chebyshev величины проекта, решая

   min f     subject to (at every frequency point in A):  
           |d|^2 /(1+ f/WT) < |n|^2/A^2 < |d|^2*(1 + f/WT) 

плюс дополнительные ограничения, накладываемые на C. n, d обозначает числитель и знаменатель, соответственно, и B = n/d. n и d иметь порядки (N-RD) и N, соответственно. Задача решается с помощью линейного программирования для фиксированных f and бисекция для минимизации f. Альтернативный аппроксимационный метод, который не может применить ограничения, заданные C, есть B = fitfrd(genphase(A),N,RD,WT).

Ссылки

Oppenheim, A.V., and R.W. Schaffer, Digital Signal Processing, Prentice Hall, New Jersey, 1975, p. 513.

Boyd, S. and Vandenberghe, L., Convex Optimization, Cambridge University Press, 2004.

См. также

Представлено до R2006a