电子商务网站建设作业,北京网站建设V芯ee8888e,企业微信小程序入口,做网站大优惠目录
控制信号数据类型
输入有效数据类型值
使用 Model Data Editor 进行批量编辑
在独立算法、数据路径、模型和总线元素之间共享数据类型
为信号数据重用自定义 C 数据类型
确定使用继承设置的信号的数据类型
尽管设置改变#xff0c;但数据类型依然为 double 控制信…目录
控制信号数据类型
输入有效数据类型值
使用 Model Data Editor 进行批量编辑
在独立算法、数据路径、模型和总线元素之间共享数据类型
为信号数据重用自定义 C 数据类型
确定使用继承设置的信号的数据类型
尽管设置改变但数据类型依然为 double 控制信号数据类型 要控制 Simulink® 模型中某个信号的数据类型可以为对应的模块输出指定数据类型。还可以通过以下方式之一在模型中引入特定数据类型的新信号 通过根级Inport模块或From Workspace模块将所需类型的信号数据从MATLAB® 工作区加载到您的模型中。 在您的模型中创建一个Constant模块并将其参数设置为所需的类型。 使用Data Type Conversion模块将信号转换为所需的数据类型。
默认情况下Simulink 模块决定了其输出的数据类型。许多模块允许使用一个模块参数通常称为 Output data type来覆盖模块的默认类型并显式指定输出数据类型。例如Output data type 参数出现在Constant模块对话框的Signal Attributes 窗格中。 有关详细信息请参阅以下主题
有关此方面的信息...请参阅... 可以指定的有效数据类型值 输入有效数据类型值 可帮助指定有效数据类型值的助手 使用Data Type Assistant指定数据类型 同时为多个模块指定有效的数据类型值 使用Model Data Editor进行批量编辑
输入有效数据类型值 一般情况下您可以将输出数据类型指定为以下任意值 继承数据类型的规则参考数据类型继承规则 内置数据类型的名称参考内置数据类型 计算结果为数据类型的表达式参考数据类型表达式 有效的数据类型值因模块而异。可以使用模块的数据类型参数关联的下拉菜单来查看该模块支持的数据类型。例如Data Store Memory 模块对话框中的 Data type 下拉菜单列出了它支持的数据类型如下所示。 有关特定模块支持的数据类型的详细信息参考Simulink 文档中有关该模块的说明。
数据类型继承规则 模块可从各种来源继承数据类型包括它们连接的信号和特定的模块参数。可以将数据类型参数的值指定为一个规则通过它决定输出信号如何继承其数据类型。要查看模块支持的继承规则请使用模块对话框中的数据类型下拉菜单。下表列出了可以选择的典型规则。
继承规则说明“Inherit:Inherit via back propagation” Simulink在数据类型传播过程中自动确定模块的输出数据类型参考数据类型传播。在这种情况下模块使用下游模块或信号对象的数据类型。 “Inherit:Same as input” 模块的输出信号使用其唯一的输入信号的数据类型。 “Inherit:Same as first input” 模块的输出信号使用其第一个输入信号的数据类型。 “Inherit:Same as second input” 模块的输出信号使用其第二个输入信号的数据类型。 “Inherit:Inherit via internal rule” 模块使用内部规则确定其输出数据类型。内部规则会根据嵌入式目标硬件的属性选择一种能够优化数值准确性、性能和所生成代码大小的数据类型。本软件并非在任何情况下都能同时优化效率和数值准确性。 如果为信号应用继承的数据类型仅当更新模块图之后Simulink 才会确定该信号的具体数据类型。 要在模块图上显示此数据类型参考Port Data Type。 要以可搜索、可排序的表形式查看多个信号的具体数据类型请使用 Model Data Editor在 Modeling 选项卡上点击 Model Data Editor。Data Type 列的右侧显示每个信号的具体数据类型。有关 Model Data Editor 的详细信息参考使用Model Data Editor配置数据属性。
内置数据类型 可以将数据类型参数的值指定为内置数据类型例如single或boolean的名称。要查看模块支持的内置数据类型请使用模块对话框中的数据类型下拉菜单。要查看支持的所有内置数据类型的列表参考Simulink支持的数据类型。
数据类型表达式 可以将数据类型参数的值指定为计算结果为数值数据类型对象的表达式。只需在模块对话框的数据类型字段中输入表达式即可。一般情况下可以输入以下表达式之一 fixdt 命令 将数据类型参数的值指定为调用fixdt函数的命令。此函数允许创建描述定点或浮点数据类型的Simulink.NumbericType对象。 数据类型对象名称 将数据类型参数的值指定为表示数据类型的数据对象的名称。从类中实例化的 Simulink 数据对象例如Simulink.NumericType和Simulink.AliasType可以简化在模型范围内更改输出数据类型的任务并允许为数据类型使用自定义别名。有关 Simulink 数据对象的详细信息参考数据对象。
使用 Model Data Editor 进行批量编辑 可以使用Model Data Editor参考使用Model Data Editor配置数据属性同时为多个信号指定相同的数据类型。使用这种方法可以通过一次性配置多个Inport和Outport模块的数据类型和其他属性来设计模型接口参考Configure Data Interface for Component。还可以在模块算法中精细控制任意信号的数据类型。 例如Simulink产品附带的slexAircraftExample模型中包含很多Gain模块。假设要将模型根级别的三个Gain模块的输出数据类型指定为single。可以按下面所示完成此任务 在 Model Data Editor在 Modeling 选项卡上点击 Model Data Editor中检查Signals选项卡。 在 Filter contents框旁边点击Filter using selection按钮切换模式。 在模型的顶层选择表示三个Gain模块的输出的信号线标记为Zw、Mw和Mq。Model Data Editor显示与三个信号对应的三行。 在Model Data Editor中选择所有三个信号行。例如可以按 CtrlA或按住Shift并点击Source列的首行和尾行。 点击三者之中任一信号在 Data Type 列中的单元格。从下拉列表中选择 “single”。Model Data Editor 会将此选择应用于所有选定的行。 要将模型转换为严格的单精度设计可以参考Validate a Floating-Point Embedded Model。
在独立算法、数据路径、模型和总线元素之间共享数据类型 有些情况下不能依赖数据类型继承参考数据类型继承规则来确保不同数据项例如 Simulink.Bus 对象中的并行数据路径中的信号线或总线元素的数据类型相同。这种情况下可以在工作区或数据字典中创建 Simulink.NumericType或Simulink.AliasType对象。 如果不想通过创建别名来重命名共享的数据类型可以创建一个 Simulink.NumericType 对象。将 IsAlias 属性设置为 false默认值。此示例说明如何使用 Simulink.NumericType 对象在同一模型中的两个查找表模块之间共享输出数据类型。 打开模型示例 sldemo_fuelsys。 sldemo_fuelsys 该模型在基础工作区中创建 Simulink.NumericType 对象。其中一个对象名为 s16En15。 在命令提示符下检查 s16En15 的属性。 s16En15
s16En15 NumericType with properties:DataTypeMode: SingleIsAlias: 0DataScope: AutoHeaderFile: Description: 此对象表示内置的 Simulink 数据类型 single。 在模型中导航到 fuel_rate_control/airflow_calc 子系统中。 在Modeling选项卡上点击Model Data Editor。在 Model Data Editor 中检查Signals选项卡。 在模型中点击Pumping Constant模块的输出信号。Model Data Editor的Data Type列显示信号数据类型设置为s16En15。 点击Ramp Rate Ki模块的输出信号。此模块的输出数据类型也设置为 s16En15。 更新模块图如有必要可将Data Type列拉宽。该列的右侧显示两个查找表模块使用数据类型single。 在命令提示符下配置s16En15以表示数据类型double。 s16En15.DataTypeMode Double; 更新模块图。 两个查找表模块的输出信号现在都使用数据类型double。由于数据类型继承的缘故其他信号如 e0 和 e1获得相同的数据类型。要确保同一模型中的算法或数据路径之间数据类型等同也可以使用诸如Data Type Porpagation和Data Type Conversion Inherited之类的模块。使用这些模块时不需要创建和永久存储数据类型对象。但是不能使用此类模块在不同模型中的信号之间共享数据类型除非这些模型位于同一个模型引用层次结构中。
为信号数据重用自定义 C 数据类型 在模型中可以创建符合现有C代码定义的自定义C数据类型如结构体的信号。使用这些信号可以 将现有C代码替换为Simulink 模型。 集成C代码以进行Simulink仿真例如通过使用 Legacy Code Tool。 准备生成可与现有代码集成的代码 (Simulink Coder™)。
使用以下方法匹配自定义数据类型 对于结构体类型创建一个Simulink.Bus对象。使用该对象作为总线信号的数据类型。可以参考总线信号的数据类型。 对于枚举创建一个枚举类并将其用作信号的数据类型。参考在Simulink模型中使用枚举数据。 要匹配表示某基本数据类型的别名的typedef语句请使用Simulink.AliasType对象作为信号的数据类型。参考Simulink.AliasType。 要创建这些类和对象可以使用Simulink.importExternalCTypes函数。如果模型中的MATLAB Function模块或 Stateflow® 图使用导入的枚举或结构体类型请将模型配置参数配置为包含 (#include) 来自外部头文件的类型定义。参考控制导入的总线和枚举类型定义对于 MATLAB Function 模块以及访问Stateflow图中的自定义代码变量和函数 (Stateflow) 和对于图。
确定使用继承设置的信号的数据类型 如果信号使用继承的数据类型设置例如 “Inherit:Inherit via internal rule”这是大多数模块的默认设置确定信号用于仿真的有意义数据类型则更新模块图然后使用以下一种或两种方法 在Simulink Editor中在Debug选项卡上选择Information Overlays Port Data Type。数据类型显示在每个信号旁边的模块图上。参考Port Data Types。 检查Model Data Editor在 Modeling 选项卡上点击 Model Data Editor中Data Type列的右侧。有关Model Data Editor的详细信息参考使用Model Data Editor配置数据属性。
使用这些方法检查数据类型可以帮助 从更高的层次上为模型设计数据类型策略。 调试由于量化和溢出而造成的数值问题。 使模型在共享时更容易理解。
尽管设置改变但数据类型依然为 double 如果在配置模块参数如 Output data type之后模型中的许多数据项信号、参数和状态仍然使用double数据类型请确认未将该模型配置为覆盖数据类型。参考Control Data Type Override。