image thumbnail

カスタムタブを用いた Simulink のモデリング業務効率向上

version 2.4.3 (2.31 MB) by Toshinobu Shintai
R2021b にて実装された「カスタムタブ」機能を用いて、日々の Simulink モデリング業務を効率化することができます。本コンテンツにてその一例を示します。

13 Downloads

Updated 20 Jun 2022

From GitHub

View license on GitHub

カスタムタブを用いた Simulink のモデリング業務効率向上

目的

R2021b にて実装された「カスタムタブ」機能を用いて、日々の Simulink モデリング業務を効率化することができる。本コンテンツでは、その一例を示す。

カスタムタブの基本的な使い方についてはこちらのブログ記事を参照。

必要なツールボックス

  • MATLAB®
  • Simulink®
  • Simulink Test™
  • Stateflow®

必要な外部ツール

  • Git™

備考

「カスタムタブ」機能は Simulink の機能であるが、カスタムタブのボタンに関連付けたスクリプト内で、Simulink Test や Git のコマンドを利用している。すべてのコマンドで Git のコマンドを使用しているわけではない。詳細については、「カスタムタブの各ボタン紹介」セクションを参照すること。

カスタムタブを有効化

MATLAB の現在のフォルダーを「tshintai_simulinkcustomtab」フォルダーに指定し、「enable_tshintai_CustomTab.m」を実行する。

任意の Simulink モデルを開くと、ツールストリップに新しく「ACCEL」というタブが現れる。

image_0.png

カスタムタブを無効化

MATLAB の現在のフォルダーを「tshintai_simulinkcustomtab」フォルダーに指定し、「disable_tshintai_CustomTab.m」を実行する。

実行後、Simulink ツールストリップから「ACCEL」というタブが消える。

カスタムタブの各ボタン紹介

「ACCEL」タブに配置されているオリジナルボタンの機能について紹介する。

image_1.png

1.SLDD セクション

1.1.「作成 / 開く」ボタン

slddファイルが関連付けられていないモデルの場合、ファイルを新規作成し、モデルに関連付ける。その後そのファイルを開く。すでに関連付けられている場合、そのファイルを開く。

詳細はカスタムタブを有効化後、以下のコマンドでスクリプトを開いて確認すること。(以降の節でも同様)

edit create_open_link_sldd_tshintaiCustomTab

1.2.「差分を見る」ボタン

モデルに関連付けられているslddファイルの現在の保存状態とローカルリポジトリの最新コミット状態を比較する。

Gitのコマンドを使用しているため、Gitがインストールされていること、slddファイルがGit管理されていることが前提となる。

edit diff_with_latest_commit_sldd_tshintaiCustomTab

2.モデル セクション

2.1.「設定を開く」ボタン

モデルの今開いている階層のコンフィギュレーションパラメーターを開く。例えば、上位階層のモデルから参照モデルを開いている時、その参照先のモデルのコンフィギュレーションパラメーターを開く。

また、そのモデルがコンフィギュレーション参照を行っている場合は、参照先のコンフィギュレーションパラメーターを開く。

edit open_config_tshintaiCustomTab

2.2.「ウィンドウで開く」ボタン

選択したブロックを新しいウィンドウで開く。選択していない場合は、現在の階層を対象に開く。

参照モデルや参照サブシステムなどを対象とした機能であるため、普通のブロックを選択して実行した場合、ブロックパラメータが開く。

edit open_system_with_new_window_tshintaiCustomTab

2.3.「戻す」ボタン

モデルファイルを閉じ、その後ローカルリポジトリの最新コミットの状態に戻す。

Gitのコマンドを使用しているため、Gitがインストールされていること、モデルファイルがGit管理されていることが前提となる。

edit revert_Simulink_model_tshintaiCustomTab

2.4.「次元 / データ型」ボタン

モデルの「信号の次元」と「端子のデータ型」を表示させる。

edit show_line_data_types_dimensions_tshintaiCustomTab

2.5.「色とタブを初期化」ボタン

モデル内のブロックの色をリセットし、タブを全て閉じる。

edit reset_model_color_and_close_tab_tshintaiCustomTab

2.6.「サイズを合わせる」ボタン

選択状態のブロックのサイズを、フォーカスされたブロックのサイズに一致させる。

選択状態のブロックが横方向より縦方向に長く配置されている場合、ブロックの位置をフォーカスされたブロックに合わせる。

edit match_block_size_tshintaiCustomTab

2.7.「信号線を接続」ボタン

2.7.1.「最近傍を接続」ボタン

コメントアウトされていないブロックの未接続ポートを、最も近い入力、出力ポート同士の組み合わせで接続する。

edit connect_nearest_ports_tshintaiCustomTab.m

2.7.2.「選択して接続」ボタン

ブロックや信号線の選択状態に応じて以下のどちらかの処理を行う。

  1. 信号線が一つだけ選択されている場合、未接続の入力ポートをリスト化し、選択したポートとその信号線を接続する。
  2. ブロックが選択されている場合はその選択されているブロックの中で、何も選択されていなければ今のモデル階層の中で、接続可能な未接続ポートの組み合わせをリスト化し、選択したポート同士を接続する。接続後、信号名を入力し、シミュレーションデータインスペクターにログする設定を行う。

ダイアログでキャンセルを入力した場合は、その場で処理を終了する。ポートリストは、接続可能な未接続ポートの組み合わせが存在する限り繰り返し表示される。

edit connect_rename_log_line_tshintaiCustomTab.m

2.8.「信号名を伝搬」ボタン

今の階層以下のモデル内を検索し、信号線が接続されているポートに対して以下の操作を行う。

  1. 入力ポートの名前を、接続されている信号線の名前に変更する。出力ポートの名前を、接続されている信号線の名前もしくは伝搬信号の名前に変更する。信号線に名前が無い場合はポート名を変更しない。
  2. 信号線の入力側の上位階層に信号線が接続されていれば、その信号線の名前を変更する。出力側の上位階層に信号線が接続されていれば、その信号線の名前を空にして「伝搬信号の表示」にチェックを入れる。
  3. サブシステムの入力ポートに名前付きの信号線が接続されている場合、そのポートの下位層のポート名を変更し、信号線の名前を空にして「伝搬信号の表示」にチェックを入れる。
  4. サブシステムの入力ポートに名前付きの信号線が接続されている場合、そのポートの下位層のポート名を変更し、元々の信号線の名前を空にして「伝搬信号の表示」にチェックを入れる。
edit match_port_line_name_tshintaiCustomTab

2.9.「ポートで揃える」ボタン

選択したブロック同士のポート位置が横一列に揃うようにブロックの上下位置を並べ替える。また、同じ線で接続されたブロックグループを探し、そのグループごとに並べる。

合わせる位置は、同じブロックグループの終端ブロックの接続先ポート位置である。出力ポートの先にブロックが繋がっていない場合、入力ポートの先に繋がっているブロックの出力ポート位置に合わせる。

edit arrange_port_position_tshintaiCustomTab

3.ライブラリ セクション

3.1.「ライブラリを開く」ボタン

選択したライブラリリンクされたブロックの参照元を開く。

edit open_lib_model_linked_to_blocks_tshintaiCustomTab

3.2.「無効にして開く」ボタン

選択したライブラリリンクされたブロックのライブラリリンクを無効にし、そのブロックの内部を開く。

edit disable_and_open_lib_block_tshintaiCustomTab

4.テストハーネス セクション

4.1.「作成 / 開く」ボタン

選択したブロック、サブシステム、参照モデルなどに対してテストハーネスを作成して開く。

すでにテストハーネスが作成されている場合、そのハーネスを開く。複数のテストハーネスが作成されている場合、ダイアログで開くハーネスを選択する。

選択するブロックは一つだけでなければならない。何も選択されていない場合、現在のモデル階層に対してテストハーネスを作成し、開く。

開いたハーネスには信号線の次元とデータ型を表示する設定を行う。ハーネスの入力ポートは削除し、信号にそのポート名を付ける。

edit create_open_test_harness_tshintaiCustomTab

4.2.「閉じる / 削除」ボタン

そのモデルがテストハーネスの場合、そのテストハーネスを閉じて削除する。テストハーネスではない場合、その階層にあるブロックに関連付けられているテストハーネスを全て削除する。

edit close_delete_test_harness_tshintaiCustomTab

4.3.「ポートを更新」ボタン

テストハーネスでテストを行う対象のサブシステムのポートの数が変化した時、「Signal spec. and routing」ブロックも合わせて修正したい。

この時、このスクリプトを実行することで「Signal spec. and routing」を更新することができる。

edit auto_connect_ports_in_test_harness_tshintaiCustomTab

5.シミュレーション セクション

5.1.「ルート実行」ボタン

モデルを参照している参照構造の最上位階層のモデルを実行する。最上位階層のモデルが複数ある場合、ダイアログで選択する。上位階層のモデルが閉じられている場合は、検索されない。

edit root_run_tshintaiCustomTab

6.SDI セクション

6.1.「View設定」ボタン

6.1.1.「Viewを保存」ボタン

今のシミュレーションデータインスペクターのViewをファイルに保存する。ファイル名にはモデル名を含める。

これにより、「Viewを読み込み」の方でモデル名に紐づいたファイルを読み込むことができる。

edit save_this_SDI_view_tshintaiCustomTab

6.1.2.「Viewを読み込み」ボタン

「Viewを保存」で保存された、モデル名に紐づいた設定ファイルを読み込む。

edit load_this_model_view_tshintaiCustomTab

6.2.「名前付信号をログ」ボタン

ブロックに接続されていて、かつ名前が付いている信号線をシミュレーションデータインスペクターにログするように設定する。また、Simscape変数のログ設定のOn, Offの切り替えも行う。

ダイアログで選択したものはログ有効化し、選択されなかったものはログ無効化する。

edit log_named_line_tshintaiCustomTab

6.3.「初期化」ボタン

シミュレーションデータインスペクターの環境設定とアーカイブを初期化する。

edit initialize_SDI_tshintaiCustomTab

7.保存 / 閉じる セクション

7.1.「閉じて再度開く」ボタン

モデルファイルを保存せずに閉じ、そのモデルファイルを再度開く。このスクリプトは、モデルを保存された状態に戻すことが目的である。

edit close_and_reopen_model_tshintaiCustomTab

7.2.「変更を保存」ボタン

このボタンをクリックしたモデルの参照先モデルと自身を確認し、変更されているものだけを保存する。

これにより、確実に変更されたモデルだけをGitで判別できるようになる。

edit save_dirty_models_tshintaiCustomTab

7.3.「すべて閉じる」ボタン

開いているSimulinkモデルを全て閉じる。モデルは保存して閉じる。

edit close_all_Simulink_windows_tshintaiCustomTab

7.4.「PJを閉じる」ボタン

プロジェクトを開いている場合、プロジェクトを閉じる。開いていない場合、何もしない。

edit close_project_tshintaiCustomTab

プロジェクトにカスタムタブの設定を組み込む方法

プロジェクトとは MATLAB ファイル、データ ファイル、Simulink モデルファイルなどをまとめ、管理できる機能である。カスタムタブをプロジェクトに組み込み、その中で管理し、プロジェクト起動中のみカスタムタブを有効化することができる。以下にその手順を紹介する。

以下の作業をする場合は、最初に「disable_tshintai_CustomTab.m」を実行し、カスタムタブを無効化しておくこと。

1. プロジェクトを新規作成、もしくは既存のプロジェクトを開く

プロジェクトの新規作成方法については、こちらを参照すること。開いたプロジェクトに「resources」フォルダがあることを確認する。

image_2.png

「resources」フォルダが存在せず、代わりに「.SimulinkProject」が存在する場合は、新規に作成することを推奨する。(「.SimulinkProject」は、R2018b以前に作成された旧式のプロジェクトである)

2. カスタムタブの「resources」を統合する

プロジェクトの設定ファイルが格納されている「resources」フォルダーに、カスタムタブの「resources」フォルダー以下のファイル、フォルダーをコピーする。

image_3.png

3.パスを設定する

プロジェクトのパスに[プロジェクトのルート]が入っていない場合は、それを追加する。

image_4.png

[プロジェクトのルート]を追加するには、上記画像の「フォルダーを追加…」ボタンをクリックし、現在開いているプロジェクトの最上位階層フォルダー(”.prj”ファイルを直下に含むフォルダー)を指定すればよい。

4."slReloadToolstripConfig"を起動、シャットダウン時に実行させる

「プロジェクトの起動とシャットダウンの管理」にて、「Simulink カスタマイズの更新」にチェックを入れる。

image_5.png

5.シャットダウン時に無効化する

シャットダウン時に実行するファイルに、[プロジェクトのルート]パスを削除してSimulink カスタマイズの更新をさせることで、プロジェクトのシャットダウン時にカスタムタブの設定を無効化することができる。

image_6.png

過去バージョン

過去のバージョンのファイル一式は、以下から得ることができる。ただし、過去のモデルには、古い時期に作成したサンプルしか含まれていないことに注意すること。

GitHubからクローンしている場合には、以下の該当バージョンに戻すことで、過去バージョンファイルを得ることができる。

R2021b: v1.2

  • Copyright 2022 The MathWorks, Inc.*

Cite As

Toshinobu Shintai (2022). カスタムタブを用いた Simulink のモデリング業務効率向上 (https://github.com/mathworks/customTab-accelerate-your-work/releases/tag/v2.4.3), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2022a
Compatible with R2021b to R2022a
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.