主要内容

关于数据类型动态仿真模块

这个词数据类型指计算机在内存中表示数字或文本的方式。数据类型决定了分配给数字或字母的存储容量、用于将数字值编码为二进制数字模式的方法,以及可用于操作该类型的操作。大多数计算机提供多种数据类型来表示数字,每种类型在精度、动态范围、性能和内存使用方面都有特定的优势。为了优化性能,可以指定MATLAB中使用的变量的数据类型®技术计算环境。动态仿真模块®通过允许您指定Simulink信号和块参数的数据类型来构建此功能。

在实时控制应用中,指定模型信号和块参数的数据类型的能力特别有用。例如,它允许Simulink模型指定用于表示信号的最佳数据类型,并允许自动代码生成工具(如仿真软件编码器™产品。通过为模型的信号和参数选择最合适的数据类型,可以极大地提高性能并减少由模型生成的代码的大小。

Simulink在模拟之前和模拟期间执行广泛的检查,以确保您的模型是类型安全也就是说,由模型生成的代码不会溢出或下溢,从而产生不正确的结果。使用默认数据类型()本质上是类型安全的。因此,如果您不打算从您的模型中生成代码,或者在您的模型中使用非默认的数据类型,您可以跳过本节的其余部分。

另一方面,如果您计划从您的模型生成代码并使用非默认的数据类型,请仔细阅读本节的其余部分,特别是关于数据类型规则的部分(请参阅数据分类指引).通过这种方式,您可以避免引入数据类型错误,从而阻止您的模型运行到完成或根本无法模拟。

数据分类指引

遵守以下规则可以帮助你创建类型安全的模型,因此,执行时没有错误:

  • 信号数据类型通常不影响参数数据类型,反之亦然。

    此规则的一个重要例外是Constant块,其输出数据类型由其参数的数据类型决定。

  • 如果一个块的输出是一个输入和参数的函数,并且输入和参数的类型不同,Simulink会在计算输出之前将参数转换为输入类型。

  • 通常,块输出在其输入处出现的数据类型。

    重要的例外包括常量块和数据类型转换块,它们的输出数据类型由块参数决定。

  • 虚拟块在其输入端接受任何类型的信号。

    虚拟块的例子包括Mux而且多路分配器块和无条件执行的子系统。

  • 连接到非虚块端口的信号数组的元素必须具有相同的数据类型。

  • 连接到非虚拟块的输入数据端口的信号在类型上不能不同。

  • 控制端口(例如,启用和触发端口)接受任何数据类型。

  • 解算块只接受信号。

  • 连接非对一个块的信号禁用该块的过零检测。

数据类型传播

无论何时启动模拟、启用端口数据类型显示或刷新端口数据类型显示,Simulink都会执行一个称为数据类型传播的处理步骤。该步骤包括确定未指定类型的信号的类型,并检查信号和输入端口的类型以确保它们不冲突。如果出现类型冲突,则会显示一个错误对话框,指定数据类型冲突的信号和端口。还突出显示了创建类型冲突的信号路径。

请注意

您可以在模型中插入类型转换(数据类型转换)块以解决类型冲突。有关更多信息,请参见数据类型转换

另请参阅

|

相关的话题

Baidu
map