exponenta event banner

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

В этом примере показано, как оценить передаточную функцию по данным частотной характеристики. Вы используете Simulink ® Control Design™ для сбора данных частотной характеристики из модели Simulink и tfest для оценки передаточной функции из измеренных данных. Чтобы запустить пример с ранее сохраненными данными частотной характеристики, начните с раздела Оценка передаточной функции.

Повышающий преобразователь

Откройте модель Simulink.

mdl = 'iddemo_boost_converter';
open_system(mdl);

Модель представляет собой схему Boost Converter, которая преобразует напряжение постоянного тока в другое напряжение постоянного тока (как правило, более высокое напряжение) путем управляемого измельчения или переключения напряжения источника. В этой модели для переключения используется IGBT, управляемый сигналом ШИМ.

В этом примере мы заинтересованы в функции передачи от уставки рабочего цикла ШИМ к напряжению нагрузки Uout.

Сбор данных частотного отклика

Мы используем frestimate команда на возмущение уставки рабочего цикла синусоидами различных частот и протоколирование результирующего напряжения нагрузки. Из них мы находим, как система изменяет величину и фазу введенной синусоиды, давая нам дискретные точки на частотной характеристике.

Используя frestimate требует двух предварительных шагов

  • Указание входных и выходных точек частотной характеристики

  • Определение синусоид для инжекции в точке ввода

Входные и выходные точки частотной характеристики создаются с помощью linio и для этого примера являются выходами DutyCycle и Voltage Measurement блоки.

ios = [...
    linio([mdl,'/DutyCycle'],1,'input'); ...
    linio([mdl,'/PS-Simulink Converter'],1,'output')];

Мы используем frest.Sinestream для определения вводимых синусоид в точке ввода. Мы заинтересованы в диапазоне частот от 200 до 20 000 рад/с и хотим возмущать рабочий цикл по 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 дБ/декада, совпадающим с тем, что мы ожидаем для этой схемы.

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)