【MATLAB/Simulink】配列の演算(Simulinkブロックの場合)

MATLABでは配列をそのまま演算に使用するスクリプトを書くことができます。

それと同様、Simulinkでも様々な演算に対して配列を使用することができます。

ここではSImulinkモデルのブロックに対して配列を使用し、シミュレーションした結果を確認してみたいと思います。

スポンサーリンク

Addブロック

配列の足し算引き算はスクリプトと同様になります。配列と数値であれば配列の各要素に数値分足し引きされ、配列同士であれば各要素ごとに足し引きが行われます。

Productブロック

Productブロックは配列を使用した場合の計算結果を選択するプロパティとして”要素単位”と”行列”が準備されています。

なおデフォルトでは”要素単位”が選択されています。

要素単位を選択した場合

配列と数値であれば配列の各要素に数値分の乗算除算が行われ、配列同士でしたら各要素ごとに演算されます。

スクリプトで.*や./と書いた場合と同じイメージです。

行列を選択した場合(乗算)

線形代数の演算が行われます。掛け算できないサイズの組み合わせではシミュレーションエラーとなります。

行列を選択した場合(除算)

割り算が行えるのは配列と数値もしくは正方行列(2×2とか3×3など行と列が同じ行列)同士の場合のみです。なお、正方行列の場合はInvに刺さっている行列の逆行列をかけるという演算になっています。

スクリプトでは1次元配列同士で演算すると最小二乗解が返ってきましたがSimulinkではシミュレーションエラーとなります。



Logical Operatorブロック

配列と配列であれば各要素同士で論理演算が行われます。配列と数値であれば配列の各要素と数値で論理演算が行われます。

Relational Operatorブロック

Logical Operatorブロックと一緒です。

Switchブロック

Switchブロックの条件(第2入力)にも配列が使えます。動作を日本語にするのが難しいのですが、以下図のようになります。

コメント

タイトルとURLをコピーしました