Оценка моделей передаточной функции для конвертера повышения

В этом примере показано, как оценить передаточную функцию из данных о частотной характеристике. Вы используете 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 командой и для этого примера являются выходные параметры DutyCycle и Voltage Measurement блоки.

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.