学生用 小坂研

Free

0
3
59
1 year ago
Preview
Full text
(1)xPC Target 付録版 目次 第 1 章 インストール 1.1 MATLAB・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1 1.2 C コンパイラ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1 1.3 Target PC ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1 1.3.1 PCI AD/DA/PIO ボードの実装 ・・・・・・・・・・・・・・・・・・・・・ 1 1.3.2 サポートされた LAN カードの挿入・・・・・・・・・・・・・・・・・・・・ 1 1.4 ホストと Target PC の接続・・・・・・・・・・・・・・・・・・・・・・・・・ 4 第 2 章 初期設定 2.1 IP アドレス・サブネットマスクのセット・・・・・・・・・・・・・・・・・・・ 5 2.2 Simulink・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・5 2.3 xPC Target Explorer・・・・・・・・・・・・・・・・・・・・・・・・・・・・5 2.4 Host-Target 接続 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 6 第 3 章 実験 3.1 Target と PC の 接 続 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・8 3.2 簡単な Simulink モデルの作成 ・・・・・・・・・・・・・・・・・・・・・・・ 9 3.3 Simulink へ の ア ウ ト 加・・・・・・・・・・・・・・・・・・10 0 ポ ー ト ブ ロ ッ ク の 追

(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 察・・・・・・・・・・・・・・・・・・28 1 用 い た 信 号 の 観

(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 Scope・・・・・・・・・・・・・・・・・・・・・・・・・・44 2 の

(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 3.38 dat ファイルから mat ファイルへの変換 ・・・・・・・・・・・・・・・・・・ 55 3

(5) 第 4 章 補足 4.1 簡 単 な 流 れ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・56 4.2 MATLAB の使用例 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 56 4.2.1 形 mat 式 で の 保 存 ・・・・・・・・・・・・・・・・・・・・・・・・・・・56 4.2.2 関 plot 数 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・56 4.3 エ ラ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・56 1.インストール 1.1 MATLLAB 4 ー

(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バススロット パソコンに搭載されているPCIバススロットには、5V用PCIバスボードと3.3V用 5

(7) PCIバスボードの誤挿入を防止するためのキーがある。このボードは、5V用PCIバ ススロット及び3.3V用PCIバススロットの両方に実装できる。 1.3.2 サポートされた LAN カードの挿入 xPC がサポートしている LAN カードを差し込む。 6

(8) 7

(9) 1.4 ホストと target PC の接続 LAN ケーブルを接続する。クロスの LAN ケーブルがない場合は、下記のようにス トレートの LAN ケーブルをクロスにする。白黄1⇔白緑3、黄2⇔緑6 8

(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” IP アドレスとサブネットマスクをセットし、ネットに接続していない 状態なら”RS232C”を選択する。 9

(11) 2.4 Host-Target 接続 xPC Target はホスト PC と target PC の間の 2 つの接続と通信プロトコルをサ ポートする。 シリアル接続 ・・・ ホストと target PC は RS-232 ポートを使用して直接シ リアルケーブルで接続される。このケーブルは長さが最大 5 m、転送レートが 1200~115200[baud]ならば、ヌルモデ ムリンクとして配線される。 10

(12) ネットワーク接続 ・・・ ホストと target PC はネットワークを通して接続さ れる。 ネットワークは、クロスオーバーイーサネットケ ーブ ルを使用している直接接続、または LAN、インタ ーネットがある。ホストと target PC の両方が TCP/IP プ ロトコルを使用しているイーサネットアダプタカードで コミュニケーションに状態でネットワークに接続される。 ネットワーク接続を使用するとき、target PC は、xPC Target 製品が提供しているイーサネットアダプタカード かサポートしているカードを使用できる。データ転送速 度は 10Mbps、1Gbps、10Gbps であれば使用できる。 11

(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); 4 data=uint8(data’); 5 data=readxpcfile(data); 12

(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 をクリックする。 xPC Target における信号のリアルタイムでの視覚化に、Simulink Scope ブロック か xPC Target Scope ブロックのどちらかを使用できる。Simulink External Mode と目標アプリケーション信号を視覚化するのに、どのように Simulink Scope ブロ ックを使用するか関しては信号の追跡を参照すること。 13

(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 ノードをクリックする。 14

(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 チェックボックスにチェックを入れる。 15

(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 をクリック、ファイル名を入力する(例: xpc_osc2)。次に、OK をクリックする。 16

(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 ブロックを加えるたびにこの数は増加する。 この数はホスト PC か target PC で xPC Target Scope ブロックと Scope スクリ ーンを確認する。 17

(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]' 8.Grid チェックボックスを選択して、Scope 上に格子線を表示する。Type Target の Scope と type Graphical redraw の観測モード、Graphical sliding または Graphical rolling の Scope のみ、このパラメータが適切であることに注意する。 9.Y 軸限界に行ベクトルを入力する。ボックスの 2 つの要素が最初の要素が Y 軸の下 限であり、2 番目の要素が上限である。スケーリングを自動に設定する場合は両方 の要素に 0 を入力する。Type Target の Scope と type Graphical redraw の観 測モード、Graphical sliding または Graphical rolling の Scope のみ、このパラ メータが適切であることに注意する。 18

(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)ダイアログボックスが開く。 初期設定では type target の Scope が表示される。 19

(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 をクリックする。 11.File メニューから Save as を選択し、xpc_osc2.mdl.として保存する。 20

(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 以上の 値を指定する。 8.Decimation にはデータが各サンプル時(1)もしくは毎サンプル時(2以上)に集め られるよう数値を入力する。 21

(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 を サ ン プ ル 数 ま で 集 め 、 停 止 す る よ う に AutoRestart チェックボックスをクリアする。名前が付けられた信号データファ 22

(24) イルが既に存在している場合、xPC Target は古いデータに新しい信号データを上 書きする。 3.7 Simulink を用いたモデルのシミュレーション リアルタイムでないモデルの動作を観測するために、通常モードで Simulink を使用する。 この手順は、例として Simulink モデル xpc_osc2.mdl を使用して既にそのモデルを読み込 んだと仮定する。 1.MATLAB ウィンドウに xpc_osc と打ち込み、Simulink ブロック図でモデルを表示 する。 2.Simulink ウィンドウで Scope ブロックをダブルクリックし、Scope ウィンドウを 開く。 3.Simulation メニューから Normal を選択し、Start をクリックする。Scope 1のウ ィンドウに信号データの図が表示される。 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 から目標アプリケーションの読み込みが可能となる。 xPC Target Explorer とセットアップのための target boot ディスクを使用すること で xPC Target 製品を構成した後、target PC を起動できる。ビルドプロセスが自動的に アプリケーションを target PC に読み込むため、アプリケーションを作成する前に target PC を起動する必要がある。 23

(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 をクリッ クする。 system target フ ァ イ ル (xpctarget.tlc) 、 template make フ ァ イ ル 24

(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 を選択し、RealTime Workshop サブメニューからは、Build Model を選択する。 コンパイル、リンク、および読み込みが終わってから、目標オブジェクトが MATLAB ワークスペースにビルドされる。目標オブジェクトの初期設定での名前は tg となっ ている。 ビルドが成功すると MATLAB のディスプレイに以下のように表示される。 25

(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つ当てはまっていなければならない。 ・アプリケーションを作成したのと同じディレクトリを選択していなければ、 xPC Target Explorer はエラーを表示する。 26

(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 上で作業を開始し、停止時間に達すると停止する。 7.アプリケーションがまだ xPC Target Explorer の Target Hierarchy に選択されて 27

(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 に接続を作る。 9.xPC Target Explorer で、読み込んだアプリケーションノードを右クリックする 28

(30) (例:xpcosc)。コンテキストメニューが表示され、アプリケーションに実行できる操 作を記載する。 10.Select を選択し、xPC Target Explorer がアプリケーションの実行を開始する。 11.アプリケーションを停止するか、アプリケーションを終了させる。アプリケーション を停止するために、アプリケーションノード(例:xpcosc)を右クリックし、リストか ら Stop を選択する。 3.15 アプリケーションプロパティの処理 このトピックではアプリケーションプロパティの処理方法を説明する。既にアプリケー ション xpcosc を target PC に読み込んだと仮定する。 1.xPC Target Explorer でロードされたアプリケーションのノードを選択する(例: xpcosc)。右の枠はアプリケーションのプロパティに変わる。 2.ここでは、以下のプロパティを変更できる。 ・停止時間 ・サンプル時間 ・ログモード 3.停止時間パラメータを変更する(例:9999)。Apply をクリックする。 29

(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) 別々の実行の間でもサンプル時間を変更できるが、ある状況の下でそのアプリケー ションを作り直すことなく、サンプル時間を変えることができるだけである。 30

(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 Simulink の Simulation メニューから Stop real-time code をクリックしてもアプ リケーションは停止できない。 31

(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.更新されたモデルを作成し、読み込む。 d . xPC Target Explorer に 更 新 さ れ た モ デ ル を 表 示 す る と き に は Model Hierarchy ノードを右クリックし、View Only Labeled Signals を選択する。こ 32

(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.リストを得るには以下のどちらかを入力する。 set(tg, 'ShowSignals', 'On') or 33

(35) tg.ShowSignals='On' 後者のコマンドは、MATLAB ウィンドウに利用可能な信号のオブジェクトプロパティの リストを表示する。モデルの信号に名前がないため、Label 行が空であることに注意する。 信号に名前がある場合は、この行に名前を表示する。 ShowSignals = on Signals = INDEX VALUE BLOCK NAME 0 0.000000 Signal Generator 1 0.000000 Transfer Fcn LABEL 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 2.Simulink ウィンドウで Simulation をクリック→Configulation Parameters モデルに Configulation Parameters ダイアログが表示される。 34

(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 は階層でどんな信号のようにも表 示される。 3.観測する信号で state を選択する。 35

(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 モデルで要素を表示するた めに広がる。 3.アプリケーションにある Scope タイプのリストを見るには、アプリケーションノ 36

(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: \ディレクトリにファイルを作成する。ファイル名は通 常、Scope オブジェクト名、ScopeId、および Scope に追加された信号の始めの文 字からなる。 37

(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 を押す。 初めに割り当てられた名前が1つもないことに注意する。ファイル名を指定しない 場合、Scope を開始した後に、target PC ファイルが信号データを取得するように名 前を割り当てられる。この名前は Scope オブジェクト名、ScopeId、および Scope 38

(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 へのファイルのコピー 1.xPC Target Explorer で、アクセスしたい target PC ファイルシステムに関連し た target PC ノードを広げる。例えば、TargetPC1 を広げたとする。 39

(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 が新しい変数名を表示する。 データの試験、処理ができる。また、plot(sig_integ.data)と入力してプロットで きる。 40

(42) 3.23.7 xPC Target アプリケーションセッションの保存とリロード 一度アプリケーション構成をセットすると、xPC Target アプリケーションセッショ ンを Scope と PC 設定を含んだホスト PC 上の標準の MATLAB MAT-file 保存できる。 後でこの保存しているセッションから別の xPC Target アプリケーションセッション を再び読み込むことができる。これによって xPC Target アプリケーションセッション を保存し、復元できるので、xPC Target Explorer を開始するたびに PC とアプリケー ション設定を再構成する必要がなくなる。 セッションを保存するには 1. xPC Target Explorer が target PC に接続されているのを確認する。 2.xPC Target Explorer から target PC 上でアプリケーションを読み込む。 3.xPC Target Explorer で target PC を右クリックし、Save Session を選択する。 4.必要に応じてディレクトリをブラウズし、名前をつける(例:xpcsession1.mat)。 セッションを復元するには 1.xPC Target Explorer が target PC に接続されているのを確認する。 xPC Target Explorer から target PC 上でアプリケーションを読み込む。 このア プリケーションはセッションが保存された同じアプリケーションである必要があ る。 2.xPC Target Explorer で target PC を右クリックし、Load Session を選択する。 Load Target Session が表示される。 3.必要に応じてディレクトリをブラウズし、セッションを選択する (例: xpcsession1.mat)。新しいセッションを読み込むか確認するダイアログボックス が表示される。 4.Yes をクリックすると xPC Target Explorer は保存した設定を読み込む。 3.24 MATLAB インターフェースを用いた信号の追跡 Scope オブジェクトを作成することで、信号を選択して Scope メソッドを使用して見る ことができる。このセクションでは xPC Target グラフィカルユーザーインターフェースを 使用する代わりに xPC Target 機能を使用することで信号を追跡する方法を説明する。この 手順では、適切な target PC に tg を割り当てたと仮定する。 41

(43) 3.24.1 MATLAB インターフェースと Type Target の Scope を用いた信号の追跡 この手順では、例として Simulink モデル xpcosc.mdl を使用し、このモデルのアプリ ケーションを作成したと仮定する。 1.アプリケーションを実行する。以下のいずれかを入力する。 +tg or tg.start or start(tg) target PC は以下のメッセージを表示する。 System: execution started (sample time: 0.0000250) 2. 信号のリストを取得するにはいかのどちらかを入力する。 set(tg, 'ShowSignals', 'on') or tg.ShowSignals='on' MATLAB のウィンドウは利用可能な信号のオブジェクトのプロパティのリスト を表示する。例えば、モデル xpcosc.mdl への信号は以下の通りである。 ShowSignals = on Signals = INDEX VALUE BLOCK NAME 0 0.000000 Integrator1 1 0.000000 Signal Generator 2 0.000000 Gain 3 0.000000 Integrator 4 0.000000 Gain1 5 0.000000 Gain2 6 0.000000 Sum LABEL 3.Scope を作成して target PC 上に表示する。例えば、1 の識別子と sc1 の Scope オブジェクト名で Scope を作成するには以下のように入力する。 sc1=tg.addscope('target', 1) or sc1=addscope(tg, 'target', 1) 4.Scope オブジェクトのプロパティを表示する。例えば、Scope オブジェクト sc1 42

(44) のプロパティを表示するには以下のように入力する。 sc1 MATLAB のウィンドウは Scope オブジェクトのプロパティのリストを表示する。 Scope のプロパティの Time と Data が type target の Scope でアクセスできな いことに注意する。 xPC Scope Object Application ScopeId = xpcosc =1 Status = Interrupted Type = Target NumSamples = 250 NumPrePostSamples Decimation =0 =1 TriggerMode = FreeRun TriggerSignal = -1 TriggerLevel = 0.000000 TriggerSlope = Either TriggerScope =1 TriggerSample = -1 Mode = Redraw (Graphical) YLimit = Auto Grid Signals = On = no Signals defined 5 . Scope オ ブ ジ ェ ク ト に 信 号 を 追 加 す る 。 例 え ば 、 Integrator1 と Signal Generator を追加するには以下のように入力する。 sc1.addsignal ([0,1]) or addsignal(sc1,[0,1]) target PC は以下のメッセージを表示する。 Scope: 1, signal 0 added Scope: 1, signal 1 added Scope オブジェクトに信号を追加した後、Scope を開始するまで信号はスクリー ンで見ることはできない。 6.Scope を開始する。例えば、以下のいずれかを入力して sc1 を開始する。 43

(45) +sc1 or sc1.start or start(sc1) 各データパッケージを集めた後に、スクリーンは信号をプロットする。この間の Scope が実行している間、信号の動きを観測できる。 7.Scope を停止する。以下のいずれかを入力する。 -sc1 or sc1.stop or stop(sc1) アプリケーションが実行し続けている間、target PC に表示されていた信号は更新 を停止し、target PC は以下のメッセージを表示する。 Scope: 1, set to state 'interrupted' 8.アプリケーションを停止する。MATLAB ウィンドウに以下のいずれかを入力する。 -tg or tg.stop or stop(tg) target PC 上のアプリケーションは停止し、target PC は以下のメッセージを表示 する。 System: execution stopped minimal TET: 0.000023 at time 1313.789000 maximal TET: 0.000034 at time 407.956000 3.24.2 MATLAB インターフェースと Type File の Scope を用いた信号の追跡 この手順では、例として Simulink モデル xpcosc.mdl を使用し、このモデルのアプ リケーションを作成したと仮定する。また、シリアル通信接続があると仮定する。この トピックでは Type file の Scope で信号を追跡する方法を説明する。 1.Type file が動作する xPC Target アプリケーションを作成する。以下のように入 力する。 44

(46) tg=xpctarget.xpc('rs232', 'COM1', '115200') 2.信号のリストを取得するため、以下のどちらかを入力する。 set(tg, 'ShowSignals', 'on') or tg.ShowSignals='on' MATLAB のウィンドウが利用可能な信号のオブジェクトプロパティのリストを表 示する。例えば、モデル xpcosc.mdl への信号は以下のようになる。 ShowSignals = on Signals = INDEX VALUE BLOCK NAME 0 0.000000 Integrator1 1 0.000000 Signal Generator 2 0.000000 Gain 3 0.000000 Integrator 4 0.000000 Gain1 5 0.000000 Gain2 6 0.000000 Sum LABEL 3.アプリケーションを開始するため、以下のように入力する。 +tg or tg.start or start(tg) target PC のディスプレイに以下のメッセージが表示される。 System: execution started (sample time: 0.0000250) 4.target PC 上のディスプレイに表示させるため、Scope を作成する。例えば、2の 識別子と sc2 の Scope オブジェクト名で Scope を作成するには、以下のように 入力する。 sc2=tg.addscope('file', 2) or sc2=addscope(tg, 'file', 2) 5.Scope オブジェクトのプロパティを表示する。例えば、Scope オブジェクト sc2 のプロパティを表示するには、以下のように入力する。 sc2 MATLAB のウィンドウは Scope オブジェクトのプロパティのリストを表示する。 Scope のプロパティの Time と Data が type target の Scope でアクセスできな いことに注意する。 45

(47) xPC Scope Object Application ScopeId Status Type = xpcosc =2 = Interrupted = File NumSamples = 250 NumPrePostSamples Decimation =0 =1 TriggerMode = FreeRun TriggerScope =2 TriggerSample TriggerSignal = -1 TriggerLevel = 0.000000 TriggerSlope = Either Signals FileName Mode WriteSize = 512 AutoRestart = of =0 = no Signals defined = unset = Lazy 初めに FileName に割り当てられた名前が1つもないことに注意する。Scope を開始した後、信号データを取得するために xPC Target が名前を割り当てる。こ の名前は通常、Scope オブジェクト名、ScopeId、および Scope に加えられた信号 の始めの文字から成る。 6 . Scope オ ブ ジ ェ ク ト に 信 号 を 追 加 す る 。 例 え ば 、 Integrator1 と Signal Generator を追加するには以下のように入力する。 sc2.addsignal ([0,1]) or addsignal(sc2,[0,1]) target PC のディスプレイに以下のメッセージが表示される。 Scope: 2, signal 0 added Scope: 2, signal 1 added Scope オブジェクトに信号を追加した後、Scope を開始するまで、Type file の Scope は信号を取得しない。 7.Scope を開始する。例えば、sc2 を開始するには以下のように入力する。 +sc2 or 46

(48) sc2.start or start(sc2) target PC のディスプレイには以下のメッセージが表示される。 FileSys:File c:\sc2Integ.dat opened MATLAB のウィンドウは Scope オブジェクトのプロパティのリストを表示する。 初 期 設 定 で の フ ァ イ ル 名 が Type file の Scope の 信 号 デ ー タ を 含 む よ う に FileName に割り当てられることに注意する。 Application ScopeId = xpcosc =2 Status = Pre-Acquiring Type = File NumSamples = 250 NumPrePostSamples =0 Decimation =1 TriggerMode = FreeRun TriggerScope =2 TriggerSample =0 TriggerSignal =0 TriggerLevel = 0.000000 TriggerSlope = Either Signals = 0 : Integrator1 1 : Signal Generator FileName Mode WriteSize AutoRestart = c:\sc2Integ.dat = Lazy = 512 = of 8.Scope を停止するには以下のどちらかを入力する。 -sc2 or sc2.stop or stop(sc2) アプリケーションが実行され続けている間、target PC に表示されていた信号は更 新を停止し、target PC は以下のメッセージを表示する。 FileSys:File c:\sc2Integ.data closed 47

(49) Scope: 2, set to state 'Interrupted' 9.アプリケーションを停止するには、MATLAB ウィンドウに以下のように入力する。 -tg or tg.stop or stop(tg) target PC 上のアプリケーションは停止し、target PC は以下のメッセージを表示 する。 System: execution stopped minimal TET: 0.00006 at time 0.004250 maximal TET: 0.000037 at time 14.255250 Type file の xPC Target Scope が作成する信号データファイルのコンテンツに アクセスするには、ホスト PC の MATLAB のウィンドウから xPC Target ファイ ルシステムオブジェクト(xpctarget.fs)を使用する。信号データを見たり調べたり するためにプロット機能をもつ readxpcfile ユーティリティを使用できる。 3.25 xPC Target Scope ブロックを用いた信号の追跡 Type host の Scope を使用し、アプリケーションが実行している間に信号データがトリ ガされる度に記録する。このトピックは3タイプの Scope ブロックの使用方法を説明する。 3.25.1 参照したモデルからの xPC Target Scope ブロックの使用 どのタイプの xPC Target Scope でも参照したモデルに追加できず、それを行うと エラーの原因となる。xPC Target Scope のみ一番上のモデルに追加できる。したがっ て、参照したモデルからの信号を記録したい場合、xPC Target Explorer の記録装置か xPC Target Scope オブジェクトで処理できる。 3.25.2 Type Host の Scope Type Host の Scope では、Scope は最初の N サンプルをバッファ内で取得する。この バッファは Scope オブジェクトのプロパティの sc.Data で検索できる。次に、Scope は停止し、手動で Scope を再開するのを待機する。 トリガ後の記録のためのサンプル N の数は Samples パラメータの Number に入力 した値と等しい。 Block Parameters の type of event を選択する (Software Triggering 、Scope Triggering、Signal Triggering 用の Trigger Mode 設定による Scope(xPC Target) ダイアログボックス)。 3.25.3 Type Target のスコープ Type Target の Scope では、記録されたデータ(sc.Data と sc.Time)はホスト PC 上 48

(50) のコマンドラインインタフェースではアクセスできない。これは Scope オブジェクト ステータス(sc.Status)が必ず Finished には設定されないからである。Scope がいっ たん、1 データサイクル(サンプルの数を集める時間)を完了すると、Scope エンジンは 自動的に Scope を再開する。 例えば、Type Target の Scope に getscopes(tg、1) Sc=を作成するには、sc.Data と入力して記録されたデータを取得しようとしなければ、以下のエラーメッセージが 表示される。 Scope # 1 is of type 'Target'! Property Data is not accessible. target PC 上にデータが表示されている間に、ホスト PC 上の同じ信号の同じデータ が必要な場合、Type Host で 2 番目の Scope オブジェクトを定義する必要がある。そ して、2 番目の Scope の TriggerMode を'Scope'に設定することによって、2 個の Scope オブジェクトの取得を同時に行う必要がある。 3.25.4 Type File の Scope Type File の Scope では、Scope はデータを取得し、それを WriteSize のブロック 内の FileName パラメータで名前が付けられたファイルに書き込む。Scope は最初 の N サンプルをメモリバッファ内で取得する。このメモリバッファは Number of Samples の長さである。メモリバッファは WriteSize のファイルにデータを書き込 む。AutoRestart のチェックボックスが選択されている場合、メモリバッファを上書 きして Scope が再び実行される。追加データは既存ファイルの端まで追加される。 AutoRestart が選択されていなければ、Scope は単にサンプル数までデータを集め て、停止する。 トリガ後に記録するためのサンプル N の数は Samples パラメータの Number に 入力した値と等しい。停止してから Scope を再開するなら、ファイルのデータは新 し い デ ー タ に 上 書 き さ れ る 。 Block Parameters の type of event を 選 択 す る (Software Triggering、Scope Triggering、Signal Triggering 用の Trigger Mode 設定による Scope(xPC Target)ダイアログボックス)。 3.26 Simulink External Mode を用いた信号の追跡 Simulink ブロック図とアプリケーションの間の通信 チャンネルを設置するために Simulink External Mode を使用できる。ブロック図はアプリケーションへのグラフィカ ルユーザーインターフェースになり、Simulink Scope はアプリケーションから信号データ を取得できる。各 Simulink Scope に関しては、xPC Target は信号を更新するために Type Host の xPC Target Scope をシステムに追加する。 3.26.1 制限 以下は xPC Target 信号を Simulink External Mode へ更新する制限である。 ・信号のトリガ(ソースが信号にセットした)をセットアップするとき、Trigger Signal 49

(51) Element の信号の要素数を指定しなければならない。信号がスカラーなら、1 の値を 入力する。信号が大きければ、1~10 までの値を入力する。Simulink Scope に xPC Target の信号を更新している間はここに Last か Any を入力しないようにする。 ・Direction: Holdof は xPC Target 信号アップロード機能には無効である。 3.26.2 始める前に このトピックの手順では例として Simulink モデル xpcosc.mdl を使用する(既に xpcosc.mdl は Simulink Scope ブロックを含んでいるとする)。アプリケーションを target PC に読み込んだ後、Simulink モデルをアプリケーションに接続できる。 3.27 External Mode Example を用いた信号の追跡 この手順では、アプリケーションを target PC に読み込んだ仮定する。この手順は Simulink のウィンドウの External Mode コントロールパネルを編集し、そのダイア ログボックスに関係があると仮定する。 1.MATLAB のウィンドウに xpcosc と入力する。 2.Simulink のウィンドウの Tools メニューから External Mode コントロールパネ ルを選択し、External Mode コントロールパネルダイアログボックスを開く。 3.Signal&Triggering ボタンをクリックし、External Signal&Triggering ダイアロ グボックスを開く。 4.Source パラメータがマニュアルに設定されているのを確認する。 5.Mode パラメータを標準に設定する。これは Scope が連続的にデータを取得する ことを意味する。 6.チェックボックスに接続するときは Arm を選択する。 7.Duration に External Mode がデータを記録するためのサンプル数を入力する。 8.Apply をクリックして閉じる。 9.Simulink のウィンドウでシミュレーション停止時間を増やす。例えば、50 を入力 する。 10 . File メ ニ ュ ー か ら 、 Save As を 選 択 し 、 フ ァ イ ル 名 を 入 力 す る 。 例 え ば 、 xpc_osc6.mdl と入力し、OK をクリックする。 11.アプリケーションを作成して読み込む。Simulink のウィンドウの Tools メニュー から Real-Time Workshop を選択し、サブメニューから Build Model を選択する。 xPC Target は初期設定の target PC にアプリケーションを読み込む。 12.Simulink のウィンドウの Simulation メニューから External を選択する。 チェ ックマークが External の横に表示される。これで Simulink External Mode は起 50

(52) 動する 13.Scope のウィンドウが Scope ブロックに表示されなければ、Scope ブロックを ダブルクリックして Scope のウィンドウを表示する。 14.Simulink のウィンドウの Simulation メニューから目標に対して Connect を選 択する。 15.Simulation メニューから Start Real-Time Code を選択する。 アプリケーションは targetPC 上で実行し始め、Scope ウィンドウディスプレイ はプロットされたデータを表示する。 3.28 Web ブラウザを用いた信号の追跡 Web ブラウザインターフェースで、グラフィカルユーザーインターフェースを使用する ことでデータを視覚化できる。Web ブラウザを target PC に接続した後、target PC 上で Scope ページを Scope の追加、排除、制御に Scope のページを使用できる。 1.左の枠で Scopes ボタンをクリックすると、ブラウザが Scopes List を右のフレー ムに読み込む。 2.Add Scope ボタンをクリックし、target PC 上に Type target の Scope が作成され 表示される。Scopes 枠は現在の Scope の全てのリストを表示する。このページから 新しい Scope の追加、既存の Scope の排除、Scope の制御ができる。Type Host の Scope を作成するには、ホストを選択するために Add Scope ボタンの横のドロップ ダウンリストを使用する。この項目は初期設定では Target に設定されている。 3.Edit ボタンをクリックし、Scope 編集を開く。ここからどの Scope のプロパティで も編集して、Scope を制御できる。 4.Add Signals ボタンをクリックすると、ブラウザが Add New Signals リストを表示 する。 5.信号名の横でチェックボックスを選択し、Apply ボタンをクリックする。Remove Existing Signals リストが Add New Signals リストの上に追加される。 変更を行うために Scope を停止する必要はない。 必要なら、Web インターフェース は自動的に Scope を停止し、変更が行われてから再開する。元々停止されていた場合は 、 Scope は再開されない。 ホスト Scope が停止させられるか(Scope は Interrupted となる)、または 1 サイクル の取得を終了すると(Scope は Finished となる)、Get Data というボタンがページに現 れる。このボタンをクリックすると、Scope データはコンマ区切り値(CSV)形式で検索さ れる。 Scope の信号は列の向こうに広げられ、各列は取得した 1 つのサンプルに対応し ている。 最初の列は常に各サンプルが取得した回数に対応している。 51

(53) 3.29 xPC Target Explorer を用いた信号の記録 モデルの動きを観察、もしくは入力信号やモデルのパラメータを変えたときの動きを判 断するため、アプリケーションの state と出力をプロットする。この手順では、例として xpc_osc4.mdl というモデルを使用し、アプリケーションを作成して PC に読み込んだと仮 定する。xpc_osc4.mdl は xPC Target Scope ブロックが取り外された xpc_osc3.mdl と 同一である。 [xpc_osc4 を作成する] 1.MATLAB のウィンドウに xpc_osc3 と入力し、xpc_osc3 モデルを開く。 2.Simulink のウィンドウで xPC Target Scope ブロックとその接続を選択して削除 する。 3.File メニューから Save をクリックし、xpc_osc4 と入力して Save をクリックする。 1 . xPC Target Explorer で 読 み 込 ん だ ア プ リ ケ ー シ ョ ン ノ ー ド を 選 択 す る ( 例 : xpc_osc4)。 右の枠に xpc_osc4 のアプリケーションプロパティダイアログが表示される。 2.Logging で記録したい信号を選択する。例えば、Output と TET を選択し、Apply を クリックする。 3.アプリケーションを開始する。例えば、xPC Target Hierarchy で xpc_osc4 アプリ ケーションを右クリックし、Start を選択する。 4.アプリケーションを停止する。例えば、Target Hierarchy で xpc_osc4 アプリケー ションを右クリックし、Stop を選択する。 5.選択された記録データを MATLAB ワークスペースに送る。xpc_osc4 のアプリケー ションプロパティダイアログの Logging で Send to MATLAB Workspace ボタンを クリックする。MATLAB デスクトップで Workspace に記録したデータが表示される。 3.30 MATLAB Interface での信号の記録 全 て の Scope が ロ グ バ ッ フ ァ か ら オ ブ ジ ェ ク ト ロ グ (tg.TimeLog、tg.OutputLog、tg.StateLog、および tg.TETLog)までの最後の N サンプル をコピーする。 52

(54) アプリケーションを実行した後、state と出力信号をプロットできる。この手順では、例と して Simulink モデル xpc_osc3.mdl を使用し、そのモデルのアプリケーションを作成して 読み込んだと仮定する。また、適切な target PC に tg を割り当てたと仮定する。 1.MATLAB ウィンドウで以下のように入力する。 tg=xpc 2.以下のように入力する。 +tg or tg.start or start(tg) オブジェクトのプロパティの tg.StopTime で設定された時間に達するまで、アプ リケーションは実行される。出力は Simulink Outport ブロックに接続された信号で ある。モデル xpcosc.mdl には、1 となっている Outport ブロックが1つだけあり 、 2 つの state がある。この Outport ブロックは、信号がブロックを Integrator1 と Signal Generator としたままにしていることを示している。 3.Outport ブロックと state から信号をプロットする。MATLAB ウィンドウに以下を 入力する。 plot(tg.TimeLog,tg.Outputlog) 記録用の値は target PC 上のアプリケーションからホスト PC に更新される。 4.MATLAB ウィンドウに以下を入力する。 plot(tg.TimeLog,tg.TETLog) タスク実行時間(TET)の記録の値は targetPC からホスト PC に更新される。 TET は各サンプル間隔の間モデルの信号値を計算する時間である。ある状況下での み実行されるサブシステムがあるなら、TET をプロットすることでサブシステムが いつ実行されたかを表示し、追加された CPU 時間がそれらの実行に必要となる。 5.MATLAB ウィンドウに以下を入力する。 tg.AvgTET or get(tg,'AvgTET') MATLAB インターフェースに平均タスク実行時間についての情報が表示される。 ans = 53

(55) 5.7528e-006 CPU 性能の割合はサンプル時間まで分けられた平均 TET である。各 Outport に tg.OutputLog に関連した列ベクトルがあることに注意する。その Outport に列ベ クトルを指定することによって特定の Outport に対応するデータにアクセスできる。 例えば、tg.outputlog(:,2)を使用して Outport2 に対応するデータにアクセスす る。 3.31 Web ブラウザを用いた信号の記録 モデルの実行を停止すると、記録データを読み込むのを可能にする Web ブラウザインタ ーフェースのもう 1 つのセクションが現れる。このデータはコンマ区切り値(CSV)形式にな っている。csvread 機能を使用することで、ほとんどの表計算プログラムと MATLAB イン ターフェースもこの形式を読むことができます。データ記録を可能にした場合にのみウェ ブブラウザインタフェースのこのセクションが現れ、可能になったそれらの記録 (state、output および TET)にだけボタンが現れる。時間記録を可能にすると、CSV ファイ ルの最初の列はデータ(state、output、および TET 値)が取得された時間となる。時間記録 を可能にしなければ、時間情報のないデータのみが CSV ファイルに存在する。 モデルの動きの観察、もしくは入力信号を変えた時の動きを判断するためにアプリケー ションの出力と state を解析し、プロットする。 3.32 xPC Target Explorer を用いたパラメータ調整 xPC Target でアプリケーションがリアルタイムで実行している間、アプリケーションの パラメータを変更することができる。これらの機能により、Simulink インターフェースを External Mode に設定する必要はなくなり、アプリケーションと Simulink インターフェ ースを接続する必要もない。 アプリケーションが実行中もしくは実行の間にパラメータをアプリケーションに読み込 むことができる。この特徴によって、Simulink モデルをリビルドせずに、アプリケーション のパラメータを変更することができる。シミュレーションが実行している間は、調整可能な ソースブロックパラメータの変更に xPC Target Explorer を使用することはできない。ア プリケーションを target PC に読み込んだ後、xPC Target Explorer を使用することでブ ロックパラメータを変更することができる。この手順では、例として Simulink モデル xpcosc.mdl を使用し、そのモデルのアプリケーションを作成して読み込んだと仮定する。 1.xPC Target Explorer で読み込んだアプリケーションノードを右クリックする(例: xpcosc)。 54

(56) 2.Start をクリックする。 3.アプリケーションにおけるパラメータのリストを得るには、アプリケーションの Model Hierarchy ノードを広げる。Model Hierarchy は Simulink モデルの要素を 表示するために広がる。モデル階層は調整可能なパラメータがあるブロックだけを 表示する。 4.編集したい信号のパラメータを選択する。例えば、Gain を選択する。 右の枠は Gain のブロックパラメータダイアログボックスを表示する。このブロック には 1 つのパラメータ(Gain)があり、Gain パラメータの現在値を表示している。 5.ゲイン値を含むボックスをダブルクリックすると、ぼっくすが編集可能となる。 6.ゲインに新しい値を入力する。 7.Enter キーを押してボックスを更新し、Update Parameter ボタンがアクティブに なる。Scope があれば、新しいパラメータ値でシミュレーションを実行した後に、プ ロットフレームが信号を更新する。 8.アプリケーションを停止する。例えば、アプリケーション xpcosc を停止するには右 クリックから Stop を選択すると、target PC のアプリケーションが停止する。 3.33 MATLAB インターフェースを用いたパラメータ調整 ブロックパラメータを変更するために MATLAB 機能を使用する。これらの機能により 、 Simulink インターフェースを External Mode に設定する必要はなくなり、アプリケーシ ョンと Simulink インターフェースを接続する必要もない。 アプリケーションが実行中もしくは実行の間にパラメータをアプリケーションに読み込む ことができる。この特徴によって、Simulink モデルをリビルドせずに、アプリケーションの パラメータを変更することができる。アプリケーションを target PC に読み込んだ後に 、 xPC Target 機能を使用することでブロックパラメータを変更できる。この手順では、例と して Simulink モデル xpcosc.mdl を使用し、そのモデルのアプリケーションを作成して読 み込んだと仮定する。また、適切な target PC に tg を割り当てたと仮定する。 1.MATLAB ウィンドウに以下を入力する。 +tg or tg.start or start(tg) 2.target PC に以下のメッセージが表示される。 System: execution started (sample time: 0.001000) パラメータのリストを表示するには以下のどちらかを入力する。 set(tg,'ShowParameters','on') 55

(57) or tg.ShowParameters='on' 後者のコマンドではオブジェクトのプロパティのリストを表示する。 INDEX VALUE TYPE SIZE PARAMETER BLOCK NAME NAME 0 1E+06 DOUBLE Scalar Gain Gain 1 400 DOUBLE Scalar Gain Gain1 2 1E+06 DOUBLE Scalar Gain Gain2 3 0 DOUBLE Scalar Initial Integrator Condition 4 0 DOUBLE Scalar Initial Integrator1 Condition 5 4 DOUBLE Scalar Amplitude Signal Generator 6 20 DOUBLE Scalar Frequency Signal Generator 3.ゲインを変更する。例えば、Gain1 ブロックを変更するには以下のどちらかを入力す る。 tg.setparam(1,800) or setparam(tg,1,800) パラメータを変更すると、すぐにオブジェクトの変更されたパラメータがアプリケ ーションに読み込まれる。ホスト PC に以下のメッセージが表示される。 ans = parIndexVec: 1 OldValues: 400 NewValues: 800 Scope があれば、新しいパラメータでシミュレーションを実行してからプロットフ レームが信号を更新する。 56

(58) 4.target PC 上のアプリケーションが停止し、以下のようなメッセージが表示される。 System: execution stopped minimal TET: 0.000023 at time 1313.789000 maximal TET: 0.000034 at time 407.956000 3.34 アプリケーションパラメータのリセット ホスト PC 上で xPC Target メソッドを使用することでオブジェクトプロパティのパラメ ータを以前の値にリセットできる。setparam メソッドはパラメータインデックス、以前の 値、および 新しい値を保存する 構成を返す。 パラメータ値をリセットしたければ 、 setparam メソッドを変数に設定する。この変数はパラメータインデックス、以前または新 しいパラメータ値を保存する構成を示している。 1.MATLAB ウィンドウに以下を入力する。 pt=tg.setparam(1,800) setparam メソッドが以下のような結果を返す。 pt = parIndexVec: 1 OldValues: 400 NewValues: 800 2.以前の値にリセットするには、以下を打ち込む。 setparam(tg,pt.parIndexVec,pt.OldValues) ans = parIndexVec: 5 OldValues: 800 NewValues: 100 3.35 Simulink External Mode を用いたパラメータ調整 Simulink ブロック図をアプリケーションに接続するのに Simulink External Mode を 使用する。ブロック図はアプリケーションへのグラフィカルユーザーインターフェースと なる。Simulink ブロックウィンドウとアプリケーションの間の通信チャンネルを設置する ために External Mode で Simulink インターフェースをセットアップします。 Simulink External Mode では、Simulink が実行している間、Simulink ブロック図のどこ 57

(59) のパラメータを変更しても、それらのパラメータをアプリケーションに読み込む。これによ って、新しいアプリケーションを作成するために Simulink モデルをリビルドせずに、プロ グラムのパラメータを変更できる。 アプリケーションを target PC に読み込んだ後に、Simulink モデルをアプリケーション に接続できる。この手順では、例として Simulink モデル xpcosc.mdl を使用し、そのモデ ルのアプリケーションを作成して読み込んだと仮定します。 1.Simulink のウィンドウの Simulation メニューから External をクリックする。 External の隣にチェックマークが現れ、External Mode がアクティブになる。 2.Simulink ブロックウィンドウの Simulation メニューから Connect to target をク リックする。現在の Simulink モデルのパラメータが全てアプリケーションに読み込 まれる。この読み込みはホストモデルとアプリケーションのパラメータの一致を保 証する。 3.Simulation メニューから Start Real-Time Code をクリックするか、MATLAB ウィ ンドウに以下を入力する。 +tg or tg.start or start(tg) target PC 上でアプリケーションが実行を開始し、target PC のディスプレイに以下 のメッセージが表示される。 System: execution started (sample time: 0.000250) 4.Simulation ブロック図から Gain1 となっているブロックをダブルクリックする Gain1 のパラメータダイアログボックスが開く。 5.ゲインテキストボックスに 800 を入力して OK をクリックする。モデルパラメータ を変更して OK を押すか、Gain1 ダイアログボックスの Apply ボタンをクリックす ると、すぐにモデルの変更した全てのパラメータがアプリケーションに読み込まれ る。 6.Simulation メニューから Disconnect from Target をクリックする。Simulink モ デルがアプリケーションから断ち切られる。Simulink モデルのブロックパラメータ を変更する場合は、アプリケーション上では無効となる。アプリケーションが実行し ているか否かにかかわらず、接続または非接続の Simulink インターフェースは作動 する。 7.MATLAB ウィンドウに以下のどちらかを入力する。 58

(60) stop(tg) or -tg target PC 上のアプリケーションは停止し、target PC のディスプレイに以下のメッ セージが表示される。 System: execution stopped minimal TET: 0.000023 at time 1313.789000 maximal TET: 0.000034 at time 407.956000 3.36 Web ブラウザを用いたパラメータ調整 Parameters はモデルのすべての調整可能なパラメータのリストを表示する。また 、 vector/matrix パラメータの行列インデックスが表示される。target PC に Web ブラウザ を接続した後、リアルタイムでアプリケーションを実行している間、アプリケーションのパ ラメータを変更するために Parameters ページを使用できる。 1.左の枠から Parameters ボタンをクリックすると、ブラウザは Parameter List を右 のフレームに読み込む。パラメータがスカラーであれば、現在のパラメータ値は編集 可能なボックスに表示される。パラメータがベクトルか配列なら、ベクトルか配列 (正しい形の)を表示して、パラメータの編集を可能にするページに行けるボタンがあ る。 2.パラメータボックスの 1 か所かそれ以上に新しいパラメータ値を入力し、Apply ボ タンをクリックする。新しいパラメータ値がアプリケーションに更新される。 3.37 MATLAB インターフェースを用いたアプリケーションパラメータの保存とリロード 1 セットのアプリケーションパラメータ値を入手後に、target PC のファイルにそれらの 値を保存できる。そして、後で同じアプリケーションに保存されたパラメータ値をリロード できる。アプリケーションが実行中または実行する間、アプリケーションからパラメータを 保存できる。これによって、Simulink モデルをリビルドせずに、アプリケーションのパラメ ー タ を 保 存 し た り 戻 し た り で き る 。 オ ブ ジ ェ ク ト メ ソ ッ ド の saveparamset と loadparamset でパラメータを保存し、戻せる。 3.38 .dat ファイルから.mat ファイルへの変換 xPC Scope を追加したモデルの Scope Type を「ファイル」に設定すると、.dat 形式のフ ァイルが Target PC に作成される。xPC Target Explorer から Target PC 上で実行された ファイルは local disc c:/に保存され、このデータをホスト PC に保存するには xPC Target Explorer の local disk c:/内のデータを右クリックして Save to Host PC を選択し、保存 59

(61) する。この時点で拡張子は xPC Target 特有の.dat となっているため、MATLAB でも読み込 めるように.mat に変換する. テキスト形式に変換するには以下のコマンドを用いる。 h=fopen(‘データ名.dat’); data=fread(h); fslose(h); data=uint8(data’); data=readxpcfile(data); これら全てのコマンドを実行すると.mat 形式で保存できるようになる。 4.補足 4.1 簡単な流れ ①xPC Scope を含んだ Simulink でモデルを作成する。 ②Simulink ウィンドウの上のバーにある「インクリメンタルビルド」ボタンをクリッ ク。 ③「ターゲットに接続」ボタンをクリック。 ④「リアルタイムコードを開始」をクリック。 ⑤Target PC 上に信号が表示される。 4.2 MATLAB の使用例 4.2.1 mat 形式での保存 nisoku_step1=data save nisoku_step1 と入力すると data という名前のファイルが mat 形式でホスト PC 上に保存される。 nisoku_step1 を読み込むには load_nisoku_step1 と入力すればよい。 4.2.2 plot 関数 plot 関数では、例えば Target PC に5つデータを取り込んだ場合、6つ目に時間を設 定する. plot(data.data(:,6),[data.data(:,1),data.data(:,4)]) 上の例では data.data(:,6)が x 軸に、data.data(:,1)と data.data(:,4)が y 軸にセ ットされている.plot 関数内でも+や*の使用は可能である. 4.3 エラー Target PC を起動せずにビルドした ⇒ callMakeHook at 49 60

(62) などビルド時にエラーが発生することがある。CallMakeHook at 99 なら保存し直して もう一度ビルドするとエラーが発生しなくなることがあり、実際は合っているのに代入 した変数が合っていないなどのエラーが表示された場合は、再起動すればビルドできる ようになることがある。 また、MATLAB ウィンドウに xpctargetping と入力すれば Target PC と接続できてい るかどうかが確認できる. 61

(63)

Tags

日本人大学生のEfl 学習者コーパスに見られるMakeの使用 外国語教育研究(紀要)第11号〜第17号|外国語学部の刊行物|関西大学 外国語学部 Elearning教材における効果的指導法 Alc Net Academyを用いた実践授業と学生による授業アンケート評価