Этот пример показывает, как оценить передаточную функцию от данных о частотной характеристике. Вы используете Simulink® Control Design™, чтобы собрать данные о частотной характеристике из модели Simulink и команды tfest
, чтобы оценить передаточную функцию от результатов измерений. Чтобы запустить пример с ранее сохраненными данными о частотной характеристике начинают с раздела Estimating a Transfer Function.
Пример требует Simulink Control Design™ и Степени Simscape Systems™.
Откройте модель Simulink.
mdl = 'iddemo_boost_converter';
open_system(mdl);
Модель имеет схему Конвертера Повышения, которая преобразовывает напряжение постоянного тока в другое напряжение постоянного тока (обычно более высокое напряжение) управляемым прерыванием или переключением исходного напряжения. В этой модели IGBT, управляемый сигналом PWM, используется для переключения.
Для этого примера мы интересуемся передаточной функцией от заданного значения рабочего цикла PWM до напряжения загрузки, Uout.
Мы используем команду frestimate
, чтобы встревожить заданное значение рабочего цикла с синусоидами различных частот и регистрировать получившееся напряжение загрузки. От них мы находим, как система изменяет значение и фазу введенных синусоид, дающих нам дискретные точки на частотной характеристике.
Используя frestimate
требует двух предварительных шагов
Определение точек ввода и вывода частотной характеристики
Определение синусоид, чтобы ввести в точке ввода
Точки ввода и вывода частотной характеристики создаются с помощью команды linio
, и для этого примера выходные параметры блоков Voltage Measurement
и DutyCycle
.
ios = [... linio([mdl,'/DutyCycle'],1,'input'); ... linio([mdl,'/PS-Simulink Converter'],1,'output')];
Мы используем команду frest.Sinestream
, чтобы задать синусоиды, чтобы ввести в точке ввода. Мы интересуемся частотным диапазоном 200 к 20k rad/s и хотим встревожить рабочий цикл 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 дБ, некоторый незначительный резонанс приблизительно 2 500 рад/с и высокочастотный список прочь приблизительно 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)
Для получения дополнительной информации об идентификации динамических систем с System Identification Toolbox посещают страницу информации о продукте System Identification Toolbox.