1

私はいくつかのヘッド トラッキングを実装しており、水平速度の 2 つの行列を取得しています。(垂直速度と水平速度に分解されたベクトル場)。これらの行列のそれぞれについて、実際のヘッド トラッキングを計算するためにいくつかの計算を行います。

私の質問は、数学ブロックを各信号にコピーせずに、両方の行列でその数学 (ブロックのセット) を行う方法はありますか?

説明するのは難しいので、ここに私のモデルのスクリーン ショットを示します。 simulink モデル

"complex to real-imag" ブロックには 2 つの出力があることがわかります (これは中央の小さい方です)。次に、平均ブロックと積分回路が、実数行列 (水平位置) のヘッド速度と位置を計算します。虚数行列(垂直方向)でまったく同じルーチンを実行したい。明らかに、ブロックをコピーすることはできますが、それを行うためのより良い方法があるに違いありません。ある意味で、コードのブロックが異なる入力で数回実行される、C などの「通常のプログラミング」でのループの類似物を探しています。

4

2 に答える 2

5

複数回参照できるコードを含むライブラリをSimulinkで作成できます。

[ファイル]->[新規]->[ライブラリ]に移動します。開いたモデルウィンドウで、必要なコードを使用してサブシステムをいくつでも作成できます。次に、サブシステムをライブラリからモデルにドラッグするだけです。サブシステムがモデルに表示され、左下に小さな矢印アイコンが表示されます。これは、モデル内のサブシステムがリンクであることを示しています。他のプログラミング言語で関数を何度でも呼び出すことができるのと同じように、ライブラリサブシステムのインスタンスを必要な数だけモデルにドラッグできます。

モデル内のサブシステムを右クリックすると、[リンクオプション]-> [ライブラリブロックに移動]を選択して、ライブラリに戻ることができます。モデルに変更を加えて、ライブラリに戻すこともできます。

于 2011-02-20T08:50:26.597 に答える
1

ブロックのセットを簡単に再利用する 1 つの方法は、ブロックからサブシステムを作成することです。あなたの場合、既存のブロックをグループ化してサブシステムを作成し、サブシステムをコピーして貼り付けて、仮想出力に使用できます。

より複雑になる可能性がありますが、モデルの一部をコピーする必要がないように、 mux 信号の使用を検討することもできます。

于 2011-01-31T16:57:14.553 に答える