主要内容

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

此示例显示如何从频率响应数据估计传递函数。您可以使用Simulink®控制设计™ 从Simulink模型和金宝apptfest命令从测量数据估计传递函数。要使用先前保存的频率响应数据运行示例,请从传递函数的估计部分。

提高转换器

打开Simulin金宝appk模型。

mdl=“iddemo_boost_converter”; 开放式系统(mdl);

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

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

收集频响数据

我们使用弗雷斯米特命令用不同频率的正弦信号扰动占空比设定点,并记录由此产生的负载电压。从这些我们发现系统如何修改幅度和相位的注入正弦波给我们离散点的频率响应。

使用弗雷斯米特需要两个初步步骤

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

  • 定义要在输入点注入的正弦曲线

频率响应输入和输出点是使用linio命令,本例中为DutyCycle电压测量块。

ios=[...(mdl linio (,' / DutyCycle '), 1“输入”);...(mdl linio (,“/ PS金宝app-Simulink转换器”), 1“输出”));

我们使用弗雷斯特·西恩斯特雷姆命令定义要在输入点注入的正弦波。我们感兴趣的频率范围是200到20k rad/s,并希望将占空比扰0.03。

f=日志空间(日志10(200)、日志10(20000)、日志10);in=frest.Sinestream(“频率”f“振幅”,0.03);

使用该正弦流信号模拟模型所需的模拟时间由getSimulationTime命令和我们所知道的模型使用的仿真结束时间,我们可以得到一个想法,多长时间的正弦流仿真将接管简单运行模型。

getSimulationTime / 0.02
ans = 15.5933

我们使用定义的输入和正弦流弗雷斯米特计算频率响应上的离散点。

[sysData,simlog]=frestimate(mdl,ios,in);bopt=bodeoptions;bopt.Grid=“开”;bopt。PhaseMatching =“开”; 图,bode(系统数据,“*r”,bopt)

Bode响应显示了一个系统,增益为56db,一些轻微共振约为2500rad/s,高频衰减约为20dB/decade,符合我们对该电路的预期。

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

simView(simlog、in、sysData);

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

传递函数的估计

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

我们使用Simulink Control Design生成频率响应数据,如果没有安装Simul金宝appink Control Design,请使用以下命令加载保存的频率响应数据

负载iddemo\u boostconverter\u数据

通过对频率响应数据的分析,我们认为该系统可以用二阶系统来描述。

sysA=tfest(sysData,2)图,bode(sysData,的r *,sysA,bopt)
sysA=从输入“DutyCycle”到输出“PS Simulink Converter金宝app”:-4.456e06 s+6.175e09--------------------s^2+6995 s+9.834e06连续时间识别传递函数。参数化:极数:2个零数:1个自由系数:4使用“tfdata”、“getpvec”、“getcov”用于参数及其不确定性。状态:使用频率响应数据“sysData”上的TFEST进行估计。与估计数据的拟合度:98.04%FPE:281.4,MSE:120.6

估计的传递函数在提供的频率范围内是准确的。

bdclose (mdl)