主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

估计 Boost 转换器的传递函数模型

此示例显示如何根据频率响应数据估计传递函数。您可以使用 Simulink® Control Design™ 从 Simulink 模型收集频率响应数据,并使用 tfest 命令从测量数据中估计传递函数。要使用先前保存的频率响应数据运行示例,请从估计传递函数部分开始。

升压转换器

打开 Simulink 模型。

mdl = 'iddemo_boost_converter';
open_system(mdl);

该模型是一个升压转换器电路,通过控制源电压的斩波或切换将直流电压转换为另一个直流电压(通常是更高的电压)。在该模型中,由 PWM 信号驱动的 IGBT 用于开关。

对于此示例,我们感兴趣的是从 PWM 占空比设定点到负载电压 Uout 的传递函数。

收集频率响应数据

我们使用 frestimate 命令以不同频率的正弦波扰动占空比设定点并记录产生的负载电压。由此我们发现系统如何修改注入正弦波的幅值和相位,从而为我们提供频率响应上的离散点。

使用 frestimate 需要两个初步步骤

  • 指定频率响应输入和输出点

  • 定义在输入点注入的正弦波

频率响应输入和输出点是使用 linio 命令创建的,在这个例子中,它们是 DutyCycleVoltage 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)

波特响应显示系统增益为 56db,在 2500 rad/s 左右有一些小谐振,高频滚降约为 20 db/decade,这与我们对该电路的预期相符。

frest.simView 命令允许我们在一个图形界面中检查显示注入信号、测量输出和频率响应的 frestimate 过程。

frest.simView(simlog,in,sysData);

该图显示了对注入正弦波的模型响应以及模型响应的 FFT。请注意,注入的正弦波会产生具有主频和有限谐波的信号,表明线性模型和成功的频率响应数据收集。

估计传递函数

在上一步中我们收集了频率响应数据。该数据将系统描述为离散频率点,现在我们为数据拟合一个传递函数。

我们使用 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)