如何估计Simulink模型的频率响应金宝app
- 你曾经估计过你的Simulink模型的频响吗?金宝app
- 你曾经尝试过为此目的创建“好的”输入信号吗?
- 您是否曾经尝试过通过编写脚本来自动化这个过程,以使用设计的输入修改您的模型进行模拟,并处理结果以进行估计?
>> scdengine >> MDL =“scdengine”;
第一步是创建一个用于频响估计的“良好”输入信号:为频响估计创建输入信号根据定义,频率响应估计需要正弦输入来激励系统。金宝appSimulink控制设计提供了弗列斯特。Sinestream命令来创建这样的信号。让我们创建一组具有30个频率的正弦波,频率在0.1到10 rad/s之间变化。这些是我们想要计算模型响应的频率:>> in = frst。Sinestream (“频率”linspace(30) 0.1, 10日)
频率:[0.1 0.44138 0.78276 1.1241…][(rad/s)振幅:1e-005 SamplesPerPeriod: 40 NumPeriods: 4 RampPeriods: 0 FreqUnits (rad/s,Hz): rad/s SettlingPeriods: 1 applyfilteringestimate (on/off): on SimulationOrder (Sequential/OneAtATime): Sequential结果sinestream输入信号有几个可调参数;包括频率、振幅、周期数等。的SettlingPeriods参数尤其重要。此参数指定系统假定处于稳定状态后响应的时间。此参数帮助您确保频率响应估计集中在响应的稳态部分。的Sinestream信号是频率响应估计的最佳输入信号,因为有了这个信号,你可以分离出响应的稳态部分。但是,您也可以设计和使用其他类型的输入信号。方法创建频率扫描(chirp)弗列斯特。尖声地说命令或创建一个随机信号的命令弗列斯特。随机.你也可以用atimeseries对象指定自定义输入信号。估计频率响应在创建用于频率响应估计的输入信号后,下一步是使用该输入运行模拟以获得输出信号并使用此数据来估计频率响应。金宝appSimulink控制设计中的这些步骤组合在一起frestimate命令:>> [sysse,simout] = fretimest (mdl,getlinio(mdl),in);
的语法frestimate非常类似于线性化.您必须指定模型,线性化输入/输出点和您设计的输入信号。在我们的模型中,线性化输入和输出点已经在油门角和发动机转速信号处设置,你可以使用它们getlinio.frestimate自动执行仿真,从指定的输入点插入设计的输入信号,并记录指定的输出信号。它利用得到的输出信号来估计频率响应。它以频响数据的形式返回估计的响应对象 , sys的仿真输出simout.好的一点是frestimate它注入输入信号并运行模拟记录输出,而不需要您更改模型。您将输入和输出点指定为模型中的任意位置frestimate照顾好剩下的!让我们看一下估计频率响应的波德图。> >波德(系统)
确认频响估计是否正确的frest.simView命令让您分析频率响应估计结果。> > frest.simView (simout sys);
频率响应是底部的图频率点用颜色标注。您可以使用频率响应图上的滑块来交互式地探索输入的每个频率上的时间响应和FFT。在时间响应图中,输出信号的稳态部分为粗线。FFT图显示了该输出信号对应的频谱。在选定的0.1 rad/s频率下,时间响应在第一周期内包括瞬态,之后达到稳态。有时,需要多次尝试才能获得良好的估计结果。例如,你可能需要一个不同振幅的输入,或者你需要增加周期数来驱动系统达到稳态。模拟结果查看器中的时间和FFT图可以帮助您识别这些问题,您可以通过改变输入信号的参数来解决。你可以在我们的文档 和演示。现在轮到你了你是否估计了你的Simulink模型的频率响应?金宝app试着估计你的Simulink模型的频率响应金宝app分享你的经历.
评论
如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。