文档

DWORK矢量基础知识

什么是dwork矢量?

dwork向量是s功能询问simulink的内存块金宝app®发动机以分配模型中s功能的每个实例。如果您的S函数的多个实例可以在模型中发生,则您的S函数必须使用DWORD向量而不是全局或静态内存来存储S函数变量的实例特定值。否则,您的s功能会承担另一个实例所需的一个实例覆盖数据的风险,从而导致模拟失败或产生错误的结果。跟踪多个s功能实例的能力称为重新进入

您可以通过使用引擎为S函数的每个特定实例管理的DWORD向量创建S函数,该函数是重新进入的。

DWORK矢量有几个优势:

  • 为块变量提供特定实例的存储

  • 金宝app支持浮点,整数,指针和一般数据类型

  • 消除静态和全球变量

  • 与Simulink引擎直接互动以执行内存分配,初始化和金宝appDealLocation

  • 促进代码生成期间的s功能

  • 提供更多控制数据如何在生成代码中出现的控制

笔记

DWORD矢量是最具广泛用途的工作矢量类型,以下各节关注其使用。Simu金宝applink产品提供了支持浮点,整数,指针和模式数据的其他基本工作向量。金宝app您可以在基本工作向量

DWork向量为设置模拟和代码生成过程中数据的数据类型,名称等提供了最大的灵活性。以下列表描述了您可以在DWork向量上设置的所有属性:

  • 数据类型

  • 尺寸

  • 数字类型,无论是真实的还是复杂的

  • 姓名

  • 用法类型(请参阅dwork向量的类型

  • 金宝appSimulink Coder™标识符

  • 金宝appSimulink编码器存储类

  • 金宝appSimulink编码器C类型预选赛

如何使用dwork向量有关如何设置这些属性的说明。他们三个金宝appSimulink编码器属性仅与代码生成有关,在模拟过程中没有效果。

dwork矢量和金宝app引擎

DWork向量的关键优势是它们与Simulink引擎的连接。金宝app在模拟过程中,发动机可以减轻与DWork向量相关的所有内存管理任务的S功能。

要查看该连接的有用方式,请考虑使用全局变量存储数据的S函数。如果模型中存在多个s功能的副本,则S功能的每个实例都必须仔细分配,操纵和处理其使用的每一部分。

在使用DWORD向量的S函数中,引擎而不是S功能管理DWork向量的内存。在模拟开始时,引擎根据DWork矢量内容的大小和数据类型分配了S函数实例所需的内存。在模拟结束时,引擎会自动处理内存。

笔记

您无法控制发动机在模拟过程中如何分配DWORD向量的内存。使用时金宝appSimulink编码器软件,您可以使用存储类在代码生成过程中自定义内存分配。看到sssetdworkrtwstorageclass参考页面有关使用存储类的更多信息。

该引擎还根据S功能中使用的DWORD矢量类型执行特殊任务。例如,它包括将离散状态信息存储在模型范围范围的状态向量中的DWork向量,并在状态日志记录期间可用。

dwork矢量和金宝app编码器产品

DWork向量允许您自定义数据中的数据在生成的代码中的显示方式。生成代码时,金宝appSimulink编码器代码生成器在模型的数据结构中包括DWORD向量。DWork向量控制结构中使用的字段名称。DWork向量还控制生成代码中使用的存储类和C类型预选赛。看sfun_rtwdwork.c例如。