Откройте модель 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(Панель инструментов обработки сигналов):
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')

В этом случае используется команда «Панель инструментов обработки сигналов» tfestimate(Панель инструментов обработки сигналов) дает более точную оценку, чем frestimate за счет оконной обработки и усреднения.