Comments
Transcript
WinCon Menu Missing from Simulink Diagram
WinCon Principles of Operation WinCon Server WinConサーバーは下記機能を実行するソフトウェア・コンポーネントです。 □MathWorksのリアルタイムワークショップ(RTW)を使用し、Simulinkダイアグラムをソース・コードへ変換。 □実行可能なリアルタイムWinConコントローラ・ライブラリー(*.wcl)を作成するためにマイクロソフト Visual C++を使用して、生成されたコードをコンパイル、リンクすること。 □WinConコントローラ・ライブラリー・ファイル(wcl)を制御実行用のWinConクライアントにダウンロード。 □クライアント(リモートコンフィギュレーションの場合、遠隔PC上の)のリアルタイムコードを開始・停止。 □接続している任意のWinConクライアントとのTCP/IPコミュニケーションの維持。 □コントローラ・パラメーターのリアルタイムの変更を実行するためにSimulinkとのコミュニケーションを維 持すること。例えば、ゲインブロックの値がSimulinkの中で変更される場合、WinConサーバーはこの情報を WinConクライアントへ渡します。また、変更は実行中のコントローラの中で直ちに行なわれます。 □ユーザに定義されたコントロールパネルを使用して、コントローラ・パラメーターに変更を加えること。 □WinConクライアントを介して伝達されるリアルタイムコードからのデータをプロットする。 □ディスクおよび(または)MATLAB workspaceへのリアルタイムのデータの保存。 WinCon Client WinConクライアントは、Simulinkダイアグラムから生成されたコードを指定されたサンプリングレートで実行 するリアルタイムのソフトウェア・コンポーネントです。それは下記タスクを実行することができます。 □WinConサーバーからWinConコントローラ・ライブラリー・ファイル(wcl)形式のコントローラーコードを受 理します。 □リアル・タイムコントローラの実行。 □.接続している任意のWinConサーバーとのコミュニケーションの維持。 □任意のWinConサーバーへ、その要求によりリアルタイムのデータを流すこと。 □リアルタイムコードに分配されるCPUの最大消費時間を、ユーザー定義による閾値設定により管理する。 制御実験装置のピーアィディー http://www.pid-control.com/ 17 WinCon Server's Graphical Interface The WinCon Serverのグラフィカルユーザーインターフェースが図5にあります。 図 5 WinCon Server Graphical Interface WinCon Server's File Menu Options WinCon サーバーは、プロットおよびユーザによって設計されたコントロールパネルを保存するためにプロジ ェクト・ファイルをサポートします。WinCon プロジェクト・ファイル(つまり.wcp)は、WinCon サーバーファ イルメニュー(その内容については表 1 を参照)を使用し管理されます。 File Menu Option Description New 新しいWinCon projectを開始。 Open... WinCon projectを開く。 Save WinCon projectを保存する。 Save As... 現在のWinCon projectを新しい名前で保存する。 Close 現在のWinCon projectを閉じる。 [Recent Projects List] Exit 最近使用したprojectsファイルの履歴。 WinCon Serverを終了する。 表1 WinCon サーバーのファイル・メニュー・オプション 制御実験装置のピーアィディー http://www.pid-control.com/ 18 WinCon Server's Client Menu Options サーバーに関係する WinCon クライアント情報は、WinCon サーバーのクライアント・メニュー・オプション(そ れらについては表 2 を参照)の使用により管理されます。 Client Menu Option Description 希望のクライアントに接続。リモートPC名あるいはそのIPアドレスおよ びリモートポートの名前を入力する。 主要なWinConクライアントからの接続を解除します。 Connect... Disconnect Recent Clients サーバーが接続した最近3つのクライアントリスト。 Close on Exit サーバーの終了によりローカルのクライアントを閉じる。(ローカルのク ライアントは必要時、サーバーによって自動的に実行されます)。 現在のクライアントのためにCPU時間閾値をセット。 Threshold... Network... [Clients List] ネットワークネットワークに関する情報を得るためにマイクロソフトの Windowsネットワークダイアログインターフェースを開始する。 このサーバーに現在接続しているクライアントのリスト。クライアント のアドレスの初めの照合印(つまり√)は、そのクライアントが現在アク ティブなクライアントであることを示します。オペレーションは開始・ 停止コマンドを例外として、現在アクティブなクライアントのみに適用 されます。名前の終端の星(つまり*)は、これがそのクライアント用の第 2のサーバーであることを示します。第2のサーバーはコントローラ・パ ラメーターを変更することができません。 表2 WinCon サーバーのクライアント・メニュー・オプション WinCon Server's Model Menu Options Simulink モデル・ファイルおよび WinCon コントローラ・ファイルは、WinCon サーバーのモデル・メニュー・ オプション(詳細は表 3 を参照)によって管理されます。 制御実験装置のピーアィディー http://www.pid-control.com/ 19 Model Menu Option Open... Description WinCon コントローラ(.wcl)またはSimulinkモデルを開く。 Close 現在のモデルを閉じる。 Change コントロールパネル、プロットを出来るだけ保存しながらモデルを変更 します。変数とパラメーターは、同じ階層名の新しいモデル内の変数お よびパラメーターに再び割り付けられます。 現在のモデルを再びロードします。 Reload Build Download Start Stop Start All Stop All [Model List] 現在アクティブなモデルのリアルタイムコードを生成します。Simulink を未だ起動、実行していない場合にはここで開始してください。生成さ れたコードは、現在アクティブなクライアントに自動的にダウンロード されます。 現在アクティブなモデルのリアルタイムコードをアクティブなクライア ントへダウンロードします。 現在アクティブなクライアントにダウンロードされたリアルタイムコー ド実行を開始します。 現在アクティブなクライアントのリアルタイムコード実行を停止しま す。 現在、接続されている全てのクライアントのリアルタイムコード実行を 開始します。 現在、接続されている全てのクライアントのリアルタイムコード実行を 停止します。 クライアントにロードされるコントローラのリスト。それが現在アクテ ィブなモデルである場合、コントローラは照合印(つまり√)を持ってい ます。オペレーションは 全て開始 、 全て停止 のコマンドを例外と して、現在アクティブなクライアント、上で、現在アクティブなモデル を参照します。 表3 WinCon サーバーのモデルメニューオプション 制御実験装置のピーアィディー http://www.pid-control.com/ 20 WinCon Server's Plot Menu Options WinCon のリアルタイムプロットは、WinCon サーバーのプロット・メニュー(そのコマンドは表 4 を参照)を通 じて管理されます。WinCon のプロット機能についての詳細な情報に関しては、プロット・オンライン・デー タセクションを参照してください。 Plot Menu Option Description 新しいプロットを開きます。利用可能なタイプは次のとおりです: Scope、X-Yグラフ、ディジタルメーターおよび温度計。ディスプレイは Simulinkダイアグラムで定義する必要がありません。 既存のスコープ、ディジタル計測器あるいはSimulinkダイアグラムに定 義された温度計を開きます。 スコープ、X-Yグラフ、ディジタル計測器および温度計のデフォルト特性 をセットするためにプロットプロパティダイアログを開始します。 開いているプロットを全て閉じます。 New Open... Properties... Close all 表4 WinCon サーバーのプロット・メニュー・オプション WinCon Server's Window Menu Options WinCon と関係する他のウィンドウあるいはソフトウェアへのナビゲーションが、WinCon サーバーのウィンド ウ・メニュー・オプション(表 5 のリスト参)により行えます。 Window Menu Option Description WinConサーバー・ツールバーを他のすべてのウィンドウより前面に表示 させます。 MATLABコマンド・ウィンドウを開始します。 Always on Top Matlab Simulink Control Panel External Interface Window [Displays List] Simulinkを開始します。現在アクティブなモデルがあればそのSimulink ブロックを開きます。 Simulinkなしでパラメーター・チューニングをするために、コントロー ルパネル・ウィンドウを開きます。 WinConに他のアプリケーションや外部シンク、ソースを接続することを 可能にするため、外部インターフェース・ウィンドウ(EIW)を開きます。 異なる開始ディスプレイを通じてナビゲートしてください。 表5 WinCon サーバーのウィンドウ・メニュー・オプション 制御実験装置のピーアィディー http://www.pid-control.com/ 21 WinCon Server's View Menu Options WinConサーバー・ウィンドウの外観は、WinConサーバーのビューメニュー・オプション(表6を参照)の使用に よりコントロールできます。 View Menu Option Description Toolbar WinConサーバーツールバーの表示・非表示 表6 WinConサーバーのビューメニュー・オプション WinCon Server's Help Menu Options WinConサーバーのヘルプメニュー・オプションは表7を参照してください。 Help Menu Option Description About WinCon Server... WinCon Serverバージョンおよび製造番号を表示します。 表7 WinConサーバーのヘルプメニュー・オプション 制御実験装置のピーアィディー http://www.pid-control.com/ 22 WinCon Server's Toolbar Buttons WinCon サーバーのツールバー・ボタンから利用できるショートカット一覧が表 8 にあります。 Toolbar Button Description 既存のWinConプロジェクトを開きます。 WinConプロジェクトへ保存します。これは、.wcpファイルへ実行中コン トローラ、プロットおよびコントロールパネルを保存します。.ocpファ イルもプロジェクトの一部として保存できるかもしれません。 Simulink(mdl)モデルあるいはWinCon(.wcl)コントローラライブラリー を開きます。 Simulinkを開始します。現在のモデルに関連したSimulinkダイアグラム がもしあれば開きます。 MATLABを開始します。モデルを現在開いている場合は、そのモデルのデ ィレクトリー内でMATLABを始めてください。 スコープ、ディスプレイ、温度計あるいはX-Yグラフ・ブロックの使用を 通じて、現在の(Simulink)モデルに直接表示されるプロットを開きます。 現在アクティブなクライアント上のWinConコントローラ(.wcl)を開始/ 停止します。 表8 WinCon サーバーのインターフェース・アイコン 制御実験装置のピーアィディー http://www.pid-control.com/ 23 WinCon Server's Keyboard Shortcuts WinCon サーバーで使用可能なキーボードショートカットについては表 9 で説明します。 HotKey Description Ctrl+N 新しいWinConプロジェクトを作成します。 Ctrl+O 既存のWinConプロジェクトを開きます。 Ctrl+S WinConプロジェクトを保存します。 Ctrl+M Simulink(mdl)モデルかWinConコントローラ(wcl)を開きます。 Ctrl+R 現在のモデルを再びロードします。 Ctrl+B 現在のモデル(.wclファイルを生成するために)をビルドします。 Simulinkが未だ実行されてない場合、ソフトウェアを開始します。 現在アクティブなクライアントに、現在のモデル(つまりコントローラ・ ライブラリー・ファイル-.wcl-)のリアルタイムコードをダウンロードし ます。 現在のSimulinkモデルで定義されるプロットを開きます。 Ctrl+D Ctrl+P Alt+Pasuse 接続しているすべてのクライアントのコントローラを開始します。 Pause 接続しているすべてのクライアントのコントローラを停止します。 表9 WinCon サーバーのキーボードショートカット File Extensions Generated and Used by WinCon Server WinCon サーバーは、表 10 にある拡張子を備えたファイルを生成、または使用します。 File Extestion Description .wcp WinConプロジェクト・ファイル .wcl WinConリアルタイムのコントローラ・ライブラリー・ファイル .ocp WinConコントロールパネル(アクティブXを使用して)ファイル .mdl Simulinkモデル・ファイル .m MATLABスクリプト・ファイル 表10 WinCon サーバーによって使用されるファイル拡張子 制御実験装置のピーアィディー http://www.pid-control.com/ 24 WinCon Client's Graphical Interface WinCon クライアントのグラフィカル・インターフェースについては、図 6 をご参照下さい。通常このインタ ーフェースを意識する必要がないので、WinCon クライアント・ウィンドウは通常最小限にされます(デフォル トによって)。WinCon クライアントが動作していることを確認したい場合、このウィンドウを最大化し、その 内容を観察することができます。WinCon クライアント・ウィンドウは、リアルタイムイベントのタイミング セクションで説明されるリアルタイムの実行変数のうちのいくつかを表示します。このウィンドウにより、 あなたはリアルタイムコントローラの状況をモニターすることができます。WinCon クライアントは一度に 1 つのモデルのみを実行することができます。 最も一般に利用される機能は、WinCon クライアントを実行する PC にネットワーク情報を供給するファイル¦ ネットワーク...メニュー・オプションです。WinCon クライアント・ウィンドウから、閾値の選択セクション で説明されるように、十分なプロセッサー時間がフォアグラウンドタスクに分配されることを保証する、閾 値パラメーターを変更することができます。 図6 WinCon クライアント・グラフィカル・インターフェース 制御実験装置のピーアィディー http://www.pid-control.com/ 25 WinCon Client's File Menu Options WinCon クライアントのファイルメニュー・オプションについては、表 11 を参照下さい。 File Menu Option Description Open... WinConコントローラ(つまり.wclファイル)を開く。 Close 現在のWinConコントローラを閉じます。コントローラは、リアルタイム カーネルからそれをアンロードする前に止められます。 接続しているWinConサーバーのリストを表示します。 Servers... Network... Port... Checksum [Recent Controllers List] Exit WinConクライアントを実行中のコンピューター用ネットワーク情報を取 得します。マイクロソフトのWindowsネットワークのダイアログインター フェースを開始します。 クライアントサーバコミュニケーションに使用するTCP/IPポートをセッ トします。デフォルト・ポートは17255です。デフォルト・ポートを使用 する他のソフトウェアを実行している場合のみ、ポート番号を変更して ください。 モデルの128ビットチェックサムを表示します。これはロードしたWinCon コントローラがそのSimulinkブロックと一致することを確認するために 使用します。 最近ロードしたリアルタイムのコントローラ(つまり.wclファイル)のリ スト。 WinCon Clientを終了する。実行中のコントローラは終了前に停止されま す。 表11 WinCon クライアントのファイルメニュー・オプション 制御実験装置のピーアィディー http://www.pid-control.com/ 26 WinCon Client's Control Menu Options WinCon クライアントのコントロール・メニュー・オプションについては、表 12 を参照下さい。 Control Menu Option Description Threshold... Start 閾値(これはフォアグラウンドタスクに分配される最小のプロセッサー 時間)をセットします。実行中のコントローラがあまりにも多くのCPU時 間を使用すれば、WinConクライアントはコントローラを停止します。ク ライアントを終了する場合、閾値の値は常に保存されます。これはプロ ジェクトには保存されません。デバイス・ドライバがさらにフォアグラ ウンドタスクからプロセッサー時間を消費することに注意してくださ い。従って、この閾値は、必ずしも、プロセッサー時間がコントローラ のみで使い果たせる値を反映しているとは限りません。またシステムに よっては、閾値ゼロに設定することで、閾値チェックを使用不能にする ことが必要かもしれません。 WinConサーバーへのデータを流すためのフレームレート[Hz]。WinConク ライアントは、データ・ストリーミングをネットワーク上で、より効率 的にするためにデータを 構造 で流します。このレートは、データが 収集されるサンプリングレートとは異なります。それはコントローラの サンプリングレートに依存します。 リアルタイムコントローラのパフォーマンスを測定するために使用する WinConオプションを開始します。このオプションをデフォルトで設定し ておくとWinConクライアントは、サンプリング間隔、平均周期、最大・ 最小消費時間、フォアグラウンド時間などのリアルタイムのデータを表 示するでしょう。このオプションを選択しない場合、計算に要する負担 を減らし、あなたのリアルタイムコントローラの待ち時間が減少します。 リアルタイムコントローラを開始 Stop リアルタイムコントローラを停止 Frame Rate... Measure Performance.. 表12 WinCon クライアントのコントロール・メニュー・オプション WinCon Client's View Menu Options WinCon クライアント・ウィンドウの外観は表 13 にあるように、WinCon クライアントのビューメニュー・オ プションによってコントロールされます。 View Menu Option Toolbar Status Bar Description ツールバーの表示・非表示 状態バーの表示・非表示 表13 WinCon クライアントのビューメニュー・オプション 制御実験装置のピーアィディー http://www.pid-control.com/ 27 WinCon Client's help Menu Options WinCon クライアントのヘルプメニュー・オプション詳細は、表 14 に記述があります。 Help Menu Option Description About WinCon Client.... WinCon Clientのバージョンを表示 表14 WinCon クライアントのヘルプメニュー・オプション WinCon Client's Keyboard Shortcuts WinCon クライアントで使用可能なキーボードショートカットについては表 15 に説明があります。 HotKey Description Ctrl+O WinConコントローラ(.wcl)を開きます。 Ctrl+C 現在のWinConコントローラを閉じます。 Pause 実行中のWinConコントローラを停止します。 表15 WinCon クライアントのキーボードショートカット WinCon Client's Displayed Statistics 図 6 に示したように、WinCon クライアント・ウィンドウは 2 部から構成されます。左手側は、WinCon サーバ ー中でプロット可能な、ロードした WinCon コントローラに定義された変数をすべて表示します。右側は、 WinCon クライアントによって、リアルタイムコントローラ実行と関係する統計値を表示します。これらの統 計値は、コントローラのリアルタイムパフォーマンスの評価に重要な情報を供給します。統計パラメーター は、下記、表 16 に記述されます。さらに、これらの統計値の多くは、時系列にそれらの変化を追跡するため、 WinCon サーバーでプロットできる変数として利用可能です。変数をプロット用に選択する場合、これらの「実 行」変数は.performance ツリーからアクセス可能です。 制御実験装置のピーアィディー http://www.pid-control.com/ 28 Displayed Statics Description Sampling Period Simulinkオプションの中で指定する目標のサンプリング周期。 Min.Recommended Sample number 計算時間TCと所定の閾値に基づいた、推奨される実行コントローラの最小 サンプリング周期。コントローラをこのレートより速く実行すると、フ ォアグラウンド時間(TF)が指定した閾値以下に落ちて、コントローラを止 める原因となるでしょう。 コントローラ実行中の経過時間。この値がストップウオッチなどにより 計測した、実際の経過時間と一致しない場合、PCはコントローラ用に指 定したサンプリングレートを保持するほどは十分速くないということに なります。 サンプル時間中、得られたサンプルの整数。 Sampling interval 他に依存しない時間ソースにより測定される瞬間のサンプリング周期。 Sample time Average Period サンプル数上の実際のサンプリング間隔の平均。 Max.Computation Time Min.Foreground Time コントローラ実行中に観察される最大の計算時間(TC_max)。これは、最悪の ケース計算遅れの基準を与えます。 コントローラ実行中に観察される最小のフォアグラウンド時間(TF_min)。 表16 WinCon クライアントで表示される統計値 制御実験装置のピーアィディー http://www.pid-control.com/ 29 Generating Real-Time Code モデルをリアル・タイム実行する前に、最初にリアルタイムコードを生成しなければなりません。WinCon サ ーバーは、リアルタイムコードを生成するためにリアルタイムワークショップを使用します。 WinCon Link and WinCon Menu WinCon サーバーをインストールした後、コンピューターを再起動すると WinCon リンク・アイコンは図 8 の中 で示されるように、自動的にウインドウズ・システム・トレー内に(時計隣り)現われます。WinCon サーバ ーをインストールすると、自動的にスタートアップに WinCon リンクを登録します。WinCon リンクは、 (図 9 の中で図示されるように、Simulink ウィンドウ・メニューバーに WinCon という新しい Simulink メニューを 作成します。この WinCon メニューにより Simulink ブロックダイヤグラムからシームレスにリアルタイムコ ードを生成し実行することができます。WinCon メニュー・オプションについては、表 17 を参照下さい。 図8 WinCon リンク・アイコン 図9 Simulink 中の WinCon メニュー 制御実験装置のピーアィディー http://www.pid-control.com/ 34 WinCon Menu Option Description Start リアルタイムコントローラ(つまり.wclファイル)開始します。 Stop 実行中のリアルタイムのコントローラを停止します。 New Plot... Open Plot... Options... Build Download Clean Set WinCon Options 新しいプロット・ダイアログ・ボックスを開きます。WinConスコープ、 X-Yグラフ、ディジタルメーター、温度計などでデータをプロットしブロ ックダイヤグラム中の任意のSimulinkブロックの出力をモニターできま す。 wctools/Extra Sinksライブラリーからコントローラブロック線図で定義 されたSimulinkスコープ、ディスプレー、温度計、WinCon X-Yグラフを 開きます。 リアルタイムワークショップの設定を行うためにダイアログ・ボックス を開きます。Simulinkウィンドウ・メニューバー中で、Tools¦Real-Time Workshop¦options...のメニュー・アイテム・ツールを選択するのと同じ です。 Simulinkブロックダイヤグラムと等価なリアルタイムコントローラ・コ ード(つまり.wclファイル)を生成、コンパイル、リンクします。 WinConサーバーが接続されている現在アクティブなWinConクライアント へリアルタイムコントローラ・コードをダウンロードします。 ビルドコマンドにより生成されるファイルがすべて置かれる一時的編集 ディレクトリーを削除します。この機能はクリーンビルド(つまり「ゼロ からの」)を強要します。通常のビルドは最後に行われたビルドから変更 された関数だけを再ビルドするため、有用な機能といえます。 しかしながら、時々、これらの機能はうまく機能せず、すべてを再コン パイルする必要があるかもしれません。こういった場合、単に、このClean コマンドをクリックし、介在するファイルをすべて削除し、かつ必要な ファイルをすべて再コンパイルし直すようにしてください。 このメニュー・オプションを選択すると、リアルタイムワークショップ・ オプションを自動的にあなたのシステムに対応するWinConデフォルトへ 設定します。 表17 WinCon メニュー・オプション 制御実験装置のピーアィディー http://www.pid-control.com/ 35 Setting Real-Time Workshop Options Simulink からあなたの WinCon のリアルタイムのコントローラ・コードを構築する前に、リアルタイムワーク ショップ・オプションを適切に設定する必要があります。WinCon は、すべての新しい Simulink ダイアグラム が適切なオプションを持つようにデフォルト・オプションを設定します。したがって、このステップは通常 不要です。表 17 にあるように、Simulink のウィンドウ・メニューバーからメニュー・オプション WinCon¦Set WinCon オプションを用いても自動的に適切な RTW 設定が行えます。しかしながら、このセクションはそれら が正確にセットされない場合の重要なセッティングを概説します。常に希望のサンプリング周期を必ずセッ トしてください。 WinCon を使用して構築される Simulink モデルを設定するために Simulink ウィンドウ・メニューバーから、 WinCon¦Options...を選択してください。このコマンドは図 10 と同様のダイアログ・ボックスを開きます。 リ ア ル タ イ ム ワ ー ク シ ョ ッ プ ・ パ ラ メ ー タ ー も Simulink ウ ィ ン ド ウ ・ メ ニ ュ ー バ ー か ら Simulation¦Simulation parameters... Ctrl+E オプションによってアクセスすることができます。 図 10 リアルタイムワークショップ設定ダイアログ 表 18 の中で示される次のリアルタイムワークショップ・セッティングは、あなたがリアルタイムコードを生 成したい Simulink ダイアグラムの中でセット(そして保存)する必要があります。不適当なセッティングは WinCon によるリアルタイムコード生成失敗の原因となります。 制御実験装置のピーアィディー http://www.pid-control.com/ 36 RTW Setting Description System target file (Real-Time Workshop Tab) 図10の中で示されるように、ターゲット言語コンパイラー・ファイルを wincon.tlcに選択します。wincon.tlcファイルは、例えば次のフォルダ の下で見つけることができます:C:¥MATLAB701¥rtw¥c¥Wincon¥。 Template makefile (Real-Time Workshop Tab) Make command (Real-Time Workshop Tab) Solver Fixed-Step Size (Solver Tab) ウインドウズ2000/XP下で実行されるWinConクライアントのコードを生 成するには、図10で示されるようにwc_default_tmfを選んでください。 図10の中で示されるように、make_wcを選んでください。 図11の中で示されるように、希望のサンプリング周期TS(秒で)に設定して ください。サンプリング周期を変更するとリアルタイムコードをリビル ドする必要があることに注意してください。 Solver options (Solver Tab) 統合方法の選択は、ある場合、コントローラに依存します。固定ステッ プ統合方法のみがサポートされます。ode1(オイラー)方法を通常、使用 します。 シングルタスキングへのセット Solver Mode (Solver tab) 表 18 リアルタイムワークショップ設定 制御実験装置のピーアィディー http://www.pid-control.com/ 37 図 11 リアルタイムワークショップの Solver タブオプション Setting Simulink Options Simulink からあなたの WinCon リアルタイムコントローラ・コードを生成する前に、さらにリアルタイムコー ドを生成したいモデルの Simulink セッティングを次のように確認する必要があります。 □Simulation ¦ External.。Simulink ウィンドウ・メニューバーから Simulation ¦ External オプションが チェックしてあることを確認すること。ノーマルを選択している場合、Simulink は WinCon サーバーに よりリアルタイムコードを通信する代わりに単にシミュレーションを実行します。 □External Target Interface. Simulink ウィンドウ・メニューバーから、Tools ¦ External mode control panel... ¦ Target interface..を選択すると External Target Interface ウィンドウを呼び出します。 外部インターフェース用の MEX ファイルが図 12 で示されているように:wc_comm にセットしてあることを 確かめてください、 制御実験装置のピーアィディー http://www.pid-control.com/ 38 図12 外部ターゲットインターフェース Real-Time Code Generation コントローラ・リアル・タイム・コードを生成する前に、あなたがリアルタイムに実行したいダイアグラム の、Simulink とリアルタイムワークショップ・オプションを リアルタイムワークショップ・オプションと Simulink オプションの設定 章を参照し、最初にセットし確認する必要があります。 その後、WinCon のリアルタイムコードは Simulink ウィンドウ・メニューバーから図 13 で示されるように WinCon ¦ Build アイテム選択により生成することができます。 図13リアルタイムコードの生成 ビルド手順はWinConコントローラ・ライブラリー(つまり.wcl)ファイルを生成します。コード生成および コンパイルが完了すると、MATLABウィンドウに.wclファイルが作成されたことを示すメッセージが現われ ます。例えば、q_sineモデルの場合、出力されるメッセージは次のとおりです :### Created executable: q_sine.wcl 制御実験装置のピーアィディー http://www.pid-control.com/ 39 ### Successful completion of Real-Time Workshop build procedure for model: q_sine ビルド手順が完了した後に、それを実行可能である場合、WinConサーバーは自動的にWinConクライアント に生成されたコントローラ・ファイル(つまり.wcl)をダウンロードします。必要であれば、 異なるWinCon クライアントにWinConサーバーを接続する方法について のセクションを参照してください。 Restrictions on Real-Time Code WinConがユーザ定義によるブロックと同様に非常に幅広いSimulinkブロックのスコープをサポートしている 一方、いくつかの制限がリアル・タイムに使用するSimulinkダイアグラム上にあることに注目することが重要 です。このセクションは、より重要な制限のうちのいくつかを説明します。 Calling Win32 Functions in Real-Time Code すべてのプラットフォームにおいて、WinCon は、C 言語で書かれた、ユーザ定義による S ファンクションを サポートします。特にカスタム・ハードウェアと接続する場合、この能力はとても有用です。しかしながら、 リアルタイムコードが、リアルタイムカーネル環境(本質的にウインドウズ下に埋められたオペレーティン グ・システム)中で実行されるので、ウインドウズ・オペレーティング・システム関数は呼び出すことができ ません。例えば S ファンクションコードが異なる(隠された)オペレーティング・システム中で実行されるの で、MessageBox のような関数は利用できません。 全ての機能をフル使えないなどの制限を受けるかもしれませんが、ウインドウズ 2000/XP では、いくつかの Win32 関数は Win32 環境下であなたの便宜のためにエミュレートされます。RTX 5.1 で利用可能な機能の完全 なリストが表 19 にあります。呼び出しのための経過時間が 5 マイクロセカンド未満である場合、 「Deterministic」という印が関数に付けられています。実行を確実にするために、確定的でない関数はモデ ルの開始時あるいは終了時のみに呼び出すべきです。 制御実験装置のピーアィディー http://www.pid-control.com/ 40 Plotting On-Line Data WinCon はリアル・タイム実行するモデルからのライブデータをあなたがプロットできるようにします。 オ ン・ライン・データの保存 セクションに記述されているように、データはまたディスクに、あるいは MATLAB workspace に保存できます。データ収集はあなたのデータ収集必要条件を満たすよう柔軟に行えます。 WinCon で、データをプロットするか保存するために、あなたのモデルに Simulink スコープブロック、あるい は他の「Sink」も含む必要はありません!任意の Simulink ブロックの出力は WinCon サーバーのプロットと保 存メニューから利用可能です。 WinCon サーバー・メニューバーあるいは Simulink ダイアグラムメニューバーの WinCon ¦ New Plot...アイ テムから利用可能な Plot ¦ New 選択リストを使用すると希望のデータを視覚化するために最良のタイプのデ ィスプレイを選ぶことができます。次のセクションに記述される WinCon ディスプレイが現在利用可能で す:WinCon スコープ(つまりデータ対時間)、WinCon X-Y グラフ(つまり x 対 y プロット)、WinCon ディジタル 計測器(例えばディジタル電圧計のような)、また WinCon 温度計。 一旦ディスプレイのタイプを選択すれば、リアル・タイムに表示したいすべてのモデル変数(s)を選択するこ ともできます。 Quanser X-Y グラフまたは温度計と同様にあなたのモデルで Simulink スコープおよび(または)ディスプレイ を定義している場合、それらにもアクセスすることができます、そして WinCon サーバー・メニューバーから Plot ¦ Open... 選択リストか、Simulink ダイアグラムメニューバーから WinCon ¦ Open Plot... アイテ ムを使用してそれらをプロットできます。WinCon サーバーからそれぞれ、WinCon スコープ、ディジタル計測 器、X-Y グラフ、または温度計、Quanser X-Y グラフおよび温度計にアクセスできます。"Extra Sinks"セク ションに記述されているように、Quanser X-Y グラフと温度計は Extra Sinks サブシステムの一部として Simulink ライブラリー・ブラウザーの WinCon ツールボックスにあります。 WinConディスプレイはWinConコントロールパネルのように)作成し変更することができます。 しかしながら、 そのディスプレイはコントローラを実行していないときに開くことを推奨します。 任意の WinCon ディスプレイ上で右クリックすると、WinCon ディスプレイの最も有用なメニュー・オプション へ迅速なアクセスできます。さもなければ WinCon ディスプレイのメニューバーから利用可能です。 WinCon ディスプレイとコントロールパネルは WinCon プロジェクトの一部として保存されます。それらは WinCon プロジェクトからロードされる場合、名前によりそれらの変数かパラメータを関連づけます。従って、 使用された変数かパラメータ名が変更されていないとすれば、より古いダイアグラムを使用して設計された WinCon プロジェクトを再びロードする場合、Simulink ダイアグラムを変更し、ディスプレイ(コントロール パネルと同様に)を使用し続けることは可能です、 WinCon Scope 制御実験装置のピーアィディー http://www.pid-control.com/ 54 標準的な WinCon スコープは図 28 の中で描かれています。それは、リアル・タイムに実行されるコードから 収集されたデータを表示します。WinCon スコープをどのように開くか、作成するかについては"オン・ライン・ データをプロットする"セクション参照してください。 図17 WinCon スコープ 図 17 で見られるように、デフォルト・プロットの背景は黒です。しかしながら、インクを節約するために、 WinCon スコープ(WinCon X-Y グラフと同様に)から印刷されたプロットは、常に黒いテキストおよびラインを 備えた白い背景となります。表 21 は、WinCon スコープの内容を印刷する方法について記述します。図 28 で 例証されるように、プロットされているそれぞれの信号に対応するスコープ説明文は個別の窓に常に表示さ れます。 表 24 で説明されるように、説明文ウィンドウを表示するには WinCon スコープメニューバーから Window ¦ Legend を選択します。 過度に長い説明文表示を回避するために、Simulink モデルからの変数/信号名は、説明文ウィンドウに適合す るように切り詰められます。多くの場合では、長円が、名前のどの部分が削除されたか(通常、干渉するサブ システム名の部分)示します。変数/ブロック名それ自身が、(つまり階層なしで)非常に長い時にのみ、名前 自体が切り詰められます。 WinCon スコープ色およびフォント・ツールバーは標準のマイクロソフト・ウインドウズ色選択およびフォン ト・選択インタラクションをそれぞれ使用します。その結果、ユーザーはそれらをセットすることができま す。ドキュメントへ WinCon スコープの内容を含める迅速かつ容易な方法は、スコープメニューバーから Edit ¦ Copy アイテムを使用することです。このオペレーションは、後にペーストするために、クリップボードに 制御実験装置のピーアィディー http://www.pid-control.com/ 55 現在のプロットのビットマップをコピーします。スコープ上のプロットについては、WinCon スコープメニュ ーバーから File ¦ Variables... を選択し Simulink ダイアグラム(実行するコードに対応する)の任意のブロ ックの出力を選ぶことができます。以下表 21 にすべての WinCon スコープのファイルメニュー・オプション を記述します。 File Menu Option Description Save "オン・ライン・データを保存する"セクションの中で説明されるように、 収集したデータを保存するためのサブメニューを開きます。 ブロック(Simulinkダイアグラムから)のどの出力をプロットするかを選 択するリストを開きます。 白い背景および黒いテキスト、およびラインで、WinConスコープ内容を 印刷します。 WinConスコープを閉じます。 Variables... Print... Close 表21 WinCon スコープのファイルメニューオプション WinCon スコープの Update メニュー・オプションについては、表 22 に記述されています。 Update Menu Option Description Real-Time Freeze Plot Freeze All Plots Frequency ... チェックすると、このオプションは描画の終わりにプロットを時間ゼロ に戻し、新しいデータの描画を再開します。 もしリアルタイムのプロット実行中に選択すれば、このオプションはプ ロットトレースを直ちに停止(フリーズ)させます。サンプリングされた データの完全な範囲をプロットします。このモードは固定モードと呼ば れます。 もしリアルタイムプロットを実行していないときに選択すれば、プロッ トは固定スィープモードあるいは1回限りのモードとなります。この場 合、コントローラを開始する時、プロットはバッファーに完全なデータ を収集し、次に、フリーズするでしょう。 チェックすると、このオプションは、すべてのプロットに「フリーズプ ロット」コマンド(上に記述された)を同時に適用します。 プロット・サンプリング周波数(あるいは周期)を選択するためにダイア ログ・ボックスを開きます。プロット・サンプリング周波数はデータが リアルタイムのディスプレイのみのために10分の1にされる周波数です。 それは効率的なプロットのために使用され、プロットがフリーズされる か保存されるときに表示されたデータに影響しません。プロットがフリ ーズされるか保存される場合、データは縮小されずに、コントローラの サンプリング周波数(プロット周波数と異なる)で収集されたデータを反 映します。 制御実験装置のピーアィディー http://www.pid-control.com/ 56 Buffer ... 各プロットのためにデータがバッファーされる時間の連続。 表22 WinCon スコープのアッデート・メニュー・オプション WinCon スコープ上のプロットが縮小されることに注目することは重要です、しかしこれはリアルタイムモー ド中でのみです。言いかえれば、収集されたデータは、描画されるピクセル数を最小限にするレートで自動 的に表示されます。このレートは、プロット・サンプリング周波数、あるいはデシメーション周波数として 知られています。このデシメーションは、リアルタイムのデータストリームにプロットが遅れずについてい くことができることを保証し、かつどんな瞬間でも、開くことができるプロットの数を最大限にするために 慎重に行われます。しかしながら、このデシメーションはリアルタイム表示中にエイリアシングするプロッ トに帰着するかもしれません。したがって、プロットが誤って解釈されないように、リアルタイムモードに 表示されるデータ時間の尺度の選択に注意しなければなりません。 WinCon クライアントがデータを縮小して、WinCon スコープへそれを流している場合、さらに、それはコント ローラのサンプリング周波数で保存変数用データを収集します。例えば、コントローラ・サンプリング周波 数が 1kHz で、プロット・サンプリング周波数が 200Hz である、と仮定してください。WinCon クライアントは、 データを 1 ミリセカンドごとに収集しますが、リアルタイムプロットの間、WinCon スコープへすべて 1/5 ポ イント毎のデータを送るでしょう。しかしながら、プロットが停止すると直ぐに、そのデータは保存されま す。WinCon クライアントはスコープへ 1kHz で収集したデータをすべて送信します。したがって、プロットが 停止して直ぐに、それはすべての利用可能なデータでそのディスプレイを描き直します。プロットのサンプ リング周波数における関連する影響がもしあればそれは消滅します。プロット・バッファーが保存される場 合にも同じプロセスが生じます。利用可能なデータはすべて 1kHz のサンプリング周波数で収集され、ディス クに保存されます。 従って、データはリアルタイムプロット中の一時的なデシメーションにより失われることはありません。 プロットに表示されるデータ量がかなり膨大になりうる(何十万ものポイント)ので、プロットの際、WinCon スコープは迅速なデータ圧縮を実行します。その結果、(非常に)多くのデータ・ポイントは速く効率的に扱 われます。 WinCon スコープの Axis メニュー・オプションについては、下記表 23 に詳細があります。この機能を使用し、 ユーザーがプロット軸を変更できます。 制御実験装置のピーアィディー http://www.pid-control.com/ 57 Axis Menu Option Description Auto-Scaled Fixed Auto-Scale Range... Fixed Range... Time... Grid チェックすると、このオプションは自動的に、前のスィープ中に収集し たデータにより、各スィープの終わりにプロットの垂直の(つまりY)軸を スケーリングします。 チェックすると、このオプションはプロットの垂直の(つまりY)軸の目盛 りを固定します。各スィープの終わりに自動スケーリングは実行されま せん。 自動スケーリングに使用される最小のY範囲をセットするためにダイア ログ・ボックスを開きます(一定の信号用のY範囲が0にならないように)。 固定Y軸の範囲をセットするためにダイアログ・ボックスを開きます。 時間軸の時間間隔をセットするためにダイアログ・ボックスを開きます。 この時間枠は、表22に定義されるバッファー持続時間を超過することは できません。固定モードあるいはスィープモードで、図18の中で示され るように、バッファー長未満の時間間隔はスクロール・バーによりユー ザーがデータを依り詳細に検証する事を可能にします。 チェックすると、それは軸にグリッドラインを加えます。 表23 WinCon スコープの軸メニュー・オプション 両方の固定モード(すなわち表 22 に定義されるように固定スィープモードおよび固定モード)において、スコ ープ上でプロットされたデータは縮小されません。また、収集される(リアルタイムコードのサンプリング周 波数で)、すべてのポイントが描かれます。固定スィープモードにおいて、データのバッファに相当するもの は WinCon クライアント(つまりリアルタイムコード)から収集されプロットに表示されます。そのデータを注 意深く検討するために、プロット上の時間の尺度を表 23 の中で言及されているように Axis ¦ Time... ア イテムから変更することができます。 バッファー長より厳密に小さな時間枠は、時間軸用に拡大されるプロットに帰着します。図 18 の中で描写さ れるように、収集したデータの全バッファーがナビゲートできるように、スクロール・バーが、プロットの 一番上に現われます。グラフの上部のスライダーをドラッグずれば、ユーザは収集したデータを詳細に検討 できるでしょう。 制御実験装置のピーアィディー http://www.pid-control.com/ 58 図 18 WinCon スコープ(固定モード) WinCon プロットのウィンドウ・メニュー・オプションは、表 24 にリストされ記述されています。 Window Menu Option Always on top Legend Description WinConスコーププロット・ウィンドウが他のすべてのウィンドウより前 面に表示したい場合に選択してください。 説明文情報を含んでいるウィンドウを開きます。対応する説明文名をク リックすることにより、信号をトレースに使用する、ライン色を変更す ることができます。 表24 WinCon スコープのウィンドウ・メニュー・オプション 制御実験装置のピーアィディー http://www.pid-control.com/ 59 WinCon X-Y Graph 典型的な WinCon X-Y グラフは図 19 の中で描かれています。それは、リアルタイムに実行されるコードから 収集される 2 つの変数(互いに対してプロットされた)を表示します。 WinCon X-Y グラフの開き方、作成する方法については オン・ライン・データをプロットする セクション を参照してください。 図19 Wincon X-Y グラフ(軌跡効果使用による) WinCon X-Y グラフ・メニューバーから e Axis ¦ Trail アイテムを選択していない限り、リアルタイムモード において、X-Y プロットは収集したデータのバッファーの終わりにそれ自体を削除します、 この場合、図 19 の中で表示されているようにプロットは軌跡を残します。 WinCon X-Y グラフ・インターフェースおよび機能性は、 WinCon スコープ セクションに記述された WinCon スコープの操作に非常に似ています。 WinCon Digital Meter 標準的な WinCon ディジタル計測器が図 20 の中で描かれています。それは、ディジタルでリアル・タイムの 実行コードから収集される変数の瞬間の値を表示します。このディスプレイは、ゆっくり変わる変数を正確 にモニターするのに特に役立ちます。値が無限の場合、ディジタル計測器は―INF あるいは+INF を表示します。 WinCon ディジタル計測器の開き方、作成方法については オン・ライン・データをプロットする セクショ ンを参照してください。 制御実験装置のピーアィディー http://www.pid-control.com/ 60 図20 Wincon デジタルメーター Wincon デジタルメーターの Number メニューオプションが表 25 にあります。 Number Menu Option Description Decimal Places... Use Segments Scientific Notation Decimal Format 自動的、あるいは手動で小数位の数を選択するダイアログ・ボックスを 開きます。このオプションは、表示の精度をセットします。 もしチェックすれば7セグメントにより各桁を表示します。さもなけれ ば、各数字は、ツールバーから選択されたテキスト・フォントにより表 示されます。 もしチェックすれば10進フォーマットの代わりに科学的表記法を使用し ます。 もしチェックすれば科学的記数法の代わりに10進のフォーマットを使用 します。 表25 Wincon デジタルメータの数字メニューオプション WinCon ディジタル計測器ウィンドウ内に表示される値も移動させることができます。そうするためには、表 示された数の上でマウス・カーソルを移動してください。マウス・カーソルが水平の 2 本の矢(⇔に似ている) に変わる時、ディスプレイ上で左クリックし、マウスを右か左にドラッグしてください。数字もまた移動す るでしょう。WinCon ディジタル計測器のウィンドウ・メニュー・オプションは、表 26 に下にリストされます。 Window Menu Option Description Always On Top WinConディジタルメーターウィンドウを他のすべてのウィンドウより前 面に表示したい場合に選択してください。 ディジタルメーターのメニューバーを表示するか隠します。 Hide Menu Hide Toolbar ディジタルメーターのツールバーを表示す るか隠します。 表26 WinCon ディジタルメータのウィンドウメニューオプション WinCon Thermometer 制御実験装置のピーアィディー http://www.pid-control.com/ 61 標準的な WinCon 温度計は図 21 の中で描かれています。温度計の水銀レベルは、リアル・タイム実行コード から収集された変数の瞬間の値を反映します。WinCon 温度計は WinCon ディジタルメーターセクション に 記述された WinCon ディジタル計測器のアナログに相当します。このディスプレイは、ゆっくり変わる変数を モニターするのに特に役立ちます。WinCon 温度計を開くか作成する方法については オン・ライン・データ をプロットする セクション参照してください。 図21 WinCon 温度計 WinCon 温度計のメニューオプションについては下記表 27 を参照下さい。 Settings Menu Option Range... Thermometer Colours... Description 温度計範囲(つまり最小および最大の値)をセットするためにダイアログ ウィンドウを開きます。 温度計色を選ぶために標準のマイクロソフト・ウインドウズ色選択ウィ ンドウを開きます。 表27 WinCon 温度計のセッティング・メニュー・オプション Performance Monitoring 制御実験装置のピーアィディー http://www.pid-control.com/ 62 リアル・タイムに実行される各 WinCon コントローラのパフォーマンスは、プロット機能によりどの WinCon ディスプレイ上でもパフォーマンス変数をモニターすることができます。WinCon クライアントの Variables ウィンドウには図 6 にあるように.performance フィールド下にパフォーマンスパラメータが表示されます。 次のパラグラフの中で使用される用語に習熟するために リアルタイムイベントのタイミング セクション を復習しても良いでしょう。 最も重要なコントローラ実行変数のうちの 1 つはサンプル(つまり TE)間で達成される実際のサンプル間隔 を示す、サンプリング間隔です。それは、目標のサンプリング間隔(つまり TS)へできるだけ接近しているべ きです。この変数が目標のサンプリング周期から著しくかけ離れる場合、予定のコントローラ実行が行われ ません。図 22 では、サンプリング間隔のリアル・タイムモニタリングは WinCon ディジタルメーターにより 行えます。 図22 実際のサンプリングタイムのモニタリング 別の重要なパフォーマンスパラメーターは計算遅れ(つまり TC)です。それは、サンプル毎のリアルタイムコ ントローラ・コード実行に PC がどれくらいの時間を必要とするか示します。 TC の最大の値を知ることにより、 ユーザは、 特定の PC 上でそのコントローラを実行可能な最も速いサンプリング周波数を決定できます。 特に、 最大の計算遅れ Max(TF) を知ることとフォアグラウンドタスクの最小時間 Min(TF)の維持を考慮して、以下の 達成可能な最速サンプリングレートに帰着します。 FMAX = 1 / ( Min(TF) + Max(Tc) ) この最大の計算遅れ Max(TF)も WinCon ディスプレイ上でリアル・タイムにモニターすることができ、 これは例えば、例えば WinCon クライアントウィンドウの変数リストの.performance ノード下で Maximum Computation Time とラベルを付けられます。 Saving On-Line Data 制御実験装置のピーアィディー http://www.pid-control.com/ 63 注意:下記表 28 の中で示される次の Simulink ブロックは、性質的に"決定的"ではないため、リアルタイム動 作と互換性をもちません。 これらのブロックは"To ファイル"、および"To Workspace"ブロックです。したがって、それらをリアルタイ ム実行するコントローラダイアグラムに含むことができません(現実に、Workspace に、"To Workspace"ブロ ックは含まれているかもしれません、しかし、それは、WinCon スコープによりプロットされるかもしれない 変数を単に定義します;それは、MATLAB workspace へデータを自動的に保存しません。しかしながら、WinCon X-Y グラフと同様に WinCon スコープも、それらの Simulink ブロックの代案を提示します。以下の表 28 に、 WinCon スコープ(また WinCon X-Y グラフ)のオン・ライン・データの保存に対する解決策を幾つか提示しま す。 Simulink Block Equivalent Wincon Scope (or X-Y Graph) Solution これを機能的に行うために、希望のデータはWinConスコープ(あるいは X-Yグラフ)バッファーの中で取得し、次に、表29に示されるようにWinCon スコープ(あるいはX-Yグラフ)メニューバーのオプションからFile ¦ Save ¦ Save As MAT-file...オプションを使用してMATファイルで保存し なければ成りません。 これを機能的に行うために、希望のデータはWinConスコープ(あるいは X-Yグラフ)バッファーの中で取得し、次に、表29に示されるようにWinCon スコープ(あるいはX-Yグラフ)メニューバーをオプションからFile ¦ Save ¦ Save to Workspace..オプションを使用してMATLAB workspaceへ 保存しなければ成りません。 表28 非リアル・タイム Simulink ブロックおよびWinCon 相当物 WinCon スコープあるいは WinCon X-Y グラフから保存するオン・ライン・データは縮小されません。さらに、 リアルタイムコード用のサンプリング周波数はまた WinCon スコープか X-Y グラフ・バッファーにより 選択したデータが得られる周波数です。 したがって、あなたの WinCon スコープか X-Y グラフのバッファー持続時間が、あなたのデータ収集ニーズを 満たすことができる十分な長さを持っていることを確認する必要があります。 バッファー持続時間は表 22 に示されるように WinCon スコープあるいは X-Y からグラフ・メニューバーから Update ¦ Buffer...オプションによりアクセスできます。 これは WinCon スコープが大量のデータを取り扱えるように最適化する、データの保存に適したオプションで す。 WinCon スコープおよび X-Y グラフは、オン・ライン・データを保存する 3 つの異なる方法を提供します。こ れらの保存方法オプションについては、以下、表 29 に詳細説明があります。それらは WinCon スコープか X-Y グラフ・メニューバーから File ¦ Save アイテムのファイルのサブメニューにリストされます。 File/Save SubMenu Option Description 制御実験装置のピーアィディー http://www.pid-control.com/ 64 Save As M-file... Save As MAT-file... Save To Workspace 表29 このコマンドは、ユーザが選択した名前のM-ファイル(つまり.m拡張子を 備えたスクリプト)へバッファーを用いたデータを保存します。MATLABウ ィンドウでそのM-ファイル名をタイプすると、保存したデータのMATLAB プロットを生成し、モデル名および信号名(例えばq_sine_Scope)から構 成された変数名を使用して、workspaceへ保存した変数を持ってくるでし ょう。 このコマンドは、ユーザが選択した名前のMATファイル(つまり.mat拡張 子を備えたバイナリー・ファイル)へバッファーを用いたデータを保存し ます。その後、そのMATファイルはMATLABロード・コマンドの使用により MATLAB workspaceにロードすることができます。保存されたデータの変 数名は、モデル名、および選択した(例えばq_sine_Scope)ブロック出力 の名から構成されます。 この結果は、MATファイルへ希望のデータを最初に保存し、次に、MATLAB workspaceにそのデータをロードすることと同じです。 WinCon 範囲およびX-Y グラフ・データ救済能力 制御実験装置のピーアィディー http://www.pid-control.com/ 65 Changing Parameters On-Line 実行中コントローラのモデル・パラメーターは Simulink モデル自体か WinCon コントロールパネルを使用し て変更できます。 Simulink ダイアグラム内で変更することができる全てのパラメーターは実行中のコントローラ内で瞬時に変 更することができます。Simulink で、パラメーターを修正するには、あなたがそのパラメーターを変更した いブロック上でダブルクリックして、新しい値をタイプインしてください。あなたが"OK"か"適用"をクリッ クすると直ちに、新しいパラメーター値がリアルタイムコードにダウンロードされその効果を直ちに見るこ とができます!さらに、MATLAB workspace の中で計算された(またはタイプされた)変数は、Simulink ブロッ クの中でパラメーター値として使用することができ、それまた修正できるでしょう。そうするためには、 MATLAB workspace に新しいパラメーター値を入力し、Simulink ウィンドウ・メニューバーから Edit ¦ Update diagram アイテムを選択してください。新しいパラメーター値はリアルタイムコードへダウンロードされるで しょう。さもなければ、Simulink に MATLAB workspace 変数を再度読ませ、かつリアルタイムコードへブロッ ク・パラメーターから生じるどんな変更もダウンロードするため Ctrl+D を押してもよい。 ユーザが Simulink なしでリアルタイムコードを実行を望みかつ、コントローラ・パラメーターを変更したけ れば、WinCon コントロールパネルを使用すると良いでしょう。WinCon コントロールパネルは、Simulink を開 始することなし(インストール無しでも)にコントローラチューニングが行えるように設計されました。 コントロールパネルにより、ユーザはリアルタイムモデル・パラメーターへ制御機能を関連づけることがで きます。ユーザは、WinCon コントロールパネルおよび Simulink の両方を同時に実行できません。WinCon コ ントロールパネルは、あなたがコントローラの生成を完成しており、Simulink なしでそれをチューニングし ている、最終段階用での使用を意図しています。 コントロールパネルから Simulink への接続は存在しないということを心に留めておいてください。したがっ て、あなたがコントロールパネルを使用中に、Simulink ダイアグラムを同時に開けば、Simulink ダイアグラ ム中のパラメーター値はコントロールパネル中のパラメーター値に相当しないかもしれません。 制御実験装置のピーアィディー http://www.pid-control.com/ 66 WinCon Control Panel 図 23 は WinCon コントロールパネルのサンプルです。 図 23 WinCon コントロールパネル WinCon コントロールパネルは ActiveX コントロールを容認します。"WinCon プロジェクト"セクションに記述 されるように、そのコントロールは WinCon ディスプレイのように、ActiveX ファイル(.ocp 拡張子を持つ)と 一緒に WinCon プロジェクトの一部として保存されます。 WinCon ディスプレイと同様に、WinCon プロジェクトをロードする場合、あるいはリアルタイムコードが再び ロードされる(例えば rebuild のために)場合、WinCon コントロールパネルは名前によって再度それらの変数/ パラメーターを関連づけます。 従って、関連する変数名を変えない限り、前の WinCon プロジェクトおよび(または)新しく生成されたリアル タイムコード(つまり.wcl ファイル)に再びロードする場合、Simulink モデルを変更し、 ディスプレイと同様にコントロールパネルを使用することは可能です。 WinCon サーバー4.1 は、さらにプロジェクトがロードされるか、モデルがリビルドされる場合、コントロー ラにそれらの現在の変数値を記述するコントロールパネルを持っています。したがって、コントローラをロ ードするとき、WinCon コントロールパネルはコントローラの中でその初期パラメーター値をセットします。 注意:このアプローチの短所は、単一のWinConクライアントと複数のWinConサーバー構成の場合には現れるか もしれません。このリモートコンフィギュレーションでは、コントローラを既に実行している間、異なるコン トロールパネルを備えたWinConプロジェクトを開くことはできません!しかしながら、通常、1人の学生(1台 制御実験装置のピーアィディー http://www.pid-control.com/ 67 のサーバー)だけが一度に1つの実験(クライアント)に接続します。 Building WinCon Control Panels WinCon コントロールパネルは WinCon ディスプレイのように、すばやく、作成し変更することができます。し かしながら、コントロールパネルは、リアルタイムコントローラを実行していないときに、作成することを お勧めます。 WinCon コントロールパネルを作成するには、WinCon サーバー・メニューバーから Window ¦ Control Panel アイテムを使用します。この操作は空のキャンバスとして、新しいコントロールパネルを開きます。そこに 制御用装置を挿入するには、下記表 30 に記述されるようにコントロールパネル・メニューバーから Window ¦ Design Mode メニューアイテムをアクティブにし、設計モードにあることを最初に確認しなければなりません。 表 30 は WinCon コントロールパネルのウィンドウ・メニュー・オプション一覧です。 Menu Opion Design Mode Menu Toolbar Always On Top Description もしチェックすれば、コントロールパネルは設計モードとなります。そ の後、リアルタイムコードとのコミュニケーションは中断され、コント ロールパネルの制御装置の編集か、または作成することができます。チ ェックしていない場合、実行コードとのパラメーター・コミュニケーシ ョンが復旧します。 コントロールパネルのメニューバーを表示するか隠します。 コントロールパネルのツールバーを表示するか隠します。 コントロールパネルウィンドウを常に前面に表示するかどうかを選択し ます。 表30 コントロールパネルのウィンドウ・メニュー・オプション 表 31 で説明されるように、挿入プロセスを開始するためには、コントロール・メニュー・オプションのコン トロールパネルのを一覧にする Control ¦ Insert Control…¦を使用します。WinCon コントロールパネルが 設計モードにある場合のみこれらのメニュー・オプションが利用可能であることに注意してください。WinCon コントロールパネルのコントロール・メニューは、ユーザが例えば関連する変数・デフォルト値)および供給 するコントロール装置(表 32 にリストされた)の外観(例えばラベル、色)を設定する為に使用します。 制御実験装置のピーアィディー http://www.pid-control.com/ 68 Control Menu Opion Description Insert Control... Delete About... Properties... Associate Variable... あなたが使用したいコントロールのタイプを選ぶ選択リストを開きま す。次に、コントロールに関連する変数を選択するため、Model Parameters 選択ウィンドウ(Associate Variable...メニューアイテムからも利用可 能)を自動的に呼びます。この変数は(1、1) サイズのスカラーでなけれ ばなりません、選択すると、その制御ツールはコントロールパネルの左 上角に挿入されるでしょう、そこから別の位置へツールをドラッグする ことができます。 このオプションはコントロールパネルから選択した制御ツールを削除し ます。Deleteキーを押すのと同じ効果があります。1つのコントロールを 選択するには、コントロールパネルがデザインモードのときにそれをク リックしてください。多数のコントロールを選択するには、コントロー ルパネルがでデザインモードの時、Ctrlキーを押したまま、各コントロ ールをクリックしてください。 選択したコントロールに関する情報ウィンドウを開きます。コントロー ルを選択するには、コントロールパネルが設計モードのとき、それをク リックしてください。 選択した希望のコントロールに対応するControl Propertiesダイアログ ウィンドウを開きます。コントロールを選択するには、コントロールパ ネルが設計モードのとき、それをクリックしてください。各コントロー ルは、それぞれ修正可能なプロパティのセットを持っています。一般的 には、コントロールのプロパティには、外観、色、値範囲、ラベルおよ びその他同種のものなどのアイテムを含んでいます。 Model Parameters選択ウィンドウ(選択したコントロールに関連又は再関 連させるべき変数をその中で選ぶ)を開きます。この変数はサイズ(1、1) のスカラーである必要があります。このためには、適切なコントロール (あなたが編集または変数の関連を変更したい)を選択していることを確 認してください。コントロールを選択するには、コントロールパネルが 設計モードのとき、それをクリックしてください。 表31 コントロールパネルのコントロール・メニュー・オプション WinCon コントロールパネルに現在利用可能な ActiveX コントロールは、表 32 に記述されています。 制御実験装置のピーアィディー http://www.pid-control.com/ 69 Menu Opion Description On/Off Button 2つの値の間の変数を切り替える為のオン/オフ・ボタン。 (QButton) ٛ.Edit Control (別名. QEdit) ٛ.Horizontal Slider (別名. QSlider) ٛ.Vertical Slider (別名. QVSlider) ٛ.Knob Control (別名. QKnob) ٛ.Multiple select (別名. QSelect) ٛ.Picture (別名. QPicture) ٛ.Text ٛ.(別名. QText) 手動で所定の変数に見合う希望の値をタイプインするための入力テキス トボックス。 変数の値を増減するため、ユーザに定義される最小と最大の間の変数値 を設定するための水平のスライダー。 変数の値を増減するため、ユーザに定義される最小と最大の間の変数値 を設定するための垂直のスライダー。 ユーザに定義される最小と最大の間の変数値をセットするためのノブ。 関連する変数にどの値を課すかを選ぶ選択リスト。 ビットマップ、アイコンあるいはメタファイルのような絵を表示します。 ユーザ定義の行端揃え、フォントおよび色によるテキストの表示。複数 行のテキストについては、Text内でCtrl+Enterを押すことによりキャリ ッジリターンが加えられるかもしれません、 表32 コントロールパネルの利用可能なコントロール 一旦希望のコントロールがすべてコントロールパネルに挿入され形成されたら、それらのサイズおよび位置 をセットする必要があります。 個々のコントロールを移動させるには、それぞれを(その上で左クリックすることにより)を選択してコント ロールパネル上の希望の位置へドラッグし、マウスボタンを放してください。グループのコントロールを移 動するには、移動したい複数のコントロールを選択して、コントロールパネル上でそれらを希望する新しい 位置へドラッグして、マウスボタンを放してください。多数のコントロールを選択するには、コントロール パネルが設計モードであるとき、Ctrl キーを押したまま、選択するべき希望のコントロールをクリックして ください。個々のコントロールのサイズを変更するには、それを選択して、サイズ変更カーソルが出力され るように、その角あるいは端のうちの 1 つにあなたのマウス・カーソルを移動させてください。その角か端 を左クリックし、コントロールのサイズを修正するためにマウスをドラッグします。コントロールが希望の サイズになったら、マウスを放してください。 多数のコントロールを分類し配列するには、WinCon コントロールパネルのツール・メニューアイテムを使用 してください。これらのメニュー・オプションは WinCon コントロールパネルが設計モードの状態で、複数の コントロールが選択された場合のみ利用可能であることに注意してください。 最初に選択したコントロールがリファレンスとして作動します。 コントロールパネルのツール・メニュー・オプションは下にリストされ、表 33 に記述されます。 制御実験装置のピーアィディー http://www.pid-control.com/ 70 Tools Menu Opion Description Make Same Width Make Same Height Top Align Bottom Align Left Align Right Align このオプションは選択されたコントロールをすべて最初に選択されたコ ントロールと同じ幅にします。 このオプションは選択されたコントロールをすべて最初に選択されたコ ントロールと同じ高さにします。 このオプションは、最初に選択されたコントロールの上端とすべての選 択されたコントロールの上端を一致させます。 このオプションは、最初に選択されたコントロールの下端とすべての選 択されたコントロールの下端を一致させます。 このオプションは、最初に選択されたコントロールの左端とすべての選 択されたコントロールの左端を一致させます。 このオプションは、最初に選択されたコントロールの右端とすべての選 択されたコントロールの右端を一致させます。 表33 コントロールパネルのツール・メニュー・オプション コントロールパネル上のコントロールをのすべて取り除くにはコントロールパネル・メニューバーから File ¦ Clear を選択してください。 WinCon コントロールパネル上で右クリックするとコントロールを挿入または修正するための 最も有用な メニュー・オプションへ迅速なアクセスができます。さもなければコントロールパネルのメニューバーから のアクセスが可能です。 新しく設計したコントロールパネルに満足ならば、表 30 にあるようにコントロールパネル・メニューバーか ら Window ¦ Design Mode アイテムのチェックを外してデザインモードを終了します。 WinCon コントロールパネルは、今、あなたがリアルタイムコード(例えばコントローラ)の選択したパラメー タを瞬時にチューニングすることを可能にします。その後、あなたの必要条件により、コントロール挿入/編 集プロセスを必要なだけ繰り返すことができます。 制御実験装置のピーアィディー http://www.pid-control.com/ 71 WinCon Projects WinCon プロジェクト・ファイル(.wcp 拡張を持つ)は WinCon サーバー内でセッションを保存することにより 作成されます。そのようなセッションはいくつかのクライアント接続、コントローラ、ディスプレイおよび コントロールパネルを含めることができます。あなたが保存した WinCon プロジェクトを再ロードすれば、全 てのクライアント接続は再構築されます。ダウンロードしたコントローラ、そしてディスプレとコントロー ルパネルを再度開きます。多数のクライアント接続を備えた複雑な WinCon プロジェクトを完全に開くには、 必要な WinCon クライアントがすべてプロジェクトをロードするに先立って実行中であることを確かめてくだ さい。 注意:WinCon 4.1 のためのプロジェクト・ファイル・フォーマットは WinCon 3.2 を含む WinCon の旧バージョ ンと非互換性です。古い WinCon 3.2 ファイルは作動しないため(つまり、適切にロードすることができない)、 リビルドする必要があります。しかしながら、各プロジェクト・コンポーネントのオブジェクトバージョニ ング情報は WinCon プロジェクト・ファイル・フォーマットに加えられています。その結果、WinCon の将来の リリースは、WinCon 3.3 から上位のプロジェクト・ファイルとの後方への互換性を維持することができます。 したがって、非下位互換性の WinCon プロジェクトを維持したければ、視覚的に WinCon 4.1 プロジェクト・ フォーマットでそれらを再生するためにそのプロジェクトの視覚的なレイアウト(例えば WinCon ディスプレ イおよびコントロールパネル)およびセッティングを保存しなければならないでしょう。プロジェクトの視覚 的なレイアウトの保存は、そのプロジェクトの異なる WinCon ディスプレイおよび(または)コントロールパネ ルのスクリーンキャプチャーをとるか、今までどおりの見開きができる、より古い WinCon と一緒に別のマシ ン上でそのプロジェクトを保持することにより行えるかもしれません。 Wincon4.1 ではより多くの情報が WinCon プロジェクトに保存できます。プロジェクトも異なるディスクへ場 所へそれらをポータブルにするために改訂されました。この変更は、絶対的なパスの代わりに、相対的なパ ス(プロジェクト・ファイルの場所へ相対的に)として WinCon モデル・パス(プロジェクト・ファイル中の)を 保存することにより行えるようになりました。従って、WinCon プロジェクトを共有することができます。 WinCon プロジェクトを異なるディスク(場所)へコピーするか移動するには、WinCon プロジェクトと共にそ れに対応する.wcl モデル・ファイルと.ocp ActiveX コントロールパネル・ファイルを目的の場所へコピー又 は移動してください。 WinCon サーバーを開始し、WinCon サーバー・メニューバーから File ¦ Open... アイテムを選択するか、ま たはウインドウズエクスプローラーから対応する.wcp プロジェクト・ファイルをドラッグし、WinCon サーバ ー・ウィンドウ上にそれを落とすかして WinCon プロジェクトを開くことができます。WinCon サーバー・ウィ ンドウが開いていない場合、対応するプロジェクト・ファイル(つまり.wcp extensi を備えた)上でダブルク リックすることにより、WinCon プロジェクトを開くことができます。 制御実験装置のピーアィディー http://www.pid-control.com/ 72 The WinCon Toolbox WinCon ツールボックスライブラリーにアクセスするために 2 つの方法があります。第 1 の方法は MATLAB プロ ンプトで下記コマンドをタイプすることです。 wctools このコマンドは図24の中で示されるようなWinConツールボックスを開きます。 図25の中で描かれるように、 WinConツールボックスにアクセスする別の方法は標準のSimulinkライブラリー・ブラウザーによるものです。 Simulink ウィンドウののライブラリー・ブラウザー・ボタンを選択し、次に WinCon ツールボックスアイコン を選ぶことで、ツールボックスを開けます。 図 24 で見られるように、WinCon ツールボックスは Quanser ツールボックスと追加の Extra Sink へのアクセ スを提供します。Quanser ツールボックスに準備されているブロックは全て WinCon 中で変更なしに使用する ことができます。 制御実験装置のピーアィディー http://www.pid-control.com/ 73 図 25 Simulink ライブラリ内の WinCon とQuanser ツールボックス The Quanser Toolbox Quanser ツールボックスについては、 ハードウェアへの接続−Quanser ツールボックス セクションに詳細 に記述されています。Quanser ツールボックスは、単なるハードウェア・インターフェース以上のものを含ん でいます−それは基本的な I/O から S 字生成および工業用ロボット用の順運動学・逆運動学までの関数の全 ライブラリーです! Extra Sinks Sink は入力をとりますが、一般に出力ポートを持たない、スコープと同様の Simulink ブロックです。Quanser は Simulink 環境を増強するために追加の Sink を提供します。 これら sink にアクセスするためには WinCon ツールボックス内の Extra Sinks 上でダブルクリックしてくだ さい。Extra sink は図 26 の中で例証されています。現在、温度計および X-Y グラフの2種類の Sink が提供 されています。 制御実験装置のピーアィディー http://www.pid-control.com/ 74 Thermometer 温度計ブロックは、WinCon 温度計セクションに記述されたものと同様の温度計ディスプレイを定義します。 温度計ブロックのダイアログ・ボックスは図 27 中で示されます。 温度計を WinCon サーバー内で開くと、ユーザは最高と最低温度計値を設定できます。 WinCon サーバー・ツールバー上でプロット・ボタンを押すと、温度計はプロット・リストに現れるでしょう。 制御実験装置のピーアィディー http://www.pid-control.com/ 75 X-Y Graph X-Y グラフ・ブロックは、WinCon X-Y グラフセクションに記述されたそれと同様に WinCon の X-Y グラフ・デ ィスプレイを定義します。X-Y グラフ・ブロックのダイアログ・ボックスは図 94 中で示されます。WinCon サ ーバー中で X-Y グラフを開くと、ユーザは X と Y の軸の範囲をセットできます。WinCon サーバー・ツールバ ー上で、プロット・ボタンを押すと、X-Y グラフはプロット・リストに現れるでしょう。 制御実験装置のピーアィディー http://www.pid-control.com/ 76 Interfacing to Hardware: The Quanser Toolbox ハードウェアと接続して使用する際に、リアルタイムパッケージはその威力を発揮します。幸運にも、WinCon は、Quanser Consulting の MultiQ-3、MultiQ-PCI および Q8 データ収集カードを含む(もちろん)、様々なデ ータ収集カードと共に使用することができます。 。ハードウェアへのアクセスは単にあなたの Simulink ダイ アグラムにブロックを置くだけとなりました。いくつかの追加のブロックと同様に Quanser 製品のためのブ ロックも、このセクションに記述される Simulink により統合された Quanser ツールボックスライブラリーに おいて利用可能です。 Quanser ツールボックスライブラリーにアクセスするために 2 つの方法があります。第 1 の方法は MATLAB プ ロンプトで下記コマンドをタイプすることです: qctools このコマンドは図 26 の中で示されるような Quanser ツールボックスを開きます。図 25 の中で描かれるよう に、Quanser ツールボックスにアクセスする別の方法は標準のライブラリー・ブラウザーによるものです。 Simulink ウィンドウのライブラリー・ブラウザー・ボタンをクリックし、次に、Quanser ツールボックスア イコンをクリックすることにより、それにアクセスすることができます。 前に、 簡潔に言及したように、 QuanserツールボックスライブラリはQuanser ConsultingのMultiQ-2、 MultiQ-3、 MultiQ-PCI および Q8 データ収集カードを使用するために必要とする Simulink ブロックをすべて含んでいま す。ここにはまたエクストラソース(例えばシグモイド、シーケンス)、エスクトラシンク、シリアルドライ バー、データ転換ブロック、便利な離散化伝達関数ブロックなど、機能性を増加させるさらに追加のブロッ クがあります。 何が利用可能であるか必ず確かめてください−それによりあなたの時間を省くことができます! 制御実験装置のピーアィディー http://www.pid-control.com/ 77 Quanser Consulting Q8 Series Q8 と接続するために使用するブロックセットを開くには、Quanser ツールボックス中の Q8 シリーズ・ブロックの上でダブルクリックしてください。このブロックは左側上に図 示されています。このブロック上でダブルクリックすると、下記、図 45 と同様のウィン ドウを開きます。 ここにはディジタル入力および出力、アナログ入力および出力、エンコーダ入力、ウォッ チドッグタイマーおよびハードウェア時間ベース他Q8 データ収集システムの機能的なコンポーネント各々の 主なブロックがあります。 図 45 Q8 ライブラリー 各ブロックには、便宜的に使用できる広範囲に渡るオンラインヘルプが付属することに注目してください。も し望めば、ブロックは、同じSimulinkダイアグラム中の複数のQ8カードと接続することができます。各ブロッ クについては次のサブセクションで解説していきます。 Analog Input アナログ入力ブロックは、Q8 上の AD 変換器と接続するために使用します。アナログ入力ブロックは、一度に 複数チャンネルの読み取りに使用できます。この場合、アナログ入力ブロックからの出力は各アナログ入力 読み取りへの 1 つのエントリーを備えたベクトルになるでしょう。アナログ入力パラメーターを変更するに は、あなたの Simulink ダイアグラムにそれをドラッグ後、ブロック上でダブルクリックしてください。図46 の中で示されるダイアログ・ボックスが出力されるでしょう。 制御実験装置のピーアィディー http://www.pid-control.com/ 78 図46 Q8 アナログ入力パラメータ 第 1 のフィールドは、あなたがどの Q8 I/O カードを使用するかを指定します。Q8 カードはメモリマップ PCI カードです。第 1 のカードは WinCon によってボード 0 とされます。次のカードはボード番号 1 とされます。 従って、あなたのシステムに複数の Q8 カードがある場合は、あなたが望むカードのボード番号を指定してく ださい。ボード番号と、I/O カードを挿すスロットの一致は、コンピューター製造業者に依存するので、どの カードがボード番号 0 か、また、どのカードがボード番号 1 を決める最も容易な方法は、例えば、各ボード 上に一定の異なる電圧を出力することです。どのカードが、どのボード番号かは、その後、電圧計を使用し て簡単に確認できるでしょう。すべての Q8 ブロックはボード数パラメーターを持っています。 第 2 のフィールドは、あなたが読み取りたいアナログ入力チャンネル(すなわちチャンネル)を識別します。 Q8 端子台を使用している場合、シングルエンドアナログ入力チャンネルのうちの 1 つを読むために 0∼7 まで スカラー番号を指定してください。複数のチャンネルを読む場合はその順番を指定してください。チャンネ ルは、それらがベクトルに出力される順に読まれます。例えば、[5 2]と入力すると、アナログ入力ブロック はアナログ・チャンネル 5 を最初に読み、次に、アナログチャンネル 2 を読みとります。アナログ入力ブロ ックからの出力は第 1 の要素がアナログ・チャンネル 5 に相当し、また、第 2 の要素がアナログ・チャンネ ル数 2 に相当する順番となるでしょう、そこでの出力単位はボルトです。 ほとんどの場合、小さい順にチャンネルの指定を希望されるでしょう。その場合、MATLAB のベクトル簡易表 記法':'が使用できます。例えば、アナログ・チャンネル 2∼4 を読むためには Channel(s) to Use field.に 単に 2:4 と入力します。 第 3 のパラメーターはサンプル時間です。すべての Q8 ブロックはそれらが離散時間システムで使用できるよ うに、サンプル時間パラメーターを含んでいます。デフォルト・サンプル時間は、あなたのシステムのベー 制御実験装置のピーアィディー http://www.pid-control.com/ 79 スサンプリングレートにセットされます。マルチレートシステムの開発をしていなければ、このデフォルト を変更する必要がないでしょう。simget(bdroot"FixedStep")式は実数としてベースサンプリング周期を返し ます。したがって、ベースサンプリング周期の倍数を得るためにこの式に整数を掛けることができます。さ もなければ、単にこのブロック用のサンプリング周期に対応する実数を入力することができます。サンプル 時間は正のスカラー値でなければなりません。 第 4 のパラメーターは'Read after conversion complete'.です。このオプションにチェックすると、 Q8 ドライバーは、全ての A/D 変換を終えた後 A/D オンボード FIFO から A/D 変換結果を読みとります。 このオプションがチェックされない場合、Q8 ドライバーは FIFO を待たずに変換結果が利用可能な段階で直ち に読みとります。変換完了後に読みとりを行うのは、わずかに遅れが生じる一方、このオプションは変換時 の A/D チップのディジタル・ロジックの使用を回避するので、わずかによりよいノイズパフォーマンスを産 出します。 第 5 のパラメーターは'Simultaneous Sampling'です。このオプションがチェックされる場合、2 つの A/D チ ップはすべてのチャンネルの同時サンプリングを保証する、共通の外部クロックにより駆動されます。 第 6 のパラメーターは'Output Volts'. です。 このオプションがチェックされる場合、アナログ出力ブロックの出力はボルト単位で出力されます。このオ プションがチェックされない場合、出力は A/D チップからの生の 14 ビットの変換結果となります。 最終パラメーターはシミュレーション入力チェックボックスです。このパラメーターはリアルタイムコード に影響しません。これはシミュレーションのみに使用します。このボックスにチェックすると、アナログ入 力ブロックは入力ポートです。通常のシミュレーション中に、この入力は A/D 分解能により量子化され、出 力ポートに供給されます。したがって、プラントのモデルをこの入力に接続し、量子化影響を考慮に入れて システムのパフォーマンスをシミュレートできる でしょう。 Analog Output アナログ出力ブロックは、Q8 データ収集カード上の DA コンバーターとのインターフェースに使用されます。 アナログ出力ブロックは同時に複数のアナログ出力処理用に使用できます。 この場合、アナログ出力ブロックへの入力は記述するアナログ出力毎に1つのエントリーのベクトルでなけ ればなりません。 ダイアグラムの中に複数のアナログ出力ブロックを入れることもできます。 アナログ出力パラメーターを変更するには、あなたの Simulink ダイアグラムにそれをドラッグした後にブロ ック上でダブルクリックしてください。図 47 の中で下に示されるダイアログ・ボックスが出力されるでしょ う。アナログ入力ブロックと同様に、ボード番号入力フィールドがあります。このパラメーターの説明に関 しては、アナログ入力セクションを参照してください。 制御実験装置のピーアィディー http://www.pid-control.com/ 80 Channel(s) to Use は、このブロックにより記述されるアナログ出力チャンネルを識別します。アナログ出力 4 チャンネルのうちの 1 つを記述するために 0∼3 までスカラー番号を指定してください。複数のチャンネル を読む場合はその順番を指定してください。チャンネルは、それらがベクトルに出力される順に読まれるで しょう。例えば、[5 2]と入力すると、アナログ出力ブロックはアナログ・チャンネル 5 を最初に読み、次に、 アナログチャンネル 2 を読みとります。アナログ出力ブロックからの出力は第 1 の要素がアナログ・チャン ネル 5 に相当し、また、第2 の要素がアナログ・チャンネル数 2 に相当する順番となるでしょう、そこでは、 出力単位はボルトです。 ほとんどの場合、小さい順にチャンネルの指定を希望されるでしょう。このために MATLAB のベクトル簡易表 記法':'が使用できます。例えば、アナログ・チャンネル 2∼4 を読むためには Channel(s) to Use field.に 単に 2:4 と入力します。 モードパラメーターは、パラメーターを使用するために Channel(s) to Use パラメータに指定した各出力チ ャンネルのための Mode をセットします。Channel(s) to Use が上記のように [3、2、0]の場合、Mode に[0、 1、0]と入力すると、D/A チャンネル 3 および 0 がバイポーラモード、ならびに D/A チャンネル 2 が単極モー ドとなります。スカラー値はすべてのチャンネルへ適用されます。 Range パラメーターは、Channel(s) to Use パラメータに指定した各出力チャンネルのための Mode をセット します。Channel(s) to Use が上記のように [3、2、0]の場合、Range に[10、5、10]と入力すると、D/A チャ ンネル 3 および 0 を 10V 範囲、ならびに D/A チャンネル 2 を 5V 範囲にセットします。スカラー値はすべての チャンネルへ適用されます。 入力は 5 または 10 となります。0∼5V 出力範囲がハードウェアにサポートされないので、値 5 は単極モード では無効です。 Initial Output フィールドは、リアルタイムコードが実行前、リアルタイムコードが初期化される時アナロ グ出力チャンネルに書き込む値を指定します。あなたがスカラーを指定すれば、Channel(s) to Use のアナロ グ出力チャンネルがすべて同じ値に初期化されるでしょう。異なる値へ各チャンネルを初期化するためには、 各チャンネルに対する初期値を含んでいるベクトルを指定してください。 Final Output フィールドは、リアルタイムコード停止時、アナログ出力チャンネルに書き込む値を指定しま す。あなたがスカラーを指定すれば、Channel(s) to Use のアナログ出力チャンネルがすべて同じ値にセット されるでしょう。各チャンネルを異なる値にセットするには、各チャンネルに対する最終値を含んでいるベ クトルを指定してください。 制御実験装置のピーアィディー http://www.pid-control.com/ 81 図47 Q8 アナログ出力パラメータ 離散時間システムの中で使用できるように、すべての Q8 ブロックはサンプル時間パラメーターを含んでいま す。デフォルト・サンプル時間は、アナログ出力ブロックの場合には-1 にセットされます。-1 のサンプリン グ時間は、ブロックを駆動する入力信号からのサンプリングレートが継承されることを示します。したがっ て、マルチレートシステムでなければ、このパラメーターを変更する必要がないでしょう。サンプル時間も 正のスカラーとして指定することができます。 simget(bdroot"FixedStep")式は実数としてベースサンプリング周期を返します。したがって、ベースサンプ リング周期の倍数を得るためにこの式に整数を掛けることができます。さもなければ、単にこのブロック用 のサンプリング周期に対応する実数を入力することができます。サンプル時間は正または-1 でなければなり ません。 制御実験装置のピーアィディー http://www.pid-control.com/ 82 最後から 2 番目のパラメーターは入力電圧パラメーターです。このオプションをチェックすると、ブロック への入力信号は電圧として扱われるでしょう。従って、5 の入力値は出力で生成される 5V となります。オプ ションがチェックされない場合、入力は、生の 12 ビットの D/A コンバータ値として扱われます。単極モード において、0 の値は 0V に相当します。また、4095(0x0fff)の値は 9.998V(+10V の±1 LSB)に相当します。5V のバイポーラのモードにおいて、0 の値は-5V に相当します。また、4095 の値は+4.998V(+5V の±1 LSB)に相 当します。同様に、10V のバイポーラモードにおいて、0 の値は-10V に相当します。また、4095 の値は +9.995V(+10V の±1 LSB)の出力電圧に相当します。 シミュレーション出力チェックボックスは、アナログ入力ブロックのシミュレーション入力オプションに似 ています。このボックスへのチェックはアナログ出力ブロックに出力ポートを追加します。この出力ポート はシミュレーション用にのみ使用されます。リアルタイム実行の間には使用されません。 シミュレーション中に、この出力ポートは、Q8 D/A コンバータの分解能を使用して、入力ポートで量子化さ れた形のデータを生成します。アナログ入力ブロックのシミュレーション入力オプションのように、この機 能はあなたのハードウェアのシュミレーションとリアルタイムコードを単一の Simulink ダイアグラムへ結合 させるのに使用できるでしょう。 より詳細については、アナログ入力ブロックのシミュレーション入力パラメーターの説明を参照してくださ い。 Digital Input ディジタル入力ブロックは、Q8 カード上のディジタル入力を読みとるために使用します。アナログ入力ブロ ックのように、ボード番号、サンプル時間およびシミュレーション入力のフィールドがあります。これらの パラメーターの詳細に関しては、アナログ入力セクションを参照してください。 図48 Q8 デジタル入力パラメータ 制御実験装置のピーアィディー http://www.pid-control.com/ 83 ディジタル入力ブロックの出力は電圧ではなく 0 か 1 です。読み取るディジタル入力チャンネルはアナログ 入力ブロックと同様に Channel(s) to Use パラメーターで指定します。 複数入力チャンネルを指定するためにベクトルを使用できます。 ディジタル入力ブロックは 32 までのディジタル入力をサポートします。しかしながら、この場合、ディジタ ル入力チャンネルはディジタル出力ブロックと共有されます。したがって、共通のチャンネルが同じディジ タル I/O ピンを使用するため、ディジタル入力ブロックおよびディジタル出力ブロックは同じチャンネル番 号を共有することができません。例えば、ディジタル入力ブロックがチャンネル 0 を読んでいた場合ディジ タル出力ブロックは 0 に書き込むことができません。 Digital Output ディジタル出力ブロックは、Q8 データ収集カードのディジタル出力へ書き込むために使用します。 アナログ出力ブロックのように、ボード番号、初期の出力、最終出力、サンプル時間およびシミュレーショ ン入力のためのフィールドがあります。これらのパラメーターの説明に関しては、アナログ出力セクション を参照してください。ディジタル出力ブロックは、電圧ではなく 0 または 1 の入力をとり、Q8 のディジタル 出力にそれらを送ります。 図49 Q8 デジタル出力パラメーター 制御実験装置のピーアィディー http://www.pid-control.com/ 84 書き込むディジタル出力ブロックはアナログ出力ブロックと同様に Channel(s) to Use パラメーターで指定 します。複数入力チャンネルを指定するためにベクトルを使用できます。 ディジタル出力ブロックは 32 までのディジタル入力をサポートします。しかしながら、この場合、ディジタ ル出力チャンネルはディジタル入力ブロックと共有されます。したがって、共通のチャンネルが同じディジ タル I/O ピンを使用するため、ディジタル入力ブロックおよびディジタル出力ブロックは同じチャンネル番 号を共有することができません。例えば、ディジタル出力ブロックがチャンネル 0 を読んでいた場合ディジ タル入力ブロックは 0 に書き込むことができません。 Encoder Input エンコーダ入力ブロックは Q8 エンコーダ入力のカウンター値を読むために使用されます。0-7 の 8 つまでの エンコーダ入力がサポートされます、エンコーダ・ブロックの出力は 24 ビットのエンコーダカウントです。 複数のエンコーダ・チャンネルを同時に読みとりできます。また、複数のエンコーダ入力ブロックをはあな たの Simulink ダイアグラムに含めることができます。エンコーダ入力ブロックのパラメーターは図 50 の中 で例証されています。アナログ入力ブロックと同様に、ボード番号およびサンプル時間のフィールドがあり ます。これらのパラメーターの説明に関しては、アナログ入力セクションを参照してください。 Channel(s) to Use パラメーターは、どのエンコーダ・チャンネルを読み取りするか指定します。 このパラメーターにベクトルを指定し、複数のエンコーダ・チャンネルを指定できます。 Initial Value(s)パラメーターはモデルを開始する時に、あらかじめエンコーダカウントをロードするため に使用します。例えば、このパラメーターを 0 にセットすると、エンコーダはすべて、0 の値を最初に読むで しょう。各エンコーダ・チャンネルの初期の値は、このパラメーターにベクトルを入力することにより別々 に指定することができます。例えば、Channel(s) to Use パラメーターが[2、4]そして、nitial Value(s)パ ラメーターが [32768、-8192]である場合、その後、モデル実行時、エンコーダ・チャンネル 2 は 32768 およ びチャンネル 4 は-8192 の初期の値を持つでしょう。 Do not initialize counts オプションはコントローラが停止した後でも、エンコーダパルスのカウントを継 続します。 Quadratureフィールドはすべての選択したチャンネルに使用するQuadratureエンコーディングのタイプを示 します。Q8 カードは 1X、2X あるいは 4X Quadrature を提供します。最高の分解能を供給するため、エンコー ダ分解能の 4 倍を生成する 4X 求積モードがデフォルトです。例えば、1024 カウントエンコーダは、4X 求積 モードで、1 回転当たり 4096 のカウントを生成します。求積モードにおいて、A と B の入力は、ディジタル フィルターを介し解読(デコード)されます。 最後のパラメーター、シミュレーション入力チェックボックスを選択すると、エンコーダ入力ブロックに入 制御実験装置のピーアィディー http://www.pid-control.com/ 85 力ポートを追加します。この入力ポートはアナログ入力ブロック上のシミュレーション入力と同様に使用し ても良いでしょう。しかしながら、この場合、その入力は係数演算子を使用して、24 ビットの値にそれを制 限した後に出力(シミュレーション中のみ)に供給されるカウント値です。シミュレーション入力はリアルタ イムコード内で無視されます。 他のすべてのエンコーダ入力パラメーターの完全な記述に関しては、Simulink 内で、エンコーダ入力ブロッ クのヘルプセクションを参照してください。 図50 エンコーダ入力パラメータ 制御実験装置のピーアィディー http://www.pid-control.com/ 86 Counter Output Q8 シリーズ用 I/O カードのカウンター出力モジュールは、外部ピンに PWM 信号を出力するため 32 ビット一般 目的カウンターのうちの 1 つをプログラムします。 CNTR_EN 入力の極性もまたカウンターのハードウェアインネーブル/ディスエーブル用にコンフィギュレー ションできます。 CNTR_EN ラインは COUNTER クロックソースのみに影響します。アナログ入力ブロックのように、ボード番号お よびサンプル時間のフィールドがあります。これらのパラメーターの説明に関しては、アナログ入力セクシ ョンを参照してください。 図51 Q8 カウンター出力パラメータ クロックソースパラメーターは 2 つの 32 ビットのカウンターのどれを使用するかをセットします。 COUNTER が選択されている場合、PWM 信号は、ターミナルのボード上の CONTROL ヘッダーの CNTR_OUT ピンに 出力されるでしょう。WATCHDOG が選択されている場合、PWM 信号は、ターミナルのボード上の CONTROL ヘッ ダーの WATCHDOG ピンに出力されるでしょう。 Period パラメーターは出力信号の周期を秒でセットします。周期は 60ns 単位で、60 ns から 257 秒(4.3 分) までの範囲です。 Pulse width パラメーターは、周期のレートを高パルス幅にセットします。パルス幅は 0∼100 までの範囲で す。 CNTR_EN 極性チェックボックスは、CNTR_EN 入力の極性をセットします。このオプションがそのときチェック 制御実験装置のピーアィディー http://www.pid-control.com/ 87 されない場合、CNTR_EN はアクティブ−ロー入力です。そうでなければ、それはアクティブ−ハイ入力です。 入力が接続されていない場合に、それをハイにするために、CNTR_EN ラインはプルアップレジスターです。従 って、このオプションは通常デフォルトでカウンターをイネーブルにするようチェックされます。 PWM Output Q8 シリーズ用 I/O カードの PWM 出力モジュールは、外部ピン上の PWM 信号を出力するための 32 ビットの一般 目的カウンターのうちの 1 つをプログラムします。 CNTR_EN 入力の極性もまたカウンターのハードウェアインネーブル/ディスエーブル用にコンフィギュレー ションできます。CNTR_EN ラインは COUNTER クロックソースのみに影響します。 カウンター出力ブロックと異なり、PWM 出力ブロックはその入力に従いサンプリング瞬間毎のデューティーサ イクルを再プログラムします。現在の duty cycle が非 0 の場合、次の PWM 周期の終わりに新しい duty cycle がアクティブにされることに注意してください。 従って、転換の間、疑似の出力値はありません。 アナログ入力ブロックと同様に、ボード番号のフィールドがあります。これらのパラメーターの説明に関し ては、アナログ入力セクションを参照してください。 図 52 Q8 PWM 出力パラメータ クロックソースパラメーターは 2 つの 32 ビットのカウンターのどれを使用するかをセットします。 COUNTER が選択されている場合、PWM 信号は、ターミナルのボード上の CONTROL ヘッダーの CNTR_OUT ピンに 出力されるでしょう。WATCHDOG が選択されている場合、PWM 信号は、ターミナルのボード上の CONTROL ヘッ ダーの WATCHDOG ピンに出力されるでしょう。 制御実験装置のピーアィディー http://www.pid-control.com/ 88 Watchdog Q8 シリーズ用 I/O カードのウォッチドッグモジュールは、インストールする Q8 I/O カード上でウォッチドッ グタイマーを使用するためのメカニズムを提供します。ウォッチドッグを終了すると、アナログ出力は 0V に リセットされます。また、ディジタル出力はディジタル入力として再構成され、プルーハイとなります。従 って、ディジタル出力はすべてウォッチドッグ終了時、全てのデジタル出力はプルーハイとなります。 ブロックの出力は次のサンプリング瞬間に 0 から 1 となります。ウォッチドッグ終了時、モデルを止めるた めには、ウォッチドッグモジュールの出力へ"Stop Simulation" 又は"Stop With Error"ブロックを接続しま す。 アナログ入力ブロックと同様に、ボード番号およびサンプル時間のためのフィールドがあります。これ らのパラメーターの説明に関しては、アナログ入力セクションを参照してください。 図 53 Q8 Watchdog パラメータ ウォッチドッグタイマーは 32 ビットのカウンターです。それは 60ns 単位で、60 ns から 257.69803776 秒(4.3 分)までどんなタイムアウト周期もサポートします。この周期は、通常モデルのサンプリング周期を越えるよ うにプログラムされますが、ウォッチドッグ終了後すぐにモデルが終了するもの十分です。ウォッチドッグ タイマー終了後、次のサンプリング瞬間のブロックは変更されます。 ウォッチドッグ割り込みブロックもウォッチドッグ終了に作用するように使用することができます。 ウォッチドッグ割り込みブロックは、モデルのサンプリング周期と無関係に、ウォッチドッグタイマーの終 了で直ちに実行される、非同期ブロックです。 Enable WATCHDOG出力チェックボックスのチェックは、 Q8ターミナル・ボードのCONTROLヘッダー上のWATCHDOG 制御実験装置のピーアィディー http://www.pid-control.com/ 89 ピンへのウォッチドッグ状態の出力を可能にします。ウォッチドッグタイマーが終了していない限り、その 出力は High のままです。ウォッチドッグが終了すると、出力は Low となります。この信号はロボット・モー タの電流アンプのような外部ハードウェアを停止するために使用することができます。 さらに、それは他のカードへウォッチドッグ機能性を拡張するために、他の Q8 カード(Q8 ターミナル・ボー ドの CONTROL ヘッダーで利用可能)の EXT_INT ピンに供給することができます。 External Interrupt, External Status または Poll External Interrupt ブロックの1つを他のカードと使 用しウォッチドッグオプションとして"EXT_INT 動作を確認してください。 EXT_INT がウォッチドッグとしてコンフィギュレーションされると、EXT_INT ライン上の立ち下がりエッジは 全てのカードのアナログ出力を 0 にリセットし、ちょうどウォッチドッグタイマーのように、すべてのディ ジタル I/O ラインはプルーハイとします。 EXT_INT ラインも立ち上がりエッジに作用するようにプログラムすることができます。 上に記述された Quanser Q8 ブロックは、Q8 に接続する際の標準および最も一般に用いられるブロックです。 それらは、Q8 ボードで利用可能なすべての I/O チャンネルへユーザが読み書きすることを可能にします。 Quanser Q8 ボードは高度に用途が広く強力な多機能の I/O ボードです。次のセクションは、簡潔に Q8 と共に 使用できる全ての追加 simulink ブロックについて記述します。これらのブロックおよびそれらのパラメータ ーのより完全な説明に関しては、Simulink 環境から各ブロッで利用可能な、オンラインヘルプを参照してく ださい。 Additional Q8 Blocks 次のブロックは簡潔な説明と共に一覧にされています。各ブロックの詳細な記述に関しては、Simulink 環境 で利用可能なオンラインヘルプを参照してください。 Encoder Extras 各イベントに応答するリアルタイムコードにおいてエンコーダのキャリブレート機能は、リミットスイッチ をある時間に使用するなど、多くの場合に有用です。 エンコーダエクストラライブラリはそのようなキャリブレーション実行用に 1 連のエンコーダリセットブロ ックを供給します。1 つのブロックは、レベルセンシティブ入力に基きエンコーダ値をリセットします。他の 2 つは、エッジトリガー入力に基くエンコーダ値をリセットします。エンコーダ入力ブロックがエンコーダカ ウントの初期値をセットするので、エンコーダ・リセット・ブロックは初期カウント値をセットするのには 必要ではありません。しかしながら、これらはキャリブレーションに非常に役立ちます。 Encoder Reset ( level-sensitive / edge-triggered / edge-triggered with enable): Q8 データ収集シス テムでのエンコーダのカウント値をリセットします。 Measure Average Period: エンコーダ DIN コネクターのうちの 1 つの CNT 入力に与えるディジタル信号の平 均周期を測定します。 Configure Encoder I/O: エンコーダ・フラグのコンフィギュレーションおよびインデックス・パルス上の24 ビットエンコーダ・カウンターを再びロードするかどうかを設定します。 制御実験装置のピーアィディー http://www.pid-control.com/ 90 Read Encoder Flags: 指定されたチャンネルのエンコーダ・フラグを読みます。これらのフラグは割り込みフ ラグではなくエンコーダ・ステータスレジスタのコンテンツです。 Time Bases この Q8 シリーズ I/O カードの時間ベースブロックは、リアルタイムコード用の時間ベースとして、インスト ールされた Q8 カードのハードウェア・カウンターのうちの 1 つを使用するためのメカニズムを提供します。 このブロックは、ウインドウズの上でサンプリングレートを 10kHz より速く設定するかあるいは多数のコン ピューターを同期させるために使用します。 時間ベースブロックは、システムのサンプリングレートを生成するため、ハードウェア・タイマーを使用で きるようにします。時間ベースブロックがダイアグラムの中にない場合、システム・タイマーが使用されま す。ウィンドウズ NT/2000 下のシステム・タイマーは速く、正確でミリセカンド未満のサンプリングレート をサポートしています。したがって、このブロックは通常必要ではありません。しかし、データ収集カード 上でハードウェア時間ベースを使用したいユーザには有用です。 Counter Time Base: Q8データ収集システム上の2つの32ビット一般目的カウンターのうちの1つを使用して、 モデル用のハードウェア時間ベースを構築します。 External Time Base: Q8データ収集システムのEXT_INTラインを使用して、モデル用のハードウェア時間ベー スを構築します。 Analog Input Time Base: Q8データ収集システムのCOUNTERを使用して、A/D変換のトリガーを自動化すること でモデル用のハードウェア時間ベースを構築します。 Analog Input External Time Base: Q8データ収集システムの外部CNTR_EN ラインを使用して、A/D変換のトリ ガーを自動化することでモデル用のハードウェア時間ベースを構築します。 Asynchronous Interrupts Q8シリーズI/Oカードの割り込みブロック、非同期割り込みを扱うためのメカニズムを提供します。出力に関 数呼び出しサブシステムを付けると、関連する割り込みが生じると直ちに、関数呼び出しサブシステムが実行 されます。コードは、モデルの残りから非同期に実行します。その実行のタイミングはシステムのサンプリン グ周期に管理されません。 Counter Interrupt: Q8データ収集システムにカウンターの割り込みが生じるとき、非同期に関数呼び出しサ ブシステムを起動します。 Watchdog Interrupt: Q8データ収集システムにウオッチドッグ割り込みが生じるとき、非同期に関数呼び出し サブシステムを起動します。 External Interrupt: Q8データ収集システムに外部割り込みが生じるとき、非同期に関数呼び出しサブシステ ムを起動します。 制御実験装置のピーアィディー http://www.pid-control.com/ 91 Analog Interrupts: Q8データ収集システムにアナログ割り込みが生じるとき、非同期に関数呼び出しサブシ ステムを起動します。利用可能な割り込みはend of conversionとready.です。 Fuse Interrupt: Q8データ収集システムにヒューズ割り込みが生じるとき、非同期に関数呼び出しサブシステ ムを起動します。 Encoder Interrupts: Q8データ収集システムにエンコーダ割り込みが生じるとき、非同期に関数呼び出しサブ システムを起動します。エンコーダフラグのどちらかがハイになると割り込みのきっかけとなります。上記で 説明されているようにエンコーダ入力ブロックを使用しているとき、このフラッグはコンフィギュレーション 可能です。 Polling Interrupts Q8シリーズカードのI/Oカードのポール割り込みブロックは、カードの割り込みソースのどれでもをポーリン グするためのメカニズムを提供します。それは、Q8カードの割り込みステータスレジスターを読みます。別の ブロックに出力を接続すると、その割り込みソースがポールされます。関連する割り込みが生じる場合、その 出力はハイとなります。ブロックは、割り込みが生じた後、割り込みフラグをリセットするためのオプション を持っています。ブロックは各サンプリング瞬間で割り込みステータスレジスタをポールします。 Poll Counter Interrupt: Q8データ収集システムのカウンタ割り込みをポールします。 Poll Watchdog Interrupt: Q8データ収集システムのウォッチドッグ割り込みをポールします。 Poll External Interrupt: Q8データ収集システムの外部割り込みをポールします。 Poll Counter Interrupt: Q8データ収集システムのカウンタ割り込みをポールします。 Poll Analog Interrupts: Q8データ収集システムのアナログ割り込みをポールします。利用可能な割り込みは end of conversionとready.です。 Poll Fuse Interrupt: Q8データ収集システムのヒューズ割り込みをポールします。 Poll Encoder Interrupts: Q8データ収集システムのエンコーダ割り込みをポールします。上記で説明されて いるようにエンコーダ入力ブロックを使用しているとき、このフラッグはコンフィギュレーション可能です。 Status Q8シリーズのI/Oカードのステータス・ブロックは、カードのステータス・フラグをチェックするためのメカ ニズムを提供します。それは、Q8カードのステータスレジスタを読みます。各出力は、特にそのフラグのステ ータスを反映します。ステータス・フラグがハイの時、出力はハイ、ローの時の出力はローです。 ブロックは各サンプリング瞬間でステータスレジスタを確認します。 Counter Enable Status: Q8データ収集カードのCNTR_EN入力のステータスを返します。 External Status: Q8データ収集カードのEXT_INT入力のステータスを返します。 制御実験装置のピーアィディー http://www.pid-control.com/ 92 Fuse Status: Q8データ収集カードのヒューズのステータスを返します。 Analog Status:. Q8データ収集カードのA/Dコンバータのステータスを返します。 Encoder Status: Q8データ収集カードのエンコーダのステータスを返します。 Extra Sources Source に属するブロックにはサイン波ブロックなどの出力を生成するブロックがありますがこれらは入力の 関数ではありません。カンサーコンサルティングは Simulink 環境を高めるために追加の source を用意しま した。Quanser Toolbox(qctools)内の Extra Sources アイコンをダブルクリックしこれらのソースにアク セスできます。 図61 Extra Sources blocks Is Simulation? このブロックは Simulink 内のモデルを通常のシミュレーションで実行するかリアルタイムコードで実行する かを Simulink 内で決定するために使用できます。通常のシミュレーション実行時の出力は1、リアルタイム コード実行時は0となります。 シミュレーション時とリアルタイムコード実行時かによって、あるコードの実行を有効、無効に設定できる ため、このブロックは割込対応システム構築時により役立ちます。 例えば、Q4 アナログ入力とシミュレーション入力ブロックが混在する場合、Is simulation?ブロックがハー ドウェアモデル実行のシミュレーションに使用でき、リアルタイム実行時にはこのモデルコードは実行され ません。それ故、同じダイアグラムがシミュレーションと同様にリアルタイムコードにも使用できます。 Smooth Sine Wave? Smooth Sine Wave ブロックはオプションのコサイン出力付きのサイン波を生成します。このサイン波出力は シミュレーション中に周波数や振幅を変更したときも連続的でありつづけます。このブロックはリアルタイ ムシステムの基準入力として役立ちます。シヌソイドをシンクロさせながら、複数のシヌソイドの連続性を 保つことが一般的に難しいため、この出力はベクトルで得られないことに注意してください。 制御実験装置のピーアィディー http://www.pid-control.com/ 93 Smooth Sine Wave ブロックのダイアグラムが図62にあります。このブロックの入力パラメーターはサイン 波の振幅、周波数(Hz) 、初期位相(rad) 、このブロックのサンプルレートです。 シミュレーション中に振幅を変更すると、出力の位相は、曲線が常に連続的になるように調整されます。 シミュレーション中に周波数が変更されると、出力の位相は、曲線が常に連続的になるように調整されます。 初期位相パラメータは時間 t=0 時の位相を決定するだけです。シミュレーション中にこの位相を変更しても 出力に何の影響も与えません。Sample Time は連続時間で使用するためにゼロとするか、サイン波が接続され ているブロックからのサンプル時間を引き継ぐために-1 となります。さもなければ離散サンプル時間を表す ために正値を指定します。 Output cosine also オプションボックスにチェックしている場合、ブロック は追加の出力を行います。この出力はコサインを生成します。サインに加えてコサインを生成するのに特別 なコードが必要ありません。しかしながら、このコサインはパラメータ変更の際にその連続性が保証されな いことに注意してください。 Sequences 図63は Quanser コンサルティング社により提供される Sequences ブロックです。 制御実験装置のピーアィディー http://www.pid-control.com/ 94 E Enabled Sequences Enabled Sequencesブロックは連続してベクトルのエレメントを出力します。イネーブルが有効となる各サン プリング間隔毎にベクトル内の次のエレメントを出力します。図64にEnabled Sequencesブロックのダイア ログボックスがあります。 Repeat Sequence オプションがチェックされている場合、Sequenceは連続して 出力されます。チェックされていない場合、全てのエレメントを出力した後に、ベクトル内の最後のエレメン トを出力し続けます。Enabled Sequencesブロックは時間ベクトルが必要ないので、Repeating Sequenceブロ ックよりも簡単に使用できます。線形補間も必要ありません。 Triggered Sequences 図64 Enabled Sequences パラメータ 図65 Triggered Sequences パラメータ Triggered Sequencesブロックは連続してベクトルのエレメントを出力します。トリガーが引かれる度に、ベ クトル内の次のエレメントを出力します。 図65にTriggered Sequencesブロックのダイアログボックスがあります。 Repeat Sequence オプション がチェックされている場合、Sequenceは連続して出力されます。チェックされていない場合、全てのエレメン トを出力した後に、ベクトル内の最後のエレメントを出力し続けます。Triggered Sequencesブロックは一連 の基準入力を出力する必要があり、かつ各ターゲットへの到達時間が前もって分からない場合に有用です。 制御実験装置のピーアィディー http://www.pid-control.com/ 95 このブロックは通常、SigmoidまたはTriggered Sigmoidブロックと共に使用します。 Triggered-Enabled Sequences 図66 Triggered-Enabled Sequences パラメータ Triggered-Enabled Sequencesブロックは連続してベクトルのエレメントを出力します。トリガーが引かれ、 イネーブル入力がアサートされる度に、ベクトル内の次のエレメントを出力します。 図66にTriggered-Enabled Sequencesブロックのダイアログボックスがあります。 Repeat Sequence オ プションがチェックされている場合、Sequenceは連続して出力されます。チェックされていない場合、全ての エレメントを出力した後に、ベクトル内の最後のエレメントを出力し続けます。Triggered-Enabled Sequences ブロックは一連の基準入力を出力する必要があり、かつ各ターゲットへの到達時間が前もって分からない場合 に有用です。 Sigmoids カンサーは図67に示されるSigmoidブロックを提供します。ロボット関節のコマンドに使用できます。これ らのSigmoidブロックは台形速度プロフィール(つまり、長方形の加速度プロフィール)を生成します。これ によりスムース(放物線)位置プロフィールを作成できます。到達最大加速度と速度はユーザー指定かつ有限 となります。 ロボット関節コントローラにステップ位置入力を決して与えないでください。之は無限の速度と加速度を要求 することとなり、ロボット、ロボット関節の破損につながります。 制御実験装置のピーアィディー http://www.pid-control.com/ 96 図67 Sigmoidブロック Sigmoid Sigmoidブロックは初期位置(と速度)からターゲット位置への滑らかな曲線を生成します。ターゲット位置 での速度はゼロです。初期位置(と速度)からターゲット位置への到達可能な最速軌道を導出するための指定 最大速度、加速度を使用します。 Sigmoidブロックのダイアログボックスが図68にあります。Sigmoidブロックは、Input Sample Timeパラメ ータにより決定される通常の間隔でその入力をサンプルします。 入力がサンプルされる度に、軌道が再計算されます。それ故、サンプル時間は軌道を測定するのに必要な時間 よりも遅く設定しなくてはなりません。 図68 Sigmoid パラメータ 制御実験装置のピーアィディー http://www.pid-control.com/ 97 Sigmoidブロックの出力はOutput Sample Timeパラメータで指定するサンプリングレートを使用し、生成され ます。このOutput Sample Timeは連続軌道の場合、ゼロとなるかもしれません。 Sigmoidブロックは軌道がいつそのターゲットに到達したかを示すDone信号を供給します。この出力は他のイ ベントのトリガー、エンコーダカウントのリセットなどにも活用できるでしょう。 Sigmoid(リミット有り) Sigmoidブロック(リミット有り)は初期位置(と速度)からターゲット位置への滑らかな曲線を生成します。 ターゲット位置での速度はゼロです。初期位置(と速度)からターゲット位置への到達可能な最速軌道を導出 するための指定最大速度、加速度を使用します。Sigmoidブロックとの違いは最大速度、加速度はパラメータ ではなくブロックへの入力となる点です。それ故、それらは時間依存となります。 Sigmoidブロック(リミット有り)のダイアログボックスが図69にあります。Sigmoidブロックは、Input Sample Timeパラメータにより決定される通常の間隔でその入力をサンプルします。 入力がサンプルされる度に、軌道が再計算されます。それ故、サンプル時間は軌道を測定するのに必要な時間 よりも遅く設定しなくてはなりません。 図69 Sigmoid (リミット有り)ブロックパラメータ Sigmoid(リミット有り)ブロックの出力はOutput Sample Timeパラメータで指定するサンプリングレートを 使用し、生成されます。このOutput Sample Timeは連続軌道の場合、ゼロとなるかもしれません。 Sigmoid(リミット有り)ブロックは軌道がいつそのターゲットに到達したかを示すDone信号を供給します。 この出力は他のイベントのトリガー、エンコーダカウントのリセットなどにも活用できるでしょう。 Triggered Sigmoid Triggered Sigmoidブロックは初期位置(と速度)からターゲット位置への滑らかな曲線を生成します。ター ゲット位置での速度はゼロです。初期位置(と速度)からターゲット位置への到達可能な最速軌道を導出する ための指定最大速度、加速度を使用します。 Triggered Sigmoidブロックのダイアログボックスが図70にあります。Triggered Sigmoidブロックは、トリガ ー入力がファイアーされるとその入力をサンプルします。 入力がサンプルされる度に、軌道が再計算されます。 制御実験装置のピーアィディー http://www.pid-control.com/ 98 Triggered Sigmoidブロックの出力はOutput Sample Timeパ ラメータで指定するサンプリングレートを使用し、生成され ます。このOutput Sample Timeは連続軌道の場合、ゼロとな るかもしれません。 Triggered Sigmoidブロックは軌道がいつそのターゲットに 到達したかを示すDone信号を供給します。この出力は他のイ ベントのトリガー、エンコーダカウントのリセットなどにも 活用できるでしょう。 Triggered Sigmoid(リミット有り) Triggered Sigmoidブロック(リミット有り)は初期位置(と速度)からターゲット位置への滑らかな曲線を 生成します。ターゲット位置での速度はゼロです。初期位置(と速度)からターゲット位置への到達可能な最 速軌道を導出するための指定最大速度、加速度を使用します。 Triggered Sigmoidブロックとの違いは最大速度、加速度はパラメータではなくブロックへの入力となる点で す。それ故、それらは時間依存となります。 Triggered Sigmoid(リミット有り)ブロックのダイアログボックスが図71にあります。Triggered Sigmoid (リミット有り)ブロックは、トリガー入力がファイアーされるとその入力をサンプルします。 入力がサンプルされる度に、軌道が再計算されます。 Triggered Sigmoid(リミット有り)ブロックの出力はOutput Sample Timeパラメータで指定するサンプリン グレートを使用し、生成されます。このOutput Sample Timeは連続軌道の場合、ゼロとなるかもしれません。 Triggered Sigmoid(リミット有り)ブロックは軌道がいつそのターゲットに到達したかを示すDone信号を供 給します。この出力は他のイベントのトリガー、エンコーダカウントのリセットなどにも活用できるでしょう。 Continuous Sigmoid Continuous Sigmoidブロックは現在の位置(と速度)からターゲット位置への滑らかな曲線を生成します。タ ーゲット位置での速度はゼロです。現在の位置(と速度)からターゲット位置への到達可能な最速軌道を導出 制御実験装置のピーアィディー http://www.pid-control.com/ 99 するための指定最大速度、加速度を使用します。現在の位置と速度は現在の軌道と現在の時間から決定されま す。初期位置と速度(モデル開始時)はパラメータで指定可能です。 Continuous Sigmoidブロックのダイアログボックスが図72にあります。Continuous Sigmoidブロックは、 Input Sample Timeパラメータにより決定される通常の間隔でその入力をサンプルします。 入力がサンプルされ、ターゲット位置が変更になる度に、軌道が再計算されます。それ故、サンプル時間は通 常、軌道を測定するのに必要な時間よりも遅く設定しなくてはなりません。Continuous Sigmoidブロックの出 力はOutput Sample Timeパラメータにより指定するサンプリングレートを使用して生成されます。 このOutput Sample Timeは連続時間軌道の場合、ゼロとなるかもしれません。 Continuous Sigmoidブロックは軌道がいつそのターゲットに到達したかを示すDone信号を供給します。この出 力は他のイベントのトリガー、エンコーダカウントのリセットなどにも活用できるでしょう。 Continuous Sigmoid(リミット有り) Continuous Sigmoidブロック(リミット有り)は現在の位置(と速度)からターゲット位置への滑らかな曲線 を生成します。ターゲット位置での速度はゼロです。現在の位置(と速度)からターゲット位置への到達可能 な最速軌道を導出するための指定最大速度、加速度を使用します。現在の位置と速度は現在の軌道と現在の時 間から決定されます。初期位置と速度(モデル開始時)はパラメータで指定可能です。 Continuous Sigmoidブロックとの違いは最大速度、加速度はパラメータではなくブロックへの入力となる点で す。それ故、それらは時間依存となります。 制御実験装置のピーアィディー http://www.pid-control.com/ 100 Continuous Sigmoidブロック(リミット有り)のダイアログボックスが図73にあります。Continuous Sigmoid (リミット有り)ブロックは、Input Sample Timeパラメータにより決定される通常の間隔でその入力をサン プルします。 入力がサンプルされ、ターゲット位置が変更になる度に、軌道が再計算されます。それ故、サンプル時間は通 常、軌道を測定するのに必要な時間よりも遅く設定しなくてはなりません。Continuous Sigmoidブロックの出 力はOutput Sample Timeパラメータにより指定するサンプリングレートを使用して生成されます。 このOutput Sample Timeは連続時間軌道の場合、ゼロとなるかもしれません。 Continuous Sigmoid(リミット有り)ブロックは軌道がいつそのターゲットに到達したかを示すDone信号を供 給します。この出力は他のイベントのトリガー、エンコーダカウントのリセットなどにも活用できるでしょう。 Extra Sinks Sinksはスコープなどと同じく、入力を受け入れ手も一般的に出力ポートを持たないSimulinkブロックです。 カンサーコンサルティングはSimulink環境を強化するために複数のSinkを追加しました。 Quanser Toolbox内のExtra SinksをダブルクリックするかMATLABプロンプトでqctoolsをタイプするとこの Sinkにアクセスできます。図74に追加Sinkがあります。現在2種類のSink,Stop with ErrorブロックとPC Speaker ブロックが利用可能です。 制御実験装置のピーアィディー http://www.pid-control.com/ 101 図74 Extra Sinks Stop with Errorブロックはあなたのモデルのエラー状態を知らせるのに役立ちます。このブロックはその入 力が非−ゼロの時、エラーを発行しモデルを停止します。ユーザーは発行されるエラーメッセージを指定でき ます。それ故、このブロックはあなたのモデルの異なるエラーを報告するのに役立ちます。例えば、リミット スイッチに達すると、接触したリミットスイッチにより異なるエラーメッセージを発行するようにモデルを設 定することが出来ます。 Stop with Errorブロックは図75にあるように1つのエラーメッセージ文字列のみをそのパラメータとしま す。エラーメッセージパラメータは評価されないので、文字列の周りを引用符で囲む必要はありません。 ブロックへの入力が非−ゼロになると、指定したエラーメッセージを発行しモデルを停止します。 WinCon Scripting Commands in MATLAB Quanserコンサルティング社は、MATLABウィンドウおよびユーザーのMATLABプログラムからWinConをコントロ ールするために使用することができる多数のMATLABスクリプト(つまり関数)を提供します。コマンドはすべて、 例えばhelp wc_setoptionsのように単にMATLABプロンプトでhelp に続いてコマンド名をタイプし読むことが できます。MATLABプロンプトでhelp winconをタイプすることによりコマンドをすべて表示することができま す。 これら, 迅速にパラメーターを変更する能力を含む関数は、実験装置を制御する際、即座にパラメータの変更 を行うなど、最大の柔軟性を与えます。MATLABスクリプト内で、Simulinkダイアグラムを構築、WinConリアル タイムコードを生成、リアルタイムコードを実行、実行中のゲイン変更、データ収集、リアルタイムコードの 停止、データ分析、システムの設計変更とプロセスのリピートをすることができます。これらは、ゲインスケ ジューリングや、データ収集、適応学習制御およびパラメーター評価などの自動実行を要求するアプリケーシ ョンで非常に役立ちます。 wc_build 形式: wc_build 制御実験装置のピーアィディー http://www.pid-control.com/ 102 wc_build('model') wc_build('model','path') パラメータ: model リアルタイムコードを生成するSimulinkモデルの名前 path Simulinkモデルを含むディレクトリー 詳細: wc_buildコマンドは、Simulinkモデルをコンパイルし、リアルタイムコードを生成して、自動的にそ れをターゲットマシンにダウンロードします。コマンドは、また、すべての中間的ファイルと最終 的なリアルタイムのモジュールがSimulinkモデルとして同じディレクトリに属するように、コードを 生成する前にモデルの存在するディレクトリにディレクトリを変更または指定したパスに変更しま す。あります。 デフォルトのターゲットはローカルマシンです。 モデルが指定されていない場合、現在開いているモデルをビルトします。 下記、2番目のコマンド 形式では、生成するモデルを明らかに指定します。 また、コマンドの最終フォームで、あなたはモ デルを含むディレクトリのパスを指定できます。 モデルパスの指定は、現在開いているモデルがな く、またそれがMATLABパスにない場合にだけ必要です。(commands pathとwc_pathを参照くださ い) Examples: wc_build 現在開いているSimulinkモデルのリアルタイムコードを生成 wc_build('test') モデル('test')のリアルタイムコードを生成 wc_clean Formats: wc_clean wc_clean('model') Parameters: model 中間ファイルを削除するSimulinkモデルの名前 Description: 制御実験装置のピーアィディー http://www.pid-control.com/ 103 wc_cleanコマンドは、リアルタイムのコードビルドの間に作成されたすべての一時的なファイルを 削除するのに使用できます。 このコマンドはソースファイル、ヘッダーファイルの全てを削除する わけではないので注意してください。 これはReal-Time Workshopによって自動的に生成されたソー スファイルとヘッダーファイルを削除するだけです。 それは生成されたコードと同様に、すべての オブジェクトファイルと他の中間的ファイルを削除します。モデルのパスを指定するのにwc_path を使用します。 モデルの指定がない場合には、現在開いているモデルの中間ファイルを削除します。wc_cleanコマ ンドでは削除するモデルを指定することができます。 このコマンドは以下の2つの場合に有用です。 不必要なファイル以外を保存したい場合、wc_cleanコマンドが有用です。 次に古い中間ファイルがモデルディレクトリに残っていて、実行したいコードが上手く生成出来な い場合。之はまれなケースではありますが、この場合、wc_cleanコマンドにより古いファイルを確 実に削除できます。 Examples: wc_clean 現在開いているSimulinkモデルの中間ファイルを削除 wc_clean('test') モデル('test'.wcl)をビルドした時に生成された中間ファイルを削除 wc_close Format: wc_close Description: wc_close command は現在のWinCon projectを終了します。WinCon projectが変更されている場合、保 存するように促すメッセージが表示されます。 wc_disconnect Formats: wc_disconnect wc_disconnect('model') wc_disconnect('model', 'path')Parameters: 制御実験装置のピーアィディー http://www.pid-control.com/ 104 Name of the WinCon model to disconnect. model 切断するWinConモデルの名前 リアルタイムモデルを含むディレクトリ(wc_pathを参照) path Description: wc_disconnect commandはWinConからモデルを切断します。モデルの指定がない場合、現在のシ ステムが使用されます。モデルパスの指定は必要ありませんが、モデルが開いていない場合や MATLABパス(コマンドpathとwc_pathを参照)にはパスが必要となります。wc_disconnectは WinCon Server実行中には使用できません。 wc_download Formats: r = wc_download r = wc_download('model') r = wc_download('model','path') Parameters: model ダウンロードするSimulinkモデル名称 path リターン値: r リアルタイムモデルを含むディレクトリ(wc_pathを参照) Boolean: 1は成功、0はエラー Description: wc_downloadコマンドは自動的にWinCon Serverを実行し、リアルタイムコードをWinConにダウン ロードします。モデルの指定がない場合、現在のシステムが使用されます。モデルパスの指定は必 要ありませんが、モデルが開いていない場合やMATLABパス(コマンドpathとwc_pathを参照)に はパスが必要となります。ダウンロードが成功すると1の値がリターンされます。それ以外は0が リターンされます。 wc_examples Formats: 制御実験装置のピーアィディー http://www.pid-control.com/ 105 r = wc_examples wc_examplesReturn Value: r WinCon examplesディレクトリへのフルパスを含む文字列 Description: wc_examplesコマンドはWinCon examplesディレクトリへのフルパスをリターンします。リターン 引数を指定すればリターンパスはそのパラメータへの文字列として保存されます。引数の指定がな い場合、wc_examplesコマンドはWinCon examplesディレクトリへ変更されます。 wc_isrunning Formats: r = wc_isrunning r = wc_isrunning('model') r = wc_isrunning('model', 'path') Parameters: model WinCon model (.wcl)名称 path リアルタイムモデルを含むディレクトリ (wc_pathを参照) リターン値: r Boolean: 1は成功、0はエラー Description: wc_isrunningコマンドはリアルタイムコードが現在実行中かどうかをテストします。モデルの指定 がない場合、現在のシステムが使用されます。モデルパスの指定は必要ありませんが、モデルが開 いていない場合やMATLABパス(コマンドpathとwc_pathを参照)にはパスが必要となります。モ デルが実行中の場合、1の値がリターンされます。それ以外は0がリターンされます。 wc_newplot Formats: wc_newplot 制御実験装置のピーアィディー http://www.pid-control.com/ 106 wc_newplot('model') Parameters: model Simulink modelの名称 Description: wc_newplotコマンドは新しいプロットを開きます。。モデルの指定がない場合、現在のシステムが 使用されます。プロット形式の指定がない場合、選択できるプロット形式(例:スコープ、X-Yグラ フ、デジタルメータ、温度計)を選択するリストが表示されます。WinCon Serverが未実行の場合、 wc_newplot はWinCon Serverを自動的に実行します。 wc_open Format: r = wc_open('project') Parameter: WinCon project ファイル名 project リターン値: r Boolean: 1は成功、0はエラー Description: wc_openコマンドは指定のWinCon projectを開きます。WinCon Serverが未実行の場合、wc_openコ マンドははWinCon Serverを自動的に実行します。 Example: wc_open( 'q_p' ) WinCon project 'q_p.wcp'.を開く wc_openplot Formats: wc_openplot wc_openplot('model') wc_openplot('model', 'plot') 制御実験装置のピーアィディー http://www.pid-control.com/ 107 Parameters: model Simulink model.名称 plot 開きたいプロット名称 Description: wc_openplotコマンドは所定のモデルに定義された、WinCon a Simulink表示器(例:スコープ、X-Y グラフ、表示器)を開きます。モデルの指定がない場合、現在のシステムが使用されます。プロッ トパラメータの指定がない場合、選択できるプロット形式(例:スコープ、X-Yグラフ、デジタルメ ータ、温度計)を選択するリストが表示されます。WinCon Serverが未実行の場合、wc_newplot は WinCon Serverを自動的に実行します。 Example: wc_openPlot( 'q_p', 'q_p¥Angle' ) 'q_p'モデル内の表示器”Angle”を開きます wc_path Formats: p = wc_path p = wc_path('model') Parameters: model パスをリターンするSimulinkモデル名称 Return Values: p モデルがあるディレクトリへのフルパスを含む文字列 Description: wc_pathコマンドは内部的に他のWinConスクリプトにより使用されます。これは所定のモデルが保 存してあるディレクトリへのフルパスをリターンします。またコード生成モジュールにより生成さ れるコードが、例え、現在のMATLAB内ワーキングディレクトリが異なっていても、常に同じディ レクトリに作成されることを確実にします。 Simulinkモデルが保存されている場所を記述する必要のあるMATLABスクリプトを書く場合、この コマンドは有用です。例えば、自動的に一連のテストを実行し、コントローラゲインを修正し、デ 制御実験装置のピーアィディー http://www.pid-control.com/ 108 ータを同じディレクトリまたはサブディレクトリに保存するようなスクリプトには大変有用です。 このコマンドでモデルの指定がない場合、現在開いているモデルのパスをリターンします。モデル パスの指定が可能です。モデルが開いていない場合、MATLABパス(コマンドpathと参照)となり ます。モデルが保存されていない場合、空の文字列がリターンされます。”isempty”コマンドを使用 して(空行列用)テストを行ってください。 Examples: 現在開いているモデルの変数pのパスをリターンします 'test'モデルの変数pへのパスをリターンします p = wc_path p=wc_path('test') wc_refresh Formats: r = wc_refresh Return Values: リターン値: r Boolean: 1は成功、0はエラー Description: wc_refreshコマンドはMATLABスクリプト実行中、Simulinkの状態が正しくアップデータされるよ うにSimulinkをリフレッシュします。Simulinkがリフレッシュされるとwc_refreshコマンドは1をリ ターンします。リフレッシュ出来ない場合0を返します。 wc_run Formats: r = wc_run Return Values: リターン値: r Boolean: 1は成功、0はエラー Description: 制御実験装置のピーアィディー http://www.pid-control.com/ 109 wc_runコマンドはWinCon Serverを実行します。既に実行中の場合、WinCon Serverを最前面に呼 びだします。wc_runコマンドはWinConが未実行だった場合、1をリターンし、WinConが既に実行 中だった場合、または実行に失敗した場合、0を返します。 wc_save Formats: wc_save wc_save('file') Parameter: file WinCon projectへ保存するファイル名 Description: wc_saveコマンドは現在のWinCon projectを保存します。ファイル名が指定されれば、プロジェクト は所定のファイルへ保存されます。拡張子の指定がない場合には適切な拡張子(例:wcp)が追加さ れます。 Example: wc_save( 'q_p' ) 現在のWinCon project(例:モデルと関連するプロット、コントロー ルパネル)を'q_p'wcpというプロジェクトファイル名で保存。 wc_saveplot Formats: wc_saveplot('plot title', 'filename') Parameters: plot title WinCon plot windowの名称 filename データを保存するMATLABファイル名称 Description: wc_saveplotコマンドはWinConプロットデータをMATファイルに保存します。 制御実験装置のピーアィディー http://www.pid-control.com/ 110 wc_saveplotは所定のタイトルのプロットをMATファイルに保存します。拡張子は自動的に追加さ れませんので.mat拡張子をファイル名に付与してください。WinConプロット名はプロットの見出し に表示されます。 プロットを保存する際、WinConは一時的にデシメーションなしでサーバーからデータを収集するた めに固定モードに切り替わります。全てのデータを収集し終わった後にコントローラを再開するよ うにしてください。スクリプト例: script_q_p.m,を参照し、ファイルを実行するとデータがWinCon再 実行前に保存されることを確認してください。 保存したMATファイルは”load”コマンドでMATLAB workspaceにロードできます。 Example: wc_savePlot( 'Scope – q_p¥Angle', 'scope.mat' ) 'Scope – q_p¥Angle'を'scope.mat'ファイルに保存し ます wc_select Formats: wc_select wc_select('model') wc_select ('model', 'path') Parameters: model 選択するSimulink modelの名称 path リアルタイムモデル(wc_pathを参照)を含むディレ クトリ Description: wc_selectコマンドは所定のモデルをアクティブなWinConモデルとして選択し、応答する理ありた い無コードをWinCon Clientへロードします。モデルの指定がない場合には現在のシステムが使用さ れます。モデルが開いていない場合、モデルがMATLABパス(path とwc_pathコマンドを参)にな い場合のみモデルパスが必要です。wc_selectコマンドはWinCon Serverを自動的に実行します (WinCon Serverが既に実行中でない場合)。 wc_setoptions 制御実験装置のピーアィディー http://www.pid-control.com/ 111 Formats: wc_setoptions wc_setoptions('model') wc_setoptions('model' , 'os_opt') Parameters: model オプションをセットするSimulinkモデル名称、または0。 os_opt OSの名称。有効な値は:’win’, 'dos' or 'nt' Description: wc_setoptionsはWinConが使用するリアルタイムコードを生成するため、モデル用のビルドオプシ ョンをセットします。 オプションが何も選択されていない場合、wc_setoptionsコマンドは最初の形式のコマン ド”wc_setoptions”でMATLABを使用して作成される新Simulinkモデル用にデフォルトオプションを セットします。wc_setoptionsは新しいSimulinkモデルが作成されたときにいつでもデフォルトの Real-Time WorkshopオプションがWinConに設定されるように、MATLAB開始時(つまりmatlabrc.m にコールされる)、自動的に開始されます。 二番目、三番目の形式のコマンドは、モデル名を引数としてOSに合わせて、既存のSimulinkモデル への設定を変更する場合に使用します。Simulinkモデルを指定する場合、wc_setoptionsコマンドを 実行する際、そのモデルを開く必要があります。この場合、モデルが0(文字列でなく)にセット されていると、wc_setoptionsコマンド現在のMATLABセッションで作成された全ての新Simulinkモ デルへデフォルト設定を行います。OS名の指定がない場合、ユーザーマシーンに適したデフォルト が設定されます。wc_setoptionsコマンドはあなたが既に基本サンプリング周期を設定していた場合、 それを上書きしません。統合方法(ソルバタブ)が可変ステップの場合、コマンドは固定ステップ へ変更します。 Examples: wc_setoptions('test', 'nt') wc_setoptions(0, 'nt') Windows 2000/XP WinCon Client用に、'test.mdl'からリアルタイ ムコードを生成するオプションを設定 Windows 2000/XP WinCon Client用に、リアルタイムコードを生 成するデフォルトオプションを設定 wc_start Formats: wc_start 制御実験装置のピーアィディー http://www.pid-control.com/ 112 wc_start('model') wc_start('model','path') Parameters: model 開始するモデル名 path リアルタイムモジュールを搭載するディレクト リ(wc_path参照). Description: wc_startコマンドはWinCon Serverが未だ実行されていない場合、WinCon Serverを起動し、モデル のリアルタイムコードを開始します。モデルの指定がない場合、現在のシステムが開始対象となり ます。開いているモデルがない場合、モデルがMATLABパスにない場合にはモデルの指定が必要で す(pathコマンドとwc_pathコマンドを参照)。モデルコードはwc_stopコマンドで中止できます。 wc_stop Formats: wc_stop wc_stop('model') wc_stop('model', 'path') Parameters: model 停止するモデル名 path リアルタイムモジュールを搭載するディレクト リ(wc_path参照). wc_stopコマンドはWinCon Client上で実行中のリアルタイムコードを停止します。モデルの指定が ない場合、現在のシステムが停止対象となります。開いているモデルがない場合、モデルがMATLAB パスにない場合にはモデルの指定が必要です(pathコマンドとwc_pathコマンドを参照)。wc_stop コマンドはWinCon Serverが実行中であると仮定します。実行中のモデルが存在しなかった場合に はエラーを表示しません。 wc_update Formats: wc_update 制御実験装置のピーアィディー http://www.pid-control.com/ 113 wc_update('model') wc_update('model', 'path') Parameters: model アップデートするモデル名 path リアルタイムモジュールを搭載するディレクトリ(wc_path参照). wc_updateコマンドはリアルタイムコードのワークスペース変数を更新します。wc_updateコマン ドは、WinCon Serverが実行されていない場合、WinCon Serverを自動的に実行します。モデルの指 定がない場合、現在のシステムを使用します。開いているモデルがない場合、モデルがMATLABパ スにない場合にはモデルの指定が必要です(pathコマンドとwc_pathコマンドを参照)。 Additional Plot Scripting Commands 下記にプロットに使用できる追加コマンドを記します。各コマンド詳細についてはhelp(コマンド名) をMATLABコマンドウィンドウでタイプしてください。 wc_newplot WinCon でプロットを開く(スコープ、デジタルメータな ど) WinCon で新しいプロットを開く wc_closeplot WinCon のプロットを閉じる wc_printplot プロットを印刷する wc_saveplot プロットデータを保存する wc_openplot wc_autoscaleplot wc_autoscaleplotrange wc_fixplot プロット表示にオートスケールを適用 プロットの最小オートスケールをセット プロットの軸を固定 wc_fixplotrange Y軸プロットの最大値、最小値を設定 wc_realtimeplot プロットをリアルタイムモードに変更 wc_freezeplot プロットをフリーズ wc_freezeallplots 全てのプロットをフリーズ wc_setplotbuffer プロットバッファの継続時間をセット wc_setplotfrequency プロット更新周波数のセット 制御実験装置のピーアィディー http://www.pid-control.com/ 114 wc_setplottime プロット時間軸範囲のセット wc_setplotgrid プロットグリッドの表示、非常時 wc_setplotlegend プロット説明の表示、非常時 wc_setplotontop プロットの“常に前面に表示”オプションのエーブル、デ ィスエーブル Table 37 WinCon plot scripting commands Model Examples サンプルモデルを実行する前に次の"accessing the supplied WinCon examples"のセクションに目を通し てください。 WinCon Demonstrations Window WinConにはWinCon の理解を助けるためのSimulinkベースのサンプルモデルが供給されます。これ らのサンプルにはMATLAB promptで以下をタイプしてアクセスできます: wcdemos このコマンドは図89で図示されるようにWinCon Demonstrations Windowを開きます。 WinConデモンストレーションはWinConの使用方法を図示するためのSimulinkベースのダイアグラ ムです。サンプルの幾つかの実行には所定のデータ収集カードが必要です。各データ収集ボード用 に同じサンプルが用意されています。そのほかのサンプル実行にハードウェアは必要ありません。 図90は図89に図示されているWinCon DemonstrationウィンドウのMultiQ-PCI Examplesブロックをダ ブルクリックして開くことができます。このウィンドウはQuanser MultiQ-PCI board用に利用可能な デモンストレーションのライブラリーを表示します。他のデータ収集ボードを使用している場合 制御実験装置のピーアィディー http://www.pid-control.com/ 115 (Q8など)それらのブロックを同じ要領でダブルクリックして開くことができます。 注意:Multi-Qシリーズ以外のボードをご使用の場合、目的のサンプルを実行するのにデータ収集ブ ロック、特定のボード用タイムベースを使用しているかどうかを確認してください。他のボードを ご使用になう場合、Multi-Qシリーズブロックをあなたがご使用中のボード用ブロックに置き換える 必要があります。ドライバをご自分で記述する場合には、詳細についてはMATLABパッケージに付 属するReal-Time Workshopマニュアルを参照するかカンサー社にご連絡下さい。 WinConデモンストレーションウィンドウに表示されるSimulinkファイルは、 C:¥MATLAB6p1¥work¥Examplesなどのようにwc_examplesによりリターンされるディレクトリに保 存されています。ハードウェア特定のサンプルはExamplesディレクトリのサブディレクトリに保存 されています。表37は幾つかのサブディレクトリとそのディレクトリのサンプル実行に必要なデー タ収集カードの一覧です。 Subdirectory Data Acquisition Card MULTIQ-PCI カンサーMultiQ-PCI データ収集カード Q8 カンサー Q8 データ収集カード NIE ナショナルインスツルメンツ社E-シリーズデータ収集カード 表 38 ハードウェア指定のサンプルディレクトリ Analog Loopback Example:q_a_lpbk.mdl アナログループバックサンプル:q_a_lpbk.mdlは必ず試してもらいたいサンプルです。WinConと外 部ハードウェアとのインタラクションのコンセプトの理解を助けるだけでなく、A/D、D/Aチャンネ ルのコンフィギュレーションが正しく行われているか、ボードが正しく機能するかのテストとなり 制御実験装置のピーアィディー http://www.pid-control.com/ 116 ます。このループバックモデル(つまりコントローラ)はサイン波を生成しアナログ出力チャンネ ル0に出力します。またアナログ入力チャンネルへの入力電圧を読みとり、データをプロットに表示 します。アナログループバックサンプルを実行するために次の手順を実行してください。 1. アナログループバックサンプルを実行する前にアナログ出力チャンネル0(つまりD/A0)とア ナログ入力チャンネル0(つまりA/D0)を配線する必要があります。このMulti Q PCIカード用コンフ ィギュレーションは図91に図示されています。このサンプル実行の配線は以上です。他のハードウ ェアは必要ありません。 2. モデルを開くには" WinCon Demonstrations Window"セクションのインストラクションに従い、あなたのデータ収集カードに対応す るAnalog Loopback (q_a_lpbk)ブロックをダブルクリックしてください。"Interfacing to Hardware"セクションに記述されているように SimulinkとQuanser Toolboxを使用してこれと同じモデルをあなた自身で作成することができることに注目してください。 制御実験装置のピーアィディー http://www.pid-control.com/ 117 3. 最初に全てのオプションがリアルタイムコードを実行するオペレーティングシステムに従い、正 しくセットされていることを確認してください。WinCon Serverインストーラは自動的に正しいコ ンフィギュレーションを設定しますので通常この手順は必要ありません(SimulinkはまたWinConに 適切なオプション設定を行います)。しかしながらこのステップは以前に生成された、WinCon用に コンフィギュレーションされていない、モデルには必要です。モデルをWinCon用にコンフィギュレ ーションするには図93にあるようにSimulinkメニューバーからWinCon | Set WinCon Optionsを選択し てください。 注意:異なるPCでクライアントを実行している場合、モデルをダウンロード又はビルドする前に WinCon Serverを開始しリモートWinCon Clientに接続する必要があります。 4. ここまでの手順でシステムをビルドする準備ができました。下記にあるようにSimulinkメニュー 制御実験装置のピーアィディー http://www.pid-control.com/ 118 バーからWinCon | Buildを選択してください。 このステップはダイアグラム用のリアルタイムコードを生成します。コンパイルが完了するまでの 時間待ってください。MATLABウィンドウはコード生成タスクの進捗状況を表示します。コンパイ ルが完了すると次のメッセージを表示します。 ### Successful completion of Real-Time Workshop build procedure for model: q_a_lpbk コード生成に続き、WinCon ServerとWinCon Clientが自動的に開始されます。生成されたコードは自 動的にクライアントにダウンロードされシステムは実行準備が完了します。 5. WinCon Serverツールバー(図95)のStartボタンをクリックしてください。Simulinkモデルでセッ トされた200 Hzサンプリング周波数でコントローラが開始されます。WinCon ServerのOpen Plotボタ ンをクリックしてください。Simulinkモデルダイアグラム内の全てのディスプレー名が変数選択ツリ ーに現れます。その中からプロットしたいディスプレーを選択できます。ここではScopeを選択して ください。図96の波形が今、見られるはずです。 制御実験装置のピーアィディー http://www.pid-control.com/ 119 サイン波は±5VのA/D入力チャンネルにより制限されています。 6.WinCon ServerツールバーからGo To Simulinkをクリックしてください:Gainブロックをダブルク リックしゲインを4に変更してください。あなたのスコーププロットの変化に注目してください。こ れはD/AのアウトプットがA/Dブロックにより測定されていることを示します。またあなたがGain をリアルタイムに変更できたことに気付くでしょう! 7. それではWinCon Serverツールバーからコントローラを停止してください。あなたのSimulinkモデ ルに戻りWinCon | Options...をメニューバーから選択してください。SolverタブでFixed step sizeを0.005 から0.05(サンプリング周波数を200Hzから20Hzに変更)してください。WinCon Serverからコント ローラを再実行してください。 モデルをリビルドする必要があります というメッセージが現れ るはずです。サンプリング周期の変更はあなたのシステムの全ての離散時間ブロックに影響します。 それ故、Simulinkは、サンプリング周期が変更されたとき、リアルタイムコードのリビルド を要求します。リアルタイムコードをリビルドしてください。1つのファイルをリコンパイルする だけなのでコードのビルドが迅速に処理されることに注目してください−ソースコードはあなたの モデルから生成されました。 今、コントローラを再び実行できます。プロットされるサイン波の違いに気付くでしょう。サンプ リング周波数が遅く設定されているため、前回のプロットとは違ったプロットとなっています。コ ントローラを停止してください。モデルのサンプリング周波数設定について良く理解できたはずで す。WinCon | Options...,に戻りステップサイズを0.005(つまり200Hz)にリセットしてください。あな たのコントローラをリビルドしスコープを再度プロットしましょう。 8. スコープウィンドウ内でFile | Save | Save As M Fileを選択してください。 ファイルを保存する場所 を指定するダイアログボックスが現れるでしょう。目的の場所を指定しM-ファイルを保存してくだ さい。WinConスコープバッファからのデータはMATLAB−Mファイルに出力されます。WinCon Server内でGo to MATLABアイコンをクリックしてください。MATLAB内であなたが生成したM− 制御実験装置のピーアィディー http://www.pid-control.com/ 120 ファイルを指定し実行してください。図97と同様に、あなたのスコープのプロットを見ることがで きるはずです。 未だコントローラが実行中なら、ここでコントローラを停止しましょう。之でアナログループバッ クサンプルを終了します。以下のことを理解できたでしょう。 Simulinkモデルのビルド方法とそれをWinConクライアントにダウンロードする方法について WinConスコープでモデル変数をプロットする方法 MATLAB環境で後にデータを使用するためにWinConスコープデータを保存する方法 Proportional Control Example: q_p.mdl 比例制御サンプルはMATLAB、Simulink環境またはWinConから直接制御ループパラメータを設定す る方法を例証します。このサンプルを実行するには以下のハードウェアが必要です。 Quanser UPM 2405 /1503 パワーアンプ又は同等品 Quanser Q8又は同等品 Quanser SRV02-E サーボプラント 1. このサンプルを実行する前に以下の配線を行ってください。 図98にあるようにgain 5(#5とラベルが貼ってあります)のケーブルをUPM To Loadコネクタ ーからSRV02-Eの1–MotorDriveに接続してください。 図98にあるようにSRV02-Eの2 – Encoder Angleからのケーブルを直接あなたのDACカードの エンコーダチャンネル0に接続してください。 制御実験装置のピーアィディー http://www.pid-control.com/ 121 あなたのDACカードのアナログ出力チャンネル0からケーブルをUPM From D/Aコネクターに 接続してください。 2. モデルを開くために、"WinCon Demonstrations Window"セクションのインストラクションに従いモ デルq_p.mdl.を開いてください。あなたのボードにマッチしたモデルを選択するようにしてくだ さい。このモデルは単純な比例コントローラ閉ループシステムです。このコントローラの目的は 目標の角度に追従することです。 比例ゲインブロックは数値を持たず代わりに変数Kpが使用され ていることに気付くはずです。この関数は,、ユーザーが直接MATLAB環境からデータを入力する ことを可能にします。ここでMATLABコマンドウィンドウへ行き、Kpの初期値を0.15に割り当て ましょう。 制御実験装置のピーアィディー http://www.pid-control.com/ 122 3. ここでコントローラをビルドし、WinCon Serverを使用してコントローラを開始できます。 WinConスコープを開きTheta(deg) –Scopeを選択してください。さらにTheta(deg) –Displayを選択し 出力角度のデジタル読みとりを得ることができます。コントローラのパフォーマンスを完全に測定 するために目標の角度と一緒にプロットされる出力を観察することは重要です。スコーププロット ウィンドウからFile | Variables...、Setpoint (deg)を選択してください。ここで2つのプロットが同時に 見られるはずです。このプロットによりコントローラのパフォーマンスを観察できます。またプロ ットの変数メニューからどの変数でも選択できることに気付いたでしょう。このフレキシビリティ ーはあなたのシステム全体の信号経路の異なるセクションを診断を行う際に有用な機能です。 4. コントローラ実行中のままでMATLABコマンドウィンドウへ戻りプロンプトでKpの値を" Kp = 0.25"とタイプしKpを0.25に変更してください。あなたのSimulinkモデルへ戻りEdit | Update Diagram (Ctrl+D)を選択してください。このコマンドはあなたのSimulinkモデル内の現在のMATLAB変数の全 てをアップデートします。スコープディスプレー上の異なる応答に気付くはずです。Kpを0.15から 制御実験装置のピーアィディー http://www.pid-control.com/ 123 0.25に変更したときの応答の変化が図101で見て取れます。 5. 殆どのコントローラでは目標の応答を達成するためのチューニングが必要です。WinConでは SimulinkダイアグラムまたはWinConコントロールパネルからチューニングが容易に行えます。あな たのWinCon ServerからWindow | Control Panelを選択してください。新しいコントロールパネルが現 れます。メニューからControl | Insert Controlを選択してください。このアプリケーションを使用し、 ノブ(つまみ)によりチューニングできます。ここで、ノブコントロールにパラメータを関連づけ るよう促されるでしょう。Proportional Gain | Gain (1,1)を選択してください。このコントロールはあ なたのモデルの比例ゲインと関連づけられました。メニューからControl | Propertiesを選択し最大値 を0.5に最小値を0のままにセットしてください。最後に、Window | Design Modeの選択を外してくだ さい。図102と同様のウインドウが見られるはずです。 制御実験装置のピーアィディー http://www.pid-control.com/ 124 ノブの位置をつまみ調整している間の応答(スコープ−プロット)に注目してください。この機 能によりユーザーはコントローラのファインチューニングが可能となります。ノブ設定の変化に より応答がリアルタイムにどう変化するかについて注意深く観察してください。WinConコント ロールパネルの詳細については"WinCon Control Panel"を参照下さい。 6. チューニングにより、目標の応答が得られたらSimulinkモデルに戻り、目標の角度を30から45度 (振幅(度))に変更しましょう。コントローラが目標角度の変化にどのように応答するかを注意 深く観察しましょう。それではコントローラを停止してください。 7. WinCon ServerウィンドウからFile | Saveを選択してください。あなたのWinConプロジェクト名と 保存場所を指定してください。作成されたプロジェクトを保存したらWinCon Serverを終了しましょ う。MATLABコマンドウィンドウに戻り、"exit"とタイプしてください。MATLABとSimulinkの両方 が終了しているはずです。あなたが保存したWinConプロジェクト(つまり.wcpファイル)をダブル クリックし開いてください。あなたが保存したスコープ、ノブコントロールウィンドウなどが見ら れるはずです。WinCon Serverからあなたのコントローラを再度開始してください。スコープにより 応答が見られるはずです。そして先ほどのノブにより比例ゲインをコントロールできるでしょう。 WinConプロジェクトによりMATLABまたはSimulinkなしに全てのディスプレー(表示器)とコント ロールと共にコントローラを開くことができます。 比例コントロールサンプルは以下のポイントを例証しました: {MATLAB、つまりSimulink環境またはWinConのコントロールパネルから即座にモデルのパラメー タを設定することができる。 □モデルパラメータの設定にWinCon Controlsを使用する。 □WinCon Serverのクライアント接続、ディスプレー、コントロールパネルを保存するのにWinCon Projectsを使用する。WinCon ProjectによりMATLABまたはSimulinkなしにチューニングできる。 Script Example: script_q_p.m このサンプルはWinConのスクリプト機能を例証します。 このサンプルは、 計画的に変数を増加させ、 制御実験装置のピーアィディー http://www.pid-control.com/ 125 その応答を記録したりする際にとても有用な機能であることが分かるでしょう。このスクリプトは 前回のサンプルと同様に比例コントロールシステムに関連するゲインを変更します。このサンプル の比例コントロールシステムは図103に図示されます。前回のサンプル“Proportional Control Example: q_p.mdl“セクションを参照し必用な配線を行ってください。 コメント共に供給されている下記スクリプトはMATLABで利用可能なWinCon Server関数を例証し ます。スクリプト記述に関する詳細については" WinCon Scripting Commands in MATLAB"を参照下さ い。下記スクリプトはKpを0.05に初期化し0.1づつ増加させ最終値を0.45とします。そのかんの各反 復の応答を記録します。 % SCRIPT_Q_P % % This WinCon script in Matlab collects the actual position response % of the Quanser SRV02-E plant for increasing proportional gains Kp % changing from 0.05 V/deg to 0.45 V/deg in increments of 0.1. % % Copyright (C) 2002 Quanser Consulting Inc. % Quanser Consulting Inc. clear all % sets model name and path model = 'q_p_script'; path = wc_path( model ); % set the initial proportional gain Kp Kp = 0.05; 制御実験装置のピーアィディー http://www.pid-control.com/ 126 % set the proportional gain increment between run Kp_incr = 0.1; % clean compilation wc_clean( model ) wc_setoptions wc_build( model, path ) % open the "Theta" Scope because we will be saving the data it collects plot_name = 'Theta'; wc_openplot( model, [model '¥' plot_name] ); % also open a Digital Meter for the user to visualize the Theta angle wc_openplot( model, [model '¥Theta (deg) - Display'] ); % during the desired number of runs ("N_runs"), % gradually increase the gain Kp, % and collect response data each time. N_runs = 5; for I = 1 : N_runs fprintf( 'Run # %d:¥n', I ); fprintf( '¥tProportional gain: Kp = %.2f V/deg¥n', Kp ); % Run the controller. Wait for it to stop. wc_start( model, path ); fprintf( '¥tcontroller running' ) while wc_isrunning( model ) fprintf( '.' ); % display progress dots 制御実験装置のピーアィディー http://www.pid-control.com/ 127 pause( 0.5 ); end; wc_stop( model, path ); % always call wc_stop to clean up properly % Save the data that was collected. Delete the previous file, if any, so % that we don't get any "File exists. Do you want to replace it?" messages. fname = ['res_' int2str(I) '.mat']; if exist( fname, 'file' ) delete( fname ); % to make sure that it does not exist before we save it end; wc_saveplot( ['Scope - ' model '¥' plot_name], fname ); % Wait for the data to be saved. fprintf( '¥tsaving data to ''%s'': ', fname ); done = 0; while( done == 0 ) pause( 0.5 ); if( exist( fname,'file' ) == 2 ) done = 1; end end fprintf( ' data saved.¥n' ) % Increment the proportional gain by Kp_incr Kp = Kp + Kp_incr; end % Disconnect from the real-time code wc_disconnect( model, path ); % Load the data and plot a comparison in a MATLAB Figure 制御実験装置のピーアィディー http://www.pid-control.com/ 128 % Offset each curve of (5*I) (deg). for I = 1 : N_runs fname = ['res_' int2str(I) '.mat']; load( fname ); nn = size( q_p_script_Theta ); for J = 1 : nn(1), out( J, I ) = q_p_script_Theta( J ) + 5 * I; end end plot( out ) title( 'Responses for Different Proportional Gains' ) xlabel( 'Sample #' ) ylabel( 'Theta [deg]') grid on 上記スクリプトを使用してMATLABプログラムはゲインKpを初期化しコントローラを開始するコ マンド wc_start を開始します。このスクリプトは”wc_isrunning”関数の実行によりコントローラ の終了を待ちます。コントローラはダイアグラムの" Stop Simulation block"によりサンプル数3000で 停止します。 コントローラが停止するとファイル名(res_n.mat, n = 1..5)が生成されプロット“Scope - q_p_Angle”の内容がそのファイルに保存されます。 このスクリプトはその後、Kpを増加させ新しいKp値でコントローラを再実行します。正常な動作の ためコントローラが既に停止していたとしても(切断される)wc_stopを呼びだす必用があります。 このプロセスは5回繰り返され各サイクルの終わりで作成されるファイルがMATLABワークスペー スにロードされ下記のプロットが生成されます。このやり方で、異なるKpでのシステム応答の評価 が行えます。リアルタイムプロットのバッファ長は実行持続時間より長くなることに注目してくだ さい。これにより確実に実行時間中のプロットを収集できます。 サンプルを実行するためにMATLABコマンドウィンドウで”wc_examples”とタイプしてください。こ こであなたが使用するDACカードに一致するディレクトリに移動しなければなりません。例えば、 q8ボードを使用している場合、cd Q8とタイプし、適切なディレクトリに移動してください。 最後にスクリプトを実行するために”script_q_p”タイプしてください。実行中、現在のプラント位置 を示すデジタルディスプレーを見ることができます。5回の反復の後、スクリプトが完了すれば図 104と同様のプロットが現れるでしょう。 制御実験装置のピーアィディー http://www.pid-control.com/ 129 各位置応答は5つの応答を際だたせるために5度づつオフセットされていることに注目してください。 Troubleshooting まれにWinConの実行に際し、トラブルを経験する事があります。ユーザーが起こりうるトラブルに 対応できるようにこのトラブルシュートセクションでは各情報を提供します。 Scope Disappears When Stopping Controller スコープで非常に大きなデータ(100万サンプル以上)を収集するとき、コントローラ停止時、スコ ープが自動的に終了する可能性があります。これはWinCon ServerとWinCon Client間の通信構造に おけるタイムアウトに依ります。数百万ポイントのサンプルの描写は一般的なスコープ使用想定を 超えています。描写にかかる時間が長すぎるとWinConクライアントはスコープが応答していないと 考え、スコープとの接続を終了してしまうかもしれません。 対策は収集するデータ数を減らすか複数のスコープを使用することです。例えば、1つのスコープ 制御実験装置のピーアィディー http://www.pid-control.com/ 130 に複数の変数が描写されているとすれば、複数のスコープを使用してそれぞれの変数を収集してみ てください。さもなければ、プロットのバッファサイズを減らすか収集されるデータポイントを減 らす為にシステムのサンプリング周期を減少してください。 Problems Using Visual C++ 6.0 SP4-SP5 and RTX 4.3.2.1 クライアントによってはWinConとRTX 4.3.2.1とVisual C++ 6.0 Service Pack 5の組合せで使用する場 合、エラーが起こるかもしれません。この場合、代わりにVisual C++ 6.0 Service Pack 3を使用し、新 しいバージョンのRTXを使用してください。 Controller Fails to Load WinConクライアントへコントローラのロードができない場合、 様々な原因が考えられます。 例えば、 モデルのコードが生成されているかを確認する。そのモデルのリアルタイムコードを生成するには SimulinkダイアグラムのWinConメニューからBuildを選択してください。 この問題は旧バージョンのWinConを使用してモデルをビルドする際にも起こり得ます。 WinConがアップグレードされている場合には旧バージョンによりビルドされたモデル用のテンポ ラリーファイルを全て空にする事が重要です。たとえば、Simulinkモデルが"q_sine"だとします。 リアルタイムコードが生成されたとき、" q_sine_wc_rtw"というサブディレクトリが生成されます。 このオブジェクトファイルと他の介在するファイルはこのフォルダに置かれます。WinConはこのサ ブディレクトリをビルド手順のスピードアップに使用します。アップグレードたWinConで"q_sine" がリビルドされると"q_sine"が同じ場所でビルドされる場合、リビルドされるコードが不適切なため、 これらの旧オブジェクトファイルは拒否されるかもしれません。この問題を防ぐために、WinConを アップグレードした場合、必ず各モデルのSimulinkダイアグラムのWinConメニューから" Clean メ ニューアイテムを選択してください。この" Clean コマンドはWinConがビルドプロセスで使用する オブジェクトファイルや介在するファイルを保存するテンポラリーサブディレクトリを消去します。 " Clean を実行後、モデルをリビルドすると、WinConは初めからリアルタイムコードをリビルドし ます。 他の原因としては間違ったテンプレートmakefileが使用されるケースです。WinConをインストール すると、自動的に全てのデフォルトオプションをOSに合わせて設定します。それ故、WinConがイ ンストールされた後に生成されたモデルは正しいオプションが選択されているはずです。しかし、 モデルが他のPCからコピーされている場合や別のバージョンのWindowsを使用して生成された場 合等は、リアルタイムコード生成オプションが正しく設定されていないかもしれません。オプショ ンが正しく設定されていることを確認するには、WinConメニューからSet WinConオプションを実 行してください。このコマンドは全ての必用なオプション設定をあなたのWinConインストール用に 正しい設定に変更します。次に"Clean"メニューアイテムを使用しテンポラリー介在ファイルを削除 制御実験装置のピーアィディー http://www.pid-control.com/ 131 し、最後に"Build"メニューアイテムを使用しリアルタイムコードをリビルドしてください。 2000/XP下ではさらに、異なるオペレーティング・システムでコンパイルされた、リアルタイムコ ードをロードする試み中に、ウィンドウズ2000/XP下のリアルタイムカーネル(RTX)が必ずしも適切 にリカバーするとは限らないことに注目します。例えば、ウインドウズ2000を使用しており win_msvc.tmf template makefile(Windows '98用に設計された)を使用してコンパイルすれば、次にリア ルタイムコードは非互換になります。WinConクライアントがこの非互換性のコードをロードするこ とを試みる場合、RTXがエラーを起こすかもしれません。この場合、"Clean"メニューアイテムを使 用し、生成されたコードを取り除き、"Set WinCon"オプションを訂正し、モデルを保存し、コンピ ューターをリブートし、次に、コードをリビルドしてください。この時、正確なオペレーティング・ システムが選択されたので、リアルタイムコードは正常にロードされます。 以前、同じバージョンのWinConで動作した、リアルタイムコードのロードを試みて、それがエラー “Invalid file format”のためロードされなければ、WinConサービスが実行されていないかもしれません。 WinConクライアントは、リアルタイムコードをロードするのにWinConサービスを利用します。従 って、WinConサービスを実行していない場合、WinConクライアントはリアルタイムコードをロー ドすることができず、このエラーメッセージの原因となるかもしれません。WinConサービスを実行 しているかどうかチェックするためには、コントロールパネル下のサービス・コントロールパネル・ アプレットを使用してください。実行されていない場合、管理上の特権を持ったユーザであれば WinConサービスを再開することができます。さもなければ、WinConサービスを実行するためにネ ットワーク管理者と連絡をとってください。 最後に、使用するハードウェアがあなたのコンピューターにインストールされない場合、リアルタ イムコードはロードされません。例えば、MultiQ-PCIブロックを含んでいるSimulinkブロックダイア グラムはコンパイルはできても、あなたがコンピューターにMultiQ-PCIカードをインストールして いなければ、ロードされません。リアルタイムコードがロードされると、WinConはハードウェアの 予備的な初期化を実行します。PCIカードを初期化するために、WinConは最初にカードを見つけま す。そのときカードを捜し出すことができない場合、エラーを返し、リアルタイムコードのロード に失敗します。 WinCon Menu Missing from Simulink Diagram WinConメニューがSimulinkダイアグラムに見当たらない場合、WinConリンクが実行されていません。 WinConサーバーをインストールした後には、コンピューターを再起動してください。WinConリン クはいつでも実行できますが、 その前に全てのSimulinkダイアグラムを必ず終了じてください。 次に、 WinConリンクを実行して、Simulinkダイアグラムを再度、開いてください。 Simulink Diagram Fails to Compile 時折、Simulinkダイアグラムのコンパイルに失敗する。この問題がWinConをインストールした直後 に発生する場合、MATLABでmex –setupセットアップをインストール済みのVisual C++用に正しい 制御実験装置のピーアィディー http://www.pid-control.com/ 132 コンフィギュレーションを行っているかを確認してください。mexコマンドの設定に関しては MathWorksから提供されている書類のMATLAB環境設定章を参照下さい。 Simulinkダイアグラムからのコンパイルに失敗する最も一般的な原因は、リアルタイムカーネル環境 で不法な関数を呼ぶカスタムSファンクションの使用、あるいはMATLABコンパイラーにより生成 されたコードを使用する試みです。より詳細に関しては"リアルタイムコードの制限"セクションを 参照してください。Quanserはウインドウズ2000あるいはXP(あるいは同じラインの将来のバージョ ン)を使用することを推奨します。エラーの詳細は、MATLABコマンドウィンドウに出力されるエラ ーメッセージを見ることにより得ることができる場合があります。コードを生成するときに、 WinConはMATLAB Command Windowに、実行するオペレーションのリストを生成します。ビルド 中のエラーはどの時点でエラーが検出されたかに依りこの出力のどこかに記述されます。 Scope Fails to Plot Signal WinConスコープでプロットできるのはデフォルトのSimulinkデータタイプである'double'タイプの 信号のみです。しかしブロックによっては他のデータタイプを出力するものがあります。例えば、 Serial Input blockは'uint8'(符号無しのバイト)タイプを出力します。この信号をWinConスコープで プロットするには、プロットを使用する前にSimulinkダイアグラムへSignals Atttributes libraryから Data Type Conversion blockを挿入してください。データタイプを'double'にセットしてください。 MultiQ-3 Time-Base Block Doesn't Work MultiQ-3データ収集ボードはISAカードであり、プラグ&プレーに対応していません。カードで使用 するIRQとクロックは、カード自体のジャンパーでセットします。MultiQ-3 Time-Baseクロックはカ ード上のジャンパー設定と一致させる必用があります。さもなければTime-Baseクロックが動作しま せん。IRQレベルがジャンパーによりコンフィギュレーションされるので、選択するIQレベルがシ ステムの他のデバイスと干渉しないよう注意することが必要です。デバイスマネージャーを使用し 選択したIRQレベルがサウンドカードなどシステムのあなたのシステムの他のデバイスと干渉して いないかどうかを確認下さい。MultiQ-3のIRQは共有できません。他の可能性については次の章を参 照してください。 Time-Base Block Doesn't Work Time-Baseブロックはハードウェア割込です。2000/XP下で割込を使用する場合、RTXリアルタイム カーネルはいつでもRTXデバイスドライバーを必用とします。RTXデバイス・ドライバは、RTXプ ロパティ・コントロールパネルからウインドウズ・ドライバをRTXドライバに変換することにより、 デバイスに割り当てられます。この手順の詳細についてはRTXに付属するドキュメンテーションを 参照してください。もしあなたが10kHzよりも速いサンプリング周期を必要としなければWindows 2000/XP下でTime-Baseブロックは必要ではないことに注意してください。 制御実験装置のピーアィディー http://www.pid-control.com/ 133 10kHzのサンプリング周期を達成するためには、RTXプロパティ・コントロールパネル中でHALタ イマー周期を100nsにセットしてください。このセッティングを有効にするには、マシンをリブート しなければなりません。さもなければ、サービス・コントロールパネル・アプレット(管理者権限で) を使用して、WinConサービスを停止してください。RTXプロパティ・コントロールパネル・アプレ ットを使用して、RTXを停止してください。RTXを再開して、次に、WinConサービスを再開してく ださい。 Windows 2000またはWindows XPデバイスをRTXデバイスに変換するには: 1. Windowsスタートメニューから、Programs | VenturCom | RTX | RTX PropertiesをクリックしRTX プロパティ・コントロールパネルにアクセスしてください。 2. RTXプロパティ・コントロールパネルからPlug and Playタブを選択してください。ウィンドウ はあなたのシステムのデバイスを表示します。 3. 変換したいウィンドウズデバイス上で右クリックし次にConvert to RTXをクリックします。 4. 他のデバイスを選択するには"適用"を選択するか"OK"をクリックしRTXプロパティ・コントロ ールパネルを閉じてください。 RTXプロパティ・コントロールパネルが特定のデバイスを削除できない場合、デバイスをアンイン ストールするよう警告が現れ、デバイスマネージャーが開始されるでしょう。 制御実験装置のピーアィディー http://www.pid-control.com/ 134 デバイスをアンインストールするには: 1. RTXに変換したいデバイスを選択する 2.メニューからアンインストールをクリックする 3.あなたのシステムを再スタートする 4.デバイスが正確にインストールされたことを確認するためには、RTXプロパティ・コントロール パネルを開いて、デバイスタブをチェックしてください。あなたの装置は、デフォルトによってセ ットされたIRQおよび共有可能なフラグに加えてRTXハードウェア・リスト下にリストされるでし ょう。 ウインドウズ・ドライバーは必ずしもRTXに変換させられるとは限りません。いくつかのウインド ウズ・ドライバーはRTXと非互換です。RTXにドライバーを変換しようとして、問題が生じる場合、 VenturCom(http://www.vci.com)に連絡してください。 Cannot Achieve 10kHz Sampling Rate 2000/XPを使用する場合、RTXのHALタイマー周期が最も速い周期100nsにセットされていることを 確かめてください。RTXプロパティ・コントロールパネル・アプレットを使用して、HALタイマー 周期をセットしてください。 コントローラーのサンプリングレートはハードウェアタイムベースを使用していない場合、HALタ イマー周期より遅くなるように制限されます。HALタイマー周期がコントローラーのサンプリング 周期より遅い場合、スコープが適切に表示されません、コントローラは正確なレート(代わりにHAL タイマー周期で実行される)およびコントロールシステムで作動しないでしょう、そして制御システ ムは不安定になるかもしれません。 HALタイマー周期が正しくセットした後、未だシステムをリブートしていなければ、HALタイマー 周期の変更を有効にするためにシステムをリブートしてください。RTXはHALタイマー周期が正し くセットされていない場合にオンデマンドでなくブート時に実行されるように設定されていると、 正しく動作しないでしょう。RTXは必ずオンデマンドで実行されるよう設定してください。 HALタイマー周期が100nsにセットされていると、コントローラは、計算に時間がかかりすぎ、希望 の10kHzのサンプリングレートを達成することができないかもしれません。WinConクライアント・ ウィンドウをチェックし、どれだけの時間が計算(ほぼ)により費やされているか確かめてください。 アナログI/Oは、データ収集カードにより、その実行に数十マイクロ秒を必要とするため、最速サン プルレートの達成上の制約要素となることに注意してください。さらに1kHzのサンプリングレート でたいていの機械的なシステムをコントロールすることができることに注目してください。 WinCon Stops Responding 制御実験装置のピーアィディー http://www.pid-control.com/ 135 WinConがハングアップしたように見える場合、最低30秒待ってください。WinConが30秒待っても 回復しない場合、WinCon Task Managerを開き、ロードされているコントローラを停止してください。 WinCon Clientはコントローラの終了を検知するはずですが、検知しない場合でもWinCon Task Managerがクライエントを停止します。WinCon Serverは"unexpected message was received from the Client"というエラーメッセージを表示するはずです。 "OK"をクリックしてメッセージを閉じてください。今、WinCon Serverを終了できるはずです。 Obtaining Support テクニカルサポートを受けるにはサポート契約が必用です。Quanserからサポートを受けるには http://www.wincon.quanser.comへアクセスしTech Support linkをクリックしてください。サポート用フ ォームにトラブルの内容詳細やバージョン情報などを全て記述し送信してください。 連絡することができるあなたの電子メールアドレスおよび電話番号を必ず含めてください。資格のある技術 的なサポートスタッフがあなたと連絡をとるでしょう。 制御実験装置のピーアィディー http://www.pid-control.com/ 136