主要内容

frest.findSources

包:fr

识别时变的源块

语法

块= frest.findsources(模型)
块= frest.findsources(模型,io)

描述

= fest.findsources(模型求Simulink中任意线性化输出点的信号路径中的所有时变源块金宝app®模型模型

= fest.findsources(模型IO.求线性分析点阵列中任意线性化输出点的信号路径中的所有时变源块IO.

输入参数

模型

字符向量或字符串,其中包含要识别用于频率响应估计的时变源块的Simulink模型的名称。金宝app

IO.

线性化I/O点阵列。

的元素IO.是您创建的线性化I / O对象格雷林或者Linio.frest.findSources仅使用输出点定位可能干扰频响估计的时变源块。看到算法想要查询更多的信息。

输出参数

块时变源块的路径模型可以干扰频率响应估计,作为阵列返回金宝app仿真软件。BlockPath对象。包括子系统内的时变源块和标准模式参考模型。

如果您提供IO.中输出点上对信号有贡献的所有时变源块IO.

如果你不提供IO.包含在中标记的输出点上对信号有贡献的所有时变源块模型

例子

估计具有时变源块的模型的频率响应。这个例子展示了frest.findSources识别干扰频响估计的时变源块。你也可以看到BlocksToHoldConstant选择frestimateOptions禁用估计中的时变源块。

加载模型scdspeed_ctrlloop

mdl =“scdspeed_ctrlloop”;open_system(mdl) %转换引用模型到正常模式的准确性set_param('scdspeed_ctrlloop/Engine model ',…“SimulationMode”、“正常”);

首先,观察时变源块对频响估计的影响。为此,在不禁用时变源块的情况下执行估计。

在此示例中,线性化I / O点已在模型中定义。使用格雷林命令获取的I/O点吝啬

io = getlinio (mdl)

定义正弦信号并计算估计的频率响应sys

在= rest.sinestream('频率',logspace(1,2,10),...'numperiods',30,'settingperiods',25);[sysest,simout] =嫉妒(mdl,io,in);

进行精确的线性化,并与估计的响应进行比较。

sys =线性化(mdl, io);sys bodemag (sys, r *)

估计的频率响应与精确的线性化不匹配。出现不匹配的原因模型中的时变源块可防止响应达到稳态。

使用下列方法找到时变块frest.findSources

srcblks = frest.findsources(mdl);

srcblks是模型中与时变源块对应的块路径数组。要检查结果,请对数组进行索引。

例如,进入

srcblks(2)

返回结果

ans = 金宝appsimulink.blockpath包:simulink块路径:'scdspeed_ctrlop / model型号''scdspeed_plantref /拖动扭矩/ step1'

现在,您可以估计频率响应而不贡献时变源块。为此,请设置BlocksToHoldConstant选择frestimateOptions等于srcblks,并运行估算。

opts = frestimateOptions opts.blockstoholdconstant = srcblks%再次运行再次使用块禁用[sysest2,simout2] = restimate(mdl,io,opls);

频率响应估计现在提供了与确切的线性化结果的良好匹配。

bodemag (sys、sysest2 r *)

提示

  • frest.findSources识别可能干扰频响估计的时变源块。若要禁用这些块来估计频率响应,请设置BlocksToHoldConstant选择frestimateOptions等于或者是.然后,估计频率响应吝啬

  • 有时,模型包括包含线性化输出点的信号路径中的源块的引用模型。在这种情况下,将引用的模型设置为正常仿真模式以确保frest.findSources找到它们。使用set_param.命令来设置SimulationMode的任何引用模型正常的在运行之前弗列斯特。FindSources

算法

找到可以干扰频率响应估计的时变源块,frest.findSources从模型中的每个线性化输出点开始。从每个输出点开始,该算法逐块向后跟踪每个信号路径。算法报告它发现的任何源块(一个没有输入端口的块),除非该源块是一个持续的或者地面块。

frest.findSources算法跟踪每个信号路径,该信号路径可以影响模型中的每个线性化输出点处的信号值。跟踪的路径包括:

  • 虚拟和非虚拟子系统中的信号路径。

  • 正常模式参考模型内的信号路径。在使用之前,将所有参考模型设置为正常仿真模式frest.findSources确保算法识别引用模型中的源块。

  • 信号路由块,或通过数据存储读取数据存储写入块。

  • 信号通过交换机路由。的frest.findSources算法假设在频率响应估计期间可以激活开关的任何极点。因此,算法通过所有开关输入遵循信号。

请注意

可能无法找到某些时变源块frest.findSources.如果一个块的内部信号路径不包含一个没有输入端口的块,则该块不被函数报告。

例如,考虑模型scdspeed_ctrlloop.该模型有一个线性化输出点,位于输出端总和块标记为速度输出.(这frest.findSources算法忽略线性化输入点。)在运行之前frest.findSources,将引用的模型转换为正常仿真模式:

set_param (scdspeed_ctrlloop /引擎模型,…“SimulationMode”、“正常”);

你现在可以跑了frest.findSources利用模型中定义的线性化输出点识别时变源块。

srcblks = frest.findSources(“scdspeed_ctrlloop”);

该算法从输出点开始,横贯总和堵塞速度输出.一个输入速度输出是子系统外部干扰.算法进入子系统,找到标记的源块扰动步,并报告该阻塞。

总和堵塞速度输出有另一个输入,该算法追溯到引用模型发动机模型发动机模型包含多个子系统,并且该算法通过这些子系统跟踪信号以识别存在的任何时变源块。

例如燃烧子系统包括这一点块标记δ把信号从火花推进源。因为火花推进是一个恒定的源块,但是,算法没有报告块的存在。

该算法继续迹线,直到检查对每个线性化输出点处的信号有贡献的所有可能的信号路径被检查。

选择

您可以使用Simulink Mo金宝appdel Advisor来确定模型中输出线性分析点的信号路径中是否存在时变源块。为此,使用Model Advisor检查金宝appSimulink控制设计检查.有关使用模型顾问的更多信息,请参阅使用模型顾问检查您的模型

介绍在R2010B.