在Simulink中有一种方法可以在多个信号上使用相同的块集(不复制这些块)吗?

lms*_*lms 1 matlab simulink

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

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

这很难解释所以这里是我的模型的屏幕截图: simulink模型http://luka.s3.amazonaws.com/headtracking.png 你可以看到"复杂到真实的想象"块有2个输出(这是中间的小人物).然后,平均块和积分器电路计算真实矩阵(水平位置)的头部速度和位置.我想在假想矩阵(垂直方向)上完成相同的例程.显然我可以复制块,但肯定有更好的方法吗?在某种程度上,我正在寻找C语言等"正常编程"中的循环模拟,其中一段代码在不同的输入上执行了几次.

小智 5

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

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

如果右键单击模型中的子系统,则可以选择"链接选项 - >转到库阻止"以返回库.您可以在模型中进行更改,并将它们传播回库中.