主要内容

基于模拟技术的频响估计

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

打开模型

打开发动机定时的S金宝appimulink模型。

mdl =“scdengine”;open_system (mdl)

由于线性化路径中的触发压缩子系统,该模型从油门角到发动机转速的逐块线性化分析得到了零线性化结果。

IO = getlinio(mdl);Linsys =线性化(mdl,io)
linsys = D = ThrottleAngl enginspeed 0静态增益。

用正弦输入信号估计频率响应

sinstream输入信号是最可靠的输入信号,用于估计一个精确的频率响应的Simulink模型使用金宝appfrestimate函数。一个正流信号是由相互附加的单个正弦信号组成的。的frestimate函数模拟正流输入信号中每个频率的模型,如使用频率参数指定相应的时段数NumPeriods参数。模拟结束后,frestimate使用输出信号计算每个频率的响应。frestimate仅使用该输入频率在系统达到稳定状态后的周期,也就是说,在使用SettlingPeriods参数。

创建一个具有50个对数间隔的频率在0.1到10 rad/s之间的正弦流信号。

In =最先。Sinestream (“频率”logspace (1, 1, 50),“振幅”1 e - 3)
频率:[0.1 0.10985 0.12068 0.13257…]] (rad/s)振幅:0.001 SamplesPerPeriod: 40 NumPeriods: 4 RampPeriods: 0 FreqUnits (rad/s,Hz): rad/s SettlingPeriods: 1 applyfilteringestimate (on/off): on SimulationOrder (Sequential/OneAtATime): Sequential

默认情况下,正弦输入信号中的每个频率模拟四个周期,即:NumPeriods4适用于所有频率。并且,第一个周期的结束被指定为系统达到稳态的位置,即:SettlingPeriods1适用于所有频率。因此,frestimate使用输出信号的最后三个周期。

使用此正弦输入信号,执行频率响应估计使用frestimate函数,并绘制得到的频响数据。

[sys,simout] = fretimate (mdl,io,in);波德(系统)

您可以使用“模拟结果查看器”检查估计结果。查看器显示所选频率的时域和频域模拟结果,以及可以在频率之间交互切换的汇总波德图。

frest.simView (simout sys);

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

  • 没有达到稳定状态

  • 非线性激励

  • 陷入不稳定

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

在估计来自Simulink模型的频率响应数据时可以使用的另一个输入信号是频率啁啾。金宝app频率啁啾与正弦流的不同之处在于频率是瞬时变化的。

你可以使用chirp输入信号来获得更快的频率响应估计。然而,得到的频率响应可能比使用正流输入得到的频率响应更不可靠,因为每个频率模拟的时间不够长,不足以将系统驱动到该频率的稳态。

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

In_chirp = frst。唧唧声(“FreqRange”0.1 [10],“振幅”1 e - 3,...“SweepMethod”“对数”“NumSamples”, 3000);

使用啁啾信号进行频率响应估计。

Sys_chirp = fretimate (mdl,io,in_chirp);

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

波德(sys、sys_chirp“r”

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

在估计来自Simulink模型的频响数据时可以使用的另一个输入信号是伪随机二进制序列(PRBS)。金宝appPRBS是一种周期性的、确定性的信号,具有类似白噪声的特性,在两个值之间移动。

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

创建一个顺序为的PRBS信号12信号中的一个周期。使用单个周期产生非周期PRBS。生成的PRBS的长度为4095(2^12 - 1)。为了获得准确的频响估计,PRBS的长度必须足够大。为确保系统被适当激发,指定PRBS的摄动振幅为0.01

in_PRBS = frst。伪随机位序列(“秩序”,12,“NumPeriods”, 1“振幅”1飞行,“t”, 0.1,“UseWindow”“关闭”);

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

sys_PRBS = fresulate (mdl,io,in_PRBS);

将PRBS和正流输入信号一起绘制得到的结果。

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

关闭模型。

bdclose (“scdengine”

另请参阅

相关的话题