

Dashboard ブロックで Simulink モデル上に簡易アプリを作ろう
source link: https://blogs.mathworks.com/japan-community/2023/02/17/dashboard_blocks_for_simulink_app/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

皆さんこんにちは、トレーニングチームの遠藤です。このブログでは、「MATLAB と Simulink を繋ぐ」をテーマに、主に技術的な記事を書いています。
最近の投稿では、「Simulink のコールバック機能」や「カスタムタブの作成」など、Simulink を使った業務の効率化に焦点を当てた記事を投稿してきました。今回の記事では、同様にSimulink でのシミュレーション作業の効率化のための機能の一つである「Dashboard」ブロックについて解説していきたいと思います。
1. Dashboard ブロックとは?
Dashboard ブロックは Simulink のライブラリに入っているブロック群で、「モデル上にパラメータ調整や可視化用の簡単なアプリを作ることができるブロック」のことを指します。

この図のように、モデル上にスイッチを追加して簡単に複数の機能のOn/Offを切り替えたり、ゲージやグラフでシミュレーション結果をリアルタイムで確認することができます。
このブロック群を使えば、モデル上に簡易的なシミュレーションアプリを作ることができます。早速使い方を見ていきましょう。
2. Dashboard ブロックの使い方
Dashboard ブロックは、Simulink > Dashboard ライブラリの中にあります。Dashboard ライブラリの下にはさらにいくつか階層がありますが、汎用的に使えるブロックは Wireless Icons の下に入っています。

Dashboard ブロックは通常の Simulink ブロックと同様にライブラリから(またはブロック検索から)配置できます。ただし、使い方が普通のブロックと少し異なるため、初めて使うときには少し戸惑うことが多いです。
実際に主要な Dashboard ブロックとその使い方について見ていきましょう。
2.1 Dashboard ブロックの種類
Dashboard ブロックには、主に「パラメータ調整用のブロック」と「信号の可視化用のブロック」の2種類に分かれます。文字通り、前者がモデル上のパラメータの変更用、後者がモデル上の信号の値の可視化用のブロックです。
・代表的なパラメータ調整用のブロック(Knob, Edit, Slider Switch, Slider)

・代表的な信号の可視化用のブロック(Guage, Display, Dashboard Scope, Lamp)

2.2 パラメータ調整用のブロックの使い方
パラメータ調整用の Dashboard ブロックは、パラメータを調整したい他のブロックと接続して使用します。ただし、Dashboard ブロックは通常のブロックとは違い、信号線でつなぐことはできません。代わりに、ブロックをクリックしたときに表示される「接続」ショートカットで、紐づけたいブロックのパラメータ(または変数)を選択することで接続を行います。

一度接続が終わると、Dashboard ブロック側で値を変更することで、接続したブロックのパラメータの値も同じ値に変更されるようになります。

Dashboard ブロックはシミュレーション中にも値を変更することができますので、パラメータを色々変更しながら出力信号の値の変化を見る、なんてことも可能です。
ちなみに、接続はパラメータダイアログからでも行うことができます。他にも、調整できる値の範囲や目盛りの間隔など、パラメータに合わせて調整方法もここからカスタマイズできます。

2.3 信号の可視化用のブロックの使い方
信号の可視化用の Dashboard ブロックは、可視化したい信号と接続して使用します。こちらもパラメータ調整用のブロックと同様に、接続ショートカット(またはダイアログ)から信号線と接続します。

こちらも、一度接続してしまえばシミュレーション中に信号の値が可視化されます。2つを組み合わせれば、値を見ながらパラメータ調整用のブロックで値を変えて……みたいなこともできちゃいますね。
2.4 アプリ階層の作成
上記の手順で適切なブロック・信号と Dashboard ブロックを接続していくだけで、簡易的なアプリを作成できます。
ただし、メインのモデルと同じ階層に Dashboard ブロックを何個も置いてしまうと、メインのモデルの操作がしづらくなったり画面が少し重くなったりすることがあります。そのようなときは、Dashboard ブロックのみをまとめたサブシステムを作成するのがオススメです。

このようにすれば、シミュレーションしている間は Dashboard の階層だけ、モデルの編集が必要な場合はメインモデルの階層だけ見ていればいいので、可読性・スケーラビリティが上がりますね。
Tips: シミュレーションがすぐに終わってしまいパラメータの調整ができない場合の対処法
モデルによっては、シミュレーションがすぐに終わってしまい、パラメータの調整を Dashboard ブロックでリアルタイムに行うのが難しい場合もあります。そんなときは、「シミュレーションペーシング」機能が便利です。

シミュレーション ペーシングを使うと実時間に近い形でシミュレーションを行うことができますので、信号の値を見ながらパラメータの調整がしやすくなります。
3. App Designer で作成するアプリとの比較
この Dashboard ブロックと似たような機能として、以前 App Designer でシミュレーションアプリを作成する方法についてこのブログで解説しました。
Dashboard ブロックでアプリを作成することのメリットとしては以下が挙げられます。
- コードを書く必要がないのでアプリの作成が楽
- モデルファイルのみで完結している(別ウィンドウを開く必要がない)
- アプリの編集が楽(接続先の変更、コンポーネントの追加・削除が簡単)
逆に、App Designer でアプリを作成することのメリットとしては以下が挙げられます。
- Simulink API を用いることで、より自由度の高いアプリを作成できる
- 必ずしもモデルファイルを開く必要がない
- 他の MATLAB コードとの連携がしやすい
基本的には、Dashboard ブロックを用いた方が手軽にアプリを作ることができます。なので、「コードをいっぱい書ける自信はないけどシミュレーションをもっと効率的にやりたい」といういった方には特にオススメです。
4. (発展)Customizable Blocks
Dashboard > Customizable Blocks ライブラリの中には、外観をカスタマイズ可能な Dashboard ブロックがいくつか入っています。これらのブロックは、背景画像や不透明度など、ブロックの見た目を自由に変更することができます。

実際のカスタマイズ例はこちらのドキュメントでも説明されていますので、より使いやすい・見栄えのいいアプリを作りたい方は、ぜひこれらのブロックも試してみてください。
5. おわりに
今回は Dashboard ブロックを使った効率化について解説しました。「Simulink しか使ったことないし、シミュレーションの効率化なんてハードル高そう」という方も、Dashboard ブロックを使えば Simulink ブロックだけで気軽にアプリが作れるので、息抜きがてら試してみてはいかがでしょうか?
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK