1

我正在实施一些头部跟踪,我得到了 2 个水平速度矩阵。(分解为垂直和水平速度的矢量场)。对于这些矩阵中的每一个,我都会做一些数学运算来计算实际的头部跟踪。

我的问题是,有没有办法在两个矩阵上进行数学运算(这是一组块)而不将数学块复制到每个信号上?

很难解释,所以这是我的模型的屏幕截图: 模拟链接模型

您可以看到“complex to real-imag”块有 2 个输出(这是中间的小输出)。然后,平均块和积分器电路计算实矩阵的磁头速度和位置(水平位置)。我想在虚矩阵(垂直方向)上做完全相同的例程。显然我可以只复制块,但肯定有更好的方法吗?在某种程度上,我正在寻找类似 C 或其他东西的“正常编程”中的循环,其中一段代码在不同的输入上执行多次。

4

2 回答 2

5

您可以在 Simulink 中创建一个库,其中包含您可以多次引用的代码。

转到文件 -> 新建 -> 库。在打开的模型窗口中,您可以使用所需的任何代码创建任意数量的子系统。然后,只需将一个子系统从库中拖到您的模型中。该子系统现在将出现在您的模型中,左下方有一个小箭头图标。这表明模型中的子系统是一个链接。您可以将任意数量的库子系统实例拖入您的模型中,就像您可以在任何其他编程语言中多次调用函数一样。

如果您右键单击模型中的子系统,您可以选择“Link Options -> Go To Library Block”返回库。您可以对模型进行更改并将它们传播回库。

于 2011-02-20T08:50:26.597 回答
1

轻松重用一组模块的一种方法是用它们创建一个子系统。在您的情况下,您可以通过对现有模块进行分组来创建一个子系统,然后只需复制并粘贴您的子系统即可将其用于您的想象输出。

尽管可能更复杂,但您也可以考虑使用多路复用信号以避免复制模型的某些部分。

于 2011-01-31T16:57:14.553 回答