Main Content

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

Assignment

为指定的信号元素赋值

  • 库:
  • Simulink / Math Operations

    HDL Coder / Math Operations

  • Assignment block

说明

Assignment 模块为指定的信号元素赋值。您可以通过在模块对话框中输入索引,或者通过将一个或多个外部索引源连接到模块,来指定要赋值的元素的索引。模块数据端口 U 处的信号指定要赋给 Y 的值。该模块将 Y 的指定元素替换为数据信号的元素。

基于您为 Number of output dimensions 参数输入的值,将显示一个索引选项表。表中的每一行对应于 Number of output dimensions 中的一个输出维度。对于每个维度,您可以定义要使用的信号元素。可将向量信号指定为一维信号,将矩阵信号指定为二维信号。要启用外部索引端口,请在表的对应行中将 Index Option 设置为 “Index vector (port)”。

例如,假设一个 5 维信号具有从 1 开始的索引模式。Assignment 模块对话框中的表将发生变化,使每个维度都有一个对应的行。如果您使用以下选项定义每个维度:

Index Option索引
1Assign all 
2Index vector (dialog)[1 3 5]
3Starting index (dialog)4
4Starting index (port) 
5Index vector (port) 

所赋的值为 Y(1:end,[1 3 5],4:3+size(U,3),Idx4:Idx4+size(U,4)-1,Idx5)=U,其中 Idx4Idx5 是维度 4 和 5 的输入端口。

在 Normal 模式下使用 Assignment 模块时,Simulink® 将模块输出初始化为零,即使模型没有显式初始化它们也是如此。在 Accelerator 模式下,Simulink 将模型转换成 S-Function。这涉及到代码生成。生成的代码可能不会隐式初始化模块输出。在这种情况下,您必须显式初始化模型输出。

您可以使用模块为向量、矩阵或多维信号赋值。

可使用总线数组作为 Assignment 模块的输入信号。

条件子系统中的 Assignment 模块

如果在条件子系统模块中放置一个 Assignment 模块,在许多情况下可能会插入一个信号缓冲区,并且将来自 Assignment 模块的信号与部分写入合并会导致错误。

但是,如果选中条件子系统 Outport 模块的 Ensure outport is virtual 复选框,将对此类情况提供支持,并且可以使用 Assignment 模块部分写入数组。

端口

输入

全部展开

输出信号的初始化信号。如果元素未被赋予另一个值,则输出元素的值与此输入信号值匹配。

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

赋给输出元素的值(当指定了该值时)。

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

外部端口,用于指定对应输出元素的赋值的索引。

依存关系

要启用外部索引端口,请在 Index Option 表的对应行中将 Index Option 设置为 “Index vector (port)” 或 “Starting index (port)”。

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

输出

全部展开

对指定元素赋值后的输出信号。

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

参数

全部展开

键入输出信号的维度数。

命令行信息

参数:NumberOfDimensions
类型:字符向量
值:integer
默认值:'1'

选择索引模式。如果选择 “One-based”,则索引 1 指定输入向量的第一个元素。如果选择 “Zero-based”,则索引 0 指定输入向量的第一个元素。

命令行信息

参数:IndexMode
类型:字符向量
值:'Zero-based' | 'One-based'
默认值:'One-based'

按维度定义信号元素的索引方式。从列表中,选择:

菜单项操作
Assign all

这是默认设置。所有元素都被分配。

Index vector (dialog)

启用 Index 列。输入元素的索引。

Index vector (port)

禁用 Index 列。索引端口定义元素的索引。

Starting index (dialog)

启用 Index 列。输入要赋值的元素范围的起始索引。

Starting index (port)

禁用 Index 列。索引端口定义要赋值的元素范围的起始索引。

如果您为表中的任何维度选择 “Index vector (port)” 或 “Starting index (port)”,则可以为 Initialize output (Y) 参数指定下列值之一:

  • Initialize using input port <Y0>

  • Specify size for each dimension in table

否则,Y0 始终初始化输出端口 Y

IndexOutput Size 列显示为具有相关性。

命令行信息

参数:IndexOptionArray
类型:字符向量
值: 'Assign all' | 'Index vector (dialog)' | 'Index option (port)' | 'Starting index (dialog)' | 'Starting index (port)'
默认值:'Index vector (dialog)'

如果 Index Option 设置为 “Index vector (dialog)”,则输入所需的每个元素的索引。

如果 Index Option 设置为 “Starting index (dialog)”,则输入要选择的元素范围的起始索引。从起点开始的元素数量由此维度在 U 处的大小决定。

命令行信息

参数:IndexParamArray
类型:字符向量
值:元胞数组
默认值:'{ }'

输入模块输出信号的宽度。

依存关系

要启用此列,请为 Initialize output (Y) 参数选择 “Specify size for each dimension in table”。

命令行信息

参数:OutputSizeArray
类型:字符向量
值:元胞数组
默认值:'{ }'

指定如何初始化输出信号。

  • Initialize using input port <Y0>” - 位于输入端口 Y0 的信号初始化输出。

  • Specify size for each dimension in table” - 要求您在 Output Size 参数中指定模块的输出信号的宽度。如果输出具有未分配的元素,则这些元素的值未定义。

依存关系

当您将 Index Option 设置为 “Index vector (port)” 或 “Starting index (port)” 时启用。

命令行信息

参数:OutputInitialize
类型:字符向量
'Initialize using input port <Y0>' | 'Specify size for each dimension in table'
默认值:'Initialize using input port <Y0>'

指定当您还有未分配的输出元素时是否生成警告或错误。选项包括:

  • Error” - Simulink 软件终止仿真并显示错误。

  • Warning” - Simulink 软件显示警告并继续进行仿真。

  • None” - Simulink 软件不采取任何行动。

命令行信息

参数:DiagnosticForDimensions
类型:字符向量
值:'Error' | 'Warning' | 'None'
默认值:'None'

将采样时间指定为 -1 以外的值。有关详细信息,请参阅指定采样时间

依存关系

此参数不可见,除非将其显式设置为 -1 以外的值。要了解详细信息,请参阅不建议设置采样时间的模块

编程用法

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

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

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

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

在 R2006a 之前推出