主要内容

控制信号数据类型

控制Simulink中信号的数据类型金宝app®模型时,您可以为相应的块输出指定数据类型。

您还可以通过以下任何一种方式将特定数据类型的新信号引入模型:

  • 从MATLAB加载所需类型的信号数据®通过根级别的工作区进入您的模型轮廓尺寸块或A.来自工作区块。

  • 创建一个常数块在模型中并将其参数设置为所需类型。

  • 用一个数据类型转换块将信号转换为所需的数据类型。

金宝appSimulink块默认确定其输出的数据类型。许多块允许您使用通常命名的块参数覆盖默认类型并显式指定输出数据类型输出数据类型。例如,输出数据类型参数出现在信号属性块对话框中的。

有关更多信息,请参阅以下主题:

信息… 看...

您可以指定的有效数据类型值

输入有效的数据类型值

帮助您指定有效数据类型值的助手

使用数据类型助手指定数据类型

同时为多个块指定有效数据类型值

使用模型数据编辑器进行批量编辑

输入有效的数据类型值

通常,您可以将输出数据类型指定为以下任何一项:

有效的数据类型值在块之间变化。您可以使用与块数据类型参数相关联的下拉菜单来查看特定块支持的数据类型。金宝app例如,数据类型“数据存储内存块”对话框上的下拉菜单列出了它支持的数据类型,如下所示。金宝app

有关特定块支持的数据类型的更多信息,请参阅Simulink文档中块的文档。金宝app金宝app

数据类型继承规则

块可以从各种源继承数据类型,包括所连接的信号和特定块参数。您可以根据规则指定数据类型参数的值,该规则确定输出信号如何继承其数据类型。要查看块支持的继承规则,请在块对话框中使用“数据类型”下拉菜单。金宝app下表列出了可以选择的典型规则。

继承规则 描述
继承:通过反向传播继承

金宝appSimulink在数据类型传播期间自动确定块的输出数据类型(参见数据类型传播).在这种情况下,块使用下行块或信号对象的数据类型。

继承:与输入相同

该块使用其唯一输入信号的数据类型进行输出信号。

继承:与第一个输入相同

该块使用其第一输入信号的数据类型进行输出信号。

继承:与第二输入相同

块使用它的第二个输入信号的数据类型作为它的输出信号。

继承:通过内部规则继承

块使用一个内部规则来确定它的输出数据类型。内部规则选择数据类型,以优化数字精度、性能和生成的代码大小,同时考虑嵌入式目标硬件的属性。软件并不总是能够同时优化效率和数值精度。

将继承的数据类型应用于信号时,Simulink仅在更新框图后才能确定信号的特定数据类型。金宝app

  • 要在框图上显示此特定数据类型,请参阅端口数据类型

  • 要在可搜索的,可排序表中检查多个信号的特定数据类型,请使用模型数据编辑器(在造型选项卡,单击模型数据编辑器).右边的数据类型列显示每个信号的特定数据类型。有关模型数据编辑器的详细信息,请参阅使用模型数据编辑器配置数据属性

内置数据类型

可以将数据类型参数的值指定为内置数据类型的名称,例如,单身的布尔。要查看块支持的内置数据类型,请使用块对话框的“数据类型下拉”菜单。金宝app看Simulink支持的金宝app数据类型金宝app获取所支持的所有内置数据类型的列表。金宝app

数据类型表达式

可以将数据类型参数的值指定为计算结果为数字数据类型对象的表达式。只需在块对话框的数据类型字段中输入表达式。一般情况下,输入下列表达式之一:

  • Fixdt.命令

    的命令,指定数据类型参数的值Fixdt.功能。此功能允许您创建一个金宝appsimulink.numerictype.描述固定点或浮点数据类型的对象。

  • 数据类型对象名称

    将数据类型参数的值指定为表示数据类型的数据对象的名称。金宝app从类中实例化的Simulink数据对象,例如金宝appsimulink.numerictype.金宝appsimulink.aliaStype.,简化了对输出数据类型进行模型范围更改的任务,并允许您为数据类型使用自定义别名。看数据对象有关Simulink数据对象的更多信息。金宝app

使用模型数据编辑器进行批量编辑

使用模型数据编辑器(参见使用模型数据编辑器配置数据属性),您可以同时将相同的数据类型分配给多个信号。通过配置数据类型和多个的其他属性,可以使用这种技术来设计模型的接口轮廓尺寸外港街区一次(见配置组件的数据接口).您还可以在块算法中精细控制任意信号的数据类型。

例如,slexAircraftExample模特在飞机纵向飞行控制例子中包含很多获得块。假设您要在模型的根级别指定三个增益块的输出数据类型单身的。您可以实现此任务如下:

  1. 在模型数据编辑器(上)造型选项卡,单击模型数据编辑器),检查信号标签。

  2. 旁边的内容过滤框,切换过滤使用选择按钮。

  3. 在模型的顶级,选择表示三个输出的信号线获得块(标记为ZW.兆瓦,Mq).模型数据编辑器显示了与三个信号对应的三行。

  4. 在“模型数据编辑器”中,选择所有三个信号(行)。例如,您可以按Ctrl +一个或者转移的顶部和底部行列。

  5. 对于任何三个信号中的任何一个,请单击该单元格中的数据类型列。在下拉列表中选择单身的。模型数据编辑器将此选择应用于所有所选行。

要将模型转换为严格的单一精度设计,请参见验证浮点嵌入式模型

在单独的算法,数据路径,模型和总线元素之间共享数据类型

在某些情况下,您不能依赖于数据类型继承(请参阅数据类型继承规则)建立不同数据项的数据类型之间的等价性(例如并行数据路径中的信号线或总线元素金宝appsimulink.bus.目的)。相反,您可以创建一个金宝appsimulink.numerictype.金宝appsimulink.aliaStype.在工作区或数据字典中的对象。

创建一个金宝appsimulink.numerictype.对象,如果不想通过创建别名重命名共享数据类型。设置Isalias.财产错误的(默认值)。

此示例显示了如何使用a金宝appsimulink.numerictype.对象在同一模型中共享两个查找表块之间的输出数据类型。

  1. 打开示例模型sldemo_fuelsys

    sldemo_fuelsys

    模型的创建金宝appsimulink.numerictype.基础工作区中的对象。其中一个物体被命名S16EN15

  2. 在命令提示符处,检查S16EN15

    S16EN15
    S16EN15 =具有属性的NumericType:DataTypeMode:'Single'Isalias:0 Datascope:'Auto'标题文件:''描述:''

    这个对象表示内置的Simulink数据类型金宝app单身的

  3. 在模型中,导航到fuel_rate_control / airflow_calc.子系统。

  4. 在这一点造型选项卡,单击模型数据编辑器。在模型数据编辑器中,检查信号标签。

  5. 在模型中,单击输出信号泵送常数块。模型数据编辑器数据类型列显示信号数据类型被设置为S16EN15

  6. 点击的输出信号斜坡率基块。此块的输出数据类型也设置为S16EN15

  7. 更新框图,如有必要,展开宽度数据类型列。列的右侧显示,两个查找表块使用数据类型单身的

  8. 在命令提示符下,配置S16EN15表示数据类型双倍的

    s16En15。DataTypeMode ='双倍的';

  9. 更新框图。

    两个查找表块的输出信号现在使用数据类型双倍的。由于数据类型继承,其他信号,例如E0.E1.,获取相同的数据类型。

或者,要在同一模型中建立算法或数据路径之间的数据类型等价,您可以使用诸如数据类型传播数据类型转换继承。使用这些块时,您无需创建和永久存储数据类型对象。但是,除非模型位于同一模型引用层次结构中,否则无法使用块在不同模型中的信号之间共享数据类型。

为信号数据重用自定义C数据类型

在模型中,您可以创建符合自定义C数据类型的信号,例如现有C代码定义的结构。使用这些信号:

  • 用Simulink模型替换现有的C代码。金宝app

  • 在Simulink中集成C代码进行模拟(例如,使用遗留代码工具)。金宝app

  • 准备生成代码(金宝app仿真软件编码器™)您可以与现有代码集成。

使用这些技术匹配您的自定义数据类型:

要创建这些类和对象,可以使用该函数金宝appSimulink.importExternalCTypes

如果一个Matlab功能块或州流®图表使用导入的枚举或结构类型,将模型配置参数配置为包括(#包括)从外部头文件的类型定义。看控制导入总线和枚举类型定义(Matlab功能块),访问定制代码变量和函数在endyflow图表中(州流)将自定义结构集成在状态溢图中(州流)(用于图表)。

确定使用继承设置的信号的数据类型

当信号使用继承的数据类型设置时,如继承:通过内部规则继承(大多数块的默认设置),确定信号用于模拟的有意义的数据类型,更新框图,然后使用这些技术中的一个或两个:

  • 在Simuli金宝appnk编辑器中调试选项卡,选择信息覆盖并导航到端口部分。选择要显示的端口数据类型。数据类型显示在每个信号旁边的框图上。有关更多信息,请参阅端口数据类型

  • 检查右侧数据类型在模型数据编辑器中造型选项卡,单击模型数据编辑器).有关模型数据编辑器的详细信息,请参阅使用模型数据编辑器配置数据属性

使用这些技术来检查数据类型可帮助您获取:

  • 在高电平上设计模型的数据类型策略。

  • 调试由于量化和溢出造成的数值问题。

  • 在共享时更容易理解模型。

有关更多信息,请参阅端口数据类型

数据类型仍然存在双倍的尽管改变了设置

如果模型中的许多数据项(信号,参数和状态)继续使用数据类型双倍的配置块参数之后输出数据类型,确认模型未配置为覆盖数据类型。看控制数据类型覆盖

也可以看看

||

相关的话题