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

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

  • 从 1 开始按顺序自动为根级系统或子系统中的 Outport 模块进行编号。

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

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

子系统中的 Outport 模块

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

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

提示

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

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

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

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

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

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

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

要为工作区提供外部输出,请使用 Configuration Parameters > Data Import/Export 窗格(请参阅将输出数据导出到 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 模块的 Data type 设置为 Bus: <object name>。如果总线信号为虚拟信号,则被转换为非虚拟信号,如Virtual and Nonvirtual Bus Conversions中所述。

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

要将根级 Outport 模块与 Simulink.Signal 对象关联,请使用 Model Data Editor。请参阅用于信号

端口

输入

全部展开

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

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

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

参数

全部展开

Main

指定与模块对应的端口在父级 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 模块(Specify output when source is unconnected 处于选中状态)。

编程用法

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

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

依存关系

适用于未连接的 Outport 模块上的 Variant Subsystem 模块(当您选择了 Specify output when source is unconnected 参数时)。

编程用法

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

清除此复选框可指定 Simulink 在输出端口上使用信号缓冲区。此缓冲区确保 Outport 模块信号的初始化保持一致。

如果选中此复选框,Simulink 会尝试删除信号缓冲区。

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

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

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

有关条件写入和部分写入的示例,请参阅Ensure Outport is Virtual

依存关系

此参数适用于以下模块:

  • Conditional subsystem

  • Assignment

  • Merge

  • 具有根 Outport 模块的模型

编程用法

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

选择模块初始输出值的来源。选择 “Dialog” 以指定初始输出值是 Initial output 参数的值。选择 “Input signal” 以指定从输入信号继承初始输出值。请参阅条件子系统初始输出值

提示

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

依存关系

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

选择 “Dialog” 会显示以下参数:

  • Output when disabled

  • Initial output

编程用法

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

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

依存关系

当您选择 “Dialog” 作为具有有效启用和禁用语义的条件子系统中 Outport 模块的 Source of initial output 参数的值时,此项可用。例如,该参数适用于 Enabled Subsystem 模块内的 Outport 模块,不适用于 Triggered Subsystem 模块内的 Outport 模块。

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

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

编程用法

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

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

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

提示

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

依存关系

当条件子系统中 Outport 模块的 Source of initial output value 设置为 “Dialog” 时可用。

限制

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

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

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

编程用法

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

Signal Attributes

点击 Show data type assistant 按钮 以显示 Data Type Assistant,帮助您设置数据类型参数。有关详细信息,请参阅使用 Data Type Assistant 指定数据类型

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

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

注意

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

Simulink 软件使用此值执行:

编程用法

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

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

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

注意

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

Simulink 软件使用此值执行:

编程用法

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

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

提示

您不能以数据类型表达式的形式输入 Simulink.Bus 对象的名称。要使用 Bus 对象为模块指定 Data type,请选择 “Bus: <object name>” 选项,并用 Bus 对象的名称替换 <object name>

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

编程用法

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

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

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

提示

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

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

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

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

依存关系

Data type 设置为 “Bus: <object name>” 时可用。

编程用法

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

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

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

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

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

编程用法

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

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

-1

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

N

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

[R C]

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

编程用法

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

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

依存关系

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

命令行信息

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

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

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

编程用法

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

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

编程用法

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

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

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

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

在 R2006a 之前推出