文档

为每个子系统

子系统,重复执行的每个元素或子数组输入信号和连接的结果

  • 库:
  • 港口和子系统

描述

为每个子系统块是一个子系统块预配置作为起点来创建一个子系统,重复执行模拟时间步中每个元素或子数组的输入信号。

子系统内部的组块代表算法应用于一个元素或子数组的原始信号。的为每一个块内部子系统允许您配置子系统的分解输入元素或子数组和个人配置连接结果输出信号。

在这个子系统,每一块状态维护单独的组为每个元素或子数组,它的过程。因此,这个子系统的操作相似的行为来复制子系统为每个元素的内容在原始输入信号,然后处理每个元素使用其各自子系统的副本。

一个额外的好处的为每个子系统块,对于某些模型,它提高了仿真软件的代码重用万博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,使用全局或持续变量或在用户数据的功能。

  • 每一个函数执行方法mdlStartmdlTerminate为每个元素被称为一次处理的功能,当它在一个为每个子系统块。因此,你需要小心,不要免费重复调用相同的内存mdlTerminate。例如,考虑一个C-MEX s函数分配内存的运行时参数内mdlSetWorkWidths。只需要一次释放的内存mdlTerminate。作为解决方案,设置第一次调用后指针是空的mdlTerminate

限制

为每个子系统块有这些限制,这些解决方案。

限制 解决方案

你不能日志总线或一组总线信号直接在每个子系统。

使用这些方法之一:

  • 使用一块总线选择器选择你想要的信号为信号记录日志和马克这些信号。

  • 把信号输出港块和日志为每个子系统外的信号。

你不能登录一个信号在一个参考模型为每个子系统内如果这些条件存在:

  • 为每个子系统是在快速加速器模型模拟模式。

  • 为每个子系统本身在加速器模型引用的模型块模式。

对于第一个条件,使用加速器模式。

对于第二个条件,使用正常或快速加速模式。

你不能登录美国为每个子系统的街区。

保存和恢复仿真状态。

你不能用正常模式来模拟模型块在每个子系统。

使用加速器或快速加速模式。

为每个子系统可重用代码生成的两个具有相同内容如果他们的输入和输出信号向量(一维或二维的行或列向量)。一天输入和输出信号,生成可重用的代码只有在信号的维度以及分区是最高的维度。

交换信号维度转换分区维度和串联维度一天的最高nonsingleton维度信号。

为每个子系统块不支持这些特性:万博1manbetx

  • 你不能包括这些块或S-functions为每个子系统内:

    • 数据存储内存,数据存储读取,或数据存储写块内的子系统

    • 从工作空间如果输入是一个块结构随着时间的推移有一个空的时间字段

    • 到工作空间到文件数据保存模块

    • 转到跨子系统的块边界

    • 模型参考块模拟模式设置为正常

    • 影子港口

    • ERT S-functions

    块的完整列表为每个子系统支持,类型万博1manbetxshowblockdatatypetable在MATLAB命令行。

  • 你不能使用这些类型的信号:

    • Test-pointed信号或信号系统内部与外部存储类

    • 帧信号子系统输入和输出边界

    • 适应信号

    • 函数调用信号穿越边界的子系统

  • 创建一个线性化点内的子系统

  • 传播的雅可比矩阵标记块内的子系统。你可以检查这个条件在MATLAB中使用J.Mi.BlockAnalyticFlags.jacobian,在那里J是雅可比矩阵对象。验证正确性的雅可比矩阵为每个子系统块,执行以下步骤:

    • 看看标签为每个子系统的雅可比矩阵。如果它是“not_万博1manbetxsupported”雅可比矩阵,那么是不正确的。

    • 每一块的移动为每个子系统并计算其雅可比矩阵。如果有块“not_supported”或有一万博1manbetx个警告标签,每个子系统雅可比矩阵是不正确的。

  • 你不能执行这些类型的代码生成:

    • 代的一个万博1manbetx仿真软件编码器功能目标

    • 万博1manbetx仿真软件编码器代码生成下下面两个条件:

      • 一个Stateflow®MATLAB函数块驻留在子系统。

      • 这个街区试图访问全局数据以外的子系统,如数据存储内存块或万博1manbetxSimulink.Signal的对象ExportedGlobal存储类。

    • PLC的代码生成

港口

输入

全部展开

放置一个轮廓尺寸块在一个子系统块将外部输入端口添加到块中。港标签匹配的名称轮廓尺寸块。

使用轮廓尺寸块信号从当地环境。

数据类型:||int8|int16|int32|uint8|uint16|uint32|布尔|不动点|枚举|公共汽车

输出

全部展开

放置一个外港阻止在一个子系统块中添加了一个输出端口。子系统块上的端口标签的名称外港块。

使用外港块将信号发送到当地的环境。

数据类型:||int8|int16|int32|uint8|uint16|uint32|布尔|不动点|枚举|公共汽车

介绍了R2010a

这个主题有帮助吗?