主要内容

fr

频率响应估计万博1manbetx楷模

描述

例子

sys=嫉妒(模型io输入估计Simulink的频率响应万博1manbetx®模型使用指定的输入信号,模型初始条件定义的操作点,以及指定的分析点io

sys=嫉妒(模型op.io输入在操作点初始化模型op.在估计频率响应之前。如果模型初始条件不处于稳定状态或不稳定的操作点,请使用此语法指定不同的操作点。

例子

syssimout) = frestimate (模型op.io输入还返回模拟模型输出。使用此语法使用模拟结果查看器检查估计结果时(rest.simview.).

___] = =苦恼(___选项使用其他选项计算频率响应。您可以使用此语法与任何先前的输入和输出参数组合。

sys=嫉妒(数据频率单位估计频率响应使用仿真数据获得使用频率响应估计在离线估计模式下块。仅使用使用该块记录的数据使用此语法。

例子

全部折叠

估计工厂的开环响应水箱模型。打开模型。

模型='水箱';Open_System(型号);

要估计工厂的开环响应,请定义一个线性化I / O集,该设置指定模型的这部分与分析点。在控制器输出处定义输入分析点,并在工厂输出处定义开环输出点。

io (1) = linio ('watertank / pid控制器',1,“输入”);io (2) = linio ('watertank /水箱系统',1,“openoutput”);

为估计找到一个稳态工作点。对于本例,使用由模型初始条件导出的稳态工作点。

watertank_spec = operspec(型号);Opopts = findopoptions(“DisplayReport”'离开');op = findop(模型、watertank_spec opOpts);

创建一个输入信号进行估计。对于这个例子,使用一个正弦流信号,它在您指定的频率上发送一系列单独的正弦扰动。

输入= frest.sinestream('频率',logspace(-3,2,30));

估计模型指定部分的频率响应。结果是一个频率响应模型,其中包含在正弦流信号中指定的每个频率上的响应。

sys = frestimate(模型、人事处、io、输入);大小(系统)
FRD模型有1个输出,1个输入,30个频率点。

检查测量的频率响应。

BODE(SYSEST,'*'

线性化模拟模型并使用频率万博1manbetx响应估计来验证精确的线性化结果。

打开水箱模型。

模型='水箱';Open_System(型号);

获得工厂的开环响应的线性化。为此,定义线性化I / O点,并在模型初始条件附近找到稳态操作点。然后,线性化模型。

io (1) = linio ('watertank / pid控制器',1,“输入”);io (2) = linio ('watertank /水箱系统',1,“openoutput”);watertank_spec = operspec(型号);Opopts = findopoptions(“DisplayReport”'离开');op = findop(模型、watertank_spec opOpts);syslin =线性化(模型、op io);

要检查线性化,请使用相同的分析点和操作点来估计频率响应。对于此示例,请使用用于估计的Sinestream输入信号。

输入= frest.sinestream('频率'logspace (3 2, 20));sys = frestimate(模型、人事处、io、输入);

比较准确的线性化和估计响应在频域使用波德图。

BODE(SYSLIN,'b-'系统,'r *') 传奇('确切的线性化''估计'

仿真结果Viewer允许您通过频率检查频率响应估计频率的结果。你使用的是观看者rest.simview.命令。为此,请使用仿真数据simout输出参数fr

估计工厂的开环响应水箱模型。首先,打开模型。

模型='水箱';Open_System(型号);

定义一个指定设备的线性化I/O集,并找到一个用于估计的稳态工作点。

io (1) = linio ('watertank / pid控制器',1,“输入”);io (2) = linio ('watertank /水箱系统',1,“openoutput”);watertank_spec = operspec(型号);Opopts = findopoptions(“DisplayReport”'离开');op = findop(模型、watertank_spec opOpts);

然后,创建用于估计的输入信号,并估计模型的指定部分的频率响应。使用simout输出参数用于存储估计数据。

输入= frest.sinestream('频率',logspace(-3,2,10));[sysest,simout] =嫉妒(模型,op,io,输入);

打开模拟结果查看器。

rest.simview(SIMOUT,INPUT,SYSEST)

查看器向您显示稳态时间响应和响应的FFT范围内的所有频率,您选择的博德图部分查看器。这些图可以帮助您确定响应何时偏离预期响应。有关使用模拟结果查看器的详细信息,请参见分析估计频率响应

如果您估计了系统的线性模型,则可以使用该模型作为查看器比较的基线响应。例如,您可以比较通过精确线性化获得的模型,以估计频率响应。使用线性化I / O集和操作点来计算精确的线性化水箱植物。

syslin =线性化(模型,io,op);

再次打开仿真结果查看器,这次提供SYSLIN.作为输入参数。

rest.simview(SIMOUT,INPUT,SYSEST,SYSLIN)

观看者的Bode图部分包括显示确切响应的线SYSLIN..该视图可用于识别估计响应偏离线性化的特定频率。

输入参数

全部折叠

万博1manbetxSimulink模型,指定为字符串或字符向量。模型必须位于当前工作文件夹或Matlab上®小路。

分析点集包含输入,输出和循环开口,指定为线性化I / O对象。分析点集定义了其频率响应要估计的Simulink模型的子集。万博1manbetx去创造io

  • 使用。定义输入、输出和开口linio

  • 如果在Simulink模型中指定了输入,输出和开口,请使用模型中提取这些点万博1manbetx格雷林

对于频响估计,I/O点不能在总线信号上。io必须对应于Simulink模型万博1manbetx模型或者模型层次结构中的普通模式模型引用。(如果你使用fr在模型参考中的输出分析点,每个顶级模型允许的实例总数参考模型的配置参数必须为1。)

指定估计的I / O点类似于指定它们的线性化。有关指定线性化输入,输出和开口的详细信息,请参阅指定模型的部分以线性化

用于扰动模型的输入信号,指定为以下之一:

有关创建频率响应估计的输入信号的更多信息,请参阅估计输入信号

初始化估计模型的操作点,指定为一个操作点对象。使用:创建操作点对象:

通常,您使用稳态操作点进行估计。如果未指定操作点,则估计过程从模型初始条件指定的操作点开始。该操作点包括存储在模型中的初始状态和输入信号值。

估算选项,指定为a疯狂选择对象。可用选项包括为估算启用并行计算(需要并行计算工具箱™)。

使用该响应数据记录用于离线估计频率响应估计块,指定为下列之一:

  • 通过写入数据来获得的结构数据块的输出端口到MATLAB工作空间使用到工作空间块。的保存格式参数的到工作空间块必须Timeseries

  • 一个万博1manbetxSimulink.SimulationData.Dataset对象,通过使用Simulink数据日志将数据写入万博1manbetx数据到MATLAB工作区的端口。

有关更多信息,请参见数据端口说明频率响应估计块参考页或收集离线估计的频率响应实验数据

离线估计的频率,指定为正值的向量。当您使用该响应数据收集频率响应估计块,您可以使用估计实验指定频率频率块的参数。使用相同的频率向量频率使用记录数据执行离线估计。

离线估计的频率单位,指定为一个字符串“rad / s”要么“赫兹”或其中一个字符向量'rad / s'要么'赫兹'.当您使用该响应数据收集频率响应估计块,使用频率单元块参数指定估计实验的频率的单位。使用记录数据执行离线估计时指定相同的单元。

输出参数

全部折叠

估计频率响应,作为频率响应返回(的朋友)模型对象。的的朋友模型具有如线性化分析点中指定的许多输入和输出io

的频率sys取决于你使用什么输入信号进行估计,如下所示:

  • 如果您使用使用创建的SINestream信号疯狂,频率在sys是SINESTREAM信号中指定的频率。

  • 如果使用任何其他输入信号,则函数由功能执行以提取频率响应的FFT计算确定(参见算法).

如果你使用数据输入参数以提供使用的数据频率响应估计那么那么sys是一个siso模型。在这种情况下,频率在sys频率是你们提供的吗频率输入参数。

估计过程中收集的模拟数据,作为单元格数组返回万博1manbetx仿真软件。Timeseries对象。单元阵列具有尺寸-经过-n, 在哪里是I / O集中的输出点数io, 和n是输入点的数量。此数据可用于:

限制

  • 如果你使用fr在模型参考中的输出分析点,每个顶级模型允许的实例总数引用模型的配置参数必须为1。

提示

  • 对于多输入多输出(MIMO)系统,fr分别在每个输入通道处注入信号以模拟相应的输出信号。估计算法使用输入和模拟输出来计算MIMO频率响应。如果要在多输入系统的线性化输入点注入不同的输入信号,请将系统视为单独的单输入系统。使用每个线性化输入点执行独立的频率响应估计fr,并连接频率响应结果。

算法

全部折叠

fr注入您指定的输入信号(u美东时间t)在输入分析点。它模拟模型并收集响应信号(y美东时间t)在输出分析点处,如下面用于SINESTREAM输入。

一般来说,fr通过计算输出信号和输入信号的快速傅里叶变换的比值来估计频率响应:

R e 年代 p F F T y e 年代 t t F F T u e 年代 t t

  • 对于SINESTEAM输入信号,该功能会丢弃在每个频率下信号的指定稳定时段期间收集的数据。(看SINESTREAM输入信号。)如果SINESTREAM信号的滤波选项处于活动状态,则该功能将带通滤波器应用于相应频率的剩余信号,并丢弃一段时间以去除任何剩余的瞬态信号。该函数使用产生的信号的FFT来计算resp.所结果的的朋友模型包含SINESTREAM中的所有频率。

  • 对于Chirp输入信号,该功能丢弃了比率中的任何频率resp落在啁啾指定的频率范围之外。所结果的的朋友模型包含傅里叶变换中属于啁啾范围内的所有频率。

  • 对于其他输入信号,得到的的朋友包含傅里叶变换的所有频率。

使用频率响应估计块的数据估计

你可以使用嫉妒(数据频率单位语法以与数据执行离线估计频率响应估计块。在这种情况下,fr用来准备好了字段,以确定包含FFT计算的数据点resp

  • 对于SINESTREAM模式,该信号指示每个频率丢弃哪些时段,由此确定沉淀周期数块参数。

  • 对于叠加模式,该信号指示哪些数据属于由此确定的数据集合窗口用于估计的最低频率的周期数范围。

fr插值resp要生成结果的朋友模型,其中包含您在块实验参数中指定的频率。有关更多信息,请参见频率响应估计块参考页面。

替代功能

应用程序

模型线性化器

万博1manbetxSimulink块

频率响应估计

扩展能力

介绍了R2009b