在Simulink中控制信号的数据类型万博1manbetx®模型时,为相应的块输出指定数据类型。
您也可以通过以下任何一种方式将特定数据类型的新信号引入模型:
万博1manbetxSimulink模块确定由默认它们的输出的数据类型。许多块,您可以覆盖默认类型,并明确指定输出的数据类型,使用通常命名为一个块参数输出数据类型。例如,输出数据类型参数出现在信号属性“常量块”对话框的窗格。
更多信息请参见以下主题:
信息… | 看到…… |
---|---|
可指定的有效数据类型值 |
|
一个助手,帮助您指定有效的数据类型值 |
|
对于多个块同时指定有效数据类型值 |
通常,您可以将输出数据类型指定为以下任意一种:
有效的数据类型值的块而异。您可以使用块中的数据类型参数相关联的下拉菜单中查看数据类型的特定模块支持。万博1manbetx例如,数据类型“数据存储内存块”对话框的下拉菜单列出了它所支持的数据类型,如下所示。万博1manbetx
有关特定块支持的数据类型的详细信息,请参阅Simulink文档中的该块文档。万博1manbetx万博1manbetx
块可以从各种来源,包括它们所连接的信号和特定的块参数继承数据类型。你可以指定一个数据类型参数为确定输出信号如何继承其数据类型的规则的值。要查看继承规则,一个块支持,请使用块对话框中的数据类型下拉菜单。万博1manbetx下表列出了典型的规则,你可以选择。
继承规则 | 描述 |
---|---|
继承:通过反向传播继承 |
万博1manbetxSimulink中自动确定数据类型传播期间的块的输出的数据类型(见数据类型传播)。在这种情况下,块使用下游块或信号对象的数据类型。 |
继承:与输入相同 |
块使用其唯一输入信号的数据类型作为输出信号。 |
继承:与第一个输入相同 |
块使用其第一个输入信号的数据类型作为输出信号。 |
继承:与第二个输入相同 |
块使用它的第二个输入信号的数据类型作为输出信号。 |
继承:通过内部规则继承 |
块使用一个内部规则来确定其输出数据类型。内部规则选择一种数据类型来优化数值精度、性能和生成的代码大小,同时考虑嵌入的目标硬件的属性。这是不总是可能的软件,以优化效率和数值精度在同一时间。 |
当应用了继承的数据类型到一个信号,确定的Simulink在更新框图仅后的信号的特定的数据类型。万博1manbetx
若要在框图上显示此特定数据类型,请参阅端口数据类型。
若要在可搜索、可排序的表中检查此特定数据类型的多个信号,请使用模型数据编辑器(视图>模型数据编辑器)。右边的数据类型列显示每个信号的特定数据类型。有关模型数据编辑器的详细信息,请参阅使用模型数据编辑器配置数据属性。
可以将数据类型参数的值指定为内置数据类型的名称,例如,单
或布尔
。要查看内置的数据类型,一个块支持,请使用块对话框中的数据类型下拉菜单。万博1manbetx看到Simulink支持的万博1manbetx数据类型万博1manbetx获取支持的所有内置数据类型的列表。万博1manbetx
可以将数据类型参数的值指定为计算结果为数值数据类型对象的表达式。只需在块对话框的data type字段中输入表达式。一般来说,输入下列表达式之一:
fixdt
命令
将数据类型参数的值指定为调用的命令fixdt
函数。这个函数允许您创建万博1manbetxSimulink.NumericType
对象描述定点或浮点数据类型。
数据类型对象名称
将数据类型参数的值指定为表示数据类型的数据对象的名称。万博1manbetx从类实例化的Simulink数据对象,例如万博1manbetxSimulink.NumericType
和万博1manbetxSimulink.AliasType
,简化了对输出数据类型进行模型范围更改的任务,并允许您使用数据类型的自定义别名。看到数据对象有关Simulink数据对象的更多信息。万博1manbetx
使用模型数据编辑器(参见使用模型数据编辑器配置数据属性),您可以同时将相同的数据类型分配给多个信号。您可以使用此技术通过配置数据类型和多个属性来设计模型的接口轮廓尺寸和外港立即阻塞(见为组件配置数据接口)。您还可以精细地控制任意信号的数据类型,在你的块算法。
例如,slexAircraftExample
Simulink产品附带的模型包含很多万博1manbetx获得块。假设你想在模型的根级别指定的三个增益块的输出数据类型单
。可以按如下方式完成此任务:
在模型数据编辑器(视图>模型数据编辑器),检查信号标签。
旁边的内容过滤框,切换使用选择过滤器按钮。
在模型的顶层,选择代表这三个输出的信号线获得块(标记ZW
,兆瓦
,Mq
)。模型数据编辑器显示了与三个信号对应的三行。
模型中的数据编辑器中选择所有三个信号(行)。例如,您可以按Ctrl +一个或持有转变控件中的顶部和底部行源列。
对于三个信号中的任何一个,单击数据类型列。从下拉列表中选择单
。模型数据编辑器适用该选择所有选定行的。
若要将模型转换为严格的单精度设计,请参阅验证浮点嵌入式模型。
在某些情况下,你不能依赖于数据类型继承(见数据类型继承规则)提供到数据类型的不同的数据项(例如,在并行数据路径的信号线或总线元件在一个之间建立对等万博1manbetxSimulink.Bus
对象)。相反,您可以创建万博1manbetxSimulink.NumericType
或万博1manbetxSimulink.AliasType
对象在工作区或数据字典中。
创建一个万博1manbetxSimulink.NumericType
如果不希望通过创建别名重命名共享数据类型,则使用。设置IsAlias
财产假
(默认值)。
这个例子说明了如何使用万博1manbetxSimulink.NumericType
对象,以便在同一模型中的两个查找表块之间共享输出数据类型。
打开示例模型sldemo_fuelsys
。
sldemo_fuelsys
模型的创建万博1manbetxSimulink.NumericType
对象在底座的工作区。其中一个对象被命名为s16En15
。
在命令提示符下,检查属性s16En15
。
s16En15
s16En15 = NumericType与属性:DataTypeMode: '单' IsAlias:0 DATASCOPE: '自动' HeaderFile: '' 说明: ''
此对象表示内置的Simulink数据类型万博1manbetx单
。
在模型中,导航到fuel_rate_control / airflow_calc
子系统。
选择视图>模型数据编辑器。在模型数据编辑器中,检查信号标签。
在模型中,点击的输出信号常抽块。模型数据编辑器数据类型列显示信号数据类型设置为s16En15
。
的输出信号斜坡率Ki块。这个块的输出数据类型也被设定为s16En15
。
更新框图和,如果必要的话,展开的宽度数据类型列。列的右侧显示两个查找表块使用该数据类型单
。
在命令提示符下,配置s16En15
表示数据类型双
。
s16En15。DataTypeMode =“双”;
更新框图。
两个查找表块的输出信号现在使用该数据类型双
。由于数据类型继承,其它信号,例如e0
和e1
,获取相同的数据类型。
另外,要在同一模型中的算法或数据路径之间建立数据类型等价性,您可以使用这样的块数据类型传播和继承的数据类型转换。使用这些块时,不需要创建和永久存储数据类型对象。但是,您不能使用这些块在不同模型中的信号之间共享数据类型,除非这些模型处于相同的模型引用层次结构中。
在模型中,您可以创建符合自定义C数据类型的信号,例如现有C代码定义的结构。使用这些信号:
用Simulink模型替换现有的C代码。万博1manbetx
(例如,通过使用传统代码工具)整合在Simulink为模拟C代码。万博1manbetx
准备生成代码(万博1manbetx仿真软件编码器™),您可以与现有的代码集成。
使用这些技术来匹配您的自定义数据类型:
对于结构类型,创建万博1manbetxSimulink.Bus
对象。使用该对象作为总线信号的数据类型。看到总线信号的数据类型。
对于枚举,创建枚举类并将其用作信号的数据类型。看到在Simulink模型中使用枚举数据万博1manbetx。
匹配一个类型定义
代表一个原始的,数字数据类型的一个别名语句,使用一个万博1manbetxSimulink.AliasType
对象作为信号的数据类型。看到万博1manbetxSimulink.AliasType
。
要创建这些类和对象,可以使用该函数万博1manbetxSimulink.importExternalCTypes
。
如果一个MATLAB功能块或Stateflow®图表在您的模型中使用导入的枚举或结构类型,配置模型配置参数以包括(# include
)来自外部头文件的类型定义。看到控制进口总线和枚举类型定义(MATLAB功能块)和集成自定义C/ c++代码进行仿真(状态流)和在状态流图表中集成自定义结构(为了图表)。
当信号使用继承的数据类型设置时,例如继承:通过内部规则继承
(大多数块的默认设置),以确定信号用于模拟的有意义的数据类型,更新框图,然后使用其中一种或两种技术:
在Simuli万博1manbetxnk编辑器中,选择显示>信号和港口>端口数据类型。数据类型出现在框图中每个信号旁边。有关更多信息,请参见端口数据类型。
检查的右侧数据类型模型中的数据编辑器柱(视图>模型数据编辑器)。有关模型数据编辑器的详细信息,请参阅使用模型数据编辑器配置数据属性。
使用这些技术来检查数据类型可以帮助你:
在高层上为模型设计数据类型策略。
调试由量化和溢出引起的数值问题。
使模型在共享时更容易理解。
有关更多信息,请参见端口数据类型。
双
尽管改变设置如果许多模型中的数据项(信号,参数和状态)的继续使用的数据类型双
在配置块参数如输出数据类型,确认该模型没有被配置为覆盖数据类型。看到控制数据类型覆盖。
万博1manbetxSimulink.AliasType
|万博1manbetxSimulink.Bus
|万博1manbetxSimulink.NumericType