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

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