每个子系统的日志信号
用于在for每个子系统中记录信号数据的方法取决于该信号是否是:
非总线信号-直接记录在每个子系统
总线或总线信号数组-使用以下方法之一:
使用一个总线选择器块选择要记录的信号,并将这些信号标记为信号记录。这种方法适用于许多模型。
将信号连接到外港在For Each子系统外部阻塞和记录信号。当您希望记录整个总线信号,并且该总线信号包括许多总线元素信号时,请使用此方法。
请注意
不能在For Each子系统中直接记录总线信号。
如果存在以下任一条件,则不能在For Each子系统中的引用模型中记录信号:
For Each子系统处于以快速加速器模式模拟的模型中。
的For Each子系统本身在一个模型中模型在加速模式下阻塞。
for每个子系统中每个记录信号的数据保存在一个单独的数据集
元素作为万博1manbetxSimulink.SimulationData.Signal
对象。记录信号数据的格式取决于设置的方式数据集信号格式配置参数:
如果设置为
timeseries
,则每个信号对象包含一个MATLAB数组®timeseries
对象。数组将来自不同For Each迭代的数据分开。如果设置为
时间表
,则每个信号对象包含MATLAB的单元格数组时间表
对象。该数组的维度与For Each迭代的数量匹配。例如,如果For Each子系统有三个迭代,那么记录的数据就有一个3 x1
的数组timeseries
或时间表
对象。对于嵌套的For Each子系统,嵌套的每一层都向日志数据添加另一个维度。
各子系统嵌套的日志信号
这个例子在嵌套的For Each子系统中记录一个信号。
打开ex_loginsideforeach_nested
模型。
open_system (docpath (fullfile (docroot,“工具箱”,“万博1manbetx模型”,…“例子”,“ex_loginsideforeach_nested.slx”)))
在Simuli万博1manbetxnk中®编辑器,打开对于每个子系统1
块,在子系统中,打开对于每个子系统2
块。
模拟模型并检查顶部子系统的第一次迭代和底部子系统的第三次迭代的信号测井数据。的2 x3
timeseries
每个层次的两次迭代和第二个(嵌套的)层次的三次迭代的结果
sim卡(“ex_loginsideforeach_nested”);logsout.get (“nestedDelay”)
信号包:Si万博1manbetxmulink. simulationdata . ans = Simulink. simulationdata . signal Package: Simulink. Simulink. ans模拟Data Properties: struct with fields: Name: 'nestedDelay' PropagatedName: '' BlockPath: [1×1 Simulink.SimulationData.BlockPath] PortType: 'outport' PortIndex: 1 Values: [2×3 timeseries]
属性的值nestedDelay
对象。
logsout.get (“nestedDelay”) . values(1、3)
timeseries公共属性:Name: 'nestedDelay' Time: [5x1 double] TimeInfo: [1x1 tsdata.]timemetadata] Data: [1x1x5 double] DataInfo: [1x1 tsdata.datametadata]
记录每个子系统的总线信号
这个例子在For Each子系统中记录两个总线信号。对于一个公共汽车信号,你用a总线选择器阻塞,然后记录每个选定的信号。另一个信号,你用外港block和log在For Each子系统之外。
打开ex_for_each_log_bus
模型。
open_system (docpath (fullfile (docroot,“工具箱”,“万博1manbetx模型”,…“例子”,“ex_for_each_log_bus.slx”)))
在Simuli万博1manbetxnk编辑器中,打开每个子系统
块。
来记录信号限制
总线信号,信号分支到a总线选择器块,并且每个总线元素信号都被标记为信号记录。
对整个logCOUNTERBUS
信号,总线信号连接到一个外港块。For Each子系统的输出信号被标记为信号记录。要使总线信号越过子系统边界,则总线的创造者块,该块创建COUNTERBUS
信号有输出数据类型参数设置为总线:COUNTERBUS
和输出为非虚拟总线选中复选框。
模拟模型并检查信号测井输出。关注记录在For Each子系统内部的总线元素信号,以及记录在For Each子系统外部的总线信号。
sim卡(“ex_for_each_log_bus”);logsout
万博1manbetxSimulink.SimulationData.Dataset logsout BlockPath 3元素名称 ________________________ ________________________________________ 1 [1 x1信号]OutsideForEach ex_for_each_log_bus /为每个子系统2 [1 x1信号]< lower_saturation_limit >…g_bus/For Each Subsystem/Bus Selector 3 [1x1 Signal]…g_bus/For Each Subsystem/Bus Selector -使用大括号{}访问、修改或添加使用索引的元素。
属性的值lower_saturation_limit
对象。
logsout{2}。值
3×1时间序列数组,属性:事件名称UserData数据DataInfo时间TimeInfo质量QualityInfo IsTimeFirst TreatNaNasMissing Length
属性的值OutsideForEach
对象。
logsout{1}。值
Ans = 3×1带字段的结构数组:数据限制
如果数据集
信号格式为时间表
,则输出为的单元格数组时间表
对象。例如:
Out = sim(“ex_for_each_log_bus”,“DatasetSignalFormat”,“时间表”);out.logsout {2} . values
Ans = 3x1单元格数组{11x1时间表}{11x1时间表}{11x1时间表}