具有相同功能但端口名称不同的多个可运行实体
Multiple runnables with equal functionality but different port names
我有一个关于具有多个可运行程序的 autosar 的基本问题,这些可运行程序除了不同的 output/input 名称外基本相同。
目前 Simulink 模型是为一个坦克模块设计的。
此单个模块具有名为 *_Md0 的输入和输出。例如 Filling_level_Md0、outflow/inflow_rate_Md0、valve_open_Md0 ...
尽管也有一些 inputs/outputs/constants 不是特定于模块的。例如:油箱容积、实时时钟、...
目标是添加 "arbitrary" 辆坦克。
------- ------- -------
Inputs ->|Module1|-> Outputs ->|Module2|-> ... ->|ModuleN|->
------- ------- -------
显然,将每个坦克模块相乘并重命名每个模块单独需要的 inputs/outputs 是非常乏味的。因为需要复制每个runnable,修复libraryies和arxml文件,...
所以问题是,如果有多个或多或少相同的可运行实体,是否有更好的解决方案?
Simulink 中是否提供某种 for 循环?
你有两个选择。
- 一个单实例软件组件,其端口包含数组作为端口元素,然后是下面的相应数据。坦克的数量将是例如。用作所有数组长度的系统常量。这样做的好处是您可以获得更高效的代码,例如由于编译器中的矢量化。此外,拥有阵列可能会使通信、诊断和测量接口变得更容易或更高效。
- 一个多实例软件组件,具有“正常”端口和您现在拥有的模型。正如您所写,每个水箱都有不同的参数,您将需要每个实例的校准参数。然后,您周围的软件组合将尽可能频繁地实例化多实例坦克组件。这里的好处是它更容易测试,并且您的实施完全独立于坦克的数量。您也可以更好地分配 cpu 负载以减少峰值 CPU 负载。
我有一个关于具有多个可运行程序的 autosar 的基本问题,这些可运行程序除了不同的 output/input 名称外基本相同。
目前 Simulink 模型是为一个坦克模块设计的。 此单个模块具有名为 *_Md0 的输入和输出。例如 Filling_level_Md0、outflow/inflow_rate_Md0、valve_open_Md0 ... 尽管也有一些 inputs/outputs/constants 不是特定于模块的。例如:油箱容积、实时时钟、...
目标是添加 "arbitrary" 辆坦克。
------- ------- -------
Inputs ->|Module1|-> Outputs ->|Module2|-> ... ->|ModuleN|->
------- ------- -------
显然,将每个坦克模块相乘并重命名每个模块单独需要的 inputs/outputs 是非常乏味的。因为需要复制每个runnable,修复libraryies和arxml文件,...
所以问题是,如果有多个或多或少相同的可运行实体,是否有更好的解决方案? Simulink 中是否提供某种 for 循环?
你有两个选择。
- 一个单实例软件组件,其端口包含数组作为端口元素,然后是下面的相应数据。坦克的数量将是例如。用作所有数组长度的系统常量。这样做的好处是您可以获得更高效的代码,例如由于编译器中的矢量化。此外,拥有阵列可能会使通信、诊断和测量接口变得更容易或更高效。
- 一个多实例软件组件,具有“正常”端口和您现在拥有的模型。正如您所写,每个水箱都有不同的参数,您将需要每个实例的校准参数。然后,您周围的软件组合将尽可能频繁地实例化多实例坦克组件。这里的好处是它更容易测试,并且您的实施完全独立于坦克的数量。您也可以更好地分配 cpu 负载以减少峰值 CPU 负载。