任务调度 matlab代码,基于时间的调度和代码生成

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

基于时间的调度和代码生成采样时间注意事项

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 只需启用通常被阻止的模型执行任务即可。下图说明了这种差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值