メインコンテンツ

Iterator Subsystem での Assignment ブロックを使用した信号値の代入

R2026b

この例では、Simulink® で、for ループ内で計算された値を信号の指定要素に代入する方法を示します。Assignment ブロックと For Iterator Subsystem ブロックを組み合わせて使用することで、このような値の代入を行うことができます。ベクトル、行列、または多次元信号を使用し、単一のタイム ステップで代入を行うことができます。

ex_assignment_block_with_for_iterator モデルでは、For Iterator Subsystem 内の Assignment ブロックによって、for ループからの信号値を出力ベクトル信号に代入しています。

モデルの動作

For Iterator ブロックでインデックス $i$ が作成され、これは 3 倍されます。Assignment ブロックは、この増幅されたインデックス値を U によって示される入力として使用します。Assignment ブロックは、インデックス値 $i$ を使用して、出力ベクトル Y に値を代入します。Assignment ブロックと For Iterator ブロックはいずれも、1 ベースのインデックスを使用します。最初の反復で、Assignment ブロックは最初の入力 Y0 を出力 Y にコピーし、2 番目の入力 U を出力 Y(E1) に代入します。それ以降の反復では、Assignment ブロックは U の現在値を Y(Ei) に代入するだけで、最初に Y0 を Y にコピーしません。この処理は単一のタイム ステップで行われます。

モデルのシミュレーション

モデルのシミュレーションを実行します。Display ブロックで、値 3、6、および 9 が表示されます。これらはそれぞれ、1 回目、2 回目、および 3 回目の反復におけるインデックス値 1、2、および 3 を 3 倍したものです。

参考

ブロック