估计 Boost 转换器的传递函数模型
此示例显示如何根据频率响应数据估计传递函数。您可以使用 Simulink® Control Design™ 从 Simulink 模型收集频率响应数据,并使用 tfest
命令从测量数据中估计传递函数。要使用先前保存的频率响应数据运行示例,请从估计传递函数部分开始。
升压转换器
打开 Simulink 模型。
mdl = 'iddemo_boost_converter';
open_system(mdl);
该模型是一个升压转换器电路,通过控制源电压的斩波或切换将直流电压转换为另一个直流电压(通常是更高的电压)。在该模型中,由 PWM 信号驱动的 IGBT 用于开关。
对于此示例,我们感兴趣的是从 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)
波特响应显示系统增益为 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)