主要内容

频率响应估计使用仿真技术

这个例子展示了如何获取的频率响应模型时®模型分析一个线性化并没有提供一个准确的答案由于基于事件的动态线性化的道路。金宝app这种系统的例子与触发子系统模型或模型使用脉冲宽度调制(PWM)输入信号。

打开模型

打开发动机仿真软件金宝app模型时机。

mdl =“scdengine”;open_system (mdl)

从节气门角度分析事情,线性化的模型发动机转速给零线性化的结果由于触发压缩子系统的线性化的道路。

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

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

Sinestream输入信号是最可靠的估计准确的频率响应输入信号使用仿真软件模型金宝appfrestimate函数。sinestream信号由单个正弦信号加到对方。的frestimate函数模拟模型中每一个频率sinestream输入信号,指定使用频率相应数量的时间参数,指定使用NumPeriods参数。仿真结束后,frestimate使用输出信号来计算每个频率的响应。frestimate只使用系统达到稳定状态后的时间输入频率,也就是说,在结算期使用指定的数量SettlingPeriods参数。

创建一个sinestream和50个对数间隔不同的频率信号之间0.1和10 rad / s。

在= frest.Sinestream (“频率”logspace (1, 1, 50),“振幅”1 e - 3)
sinestream输入信号频率:[0.1 0.10985 0.12068 0.13257……)(rad / s)幅度:0.001 SamplesPerPeriod: 40 NumPeriods: 4 RampPeriods: 0 FreqUnits (rad / s,赫兹):rad / s SettlingPeriods: 1 ApplyFilteringInFRESTIMATE(开/关):在SimulationOrder(顺序/ OneAtATime):顺序

默认情况下,每个频率sinestream输入信号模拟四期,也就是说,NumPeriods4对于所有频率。结束的同时,第一期指定系统达到稳定状态,也就是说,SettlingPeriods1对于所有频率。因此,frestimate使用最后三个时期的输出信号。

使用这个sinestream输入信号,执行频率响应估计使用frestimate功能,情节产生的频率响应数据。

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

您可以检查评估结果使用仿真结果查看器。查看器显示所选频率和时域和频域仿真结果总结波德图,你可以交互式地切换频率。

frest.simView (simout sys);

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

  • 没有达到稳定状态

  • 励磁的非线性

  • 遇到不稳定

估计使用线性调频输入信号频率响应

另一个输入信号时,你可以使用估计频率响应来自模型的数据模型是一个频率啁啾。金宝app频率啁啾与sinestream瞬间频率是不同的。

您可以使用线性调频输入信号获得更快的频率响应估计。然而,由此产生的频率响应可以比使用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和啁啾输入信号。

波德(sys、sys_chirp“r”)

估计使用伪随机位序列输入信号频率响应

另一个输入信号时,你可以使用估计频率响应来自模型的数据模型是一个伪随机二进制序列(PRBS)。金宝app伪随机位序列是一个周期,确定性信号white-noise-like属性两个值之间的变化。

您可以使用伪随机位序列输入信号获得更快的频率响应估计比线性调频信号具有更高的频率分辨率。

创建一个伪随机位序列信号的顺序12和一个周期的信号。使用一个周期产生一个非周期的伪随机位序列。生成的伪随机位序列的长度是4095(2 ^ 12 - 1)。获得一个精确的频率响应估计,伪随机位序列的长度必须足够大。确保系统正确地兴奋,指定扰动振幅的伪随机位序列0.01

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

执行频率响应估计使用伪随机位序列信号。

io, sys_PRBS = frestimate (mdl in_PRBS);

情节获得的结果与伪随机位序列和sinestream一起输入信号。

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

关闭模式。

bdclose (“scdengine”)

另请参阅

相关的话题