学生用 小坂研

59 

Loading....

Loading....

Loading....

Loading....

Loading....

全文

(1)

xPC Target

付録版

目次

第1章 インストール

1.1 MATLAB・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

1.2 Cコンパイラ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

1.3 Target PC ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

 1.3.1  PCI AD/DA/PIOボードの実装 ・・・・・・・・・・・・・・・・・・・・・ 1

 1.3.2 サポートされたLANカードの挿入・・・・・・・・・・・・・・・・・・・・

1.4 ホストとTarget PCの接続・・・・・・・・・・・・・・・・・・・・・・・・・

第2章 初期設定

2.1 IPアドレス・サブネットマスクのセット・・・・・・・・・・・・・・・・・・・ 5

2.2

Simulink・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・5

2.3 xPC Target

Explorer・・・・・・・・・・・・・・・・・・・・・・・・・・・・5

2.4 Host-Target接続 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

第3章 実験

3.1   Target PC と の 接 続

・・・・・・・・・・・・・・・・・・・・・・・・・・・・8

3.2 簡単なSimulinkモデルの作成 ・・・・・・・・・・・・・・・・・・・・・・・

3.3   Simulink へ の ア ウ ト ポ ー ト ブ ロ ッ ク の 追

(2)

3.4 アウトポートブロックへのパラメータの入力・・・・・・・・・・・・・・・・・ 10

3.5   xPC target Scope ブ ロ ッ ク の 追

加・・・・・・・・・・・・・・・・・・・・・・12

3.6   xPC Target Scope へ の パ ラ メ ー タ 入

力・・・・・・・・・・・・・・・・・・・・13

 3.6.1 Type TargetのxPC Targetへのパラメータ入力・・・・・・・・・・・・・・ 13

3.6.2   Type Host の xPC Target へ の パ ラ メ ー タ 入 力・・・・・・・・・・・・・・・15

3.6.3 Type FileのxPC Targetへのパラメータ入力・・・・・・・・・・・・・・・ 17

3.7 Simulinkを用いたモデルのシミュレーション・・・・・・・・・・・・・・・・・

19

3.8 MATLABを用いたモデルのシミュレーション ・・・・・・・・・・・・・・・・

19

3.9   target PC の 起 動

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・19

3.10   Real-Time Workshop パ ラ メ ー タ の 入

力・・・・・・・・・・・・・・・・・・・20

3.11   ア プ リ ケ ー シ ョ ン の ビ ル ド と 読 み 込

み・・・・・・・・・・・・・・・・・・・・21

3.12   Time-Out 値 の 増

加・・・・・・・・・・・・・・・・・・・・・・・・・・・・22

3.13   xPC Target Explorer を 用 い た 制

御・・・・・・・・・・・・・・・・・・・・・22

3.14 target PC上でのアプリケーションの読み込みと実行・・・・・・・・・・・・・

24

3.15 アプリケーションプロパティの処理 ・・・・・・・・・・・・・・・・・・・・ 25

3.16 MATLABコマンドでの制御・・・・・・・・・・・・・・・・・・・・・・・・

26

3.17   Simulink External Mode を 用 い た 制

御・・・・・・・・・・・・・・・・・・・27

3.18   xPC Target Explorer を 用 い た 信 号 の 観

(3)

3.19 MATLABインターフェースを用いた信号の観測・・・・・・・・・・・・・・・ 29

3.20   Stateflow states の 観

測・・・・・・・・・・・・・・・・・・・・・・・・・・30

3.21   xPC Target Explorer を 用 い た Stateflow States の 観 測・・・・・・・・・・・・31

3.22 MATLABインターフェースを用いたStateflow Statesの観測・・・・・・・・・ 32

3.23   xPC Target Explorer を 用 い た 信 号 の 追

跡・・・・・・・・・・・・・・・・・・32

3.23.1 Scope の 作 成

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・32

3.23.2   Scope へ の 信 号 の 追

加・・・・・・・・・・・・・・・・・・・・・・・・・34

3.23.3   Scope の 停

止・・・・・・・・・・・・・・・・・・・・・・・・・・・・・35

3.23.4   Triggering Scopes

・・・・・・・・・・・・・・・・・・・・・・・・・・35

3.23.5 ホストPCへのファイルのコピー・・・・・・・・・・・・・・・・・・・・

35

3.23.6 タイプファイルのScopeからMATLABワークスペースへのデータ転送・・・ 36

3.23.7 xPC Targetアプリケーションセッションの保存とリロード ・・・・・・・・ 37

3.24 MATLABインターフェースを用いた信号の追跡・・・・・・・・・・・・・・・

37

3.24.1 MATLABインターフェースとType TargetのScopeを用いた信号の追跡・・ 37

3.24.2 MATLABインターフェースとType FileのScopeを用いた信号の追跡・・・ 40

3.25   xPC Target Scope ブ ロ ッ ク を 用 い た 信 号 の 追 跡 ・・・・・・・・・・・・・・・44

 3.25.1 参照したモデルからのxPC Target Scopeブロックの使用・・・・・・・・・ 44

3.25.2   Type Host の

(4)

3.25.3   Type Target の ス コ ー プ・・・・・・・・・・・・・・・・・・・・・・・・44

3.25.4   Type File の Scope

・・・・・・・・・・・・・・・・・・・・・・・・・・45

3.26   Simulink External Mode を 用 い た 信 号 の 追

跡・・・・・・・・・・・・・・・・45

3.26.1   制

限・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・45

3.26.2   始 め る 前

に・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・46

3.27   External Mode Example を 用 い た 信 号 の 追

跡・・・・・・・・・・・・・・・・46

3.28   Web ブ ラ ウ ザ を 用 い た 信 号 の 追 跡

・・・・・・・・・・・・・・・・・・・・・47

3.29   xPC Target Explorer を 用 い た 信 号 の 記

録・・・・・・・・・・・・・・・・・・48

3.30 MATLAB Interfaceでの信号の記録 ・・・・・・・・・・・・・・・・・・・・ 48

3.31   Web ブ ラ ウ ザ を 用 い た 信 号 の 記 録

・・・・・・・・・・・・・・・・・・・・・50

3.32   xPC Target Explorer を 用 い た パ ラ メ ー タ 調

整・・・・・・・・・・・・・・・・50

3.33 MATLABインターフェースを用いたパラメータ調整・・・・・・・・・・・・・

51

3.34 アプリケーションパラメータのリセット ・・・・・・・・・・・・・・・・・・ 53

3.35   Simulink External Mode を 用 い た パ ラ メ ー タ 調 整・・・・・・・・・・・・・・53

3.36   Web ブ ラ ウ ザ を 用 い た パ ラ メ ー タ 調 整 ・・・・・・・・・・・・・・・・・・・55

3.37 MATLABインターフェースを用いたアプリケーションパラメータの保存とリロード

・・・・・・・・・・・・・・・・・・ 55

(5)

第4章 補足

4.1   簡 単 な 流 れ

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・56

4.2 MATLABの使用例 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・

56

  4.2.1   mat 形 式 で の 保 存

・・・・・・・・・・・・・・・・・・・・・・・・・・・56

  4.2.2   plot 関 数

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・56

4.3   エ ラ ー

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・56

(6)

matlabのインストールCDを使用してインストールする。 1.2 Cコンパイラ

1.2.1 Open Watcom バージョン1.3をダウンロード

   1.2.2 インストール時、「Program files」のようにスペースを用いたディレクトリ 名は避ける。

1.3 Target PC

1.3.1 PCI AD/DA/PIOボードの実装

1.ボードを実装する前にシステムをシャットダウンし、コンセントからパソコ ンの電源ケーブルを抜く。

2.パソコンのカバーを外し、ボードを実装できるようにする。 3.拡張スロットにボードを実装する。

4.ボードのプラケットをパソコンにネジで固定する。 5.パソコンのカバーを取り付け、元の状態にする。

 実装できるPCIバススロット

(7)

PCIバスボードの誤挿入を防止するためのキーがある。このボードは、5V用PCIバ ススロット及び3.3V用PCIバススロットの両方に実装できる。

1.3.2 サポートされたLANカードの挿入

(8)
(9)

1.4 ホストとtarget PCの接続

(10)

2.初期設定

  2.1 ホスト側のPCのIPアドレス、サブネットマスクをセットする。   2.2 Simulinkモデル “Simulation”タブ → 設定パラメータ 2.2.1 “Fixed Step”への”Solver”に”Type”を設定する。

    2.2.2 “xpctarget.tlc”への”real time workshop”に”system target file”を 設定する。

  2.3 MATLABのコマンドウィンドウに”xpcexplr”と入力する

      2.3.1 Host PC Root → Compiler Configulation → Select C compiler:”Watcom”

       Compiler passを”c:\watcom”のようにセットする。

   2.3.2 Target PC1

2.3.2.1 Configulation → Target boot type:”Boot Floppy”

もしネットに接続していない状態なら、”StandAlone”を選択する。       2.3.2.2 Communication → Communication Protocol:”TCP/IP”

(11)

2.4 Host-Target 接続

     xPC TargetはホストPCとtarget PCの間の2つの接続と通信プロトコルをサ ポートする。

(12)

    ネットワーク接続 ・・・ ホストとtarget PCはネットワークを通して接続さ れる。 ネットワークは、クロスオーバーイーサネットケ ーブ  ルを使用している直接接続、またはLAN、インタ ーネットがある。ホストとtarget PCの両方がTCP/IPプ ロトコルを使用しているイーサネットアダプタカードで コミュニケーションに状態でネットワークに接続される。       ネットワーク接続を使用するとき、target PCは、xPC

Target製品が提供しているイーサネットアダプタカード

(13)

3.実験

3.1 Target PCとの接続

 1.モデルで使用する定数をセットするため、MATLABのコマンドウィンドウ

に”C_TS=0.1”のようにサンプリング時間を入力する。

2.モデルの上の“help”タブから“External”をクリックする。

3.モデル上の”External”の近くの”Incrimental build”ボタンをクリックする。 4.モデル上の”External”の近くの”Connect target”ボタンをクリックする。 5.“Connect target”ボタンの隣の”Run”ボタンをクリックし、制御を開始する。 6.もし定数を変更する場合は、要素をダブルクリックして変更する。変更箇所が多

い時は、再び”Incrimental build”を行う。

7.スコープによって定義された名前がついたデータがMATLABのコマンドウィン ドウにストックされる。

8.大きなデータはモデル内のファイルのScopeに作られることで、target PC内 のドライブにストックされる。それを開くには xpcexplr → “Connect target” ボタンをクリック→ File System → local disk →”data??.dat”を右クリック

し、”send to host”を選択。コマンドウィンドウに以下のように入力する。

1    h=fopen(‘data??.dat); 2    data=fread(h);

3    fclose(h);

(14)

3.2 簡単なSimulinkモデルの作成

目的の対象を作成する前に、Simulinkモデルを作成する必要がある。xPC Targetは、対 象を作成するのにSimulinkモデル、Real-Time Workshop環境、および第三者コンパイラ を使用する。以下に、xPC Targetの処理に必要とするタスクについて説明するために簡単

なSimulinkモデルを使用する。モデルは伝達関数と信号発生器ブロックを使用する。モデ

ルをシミュレートしている間、信号を視覚化する場合、標準のSimulink Scopeブロックを 加える必要がある。

1.MATLABコマンドウィンドウに、simulinkと入力する。

2.ファイルメニューからは、Newを選択。次に、Modelをクリックする。

空白のSimulinkモデルウィンドウが開く。

3.左の枠では、Simulinkをダブルクリックし、次にContinuousをクリ ックする。

右の枠のSimulinkライブラリはブロックのリストを示している。

4.SimulinkモデルウィンドウにTransfer Fcnブロックをドラッグ&ドロップする。 5.NumeratorとDenominator値を調整して、反映させる。

6.Simulinkライブラリブラウザのウィンドウでは、以下のブロックをドラッグ&ドロ

ップする。

Sourcesをクリック、Signal Generatorブロックを加える。 Sinksをクリック、Scopeブロックを加える。

Signalルート設定をクリック、Muxブロックを加える。

7.Signal GeneratorブロックをダブルクリックするとBlock Parametersダイアロ グボックスが開く。 Waveフォームリストからはsquareを選択する。

8.Amplitudeテキストボックスに1を入力する。 9.Frequencyテキストボックスに20を入力。 10.Unitsリストからrad/秒を選択する。

11.Transfer Fcnブロックをダブルクリックする。

12.NumeratorとDenominatorパラメータを編集する。

13.Transfer FcnブロックにSignal Generatorブロックをつなげると、入力信号と出

力信号はMuxブロックを使用することによってScopeブロックにつながる。 14.FileメニューからSave Asをクリック、ファイル名(例:xpc_osc)を入力してか

らOKをクリックする。

(15)

3.3 Simulinkへのアウトポートブロックの追加

解析のために信号データをMATLABワークスペースに記録して、後でそのデータをディ スクに保存する場合はSimulink Outportブロックを加えて、Configuration Parameters ダイアログボックスから記録を起動する必要がある。

以下の手順では例としてSimulinkモデルxpc_osc.mdlを使用する。このモデルを作成 するには簡単なSimulinkモデルの作成を参照のこと。

1.MATLABのウィンドウにxpc_oscと入力するとxpc_oscがSimulinkブロック図

で開かれる。

2.Simulinkのウィンドウで、viewメニューから、ライブラリブラウザをクリックする。

Simulinkライブラリブラウザのウィンドウが開く。

3.左の枠からSimulinkを開き、Sinksを選択する。

4.Out1ブロックをモデルにドラッグ&ドロップし、Muxブロックに繋げる。

5.FileメニューからSave asをクリックし、ファイル名を入力(例:xpc_osc1)して okをクリックする。

3.4 アウトポートブロックへのパラメータの入力

シミュレーションの間、SimulinkはOutportブロックを使用することでMATLAB変数 に信号データを保存する。 デフォルトでのMATLAB変数はTout、Xout、Youtである。 リ アルタイムアプリケーションを実行している間、xPC Targetインターフェースはオブジェ クトパラメータのために、信号データを通過するのに同じ変数を使用する。目標オブジェク トはxPC Targetが目標アプリケーションとの相互作用に使用するMATLABワークスペー スの構造である。デフォルト目標オブジェクトはtgであり、デフォルトでのパラメータは 時間、tgステータス、tg出力である。

SimulinkモデルにOutportブロックを追加した後、パラメータを入力できる。 この手順は 例としてOutportブロックがあるモデルであるxpc_osc1.mdlを使用する。 Outportブ ロックを加えるには、Simulinkへのアウトポートブロックの追加を参照のこと。

1.MATLABのウィンドウでxpc_osc1と入力するとSimulinkウィンドウで xpc_osc1が開かれる。

2.Simulinkのウィンドウより、SimulationメニューからConfiguration Parametersをクリックする。

3.モデルにConfiguration Parametersダイアログボックスを表示するため、Solver

(16)

4.SimulinkはSolver枠を表示する。この枠のSimulation部は目標アプリケーション の初期停止とサンプル時間を定義する。

Solverオプションでスタート時間を0秒と入力する。停止時間に初期の停止時間を

入力する(例:20秒)。目標アプリケーションをビルドした後に変更するには

MATLABコマンドラインインタフェースを使用することで目標オブジェクトのプロ

パティのtg.Stoptimeを変更する。停止時間を無限に指定するにはinfと入力すれ ばよい。

5.TypeリストからFixed-stepを選択すると、Real-Time Workshopは可変ステップ Solverをサポートせず、Solver枠のダイアログが変化する。

6.SolverリストからSolverを選択する(例: Solver ode4(Runge-Kutta)など)。 7.Fixed step sizeに目標アプリケーションのサンプル時間を入力する(例:

0.00025秒)。目標アプリケーションをビルドした後でもこの値の変更は可能であ る。CPUへの負荷が大きい場合は0.002秒など、より大きい値で試みる。

モデルが離散的な状態なら、離散的な状態のサンプル時間はFixed step sizeの倍数 であるだけかもしれない。モデルがどんな連続した状態も含まなければautoと入力 する。そうすれば、サンプル時間はモデルから返される。

 8.Data Import/Exportノードをクリックする。

Data Import/Exportが開く。この枠はモデルのシミュレーションの間、もしくは目

標アプリケーションが実行している間に記録されたモデルの信号を定める。

この枠のワークスペースセクションでのSaveでは、Time、States、およびOutput

(17)

3.5 xPC target Scopeブロックの追加

SimulinkモデルにxPC Target Scopeブロックを追加すると時間を節約させることが できる。アプリケーションを作る際、モデルは追加したxPC Target Scopeブロックを含ん

でおり、アプリケーションをダウンロードした後に、xPC Target ScopeブロックはPCモ ニタ上に自動的に表示される。xPC Target Scopeブロックをモデルに追加することなく、 リビルドせずに目標アプリケーションの信号をモニタしたい場合は、xPC Target のScope を追加し、定義してから信号を選択する必要がある。信号情報はモデルと共に保存される。 Simulinkモデルを作成した後にxPC Target Scopeブロックを加えることができる。 以下の手順は、どのようにモデルにxPC Target Scopeブロックをつなげるかを示してお り、例としてSimulinkモデルxpc_osc1.mdlを使用する。

1.MATLABウィンドウにxpc_osc1と入力する。xpc_osc1がSimulinkブロック図で 開かれる。

2.Simulinkのウィンドウではviewメニューからライブラリブラウザを選択し、ウィ ンドウが開く。

3.左の枠からxPC Targetをダブルクリックすると、入出力のリストが開く。 4.Miscをクリックし、グループブロックのリストを開く。

5.Scope(xPC)をSimulinkブロック図にドラッグ&ドロップする。Simulink上にモデ ルに新しいScopeブロック(Id:1)を追加する。

6.Simulink ScopeブロックにxPC Target Scopeブロックを繋げる。 7.FileメニューからはSave Asをクリック、ファイル名を入力する(例:

(18)

3.6 xPC Target Scopeへのパラメータ入力

 xPC Target Scopeブロックのパラメータは、Scopeとトリガモードでたどる信号を定 義する。アプリケーションをtarget PCに読み込む時、xPC Targetのカーネルは自動的に

Scopeを作成する。Scopeが初期のままでよい場合は追加定義の必要はない。

 SimulinkモデルにxPC Target Scopeブロックを追加した後に、ブロックパラメータを 入力できる。xPC Target Scopeブロックを追加するため、AddingからxPC Target Scope ブロックを追加する。パラメータに入るには、xPC Target Scopeブロックが target PCのファイルに信号データを書き込むにはType fileのxPC Targetへのパラメー タ入力を参照のこと。

xPC Target Scopeへのパラメータ入力には3つのScopeのタイプ

(Target、Host、File)がある。 xPC Target Scopeブロックのダイアログはどのタイプで

構成しているかによって変わる。

3.6.1 Type TargetのxPC Targetへのパラメータ入力 この手順は例としてモデルxpc_osc2.mdlを使用する。

1.MATLABのウィンドウにxpc_osc2と打ち込み、xpc_osc2.mdlがSimulinkブロ ック図によって開かれる。

2.Scope(xPC)ブロックをダブルクリックし、ブロックパラメータ:Scope(xPC)ダイ アログボックスを開く。

3.Scope数のボックスでは、Scopeを特定する独自の番号を表示している。新しい xPC Target Scopeブロックを加えるたびにこの数は増加する。

(19)

  4.選択されていない場合、Scope TypeのリストからTargetを選択すると、更新さ れたダイアログボックスが表示される。

5.目標アプリケーションがダウンロードされて開始するとき、観測を開始するため にチェックボックスを開始したらStartScopeを選択する。

6.ScopeモードのリストからNumericalもしくはGraphical redrawあるいは Graphical rollingを選択する。Targetの観察タイプとNumericalの観察モード があれば、ScopeブロックのダイアログはNumericalをダイアログに追加する。 さらにデータの表示形式を決める。Numericalを完成しない場合は、xPC Target は%15.6fの初期設定の書式を使用することで信号を表示する。15.6fは浮動小数

点の形式である。

7.Numericalボックスには、ラベルと、関連値の表示する信号の書式タイプを入力す る。初期設定では入力形式は浮動小数点であり%15.6fである。 Numericalボッ クスは以下の形式の入力を取る。

'[LabelN] [%width.precision][type] [LabelX]'

(20)

  10.サンプル数にデータパッケージで得られた数値を入力する。Graphical redraw

のScopeモードを選択する場合は、このパラメータはグラフが描き直される前に

得られた数値を指定する。

FreeRun以外のトリガモードを選択するなら、このパラメータは次のトリガ実行

の前に取得したサンプル数を指定できる。

  11.pre/postサンプル数には、保存もしくはスキップするサンプルの数を入力する。

トリガ実行の前にこのサンプル数を保存するために0以上の値を指定する。   12.Decimationにはデータが各サンプル時(1)もしくは毎サンプル時(2以上)に集

められるよう数値を入力する。

  13.TriggerモードリストからFreeRunを選択する。

FreeRunかSoftware Triggeringを選択する場合、トリガ実行は自動であり、外

部のトリガ仕様は全く必要ない。

Signal Triggeringを選択する場合は、トリガ信号に信号のインデックスを入力す る。トリガレベルには、トリガ前の信号が通る値を入力する。トリガスロープリス トからは、上昇または下降のどちらかを選択する。Scopeのトリガを指定する必要 はない。

Scope Triggeringを選択する場合は、トリガScope数に、1つのScopeブロック のScope番号を入力する。また、このトリガモードを使用する際は2番目の ScopeブロックをSimulinkモデルに追加しなければならない。その際、信号のト リガを指定する必要はない。Scope Triggeringを選択して、もう片方のScopeの

特定のサンプル上にトリガをするScopeが必要なら、Sample to trigger onに 数値を入力する。初期状態では値は0であり、トリガとなるScopeとトリガされ た(現在の)Scopeが同時に始動することを表している。

  14.OKをクリックする。

  15.FileメニューからSave asを選択し、xpc_osc2.mdl.として保存する。

3.6.2 Type HostのxPC Targetへのパラメータ入力

  この手順では例としてモデルxpc_osc2.mdlを使用する。

  1.MATLABウィンドウにxpc_osc2と打ち込み、xpc_osc2をSimulinkブロック図

で開く。

  2.Scope(xPC)ブロックをダブルクリックすると、ブロックパラメータ:

Scope(xPC)ダイアログボックスが開く。

(21)

  3.Scope番号ではScopeを特定する独自の番号を表示する。新しいxPC Target

Scopeを追加するたびにこの値は増加する。通常、この値は編集しない。

この値はホストPCかtarget PC上でxPC Target ScopeブロックとScopeスク リーンを確認する。

  4.Scope typeのリストからHostを選択する。更新されたダイアログボックスが表 示される。

  5.目標アプリケーションがダウンロードされてから開始する時、観測を開始するた めにチェックボックスを開始したらStartScopeを選択する。Type targetの Scopeで、Scopeのウィンドウは自動的に開く。Type hostのScopeでxPC Target ExplorerからホストScopeビューアーのウィンドウを開くことができる。   6.サンプル数に値を入力し、データパッケージから取得した数値を入力する。 7.pre/postサンプル数は保存もしくはスキップするサンプル数を入力する。トリガ実

行の前にこのサンプル数を保存するために0未満の値を指定する。トリガ実行の

後のデータ取得が始まる前に、このサンプル数をスキップするために 0以上の値 を指定する。

  8.Decimationにはデータが各サンプル時(1)もしくは毎サンプル時(2以上)に集め られるよう数値を入力する。

  9.TriggerモードリストからFreeRunを選択する。

FreeRunかSoftware Triggeringを選択する場合、トリガ実行は自動であり、外

部のトリガ仕様は全く必要ない。

Signal Triggeringを選択する場合は、トリガ信号に信号のインデックスを入力す る。トリガレベルには、トリガ前の信号が通る値を入力する。トリガスロープリス トからは、上昇または下降のどちらかを選択する。Scopeのトリガを指定する必要 はない。

Scope Triggeringを選択する場合は、トリガScope数に、1つのScopeブロック のScope番号を入力する。また、このトリガモードを使用する際は2番目の ScopeブロックをSimulinkモデルに追加しなければならない。その際、信号のト リガを指定する必要はない。Scope Triggeringを選択して、もう片方のScopeの

特定のサンプル上にトリガをするScopeが必要なら、Sample to trigger onに 数値を入力する。初期状態では値は0であり、トリガとなるScopeとトリガされ た(現在の)Scopeが同時に始動することを表している。

  10.OKをクリックする。

(22)

3.6.3 Type FileのxPC Targetへのパラメータ入力

Type hostのScopeを通って信号データを記録することに加え、xPC Targetに信号デ ータをtarget PCのC:\ハードドライブもしくは3.5インチディスクドライブに保存さ

せることができる。SimulinkモデルにxPC Target Scopeブロックを追加した後 、

target PC上にファイルを保存するためにこのブロックを構成できる。ネットに接続し

ていないxPC Targetシステムとしてtarget PCを使用しているとき、信号データをフ ァイルに保存するのは最も役に立つ。 TypeファイルのxPC Target Scopeが作成する 信号データファイルのコンテンツにアクセスするには、ホストPCのMATLABのウィン ドウよりxPC Targetファイルシステム(xpctarget.fs)を使用する。信号データを見た り調べたりするために、プロット機能に関連したreadxpcfileユーティリティを使用で きる。

  1.MATLABウィンドウにxpc_osc2と入力すると、xpc_osc2.mdlがSimulinkブ ロック図で開かれる。

  2.Scope(xPC)ブロックをダブルクリックする。ブロックパラメータ: Scope(xPC) ダイアログボックスが開く。初期設定では、Type TargetダイアログのScopeを

表示する。

  3.Scope番号ではScopeを特定する独自の番号を表示する。新しいxPC Target

Scopeを追加するたびにこの値は増加する。通常、この値は編集しない。

この値はホストPCかtarget PC上でxPC Target ScopeブロックとScopeスク リーンを確認する。

  4.Scope typeのリストからFileを選択する。更新されたダイアログボックスが表示

される。

  5.目標アプリケーションが読み込まれてから開始する時、観測を開始するためにチ

ェックボックスを開始したらStartScopeを選択する。Type targetのScopeで 、 Scopeのウィンドウは自動的に開く。

  6.サンプル数にデータパッケージから取得した数値を入力する。このパラメータは AutoRestartチェックボックスに関連して動作する。AutoRestartが選択されて いれば、Type fileのScopeはデータをサンプル数まで集め、バッファを上書きし ながら繰り返される。AutoRestartが選択されていなければType fileのScope はデータをサンプル数まで集め、停止する。

  7.pre/postサンプル数は保存もしくはスキップするサンプル数を入力する。トリガ

実行の前にこのサンプル数を保存するために0未満の値を指定する。トリガ実行 の後のデータ取得が始まる前に、このサンプル数をスキップするために 0以上の 値を指定する。

(23)

  9.TriggerモードリストからFreeRunを選択する。

FreeRunかSoftware Triggeringを選択する場合、トリガ実行は自動であり、外

部のトリガ仕様は全く必要ない。

Signal Triggeringを選択する場合は、トリガ信号に信号のインデックスを入力す る。トリガレベルには、トリガ前の信号が通る値を入力する。トリガスロープリス トからは、上昇または下降のどちらかを選択する。Scopeのトリガを指定する必要 はない。

Scope Triggeringを選択する場合は、トリガScope数に、1つのScopeブロック のScope番号を入力する。また、このトリガモードを使用する際は2番目の ScopeブロックをSimulinkモデルに追加しなければならない。その際、信号のト リガを指定する必要はない。Scope Triggeringを選択して、もう片方のScopeの

特定のサンプル上にトリガをするScopeが必要なら、Sample to trigger onに 数値を入力する。初期状態では値は0であり、トリガとなるScopeとトリガされ た(現在の)Scopeが同時に始動することを表している。

  10.Filenameに信号データを含むファイルの名前を入力する。初期状態ではtarget PCはC:\data.datというファイル名で信号データを書き込む。

  11.ModeリストからLazyかCommitのどちらかを選択する。両方のモードはファ イルを開いて、ファイルに信号データを書き込み、次に、セッションの終わりにそ のファイルを閉じる。Commitモードでは各ファイルは操作を書き込み、同時にフ ァイルへのFAT入力を更新する。このモードは遅いが、ファイルシステムは常に実

際のファイルのサイズを把握している。Lazyモードではファイルが閉じられた場 合のみFAT入力が更新され、各ファイルが操作を書き込む際には更新されない。こ のモードは速いが、ファイルが閉じられる前にシステムがクラッシュすれば、ファ イルシステムが実際のファイルサイズを把握していないかもしれない(ファイルコ ンテンツは損なわれないだろう)。

  12.WriteSizeに多量のデータのブロックのサイズを入力する。このパラメータはサ ンプル長のメモリバッファが多量のWriteSizeのファイルにデータを書き込むの を指定する。初期設定では、このパラメータは512バイトとなっている(典型的な ディスクセクターのサイズ)。 ディスクセクターのサイズと同じブロックサイズを 使用することによって最適性能で使用できる。

  13.サンプル数にデータパッケージから取得した数値を入力する。

  14.AutoRestartを選択して、Type fileのScopeがデータをサンプル数まで集めら れるようにする。そして信号データファイルの終わりに新しいデータを追加して

繰り返す 。Type file の Scope を サ ン プ ル 数 ま で集め 、 停 止 す る よ う に

(24)

イルが既に存在している場合、xPC Targetは古いデータに新しい信号データを上

書きする。

3.7 Simulinkを用いたモデルのシミュレーション

リアルタイムでないモデルの動作を観測するために、通常モードでSimulinkを使用する。 この手順は、例としてSimulinkモデルxpc_osc2.mdlを使用して既にそのモデルを読み込

んだと仮定する。

1.MATLABウィンドウにxpc_oscと打ち込み、Simulinkブロック図でモデルを表示

する。

2.SimulinkウィンドウでScopeブロックをダブルクリックし、Scopeウィンドウを 開く。

3.SimulationメニューからNormalを選択し、Startをクリックする。Scope1のウ ィンドウに信号データの図が表示される。

4.シミュレーションを停止時間まで実行、または手動でシミュレーションを止めるこ ともできる。手動でシミュレーションを止めるには、Simulationメニューから 、 Stopをクリックする。

3.8 MATLABを用いたモデルのシミュレーション

 リアルタイムでないモデルの動作を観測するために、Simulinkモデルのシミュレーシ ョンを実行する。SimulinkモデルをMATLABワークスペースに読み込んでシミュレー ションができる。この手順は、例としてSimulinkモデルxpc_osc2.mdlを使用し、既に そのモデルを読み込んだと仮定する。

 1.MATLABのウィンドウにsim(’xpc_osc2’)と入力する。Simulinkは完了まで通常

モードでシミュレーションを実行し、手動でシミュレーションを停止することは できない。

 2.Simulinkでのシミュレーションが終了してからplot(tout,yout)と入力する 。 Configuration ParametersダイアログボックスでMATLAB変数toutとyout をData I/O枠に入力したことになる。信号はOutportブロックを通ってメモリに

登録される。MATLABのplotウィンドウが開き、出力応答が表示される。

3.9 target PCの起動

target PCを起動し、xPC Targetカーネルをtarget PCに読み込んで開始する。xPC TargetソフトウェアはホストPCから目標アプリケーションの読み込みが可能となる。

(25)

1.target PCディスクドライブにtarget bootディスクを挿入する。 2.target PCの電源を入れるか、Resetボタンを押す。

3.10 Real-Time Workshopパラメータの入力

 Configuration Parametersダイアログボックスの中にシミュレーションとリアルタイ ムの実行パラメータを入力する。これらのパラメータはどう目標アプリケーションをビル ドするかに関してSimulinkモデルからReal-Time Workshopへ情報を送っている。  Simulinkモデルを読み込んでtarget PCを起動後、シミュレーションパラメータを入力 できる。 この手順では、例としてSimulinkモデルxpc_osc2.mdlを使用し、既にそのモデ ルを読み込んだと仮定する。

 1.MATABウィンドウにxpc_osc2と打ち込んでSimulinkブロック図でモデルを開く。  2.SimulinkのウィンドウでSimulationメニューからConfiguration Parametersを

クリックすると、モデルがConfiguration Parametersダイアログボックスに表示

される。

3.Real-Time Workshopノードをクリックし、Real-Time Workshopを開く。 4.基本的なアプリケーションを作成するには、Target選択でSystem targetファイル

リストからBrowseボタンをクリックする。 xpctarget.tlcを選択し、OKをクリッ クする。

(26)

(xpc_default_tmf)、makeコマンド(make_rtw)は自動的にページに入力される 。 xPC Targetオプションノードが左に表示される。

5.左の枠ではxPC Targetオプションノードを選択する。

6.Executionモードリストから、Real-TimeかFreerunのどちらかを選択する。オプ

ションのFreerunはシミュレーションと同様だが、生成されたコードを用いる。また、

可能な限りアプリケーションを実行するが、シミュレーションとは違い、xPC Target のFreerunモードは変数ステップ解決に対応していない。

7.Real-Time割込ソースリストから、ソースを1つ選択する。デフォルト値はTimer となっている。

8.目標オブジェクトのプロパティのtg.TETlogにタスク実行時間を記録するため、Log Task Execution Timeチェックボックスを選択する。

タスク実行時間はモデル誤差のための計算を完了するまでの時間と、各サンプル間

隔の間の出力後の時間(秒)である。選択しない場合、平均 TET値は Not a Number(NaN)として表示される。

 9.Signal記録バッファサイズには、例えば100000のようにラッピング前に保存する ためのサンプル点の最大値を入力する。

 10.ビルドプロセスによってビルドされたxPC TargetオブジェクトのNameに、オブ ジェクトの名前を入力する。初期設定ではオブジェクト名はtgとなっている。  11.OKをクリックする

12.FileメニューからSaveをクリックし、ファイル名を入力(例:xpc_osc3)したら Saveをクリックする。

3.11 アプリケーションのビルドと読み込み

 Cコードやコンパイル、リンクの生成、アプリケーションの読み込みにxPC Targetを使 用する。Configuration Parametersダイアログに変更を入力後、アプリケーションをビル ドできる。この手順では例としてSimulinkモデルxpc_osc3.mdlを使用する。

 初期設定では、ビルドの手順はxPC Target Explorerのようにtarget PCにアプリケー ションを読み込む。

 1. MATLABウィンドウにxpc_osc3と打ち込み、Simulinkブロック図でモデルを開 く。

 2.SimulinkウィンドウのToolsメニューから、Real-Time Workshopを選択し、 Real-Time Workshopサブメニューからは、Build Modelを選択する。

コンパイル、リンク、および読み込みが終わってから、目標オブジェクトがMATLAB ワークスペースにビルドされる。目標オブジェクトの初期設定での名前はtgとなっ ている。

(27)

### Starting Real-Time Workshop build procedure for model: xpc_osc3

. . .

### Successful completion of xPC Target build procedure for model: xpc_osc3

  3.MATLABウィンドウにtgと入力すると、目標オブジェクトのプロパティリストが

MATLABに表示される。

3.12 Time-Out値の増加

初期状態で、もしtarget PCがアプリケーションを読み込んで約5秒待機してもtarget PCから反応しない場合、タイムアウトとなる。これに対し、target PCは読み込みとアプリ ケーションの初期化後にのみしか反応しなくなる。

通常5秒あればアプリケーションは読み込めるが、十分でないケースもいくつかある。 アプリケーションを読み込む時間はほぼI/Oハードウェアに依存する。例えば熱電対ハード では初期化に時間がかかる。この場合、target PCに問題がなくても誤ったタイムアウトが

報告される。タイムアウト値を増やすには以下の手順を用いる。

1.MATLAB作業ディレクトリにxpcdltimeout.datというファイルを作成する。この ファイルでは整数を入力する(例:20秒)。

2.この場合、target PCはタイムアウトが起こったと判断するまでに約20秒間待機す る。それは読み込むごとに20秒ではないことに注意する。target PCが毎秒1回、応 答があれば成功と判断する。実際に読み込みに失敗していても、20秒待機する。 xpcdltimeout.datが存在していれば、あらゆる読み込み前に一度読み込まれる。タイム アウト値を変えるには、このファイルの値を変更する。初期値は5秒に設定されている。 ま た、単にファイルを移動する場合、タイムアウトは初期値に変更されないことに注意する MATLABを再開するまでxPC Targetは最後に入力された値を使用する。

3.13 xPC Target Explorerを用いた制御

この手順では、xPC Target起動ディスクを作成してtarget PCを起動したと仮定する 。 xPC Target Explorerはアプリケーションの作成、読み込みのためのアクセスを与えるが、 この手順では既にアプリケーションをtarget PCに読み込んだ状態で始める。

1.MATLABのウィンドウにxpcexplrと打ち込み、xPC Target Explorerを開く。 2.target PCに接続するには、読み込まれたアプリケーションとConnectを選択した

target PCアイコンを右クリックする。読み込んだアプリケーションのモデルの階層

を見るためには以下のうち1つ当てはまっていなければならない。

(28)

   ・アプリケーションを作成した時、xPC Target Optionsのアプリケーションチェッ クのIncludeモデル階層を選択した。

もし適切なディレクトリを選択していれば、アプリケーションのノードがtarget PCノ

ード下のxPC Target階層を表示し、以前に読み込まれたアプリケーションの情報を表示す る。

以前に作成したtarget PCに読み込ませるアプリケーションが現在のディレクトリにあれ ば、そのアプリケーションをドラッグ&ドロップする。

3.xPC Target Explorerのウィンドウで現在のアプリケーションを作成し直したい場 合は、そのアプリケーションノードを右クリックし、Go To Simulink Modelを選択

すると、Simulinkのウィンドウでモデルが開かれる。

 4.目標アプリケーションを作成し直すには、SimulinkのウィンドウのToolsメニュー からReal-Time Workshopを選択し、Real-Time Workshopのサブメニューから Build Modelをクリックする。

xPC Targetは、アプリケーションをtarget PCに再コンパイル、リンク、読み込みを 行う。

 5.アプリケーションを開始する。例えば、xPC Target Explorerのウィンドウで読み込

んだアプリケーションを選択する。

 6.ツールバーからStart Applicationボタンをクリックすると、アプリケーションは target PC上で作業を開始し、停止時間に達すると停止する。

(29)

いる状態で、アプリケーションの停止時間に新しい値を入力する(例:inf)。Applyを クリックする。

 8.もう一度Start Applicationボタンをクリックする。停止するまでアプリケーション は実行される。

 9.ツールバーからStop Applicationのボタンをクリックする。

3.14 target PC上でのアプリケーションの読み込みと実行

 このトピックでは、どのようにしてtarget PCに読み込ませたい、以前に作成したアプリ ケーション(DLMs)を含むディレクトリを変更するか、そして、どのようにそのアプリケー ションを読み込んで実行するのかを示す。モデル階層を見るために、アプリケーションを作 成したのと同じディレクトリを選択していなければならない。ここでは以下の通り仮定す る。

 ・現在の作業ディレクトリに以前に作成した、target PCに読み込みたいアプリケーショ ンがある。

・xPC Targetをインストールし、アプリケーションを読み込みたいtarget PCを起動し ている。

・アプリケーションを読み込ませたいxPC Target Explorerホストマシンとtarget PC の間に物理的な接続がある。

 1.xPC Target Explorerで、Fileメニューを左クリックする (MATLABのウィンドウ かDLMノードを右クリックすることによって、このディレクトリ変更が可能である)。 2.Change current directoryを選択すると、ブラウザが表示される。

3.作成したアプリケーションを含むディレクトリをブラウズする。 4.OKをクリックする。

 5.xPC Target Explorerで、xPC Target HierarchyのDLM(s)ノードにtarget PCに 読み込みたい作成したアプリケーションを含むディレクトリのパス名があるのを確 認する。

 6.xPC Targetを起動したtarget PCを右クリックする(例:TargetPC1)。  7.Connectを選択する。

 8.アプリケーションを読み込みたいtarget PCにそのアプリケーションをドラッグ&

ドロップする。xPC Target Explorerはアプリケーションをtarget PCに読み込む。 アプリケーションのためのノードはtarget PCノード下のxPC Target Hierarchyに

表示される。あるいは今、作成したアプリケーション、DLMをtarget PCアイコンに ドラッグできる。接続がまだなければ、xPC Target Explorerは任意にそのtarget PCに接続を作る。

(30)

(例:xpcosc)。コンテキストメニューが表示され、アプリケーションに実行できる操

作を記載する。

 10.Selectを選択し、xPC Target Explorerがアプリケーションの実行を開始する。

 11.アプリケーションを停止するか、アプリケーションを終了させる。アプリケーション を停止するために、アプリケーションノード(例:xpcosc)を右クリックし、リストか らStopを選択する。

3.15 アプリケーションプロパティの処理

 このトピックではアプリケーションプロパティの処理方法を説明する。既にアプリケー ションxpcoscをtarget PCに読み込んだと仮定する。

 1.xPC Target Explorerでロードされたアプリケーションのノードを選択する(例: xpcosc)。右の枠はアプリケーションのプロパティに変わる。

2.ここでは、以下のプロパティを変更できる。 ・停止時間

・サンプル時間 ・ログモード

(31)

3.16 MATLABコマンドでの制御

 生成コードがあるモデルの動きをリアルタイムで観測するためにアプリケーションを実 行する。xPC Targetがアプリケーションをtarget PCに読み込んでからアプリケーション を実行できる。この手順では、例としてSimulinkモデルxpc_osc3.mdlを使用し、そのモ デルのアプリケーションを作成して読み込んだと仮定する。また、適切なtarget PCにtg を割り当てたと仮定する。

 1.MATLABウィンドウに以下のように入力する。

+tg or tg.start or start(tg)

アプリケーションはtarget PC上で作業を開始する。MATLABのウィンドウで、オブ ジェクトの状態を停止から実行に変更する。

   xPC Object

Connected = Yes

Application = xpc_osc3

Mode = Real-Time Single-Tasking

Status = running

   target PCスクリーンでは、Execution系列が停止から実行に変化し、AverageTET

系列が定期的に新しい値で更新される。

 2.MATLABウィンドウで以下のように入力する。

   -tg or tg.stop or stop(tg)

   アプリケーションは停止し、xPC Targetでアプリケーションを作り直さずに多くの

特性とパラメータを変更できる。これらの特性のうちの2つが StopTimeと SampleTimeである。

 3.停止時間を変更する。例えば、どちらかを打ち込んで停止時間を1000秒に変更する。    tg.StopTime = 1000

or

set(tg,'StopTime',1000)

 4.サンプル時間を変更する。 例えば、どちらかを打ち込んでサンプル時間を0.01秒に 変更する。

   tg.SampleTime = 0.01 or

set(tg, 'SampleTime', 0.01)

(32)

   サンプル時間が小さすぎると、CPUの過負荷が起こることがある。過負荷が起こる場 合は、オブジェクトプロパティのCPUOverloadはdetectedに変化する。その場合、 SolverノードのFixed stepサイズをより大きい値に変更し、モデルを作り直す。 3.17 Simulink External Modeを用いた制御

 Simulinkを用いたxPC Targetアプリケーションの制御は、external modeによるアプ リケーションにSimulinkモデルを接続してアプリケーションを開始することに制限され ている。Simulink External Modeを使用するのは、パラメータを調整するための1つの方

法である。Simulink External Modeではモデルは初期設定のtarget PCに接続できるだ

けである。

 アプリケーションをtarget PCに作成して読み込んだ後、アプリケーションを実行でき る。 この手順では例としてSimulinkモデルxpc_osc2.mdlを使用する。Real-Time WorkshopパラメータダイアログのxPC Targetオプションノードの正しいtarget PC環 境を指定したと仮定する。特に、接続したいtarget PCを指定しなければならない。  1.SimulinkウィンドウのSimulationメニューからExternalを選択する。チェックマ

ークはメニュー項目Externalの横に表示され、Simulink External Modeは起動す る。 Simulink External Modeは簡単なグラフのユーザーインターフェースとして

Simulinkモデルをアプリケーションに接続する。

2.SimulinkウィンドウのSimulationメニューからConnect to targetをクリックす る。

現在のSimulinkモデルパラメータをすべてアプリケーションに読み込ませる。この 読み込みはホストモデルとアプリケーション間のパラメータの一貫性を保証する。 3.SimulationメニューからStart real-time codeをクリックすると、アプリケーシ

ョンの実行が始まる。

 4.MATLABウィンドウに以下のように入力する。

   tg.stop or –tg

(33)

3.18 xPC Target Explorerを用いた信号の観察

 この手順では例としてモデルxpcosc.mdlを使用し、アプリケーションをtarget PCに 作成して、読み込んだと仮定する。

 1.xPC Target Explorerを開始する。xPC Target Explorerで実行するアプリケーシ ョン(例:xpcosc)のノードを選択する。

   Target Application Propertiesが表示される。

 2.Solverには停止時間のパラメータをinfに変更し、Applyをクリックする。

 3.アプリケーションで信号のリストを取得するために、アプリケーションノードを広 げ、アプリケーションノード下でModel Hierarchyノードを広げる。モデル階層は SimulinkモデルにSimulinkオブジェクト(信号とパラメータ)を表示するために広

がる。

   Model Hierarchyノードは以下のタイプのノードを持つ。

    アプリケーションに関するxPC Targetの調整可能なパラメータと信号だけが 、 Simulinkモデルで表されるように、Model Hierarchyノードに表示される。target PCに読み込まれたアプリケーションに関連しているモデルへの変更(xPC Target

scope追加など)を行い、そのモデルを作り直して、再び読み込むなら Model

Hierarchyノードをリフレッシュするためにtarget PCに再接続するべきである。  4.分類された信号のみみたい場合

   a.xpcosc.mdlファイルを開く。

b.信号系列を右クリックし、その信号名前を付ける。例えば、Signal Generatorブ ロックの出力を右クリックし、SignalGという名前を付ける。

c.更新されたモデルを作成し、読み込む。

(34)

のコマンドは1つ以上のモデルの信号に名前を付けたと仮定する。

e.名前が付けられた信号を見るためにModel Hierarchyノードを再び広げる。  名前がついた信号に関してブロックパスを見るには、その信号の上でポインタを

置く。再びすべてのモデル信号を表示するため、Model Hierarchyノードを右ク リックし、View All Signalsを選択する。名前が付けられた信号の上にポインタを

置くことによって信号を見ることができる。

  f.モデルに戻り、追加した信号名を取り除き、作り直してアプリケーションを読み 込む。このセクションの残りの例はモデルに1つも名前を付けた信号がないと仮

定する。

 5.対応するSimulinkモデルのサブシステムに行くため、アプリケーションノードを右

クリックし、サブシステムかブロックにGo to Simulinkを選択する。

6.信号の値を取得するには、Model Hierarchyノードの信号を選択する。信号の値は 右の枠に示されている。

7.目標アプリケーションを右クリック、Startを選択すると、アプリケーションが実行 される。

8.信号の数のフォーマットディスプレイを変更するため、Model Hierarchyノードを 右クリックし、Edit Signals Format Stringを選択する。Display Format Stringダ イアログボックスが表示される。

9.信号形式を入力する。 以下の1つを使用する。 初期設定では%0.25gとなっている。

3.19 MATLABインターフェースを用いた信号の観測

 この手順では、例としてモデルxpc_osc3.mdlを使用し、アプリケーションをtarget PCに作成して読み込んだと仮定する。また、適切なtarget PCにtgを割り当てたと仮定 する。信号の 1.リストを得るには以下のどちらかを入力する。

(35)

tg.ShowSignals='On'

後者のコマンドは、MATLABウィンドウに利用可能な信号のオブジェクトプロパティの リストを表示する。モデルの信号に名前がないため、Label行が空であることに注意する。 信号に名前がある場合は、この行に名前を表示する。

  ShowSignals = on

Signals = INDEX VALUE BLOCK NAME LABEL 0 0.000000 Signal Generator

1 0.000000 Transfer Fcn

2.信号の値を得るには、getsignalメソッドを使用する。 MATLAB コマンドウィンド ウで以下の様に入力する。

   tg.getsignal(0)

   信号が0であるところではインデックスをつける。MATLABインターフェースは信 号1を表示する。

   ans= 3.731  

3.20 Stateflow statesの観測

こ の手 順で は 例 と し て モ デ ル sf_car.mdlを 使 用 す る 。 観 測 の テ ス ト点の よ う に Stateflowをセットするには、1つの方法を表す。

1.MATLABウィンドウに以下のように入力する。

  sf_car

(36)

3.Real-Time WorkshopノードをクリックしてReal-Time Workshopを開く。

基本的なアプリケーションを作成するには、Target選択でSystem targetファイル リストからBrowseボタンをクリックする。xpctarget.tlcをクリックし、OKをクリ ックする。

4. 必要に応じてxPC Targetオプションノードをクリックして、変更を続けることがで きる。

5.完了したらOKをクリックする。

6.sf_carモデルでshift_logicチャートをダブルクリックし、shift_logicチャートを表 示する。

7.チャートでToolをクリック→Explorer 8.Model Explorerでsf_carを広げる。 9.shift_logicを広げる。

10.gear_stateを広げて1番目を選択する。

11.一番右の枠(State first)でTestポイントチェックを選択する。これはfirst stateで Testポイントを作成する。

12.Applyをクリック。

13.sf_carアプリケーションを作成してtarget PCに読み込む。

  xPC TargetもしくはMATLABインターフェースで状態を見ることができる。

3.21 xPC Target Explorerを用いたStateflow Statesの観測

 このトピックは既にTestポイントとしてStateflow statesをセットしたと仮定する。  1.xPC Target Explorerを起動する。読み込まれたsf_carのアプリケーションがある

target PCにそれを接続する。

2.xPC Target ExplorerでTestポイントを見るため、Model Hierarchyノードを広げ、 shift_logicへ導く。Testポイントgear_state.firstは階層でどんな信号のようにも表 示される。

(37)

3.22 MATLABインターフェースを用いたStateflow Statesの観測

 このトピックは既にTestポイントとしてStateflow statesをセットしたと仮定する。  1.信号のリストを取得するためにMATLABコマンドウィンドウに以下のように入力す

る。    tg=xpc

 2.アプリケーションに信号を表示するため以下のどちらかを入力する。    set(tg, 'ShowSignals', 'On'); tg

or

tg.ShowSignals='On'

  後者はMATLABのウィンドウに利用可能なオブジェクトプロパティを表示する。Test ポイントとしてセットしたStateflow statesでは、stateはBLOCK NAME行でどん

な信号のようにでも表示される。例えば、sf_carモデルのshift_logicチャートの gear_stateのfirst stateにTestポイントをセットすれば、重要なstateは一番目で ある。このstateはMATLABインターフェースの信号リストでは以下のように表示さ れる。

   shift_logic:gear_state.first

  shift_logicはStateflowチャートへのパスであり、gear_state.firstは特定stateへ のパスである。

3.23 xPC Target Explorerを用いた信号の追跡

 このトピックでは、例としてモデルxpcosc.mdlを使用し、アプリケーションをtarget PCに作成して読み込んだと仮定する。

 Scopeが停止もしくは実行している間、type targetかホストのScopeから信号を加え

たり取り除いたりすることができる。type fileのScopeでは信号を加えたり取り除いたり する前に、まずScopeを停止しなければならない。

 3.23.1 Scopeの作成

  1.xPC Target Explorerでxpcoscアプリケーションがまだ実行されていることを

確認する。

2.アプリケーションで信号のリストを得るために、アプリケーションでModel Hierarchyノードを広げる。モデル階層が、Simulinkモデルで要素を表示するた めに広がる。

(38)

ード下のxPC Scopesノードを広げる。

4.target PC上に表示するためのScopeを作成するには、xPC Scopesノード下で Target Scopesノードを右クリックする。コンテキストメニューが現れ、target PC scopeに実行できる動作を示す。

5.Target Scopeの追加を選択すると、ScopeノードがTarget Scopesの下に現れ る。

6.タイプホストやファイルを含む他のScopeを追加できる。ホストPC上に表示す るためのScopeを作成するには、xPC Scopesノード下でHost Scopesノード を右クリックする。コンテキストメニューが表示され、これはホストPC scopeに 実行できる動作を示す。

7.Add Host Scopeを選択する。ScopeノードがHost Scopesの下に現れる。 8.ホストPC上のホストScopeを視覚化するには、xPC ScopesノードからHost

Scopesを右クリックする。ドロップダウンリストが表示される。

9.View Scopeを選択する。xPC Target Host Scope Viewerのウィンドウが表示

される。Scopeに追加する信号がビューアーの右上に表示される。

10.オブジェクトScope2のプロパティを表示するために、そのウィンドウに返す xPC Target Explorerタブをクリックし、Scope2をクリックする(MATLABドッ キング機能を使用することでドッキング視点を構成できることに注意する)。 Scope のプロパティが一番右に表示される。

11.target PCファイルシステムのファイル中の信号データを取得するためにScope を作成するには、xPC Scopesノード下でFile Scopesノードを右クリックする 。 Add File Scopeを選択する。ScopeノードがFile Scopesの下に現れる。

  初期設定ではtarget PC C: \ディレクトリにファイルを作成する。ファイル名は通

(39)

12.別のディレクトリかファイル名を指定する場合は、Scopeを選択し、Scopeプロ パティを表示する。File名欄にファイルの保存先を入力する。

3.23.2 Scopeへの信号の追加

  このトピックはxPC Target Explorer Add to Scopesコマンドを使用しての信号の 追加方法を説明する。Scopeがなければ、xPC Target ExplorerでScopeを作成するた めにHost Scope、Target Scope、またはFile Scopeアイコンをドラッグできる。   1.xPC Target Explorerのウィンドウにtarget PC Scope(Scope1)に信号を追加

する。 例えば、Integrator1とSignal Generatorに信号を追加するには、各信号を右 クリックしAdd to Scopes選択する。Add to Scopes listからScope1を選択する 。 Scope1ノードは+で表示される。

  2.Scope1ノードを広げて表示する。

  3.Scopeを開始する。例えば、Scope1を開始するには右クリックからStartを選択 する。各データパッケージを集めた後、スクリーンは信号を図に表示する。この間の

Scopeが実行している間、信号の動きを観測できる。

  4.ホストPC Scopeに信号を追加する。例えば、Integrator1とSignal Generator に信号を追加するには、各信号を右クリックしAdd to Scopes選択する。 Add to Scopes listからScope2を選択する。Scope2ノードは+で表示される。

  5.Scope2ノードを広げ、Scope2信号を表示する。

  6.Scopeを開始する。例えば、Scope2を開始するために、xPC Target Explorerの Host ScopesノードでScope2を右クリックし、Startを選択する。

各データパッケージを集めた後、xPC Target Host Scope Viewerのウィンドウが 信号を図に表示する。この間のScopeが実行している間、信号の動きを観測できる。  7.タイプファイルのScopeに信号を追加する。例えば、Integrator1とSignal

Generatorに信号を追加するには、各信号を右クリックしAdd to Scopes選択する。    Add to Scopes listからScope3を選択する。Scope3ノードは+で表示さ れる。

 8.Scope3ノードを広げ、Scope3信号を表示する。

 9.データファイルにファイル名を指定するには、タイプファイルのScopeを選択す る。 右の枠では、Filenameパラメータに名前を入力する。パラメータフィールドに いる間、ファイル名を保存するにはEnterを押す。

(40)

に加えられた信号の始めの文字から成る。

 3.23.3 Scopeの停止

  1.Scopeを停止する。例えば、Scope1を止めるにはScope1を右クリックし、Stop を選択する。アプリケーションが実行し続けている間、target PCに表示されてい た信号は更新を停止し、target PCは以下のメッセージを表示する。

    Scope: 1, set to state 'interrupted'

  2.アプリケーションを停止する。 例えば、xpcoscを停止するにはxpcoscを右クリ ックしてStopを選択する。target PC上のアプリケーションは停止し、target PC は以下のメッセージを表示する。

    System: execution stopped

minimal TET: 0.0000006 at time 0.001250 maximal TET: 0.0000013 at time 75.405500

Scopeを停止する前にアプリケーションを停止する場合、Scopeも停止すること

に注意する。

 3.23.4 Triggering Scopes

  ユーザだけがScopeをトリガできるように、Scopeをセットアップできる。このセク ションでは、アプリケーションにScopeを追加してそのScopeに信号を追加したと仮

定する。

  1.xPC Target Explorerのウィンドウでは、トリガしたいScopeを選択する。例え

ば、Scope1を選択する。そのScopeのプロパティを表示する。

2.TriggerモードリストからSoftwareを選択し、Applyをクリックする。

3.Scopeとアプリケーションを開始する。

4.Scopeにプロットされたデータが全くないことを確認する。

5.トリガ状態にするため、Scopeを右クリックする。例えば、Scope1を選択する。 6.Triggerを選択する。

7.Scopeがデータをプロットしたことを確認する。

 3.23.5 ホストPCへのファイルのコピー

(41)

2.TargetPC1下では、File Systemノードを広げ、target PC上にドライブを表すノ

ードを表示する。

3.コピーしたいファイルを含むドライブのノードを広げる(例: c: \) 4.そのファイルを含むディレクトリを選択する(例: c: \)

5.右の枠にそのディレクトリの中身が表示される。右の枠ではホストPCにコピーし たいファイルを右クリックする。例えば、SC3SIGNA.DATを右クリックする。 6.コンテキストセンシティヴメニューを表示し、Save to Host PCを選択する。ブラ

ウザダイアログボックスが表示される。

7.信号データファイルを含んだディレクトリを選択する。別の名前のディレクトリ か新しいディレクトリを作成して保存してもよい。

xPC Target Explorerは選択されたファイル、例えば、SC1INTEG.DATのコンテ ンツを選択されたディレクトリにコピーする。

 3.23.6 タイプファイルのScopeからMATLABワークスペースへのデータ転送

  xPC Target Explorerより、target PCファイルからのデータをtarget PCから

MATLABワークスペースまで転送することができる。このトピックは信号データを含

むタイプファイルのScopeを作成したと仮定する。

  1.xPC Target Explorerでアクセスしたいtarget PCファイルシステムに関連して いるtarget PCノードを広げる。例えば、TargetPC1を広げたとする。

2.TargetPC1下でアプリケーションが実行されていないことを確認する。

3.TargetPC1下でxPC Scopesノードを広げ、追加したすべてのScopeを表示する。 4.転送したい信号データのタイプファイルのScope上で右クリックし、Export to

Workspaceを選択する。Export to workspaceダイアログボックスが表示され る。

5.ワークスペースデータに変数名を入力し(例:sig_integ)、OKをクリックする 。 MATLABデスクトップにWorkspaceが新しい変数名を表示する。

Updating...

参照

Updating...

関連した話題 :