Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

Outport

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

  • 库:
  • Simulink / Commonly Used Blocks

    Simulink / Ports & Subsystems

    Simulink / Sinks

    HDL Coder / Commonly Used Blocks

    HDL Coder / Ports & Subsystems

    HDL Coder / Sinks

  • Outport block

描述

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

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

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

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

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

子系统中的 Outport 模块

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

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

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

提示

对于包含总线的模型,如果总线信号中包含很多总线元素,则可以考虑使用 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

参数

全部展开

常设

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

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

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

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

编程用法

模块参数Port
类型:字符向量
值:实整数
默认值:'1'

指定生成的代码中的相应信号数据的名称。使用此参数可以指定当您将存储类应用到根级 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 Outport is Virtual

依存关系

此参数适用于以下模块:

  • Conditional subsystem

  • 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 检查的输出范围的下限值。

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

注意

如果您指定总线对象作为此模块的数据类型,请不要为模块上的总线数据设置最小值。Simulink 会忽略此设置。但请为指定作为数据类型的总线对象的总线元素设置最小值。有关总线元素的“最小值”属性的信息,请参阅 Simulink.BusElement

Simulink 软件使用此值执行:

编程用法

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

Simulink 检查的输出范围的上限值。

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

注意

如果您指定总线对象作为此模块的数据类型,请不要为模块的总线数据设置最大值。Simulink 会忽略此设置。但请为指定作为数据类型的总线对象的总线元素设置最大值。有关总线元素的“最大值”属性的信息,请参阅 Simulink.BusElement

Simulink 软件使用此值执行:

编程用法

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

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

点击显示数据类型助手按钮 以显示数据类型助手,帮助您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型

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

  • 继承的数据类型

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

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

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

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

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

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

当您指定 Simulink.ValueTypeSimulink.Bus 对象时,该对象不仅仅定义数据类型。该对象还定义诸如最小值最大值单位等属性。ValueType 对象指定的属性值会覆盖模块指定的对应属性值。例如,假设一个模块将单位设置为 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>'
默认值'Inherit: auto'

选中此选项将锁定此模块的输出数据类型设置,从而防止通过定点工具和定点顾问进行更改。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)

编程用法

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

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

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

提示

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

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

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

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

依存关系

数据类型设置为 “Bus: <object name>” 时可用。

编程用法

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

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

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

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

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

编程用法

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

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

-1

任意维度的信号都可以连接到此端口。

N

连接到此端口的信号必须是大小为 N 的向量。

[R C]

连接到此端口的信号必须是具有 R 行和 C 列的矩阵。

编程用法

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

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

依存关系

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

编程用法

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

指定采样时间命中点之间的离散间隔,或指定其他适当的采样时间,如连续或继承。

默认情况下,模块根据模型中的模块上下文继承其采样时间。要设置不同的采样时间,请根据采样时间的类型中的表输入有效采样时间。

编程用法

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

指定信号输出的数值类型。要选择连接到其输入的信号的数值类型,请选择“自动”。否则,请选择实信号或复信号类型。

编程用法

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

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

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

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

版本历史记录

在 R2006a 之前推出