首页 文章

如何在Simulink中克隆子系统但使用不同的参数集?或者:如何为子系统定义本地索引变量?

提问于
浏览
3

我的Simulink模型将包含(很多) n 相同的子系统,每个子系统由大约30个不同的预定参数定义 . 目前,每次复制一个子系统时,我都需要修改每个块的属性,因此工作量很大,容易出错 . 所以我的想法是将相应的参数存储在向量中,如下所示:

parametersA = (parameterA1 , parameterA2 , ... , parameterAn);
...
parametersZ = (parameterZ1 , parameterZ2 , ... , parameterZn);

然后,块属性中的值将被定义为子系统#2的 parametersA(2) 和第n个子系统的 parametersA(n) . 或者想象每个子系统都包含一个PID控制器,并且需要定义比例增益 KP . 所以第一个子系统将调用 KP(1) 和第n个 KP(n) .

因此我的基本问题是:如何在每个子系统中声明我的索引变量 n ,因此每个块都知道要调用哪个参数向量元素?

另一个问题是:实际上是否有必要复制我的子系统,或者一切都可以在一个子系统中完成?这会影响模拟时间吗?

1 回答

  • 3

    您是否看过屏蔽子系统并使用掩码中的一个结构对其进行参数化(请参阅文档中的Masking)?然后,掩模下面的所有块都将使用该结构的字段进行参数化 . 然后,您可以拥有一个结构的单元格数组,用于参数化子系统的每个实例 . 实际上,掩码可能需要的唯一参数是单元数组中的索引,该索引在基础工作区中定义 .

相关问题