Main Content

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

Data Store Write

向数据存储中写入数据

  • 库:
  • Simulink / Signal Routing

  • Data Store Write block

说明

Data Store Write 模块将其输入端口的值复制到指定的数据存储中。由 Data Store Write 模块执行的每个写入操作都会覆盖数据存储或其所选部分,并替换以前的内容。

此模块写入的数据存储由定义数据存储的 Data Store Memory 模块或信号对象的位置决定。有关详细信息,请参阅数据存储Data Store Memory。数据存储的大小由定义并初始化数据存储的信号对象或 Data Store Memory 模块决定。写入该数据存储的每个 Data Store Write 模块最多可以写入数据存储中的数据量。

多个 Data Store Write 模块可以写入同一数据存储。但是,如果两个 Data Store Write 模块尝试在同一个仿真步中写入同一个数据存储,将发生不可预知的结果。

要从数据存储获取正确的结果,必须确保数据存储按照预期的顺序进行读取和写入。有关详细信息,请参阅对数据存储访问进行排序数据存储诊断

您可以记录某个局部或全局数据存储数据变量在一次仿真过程的所有时间步中的值。有关详细信息,请参阅Log Data Stores

您可以选择 Data Store ReadData Store WriteData Store Memory 模块来突出显示与其相关的模块。

端口

输入

全部展开

要写入指定数据存储的值。Data Store Write 模块接受实信号或复信号。

您可以将总线数组与 Data Store Write 模块结合使用。有关定义和使用总线数组的详细信息,请参阅使用总线数组组合非虚拟总线

要将总线或矩阵元素的子集分配给相关联的数据存储,请使用 Element Assignment 窗格。Data Store Write 模块图标反映您指定的元素。有关详细信息,请参阅访问特定的总线和矩阵元素

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

外部端口,用于指定对应数据存储子元素的赋值的索引。

依存关系

要启用外部索引端口,请在 Element Assignment 选项卡上选择 Enable indexing。然后,在 Index Option 表的第 N 行中,将 Index Option 设置为 “Index vector (port)” 或 “Starting index (port)”。

数据类型: int8 | int16 | int32 | uint8 | uint16

参数

全部展开

参数

指定此模块向其中写入数据的数据存储的名称。旁边的列表列出了模型中与 Data Store Write 模块在同一级别或更高级别的 Data Store Memory 模块的名称。该列表中还包括基础工作区和模型工作区中的所有 Simulink.Signal 对象。要更改名称,请从该列表中选择名称,或者直接在编辑字段中输入名称。

当编译包含此模块的模型时,Simulink® 从该模块级别向上搜索模型,寻找具有指定数据存储名称的 Data Store Memory 模块。如果 Simulink 找不到这样的模块,它将在模型工作区和 MATLAB® 工作区中搜索具有相同名称的 Simulink.Signal 对象。如果 Simulink 找到信号对象,它将在模型的根级创建一个隐藏的 Data Store Memory 模块,此模块的属性由信号对象指定,初始值设置全零数组。该数组的维度从信号对象的 Dimensions 属性继承。

如果 Simulink 既找不到 Data Store Memory 模块,也找不到信号对象,它将停止编译并显示错误。有关搜索路径的详细信息,请参阅符号解析

编程用法

模块参数DataStoreName
类型:字符向量
:数据存储名称
默认值'A'

此属性为只读

此字段列出 Data Store Memory 模块,该模块对它要向其写入数据的存储进行了初始化。

此属性为只读

此字段列出符合以下条件的所有 Data Store Read 模块的路径:与此模块具有相同的数据存储名称,且在模型层次结构中位于同一(子)系统级别或其下的任何子系统中。点击此列表中的任何条目以在模型中突出显示对应的模块。

采样时间,用来控制模块何时写入数据存储。值为 -1 表示继承采样时间。有关详细信息,请参阅 指定采样时间

编程用法

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

元素分配

关联的数据存储中元素的列表。对于包含数组的数据存储,您可以写入整个数据存储,也可以将一个或多个元素分配给整个数据存储。对于总线数据类型的数据存储,您可以展开树视图以查看并选择总线元素。此列表在括号中显示每个元素的最大维度。

如果未选择 Enable indexing,请选择一个元素并使用以下方法之一:

  • 点击 Select>>Selected element(s) 列表中显示该元素及其所有子元素。

  • 使用 Specify element(s) to assign 编辑框指定您要选择进行写入的子元素。然后点击 Select>>

要选择多个元素,请对每个元素重复上述过程。

您也可以选择 Enable indexing,然后选择单个元素,并使用 Index Option 参数动态指定子元素。

要刷新显示并反映对数据存储中使用的数组或总线的修改,请点击 Refresh

依存关系

对此部分(Elements in the arraySignals in the bus)的提示取决于数据存储中数据的类型。

编程用法

模块参数DataStoreElements
类型:字符向量
:以井号分隔的元素列表(请参阅使用命令行指定。)
默认值''

输入 MATLAB 表达式以定义要写入的特定元素,然后点击 Select>> 将该元素添加到 Assigned element(s) 表中。重复以上操作以选择其他元素。

例如,对于名为 DSM、最大维度为 [3,5] 的数据存储,您可以在编辑框中输入表达式,如 DSM(2,4)DSM([1 3],2)。请参阅访问特定的总线和矩阵元素

要应用元素选择,请点击 OKApply

依存关系

仅当未选择 Enable indexing 时,才会出现 Specify element(s) to assign 编辑框。

编程用法

模块参数DataStoreElements
类型:字符向量
:以井号分隔的元素列表(请参阅使用命令行指定。)
默认值''

您选择要分配的元素。Data Store Write 模块图标为您指定的每个元素显示输入端口。

要更改列表中的总线或矩阵元素的顺序,请在列表中选择元素,然后点击 UpDown。更改列表中的元素顺序会同时更改端口的顺序。要移除某个元素,请点击 Remove

依存关系

仅当未选择 Enable indexing 时,才会出现 Assigned element(s) 表。

编程用法

模块参数DataStoreElements
类型:字符向量
:以井号分隔的元素列表(请参阅使用命令行指定。)
默认值''

选中此参数可启用类似于 Assignment 模块所使用的索引,由此您可以使用一个或多个索引输入端口动态指定要写入的子元素的索引,以及使用模块对话框指定索引。选中此参数时,Data Store Write 模块只能写入数据存储的单个元素(即总线中的单个信号)。要使用动态索引写入数据存储的多个元素,请使用多个 Data Store Write 模块。

清除此参数可禁用 Assignment 模块样式索引。您可以选择多个要写入的数据存储元素,但只能通过使用模块对话框指定要写入哪些子元素。

注意

如果关联的数据存储只包含一个标量元素,请不要选择 Enable indexing

编程用法

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

所选数据存储元素的维数。您必须显式指示此数目。

依存关系

仅当选中 Enable indexing 时,此参数才会启用。

编程用法

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

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

依存关系

仅当选中 Enable indexing 时,此参数才会启用。

编程用法

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

按维度定义所选数据存储元素的子元素的索引方式。从列表中,选择:

菜单项操作
Select all

禁用 Index 列。所有子元素都被分配。

Index vector (dialog)

启用 Index 列。输入包含要赋值的子元素索引的向量。

Index vector (port)

禁用 Index 列。相关索引端口定义要赋值的子元素的索引。

Starting index (dialog)

启用 Index 列。输入要赋值的子元素范围的起始索引。范围的大小继承于输入数据信号的相关维度的大小。

Starting index (port)

禁用 Index 列。相关索引端口定义要赋值的元素范围的起始索引。范围的大小继承于输入数据信号的相关维度的大小。

Index 列显示为相关。

依存关系

仅当选中 Enable indexing 时,此参数才会启用。

编程用法

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

如果 Index Option 是 “Index vector (dialog)”,请输入包含要写入的每个子元素的索引的向量。

如果 Index Option 设置为 “Starting index (dialog)”,则输入要写入的子元素范围的起始索引。

依存关系

仅当选择 Enable indexing 并且维度的 Index Option 为 “Index vector (dialog)” 或 “Starting index (dialog)” 时,此参数才启用。

编程用法

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

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

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

在 R2006a 之前推出