Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

Outport

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

  • Outport block

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

描述

Outport 模块将信号从系统内链接到系统外部的目标。它们可以连接从子系统流动到模型其他部分的信号。它们还可以在模型层次结构的顶层提供外部输出。

Outport 模块端口号根据以下规则进行分配:

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

  • 如果添加一个 Outport 模块,Simulink 将为其分配下一个可用的编号。

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

子系统中的 Outport 模块

子系统中的 Outport 模块表示来自子系统的输出。到达子系统中某个 Outport 模块的信号将从 Subsystem 模块上的关联输出端口流出。与输出端口关联的 Outport 模块是指端口号参数与该输出端口在 Subsystem 模块上的相对位置匹配的模块。例如,端口号参数为 1Outport 模块将其信号发送给与 Subsystem 模块上最上面的输出端口连接的模块。

如果您对 Outport 模块的端口号重新进行编号,模块将连接到一个不同的输出端口。模块会继续将信号发送给子系统外部的同一个模块。

您可以直接编辑 Subsystem 模块上的端口标签。有关详细信息,请参阅 Edit Port Labels on Subsystem Blocks

提示

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

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

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

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

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

模型层次结构中的顶层 Outport 模块

模型层次结构顶层的 Outport 模块有两种用途。它们可以为 MATLAB® 基础工作区提供外部输出,为 linmodtrim 分析函数提供一种从系统中获取输出的方法。

要为工作区提供外部输出,请使用配置参数 > 数据导入/导出窗格(请参阅将输出数据导出到 MATLAB 工作区)或 sim 命令。例如,如果系统有多个 Outport 模块,且保存格式为数组,则以下命令

[t,x,y] = sim(...);

y 写入为矩阵,每一列均包含一个不同 Outport 模块的数据。列顺序与 Outport 模块的端口号顺序匹配。

如果您在第二个 (state) 参数之后指定多个变量名称,系统会将来自每个 Outport 模块的数据写入不同的变量。例如,如果系统有两个 Outport 模块,要将 Outport 模块 1 的数据保存到 speed,将 Outport 模块 2 的数据保存到 dist,请指定以下命令:

[t,x,speed,dist] = sim(...);

将总线连接到根级 Outport

只有当虚拟总线中的所有元素均具有相同的数据类型时,模型中的根级 Outport 模块才会接受虚拟总线。Outport 模块自动将总线统一为与总线具有相同元素数的向量并提供该向量作为输出。

如果希望模型的根级 Outport 模块接受包含混合类型的总线,请将 Outport 模块数据类型设置为 Bus: <object name>。如果总线为虚拟信号,则被转换为非虚拟信号,如Virtual and Nonvirtual Bus Conversions中所述。

将根级 Outport 模块与 Simulink.Signal 对象关联

要将根级 Outport 模块与 Simulink.Signal 对象关联,请使用模型数据编辑器。请参阅用于信号

端口

输入

全部展开

通过输出端口流向外部子系统或模型的输入信号。

Outport 模块不是根级输出端口时,可以接受定点和枚举数据类型。模块输出的复/实性和数据类型与其输入相同。

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

参数

全部展开

常设

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

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

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

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

编程用法

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

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

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

指定生成的代码中的相应信号数据的名称。使用此参数可以指定当您将存储类应用到根级 Outport 模块时信号数据的名称。

编程用法

模块参数SignalName
类型:字符向量
值:字符向量
默认值:' '

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

编程用法

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

指定未连接信源时的常量输出值。

依存关系

适用于 Variant Subsystem 模块内未连接的 Outport 模块。

编程用法

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

指定未连接信源时的常量输出值。

依存关系

适用于未连接的 Outport 模块的 Variant Subsystem 模块(指定未连接源时的输出处于选中状态)。

编程用法

模块参数OutputWhenUnconnectedValue
类型:字符向量
值:scalar | vector
默认值:'0'

如果常量值参数的计算结果为包含 N 个元素的行或列向量,选中此复选框将输出长度为 N 的向量。

依存关系

适用于未连接的 Outport 模块上的 Variant Subsystem 模块(当您选择了指定未连接源时的输出参数时)。

编程用法

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

清除此参数可允许 Simulink® 在输出端口上使用信号缓冲区。此缓冲区等效于 Signal Copy 模块,但不显示在画布上,可确保 Outport 模块信号的初始化保持一致。

如果选择此参数,Simulink 会尝试删除信号缓冲区。

  • 如果不需要信号缓冲区,Simulink 将删除缓冲区。

  • 如果为确保数据一致性和正常执行而需要信号缓冲区,Simulink 会显示错误,指示可能无法删除缓冲区。

允许通过 Assignment 模块部分写入。

有关此参数的详细信息,包括具有条件写入和部分写入的示例,请参阅Ensure Output Port Is Virtual

依存关系

此参数适用于以下模块:

  • 条件子系统

  • Assignment

  • Merge

  • 具有根 Outport 模块的模型

编程用法

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

选择模块初始输出值的来源。选择对话框以指定初始输出值是初始输出参数的值。选择输入信号以指定从输入信号继承初始输出值。请参阅条件子系统初始输出值

提示

  • 如果使用经典初始化模式,则选择输入信号将导致错误。要从输入信号继承初始输出值,请将此参数设置为对话框并将 [](空矩阵)指定为初始输出值。有关详细信息,请参阅条件子系统初始输出值

依存关系

适用于条件子系统内的 Outport 模块。

编程用法

模块参数SourceOfInitialOutputValue
类型:字符向量
值:'Dialog' | 'Input signal'
默认值:'Dialog'

指定子系统被禁用的情况下,模块输出会出现什么情况。选择保持表示当子系统被禁用时,输出保持不变。选择重置表示当子系统被禁用时,输出将重置为初始输出指定的值。

依存关系

当您选择对话框作为具有有效启用和禁用语义的条件子系统中 Outport 模块的初始输出值的源参数的值时,此项可用。例如,该参数适用于 Enabled Subsystem 模块内的 Outport 模块,不适用于 Triggered Subsystem 模块内的 Outport 模块。

如果 Outport 模块位于 Function-Call Subsystem 模块内,则仅当 Function-Call Subsystem 模块连接到 Stateflow® 图中的某个状态时,此参数才有意义。有关详细信息,请参阅Bind a Function-Call Subsystem to a State (Stateflow)

将条件子系统的输出连接到 Merge 模块时,请将此参数设置为保持。将其设置为重置会返回错误。

编程用法

模块参数OutputWhenDisabled
类型:字符向量
'held' | 'reset'
默认值:'held'

对于条件执行子系统,请在子系统执行之前且此选项处于禁用状态时指定模块输出。指定 [] 以从输入信号继承初始输出值。有关详细信息,请参阅条件子系统初始输出值

有关指定初始条件结构体的信息,请参阅指定总线元素的初始条件

提示

如果条件子系统驱动的是 Merge 模块,则无需为 Outport 模块指定初始条件 (IC)。有关详细信息,请参阅 欠定初始化检测

依存关系

当条件子系统中 Outport 模块的初始输出值的源设置为对话框时可用。

限制

  • 此模块不允许初始输出为 infNaN

  • 当输入是虚拟总线时,初始输出[] 被视为 double(0)

  • 当输入包含非虚拟总线时,初始输出不支持非零标量值。

编程用法

模块参数InitialOutput
类型:字符向量
值:'[]' | 标量 | 结构体
默认值:'[]'

信号属性

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

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

软件使用此值执行:

依存关系

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

编程用法

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

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

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

软件使用此值执行:

依存关系

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

编程用法

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

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

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

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

  • 继承的数据类型

  • 内置 Simulink 数据类型 - 例如,指定 singleuint8。请参阅 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.ValueTypeSimulink.Bus 对象作为数据类型时,会忽略 Outport 模块的一些参数。例如,忽略 Outport 模块的 MinMaxUnit 参数。软件改用 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'

指定输出总线在父模型中作为非虚拟总线。如果您希望父模型中出现的总线为非虚拟总线,请选择此参数。输入到该端口的总线可以是虚拟或非虚拟总线,无论在父模型中以非虚拟总线输出的设置如何。

如果您希望父模型中出现的总线为虚拟总线,则请清除此参数。

提示

  • 在非虚拟总线中,所有信号必须具有相同的采样时间,即使关联总线对象的元素指定继承采样时间也是如此。任何操作如果可能会生成违反此要求的非虚拟总线,都会生成错误。有关详细信息,请参阅Modify Sample Times for Nonvirtual Buses

    要对虚拟总线使用多速率信号,请将根级 Outport 模块的采样时间参数设置为继承 (-1)。

  • 对于模型引用层次结构的顶层模型,代码生成将创建 C 结构体,以表示此模块输出的总线。

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

依存关系

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

编程用法

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

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

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

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

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

依存关系

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

编程用法

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

指定信号要连接到此 Outport 模块所必须具有的维度。

-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.ValueTypeSimulink.Bus 对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的复/实性。

编程用法

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

执行

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

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

编程用法

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

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

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

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

版本历史记录

在 R2006a 之前推出

全部展开