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

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