主要内容

基于时间的调度和代码生成

样品时间考虑

金宝app®模型运行在一个或多个样品时间。仿真软件金宝app产品提供了相当大的灵活性在构建多重速率的系统,也就是说,系统与多个样品的时间。然而,这种灵活性还允许您构建模型的代码生成器不能生成实时代码执行在一个多任务环境中。使多重速率的实时模型如预期运作(即给正确的答案),有时候你必须修改您的模型或指示模型引擎修改模型。金宝app一般来说,涉及的修改将率过渡块块之间的不平等的样本。下面的章节将讨论问题必须解决使用多重速率的模型在一个多任务环境中。全面讨论的样本,包括汇率转换,看到样品时间是什么?,样例次子系统,样品在系统,解决汇率转换和相关的话题。

任务模式

一个固定的模型有两种执行方式:单一任务,多任务处理。这些模式只提供固定的解决者。选择一个执行模式,选择模型配置参数对待每个离散率作为一个单独的任务。当您选择该参数,应用多任务执行多重速率的模型。当你清楚这个参数,应用单一任务的执行。

请注意

一个多重速率的模型,并使用多任务不能引用一个多重速率的模型,使用单一任务。

在实时系统的执行模型可以用一个实时操作系统的帮助下,或这是可以做到的裸机目标硬件,模型的上下文中运行一个中断服务例程(ISR)。

这一事实(如Open Group的UNIX系统®或微软®窗户®系统)是多任务并不意味着程序可以实时执行。这是因为程序可能不会在需要时抢占其他进程。

在操作系统(比如PC-DOS),只有一个进程可以在给定的时间存在,一个中断服务例程(ISR)必须执行的步骤节省处理器上下文,代码执行模型,收集数据,和恢复处理器上下文。

其他操作系统,例如posix兼容,提供自动上下文切换和任务调度。这简化了执行的操作ISR。在这种情况下,ISR仅仅使模型执行任务,通常屏蔽。下一个图说明了这种差异。

模型执行和转换速度

实时生成按预期执行的代码,你(或仿真软件引擎)可能需要识别和处理模型中的采样率转换。金宝app在多任务模式中,默认情况下仿真软件引擎国旗错误在仿真模型包含无效的转换速度金宝app,虽然可以使用模型配置参数多任务速度过渡改变这一行为。参数单个任务速度过渡可用于相同的目的单一任务模式。

为了避免提高率转换错误,任务之间插入率过渡块。你可以请求模型引擎处理速率由插入隐藏自动转换速率过金宝app渡块。看到自动速度过渡这个选项的一个解释。

要理解这些问题,首先考虑如何仿真软件模拟不同于实时节目。金宝app

执行期间金宝app模型仿真

发动机仿真软件模拟模型金宝app之前,订单模块基于拓扑依赖关系。这包括扩大虚拟子系统到它们包含单个块和压扁整个模型到一个列表中。一旦这一步完成,每一块按顺序执行。

这个过程的关键是块的排序。一块的输出直接依赖于其输入(即一块直接引线)不能执行,直到块驾驶它的输入执行。

一些街区设置他们的输出基于值在前一个时间步或从初始条件指定为一个块参数。这样一个块的输出是由一个值存储在内存中,可以独立于其输入的更新。在模拟,计算执行之前推进相对应的变量。这将导致计算发生瞬间(也就是说,没有计算延迟)。

模型实时执行

实时程序与仿真软件模拟的不同之处在于,程序必须执行实时同步的模型代码。金宝app每一个计算结果在某些计算延迟。这意味着样本间隔不能缩短或延长(如它们可以在仿真软件模拟),导致低效率的执行。金宝app

考虑下面的时序图。

注意取样间隔的处理效率低下t1。间隔不能压缩来提高执行速度,因为根据定义,样品时间实时监测。

可以绕过这个潜在的低效率利用多任务模式。多任务处理模式定义了任务模型的不同优先级执行部分的代码,有不同的采样率。

看到多任务和Pseudomultitasking模式这是如何工作的描述。重要的是要理解这部分之前。

单一任务和多任务操作

单一任务的程序需要更长的采样间隔,因为所有的计算都必须在每一个时钟周期执行。这可能导致低效率使用可用的CPU时间,如前图所示。

多任务处理模式可以提高程序的效率,如果模型是大型和有许多块在每个利率执行。

然而,如果您的模型是由一个单一税率,而且只有几个街区执行以较慢的速度,多任务处理可以降低性能。在这种模型中,任务切换的开销可以大于执行所需的时间越慢。在这种情况下,它是更有效执行所有块的速度优势。

如果你有一个模型,可以受益于多任务执行,您可能需要修改您的模型通过添加率过渡块(或指导模型引擎)产生预期的结果。金宝app

关于执行两种模式的更多信息和示例,明白了为单一任务执行进行建模对于多任务执行建模

相关的话题