控制信号的数据类型
控制信号的数据类型在一个仿真软件金宝app®模型中,您指定一个数据类型对应块的输出。
你也可以引入一个新的特定数据类型的信号模型在下列方面:
金宝app仿真软件模块确定数据类型的默认输出。许多块允许您覆盖默认的类型和显式地指定一个输出数据类型,使用一块参数,通常命名输出数据类型。例如,输出数据类型参数出现在信号的属性面板固定块的对话框。
有关更多信息,请参见下列主题:
信息… | 看到…… |
---|---|
有效的数据类型的值,您可以指定 |
|
助理,帮助您指定有效的数据类型的值 |
|
同时为多个块指定有效的数据类型值 |
输入有效数据类型值
一般来说,您可以指定输出数据类型如下列:
有效的数据类型值块之间的不同。您可以使用下拉菜单与一块数据类型参数视图的数据类型支持一个特定的块。金宝app例如,数据类型下拉菜单的数据存储内存块对话框列出它所支持的数据类型,如下所示。金宝app
更多的信息关于一个特定的块支持的数据类型,看到的文档块在仿真软件文档。金宝app金宝app
数据类型继承规则
块可以继承数据类型从各种各样的来源,包括信号连接和特定块参数。您可以指定一个数据类型参数的值作为一个规则,确定输出信号如何继承了它的数据类型。一块支持查看继承规则,使用数据类型下拉菜单对话框。金宝app下表列出了典型的规则,你可以选择。
继承规则 | 描述 |
---|---|
通过反向传播继承:继承 |
金宝app仿真软件自动决定了输出数据类型在数据块类型的传播(见数据类型传播)。在这种情况下,使用数据块类型的下游信号块或对象。 |
继承:同样作为输入 |
块使用的数据类型其唯一的输入信号的输出信号。 |
继承:首先输入一样 |
块使用的数据类型第一输入信号的输出信号。 |
继承:同第二输入 |
块使用的数据类型的第二输入信号的输出信号。 |
继承:继承通过内部规则 |
块使用内部规则来确定其输出数据类型。内部规则选择一个数据类型,优化数值精度,性能,和生成的代码大小,同时考虑到嵌入式目标硬件的特性。这并不总是可能的软件优化效率,同时数值精度。 |
当你继承了数据类型应用到信号,仿真软件决定的特定数据类型信号只有在你更新框图。金宝app
内置的数据类型
您可以指定一个数据类型参数的值作为一个内置的数据类型的名称,例如,单
或布尔
。把一块支持内置的数据类型,使用数据类型下拉菜单对话框。金宝app看到数据类型支持的仿真软件金宝app金宝app所有的内置数据类型支持。金宝app
数据类型的表达式
您可以指定一个数据类型参数的值作为一个表达式的求值结果为数值数据类型对象。简单数据类型的字段中输入表达式块对话框。一般来说,输入以下表达式:
fixdt
命令指定数据类型参数的值作为一个调用的命令
fixdt
函数。这个函数允许您创建一个金宝appSimulink.NumericType
对象,描述了一个定点或浮点数据类型。数据类型对象名称
指定数据类型参数的值作为一个数据对象的名称代表一个数据类型。金宝app模型数据对象实例化的类,例如
金宝appSimulink.NumericType
和金宝appSimulink.AliasType
,简化的任务做model-wide改变输出数据类型和允许您使用自定义数据类型的别名。看到数据对象关于模型数据对象的更多信息。金宝app
使用模型数据编辑批量编辑
使用模型数据编辑器,您可以将相同的数据类型分配给多个信号同时进行。您可以使用这种技术来设计你的模型的接口配置的多个数据类型和其他属性轮廓尺寸和外港块(见配置数据接口)。你也可以精确控制块中的数据类型的任意信号的算法。
例如,slexAircraftExample
模型飞机纵向飞行控制例子中包含很多获得块。假设你想指定输出数据类型三个增益模块的根级别的模型单
。您可以实现这个任务如下:
在模型数据编辑器(建模选项卡上,单击模型数据编辑器),检查信号选项卡。
旁边的内容过滤框,切换过滤器使用选择按钮。
在顶层模型,选择代表的信号线路输出的三个获得块(标记
Zw
,兆瓦
,Mq
)。模型数据编辑器显示三行对应于三个信号。在模型数据编辑器中,选择所有三个信号(行)。例如,您可以Ctrl +一个或持有转变而点击顶部和底部行源列。
对于任何的三个信号,点击的细胞数据类型列。从下拉列表中,选择
单
。模型数据编辑器这个选择适用于所有选定的行。
将模型转化为一个严格的单精度设计,明白了验证一个浮点嵌入模型。
之间共享一个数据类型不同的算法,数据路径,模型和总线的元素
在某些情况下,您不能依赖数据类型继承(见数据类型继承规则)建立等价之间的不同的数据项的数据类型(如信号线路并行数据路径或总线元素金宝appSimulink.Bus
对象)。相反,您可以创建一个金宝appSimulink.NumericType
或金宝appSimulink.AliasType
对象在一个工作区或数据字典。
创建一个金宝appSimulink.NumericType
对象如果你不想共享数据类型重命名通过创建一个别名。设置IsAlias
财产假
(默认)。
这个例子展示了如何使用一个金宝appSimulink.NumericType
对象之间共享一个输出数据类型两个查找表块相同的模型。
打开建模一个容错燃料控制系统示例模型
sldemo_fuelsys
。openExample (“金宝appsimulink_automotive / ModelingAFaultTolerantFuelControlSystemExample”)sldemo_fuelsys
模型的创建
金宝appSimulink.NumericType
基本工作空间中的对象。命名的对象之一s16En15
。在命令提示符处,检查的性质
s16En15
。s16En15
s16En15 = NumericType属性:DataTypeMode:“单一”IsAlias: 0 DataScope:“汽车”HeaderFile:描述:“
该对象代表了内置模型数据类型金宝app
单
。在模型中,导航到
fuel_rate_control / airflow_calc
子系统。在建模选项卡上,单击模型数据编辑器。在模型数据编辑器,检查信号选项卡。
在模型中,单击的输出信号泵恒块。模型数据编辑器数据类型列显示的信号数据类型设置为
s16En15
。点击的输出信号斜坡率Ki块。的输出数据类型这一块也将
s16En15
。更新框图,如有必要,扩大的宽度数据类型列。右边的列显示两个查找表块使用的数据类型
单
。在命令提示符下,配置
s16En15
来表示数据类型双
。s16En15。DataTypeMode =“双”;
更新框图。
现在两个查找表块的输出信号使用的数据类型
双
。由于数据类型继承,等信号e0
和e1
,获得相同的数据类型。
另外,算法或数据之间建立数据类型等价路径在同一个模型中,您可以使用块等数据类型传播和数据类型转换继承。当您使用这些块时,您不需要创建和永久存储数据类型对象。然而,您不能使用块之间共享一个数据类型的信号在不同的模型,除非模型在同一个层次结构模型参考。
重用定制C信号数据的数据类型
在一个模型中,您可以创建符合自定义C数据类型的信号,如结构,现有的C代码定义了。使用这些信号:
用仿真软件模型替换现有的C代码。金宝app
C代码集成的模拟仿真软件(例如,通过使用遗留代码工具)。金宝app
准备生成代码(金宝app仿真软件编码器™),您可以与现有代码集成。
使用这些技术来匹配您的自定义数据类型:
对于一个结构类型,创建一个
金宝appSimulink.Bus
对象。使用对象的数据类型总线信号。看到公共汽车的数据类型。对于一个枚举,创建一个枚举类并使用它作为信号的数据类型。看到使用枚举数据在仿真软件模型金宝app。
匹配一个
类型定义
声明,代表了一种原始的别名,数值数据类型使用金宝appSimulink.AliasType
对象的数据类型的信号。看到金宝appSimulink.AliasType
。
要创建这些类和对象,您可以使用函数金宝appSimulink.importExternalCTypes
。
如果一个MATLAB函数块或Stateflow®图在你的模型使用导入的枚举或结构类型,配置模型配置参数包括(# include
)从外部头文件类型定义。看到控制进口汽车和枚举类型定义(MATLAB函数块),访问Stateflow图表中的自定义代码变量和函数(Stateflow)和整合自定义结构Stateflow图表(Stateflow)(图表)。
确定数据类型的信号,使用继承的设置
当信号使用一种遗传数据类型设置等继承:继承通过内部规则
(大多数块的默认设置),确定有意义的数据类型为模拟信号使用,更新框图,然后使用一个或两种技术:
使用这些技术来检查数据类型可以帮助您:
设计的数据类型策略模型在高水平。
调试数值量化和溢出的问题。
使模型更容易理解当共享它。
有关更多信息,请参见端口数据类型。
数据类型仍双
尽管改变设置
如果许多数据项(信号、参数和状态)模型中继续使用的数据类型双
在您配置块等参数输出数据类型,确认模型没有覆盖配置数据类型。看到控制数据类型覆盖。
另请参阅
金宝appSimulink.AliasType
|金宝appSimulink.NumericType
|金宝appSimulink.Bus