【Simulink】モデル エクスプローラーでブロックや信号線を検索する

# はじめに
Simulinkには、モデル エクスプローラーという機能があります。
Simulinkでブロックや信号線を検索したり、ブロックパラメーターを変更したりする作業に便利です。
本記事では、モデル エクスプローラーでブロックや信号線を検索する例について記述します。
なお、[Finder](https://jp.mathworks.com/help/releases/R2021a/simulink/slref/finder.html "Finderのヘルプページ")という機能でも同様のことができますが、本記事では対象外としています。

# 想定読者
モデル エクスプローラーの使用経験が乏しいSimulinkユーザー、モデル エクスプローラーでの検索方法を知らないユーザーを想定しています。
モデル エクスプローラーを頻繁に使用しているユーザー、また、過去にモデル エクスプローラーをよく使っていたユーザーには当たり前すぎる内容なので、そのような方は想定読者から除外しています。

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

# モデル エクスプローラーとは
モデル エクスプローラーを使用すると、Simulinkモデル、Stateflowチャートおよびワークスペース変数の要素を検索、表示、変更および追加できます。
検索結果を使用して、複数の要素に対して変更を一度に適用することもできます（本記事の説明対象外）。
モデル エクスプローラーの表示例を以下に示します。
![model_explorer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/aa72a14c-f230-e6f6-511a-18b036552a50.png)

# モデル エクスプローラーの起動方法
モデル エクスプローラーを開くには、次のいずれかの方法を使用します。
* Simulinkエディターの［モデル化］タブから［モデル エクスプローラー］をクリックします。
![launch_model_explorer_using_ribbon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/d481009f-f122-97b6-b170-cc5d80544ef3.png)
* Simulinkエディター上で右クリックし、コンテキスト メニューから［エクスプローラー］を選択します。<img width="700" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/a87061ee-11ed-8dc9-152b-9e6de0daa1b1.png">
* MATLABコマンドラインで`daexplr`と入力します。Stateflow環境がインストールされている場合は、`sfexplr`でもモデルエクスプローラーを起動できます。
* ショートカットキー（Ctrl + H）を使います。

# モデル エクスプローラーでの検索
モデル エクスプローラーの検索バーを使用すると、［モデルの階層構造］ペインで選択したノードの特定のオブジェクトを検索できます。検索結果は、［コンテンツ］ペインの［検索結果］タブに表示されます。
検索バーでの検索方法には様々な方法があり、すべては説明できないので代表的な例をいくつか挙げて説明します。
## オブジェクトの名前で検索する例
1. 検索バーの［検索タイプ］コントロールで「名前」を選択します。
1. 検索文字列を入力します。
1. 「検索」ボタンをクリックします。
1. 検索結果が［コンテンツ］ペインの［検索結果］タブに表示されます。
![search_by_name.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/287cb564-0f90-3bc4-7c26-a9cf5e81b37e.png)

## ブロック タイプで検索する例
1. 検索バーの［検索タイプ］コントロールで「ブロック タイプ」を選択します。
1. ブロックのタイプをリストから選択します。
1. 「検索」ボタンをクリックします。
1. 検索結果が［コンテンツ］ペインの［検索結果］タブに表示されます。
![search_by_block_type.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/7d67aa7a-a567-5752-c4cc-bf6d108bfc69.png)
なお、［コンテンツ］ペインの上部にある［現在のシステム以下を表示］ボタンをクリックするか、メニューバーの［ツール］-［現在のシステム以下を表示］を選択することで、現在のシステムのみの表示と、現在のシステム階層全体の表示を切り替えることができます。
<img width="700" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/0b8cbeb9-011b-f6c1-04b9-99d63a9ebc35.png">

## 絞り込み検索
最初の検索結果を絞り込むため、追加の検索条件を与えて検索ができます。
2回目の検索処理では、元の検索条件と新しい検索条件の両方を満たすオブジェクトが検索されます。

1. 検索バーで［検索オプションの選択］ボタンをクリックし、［絞り込み検索］を選択します。
![click_refine_search.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/76b4ca78-5da1-a51b-049a-d45998c71bd9.png)
検索バーの［検索］ボタンが、［絞り込み］ボタンと置き換わります。

1. 検索バーを使って新しい検索条件を定義し、［絞り込み］ボタンをクリックします。
1. 前回の検索条件と新しい検索条件がどちらも一致するオブジェクトがコンテンツペインに表示されます。
![refine_search.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/e32ae236-ee5e-f834-3835-13d1adef5466.png)

［コンテンツ］ペイン上部にある［コンテンツのフィルター］テキストボックスを使っても、検索文字列による絞り込みが可能です。
![contents_filter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1400007/834e46de-31f7-e7f9-ca42-87374fc33072.png)

# まとめ
モデル エクスプローラーでSimulinkオブジェクトを検索する方法の一例を説明しました。
今後、機会があれば、モデル エクスプローラーでブロックパラメーターを変更する方法についての記事を投稿したいと思います。

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