Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

引用模型的采样时间

Model 模块如何继承采样时间

Model 模块的采样时间是它所引用的模型的采样时间。如果引用模型必须以特定速率运行,则由该模型指定所需的速率。否则,引用模型将从父模型继承采样时间。

在触发子系统、函数调用子系统或迭代子系统中放置 Model 模块的具体情况取决于能否继承采样时间。此外,允许 Model 模块继承采样时间可使其重用潜力最大化。例如,一个模型可以固定其所有输入和输出信号的数据类型和维度。您可以使用不同的采样时间重用该模型,例如,以 0.1s 或 0.2s 的离散采样时间触发。

继承采样时间的条件

如果模型符合以下条件,引用模型将继承其采样时间:

  • 没有任何连续状态

  • 指定固定步长求解器,且 Fixed-step size 为 “auto

  • 不包含指定采样时间(继承或常量除外)的模块

  • 不包含任何在内部使用特定采样时间的 S-Function

  • 在采样时间传播后只有一个采样时间(不算常量和触发采样时间)

  • 不包含使用绝对时间的任何模块(如依赖于绝对时间的模块中所列),包括 Stateflow®

  • 不包含输出取决于继承的采样时间的任何模块,如输出依赖于继承采样时间的模块中所列。

您可以在父模型中的任何位置使用继承采样时间的引用模型。相反,不能在触发子系统、函数调用子系统或迭代子系统中使用具有内在采样时间的引用模型。为避免速率转移错误,如果模块连接到具有内在采样时间的引用模型,请确保模块与引用模型以相同的速率运行。

注意

连续采样时间不能传播到未要求明确指定采样时间的 Model 模块。

有关详细信息,请参阅输出依赖于继承采样时间的模块

确定引用模型的采样时间

要确定引用模型是否可以继承采样时间,请将 Periodic sample time constraint 配置参数设置为 Ensure sample time independent。如果模型不能继承采样时间,此设置会导致 Simulink® 在编译模型时显示错误消息。有关此选项的详细信息,请参阅Periodic sample time constraint

要确定引用模型的内在采样时间或多速率引用模型的最快内在采样时间,请执行以下操作:

  1. 更新引用该模型的模型

  2. 从父模型中选择一个 Model 模块

  3. 在 MATLAB® 命令行输入以下内容:

    get_param(gcb, 'CompiledSampleTime')

依赖于绝对时间的模块

以下 Simulink 模块依赖于绝对时间,因此会阻止引用模型继承采样时间:

某些非 Simulink 模块也依赖于绝对时间。请参阅您使用的模块集的文档。

输出依赖于继承采样时间的模块

在引用模型中使用其输出依赖于继承采样时间的模块可能会导致仿真产生意外或错误的结果。编译不需要指定速率的引用模型时,Simulink 会检查哪些模块的输出是继承采样时间的函数。此检查包括检查 S-Function 模块。如果 Simulink 发现任何这样的模块,它会指定默认的采样时间。如果您将 Configuration Parameters > Solver > Periodic sample time constraint 设置为 Ensure sample time independent,Simulink 将显示错误。有关此选项的详细信息,请参阅Periodic sample time constraint

以下内置模块的输出依赖于继承采样时间。这些模块的输出阻止引用模型从父模型继承采样时间:

Simulink 假定 S-Function 的输出不依赖于继承采样时间,除非 S-Function 有明确的相反声明。有关如何创建声明其输出是否依赖于继承采样时间的 S-Function 的信息,请参阅Specify S-Function Sample Times

在继承采样时间的引用模型中,应避免在未能声明输出是否依赖于继承采样时间的引用模型中使用 S-Function。排除此类 S-Function 有助于避免仿真错误。默认情况下,当您更新或仿真模型时,Simulink 会警告您模型中是否包含此类模块。有关详细信息,请参阅Unspecified inheritability of sample time

采样时间一致性

使用一致的采样时间速率有助于更可靠地使用被其他模型引用的模型。确保引用模型中的根 InportOutport 模块的速率与读写它们的模块的速率保持一致。当以下采样时间不一致时,Simulink 将产生错误:

  • Inport 模块的采样时间与该 Inport 模块输入到的模块的采样时间不一致。

  • Outport 模块的采样时间与输入到该 Outport 模块的模块采样时间不一致。

要解决指出引用模型中采样时间不一致的错误,可使用以下方法之一。

顶层 InportOutport 模块采样时间可能的解决方案

与它所连接的所有模块都不同,但这些模块的采样时间都相同

设置 InportOutport 模块的采样时间,使其与连接的模块的采样时间相匹配。

与一个或多个模块不同,但也有一个或多个模块的采样时间与它相同

对于与 Inport 或 Outport 模块不匹配的模块,可在连接到 InportOutport 模块的信号上插入 Rate Transition 模块。

采样率和求解器

顶层模型的求解器控制模型层次结构中的所有连续采样时间。例如,对于固定步长求解器,引用模型中的所有连续速率以顶层模型的固定步长运行。有关采样时间如何影响求解器的信息,请参阅采样时间的类型

相关示例

详细信息