Simulinkブロックのプロパティを一括編集

Simulink®ブロックのプロパティを一括編集する方法です。
大規模なモデルを扱っていると、多数のブロックを一括で編集したい場合があります。

ブロックのプロパティを間違って設定していて、そのブロックをコピペで増産してしまっているケースなどです

後で気が付いたときに、ブロックを一つずつ手動で直していくのが大変なので、
私はmスクリプトを使用して一括編集をしています。

例えば、Inportブロックのサンプル時間をデフォルト「-1」にしたモデルを作成してしまい、
実は、スタイルガイドラインの制約で、すべてのInportブロックのサンプル時間を
「0.01」に変更する必要がでてしまったケースなどで使用できます。

このような場合、以下のようなスクリプトをmファイルに記述し、保存します。

temp = find_system(bdroot,'BlockType','Inport')

for i=1:length(temp)
 set_param(char(temp(i)),'SampleTime','0.01'); 
end


次に、mファイルを実行する前に、対象のモデルを開きます。

その後、上記mファイルを実行すると、
モデルのすべてのInportブロックのサンプル時間を「0.01」に一括変更することができます。

簡単に説明しておくと、
1行目で、現在開いているSimulinkモデル内にあるInportブロックをすべて検索しております。
bdroot=開いているモデル(複数のモデルを立ち上げている場合はお気をつけてください)

3~5行目で、検索で抽出したInportに対して、サンプル時間を0.01に変更しています。

ーーーーーーーーーーーーーーー
※MATLAB 2021aにて動作確認しております
※MATLAB, Simulinkは、MathWorks社の登録商標です。
※記事内のサンプル等の流用にて損害等が発生したとしても、保証は一切致しません。