Оценка моделей частотной характеристики с шумом с помощью Signal Processing Toolbox

Откройте Simulink® и укажите, какой фрагмент модели необходимо линеаризировать:

load_system('magball')
io(1) = linio('magball/Desired Height',1);
io(2) = linio('magball/Magnetic Ball Plant',1,'output');

Создайте случайный входной сигнал для симуляции:

in = frest.Random('Ts',0.001,'NumSamples',1e4);

Линеаризация модели в установившейся рабочей точке:

op = findop('magball',operspec('magball'),...
            findopOptions('DisplayReport','off'));
sys = linearize('magball',io,op);

Симулируйте модель, чтобы получить выход в выходной точке линеаризации:

[sysest,simout] = frestimate('magball',io,in,op);

Оцените модель частотной характеристики с помощью Signal Processing Toolbox™ программного обеспечения, которое включает в себя оконцевание и усреднение:

input = generateTimeseries(in);
output = detrend(simout{1}.Data,'constant');
[Txy,F] = tfestimate(input.Data(:),...
          output,hanning(4000),[],4000,1/in.Ts);    
systfest = frd(Txy,2*pi*F);

Сравните результаты аналитической линеаризации и tfestimate(Набор Signal Processing Toolbox):

ax = axes;
h = bodeplot(ax,sys,'b',systfest,'g',systfest.Frequency);
setoptions(h,'Xlim',[10,1000],'PhaseVisible','off')
legend(ax,'Linear model using LINEARIZE','Frequency response using Signal Processing Toolbox',...
			'Location','SouthWest')

В этом случае команда Signal Processing Toolbox tfestimate (Signal Processing Toolbox) дает более точную оценку, чем frestimate из-за оконности и усреднения.