文档

为总线信号生成代码

如果你有万博1manbetx®编码器™,定义公共汽车的各种技术模拟本质上是等价的,但可以显著差异的技术效率,规模和生成的代码的可读性。例如,nonvirtual巴士出现在生成的代码结构,且只有一个复制存在的任何算法,使用公共汽车。使用结构生成的代码时可以帮助跟踪模型和代码之间的对应关系。例如,生成的代码总线的创造者块的ex_bus_logging模型。

虚拟总线没有出现作为一个结构或任何其他相干单位生成的代码。一个单独的副本的任何算法,操纵公共汽车为每个元素存在。一般来说,虚拟公共汽车不影响生成的代码。

组信号结构在生成的代码中,使用nonvirtual公交车。看到组织数据结构生成的代码(万博1manbetx仿真软件编码器)。

当你创建一个MATLAB®结构初始化一个包含non-double总线信号元素,您需要设置结构字段的值。您选择的技术设置的值会影响生成的代码的效率和可读性。看到控制数据类型的字段初始条件结构

当你为一个总线信号生成代码的输入或输出从一个参考模型,有一些代码生成的局限性。看到限制虚拟巴士跨越边界模型参考

代码生成的数组公交车信号产生结构与一个特定的格式。看到代码生成的数组的公交车

控制数据类型的字段初始条件结构

您可以使用MATLAB结构初始化信号元素在一辆公共汽车。看到为总线信号指定初始条件

如果信号元素目标总线使用非数值数据类型一般来说:

  • 为了避免手动匹配的字段数据类型与数据类型信号元素,使用无类型表达式设置字段值。当您开发和快速原型模型,为方便使用这种技术。

  • 生成更高效的生产代码,避免浮点数存储在代码中,匹配结构字段的数据类型和数据类型的元素对应的信号。

您选择的技术,可以影响效率和生成的代码的可读性。

为例子,更多信息可调初始条件在生成的代码中,看到的控制信号和状态初始化在生成的代码中(万博1manbetx仿真软件编码器)。

内联结构的数值字段生成的代码

如果你设置默认参数的行为配置参数内联默认情况下,初始条件结构的字段值出现在生成的代码内联号码(non-tunable)。对于这些结构,使用无类型的表达式在仿真软件中设置字段值。万博1manbetx字段值不需要数据类型,因为结构不是可调在生成的代码中。

然而,如果你以后默认参数的行为可调或应用存储类通过使用结构万博1manbetxSimulink.Parameter对象,代码可以包含浮点数存储和低效的显式的类型转换和变化。为了避免这些问题,考虑匹配结构字段的数据类型和相应的信号元素的数据类型。

生成可调结构中直接指定一块对话框

假设您指定一个初始条件结构直接在一块对话框,或在一个万博1manbetxSimulink.Signal对象,等一个表达式结构(“signal1”5“signal2”, 7.2)(而不是存储在一个变量或结构万博1manbetxSimulink.Parameter对象)。在这种情况下,代码中生成一个可调结构,设置默认参数的行为可调

用表来决定如何控制字段的数据类型在这些初始条件结构。

目标 技术

使用nonvirtual总线。

使用无类型表达式设置字段值。

使用虚拟总线。

避免手动匹配的字段数据类型与信号元素。

使用无类型表达式设置字段值。

生成更高效的代码,避免浮点数存储。

匹配的结构与信号元素类型字段的数据类型。存储中的数据类型信息结构体通过使用输入表达式设置字段值。

产生可调的结构存储在一个变量或参数对象

假设您存储在一个变量或一个初始条件结构万博1manbetxSimulink.Parameter基本工作空间中创建的对象或数据字典。例如,你用这种技术来分享多个块之间的结构,或当你设定来生成一个可调结构默认参数的行为内联。在这种情况下,使用的表来决定如何控制字段的数据类型的初始条件结构。

目标 技术

避免手动匹配的字段数据类型与信号元素。

使用无类型表达式设置字段值。在生成的代码中,使用数据类型结构字段。生成的调和算法使用显式类型转换数据类型不匹配。

生成更高效的代码,避免浮点数存储。

匹配的结构与信号元素类型字段的数据类型。数据类型信息存储在字段或使用一个结构万博1manbetxSimulink.Bus控制字段的数据类型和对象同时信号元素。

检查你的模型使用模型顾问可能昂贵的数据类型不匹配,明白了检查结构参数与总线信号使用

初始化一个数组的公交车在参考模型中通过使用一个结构数组。通过一系列结构参考模型的模型参数的值模型块。

匹配的结构与信号元素类型字段的数据类型。数据类型信息存储在字段或使用一个结构万博1manbetxSimulink.Bus对象来控制结构字段的数据类型和信号同时元素。

如果你不通过结构参考模型作为模型参数,按照其他指南nonvirtual公交车来决定如何控制数据类型。

使用无类型的表达式来设置字段值

您可以使用无类型的表达式来设置结构字段值。隐式地使用数据类型的字段。设置字段值代表理想,现实世界的初始化值。

你避免手动匹配字段的数据类型和数据类型的元素对应的信号。然而,根据虚拟总线的信号,您所使用的方法,应用初始条件,和其他因素,可以引入浮点存储和生成的代码中潜在的效率低下的类型转换。

假设您创建了一个总线信号myBusSig这些信号元素。每个元素使用一个特定的数据类型。

myBusSig signalElement1 (int32) signalElement2(布尔)signalElement3(单一)

创建一个初始条件结构initStruct。使用无类型表达式指定字段值。可选地,增强可读性的布尔字段signalElement2,使用价值而不是0

initStruct。signalElement1 = 3;initStruct。signalElement2 = false;initStruct。signalElement3 = 17.35;

如果你使用这个函数万博1manbetxSimulink.Bus.createMATLABStruct创建结构,结构中的函数存储数据类型信息字段。创建结构之后,您可以选择使用无类型的表达式来改变字段值。看到使用Si万博1manbetxmulink.Bus。createMATLABStruct创建结构

存储数据结构领域的类型信息

存储数据类型信息在结构领域,使用输入表达式来设置字段值,或使用功能万博1manbetxSimulink.Bus.createMATLABStruct创建结构。使用这些技术来生成高效的代码通过消除浮点数存储和潜在的低效的显式的类型转换。

为了避免手动应用新数据类型结构字段当你改变相应的信号元素的数据类型,考虑使用万博1manbetxSimulink.Bus对象来控制结构和总线的数据类型。

使用类型的表达式来设置字段值。假设您创建了一个总线信号myBusSig这个信号元素的层次结构。每个元素使用一个特定的数据类型。

myBusSig signalElement1 (int32) signalElement2(布尔)signalElement3(单一)

创建一个初始条件结构initStruct通过使用输入表达式设置字段值。匹配字段的数据类型和数据类型的元素对应的信号。

initStruct。signalElement1 = int32 (3);initStruct。signalElement2 = false;initStruct。signalElement3 =单(17.35);

结构字段存储数据类型信息。如果你以后改变信号的数据类型元素,手动应用新的数据类型对应的结构。

匹配一个定点数据类型,设置字段值使用fi对象。

更改保存字段值的数据类型信息。假设您改变字段的值在一个现有的初始条件结构。保存的数据类型信息的字段可以使用下标赋值,与语法(:)

initStruct.signalElement3 (,) = 16.93;

如果你不使用下标赋值,你必须记得要保存的数据类型使用类型的表达式。

initStruct。signalElement3 =单(16.93);

如果你不使用这两种技术,这个领域失去了数据类型信息。

initStruct。signalElement3 = 16.93;现在%字段数据类型是“双”。

使用万博1manbetxSimulink.Bus.createMATLABStruct创建结构。您可以使用函数万博1manbetxSimulink.Bus.createMATLABStruct创建一个结构的字段都有值,通常0。如果您配置信号元素的数据类型在使用函数之前,例如通过设置块生成信号的输出数据类型元素,输出结构中的每个字段使用相同的数据类型元素对应的信号。字段存储的数据类型的信息如果你使用输入表达式设置值。

您可以初始化信号的一些元素值以外的地面通过部分结构的功能。当您创建这部分结构,将每个字段的数据类型与相应的信号元素的数据类型使用类型的表达式。的更多信息和示例,请参阅万博1manbetxSimulink.Bus.createMATLABStruct

当你以后改变字段的值的结构,选择这些技术来设置新值之一:

  • 无类型的表达式。字段值不再存储数据类型信息。

  • 输入表达式或下标的任务。字段值持续存储的数据类型信息。

使用总线对象作为初始条件结构的数据类型

你是否存储数据类型信息结构字段或使用无类型的表达式来设置字段值,您可以使用一个万博1manbetxSimulink.Bus对象作为整个初始条件结构的数据类型。然后您可以独立管理字段值和数据类型。

如果你使用这种技术,考虑使用无类型表达式设置字段值。然后,你不需要手动匹配字段数据类型当你改变信号的数据类型的元素。控制字段的数据类型和信号元素,使用数据类型总线中的元素对象的属性。

假设您使用总线的创造者块创建一个总线信号myBusSig这些信号元素。

myBusSig signalElement1 (int32) signalElement2(布尔)signalElement3(单一)

  1. 打开汽车编辑器。

    buseditor

  2. 创建一个总线对象,myBus,对应于总线信号。

  3. 创建一个初始条件结构initStruct。使用无类型的表达式来设置字段值。增强可读性的signalElement2,使用布尔值而不是0

    initStruct。signalElement1 = 3;initStruct。signalElement2 = false;initStruct。signalElement3 = 17.35;

  4. 代表结构,创建一个万博1manbetxSimulink.Parameter对象。

    initStruct = 万博1manbetxSimulink.Parameter (initStruct);

  5. 使用参数对象指定一个初始条件的总线信号。例如,在一个单位延迟块对话框中,设置初始条件initStruct

  6. 使用总线对象指定的数据类型参数对象。

    initStruct。数据类型=“巴士:myBus”;

  7. 使用总线对象指定的数据类型总线信号。例如,在总线的创造者块对话框中,设置输出数据类型总线:myBus

在仿真和在生成的代码中,字段和信号结构元素在公共汽车上使用您指定的数据类型对象。前仿真和代码生成的参数对象投结构字段的数据类型指定总线中的对象。

总线对象的基本信息,请参阅当使用总线对象

为现有的结构配置数据类型

删除数据类型的所有字段的信息结构,您可以编写一个自定义函数,取代了字段值数字。使用例子函数castStructToDbl作为一个模板。

使用双打的结构转换为一个存储数据类型信息,您可以创建一个引用结构使用功能万博1manbetxSimulink.Bus.createMATLABStruct。您可以编写一个自定义函数将字段值的数据类型参考结构。使用例子函数castStructFromDbl作为一个模板。

检查与模型不匹配的数据类型的顾问

检测当结构字段的数据类型不符合相关的总线信号元素,在模型编辑器中,可以使用万博1manbetx分析>模型的顾问>通过产品>万博1manbetx检查结构参数与总线信号使用检查。

限制虚拟巴士跨越边界模型参考

如果你使用一个总线信号作为输入或输出从参考模型(模型块):

  • 你不能配置I / O参数步骤方法风格的c++类接口引用的模型。

    作为一个解决方案,使用nonvirtual总线。另外,使用默认的风格的c++类接口。

  • 你不能配置函数原型控制参考模型。

    作为一个解决方案,使用nonvirtual总线。

更多的使用公共汽车作为输入或输出的信息从一个参考模型,明白了总线数据交叉模型参考界限。关于总线虚拟世界的更多信息,请参阅虚拟和Nonvirtual公交车

代码生成的数组的公交车

当你为一个模型生成代码,包括公共汽车、数组类型定义代表底层总线类型中出现* _types.h文件。

代码生成生产C结构数组,您可以集成遗留C代码,使用数组的结构。必要时,代码为总线变量(数组)中生成以下结构:

  • 阻塞IO

  • 外部输入

  • 外部输出

这是一个简化的例子为数组所生成的代码的公共汽车。

基本信息代码生成nonvirtual巴士,它出现在代码结构,明白了组织数据结构生成的代码(万博1manbetx仿真软件编码器)。

相关的话题

这个主题有帮助吗?