主要内容

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

这个例子展示了如何从频率响应数据估计传递函数。使用Simuli金宝appnk®Control Design™从Simulink模型中收集频率响应数据特遣部队命令从测量数据估计传递函数。要使用先前保存的频率响应数据运行示例,请从估计传递函数部分。

提高转换器

打开Simulin金宝appk模型。

mdl =“iddemo_boost_converter”;open_system (mdl);

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

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

收集频响数据

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

使用frestimate需要两个初步步骤

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

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

频率响应输入和输出点是使用linio命令的输出DutyCycle电压测量块。

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

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

f = logspace (log10 (200), log10 (20000), 10);在=弗列斯特。Sinestream (“频率”f“振幅”, 0.03);

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

getSimulationTime / 0.02
ans = 15.5933

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

[sysData, simlog] = frestimate (mdl, ios);bopt = bodeoptions;bopt。网格=“上”;bopt。PhaseMatching =“上”;波德图(sysData,“* r”bopt)

波德响应显示了一个增益为56db的系统,一些在2500 rad/s左右的小共振和大约20 db/decade的高频滚转,符合我们对这个电路的期望。

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

frest.simView (simlog sysData);

图中显示了模型对注入正弦波的响应以及模型响应的FFT。注意,注入正弦波的结果是具有主导频率和有限谐波的信号,这表明一个线性模型和成功的频率响应数据收集。

估计传递函数

在前面的步骤中,我们收集了频响数据。这些数据将系统描述为离散的频率点,现在我们对这些数据拟合一个传递函数。

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

负载iddemo_boostconverter_data

通过对频率响应数据的检验,我们期望系统可以用一个二阶系统来描述。

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

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

bdclose (mdl)