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

这个例子演示了如何在线性化路径中基于事件的动态特性导致逐块线性化不能提供准确答案的情况下,获得Simulink模型的频金宝app率响应。这类系统的例子是带有触发子系统的模型或使用脉冲宽度调制(PWM)输入信号的模型。

打开模型

打开Simulin金宝appk模型进行引擎定时。

mdl =“scdengine”;open_system (mdl)

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

io = getlinio (mdl);io linsys =线性化(mdl)
linsys = D = ThrottleAngl引擎0静态增益。

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

Sinestream输入信号是最可靠的输入信号,可用来估计Simulink模型的准确频响金宝appfrestimate函数。正弦波信号是由相互附加的单个正弦信号组成的。的frestimate函数为sinestream输入信号中的每个频率模拟模型,具体使用频率参数,用于对应的周期数量,如使用NumPeriods参数。仿真结束后,frestimate使用输出信号计算每个频率的响应。frestimate仅使用系统达到该输入频率的稳定状态后的周期,也就是说,在使用SettlingPeriods参数。

创建一个sinestream信号,该信号具有50个对数间隔的不同频率,频率范围在0.1到10 rad/s之间。

在= frest.Sinestream (“频率”logspace (1, 1, 50),“振幅”1 e - 3)
输入信号:频率:[0.1 0.10985 0.12068 0.13257…][] (rad/s)振幅:0.001采样周期:40个数字周期:4个渐变周期:0频率单位(rad/s,Hz): rad/s调整周期:1个应用滤波(开/关):模拟顺序(顺序/一段时间):顺序

默认情况下,sinestream输入信号的每个频率模拟4个周期,即NumPeriods对于所有的频率都是4,第一个周期的终点指定为系统达到稳态的地方,即,SettlingPeriods所有频率都是1。因此,frestimate使用输出信号的最后3个周期。

使用该sinestream输入信号,执行频率响应估计frestimate函数,并绘制结果频响数据。

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

您可以使用模拟结果查看器查看估计结果。查看器显示所选频率的时域和频域仿真结果,以及一个可以交互切换频率的汇总bode图。

frest.simView (simout sys);

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

  • 未达到稳定状态

  • 励磁的非线性

  • 遇到不稳定

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

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

您可以使用chirp输入信号来获得更快的频率响应估计。然而,使用chirp输入信号得到的频率估计结果可能比使用sinestream输入得到的结果更不可靠,因为每个频率没有被模拟足够长的时间来驱动系统在该频率上达到稳定状态。

创建一个频率在0.1到10 rad/s之间的啁啾信号。

in_chirp = frest.Chirp (“FreqRange”0.1 [10],“振幅”1 e - 3,“SweepMethod”,“对数”,“NumSamples”,3000);

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

io, sys_chirp = frestimate (mdl in_chirp);

将sinestream和chirp输入信号的结果绘制在一起。

波德(sys、sys_chirp“r”)

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

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

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

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

in_PRBS = frest.PRBS (“秩序”12“NumPeriods”,1“振幅”1飞行,“t”,0.1);

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

io, sys_PRBS = frestimate (mdl in_PRBS);

将PRBS和sinestream输入信号一起绘制结果。

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

关闭模式。

bdclose (“scdengine”)

另请参阅

相关的话题