基于时间的调度和代码生成采样时间注意事项
Simulink® 模型按一种或多种采样时间运行。Simulink 产品在构建多速率系统(即具有多种采样时间的系统)方面提供了很高的灵活性。但是,这种灵活性也会使您构造的模型存在以下限制:代码生成器无法为其生成可在多任务环境中执行的实时代码。要使多速率模型按照预期(即给出正确答案)实时运行,有时您必须修改模型或指示 Simulink 引擎修改模型。通常,这些修改需要将 Rate Transition 模块放在具有不相等采样时间的模块之间。下列各节讨论在多任务环境中使用多速率模型必须解决的问题。有关采样时间(包括速率转换)的全面讨论,请参阅 什么是采样时间?、子系统中的采样时间、系统中的采样时间、解决速率转移问题 及相关主题。任务模式
固定步长模型有两种执行模式:单任务和多任务。这些模式仅适用于固定步长求解器。要选择执行模式,请选中模型配置参数 Treat each discrete rate as a separate task。选中此参数时,将对多速率模型应用多任务执行模式。清除此参数时,将应用单任务执行模式。
注意
使用多任务的多速率模型不能引用使用单任务的多速率模型。
实时系统中的模型执行可以在实时操作系统的帮助下完成,也可以在裸机目标硬件上完成(其中,模型在中断服务例程 (ISR) 上下文中运行)。
系统(如 The Open Group UNIX® 或 Microsoft® Windows® 系统)是多任务型系统并不意味着您的程序可以实时执行。这是因为程序可能不会在需要时抢占其他进程。
在给定时间只能存在一个进程的操作系统(如 PC-DOS)中,中断服务例程 (ISR) 必须执行以下步骤:保存处理器上下文、执行模型代码、收集数据以及还原处理器上下文。
其他操作系统(如符合 POSIX 的操作系统)可提供自动上下文切换和任务调度。这可以简化 ISR 执行的操作。在本例中,ISR 只需启用通常被阻止的模型执行任务即可。下图说明了这种差异。

本文介绍了基于时间的调度在Matlab中的应用,特别是多速率模型在实时代码生成中的限制和问题。讨论了Simulink模型的单任务和多任务执行模式,强调了在多任务环境中正确处理采样时间转换的重要性,并提到了Rate Transition模块的角色。文章还对比了仿真与实时执行的差异,并分析了单任务与多任务操作在效率上的考量,为优化模型执行提供了指导。
最低0.47元/天 解锁文章
3994

被折叠的 条评论
为什么被折叠?



