包:fr
识别时变的源块
块= frest.findsources(模型)
块= frest.findsources(模型,io)
求Simulink中任意线性化输出点的信号路径中的所有时变源块金宝app®模型块
= fest.findsources(模型
)模型
.
求线性分析点阵列中任意线性化输出点的信号路径中的所有时变源块块
= fest.findsources(模型
,IO.
)IO.
.
|
字符向量或字符串,其中包含要识别用于频率响应估计的时变源块的Simulink模型的名称。金宝app |
|
线性化I/O点阵列。 的元素 |
|
块时变源块的路径 如果您提供 如果你不提供 |
估计具有时变源块的模型的频率响应。这个例子展示了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
.如果一个块的内部信号路径不包含一个没有输入端口的块,则该块不被函数报告。
例如,考虑模型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控制设计检查.有关使用模型顾问的更多信息,请参阅使用模型顾问检查您的模型.