【Simulink】モデル エクスプローラーでブロックパラメーターを編集する

# はじめに
Simulinkには、ブロックや信号線を検索したり、ブロック パラメーター（プロパティ）を変更したりする作業に便利なモデル エクスプローラーという機能があります。
モデル エクスプローラーの起動方法や検索方法については、[こちらの記事](https://qiita.com/nrykot/items/e1036cb7257ae903393e "モデル エクスプローラーでブロックや信号線を検索する")で紹介していますので、本記事ではブロック パラメーター（プロパティ）の変更方法について説明します。

# 想定読者
モデル エクスプローラーの使用経験が乏しいSimulinkユーザー、モデル エクスプローラーでのブロック パラメーター（プロパティ）の置換方法を知らないユーザーを想定しています。

# 前提条件
本記事では、MATLAB R2021aを使用して説明しています。
また、例示するSimulinkモデルとして、[Simulinkの例にあるslexAircraftExample.slx](https://www.mathworks.com/help/releases/R2021a/simulink/slref/aircraft-longitudinal-flight-control.html "記事で使用しているSimulinkモデル")を使用しています。

# ブロック パラメーター（プロパティ）の変更方法
## ブロック名の変更
Gainブロックを例として取り上げます。
検索バーを使って、Gainブロックを検索します。
![search_gain_block.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/6eaa20e1-1bee-bdad-46b7-c0cd882e5812.png)
ブロック名を変更してみます。
モデル エクスプローラーの［コンテンツ］ペインで、ブロック名を変更するGainブロックを選択します。
![select_target_gain_block.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/34087c35-20b0-a638-2968-a203b45d8281.png)
ブロック名を変更するので、選択している行のName列をクリックします。
すると、Name列が編集可能な状態になります。
![change_edit_field.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/40d79c4e-21c6-8110-e03b-6c5b5a980ae5.png)
この状態で新たなブロック名を設定します。
ここでは、Zwという名前に変更してみます。
![change_gain_block_name.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/827103bb-cf69-6131-ec22-8b248ae83939.png)
Enterキーで入力を確定すれば、ブロック名の変更が完了します。
![new_gain_block_name.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/1f92258b-6fcb-d11e-10e3-3ad1c5e93520.png)
## ブロック パラメーターの変更
次に、ゲイン パラメーター（入力に乗算する値）を変更してみます。
ゲインは、[Gain](https://jp.mathworks.com/help/releases/R2021a/simulink/slref/gain.html#bronkud-1 "Gainブロックのパラメーターページ")というブロック パラメーター名です。
<details><summary>コンテンツペインにGain列が表示されていない場合</summary>

［コンテンツ］ペインの上部で［詳細を表示］を選択し、Gain列を表示列に追加します。
![extract_view_manager.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/c6f50bc1-649e-4a8d-73f4-fb4adc360593.png)
![add_gain_column.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/ff292731-fef6-d8a0-0f7d-3b331b30c1da.png)
</details>

モデル エクスプローラーの［コンテンツ］ペインで、Gainの値を変更するブロックを選択します。
![select_gain_block_change_param.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/a0f93069-12e4-5d82-1d93-bc326e6787c9.png)
Gain列をクリックして、編集可能な状態にします。
![edit_gain_paramete.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/b2c5c1c4-8e3f-1c8a-56d7-130da7fa602d.png)
Gain列が変更可能な状態になったら、値を変更してEnterキーで確定します。
ここでは、Gainの値を 10 に変更してみます。
![change_gain_value_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/680cb880-ccd4-a084-446c-e159aa04fe0d.png)

## ブロック パラメーターの一括変更
先程の例では、一つのブロックに対するパラメーター変更でしたが、複数のブロックに対してパラメーターを一括で同じ値に変更することも可能です。
複数ブロックのGainの値を一括変更する例を示します。
モデル エクスプローラーの［コンテンツ］ペインで、Gainの値を同じ値に変更したいブロック群を選択します。
![select_multiple_gain_blocks.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/e211d0fb-0d79-f93a-e426-8c8dbb77d6b8.png)
選択したブロック行のいずれかのGain列をクリックすると、Gain列の表示が \<edit> になり、一括編集モードになります。
![bulk_change_mode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/ae3df292-1651-9bc7-d7d0-980c9b97f7dc.png)
一括編集モードの状態で、新たに設定したい値を入力します。
ここでは、100を入力してみます。
選択していた他のブロックのGainの値も100になります。
![change_value_of_gain.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/8c7379d0-3fda-4282-573f-badae31bb0d4.png)

直接値を入力するパラメーターだけでなく、チェックボックスやリストボックスから選択するパラメーターでも一括変更は可能です。
例えば、Virtual Subsystem を Atomic Subsystem に一括変更することなどが可能です。
![change_treat_as_atomic_unit_param.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/5fb76f58-e498-5569-dcb4-02f2e36adfad.png)


# まとめ
モデル エクスプローラーを使用して、ブロック パラメーター（プロパティ）を変更する例について紹介しました。
最近は[Finder](https://jp.mathworks.com/help/releases/R2021a/simulink/slref/finder.html "Finderのヘルプページ")機能でもブロック名等の置換がしやすくなりましたが、モデルエクスプローラーでもブロック名やブロックパラメーターの置換ができることを知ってもらいたく、本記事を書いてみました。
ご参考になれば幸いです。

# 参考
[公式ドキュメント（R2021a）](https://jp.mathworks.com/help/releases/R2021a/simulink/slref/modelexplorer.html "モデル エクスプローラー")