Simulink API ブロックを置き換える(replace_block)
今回は「replace_block」を紹介します。
機能としては名前の通りで、ブロックを置き換えるAPIです。
一般的に使用するAPIではなく、使用機会が少ないのですが、
ブロックを一括で置き換えたい時に覚えておくと便利です。
例えば、モデルのバージョンアップやSimulinkと連携する3rdパーティツールの
特殊なブロックを入れ替えたりする際に使用します。
私の場合は、あるツールに対応していないSimulinkブロックがあったため、
このAPIを使用して代わりのブロックに置き換えていました。
使用方法は以下になります。
replace(システム名、’対象ブロック名’,’置換したいブロック名’)
例えば、Gainブロックをサチュレーションブロックに変換する場合は、以下のようになります。
replace_block(bdroot,’Gain’,’Saturate’,’noprompt’)
※nopromptはオプションで、変換時にダイヤログが表示されない設定になります。
Note)
このAPIを使用すると、元に戻る(Ctrl+Z)が使えないので注意です
また、見てもらうと分かるように、デフォルトだとブロック名等は変わらないため、
ブロック名を変更する必要もでてきます。
APIの詳細は、下記の公式ホームページをご覧ください。
https://jp.mathworks.com/help/simulink/slref/replace_block.html
応用例
応用例として、自分が作成したブロックと置換することもできます。
例えば、自分が作成したSampleA.slxというモデル内にSubsytemがあったとします。
これを先ほどのGainと同じように置き換えるには、以下を実行します。
>> replace_block(bdroot,'Gain','SampleA/Subsystem','noprompt')
これを使用すると、単純なブロックも複雑なSubsytemに変更できたりします。
最初に述べた通り、使用頻度は少ないのですが、
ツール移行で変換作業をしたりする場合に覚えておくと、
手作業がかなり削減できるので、覚えておくと非常に便利なAPIです。