编译Simulink-Simulation多线程?

问题描述 投票:-1回答:1

编译(使用simulink-coder-toolbox)simulink模型是运行多线程还是只运行一个线程/进程?据我所知,如果你没有并行工具箱,模拟是一个单一的过程,但是多线程呢?

我很好奇simulink如何在一个模型中处理模拟时间的不同步长?例如,如果模型中有2个并行路径,具有不同的步长(1 x复杂工作,0.1秒步进时间和100 x轻工作,0.001s步进时间),这些路径是一个接一个地运行还是以某种方式与线程并行运行节省执行时间?

multithreading simulink
1个回答
1
投票

Simulink Coder生成相当简单的vanilla C代码,默认情况下会编译它。代码本身没有固有的多线程或并行性。

在给定任务ID的情况下给出模型中的不同采样率,并且通过代码的每个步骤将执行与当前执行的id相关联的代码。任务还可以拆分为不同的文件,以便在RTOS上部署时更轻松地执行多任务处理。

多个任务的执行方式在很大程度上取决于目标操作系统和编译过程。如果您正在编译为部署在非实时操作系统(例如Windows)上的共享库或exe,那么您将无法进行任何多任务处理。如果您有RTOS,以适当的方式生成代码,并进行适当的编译,那么您将具有多任务处理。

在doc:Model Single-Core, Multitasking Platform Execution中讨论了它是如何工作的

您可以访问代码并访问构建文件(并且可以根据需要修改它们。)查看正在进行的操作的最简单方法是查看该代码。

© www.soinside.com 2019 - 2024. All rights reserved.