主要内容

Inport

R2026b

为子系统或外部输入创建输入端口

  • Inport block

库:
Simulink / Commonly Used Blocks
Simulink / Ports & Subsystems
Simulink / Sources
HDL Coder / Commonly Used Blocks
HDL Coder / Ports & Subsystems
HDL Coder / Sources

描述

Inport 模块将信号从系统外部链接到系统内。

软件根据以下规则分配 Inport 模块端口号:

  • 根级系统或子系统中的 Inport 模块按顺序编号,从 1 开始。

  • 如果添加 Inport 模块,标签将是下一个可用的编号。

  • 如果您删除一个 Inport 模块,其他端口号会重新编号,以确保 Inport 模块的连续的且没有遗漏任何编号。

  • 如果将 Inport 模块复制到系统中,其端口号不会重新编号,除非当前编号与系统中已存在的输入端口发生冲突。如果复制的 Inport 模块的端口号不符合顺序,则会对该模块重新进行编号。否则,当您仿真模型或更新模块图时,会出现一条错误消息。

顶层系统中的 Inport 模块

您可以在顶层系统中使用 Inport 模块,以进行以下操作:

  • 使用输入参数提供来自工作区的外部输入。如果不提供外部输入数据,则 Inport 模块的输出为接地值。有关详细信息,请参阅将数据加载到根级输入端口。

  • 通过 linmod 和 trim 分析函数提供模型扰动的方式。有关详细信息,请参阅线性化模型。

子系统中的 Inport 模块

子系统中的 Inport 模块表示子系统的输入。到达 Subsystem 模块上的输入端口的信号从该子系统中的关联 Inport 模块流出。与 Subsystem 模块上的输入端口关联的 Inport 模块是其端口号参数与 Subsystem 模块上输入端口的相对位置匹配的模块。例如,端口号参数为 1 的 Inport 模块从连接到 Subsystem 模块上最顶层端口的模块获取其信号。

如果对 Inport 模块的端口号重新编号,则该模块将连接到其他输入端口。该模块继续从子系统外的同一模块接收其信号。

子系统内的 Inport 模块支持信号标签传播,但根级 Inport 模块不支持。有关详细信息,请参阅信号标签传播。

您可以直接编辑 Subsystem 模块上的端口标签。有关详细信息,请参阅 编辑子系统模块上的端口标签。

提示

对于包含总线的模型,如果总线信号中包含很多总线元素,则可以考虑使用 In Bus Element 和 Out Bus Element 模块。这些模块可以:

  • 减少模块图中信号线的复杂度和杂乱无章。

  • 使增量更改接口更容易。

  • 允许访问更靠近使用点的总线元素,避免使用 Bus Selector 和 Goto 模块配置。

In Bus Element 模块属于 Inport 模块类型,Out Bus Element 模块属于 Outport 模块类型。

创建重复 Inport 模块

您可以创建任意数量的 Inport 模块副本。副本是原型的图形表示,旨在通过去除不必要的线条来简化模块图。副本与原型具有相同的端口号、属性和输出。

要创建 Inport 模块的副本,请执行以下操作:

  1. 在模块图中,选择要复制的未连接的 Inport 模块。

  2. 按住 Ctrl 键并拖动模块。

  3. 释放指针,然后从上下文菜单中选择生成副本。

您可以选择具有副本的 Inport 模块来突出显示副本模块。要在打开的图或新选项卡中显示相关模块,请使用光标在选择后出现的省略号上暂停。然后,从操作菜单中选择相关模块 。当多个模块对应于所选模块时,将打开一个相关模块列表。您可以通过在文本框中输入搜索词来过滤相关模块列表。从列表中选择相关模块后,窗口焦点转至显示该相关模块的打开的图或新选项卡。

将总线连接到根级 Inport 模块

如果您希望模型的根级 Inport 模块生成总线,请将数据类型参数设置为总线对象的名称(该总线对象定义 Inport 模块生成的总线)。有关详细信息,请参阅定义总线属性以供重用。

示例

端口

输出

全部展开

通过输入端口流入系统的输入信号。

您可以在子系统中使用 Inport 模块,以结构体或任何其他格式提供定点数据。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus | image | datetime

参数

全部展开

常设

指定与模块对应的端口在父级 Subsystem 或 Model 模块上的显示顺序。

  • 如果新添加的模块创建了一个新端口,则其端口号是下一个可用编号。

  • 删除与某端口相关联的所有模块后,该端口也会被删除。其他端口会重新编号,使之依序排列且不跳过任何数字。

  • 如果指定的端口号超过端口数量,则会为该编号和中间跳过的每个序号创建端口。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: Port
值: "1" (默认) | real integer in quotes
数据类型: char | string

示例: set_param("mymodel/Subsystem1/PortBlock",Port="5")

指定在模块图标上显示的信息。

编程用法

模块参数:IconDisplay
类型:字符向量
值:'Signal name' | 'Port number' | 'Port number and signal name'
默认值:'Port number'

选择此项以指定模块输出是上一个时间步的输入信号值。

选择此选项将使软件能够解析属于某个循环的触发子系统之间的数据依赖关系。

Inport 模块通过显示 <Lo> 来指示已选择此选项。

依赖关系

仅当模块表示触发子系统中的输入端口时,才会启用此参数。

编程用法

模块参数:LatchByDelayingOutsideSignal
类型:字符向量
值:'on' | 'off'
默认值:'off'

选择此选项可指定模块锁存输入值,并防止它在函数调用子系统执行期间发生更改。对于分支出来调用多个函数调用子系统的单次函数调用,使用此选项会中断当信号从一个函数调用子系统反馈到另一个函数调用子系统时形成的循环。选择此选项可防止在包含此模块的子系统执行期间调用的函数调用子系统的反馈信号值发生任何更改。

Inport 模块通过显示 <Li> 来指示已选择此选项。

依赖关系

仅当模块表示函数调用子系统中的输入端口时,才会启用此选项。

编程用法

模块参数:LatchInputForFeedbackSignals
类型:字符向量
值:'on' | 'off'
默认值:'off'

要将信号和总线数据导入、可视化并映射到根级 Inport 模块,请点击此按钮。根输入端口映射器工具将打开。

依赖关系

仅当模块位于模型的根级时,此按钮才会出现。

信号属性

指定输入信号产生函数调用事件信号。

如果当前模型在顶层模型中被引用时必须接受函数调用事件信号,请选择此选项。

依赖关系

  • 要启用此选项,该模块必须在异步函数调用中。

  • 当数据类型指定 Simulink.ValueType 对象时,软件会忽略此参数的值。

编程用法

模块参数:OutputFunctionCall
类型:字符向量
值:'off' | 'on'
默认值:'off'

软件检查的输出范围的下限值。

此数字必须为有限双精度实数标量值。

软件使用此值执行:

  • 仿真范围检查(请参阅指定信号范围)。

  • 定点数据类型的自动定标。

  • 从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅使用指定的最小值和值进行优化 (Embedded Coder)。

依赖关系

当数据类型指定 Simulink.ValueType 或 Simulink.Bus 对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的最小值。

编程用法

模块参数:OutMin
类型:字符向量
值:'[ ]'| 标量
默认值:'[ ]'

软件检查的输出范围的上限值。

此数字必须为有限双精度实数标量值。

软件使用此值执行:

  • 仿真范围检查(请参阅指定信号范围)。

  • 定点数据类型的自动定标。

  • 从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅使用指定的最小值和值进行优化 (Embedded Coder)。

依赖关系

当数据类型指定 Simulink.ValueType 或 Simulink.Bus 对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的最大值。

编程用法

模块参数:OutMax
类型:字符向量
值:'[ ]'| 标量
默认值:'[ ]'

指定外部输入的输出数据类型。该类型可以继承、直接指定或表示为数据类型对象,如 Simulink.NumericType。

数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击 the Show data type assistant button。有关详细信息,请参阅使用数据类型助手指定数据类型。

您可以指定以下任一选项:

  • 继承的数据类型

  • 内置 Simulink® 数据类型 - 例如,指定 single 或 uint8。请参阅 Simulink 支持的数据类型。

  • 定点数据类型 - 使用 fixdt 函数。例如,指定 fixdt(1,16,0)。

  • 枚举数据类型 - 使用以 Enum: 开头的类型名称。例如,指定 Enum: myEnumType。

  • 总线数据类型 - 使用以 Bus: 开头的 Simulink.Bus 对象的名称。例如,指定 Bus: myBusObject。

  • Simulink 图像数据类型 - 如果您有 Computer Vision Toolbox™,请使用 Simulink.ImageType (Computer Vision Toolbox) 对象的构造函数,并指定描述图像的属性。默认情况下,数据类型使用 Simulink.ImageType(480,640,3) 表达式,分别表示图像的行、列和通道。

  • 值类型 - 使用以 ValueType: 开头的 Simulink.ValueType 对象的名称。例如,指定 ValueType: windVelocity。

  • 自定义数据类型 - 使用指定类型的 MATLAB® 表达式。例如,您可以指定一个 Simulink.NumericType 对象,其 DataTypeMode 属性设置为 'Fixed-point: unspecified scaling' 以外的值。

当您指定 Simulink.ValueType 或 Simulink.Bus 对象作为数据类型时,会忽略 Inport 模块的一些参数。例如,忽略 Inport 模块的 Min、Max 和 Unit 参数。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中 Simulink.BusElement 对象的对应属性。例如,假设一个模块将单位设置为 ft/s。当该模块的数据类型指定以 m/s 为单位的 ValueType 对象时,该模块会使用 m/s 而不是 ft/s 作为单位。

编程用法

模块参数:OutDataTypeStr
类型:字符向量
值:'Inherit: auto' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'string' | 'Enum: <class name>' | 'Bus: <object name>' | 'ValueType: <object name>' | '<data type expression>' | Simulink.ImageType(480,640,3)
默认值:'Inherit: auto'

选择此参数可防止定点工具覆盖您在模块上指定的输出数据类型。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)。

依赖关系

当数据类型指定 Simulink.ValueType 对象时,软件会忽略此参数的值。

编程用法

模块参数:LockScale
值:'off' | 'on'
默认值:'off'

指定用于加载总线数据的顶层 Inport 模块的输出是虚拟的还是非虚拟的。

  • 选择此参数可指定非虚拟总线输出。

  • 清除此参数可指定虚拟总线输出。

提示

  • 非虚拟总线中的所有信号都必须具有相同的采样时间,即使关联的总线对象为某些元素指定了继承采样时间也是如此。任何可能导致包含不同采样率信号的非虚拟总线的操作都会生成错误。您不能为非虚拟总线加载多速率数据。有关如何将具有不同采样率的信号作为非虚拟总线传递给引用模型的详细信息,请参阅Modify Sample Times for Nonvirtual Buses。

    要为总线加载多速率数据,请清除以非虚拟总线输出参数,并将采样时间参数设置为继承 (-1)。

  • 对于模型引用层次结构的顶层模型,代码生成将创建一个 C 结构体来表示非虚拟总线输出。

  • 对于引用的模型,选择此选项将在生成的代码中创建一个 C 结构体。否则,代码生成过程将为总线的每个叶元素创建一个参量。

依赖关系

要启用此参数,请进行如下设置:

  • 该模块必须位于模型的顶层。

  • 数据类型模块参数必须解析为 Simulink.Bus 对象。例如,将数据类型设置为 Simulink.Bus 对象,或设置为将 Simulink.Bus 对象指定为其数据类型的 Simulink.ValueType 对象。

编程用法

模块参数:BusOutputAsStruct
类型:字符向量
值:'off' | 'on'
默认值:'off'

指定模块的输入信号的物理单位。要指定单位,请在文本框中键入需要的值。随着您的键入,参数将显示可能匹配的单位。有关支持的单位列表,请使用 showunitslist 函数。

要约束单位制,请点击参数右侧的链接:

  • 如果组件中存在 Unit System Configuration 模块,将打开其对话框。使用该对话框为组件指定允许和不允许使用的单位制。

  • 如果组件中不存在 Unit System Configuration 模块,将显示模型的“配置参数”对话框。使用该对话框为模型指定允许和不允许使用的单位制。

依赖关系

当数据类型指定 Simulink.ValueType 或 Simulink.Bus 对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的单位。

编程用法

模块参数:Unit
类型:字符向量
值:'inherit' | '<Enter unit>'
默认值:'inherit'

要指定模块的输入信号的物理单位而不传播,请使用 UnitNoProp。

指定输出信号的维度。

-1

端口可以为具有任何维度的信号加载数据。端口从连接的信号继承维度。

N

端口可以为大小是 N 的向量信号加载数据。

[R C]

端口可以为 R 行 C 列矩阵信号加载数据。

依赖关系

当数据类型指定 Simulink.ValueType 对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType 对象指定的维度。

编程用法

模块参数:PortDimensions
类型:字符向量
值:'-1' | 整数 | [整数 整数]
默认值:'-1'

指定此端口允许的信号类型。要同时允许可变大小和固定大小的信号,请选择 inherit。要仅允许可变大小信号,请选择是。要仅允许固定大小的信号,请选择否。

当此端口的信号为可变大小的信号时,端口维度参数将指定信号的最大维度。

依赖关系

当数据类型指定 Simulink.ValueType 对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType 对象指定的维度模式。

编程用法

参数:VarSizeSig
类型:字符向量
值:'Inherit' | 'No' | 'Yes'
默认值:'Inherit'

指定信号输出的复/实性。要继承与其输入相连的信号的复/实性,请选择自动。否则,请选择实信号或复信号类型。

依赖关系

当数据类型指定 Simulink.ValueType 或 Simulink.Bus 对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的复/实性。

编程用法

模块参数:SignalType
类型:字符向量
值:'auto' | 'real' | 'complex'
默认值:'auto'

执行

指定采样时间命中点之间的离散间隔,或指定另一个采样时间类型,如连续 (0) 或继承 (-1)。有关更多选项,请参阅采样时间的类型。

默认情况下,模块根据模型中的模块上下文继承其采样时间。

编程用法

模块参数:SampleTime
类型:字符向量
值:标量
默认值:'-1'

从将数据从工作区加载到根级别 Inport 模块中时,指定模块在没有对应数据的时间步处是否对输出值进行线性内插和外插。

要从工作区加载离散数据,请执行以下操作:

  1. 将采样时间设置为离散速率,例如 2。

  2. 清除数据插值。

有关详细信息,请参阅Control How Models Load Input Data。

软件使用以下内插和外插:

  • 对于第一个指定数据点与最后一个指定数据点之间的时间步 - 零阶保持。

  • 对于第一个指定数据点之前和最后一个指定数据点之后的时间步 - 接地值。

  • 对于第一个指定数据点之前的时间步的大小可变信号 - 如果是单精度或双精度数据类型,则记录 NaN 值,如果是其他数据类型,则记录接地值。对于最后一个指定数据点之后的时间步,软件使用接地值。

编程用法

模块参数:Interpolate
类型:字符向量
值:'on' | 'off'
默认值:'on'

自 R2022b 起

事件参数存储与端口相关联的事件触发器。事件触发器根据模型中特定位置的运行时活动创建调度事件,以执行模型中的一个或多个分区。模型的调度指定因响应调度事件而执行的分区以及执行分区时的优先级。要为您的模型配置调度,请使用调度编辑器。

基于速率的模型中的根级输入端口支持三种类型的事件触发器,这些触发器会因响应与数据流入端口相关的输入事件创建调度事件。配置输入端口时,您可以为每个输入事件配置一个事件触发器。

输入事件输入事件描述事件触发器对象
输入写入在输入端口值每次更新时,都会发生一个输入写入事件。simulink.event.InputWrite
输入写入超时每次当输入端口值未在指定时间内更新时,都会发生一个输入写入超时事件。simulink.event.InputWriteTimeout
输入写入丢失每次当新输入端口值覆盖未处理的数据时,都会发生一次输入写入丢失事件。simulink.event.InputWriteLost

依赖关系

仅当模块表示基于速率的模型中的根级输入端口时,此参数才可见。

编程用法

模块参数:EventTriggers
值:1×1 元胞数组 | 2×1 元胞数组 | 3×1 元胞数组
默认值:[]

模块特性

数据类型

Boolean | bus | datetime | double | enumerated | fixed point | half | image | integer | single | string

直接馈通

否

多维信号

是

可变大小信号

是

过零检测

否

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2006a 之前推出

全部展开