В этом примере показано, как оценить передаточную функцию по данным частотной характеристики. Вы используете Simulink ® Control Design™ для сбора данных частотной характеристики из модели Simulink и tfest для оценки передаточной функции из измеренных данных. Чтобы запустить пример с ранее сохраненными данными частотной характеристики, начните с раздела Оценка передаточной функции.
Откройте модель Simulink.
mdl = 'iddemo_boost_converter';
open_system(mdl);

Модель представляет собой схему Boost Converter, которая преобразует напряжение постоянного тока в другое напряжение постоянного тока (как правило, более высокое напряжение) путем управляемого измельчения или переключения напряжения источника. В этой модели для переключения используется IGBT, управляемый сигналом ШИМ.
В этом примере мы заинтересованы в функции передачи от уставки рабочего цикла ШИМ к напряжению нагрузки Uout.
Мы используем frestimate команда на возмущение уставки рабочего цикла синусоидами различных частот и протоколирование результирующего напряжения нагрузки. Из них мы находим, как система изменяет величину и фазу введенной синусоиды, давая нам дискретные точки на частотной характеристике.
Используя frestimate требует двух предварительных шагов
Указание входных и выходных точек частотной характеристики
Определение синусоид для инжекции в точке ввода
Входные и выходные точки частотной характеристики создаются с помощью linio и для этого примера являются выходами DutyCycle и Voltage Measurement блоки.
ios = [... linio([mdl,'/DutyCycle'],1,'input'); ... linio([mdl,'/PS-Simulink Converter'],1,'output')];
Мы используем frest.Sinestream для определения вводимых синусоид в точке ввода. Мы заинтересованы в диапазоне частот от 200 до 20 000 рад/с и хотим возмущать рабочий цикл по 0,03.
f = logspace(log10(200),log10(20000),10); in = frest.Sinestream('Frequency',f,'Amplitude',0.03);
Время моделирования, необходимое для моделирования модели с помощью этого синусоидального сигнала, определяется с помощью getSimulationTime и, как мы знаем, время окончания моделирования, используемое моделью, мы можем получить представление о том, как долго симуляция синусоидального потока возьмет на себя простое выполнение модели.
getSimulationTime(in)/0.02
ans = 15.5933
Мы используем определенные входы и синусоидальный поток с frestimate вычисляют дискретные точки на частотной характеристике.
[sysData,simlog] = frestimate(mdl,ios,in); bopt = bodeoptions; bopt.Grid = 'on'; bopt.PhaseMatching = 'on'; figure, bode(sysData,'*r',bopt)


Отклик Боде показывает систему с усилением 56 дБ, некоторым незначительным резонансом около 2500 рад/с и высокочастотным откатом около 20 дБ/декада, совпадающим с тем, что мы ожидаем для этой схемы.
frest.simView команда позволяет проверить процесс frestimate, показывающий введенный сигнал, измеренный выходной сигнал и частотную характеристику в одном графическом интерфейсе.
frest.simView(simlog,in,sysData);

На рисунке показана реакция модели на инъецированные синусоиды и БПФ реакции модели. Обратите внимание, что введенные синусоиды приводят к сигналам с доминирующей частотой и ограниченными гармониками, указывающими на линейную модель и успешный сбор данных частотной характеристики.
На предыдущем этапе мы собрали данные частотной характеристики. Эти данные описывают систему как дискретные частотные точки, и теперь мы подгоняем передаточную функцию к данным.
Мы создали данные частотной характеристики с помощью Simulink Control Design, если Simulink Control Design не установлен, используйте следующую команду для загрузки сохраненных данных частотной характеристики.
load iddemo_boostconverter_data
Проверяя данные частотной характеристики, мы ожидаем, что система может быть описана системой второго порядка.
sysA = tfest(sysData,2)
figure, bode(sysData,'r*',sysA,bopt)
sysA = From input "DutyCycle" to output "PS-Simulink Converter": -4.456e06 s + 6.175e09 ----------------------- s^2 + 6995 s + 9.834e06 Continuous-time identified transfer function. Parameterization: Number of poles: 2 Number of zeros: 1 Number of free coefficients: 4 Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties. Status: Estimated using TFEST on frequency response data "sysData". Fit to estimation data: 98.04% FPE: 281.4, MSE: 120.6

Расчетная передаточная функция является точной в заданном диапазоне частот.
bdclose(mdl)