Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab Simulink并行运行块? 假设我在Simulink中有一个大的模型,我们称之为模型A。现在考虑模型A的一个非常小的子集,称之为模型B。当模型B计算某个东西时,这些结果被发送到模型A的其他部分,并且它们作为这个函数的一部分起作用。然而,模型B可能需要很长的时间来计算-然而,这对于模型a的其他模块来说不是问题,只要模型B计算完成,他们都乐于从模型B接收数据。本质上,我希望模型B与模型A并行运行,这样在等待模型B完成任务时,整个模拟/过程不会停止。在Simulink中可以做到这一点吗?_Matlab_Parallel Processing_Simulink - Fatal编程技术网

Matlab Simulink并行运行块? 假设我在Simulink中有一个大的模型,我们称之为模型A。现在考虑模型A的一个非常小的子集,称之为模型B。当模型B计算某个东西时,这些结果被发送到模型A的其他部分,并且它们作为这个函数的一部分起作用。然而,模型B可能需要很长的时间来计算-然而,这对于模型a的其他模块来说不是问题,只要模型B计算完成,他们都乐于从模型B接收数据。本质上,我希望模型B与模型A并行运行,这样在等待模型B完成任务时,整个模拟/过程不会停止。在Simulink中可以做到这一点吗?

Matlab Simulink并行运行块? 假设我在Simulink中有一个大的模型,我们称之为模型A。现在考虑模型A的一个非常小的子集,称之为模型B。当模型B计算某个东西时,这些结果被发送到模型A的其他部分,并且它们作为这个函数的一部分起作用。然而,模型B可能需要很长的时间来计算-然而,这对于模型a的其他模块来说不是问题,只要模型B计算完成,他们都乐于从模型B接收数据。本质上,我希望模型B与模型A并行运行,这样在等待模型B完成任务时,整个模拟/过程不会停止。在Simulink中可以做到这一点吗?,matlab,parallel-processing,simulink,Matlab,Parallel Processing,Simulink,我认为数据流域旨在解决您描述的问题 它会自动划分Simulink模型,并使用多个线程模拟子系统 在具有数据流域的模型的模拟和代码生成中,软件会识别系统中可能存在的并发,并使用这两种类型的并行性对数据流域进行分区 任务并行性 模型管道执行(管道) 任务并行性: 任务并行性通过将应用程序拆分为多个任务来实现并行性。任务并行性涉及在应用程序中跨多个处理节点分发任务。某些任务可能对其他任务具有数据依赖性,因此并非所有任务都在同一时间运行 模型管道执行: 该软件使用模型管道执行(或管道化)来解决线程不能完

我认为数据流域旨在解决您描述的问题

它会自动划分Simulink模型,并使用多个线程模拟子系统

在具有数据流域的模型的模拟和代码生成中,软件会识别系统中可能存在的并发,并使用这两种类型的并行性对数据流域进行分区

  • 任务并行性
  • 模型管道执行(管道)
  • 任务并行性

    任务并行性通过将应用程序拆分为多个任务来实现并行性。任务并行性涉及在应用程序中跨多个处理节点分发任务。某些任务可能对其他任务具有数据依赖性,因此并非所有任务都在同一时间运行

    模型管道执行:

    该软件使用模型管道执行(或管道化)来解决线程不能完全并行运行的任务并行性问题。这种方法涉及修改系统,以便在存在数据依赖关系的任务之间引入延迟

    请看下面的链接


    您可以尝试使用速率转换块,但我不完全确定这是否适用于您的情况。根据您的问题描述,我不确定您是否真的想使用并行计算。这可能是可能的,但它将内在地导致不再具有确定性的模拟。以较低的采样率运行modelB可能是一个更好的主意。这在单个Simulink模型中是不可能的。您需要将模型B设置为一个完全独立的模型,在它自己的流程中运行,并让模型a和模型B通过UDP或文件传输之类的方式进行通信,这取决于您希望事情变得多么复杂。