为每个子系统
子系统,重复执行的每个元素或子数组输入信号和连接的结果
- 库:
港口和子系统
描述
的为每个子系统块是一个子系统块预配置作为起点来创建一个子系统,重复执行模拟时间步中每个元素或子数组的输入信号。
子系统内部的组块代表算法应用于一个元素或子数组的原始信号。的为每一个块内部子系统允许您配置子系统的分解输入元素或子数组和个人配置连接结果输出信号。
在这个子系统,每一块状态维护单独的组为每个元素或子数组,它的过程。因此,这个子系统的操作相似的行为来复制子系统为每个元素的内容在原始输入信号,然后处理每个元素使用其各自子系统的副本。
一个额外的好处的为每个子系统块,对于某些模型,它提高了仿真软件的代码重用万博1manbetx®编码器™生成的代码。考虑一个模型包含两个可重用原子子系统块相同的标量算法应用于每个元素的信号。如果这些子系统的输入信号维度是不同的,万博1manbetx仿真软件编码器生成的代码包括两个不同的函数。你可以用两个相同的替换这两个子系统为每个子系统块配置来处理每个元素各自的输入使用相同的算法。对于这种情况,万博1manbetx仿真软件编码器生成的代码包含一个函数参数化输入信号元素的数量。这个函数被调用两次,一次为每一个独特的实例为每个子系统块模型。对于每一个在这些病例中,输入信号元素有不同的值。
功能的支持万博1manbetx
的为每个子系统块既支持C-万博1manbetxMEX S-functions和2级MATLAB®S-functions,提供功能支持多个执行实例使用以下技术:万博1manbetx
一个C-MEX s函数必须声明
ss万博1manbetxSupportsMultipleExecInstances(年代,真的)
在mdlSetWorkWidths
方法。一个2级MATLAB函数必须声明
块。万博1manbetxSupportsMultipleExecInstances = true
的设置方法。
如果您使用上面的规格:
不缓存运行时数据,如DWork和块I / O,使用全局或持续变量或在用户数据的功能。
每一个函数执行方法
mdlStart
到mdlTerminate
为每个元素被称为一次处理的功能,当它在一个为每个子系统块。因此,你需要小心,不要免费重复调用相同的内存mdlTerminate
。例如,考虑一个C-MEX s函数分配内存的运行时参数内mdlSetWorkWidths
。只需要一次释放的内存mdlTerminate
。作为解决方案,设置第一次调用后指针是空的mdlTerminate
。
限制
的为每个子系统块有这些限制,这些解决方案。
限制 | 解决方案 |
---|---|
你不能日志总线或一组总线信号直接在每个子系统。 |
使用这些方法之一:
|
你不能登录一个信号在一个参考模型为每个子系统内如果这些条件存在:
|
对于第一个条件,使用加速器模式。 对于第二个条件,使用正常或快速加速模式。 |
你不能登录美国为每个子系统的街区。 |
保存和恢复仿真状态。 |
你不能用正常模式来模拟模型块在每个子系统。 |
使用加速器或快速加速模式。 |
为每个子系统可重用代码生成的两个具有相同内容如果他们的输入和输出信号向量(一维或二维的行或列向量)。一天输入和输出信号,生成可重用的代码只有在信号的维度以及分区是最高的维度。 |
交换信号维度转换分区维度和串联维度一天的最高nonsingleton维度信号。 |
的为每个子系统块不支持这些特性:万博1manbetx
你不能包括这些块或S-functions为每个子系统内:
数据存储内存,数据存储读取,或数据存储写块内的子系统
的从工作空间如果输入是一个块
结构随着时间的推移
有一个空的时间字段的到工作空间和到文件数据保存模块
转到和从跨子系统的块边界
模型参考块模拟模式设置为正常
影子港口
ERT S-functions
块的完整列表为每个子系统支持,类型万博1manbetx
showblockdatatypetable
在MATLAB命令行。
你不能使用这些类型的信号:
Test-pointed信号或信号系统内部与外部存储类
帧信号子系统输入和输出边界
适应信号
函数调用信号穿越边界的子系统
创建一个线性化点内的子系统
传播的雅可比矩阵标记块内的子系统。你可以检查这个条件在MATLAB中使用
J.Mi.BlockAnalyticFlags.jacobian
,在那里J
是雅可比矩阵对象。验证正确性的雅可比矩阵为每个子系统块,执行以下步骤:看看标签为每个子系统的雅可比矩阵。如果它是
“not_万博1manbetxsupported”
雅可比矩阵,那么是不正确的。每一块的移动为每个子系统并计算其雅可比矩阵。如果有块“not_supported”或有一万博1manbetx个警告标签,每个子系统雅可比矩阵是不正确的。
你不能执行这些类型的代码生成:
代的一个万博1manbetx仿真软件编码器功能目标
万博1manbetx仿真软件编码器代码生成下下面两个条件:
一个Stateflow®或MATLAB函数块驻留在子系统。
这个街区试图访问全局数据以外的子系统,如数据存储内存块或
万博1manbetxSimulink.Signal
的对象ExportedGlobal
存储类。
PLC的代码生成