(57)【要約】【課題】製造装置間の性能差を軽減することができる情報処理システムを提供する。【解決手段】コントローラ２００Ａ〜２００Ｃの各々は、予め定められた制御パラメータに従って対応する製造装置３００Ａ〜３００Ｃを駆動し、当該駆動結果として得られた動作データ２０Ａ〜２０Ｃを情報処理装置１００に送信する。情報処理装置１００は、コントローラ２００Ａ〜２００Ｃの各々から受信した動作データ２０Ａ〜２０Ｃに基づいて、製造装置３００Ａ〜３００Ｃの動作の模範となる基準動作データ２１を生成し、基準動作データ２１をコントローラ２００Ａ〜２００Ｃの各々に送信する。複数のコントローラ２００Ａ〜２００Ｃの各々は、設定されている制御パラメータに従って対応する製造装置３００Ａ〜３００を駆動し、当該駆動結果として得られる動作データが基準動作データ２１に近づくように、当該設定されている制御パラメータを調整する。【選択図】図２
2018116596.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムであって、
設定されている制御パラメータに従って対応する製造装置を駆動するとともに、当該製造装置の駆動結果として当該製造装置の動作状態を表わす動作データを取得できるように構成されている複数のコントローラと、
前記複数のコントローラと通信可能に構成されている情報処理装置とを備え、
前記複数のコントローラの各々は、予め定められた制御パラメータに従って対応する製造装置を駆動し、当該駆動結果として得られた第１動作データを前記情報処理装置に送信し、
前記情報処理装置は、前記複数のコントローラの各々から受信した前記第１動作データに基づいて、複数の前記製造装置の動作の模範となる基準動作データを生成し、当該基準動作データを前記複数のコントローラの各々に送信し、
前記複数のコントローラの各々は、当該コントローラに設定されている制御パラメータに従って対応する製造装置を駆動し、当該駆動結果として得られる第２動作データが前記基準動作データに近づくように、当該設定されている制御パラメータを調整する、情報処理システム。
【請求項２】
前記基準動作データが示す動作の質は、複数の前記第１動作データの内の最良の第１動作データが示す動作の質よりも悪い、請求項１に記載の情報処理システム。
【請求項３】
前記情報処理装置は、前記複数のコントローラの各々から受信した前記第１動作データの平均を前記基準動作データとして生成する、請求項２に記載の情報処理システム。
【請求項４】
前記情報処理装置は、前記複数のコントローラの各々から受信した前記第１動作データの各々が示す動作の質を所定の評価方法で評価し、当該動作の質が最良ではない第１動作データを前記基準動作データとする、請求項３に記載の情報処理システム。
【請求項５】
前記情報処理装置は、前記複数のコントローラの各々から受信した前記第１動作データの中から、前記動作の質によって示される順位が中間である第１動作データを特定し、当該第１動作データを前記基準動作データとする、請求項４に記載の情報処理システム。
【請求項６】
前記情報処理装置は、前記複数のコントローラの各々から受信した前記第１動作データの中から、前記動作の質が最も悪い第１動作データを特定し、当該第１動作データを前記基準動作データとする、請求項４に記載の情報処理システム。
【請求項７】
前記複数のコントローラの各々は、前記第２動作データが前記基準動作データに近づくように、当該コントローラに設定されている制御パラメータの調整と、当該調整後の制御パラメータに従った前記製造装置の駆動とを繰り返し実行し、
前記情報処理装置は、前記複数のコントローラの各々が前記制御パラメータを調整する過程で設定できる制御パラメータの範囲の設定を受け付ける、請求項１〜６のいずれか１項に記載の情報処理システム。
【請求項８】
前記複数のコントローラの各々は、当該コントローラに設定されている制御パラメータをＰＳＯ（Particle Swarm Optimization）処理により調整する、請求項１〜７のいずれか１項に記載の情報処理システム。
【請求項９】
コントローラに設定されている制御パラメータを調整するための調整方法であって、
前記コントローラは、当該コントローラに設定されている制御パラメータに従って対応する製造装置を駆動するとともに、当該製造装置の駆動結果として当該製造装置の動作状態を表わす動作データを取得できるように構成されており、
予め定められた制御パラメータに従って複数の前記製造装置を駆動し、当該駆動結果として複数の前記製造装置の各々について第１動作データを取得するステップと、
前記取得された複数の第１動作データに基づいて、複数の前記製造装置の動作の模範となる基準動作データを生成するステップと、
複数の前記コントローラの各々に設定されている制御パラメータに従って対応する製造装置を駆動し、当該駆動結果として対応する製造装置の第２動作データを取得するステップと、
前記取得された複数の第２動作データの各々が前記基準動作データに近づくように、複数の前記コントローラに設定されている制御パラメータを調整するステップとを備える、調整方法。
【請求項１０】
コントローラに設定されている制御パラメータを調整するための調整プログラムであって、
前記コントローラは、当該コントローラに設定されている制御パラメータに従って対応する製造装置を駆動するとともに、当該製造装置の駆動結果として当該製造装置の動作状態を表わす動作データを取得できるように構成されており、
前記調整プログラムは、コンピュータに、
予め定められた制御パラメータに従って複数の前記製造装置を駆動し、当該駆動結果として複数の前記製造装置の各々について第１動作データを取得するステップと、
前記取得された複数の第１動作データに基づいて、複数の前記製造装置の動作の模範となる基準動作データを生成するステップと、
複数の前記コントローラの各々に設定されている制御パラメータに従って対応する製造装置を駆動し、当該駆動結果として対応する製造装置の第２動作データを取得するステップと、
前記取得された複数の第２動作データの各々が前記基準動作データに近づくように、複数の前記コントローラに設定されている制御パラメータを調整するステップとを実行させる、調整プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、製造装置間の性能差を低減するようにコントローラの制御パラメータを調整するための技術に関する。
【背景技術】
【０００２】
様々な製造現場において、ＰＬＣ（Programmable Logic Controller）などのコントローラが導入されている。コントローラは、製造設備などに応じて設計された制御プログラムに従って製造現場における各種製造装置を制御する。製造装置の制御は、たとえば、ＰＩＤ（Proportional-Integral-Differential）制御で実現される。特開２００４−１６４４２６号公報（特許文献１）は、ＰＩＤ制御に用いられる制御パラメータを最適化するための方法を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１６４４２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
同種類の製造装置であっても、製造される製品の品質にばらつきが生じることが問題になっている。この品質のばらつきは、各製造装置の特性の違い、各製造装置の設置場所における環境の違い、各製造装置の使用時間の違いなどによって生じる。製造装置間での品質のばらつきを抑制するために、現場の担当者は、各コントローラの制御パラメータを経験に基づいて設定し、製造装置間の性能差を埋めている。
【０００５】
性能が最も良い製造装置に合わせて他の製造装置に対する制御パラメータを調整すると、当該他の製造装置は、性能限界を超えるため、最も性能が良い製造装置と同様の性能にはならない。この場合には、製品の品質が製造装置間でばらついてしまう。特許文献１に開示される制御方法は、製造装置の性能を最良にするように制御パラメータを決定するため、製造装置間で性能差が生じてしまう。したがって、製造装置間の性能差を軽減するための技術が望まれている。
【課題を解決するための手段】
【０００６】
ある局面に従うと、情報処理システムは、設定されている制御パラメータに従って対応する製造装置を駆動するとともに、当該製造装置の駆動結果として当該製造装置の動作状態を表わす動作データを取得できるように構成されている複数のコントローラと、上記複数のコントローラと通信可能に構成されている情報処理装置とを備える。上記複数のコントローラの各々は、予め定められた制御パラメータに従って対応する製造装置を駆動し、当該駆動結果として得られた第１動作データを上記情報処理装置に送信する。上記情報処理装置は、上記複数のコントローラの各々から受信した上記第１動作データに基づいて、複数の上記製造装置の動作の模範となる基準動作データを生成し、当該基準動作データを上記複数のコントローラの各々に送信する。上記複数のコントローラの各々は、当該コントローラに設定されている制御パラメータに従って対応する製造装置を駆動し、当該駆動結果として得られる第２動作データが上記基準動作データに近づくように、当該設定されている制御パラメータを調整する。
【０００７】
好ましくは、上記基準動作データが示す動作の質は、複数の上記第１動作データの内の最良の第１動作データが示す動作の質よりも悪い。
【０００８】
好ましくは、上記情報処理装置は、上記複数のコントローラの各々から受信した上記第１動作データの平均を上記基準動作データとして生成する。
【０００９】
好ましくは、上記情報処理装置は、上記複数のコントローラの各々から受信した上記第１動作データの各々が示す動作の質を所定の評価方法で評価し、当該動作の質が最良ではない第１動作データを上記基準動作データとする。
【００１０】
好ましくは、上記情報処理装置は、上記複数のコントローラの各々から受信した上記第１動作データの中から、上記動作の質によって示される順位が中間である第１動作データを特定し、当該第１動作データを上記基準動作データとする。
【００１１】
好ましくは、上記情報処理装置は、上記複数のコントローラの各々から受信した上記第１動作データの中から、上記動作の質が最も悪い第１動作データを特定し、当該第１動作データを上記基準動作データとする。
【００１２】
好ましくは、上記複数のコントローラの各々は、上記第２動作データが上記基準動作データに近づくように、当該コントローラに設定されている制御パラメータの調整と、当該調整後の制御パラメータに従った上記製造装置の駆動とを繰り返し実行する。上記情報処理装置は、上記複数のコントローラの各々が上記制御パラメータを調整する過程で設定できる制御パラメータの範囲の設定を受け付ける。
【００１３】
好ましくは、上記複数のコントローラの各々は、当該コントローラに設定されている制御パラメータをＰＳＯ（Particle Swarm Optimization）処理により調整する。
【００１４】
他の局面に従うと、コントローラに設定されている制御パラメータを調整するための調整方法が提供される。上記コントローラは、当該コントローラに設定されている制御パラメータに従って対応する製造装置を駆動するとともに、当該製造装置の駆動結果として当該製造装置の動作状態を表わす動作データを取得できるように構成されている。上記調整方法は、予め定められた制御パラメータに従って複数の上記製造装置を駆動し、当該駆動結果として複数の上記製造装置の各々について第１動作データを取得するステップと、上記取得された複数の第１動作データに基づいて、複数の上記製造装置の動作の模範となる基準動作データを生成するステップと、複数の上記コントローラの各々に設定されている制御パラメータに従って対応する製造装置を駆動し、当該駆動結果として対応する製造装置の第２動作データを取得するステップと、上記取得された複数の第２動作データの各々が上記基準動作データに近づくように、複数の上記コントローラに設定されている制御パラメータを調整するステップとを備える。
【００１５】
他の局面に従うと、コントローラに設定されている制御パラメータを調整するための調整プログラムが提供される。上記コントローラは、当該コントローラに設定されている制御パラメータに従って対応する製造装置を駆動するとともに、当該製造装置の駆動結果として当該製造装置の動作状態を表わす動作データを取得できるように構成されている。上記調整プログラムは、コンピュータに、予め定められた制御パラメータに従って複数の上記製造装置を駆動し、当該駆動結果として複数の上記製造装置の各々について第１動作データを取得するステップと、上記取得された複数の第１動作データに基づいて、複数の上記製造装置の動作の模範となる基準動作データを生成するステップと、複数の上記コントローラの各々に設定されている制御パラメータに従って対応する製造装置を駆動し、当該駆動結果として対応する製造装置の第２動作データを取得するステップと、上記取得された複数の第２動作データの各々が上記基準動作データに近づくように、複数の上記コントローラに設定されている制御パラメータを調整するステップとを実行させる。
【発明の効果】
【００１６】
ある局面において、製造装置間の性能差を軽減することができる。
本開示の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１７】
【図１】実施の形態に従う情報処理システムの全体構成を示す模式図である。
【図２】実施の形態に従う情報処理装置とコントローラとの間のデータの流れを示すシーケンス図である。
【図３】実施の形態に従うコントローラに設定されている制御パラメータを調整する過程を示す図である。
【図４】実施の形態に従うコントローラに設定されている制御パラメータを調整する過程を示す図である。
【図５】実施の形態に従う情報処理装置の機能構成の一例を示す図である。
【図６】実施の形態に従うコントローラの機能構成の一例を示す図である。
【図７】ＰＩＤ制御を実現するための回路構成の一例を示す図である。
【図８】ＰＳＯ処理のフローを表わす図である。
【図９】動作データの評価処理を概略的に示す概念図である。
【図１０】変動可能範囲を設定するための設定画面の一例を示す図である。
【図１１】所定の制御パラメータで実施の形態に従う製造装置を駆動した結果を示す図である。
【図１２】基準動作データの生成処理を表わすフローチャートである。
【図１３】実施の形態に従う情報処理装置のハードウェア構成を示す模式図である。
【図１４】実施の形態に従うコントローラのハードウェア構成を示す模式図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００１９】
＜Ａ．情報処理システム１の全体構成＞
まず、実施の形態に従う情報処理システム１の全体構成について説明する。図１は、情報処理システム１の全体構成を示す模式図である。
【００２０】
情報処理システム１は、たとえば、情報処理装置１００と、コントローラ２００Ａ〜２００Ｃと、製造装置３００Ａ〜３００Ｃとで構成されている。以下では、コントローラ２００Ａ〜２００Ｃの１つを代表してコントローラ２００ともいう。製造装置３００Ａ〜３００Ｃの１つを代表して製造装置３００ともいう。
【００２１】
情報処理装置１００は、たとえば、コントローラ２００を管理するためのサーバである。情報処理装置１００およびコントローラ２００は、任意のネットワーク６（たとえば、インターネットやＶＰＮ（Virtual Private Network）など）を介してネットワーク接続されている。なお、情報処理装置１００およびコントローラ２００の間の通信は、セキュアであることが好ましく、典型的には、送受信するデータの暗号化、および／または、通信回線自体をセキュアなものにするといった手法が採用される。
【００２２】
コントローラ２００は、ＰＬＣと称される産業用のコントローラである。コントローラ２００は、設定されている制御パラメータに従って対応する製造装置３００（たとえば、ロボット）を制御する。より具体的には、コントローラ２００は、製造装置３００との間で、フィールド信号（各種センサで検出された入力信号（アナログおよび／またはデジタル）、ならびに、各種アクチュエータへ与える出力信号（アナログおよび／またはデジタル））を遣り取りすることで、各種の製造装置３００を制御する。
【００２３】
なお、図１には、情報処理システム１が１つの情報処理装置１００で構成されている例が示されているが、情報処理システム１は、複数の情報処理装置１００で構成されてもよい。また、図１には、情報処理システム１が３つのコントローラ２００で構成されている例が示されているが、情報処理システム１は、２つ以上のコントローラ２００で構成されればよい。また、図１には、情報処理システム１が３つの製造装置３００で構成されている例が示されているが、情報処理システム１は、２つ以上の製造装置３００で構成されればよい。
【００２４】
＜Ｂ．制御パラメータの調整処理＞
本実施の形態に従う情報処理システム１は、製造装置３００Ａ〜３００Ｃ間での性能差を軽減するために、コントローラ２００Ａ〜２００Ｃの各々に設定されている制御パラメータを調整する。以下では、図２〜図４を参照して、情報処理システム１による制御パラメータの調整処理について説明する。図２は、情報処理装置１００とコントローラ２００との間のデータの流れを示すシーケンス図である。図３および図４は、コントローラ２００Ａ〜２００Ｃに設定されている制御パラメータを調整する過程を示す図である。
【００２５】
ステップＳ１０において、情報処理装置１００は、コントローラ２００Ａ〜２００Ｃのそれぞれに共通制御パラメータ（予め定められた制御パラメータ）を送信する。すなわち、同一の制御パラメータがコントローラ２００Ａ〜２００Ｃに送信される。共通制御パラメータは、予め設定されていてもよいし、ユーザによって任意に設定されてもよいし、コントローラ２００Ａ〜２００Ｃのいずれかから採用されてもよい。
【００２６】
ステップＳ１２において、コントローラ２００Ａは、情報処理装置１００から共通制御パラメータを受信したことに基づいて、当該共通制御パラメータに従って対応する製造装置３００Ａを駆動する。一例として、製造装置３００Ａは、ＰＩＤ制御によって制御される。ＰＩＤ制御の詳細については後述する。同様に、コントローラ２００Ｂは、共通制御パラメータに従って対応する製造装置３００Ｂを駆動する。同様に、コントローラ２００Ｃは、共通制御パラメータに従って対応する製造装置３００Ｃを駆動する。
【００２７】
ステップＳ１４において、コントローラ２００Ａは、共通制御パラメータでの駆動結果として、製造装置３００Ａの動作データ２０Ａ（第１動作データ）を取得する。動作データ２０Ａは、製造装置３００の動作状態を表わすデータである。一例として、製造装置３００Ａが製品を搬送する製造ラインやロボットなどの搬送装置を装置構成として含む場合には、動作データ２０Ａは、時間と当該搬送装置の位置との関係を表わす。
【００２８】
同様に、コントローラ２００Ｂは、共通制御パラメータでの駆動結果として、製造装置３００Ｂの動作データ２０Ｂを取得する。同様に、コントローラ２００Ｃは、共通制御パラメータでの駆動結果として、製造装置３００Ｃの動作データ２０Ｃを取得する。コントローラ２００Ａ〜２００Ｃは、それぞれ、動作データ２０Ａ〜２０Ｃを情報処理装置１００に送信する。
【００２９】
ステップＳ２０において、情報処理装置１００は、コントローラ２００Ａ〜２００Ｃから受信した動作データ２０Ａ〜２０Ｃに基づいて、製造装置３００Ａ〜３００Ｃの動作の模範となる基準動作データ２１を生成する。このとき、基準動作データ２１が示す動作の質が、動作データ２０Ａ〜２０Ｃの内の最良の動作データが示す動作の質よりも悪くなるように、基準動作データ２１は生成される。動作データが示す動作の質は、所定の評価方法で算出され、たとえば、目標の挙動からの差異で表わされる。目標の挙動からの差異が小さいほど、動作の質は高くなる。
【００３０】
ステップＳ２２において、情報処理装置１００は、ステップＳ２０で生成した基準動作データ２１をコントローラ２００Ａ〜２００Ｃのそれぞれに送信する。
【００３１】
ステップＳ２４において、コントローラ２００Ａは、情報処理装置１００から基準動作データ２１を受信すると、コントローラ２００Ａに設定されている制御パラメータに従って製造装置３００Ａを駆動する。コントローラ２００Ａは、設定されている制御パラメータでの駆動結果として得られる動作データ（第２動作データ）が基準動作データ２１に近づくように、当該設定されている制御パラメータを調整する。一例として、制御パラメータの調整は、ＰＳＯ処理により実現される。ＰＳＯ処理の詳細については後述する。コントローラ２００Ｂ，２００Ｃの各々も同様に基準動作データ２１に基づいて自身に設定されている制御パラメータを調整する。
【００３２】
以上のように、敢えてパフォーマンスが最良ではない動作データに合わせて基準動作データ２１が生成されることで、製造装置３００Ａ〜３００Ｃは、性能限界を超えない範囲で制御パラメータを設定することができる。その結果、製造装置３００Ａ〜３００Ｃ間での性能差が軽減される。
【００３３】
なお、図２のステップＳ１０では、情報処理装置１００がコントローラ２００の各々に共通制御パラメータを送信する例について説明を行ったが、共通制御パラメータは、コントローラ２００の各々に予め格納されていてもよい。また、図２のステップＳ１０では、コントローラ２００間での共通制御パラメータが必ずしも用いられる必要はなく、コントローラ２００の各々に現在設定されている制御パラメータが共通制御パラメータの代わりに用いられてもよい。
【００３４】
＜Ｃ．情報処理装置１００の機能構成＞
図５を参照して、情報処理装置１００の機能について説明する。図５は、情報処理装置１００の機能構成の一例を示す図である。
【００３５】
情報処理装置１００は、主要なハードウェア構成として、制御装置１０１と、記憶装置１２０とを含む。制御装置１０１は、機能構成として、生成部１５２を含む。
【００３６】
生成部１５２は、コントローラ２００の制御パラメータを調整する処理の実行命令を受け付けたことに基づいて、コントローラ２００Ａ〜２００Ｃの各々に共通制御パラメータ１２４を送信する。一例として、調整処理の実行命令は、情報処理装置１００が調整処理の実行操作をユーザから受け付けたことに基づいて発せられる。
【００３７】
生成部１５２は、共通制御パラメータ１２４をコントローラ２００に送信した応答結果として、コントローラ２００の各々から動作データ２０を取得する。動作データ２０は、コントローラ２００が共通制御パラメータ１２４に従って製造装置３００を駆動して得られた動作結果である。
【００３８】
生成部１５２は、コントローラ２００Ａ〜２００Ｃの各々から受信した動作データ２０Ａ〜２０Ｃに基づいて、製造装置３００Ａ〜３００Ｃの動作の模範となる基準動作データ２１を生成する。上述のように、基準動作データ２１は、コントローラ２００Ａ〜２００Ｃ間の性能差を低減するために利用される基準となるデータである。基準動作データ２１は、様々な方法で生成される。
【００３９】
ある局面において、情報処理装置１００は、動作データ２０Ａ〜２０Ｃの平均を基準動作データ２１として生成する。これにより、製造装置３００Ａ〜３００Ｃの性能は、製造装置３００Ａ〜３００Ｃの性能の平均に合わせられ、製造装置３００Ａ〜３００間の性能差を無理なく軽減することができる。
【００４０】
他の局面において、情報処理装置１００は、動作データ２０Ａ〜２０Ｃの各々が示す動作の質を所定の評価方法で評価する。動作データ２０は、安定していることが好ましいので、動作データ２０の質は、たとえば、所定値をオーバーシュートした回数や、所定範囲に安定するまでの時間などで表わされる。情報処理装置１００は、評価結果として得られた動作の質が最良ではない動作データ２０を基準動作データ２１とする。
【００４１】
好ましくは、情報処理装置１００は、動作データ２０Ａ〜２０Ｃの中から、動作の質によって示される順位が中間である動作データ２０を特定し、動作データ２０を基準動作データ２１とする。これにより、製造装置３００Ａ〜３００Ｃの性能は、パフォーマンスが中間である製造装置３００に合わせられ、製造装置３００Ａ〜３００間の性能差を無理なく軽減することができる。
【００４２】
あるいは、情報処理装置１００は、動作データ２０Ａ〜２０Ｃの中から、評価結果として得られた動作の質が最も悪い動作データ２０を特定し、当該動作データ２０を基準動作データ２１とする。パフォーマンスが最も悪い製造装置に性能を合わせることで、製造装置３００Ａ〜３００Ｃ間の性能差を確実に軽減することができる。
【００４３】
＜Ｄ．コントローラ２００の機能構成＞
図６〜図９を参照して、コントローラ２００の機能について説明する。図６は、コントローラ２００の機能構成の一例を示す図である。
【００４４】
コントローラ２００は、主要なハードウェア構成として、制御装置２０１と、記憶装置２２０とを含む。制御装置２０１は、機能構成として、ＰＩＤ制御を実行するためのＰＩＤ制御部２５２と、ＰＳＯ処理を実行するためのＰＳＯ処理部２５４とを含む。
【００４５】
以下では、ＰＩＤ制御部２５２およびＰＳＯ処理部２５４について順に説明する。
［Ｄ１．ＰＩＤ制御部２５２］
引き続き図６を参照しつつ、図７を参照して、ＰＩＤ制御部２５２について説明する。図７は、ＰＩＤ制御部２５２によるＰＩＤ制御を実現するための回路構成の一例を示す図である。
【００４６】
製造装置３００は、サーボドライバ３０１と、製造装置３００内の各種装置を駆動するためのモータ３０２と、モータ３０２の制御対象の位置（または速度）を検知するためのエンコーダ３０３とを含む。
【００４７】
サーボドライバ３０１は、ＰＩＤ制御部２５２から位置指令値（または速度指令値）を受け付けると、モータ３０２を駆動するための電気信号を出力する。ＰＩＤ制御部２５２には、エンコーダ３０３での検出値に基づく現在位置ｘ（ｔ）（または現在速度）がフィードバックされる。現在位置ｘ（ｔ）は、時刻「ｔ」におけるモータ３０２の駆動対象の位置を表わす。エンコーダ３０３から出力される現在位置ｘ（ｔ）の推移は、動作データ２０としてコントローラ２００に出力される。
【００４８】
ＰＩＤ制御部２５２は、減算器１７１，１７３と、微分器１７２，１７８，１８１と、係数演算器１７４，１７５，１７７，１８０，１８２と、積分器１７６と、加算器１７９とを含む。
【００４９】
エンコーダ３０３からフィードバックされ現在位置ｘ（ｔ）は、係数演算器１８２で「ＫＸ」倍に増幅／減衰された上で減算器１７１に出力される。増減率「ＫＸ」は、制御パラメータ２２４に規定されている。減算器１７１は、予め設定されている目標位置ｘｄ（図６の目標位置２２６に対応）から現在位置ｘ（ｔ）を差分することで差分結果Δｘ（ｔ）を算出する。差分結果Δｘ（ｔ）は、微分器１７２に出力される。
【００５０】
微分器１７２は、差分結果Δｘ（ｔ）を時間微分し、目標速度ｖｄ（ｔ）を出力する。目標速度ｖｄ（ｔ）は、減算器１７３に出力される。
【００５１】
エンコーダ３０３からフィードバックされ現在位置ｘ（ｔ）は、係数演算器１８２で「ＫＶ」倍に増幅／減衰されるとともに、微分器１８１で時間微分された上で減算器１７３に出力される。増減率「ＫＶ」は、制御パラメータ２２４に規定されている。減算器１７３は、微分器１７２から出力される目標速度ｖｄ（ｔ）から現在速度ｖ（ｔ）を差分することで差分結果Δｖ（ｔ）を算出する。差分結果Δｖ（ｔ）は、係数演算器１７４，１７５，１７７のそれぞれに出力される。
【００５２】
係数演算器１７４は、制御パラメータ２２４に規定されている比例定数「ＫＰ」に基づいて、減算器１７３から出力される差分結果Δｖ（ｔ）を増幅／減衰する。その結果、差分結果Δｖ（ｔ）は、「ＫＰ」倍に増幅／減衰される。増幅／減衰後の差分結果Δｖ（ｔ）は、加算器１７９に出力される。
【００５３】
係数演算器１７５は、制御パラメータ２２４に規定されている積分定数「ＫＩ」に基づいて、減算器１７３から出力される差分結果Δｖ（ｔ）を増幅／減衰する。その結果、差分結果Δｖ（ｔ）は、「ＫＩ」倍に増幅／減衰される。増幅／減衰後の差分結果Δｖ（ｔ）は、積分器１７６に出力される。積分器１７６は、係数演算器１７５によって増幅／減衰された差分結果Δｖ（ｔ）を時間積分する。積分結果は、加算器１７９に出力される。
【００５４】
係数演算器１７７は、制御パラメータ２２４に規定されている微分定数「ＫＤ」に基づいて、減算器１７３から出力される差分結果Δｖ（ｔ）を増幅／減衰する。その結果、差分結果Δｖ（ｔ）は、「ＫＤ」倍に増幅／減衰される。増幅／減衰後の差分結果Δｖ（ｔ）は、微分器１７８に出力される。微分器１７８は、係数演算器１７７によって増幅／減衰された差分結果Δｖ（ｔ）を時間微分する。微分結果は、加算器１７９に出力される。
【００５５】
加算器１７９は、係数演算器１７４から出力される増幅／減衰後の差分結果Δｖ（ｔ）と、積分器１７６から出力される積分結果と、微分器１７８から出力される微分結果とを加算し、その加算結果をサーボドライバ３０１に出力する。サーボドライバ３０１は、当該加算結果に応じた制御信号を生成し、当該制御信号に基づいてモータ３０２を制御する。
【００５６】
以上のように、ＰＩＤ制御部２５２は、エンコーダ３０３からフィードバックされた現在位置ｘ（ｔ）と目標位置ｘｄとの比較を繰り返しながらサーボドライバ３０１を制御することで、モータ３０２の駆動対象を目標位置ｘｄに移動させる。
【００５７】
［Ｄ２．ＰＳＯ処理部２５４］
ＰＳＯ処理部２５４によるＰＳＯ処理について説明する前に、まず、一般的なＰＳＯ処理について説明する。
【００５８】
ＰＳＯ処理は、粒子群最適化処理とも呼ばれ、多次元のパーティクル群でモデル化される。各パーディクルは、他のパーディクルと情報交換を行いながら、自身の位置および速度を調整することで、自身の最適な位置を探索する。ｎ次元で表わされるパーティクル群は、下記式（１）に示される位置ベクトルｘ（ｉ、ｊ）と、下記式（２）に示される移動ベクトルｖ（ｉ、ｊ）とで表わされる。
【００５９】
ｘ（ｉ、ｊ）＝（ｘｉ１，ｘｉ２，・・・，ｘｉｊ，・・・，ｘｉｎ）・・・（１）
ｖ（ｉ、ｊ）＝（ｖｉ１，ｖｉ２，・・・，ｖｉｊ，・・・，ｖｉｎ）・・・（２）
式（１），（２）に示される「ｉ」は、パーティクルの番号を示す。「ｊ」は、要素番号を示す。
【００６０】
各パーティクルは、下記の式（３）に基づいて新たな移動ベクトルｖ（ｉ＋１、ｊ、ｋ）を算出する。その後、各パーティクルは、下記式（４）に基づいて現在の位置ベクトルｘ（ｉ、ｊ、ｋ）から新たな位置ベクトルｘ（ｉ＋１、ｊ、ｋ）に移動する。
【００６１】
ｖ（ｉ、ｊ、ｋ＋１）＝ｗ・ｖ（ｉ、ｊ、ｋ）＋ｃ１・ｒ１・（ｐｂｅｓｔ（ｉ、ｊ）−ｘ（ｉ、ｊ、ｋ））＋ｃ２・ｒ２・（ｇｂｅｓｔ（ｊ）−ｘ（ｉ、ｊ、ｋ））・・・（３）
ｘ（ｉ、ｊ、ｋ＋１）＝ｘ（ｉ、ｊ、ｋ）＋ｖ（ｉ、ｊ、ｋ＋１）・・・（４）
式（３），（４）に示される「ｋ」は、式（３），（４）の実行回数に相当する反復回数を表わす。「ｗ」，「ｃ１」，「ｃ２」は、予め定められた重み係数を表わす。「ｒ１」，「ｒ２」は、０以上１以下の乱数を表わす。「ｐｂｅｓｔ（ｉ、ｊ）」は、これまでの反復で発見された各パーティクルの最良位置を表わす。「ｇｂｅｓｔ（ｊ）」は、これまでの反復で発見された全パーティクルでの最良位置を表わす。
【００６２】
式（３），（４）の処理が繰り返されることで、位置ベクトルｘ（ｉ、ｊ）は、最適解に収束する。
【００６３】
以下では、図８を参照して、ＰＳＯ処理部２５４によるＰＳＯ処理について説明する。図８は、ＰＳＯ処理部２５４によるＰＳＯ処理のフローを表わす図である。
【００６４】
ＰＳＯ処理部２５４は、ＰＩＤ制御で用いる制御パラメータを上記ＰＳＯ処理により目標値に収束させる。調整対象の制御パラメータは、たとえば、上述の係数演算器１７４，１７５，１７７，１８０，１８２（図７参照）に設定される増減率Ｋｐ，ＫＩ，ＫＤ，ＫＸ，ＫＶの少なくとも１つである。
【００６５】
説明を簡単にするために、以下では、調整対象の制御パラメータが１つである前提で説明を行う。この場合には、式（１）〜（４）に示されるように要素数「ｊ」を考慮する必要がなくなる。
【００６６】
ステップＳ１１０において、ＰＳＯ処理部２５４は、パーティクルを表わす制御パラメータＫｘ（ｉ、ｋ）と、各制御パラメータの移動ベクトルＫｖ（ｉ、ｋ）を生成する。ここでの「ｉ」は、パーティクル番号を表わし、０以上でありｎよりも小さい。「ｎ」は、パーティクル数を表わす。すなわち、ステップＳ１１０の処理によりｎ個のパーティクルが生成される。「ｋ」は、反復回数を表わし、ステップＳ１１０においては「０」に設定される。ステップＳ１１０においては、制御パラメータＫｘ（ｉ、ｋ）の各々に、たとえば、予め定められた範囲内でのランダムなパラメータ値が初期値として設定される。移動ベクトルＫｖ（ｉ、ｋ）の各々には、予め定められた初期値（たとえば、０）が設定される。
【００６７】
ステップＳ１１２において、ＰＳＯ処理部２５４は、下記の式（５）に基づいて新たな移動ベクトルＫｖ（ｉ＋１、ｋ）を生成し、下記式（６）に基づいて現在の制御パラメータＫｘ（ｉ、ｋ）を新たな制御パラメータＫｘ（ｉ＋１、ｋ）に更新する。なお、式（５）は上記式（３）に対応し、式（６）は上記式（４）に対応する。
【００６８】
Ｋｖ（ｉ＋１、ｋ）＝ｗ・Ｋｖ（ｉ、ｋ）＋ｃ１・ｒ１・（ｐｂｅｓｔ（ｉ）−Ｋｘ（ｉ、ｋ））＋ｃ２・ｒ２・（ｇｂｅｓｔ−Ｋｘ（ｉ、ｋ））・・・（５）
Ｋｘ（ｉ＋１、ｋ）＝Ｋｘ（ｉ、ｋ）＋Ｋｖ（ｉ＋１、ｋ）・・・（６）
式（５），（６）に示される「ｗ」，「ｃ１」，「ｃ２」は、重み係数を表わす。「ｒ１」，「ｒ２」は、０以上１以下の乱数を表わす。「ｐｂｅｓｔ（ｉ）」は、これまでの反復で発見された各パーティクルの制御パラメータの最良値を表わす。「ｇｂｅｓｔ」は、これまでの反復で発見された全パーティクルでの制御パラメータの最良値を表わす。
【００６９】
ステップＳ１１４において、ＰＳＯ処理部２５４は、更新後の制御パラメータＫｘ（ｉ＋１、ｋ）に従って製造装置３００をＰＩＤ制御する。このとき、ＰＩＤ制御は、制御パラメータＫｘ（ｉ＋１、ｋ）の数だけ繰り返される。すなわち、ＰＩＤ制御は、パーティクル数の分だけ繰り返される。その結果、パーティクル数の分だけ動作データが得られる。
【００７０】
ステップＳ１１６において、ＰＳＯ処理部２５４は、ステップＳ１１４で得られた動作データのそれぞれを上述の基準動作データ２１と比較することで、各動作データを評価する。
【００７１】
図９は、動作データの評価処理を概略的に示す概念図である。図９に示されるように、ステップＳ１１４において動作データ２０Ａ１〜２０Ａ３が得られたとする。この場合、ＰＳＯ処理部２５４は、動作データ２０Ａ１から基準動作データ２１を差分することで差分データ２４Ａ１を算出する。差分データ２４Ａ１は、動作データ２０が基準動作データ２１と異なる度合いを示す。ＰＳＯ処理部２５４は、差分データ２４Ａ１に基づいて、動作データ２０Ａ１と基準動作データ２１との差異の大きさを示す評価値「Ａ１」を算出する。一例として、評価値「Ａ１」は、差分データ２４Ａ１を時間積分することで得られる。あるいは、評価値「Ａ１」は、正の所定値をオーバーシュートした回数、負の所定値をアンダーシュートした回数、または、これらの回数の合計で表わされる。
【００７２】
同様に、ＰＳＯ処理部２５４は、動作データ２０Ａ２から基準動作データ２１を差分することで差分データ２４Ａ２を算出し、差分データ２４Ａ２に基づいて動作データ２０Ａ２に対する評価値「Ａ２」を算出する。同様に、ＰＳＯ処理部２５４は、動作データ２０Ａ３から基準動作データ２１を差分することで差分データ２４Ａ３を算出し、差分データ２４Ａ３に基づいて動作データ２０Ａ３に対する評価値「Ａ３」を算出する。
【００７３】
評価値「Ａ１」〜「Ａ３」は、基準動作データ２１との差異の大きさに相関するので、評価値「Ａ１」〜「Ａ３」が小さい動作データであるほど、基準動作データ２１の挙動に近いことを示す。反対に、評価値「Ａ１」〜「Ａ３」が大きい動作データであるほど、基準動作データ２１の挙動から遠いことを示す。
【００７４】
再び図８を参照して、ステップＳ１１８において、ＰＳＯ処理部２５４は、ステップＳ１１６での評価結果に基づいて、各パーティクルが示す制御パラメータの最良値「ｐｂｅｓｔ（ｉ）」を各パーティクルについて更新する。一例として、評価値「Ａ１」が最良値「ｐｂｅｓｔ（０）」よりも良好である場合には、ＰＳＯ処理部２５４は、評価値「Ａ１」で「ｐｂｅｓｔ（０）」を更新する。評価値「Ａ２」が最良値「ｐｂｅｓｔ（１）」よりも良好である場合には、ＰＳＯ処理部２５４は、評価値「Ａ２」で「ｐｂｅｓｔ（１）」を更新する。評価値「Ａ３」が最良値「ｐｂｅｓｔ（２）」よりも良好である場合には、ＰＳＯ処理部２５４は、評価値「Ａ３」で「ｐｂｅｓｔ（２）」を更新する。このような更新処理が全パーティクルについて実行される。
【００７５】
ステップＳ１２０において、ＰＳＯ処理部２５４は、ステップＳ１１６での評価結果に基づいて、全パーティクルが示す制御パラメータの最良値「ｇｂｅｓｔ」を更新する。一例として、評価値「Ａ１」〜「Ａ３」のいずれかが最良値「ｐｂｅｓｔ」よりも良好である場合には、ＰＳＯ処理部２５４は、評価値「Ａ１」〜「Ａ３」の内の最良値で最良値「ｐｂｅｓｔ」を更新する。
【００７６】
ステップＳ１２２において、ＰＳＯ処理部２５４は、ステップＳ１１２〜Ｓ１２０の処理が所定の反復回数繰り返されたか否かを判断する。一例として、制御装置１０１は、反復回数を表わす変数「ｋ」が所定数以上になったことに基づいて、ステップＳ１１２〜Ｓ１２０の処理が所定の反復回数繰り返されたと判断する。ＰＳＯ処理部２５４は、ステップＳ１１２〜Ｓ１２０の処理が所定の反復回数繰り返されたと判断した場合（ステップＳ１２２においてＹＥＳ）、制御をステップＳ１２６に切り替える。そうでない場合には（ステップＳ１２２においてＮＯ）、ＰＳＯ処理部２５４は、制御をステップＳ１２４に切り替える。
【００７７】
ステップＳ１２４において、ＰＳＯ処理部２５４は、反復回数を表わす変数「ｋ」をインクリメントする。すなわち、ＰＳＯ処理部２５４は、変数「ｋ」を１プラスする。
【００７８】
ステップＳ１２６において、ＰＳＯ処理部２５４は、最良値「ｐｂｅｓｔ」を制御パラメータとして採用する。その結果、ＰＳＯ処理部２５４は、コントローラ２００に設定されている制御パラメータ２２４（図６参照）を最良値「ｐｂｅｓｔ」で書き換える。
【００７９】
このように、ＰＳＯ処理部２５４は、得られた動作データ２０が基準動作データ２１に近づくように、現在設定されている制御パラメータの調整と、当該調整後の制御パラメータに従った製造装置の駆動とを繰り返し実行する。これにより、基準動作データ２１の挙動を実現するための制御パラメータで製造装置３００を駆動することができる。
【００８０】
なお、上述では、ＰＳＯ処理により制御パラメータを調整する例について説明を行ったが、制御パラメータの調整は、その他の最適化方法で実現されてもよい。たとえば、制御パラメータの調整は、ＧＡ（Genetic Algorithm）によって実現されてもよい。
【００８１】
＜Ｅ．制御パラメータの範囲設定＞
ＰＳＯ処理部２５４は、コントローラ２００の各々が制御パラメータを調整する過程で設定できる制御パラメータの範囲（以下、「変動可能範囲」ともいう。）の設定を受け付ける。ＰＳＯ処理部２５４は、ＰＳＯ処理の実行中には、設定された変動可能範囲内で制御パラメータの調整を繰り返す。
【００８２】
以下では、図１０および図１１を参照して、変動可能範囲の設定方法の一例について説明する。図１０は、変動可能範囲を設定するための設定画面４１の一例を示す図である。
【００８３】
設定画面４１は、情報処理装置１００に接続されているディスプレイ１１１に表示される。設定画面４１は、たとえば、上述の係数演算器１８０，１８２（図７参照）に設定される増減率ＫＸ，ＫＶの制御パラメータについて変動可能範囲の設定を受け付ける。
【００８４】
より具体的には、情報処理装置１００は、座標Ｐｘ１〜Ｐｘ３の指定をグラフ４２上で受け付けることにより、増減率ＫＸについての変動可能範囲の設定を受け付ける。また、情報処理装置１００は、座標Ｐｖ１〜Ｐｖ３の指定をグラフ４２上で受け付けることにより、増減率ＫＶについての変動可能範囲の設定を受け付ける。一例として、ユーザは、マウス操作に連動するポインタ４３で座標Ｐｘ１〜Ｐｘ３，Ｐｖ１〜Ｐｖ３のいずれかを選択（クリック）した上で当該選択した座標を移動させることができる。あるいは、座標Ｐｘ１〜Ｐｘ３，Ｐｖ１〜Ｐｖ３の数値が直接入力されてもよい。これにより、グラフ４２の原点および座標Ｐｘ１，Ｐｖ１で囲まれる領域「１」と、座標Ｐｘ１，Ｐｘ２，Ｐｖ１，Ｐｖ２で囲まれる領域「２」と、座標Ｐｘ２，Ｐｘ３，Ｐｖ２，Ｐｖ３で囲まれる領域「３」とが指定される。
【００８５】
上述のように、ＰＳＯ処理部２５４は、設定されている制御パラメータで製造装置３００を駆動して得られた動作データ２０が基準動作データ２１に近づくように、設定されている制御パラメータの調整と、当該調整後の制御パラメータに従った製造装置の駆動とを繰り返し実行する。領域「１」は、当該調整過程で制御パラメータが変動可能な範囲を示し、最終的に設定される制御パラメータとしては採用され得ない範囲を示す。領域「２」は、当該調整過程で制御パラメータが変動可能な範囲を示し、最終的に設定される制御パラメータとして採用され得る範囲を示す。領域「３」は、当該調整過程で設定され得ない制御パラメータの範囲を示し、最終的に設定される制御パラメータとしても採用され得ない範囲を示す。
【００８６】
このように、情報処理装置１００は、ＰＳＯ処理における制御パラメータの調整過程で設定可能な制御パラメータの範囲と、ＰＳＯ処理による最終出力結果として採用可能な制御パラメータの範囲とを受け付ける。これらの範囲が設定されることで、ＰＳＯ処理での制御パラメータの収束が早くなり、また、制御パラメータを正確に設定することができる。
【００８７】
好ましくは、各パーティクル（制御パラメータ）がＰＳＯ処理過程で領域「３」に該当した場合には、当該パーティクルについては制御パラメータの候補から省かれる。あるいは、当該パーティクルについては、領域「１」，「２」に属するようにパーティクルの値が補正された上でＰＳＯ処理が続行される。
【００８８】
図１１は、領域「１」〜「３」上の制御パラメータで製造装置３００を駆動した結果を示す図である。より具体的には、領域「１」上の制御パラメータＰ１で製造装置３００を駆動した結果が動作データ５１として示されている。領域「２」上の制御パラメータＰ２で製造装置３００を駆動した結果が動作データ５２として示されている。領域「３」上の制御パラメータＰ３で製造装置３００を駆動した結果が動作データ５３として示されている。領域「２」上の制御パラメータＰ２による動作データ５２が示す挙動が、領域「１」，「３」上の制御パラメータＰ１，Ｐ３による動作データ５１，５３が示す挙動よりも基準動作データ２１に近いことが分かる。
【００８９】
なお、上述では、増減率ＫＸ，ＫＶの制御パラメータについて変動可能範囲を設定する例について説明を行ったが、変動可能範囲が設定される対象の制御パラメータは、増減率ＫＸ，ＫＶに限定されない。たとえば、増減率Ｋｐ，ＫＩ，ＫＤ，ＫＸ，ＫＶ（図７参照）の内の少なくとも１つについて変動可能範囲が設定されてもよい。あるいは、コントローラ２００によって使用されるその他の制御パラメータについて変動可能範囲が設定されてもよい。
【００９０】
＜Ｆ．情報処理装置１００の制御構造＞
図１２を参照して、情報処理装置１００の制御構造について説明する。図１２は、上述の基準動作データ２１の生成処理を表わすフローチャートである。図１２の処理は、情報処理装置１００の生成部１５２（図５参照）がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００９１】
ステップＳ１５０において、生成部１５２は、制御パラメータの調整処理の実行命令を受け付けたか否かを判断する。生成部１５２は、制御パラメータの調整処理の実行命令を受け付けたと判断した場合（ステップＳ１５０においてＹＥＳ）、制御をステップＳ１５２に切り替える。そうでない場合には（ステップＳ１５０においてＮＯ）、生成部１５２は、ステップＳ１５０の処理を再び実行する。
【００９２】
ステップＳ１５２において、生成部１５２は、共通制御パラメータ１２４（図５参照）をコントローラ２００の各々に送信する。共通制御パラメータ１２４は、予め設定されていてもよいし、ユーザによって任意の値に設定されてもよい。
【００９３】
ステップＳ１５４において、生成部１５２は、共通制御パラメータ１２４に従って製造装置３００を駆動した駆動結果として製造装置３００の動作状態を示す動作データをコントローラ２００の各々から受信する。
【００９４】
ステップＳ１５６において、生成部１５２は、コントローラ２００の各々から受信した動作データに基づいて、基準動作データ２１を生成する。基準動作データ２１の生成方法については図５で説明した通りであるので、その説明については繰り返さない。
【００９５】
ステップＳ１５８において、生成部１５２は、基準動作データ２１をコントローラ２００の各々に送信する。コントローラ２００の各々は、基準動作データ２１を受信したことに基づいて、上述のＰＳＯ処理を実行することで、基準動作データ２１の挙動を実現するための制御パラメータに現在設定されている制御パラメータを書き換える。
【００９６】
＜Ｇ．ハードウェア構成＞
図１３および図１４を参照して、情報処理装置１００およびコントローラ２００のハードウェア構成について説明する。図１３は、情報処理装置１００のハードウェア構成を示す模式図である。図１４は、コントローラ２００のハードウェア構成を示す模式図である。
【００９７】
［Ｇ１．情報処理装置１００のハードウェア構成］
まず、図１３を参照して、情報処理装置１００のハードウェア構成について説明する。
【００９８】
情報処理装置１００は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。情報処理装置１００は、たとえば、サーバである。情報処理装置１００は、制御装置１０１と、主メモリ１０２と、通信インターフェイス１０３と、操作インターフェイス１０５と、表示インターフェイス１０６と、光学ドライブ１０７と、記憶装置１２０とを含む。これらのコンポーネントは、内部バス１１９を介して互いに通信可能に接続されている。
【００９９】
制御装置１０１は、たとえば、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ（Central  Processing  Unit）、少なくとも１つのＡＳＩＣ（Application  Specific  Integrated  Circuit）、少なくとも１つのＦＰＧＡ（Field  Programmable  Gate  Array）、またはそれらの組み合わせなどによって構成される。制御装置１０１は、記憶装置１２０に格納されているプログラム１２２（調整プログラム）を主メモリ１０２に展開して実行することで、本実施の形態に従う各種処理を実現する。主メモリ１０２は、揮発性メモリにより構成され、制御装置１０１によるプログラム実行に必要なワークメモリとして機能する。
【０１００】
通信インターフェイス１０３は、外部機器との間でネットワークを介してデータを遣り取りする。当該外部機器は、たとえば、コントローラ２００、その他の通信機器などを含む。情報処理装置１００は、通信インターフェイス１０３を介して、本実施の形態に従うプログラム１２２をダウンロードできるように構成されてもよい。
【０１０１】
操作インターフェイス１０５は、入力装置１１０に接続され、入力装置１１０からのユーザ操作を示す信号を取り込む。入力装置１１０は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。
【０１０２】
表示インターフェイス１０６は、ディスプレイ１１１と接続され、制御装置１０１などからの指令に従って、ディスプレイ１１１に対して、画像を表示するための画像信号を送出する。ディスプレイ１１１は、たとえば、液晶ディスプレイ、有機ＥＬ（Electro  Luminescence）ディスプレイ、またはその他の表示機器である。
【０１０３】
光学ドライブ１０７は、光学ディスク１０７Ａなどから、その中に格納されている各種プログラムを読み出して、記憶装置１２０にインストールする。図１３には、光学ドライブ１０７を介して必要なプログラムを情報処理装置１００にインストールする構成例を示すが、これに限られることなく、ネットワーク上のサーバ装置などからダウンロードするようにしてもよい。あるいは、情報処理装置１００上のプログラムは、ＵＳＢ（Universal Serial Bus）メモリ、ＳＤ（Secure Digital）カード、ＣＦ（Compact Flash）などの記憶媒体に書き込まれているプログラムによって書き換えられるように構成されてもよい。
【０１０４】
記憶装置１２０は、たとえば、ハードディスクや外付けの記憶媒体である。一例として、記憶装置１２０は、本実施の形態に従う各種の処理を実現するためのプログラム１２２と、コントローラ２００間での共通制御パラメータ１２４とを格納する。プログラム１２２および共通制御パラメータ１２４の格納場所は、記憶装置１２０に限定されず、制御装置１０１の記憶領域（たとえば、キャッシュメモリなど）、主メモリ１０２、外部機器（たとえば、コントローラ２００や製造装置３００）などに格納されていてもよい。
【０１０５】
プログラム１２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う情報処理装置１００の趣旨を逸脱するものではない。さらに、本実施の形態に従うプログラム１２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、情報処理装置１００とコントローラ２００と製造装置３００との少なくとも２つが協働して、本実施の形態に従う処理を実現するようにしてもよい。さらに、少なくとも１つのサーバが本実施の形態に従う処理を実現する、所謂クラウドサービスの形態で情報処理装置１００が構成されてもよい。
【０１０６】
［Ｇ２．コントローラ２００のハードウェア構成］
次に、図１４を参照して、コントローラ２００のハードウェア構成について説明する。
【０１０７】
コントローラ２００は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。コントローラ２００は、たとえば、ＰＬＣである。コントローラ２００は、制御装置２０１と、主メモリ２０２と、通信インターフェイス２０３と、操作インターフェイス２０５と、表示インターフェイス２０６と、光学ドライブ２０７と、記憶装置２２０とを含む。これらのコンポーネントは、内部バス２１９を介して互いに通信可能に接続されている。
【０１０８】
制御装置２０１は、たとえば、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ、少なくとも１つのＡＳＩＣ、少なくとも１つのＦＰＧＡ、またはそれらの組み合わせなどによって構成される。制御装置２０１は、記憶装置２２０に格納されているプログラム２２２（調整プログラム）を主メモリ２０２に展開して実行することで、本実施の形態に従う各種処理を実現する。主メモリ２０２は、揮発性メモリにより構成され、制御装置２０１によるプログラム実行に必要なワークメモリとして機能する。
【０１０９】
通信インターフェイス２０３は、外部機器との間でネットワークを介してデータを遣り取りする。当該外部機器は、たとえば、情報処理装置１００、製造装置３００、その他の通信機器などを含む。コントローラ２００は、通信インターフェイス２０３を介して、本実施の形態に従うプログラム２２２をダウンロードできるように構成されてもよい。
【０１１０】
操作インターフェイス２０５は、入力装置２１０に接続され、入力装置２１０からのユーザ操作を示す信号を取り込む。入力装置２１０は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザ操作を受け付ける。
【０１１１】
表示インターフェイス２０６は、ディスプレイ２１１と接続され、制御装置２０１などからの指令に従って、ディスプレイ２１１に対して、画像を表示するための画像信号を送出する。ディスプレイ２１１は、たとえば、液晶ディスプレイ、有機ＥＬ（Electro  Luminescence）ディスプレイ、またはその他の表示機器である。
【０１１２】
光学ドライブ２０７は、光学ディスク２０７Ａなどから、その中に格納されている各種プログラムを読み出して、記憶装置２２０にインストールする。図１４には、光学ドライブ２０７を介して必要なプログラムをコントローラ２００にインストールする構成例を示すが、これに限られることなく、ネットワーク上のサーバ装置などからダウンロードするようにしてもよい。あるいは、コントローラ２００上のプログラムは、ＵＳＢメモリ、ＳＤカード、ＣＦなどの記憶媒体に書き込まれているプログラムによって書き換えられるように構成されてもよい。
【０１１３】
記憶装置２２０は、たとえば、ハードディスクや外付けの記憶媒体である。一例として、記憶装置２２０は、本実施の形態に従う各種の処理を実現するためのプログラム２２２と、製造装置３００の制御パラメータ２２４と、上述の目標位置２２６（図６参照）とを格納する。プログラム２２２、制御パラメータ２２４、目標位置２２６の格納場所は、記憶装置２２０に限定されず、制御装置２０１の記憶領域（たとえば、キャッシュメモリなど）、主メモリ２０２、外部機器（たとえば、情報処理装置１００や製造装置３００）などに格納されていてもよい。
【０１１４】
プログラム２２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従うコントローラ２００の趣旨を逸脱するものではない。さらに、本実施の形態に従うプログラム２２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、情報処理装置１００とコントローラ２００と製造装置３００との少なくとも２つが協働して、本実施の形態に従う処理を実現するようにしてもよい。さらに、少なくとも１つのサーバが本実施の形態に従う処理を実現する、所謂クラウドサービスの形態でコントローラ２００が構成されてもよい。
【０１１５】
＜Ｈ．まとめ＞
以上のようにして、実施の形態に従う情報処理装置１００は、共通制御パラメータに従って得られた製造装置３００の動作データから、製造装置３００の動作の規範となる基準動作データを生成する。情報処理装置１００は、生成した基準動作データをコントローラ２００の各々に送信する。コントローラ２００の各々は、設定されている制御パラメータに従って得られた動作データが基準動作データに近づくように制御パラメータを調整する。これにより、情報処理装置１００は、製造装置３００間の性能差を低減することができる。
【０１１６】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１１７】
１  情報処理システム、６  ネットワーク、２０，２０Ａ〜２０Ｃ，２０Ａ１〜２０Ａ３，５１〜５３  動作データ、２１  基準動作データ、２４Ａ１〜２４Ａ３  差分データ、４１  設定画面、４２  グラフ、４３  ポインタ、１００  情報処理装置、１０１，２０１  制御装置、１０２，２０２  主メモリ、１０３，２０３  通信インターフェイス、１０５，２０５  操作インターフェイス、１０６，２０６  表示インターフェイス、１０７，２０７  光学ドライブ、１０７Ａ，２０７Ａ  光学ディスク、１１０，２１０  入力装置、１１１，２１１  ディスプレイ、１１９，２１９  内部バス、１２０，２２０  記憶装置、１２２，２２２  制御プログラム、１２４  共通制御パラメータ、１５２  生成部、１７１，１７３  減算器、１７２，１７８，１８１  微分器、１７４，１７５，１７７，１８０，１８２  係数演算器、１７６  積分器、１７９  加算器、２００，２００Ａ〜２００Ｃ  コントローラ、２２４  制御パラメータ、２２６  目標位置、２５２  ＰＩＤ制御部、２５４  ＰＳＯ処理部、３００，３００Ａ〜３００Ｃ  製造装置、３０１  サーボドライバ、３０２  モータ、３０３  エンコーダ。
【図１】
2018116596.tif 000003
【図２】
2018116596.tif 000004
【図３】
2018116596.tif 000005
【図４】
2018116596.tif 000006
【図５】
2018116596.tif 000007
【図６】
2018116596.tif 000008
【図７】
2018116596.tif 000009
【図８】
2018116596.tif 000010
【図９】
2018116596.tif 000011
【図１０】
2018116596.tif 000012
【図１１】
2018116596.tif 000013
【図１２】
2018116596.tif 000014
【図１３】
2018116596.tif 000015
【図１４】
2018116596.tif 000016