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

Matlab&Si金宝appmulinkユーザーコミュニティー向け日本语ブログ

金宝appSIMULINKモデル実行中可以てみた!

こんにちは,トレーニングエンジニアの遠藤と申します。
前回の投稿は5/14ということで,なんと5ヶ月ぶり​​の投稿です。时が経つのは早いものですね......。

このブログでで,「金宝appsimulinkとmatlabをを「」をコンセプトとして,「金宝appSimulink API.」や「应用设计师とSimulink中金宝appの连携方法」について书いてきました。

,S金宝appimulinkのモデル内でMatlabのコードを使う大厦动机の一道であるsimulinkの可视可催化,特点「モデル行」」まとめてみたいと思い思い

金宝appSimulinkにおける可化

金宝appsimulinkでシミュレーションを行う上で,「可融化」はモデル正式作品れてかかてかかか,パラメータの値はか,意図しない结果なる原因はか,などをチェックする上ではでは欠かせないないプロセスになりなり

さて,金宝appSimulink中における可视化には主に2つのタイプがあります。

  • モデル実行后の可视化

    シミュレーションを一度行い,そのログデータを使って可视化を行う方法です。様々なシミュレーションデータを详细に検证する场合,复数のシミュレーション结果を比较する场合はこちらを使用します。

  • モデル行行中の可视化

    シミュレーションを実行中に,计算结果を逐次的に可视化していく方法です。ハードウェアと连携してストリーミング处理を行う场合など,リアルタイムにモデルが正しく动いているかを监视する必要がある场合,モデル実行中の可视化が必要になります。

前者については,ログデータさえ取ってしまえば豊富なMATLABの可视化关数を使うことができるため比较的简単です。それに対し,后者はモデルの実行中,すなわちSim金宝appulink的モデル内で可视化处理を行う必要があるため,使える可视化机能は限られてきます。

ただ,モデル実行中に可视化したいデータの中には,范围ブロックで时间応答を见るだけでは十分でないケースも多いです。特にハードウェア连携を行うなら,见栄えという意味でもデータの可视化の部分を充実させたいですよね。例えば下载动词仪仪表仪表を使っていいのuiを作用っます。

そこで,今回はモデル実行中の可视化方法についてどのようなものがあるのか​​,简単にまとめていきたいと思います。

金宝appSimulinkの标准机能を使っ可致

「でで「モデルモデル実実可视」」「金宝appsimulinkのモデル内でmatlabのコードを使う大厦动机の一般送象と书籍ましたが,もちろんmatlabを使わてもsimulinkのの机能だけでいろいろ可催化うます。

·范围ブロック

まずは最もメジャーな范围ブロックブロック。信号の时间応答をプロットしてくれます.Scopeブロックはモデル実行后の结果の确认に使用される场合も多いですが,一定时间ごとに结果が逐次更新されるため実行中の可视化にも使えます。

また,范围のメニューの「ツール」 - >「测定値「から」ピークの検出」や「信号の统计」を选ぶと,信号のピーク値や最大/最小値といった情报をリアルタイムで确认することができます。ストリーミングデータにフィルタをかける场合など,リアルタイムで信号の详细情报が必要な场合に有效です

ちなみにスコープビューアー机能を使うと,わざわざ信号に范围ブロックを系がなくても同等の可视化を行うことができるので,モデル上の复数の信号を可视化する际はオススメです。

·XY图形ブロック

XY图形ブロックは1つ目の信号を横轴,2つ目の信号を縦轴としたグラフを描画するブロックです.Scopeは1つの信号の详细情报を确认するのが得意ですが,XY图形は2つの信号の关系性を视覚的に确认したい场合に有效です

例えば物体の位置を制御するモデルの場合、x と y の応答を単体で見ても状況が分かりにくいため、x-y グラフを書いて経路を見たほうが正常に動作しているかどうかわかりやすいですよね。こういった場合は XY Graph ブロックが便利です。

注意点として,范围ブロックとは违い,XY图には座标轴のオートフィッティング机能がありません。モデルの実行中でもXY图ブロックのパラメータは自由に変更可能ですので,もし途中で座标轴の范囲を変更したい场合は,ブロックパラメータウィンドウから座标のの値を変更しましょう。

·仪表板ライブラリ

仪表板ライブラリライブラリ内のブロックブロックに仪表盘范围ブロックや测量ブロックなどモデル実行中に更新される可视化机能があります。ちなみに冒头で绍介した动画で使われていたのはこのライブラリのブロック群です。

仪表盘ライブラリの可视化用ブロック群は,モデル上に直接シミュレーション结果を可视化することができるため,大量の范围ウィンドウの表示を切り替える,モデルの阶层を移动しながら适切な范围ブロックを开く,といった手间が生じにくいのが大きな利点です。モデル上に一种のシミュレーションアプリを作ることができるため,前回の记事と同様,金宝appsimulinkにあまり惯れてない方向とをやり取り际にに效果效果ね。

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

シミュレーションデータインスペクターはS金宝appimulink中の可视化机能の一つで,「选択した信号のログ」を设定した信号の时间応答を可视化することができます。多くの场合はシミュレーション実行后に検证,比较を行うために使われますが,一度モデルを実行してプロットする信号を选択しておけば,シミュレーション実行中にその结果を确认することが可能です。

シミュレーションデータインスペクターを使う一番の利点は,行行中のシミュレーション结果だけでなく,过去のシミュレーション结果も合わせて可视化できる点です。例えば↑のGIFは前の実行结果を赤で表示しつつ,モデルのパラメータを変えて再度実行した结果を青でプロットしています。モデル実行中に过去の结果と比较したい场合は特に有效な可视化方法となります。

MATLABの关关数を使っ可调

MATLABにはSi金宝appmulink中の标准机能よりも多くの可视化关数がありますので,モデル内でそれらの关数を使うことでより高度な可视化を行うことができます。モデル内でMATLAB关数を使用する方法は复数ありますが,ここ

  • MATLAB功能ブロック
  • 解释了Matlab功能ブロック
  • MATLAB系统ブロック

の3つについて绍介しようと思います。

MATLAB功能ブロック(+编码器.Extrinsic关节

MATLAB功能ブロックブロック,ブロックブロック管理をmatlabコードコード记述することができるブロックです。おそらくモデル上でmatlab关键词使能能思いは。

しかし,MATLAB函数ブロックはシミュレーション実行时にMATLABコードをコード生成しますので,コード生成に対応していない关数は使用できません.MATLABの可视化关数は基本的にコード生成非対応ですので,そのままでは使用できない,ということになってしまいます。

そこそこ使用するのが编码器.Extrinsic.と关关数です。この关节关と,指定指定た关键が生成さされずにこれ侧でで実されるにになり视视视视视可以ようになりますのます可以。ます(详しくはこのドキュメントを参照)。

使い方は,MATLAB函数ブロックのコードの冒头にcoder.extrinsicを1行入れるだけです。可视化の关数を自分で的.mファイルとして作成しておき,それをcoder.extrinsicで指定して使用する场合が多いかと思います。

功能FUNC(U)

编码器.Extrinsic('mydispfun');
myDispFun(U);

结尾

myDispFun.mのコード生成は行われないため,内部では自由にMATLABのコードを书くことができます。可视化に使うときには,永続変数を使ってデータ点を追加していく处理を书く场合が多いですね。例えば,次のコードは最初のステップで情节をし,それ以降のステップではデータを追加する处理になります。

功能myDispFun(U)

执着的P.
如果的isEmpty(p)的
p = plot(u(1),u(2));
轴([0 10 0 10]);
别的
p.xdata = [p.xdata u(1)];
p.ydata = [p.ydata u(2)];
结尾

结尾

ただし,永続変数を使うと次回以降のシミュレーションに値が持ち越されてしまいます。そのため,シミュレーションを実行するごとに清除コマンドで永続変数をクリアする必要がある点に注意が必要です。

后述する2つのブロックと比べると,制约制约が少なくコードコードもきき,とというメリットがありありばこのブロックを使っておけ,可以致以ない,ということはにくいにくいとます。

解释了Matlab功能ブロック

解释MATLAB功能ブロックは,指定したMATLAB关数をMATLAB上で実行し,结果をSimulink中に返すブロックです。金宝app

MATLAB功能ブロックと违ってそもそもコード生成が行われないため,编码器.Extrinsic关节の外部关键词うことそのままmatlab关键词关键词

可视化用の关数を作成してそれをブロックで指定するだけなので,非常に手軽に使えるのがちょっとしと思います。ちょっとちょっとた可化や动词のテストを行うはは便利。

ただし,解释Matlab功能ブロックには「入力は双重型のスカラ,ベクトル,行为のみ「,入力信号に対する大きな制約があります。他のデータ型や公交线路は対応しないのでが必要です

また,何かしらの出力信号が必要なな,描画だけ行いといういういうは,适当なダミー値を出し终结器ブロックに接続,といった工艺が必要です(上の画像をです)。

MATLAB系统ブロック

こちらはmatlabの系统对象をモデル上で呼び出すことができます。通讯尾声信号管理や通信システム等等状态状态状态ブロックとモデルモデル使使使ブロックがががががですがが视视视视をう际に利た経験があるので,上记2つのブロックとててしたいと思います思い思い思い思い

Matlab SystemブロックはデフォルトではMatlab功能が実行ささようなるためためため,コード生成非対応关有关部用。

Matlab Systemブロックブロック上记2つのブロックの最大の违いは,プロパティ(内部データ)を持つことができる点です。

例えば,(解释)MATLAB功能ブロックでデータ点を追加していくような定理を书架うとしたたにプロットハンドルを格式するにの

これに対し,MATLAB系统ブロックでは永続変数を使わなくても内部プロパティにプロットのハンドルを保存しておくことができます。プロパティの値はシミュレーションごとにリセットされるので,わざわざ清楚関数でリセットする必要はありません。

ただし,系统对象を作用る必要あるある关键词上,ある程度の系统对象に关する知识が必要となるので,惯れてない方には少しハードルが高いかもしれません。

その他の可视化方法

上述した金宝appSIMULINKのの机械能MATLAB关有关部をを户外法律についてについて简体

·イベントリスナー机能をを使っ可调

ちょっとマイナーな方法ですが,イベントリスナー机能を使ってもモデル実行中の可视化を行うことができます。

イベントリスナーとは,「特定のイベントが発生したときに登录しておいた关数を自动的に実行する」机能のことです.金宝appSimulinkにはadd_exec_event_listenerという关节数がさており,モデル上の特定ブロックがされたに,特定关键词,所以关有关键词

残念ながら,イベントリスナーの机能の使い方をここで详细に说明しようとするとそれだけで结构なボリュームになってしまうため,ここでは绍介のみとさせていただきます。详细はこちらの例がとてもわかりやすいと思います,兴味兴味方向ぜひご参考参考。

·ツールボックスの専専専可用

例えばDSP系统工具箱のツールツールの中には実実のにはのの可化使えるブロックがあり。频谱分析仪ブロックや计算机视觉工具箱の视频查看器ブロックなどが挙げられます。

各ツールボックスにどんなブロックがあるかについては挙げ始めるとキリがないので,気になる方はドキュメントの左の「カテゴリ」からツールボックスを选び,上部メニューの「ブロック」からブロックリストをご确认いただければと思います。

おわりに

今回はS金宝appimulink的モデルの実行中の可视化方法についてご绍介しました。

范围ブロックだけではわかりづらいという场合は,専用のブロックやMATLABコードの力を借りることでよりわかりやすい形に可视化でき,モデルの开発,検证を效率よく行えるようになるかもしれません!

|

注释

要发表评论,请点击这里登录您的MathWorks帐户或创建新的。