Real-Time Workshop User's Guide | ![]() ![]() |
パラメータチューニングとモニタリング
Simulinkのexternalモードを使って、プログラム実行中にホストからプログラムのパラメータを変更し、Scopeブロックを使ってデータをモニタリングできます。StethoScopeのデータ解析ツールを使って、プログラム出力をモニタすることもできます。
Simulink externalモードとStethoScopeを組み合わせて使って、プログラム内のモデルパラメータを変更したり、これらの変更の結果をリアルタイムで解析できます。
External Mode
Simulinkのexternalモードは、実行しているプログラムに新しいパラメータ値をダウンロードし、モデル内の信号をモニタリングするメカニズムを提供します。このモードでは、externalリンクMEX-ファイルは、新しいパラメータ値のベクトルを、ネットワーク接続を経由してリアルタイムプログラムに送ります。これらの新しいパラメータ値は、新規のコード生成やビルドを繰り返さなくても、パラメータを変更したときにプログラムに送られます。
BlockIOSignalsコード生成オプションを使って、VxWorksで信号をモニタリングできます。詳しい情報と例題コードについては、「パラメータと信号のインタフェース」を参照してください。
リアルタイムプログラム(VxWorksターゲット上で実行する)は、externalリンクMEX-ファイルとの通信を行う優先度の低いタスクを行い、プログラムに渡されると新しいパラメータを受け取ります。
Simulinkとリアルタイムプログラム間の通信は、ソケットネットワークAPIを使って行われます。この実現には、TCP/IPをサポートするイーサネットネットワークが必要です。externalモードの詳しい情報については、第5章、「Externalモード」を参照してください。
ブロック線図構造への変更(たとえば、ブロックの追加や削除)は、モデルの生成とビルドプロセスの実行が必要です。
ソケットを使ったVxWorksの設定
VxWorksプログラムとSimulinkのexternalモードを利用したい場合は、VxWorksイメージにINCLUDE_NET_INIT
, INCLUDE_NET_SHOW
, INCLUDE_NETWORK
オプションを設定して、ソケットをサポートするVxWorksのカーネルを構成しなければなりません。カーネルの構成の詳しい情報は、VxWorks Programmer's Guideを参照してください。
externalモードを使う前に、VxWorksはネットワーク上のホストに適切に応答することを確かめなければなりません。つぎのホストコマンドを使って調べることができます。
ping <target_name>
注意
ホストがVxWorksシステムと同じローカルネットワーク(サブネット)上になければ、VxWorksにルーティングテーブルエントリを入力する必要があります。詳細は、VxWorks Reference GuideのrouteAdd を参照してください。 |
ソケットを使ったSimulinkの設定
Simulinkのexternalモードは、MEX-ファイルを使ってVxWorksシステムと通信を行います。MEX-ファイルは、
matlabroot
/toolbox/rtw/ext_comm.*
ここで、*
はホスト独立のMEX-ファイル拡張子です。詳細は、第5章「 Externalモード」を参照してください。
VxWorksとともにexternalモードを使うためにはExternal Target Interface のダイアログボックス (External Modeコントロールパネルからアクセス可能です)のMEX-file for external interfaceとしてext_comm
を指定します。MEX-file argumentsフィールドで、VxWorksターゲットシステム名と、オプションで、冗長性とTCP端子番号を指定する必要があります。冗長性は0 (デフォルト)、または情報を出力したい場合は1です。TCP端子番号の範囲は、256から65535(デフォルトは17725です)です。TCP端子17725を使っている他のソフトウェアと重複する場合は、External Target InterfaceのMEX-file for external interface の第3引数を変更することによって、端子を変更できます。MEX-ファイル引数フィールドのフォーマットは、以下の通りです。
'target_network_name
' [verbosity] [TCP port number]
たとえば、つぎの図は、デフォルトの冗長性と18000に割り当てた端子をもつhalebopp
というターゲットシステム用に設定されたExternal Target Interfaceを示します。
StethoScope
を使って、(リアルタイムプログラム内の)モデルのブロックの出力にアクセスしたり、データをホスト上に表示できます。信号は、BlockIOSignals
データ構造体を使ってリアルタイムプログラムによってStethoScopeにインストールされるか(BlockIOSignals
に関する情報については、「パラメータと信号のインタフェース」を参照)、リアルタイムプログラムの実行中はWindSh
から対話的にインストールされます。StethoScopeの対話的な使い方は、StethoScope User's Manualを参照してください。
StethoScopeを使うためには、ビルドコマンドを使って適切なオプションを指定しなければなりません。これらのオプションについては、を参照してください。
![]() | ランライムアーキテクチャの概要 | 実行時の構造 | ![]() |