硬件接口模型中的计时
仿真时间
当您的 Simulink® 模型中的模块必须与硬件设备对接时,您可能需要考虑仿真运行花费的真实时间和仿真时间,以及仿真期间硬件接口模块执行的频率和次数。通常,您的硬件通信速率与真实时间(即“时钟”时间)相关联。您可以调整仿真的持续时间、模块的执行速率和仿真的调速,以适应您的硬件要求。本主题讨论硬件接口模型中的基本计时概念,使用固定步长进行模块执行。
仿真具有由开始时间和停止时间定义的一段持续时间。默认持续时间是 10 个仿真时间单位(或仿真秒)。这些仿真秒不一定等效于时钟测量的真实时间秒。
要调整模型持续时间,请打开模型的“配置参数”对话框。在 Simulink 工具条的建模选项卡上,点击模型设置。在左窗格中选择求解器。开始时间和停止时间设置定义了持续时间。在大多数情况下,开始时间应为 0.0
,您可以设置停止时间来反映您要仿真持续的时间。
仿真运行时,模块执行的计时由一系列时间步处理。对于具有固定时间步的自动求解器的设置,在编译期间,Simulink 计算时间步频率,以适应模型中所有模块的采样时间参数设置。例如,如果模型中的所有定时模块的采样时间设置为 0.01 或其倍数,则 0.01 的时间步适用于整个模型。
模块采样时间
对于与硬件设备对接的模型,您可能首选指定速率的固定时间步。例如,您可能需要毫秒级分辨率来控制模块的计时关系。按如下方式设置计时选项:
开始时间:
0.0
停止时间:
10.0
类型:
Fixed-step
求解器:
discrete
定步长:
0.001
图像显示具有以下设置的对话框。
在此模型中,默认采样时间设置为 0.01
的模块每十个时间步执行一次,即在 10 秒的仿真中执行 1001 次。另一个必须以两倍速率运行的模块应将采样时间设置为 0.005
。
注意
在大多数情形下,您可以将定步长设置保留为 auto
,从而允许 Simulink 根据所有模块设置计算适当的基础采样时间。
由于仿真持续时间为 10 个仿真秒,而模块的采样时间周期为 0.01 个仿真秒,因此该模块在一次完整仿真中执行 1001 次(包括第一个和最后一个仿真步)。仿真运行的速度取决于其模块能执行的速度,而这 1001 次执行所用的时间可能远远少于 10 秒的时钟时间。因此,仿真实际所用时间取决于它对模型中的模块执行所需迭代次数的速度。通常,仿真的目的是以一种比真实情况下中花费更少时间的方式进行建模行为。在这些情形下,模块执行的顺序和重复执行很重要,而实际时间的实际跨度可能并不重要。
模型仿真调速
您可能需要模型以固定的真实时间间隔重复一些操作来与硬件设备进行交互。例如,模块可能会重复从温度计读取数据,或发送触发信号让外部信号生成器输出脉冲序列。
如果将模块的采样时间设置为 0.1
,则仅在仿真时间内控制模块的执行速率。要将仿真时间与真实时间相关联,您可以使用仿真调速来降低仿真速度,使其以真实时间速度运行。要访问“仿真调速选项”对话框,请在 Simulink 工具条的仿真选项卡上,点击运行按钮箭头,然后选择仿真调速。
要对仿真进行调速,请选择启用调速以减慢仿真。默认情况下,仿真时间与真实时间的比率为 1
,这意味着用一秒的仿真时间对模型进行仿真调速为大约使用一秒的真实时间。
使用此调速设置,模块采样时间为 0.1
时约等于 0.1 时钟秒,也就是每秒十次模块执行。因此,每 0.1 仿真秒生成一个设备输出脉冲的模块,现在每时钟秒生成 10 个脉冲。
有关需要更精确地调速到时钟时间的情况的信息,请参阅实时仿真和测试。
另请参阅
仿真调速选项 (Simulink)
相关主题
- 什么是采样时间? (Simulink)