主要内容

基于仿真技术的频率响应估计

此示例显示如何在分析逐块线性化时获取Simulink模型的频率响应,由于线性化路径中的基于事件的动态,由于基于事件的动金宝app态而提供和准确的答案。这种系统的示例是使用脉冲宽度调制(PWM)输入信号的触发子系统或模型的模型。

打开模型

打开Simulin金宝appk模型进行发动机正时。

mdl ='scdengine';open_system (mdl)

由于线性化路径中的触发压缩子系统,该模型从节气门角度到发动机速度的分析块线性化给出了线性化结果为零。

IO = GetLinio(MDL);Linsys =线性化(MDL,IO)
linsys = d = throttleangl enginespeed 0静态增益。

使用SINESTREAM输入信号估计频率响应

SINESTREAM输入信号是最可靠的输入信号,用于估计SIMULINK模型的准确频率响应金宝appfr函数。一个正弦流信号是由相互附加的单个正弦信号组成的。的fr功能模拟了SINESTEAM输入信号中的每个频率的模型,如指定使用频率参数,以获取相应的周期数量NumPeriods参数。模拟后,fr使用输出信号计算每个频率的响应。fr仅使用系统达到该输入频率的稳定状态后的周期,即使用指定的若干稳定周期后settlingperiods.参数。

创建具有50个对数间隔的SINESTREAM信号,在0.1和10 rad / s之间的50个对数间隔的不同频率。

在= rest.sinestream(“频率”logspace (1, 1, 50),“振幅”,1E-3)
SINESTEAM输入信号:频率:[0.1 0.10985 0.12068 0.12013257 ...](rad / s)幅度:0.001样品普利期:40 numperiods:4 rampperiods:0频率(rad / s,hz):rad / s settlingperiods:1 applyfilteringinfrestimate(开/关):在仿真订单(顺序/ oneEataTime):顺序

缺省情况下,SINestream输入信号中的每个频率都模拟了4个时段,即NumPeriods所有频率为4,第一个周期的结束指定为系统达到稳态的位置,即,settlingperiods.所有频率为1。因此,fr使用输出信号的最后3个周期。

使用此正弦流输入信号,执行频率响应估计fr功能,并绘制产生的频率响应数据。

[sys,simout] =嫉妒(mdl,io,in);BODE(SYS)

您可以使用仿真结果查看器检查估计结果。观看者显示所选频率的时域和频域模拟结果,以及摘要Bode绘图,您可以在其中交互地切换频率。

rest.simview(Simout,In,Sys);

您可以使用查看器作为工具来诊断影响频率响应估计准确性的问题,例如:

  • 未达到稳定状态

  • 励磁的非线性

  • 遇到不稳定

使用Chirp输入信号估算频率响应

当从Simulink模型中估计频率响应数据时,可以使用的另一个输入信号是频率啁啾。金宝app频率啁啾不同于正弦流,因为频率是瞬时变化的。

您可以使用Chirp输入信号来获得更快的频率响应估计。然而,使用Chirp输入信号获得的频率估计结果可以不如使用SINESTEAR输入获得的估计结果,因为每个频率不足以使系统驱动到该频率的稳态。

创建一个啁啾信号,扫频0.1和10 rad/s之间的对数。

in_chirp =弗列斯特。唧唧声('freqrange',[0.1 10],“振幅”,1e-3,......'扫掠'''logarithmic''numsamples', 3000);

使用Chirp信号,执行频率响应估计。

io, sys_chirp = frestimate (mdl in_chirp);

将正弦流和啁啾输入信号的结果绘制在一起。

波德(sys、sys_chirp'r'

利用PRBS输入信号估计频率响应

当估计来自Simulink模型的频率响应数据时,您可以使用的另一输入信号是伪随机二进制序列(PRB)。金宝appPRB是一个周期性的确定性信号,具有白色噪声样属性,其在两个值之间移动。

您可以使用PRBS输入信号来获得比啁啾信号更高的频率分辨率的更快的频率响应估计。

创建PRBS信号的顺序为12.信号中有一个周期。使用单个周期产生非周期PRBS。产生的PRBS的长度为4095(2^12 - 1)。为了获得准确的频响估计,PRBS的长度需要足够大。为确保系统处于适当的激励状态,将PRBS的扰动幅值设为0.01

in_prbs = frest.prbs(“秩序”,12,'numperiods', 1“振幅”,1e-2,“t”,0.1);

使用PRBS信号,执行频率响应估计。

sys_prbs = frestimation(mdl,io,in_prbs);

绘制使用PRB和SINESTREAM输入信号的结果一起获得。

波德(sys_PRBS sys,'r',{0.1 10})

关闭模型。

bdclose('scdengine'

另请参阅

相关的话题