绝对时间和消耗时间计算
关于定时器
某些块需要任意一个的值绝对时间(即从程序开始执行到现在的时间)或运行时间(例如,两个触发事件之间的时间间隔)。支持实时模型的目标(金宝apprtModel
)数据结构为请求绝对时间或流逝时间的块提供有效的时间计算服务。绝对计时器和流逝计时器特性包括
在多速率模型中,每个速率最多分配一个计时器。如果以给定速率执行的块不需要计时器,则计时器不会分配给该速率。这最大限度地减少了为计时器分配的内存,并显著减少了维护计时器所涉及的开销。
S-function和TLC api允许您的S-function在模拟和代码生成中访问计时器。
计时器的字长由用户指定的最大计数器值决定,该值由您使用模型配置参数设置应用程序生命周期(天)(金宝app模型)。如果指定此值,计时器不会溢出。有关更多信息,请参见控制时间计数器的内存分配.
看到绝对时间限制有关绝对时间和它所施加的限制的更多信息。
用于周期性和异步任务的定时器
为块提供的计时服务在其中执行周期任务(即,以模型基本速率或子速率运行的任务)。
代码生成器还为其执行的块提供计时器支持金宝app异步对于模型的周期定时源。请参阅以下主题:
计时器的分配
如果您创建或维护一个S-Function块,它需要绝对或经过时间数据,它必须注册需求(参见以编程方式访问计时器).在多速率模型中,计时器是按速率分配的。例如,考虑一个结构如下的模型:
模型中有三种速率,A、B和C。
任何以速率B运行的块都不需要绝对时间或消耗时间。
两个以C速率运行的块记录了绝对时间的要求。
一个以速率A运行的块注册了对绝对时间的需求。
在这种情况下,将生成两个计时器,分别以速率A和C运行。当与速率A和C相关的任务执行时,计时引擎更新计时器。以速率A和C执行的块从与速率A和C相关的计时器获得时间数据。
生成代码中的整数计时器
在生成的代码中,绝对时间和运行时间的计时器被实现为无符号整数。默认大小为64位。如果您设置了模型配置参数,这是分配给计时器的内存量应用程序生命周期(天)(金宝app模型)正
.对于采样率为1000 MHz的应用程序,64位计数器在500年以上都不会溢出。看到异步任务中的定时器而且控制时间计数器的内存分配获取更多信息。
触发子系统中的运行时间计数器
一些块,如离散时间积分器块,执行计算需要经过的时间(增量T)自前一个块执行。需要运行时间数据的块必须注册该需求(参见以编程方式访问计时器).然后,如果需要,被触发的子系统分配和维护一个运行时间计数器。该计时器在子系统级别上起作用,而不是在单个块级别上。如果触发子系统(或触发子系统中无条件执行的子系统)包含一个或多个需要运行时间数据的块,则生成计时器。
请注意
如果您正在使用简化的初始化模式,那么在启用后的第一次执行时,无论子系统是否配置为启用时重置,运行时间都将被重置。有关更多信息,请参见未指定初始化检测(金宝app模型)。