主要内容

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

这个例子展示了如何从频率响应数据估计传递函数。使用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 = [...linio([mdl,“/DutyCycle”],1,“输入”);...linio([mdl,“/PS 金宝appSimulink转换器”],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。网格=“上”;相位匹配=“上”;波德图(sysData,“* r”bopt)

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

弗雷斯特·西姆维尤命令允许我们在一个图形界面中检查显示注入信号、测量输出和频率响应的估计过程。

frest.simView (simlog sysData);

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

估计传递函数

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

我们使用Simulink Control Design生成频率响应数据,如果未安装Simuli金宝appnk 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)