Этот пример показывает, как оценить передаточную функцию из данных частотной характеристики. Вы используете Simulink ® Control Design™, чтобы собрать данные частотной характеристики из модели Simulink и tfest
команда для оценки передаточной функции из измеренных данных. Чтобы запустить пример с ранее сохраненными данными частотной характеристики, начните с раздела Оценка передаточной функции.
Откройте модель Simulink.
mdl = 'iddemo_boost_converter';
open_system(mdl);
Модель является схемой Boost Converter, которая преобразует напряжение постоянного тока в другое напряжение постоянного тока (обычно более высокое напряжение) путем управляемого измельчения или переключения напряжения источника. В этой модели для переключения используется IGBT, управляемый PWM-сигналом.
В данном примере нас интересует передаточная функция от установленной точки коэффициента заполнения PWM до напряжения нагрузки Uout.
Используем frestimate
команда, чтобы возмущать уставку коэффициента заполнения синусоидами разных частот и регистрировать полученное напряжение нагрузки. Из этого мы находим, как система изменяет величину и фазу инъекционных синусоид, давая нам дискретные точки на частотной характеристике.
Использование frestimate
требуется два предварительных шага
Определение входной и выходных точек частотной характеристики
Определение синусоидов для инъекции в вход точке
Входная и выходные точки частотной характеристики создаются с помощью linio
команда и для этого примера являются выходами DutyCycle
и Voltage Measurement
блоки.
ios = [... linio([mdl,'/DutyCycle'],1,'input'); ... linio([mdl,'/PS-Simulink Converter'],1,'output')];
Используем frest.Sinestream
команда, чтобы задать синусоиды, которые будут вводиться в точке входа. Мы заинтересованы в частоте области значений 200 до 20 тыс. рад/с, и хотим возмущать коэффициент заполнения по 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 дБ/десятилетие, соответствующим тому, что мы ожидаем для этой схемы.
The frest.simView
команда позволяет нам просмотреть свежий процесс, показывающий инъекционный сигнал, измеренный выход и частотную характеристику в одном графическом интерфейсе.
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)