MATLAB ユーザーコミュニティー

MATLAB & Simulink ユーザーコミュニティー向け日本語ブログ

【Simulinkユーザー向け】R2021aの便利な新機能

こんにちは。今月 R2021a がリリースされました。私は MATLAB 派(?)なのでMATLABの新機能をいろいろ紹介したいところですが、まずは Simulink の新機能を、これまでも何度か記事を書いていただいた同僚の “toshi | Simulink の中の人” さんに話してもらいます。

===============

こんにちは。アプリケーションエンジニアリング部の toshi | Simulink の中の人です。今回は、Simulinkユーザーのための便利な新機能を紹介したいと思います。タイトルにはR2021aとありますが、R2020b以前の便利機能もいくつか紹介しています。これらを知っていれば、格段に作業効率が向上します!ぜひ最後までお読みください。

目次

  1. エディタ便利機能
  2. シミュレーション データ インスペクター
  3. サブシステム参照
  4. シグナル エディター
  5. 検索とモデル データ エディター
  6. シミュレーションの高速化

対象ユーザー

今回の記事の対象ユーザーとしては、以下を想定しています。

  • 企業でSimulinkを用いた開発を行っており、主に古いバージョン(R2015aなど)を用いている人
  • 最近、諸々の事情でMATLABのバージョンアップを検討している人

もちろん、普段から積極的に最新バージョンを使っている人でも、今まで知らなかったであろう便利な機能を紹介していますので、十分参考になると思います。

1. エディタ便利機能

[目次]

Simulinkのキャンバスにブロックを配置したい時、どうしていますでしょうか。ライブラリブラウザからブロックを探してドラッグ&ドロップしていますでしょうか。実は、ブロック名を覚えていれば”スマート編集キュー”で素早くブロックを置くことができます。以下の動画を確認してください。

実はこの機能自体はR2014bから実装されていますので、「これくらいは知っているよ」という人もいるかと思います。しかし、この”スマート編集キュー”は、バージョンを追うごとに様々な機能拡張がなされています。例えば、R2021aでは選択領域の一括移動という技も使えるようになりました。以下の動画を確認してください。

信号線の移動など、今まで一つずつやる必要があり大変だった作業が、非常に高速にできるようになりましたね。他にも便利な編集方法があります。ブロックの追加とパラメータの設定に説明されていますので、興味のある方はご確認ください。

一方で、キーボードショートカットによる作業の効率化もできます。Simulink でのモデル化用のキーボード ショートカットとマウス操作も是非ご確認ください。

2. シミュレーション データ インスペクター

[目次]

Simulinkの実行結果を見る機能は何でしょうか。おそらく、多くの人が「Scope」と答えると思います。Scopeは、古くからSimulinkの信号の可視化機能として標準的に用いられてきており、皆さんはすでに息をするようにScopeを使えることでしょう。しかし、敢えて言わせていただきます。もはやScopeは不要です。これからは”シミュレーション データ インスペクター”を使ってください。

シミュレーションデータインスペクターはR2010bで実装された、意外と古い機能です。これを使うと、信号線やOutportブロックの値をまとめて可視化できます。また、バージョンを追うごとに機能拡張がなされ、今では複数のシミュレーション結果の比較や、XYプロット、APIによる操作、Simscapeの物理変数の結果を表示など、非常に多彩な機能を備えています。以下の動画に、基本的な使い方をまとめました。

一方で、動画を見た方は「一つの信号を手軽に見たい場合は、まだScopeの方が早いな」と思った人もいるのではないでしょうか。おっしゃる通りなのですが、実はR2021aにて、その場合でもScopeの代替として使える新機能がリリースされました。それは、”Record”ブロックです。使い方は、以下の動画を確認してください。

Rocordブロックは、小型のシミュレーションデータインスペクターのようなものです。使い勝手はScopeと同等でありながら、シミュレーションデータインスペクターの各機能がそのまま使えるので、Scopeの上位互換と言えます。

その他の使い方については、シミュレーション データ インスペクターRecordブロックで説明されていますのでご確認ください。

3. サブシステム参照

[目次]

Simulinkモデルが大規模になってくると、各機能(サブシステム)ごとにファイルに分けたくなります。ファイル分けする手法として、従来は”ライブラリ”と”参照モデル”という手法がありました。ライブラリは、共通機能を括り出して一つにまとめることができる機能ですが、サブシステム一つだけを別ファイルにしたいと思った場合には、結構手間でした。なぜなら、ブロックをライブラリ化する場合は、ライブラリ化のための作業が発生するためです。

参照モデルは、サブシステム一つだけをモデルファイルにできますが、参照するモデルファイル自体は独立して実行できなければなりません。そのため、いくつかの制約が発生しており、手軽にファイル分けできるものではありません。

そのような「単一のサブシステムを手軽にファイル分けしたい」場合に適した機能として、R2019bにて”サブシステム参照”が実装されました。簡単な使い方を以下の動画で紹介しています。

細かくファイル分けするメリットとしては、GitやSubversionなどのバージョン管理ツールで変更点を追いやすい、ということが挙げられます。

その他の使い方については、サブシステム参照で説明されていますのでご確認ください。

4. シグナル エディター

[目次]

信号を可視化する機能は古くはScopeでしたが、一方で信号を作る機能は何でしょうか。Simulinkには昔から、自由に信号波形を作ることができる”Signal Builder”ブロックがありました。実はこのSignal Builderは、将来的になくす予定です。愛用してくださっている方、申し訳ありません!代わりに、”Signal Editor”ブロックを使ってください!

Signal EditorブロックはSignal Builderブロックの次世代版になります。また、Signal Editorアプリという、Simulinkからは独立した機能がありまして、そのアプリで作った信号をSimulinkにインポートするブロックがSignal Editorブロックになります。細かいことは置いておいて、それら二つをまとめてシグナルエディターと呼んでくださって大丈夫です。基本的な使い方については、以下の動画をご確認ください。

Signal Builderと比較して、画面が見やすくなっており、操作もラクに行えることが分かると思います。

その他の使い方については、信号データの作成と編集Signal Editorブロックで説明されていますのでご確認ください。

5. 検索とモデル データ エディター

[目次]

大規模なモデル程、検索やブロックの情報をリスト化して確認したくなりますよね。これまで、多数のブロックの検索やパラメータの置換などは、機能の制約もあり、手間だったことだと思います。

検索機能はR2016bにて改善され、新しいインターフェースになりました。そして”モデルデータエディター”という、ブロックや信号線のパラメータを一括して設定できる便利機能も実装されました。そしてR2021aにて、ついに”置換”ができるようになりました!(今更とは言わないでください… ( ;∀;))

以下の動画に、基本的な使い方をまとめています。ご確認ください。

動画にもありますが、モデルデータエディターを使うと、面倒だったシミュレーションデータインスペクターのログ設定も一括して行えます!

その他の使い方については、検索と置換モデル データ エディターを使用したデータ プロパティの設定で説明されていますのでご確認ください。

6. シミュレーションの高速化

[目次]

最後は、作業を効率化する新機能というよりは、モデルの実行を早める新機能についてです。

R2014bにて、”高速リスタート”という機能が実装されました。これを有効にすると、2回目以降のシミュレーションで初期化行程をスキップします。例えば、パラメータだけを変更しながら何百回、何千回とシミュレーションする場合に、トータルの実行時間を短縮することができます。

また、R2017aから、”Simulinkキャッシュ”というファイルが自動的に生成されるようになりました。(拡張子は.slxc)このファイルにはモデルのビルド情報が格納されていまして、このファイルがあることで、特に参照モデルを使っている場合にモデルの不必要な再ビルドを防止できます。ですので、なるべく消さないように運用していただけるとありがたいです。

このように、開発ワークフローを考慮した高速化機能の開発を着実に進めています。

まとめ

いかがだったでしょうか。特にR2015aまでしか使っていなかった方は、6年分の変化を大きく感じられたのではないかと思います。MATLABとSimulinkはこれからも、皆様の研究や開発の効率アップに貢献していきます。今後ともよろしくお願いいたします。

|
  • print

Comments

To leave a comment, please click here to sign in to your MathWorks Account or create a new one.