代码生成器组织使用的数据模型的数据结构。对于每个模式,代码生成器存储数据,如信号和状态,在全球结构也被称为标准的数据结构。使用这些数据结构访问数据在生成的代码中。
实时模型(rtModel
)数据结构是一个顶级的数据结构,其中包含特定于数据,使用的模型可重用的功能。代码生成器使用这个数据结构只多实例代码生成。
在一个模型中,root轮廓尺寸和外港块代表主块算法的输入和输出。默认情况下,代码生成器将这些块聚合为标准结构存储输入和输出数据。
信号线路,块参数、状态和其他模型数据出现在生成的代码的标准结构。一般信息,请参阅如何生成的代码存储内部信号、状态和参数数据。
表显示了生成的代码中一些常见的数据结构。结构类型的名称,如果适用,结构变量的代码生成模型依赖于模型的设置。无论设置、结构类型的名称在代码中包含的短名称结构类型的短名称表中的列。
数据结构生成的一个模型
结构类型的短名称 | 数据结构来表示 |
---|---|
ExtU |
数据从根轮廓尺寸块 |
ExtY |
数据从根外港块 |
B |
块输出信号 |
ConstB |
块输出常量值 |
P |
块的参数 |
ConstP |
常数参数 |
DW |
离散块的州 |
XDis |
使子系统的状态 |
InstP |
参数的参数 |
SharedDSM |
本地数据存储共享 |
你可以排除数据出现在这些结构中使用:
存储类的直接应用。例如,您可以使用存储类来表示信号,可调参数,作为单独的全局变量。有关更多信息,请参见界面元素C代码生成配置模型。
配置参数,比如那些优化面板的配置参数对话框。您可以调整这些配置参数来控制数据的默认表示。有关更多信息,请参见模型配置参数:代码生成优化。
访问字段功能的模拟数据结构(SimStruct
),仿真软件的万博1manbetx软件提供了一组函数。代码生成器取代SimStruct
以优化的实时模型(rtModel
)的数据结构。
代码生成GRT利用ERT系统目标文件使用实时模型的数据结构(rtModel)
。这个结构封装模型相关的信息比模拟结构更加紧凑的形式SimStruct
。根据模型,模型相关的信息包括内部数据等数据可重用函数和错误状态。
当您设置代码接口包装来可重用的功能
代码生成器包模型数据(如块I / O、Dwork和参数)到实时模型的数据结构。代码生成器将实时模型结构通过引用传递到入口点函数生成的模型。如果你设置通过根级I / O(嵌入式编码)来模型数据结构的一部分
代码生成器包根级模型输入和输出到实时模型的数据结构。
生成的代码的效率功能依赖于一代的rtModel
而不是SimStruct
,包括:
整数绝对和运行时间的服务
独立的计时器为异步任务
代的改进的C API代码信号,监控状态和参数
修剪的数据结构,以减少其大小(仅ERT-derived系统目标文件)
实时模型中定义的数据结构c
或main.cpp
当你建立你的模型生成文件。导模型,如果你明确的模型配置参数主程序生成一个例子(嵌入式编码),rtmodel.h
文件生成。的rtmodel.h
文件包含# include
指令的要求rt_main.c
或rt_cppclass_main.cpp
静态主程序模块。的rt_main.c
或rt_cppclass_main.cpp
包括rtmodel.h
访问模型相关的数据结构和模块,因为静态主程序入口点并不是在代码生成时创建。
代码生成器提供了一组访问宏rtModel
数据结构。类似于这些宏ssSetxxx
和ssGetxxx
宏S-functions用来访问SimStruct
数据,包括noninlined S-functions编制的代码生成器。
使用宏的设置rtmGetxxx
和rtmSetxxx
访问实时模型的数据结构。使用这些宏在生成的代码中c
或main.cpp
模块的外部代码。如果你是定制c
或main.cpp
(静态或生成的文件),使用rtmGetxxx
和rtmSetxxx
而不是ssSetxxx
和ssGetxxx
宏。
的使用rtmGetxxx
和rtmSetxxx
宏是一样的ssSetxxx
和ssGetxxx
版本,除了你替换SimStruct年代
通过实时模型的数据结构rtM
。此表列出了rtmGetxxx
和rtmSetxxx
中使用的宏rt_main.c
和rt_main.cpp
。
宏用于访问数据结构的实时模型
rtm宏观语法 |
描述 |
---|---|
|
块连续状态的衍生品 |
|
返回指针指向向量存储样本模型的时间偏移量与rtM有关 |
|
得到样品的数量乘以一个街区 |
|
返回一个指针 |
|
返回一个外部模式信息模型的数据结构(仅由代码生成器使用外部模式) |
|
返回一个数据结构代码生成器使用的日志记录(仅使用代码生成器) |
|
返回一个数据结构的实时模型方法信息(仅使用代码生成器) |
|
返回包含模型解算器信息的数据结构(仅使用代码生成器) |
|
返回一个指针示例标记向量 |
|
得到任务样品时间 |
|
指针指向任务样品时间 |
|
指针指向一个任务ID |
|
返回仿真步骤类型ID ( |
|
回归模型的基本步长 |
|
获取当前的仿真时间 |
|
设置下一个样品的时间 |
|
获得当前时间为当前的任务 |
|
得到仿真停止时间 |
|
设置仿真停止时间 |
|
返回一个计时引擎所使用的数据结构模型的(仅使用代码生成器) |
|
返回一个指针指向当前时间 |
|
得到仿真开始时间 |
|
确定任务是连续的 |
|
确定模拟的重要一步 |
|
确定样品的时间 |
rtmGetErrorStatus (rtm) |
获取当前的错误状态 |
val rtmSetErrorStatus (rtm) |
设置当前的错误状态 |
rtmGetErrorStatusPointer (rtm) |
返回一个指针指向当前的错误状态 |
rtmGetStopRequested (rtm) |
返回请求是否停止 |
rtmGetBlockIO (rtm) |
块I / O数据结构 |
val rtmSetBlockIO (rtm) |
组块的I / O数据结构 |
rtmGetContStates (rtm) |
得到连续状态的数据结构 |
val rtmSetContStates (rtm) |
设置连续状态的数据结构 |
rtmGetDefaultParam (rtm) |
获得默认参数的数据结构 |
val rtmSetDefaultParam (rtm) |
设置默认参数的数据结构 |
rtmGetPrevZCSigState (rtm) |
前面的讨论二阶导数过零信号状态的数据结构 |
val rtmSetPrevZCSigState (rtm) |
设置之前讨论二阶导数过零信号状态数据结构 |
rtmGetRootDWork (rtm) |
DWork数据结构 |
val rtmSetRootDWork (rtm) |
设置DWork数据结构 |
rtmGetU (rtm) |
得到根输入数据结构(当根输入传递的模型数据结构) |
val rtmSetU (rtm) |
设置根输入数据结构(当根输入传递的模型数据结构) |
rtmGetY (rtm) |
得到根输出数据结构(当根输出传递的模型数据结构) |
val rtmSetY (rtm) |
设置根输出数据结构(当根输出传递的模型数据结构) |
有关更多信息,请参见SimStruct上市的宏和函数使用。