(57)【要約】【課題】工程全体で最も適切な制御が可能な制御装置等を実現する。【解決手段】全駆動時間における各工程の時間配分を設定する時間配分設定部（２０１）と、時間配分設定部（２０１）によって設定された時間における最小動作値を算出する動作値算出部（２０２）とを備え、時間配分設定部（２０１）は、各工程の最小動作値の差が所定の範囲となるように全駆動時間における各工程の時間配分を設定する。【選択図】図１
2018060290.tif 000002
【特許請求の範囲】
【請求項１】
複数の工程を含む処理を制御する制御装置であって、
前記処理を実行するための全駆動時間を受け付ける入力受付部と、
前記全駆動時間における前記各工程の時間配分を設定する時間配分設定部と、
前記各工程の処理に必要な動作値であって、前記時間配分設定部によって設定された時間における最小の前記動作値を算出する動作値算出部と、を備え、
前記時間配分設定部は、前記動作値算出部が算出した前記各工程の最小の前記動作値の差が所定の範囲となるように前記全駆動時間における前記各工程の時間配分を設定することを特徴とする制御装置。
【請求項２】
前記各工程において、評価の対象とする評価項目を受け付ける評価項目受付部を備え、
前記評価項目が前記動作値と異なる工程では、
前記動作値算出部は、前記時間配分設定部によって設定された時間における最小の前記評価項目の値を算出し、
前記時間配分設定部は、前記評価項目の値を前記動作値に換算して、前記各工程の最小の前記動作値の差が所定の範囲となるように前記全駆動時間における前記各工程の時間配分を設定することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記処理は、制御対象を初期位置から所定位置まで前記全駆動時間で移動させるものであり、
前記動作値算出部は、前記時間配分設定部によって設定された時間における最小の前記動作値として、トルク値を算出し、
前記各工程における前記制御対象を移動させるための入力軌跡であって、前記動作値算出部が算出したトルク値を用いたトルク波形から生成した入力軌跡を生成する入力軌跡生成部を備えていることを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記入力軌跡生成部は、前記各工程により、前記入力軌跡として前記トルク波形を用いるか、または、前記トルク波形から導出した、前記制御対象の時間と速度との関係を示す速度軌跡、或いは前記制御対象の時間と位置との関係を示す位置軌跡を前記入力軌跡として用いることを特徴とする請求項３に記載の制御装置。
【請求項５】
前記入力軌跡生成部は、前記トルク値の最大値が最小となる切り替えのタイミングおよび前記最大値を数値解析手法により算出し、前記トルク波形を生成することを特徴とする請求項３または４に記載の制御装置。
【請求項６】
複数の工程を含む処理を制御する制御装置の制御方法であって、
前記処理を実行するための全駆動時間を受け付ける入力受付ステップと、
前記全駆動時間における前記各工程の時間配分を設定する時間配分設定ステップと、
前記各工程の処理に必要な動作値であって、前記時間配分設定ステップによって設定された時間における最小の前記動作値を算出する動作値算出ステップと、
前記動作値算出ステップで算出した前記各工程の最小の前記動作値の差が所定の範囲となるように前記全駆動時間における前記各工程の時間配分を再設定する再設定ステップと、を含むことを特徴とする制御装置の制御方法。
【請求項７】
請求項１に記載の制御装置としてコンピュータを機能させるための制御プログラムであって、前記時間配分設定部、および前記動作値算出部としてコンピュータを機能させるための制御プログラム。
【請求項８】
請求項７に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の工程を含む処理を制御する制御装置等に関する。
【背景技術】
【０００２】
機械・設備等の動作の制御において、最適な制御を行う方法としては、最小原理を用いる方法、BANGBANG制御による方法等がある。
【０００３】
また、制御を最適に行う技術に関し、特許文献１には、搬送ベルトの駆動トルク不足を改善する部品実装装置が記載されている。また、特許文献２には、脱調を防止しつつ、パルスモータの速度を目標速度まで短時間で増速させるパルスモータの駆動方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−５８５６１号公報（２０１６年４月２１日公開）
【特許文献２】特開２００９−８１９２２号公報（２００９年４月１６日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した最小原理を用いる方法、BANGBANG制御による方法は、制御区間内における条件が同じであれば好適である。しかし、制御区間内に、条件が異なる複数の工程が含まれる場合、必ずしも適切な制御となるとは限らない。この点について、図１１、１２を参照して説明する。図１１、１２は、従来の最適制御の方法では、制御区間内に条件が異なる複数の工程が含まれる場合、必ずしも適切な制御となるとは限らない例を説明するための図である。
【０００６】
図１１に示すように、勾配がある区間を往復するような動作を制御する場合を考える。この場合、行きは勾配を上り、帰りは勾配を下るということになり、全工程の中に条件の異なる複数の工程が含まれることになる。従来の方法で、このような動作を最適に制御するためには、条件の異なる工程毎に、駆動時間を指定し、当該駆動時間における最適動作値を導出して、最終的に工程全体の入力軌跡を生成する。
【０００７】
すなわち、図１２に示すように、まず、Ａ工程における駆動時間を指定し（Ｓ１２０１）、当該駆動時間における最適動作値を導出し（Ｓ１２０２）、次に、Ｂ工程における駆動時間を指定し（Ｓ１２０３）、当該駆動時間における最適動作値を導出し（Ｓ１２０４）、…という処理を工程分繰り返し、工程全体の入力軌跡を生成する（Ｓ１２ＸＸ）。
【０００８】
そして、上述の処理を、図１１に示す例に当てはめると以下のようになる。工程全体の駆動時間２ｓとすると、条件の異なる工程は、行きと帰りの２つなので、まず、行きの駆動時間を１ｓと指定する。そして、当該駆動時間における最適動作値を導出する。ここでは、例えば、トルク値として３０Ｎｍとなったとする。次に、帰りの駆動時間を１ｓと指定する。そして、当該駆動時間における最適動作値を導出する。ここでは、例えば、トルク値として２０Ｎｍとなったとする。帰りは下りなので、行きよりも低い値となる。
【０００９】
この場合、工程全体を制御するモータは、出力可能なトルク値が３０Ｎｍのものが必要となる。しかし、帰りの工程の最適動作値は２０Ｎｍなので、このモータでは無駄が生じることになる。したがって、工程全体では、必ずしも最適な動作値を導出できてはいない。
【００１０】
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、工程全体で最も適切な制御が可能な制御装置等を実現することにある。
【課題を解決するための手段】
【００１１】
前記課題を解決するために、本発明にかかる制御装置は、複数の工程を含む処理を制御する制御装置であって、前記処理を実行するための全駆動時間を受け付ける入力受付部と、前記全駆動時間における前記各工程の時間配分を設定する時間配分設定部と、前記各工程の処理に必要な動作値であって、前記時間配分設定部によって設定された時間における最小の前記動作値を算出する動作値算出部と、を備え、前記時間配分設定部は、前記動作値算出部が算出した前記各工程の最小の前記動作値の差が所定の範囲となるように前記全駆動時間における前記各工程の時間配分を設定することを特徴としている。
【００１２】
前記の構成によれば、各工程における最小の動作値の差が所定の範囲となるように、全駆動時間における各工程の処理時間の配分が行われる。これにより、各工程の処理に必要な最小の動作値が一定となるので、処理全体を実行する装置に必要な動作値を当該動作値とすることができる。よって、各工程の処理に必要な動作値がバラバラになることにより、処理全体を実行する装置に必要な動作値を、複数の工程のうち、最も動作値が高い工程に合わせる必要がなくなるので、処理全体を実行する装置に必要な動作値を適切に設定することができる。すなわち、工程全体で最も適切な制御が可能となる。
【００１３】
本発明係る制御装置では、前記各工程において、評価の対象とする評価項目を受け付ける評価項目受付部を備え、前記評価項目が前記動作値と異なる工程では、前記動作値算出部は、前記時間配分設定部によって設定された時間における最小の前記評価項目の値を算出し、前記時間配分設定部は、前記評価項目の値を前記動作値に換算して、前記各工程の最小の前記動作値の差が所定の範囲となるように前記全駆動時間における前記各工程の時間配分を設定するものであってもよい。
【００１４】
前記の構成によれば、工程により評価項目が異なっている場合、動作値に換算して時間配分を設定する。これにより、各工程の動作値の差を適切に所定の範囲とすることができる。
【００１５】
本発明係る制御装置では、前記処理は、制御対象を初期位置から所定位置まで前記全駆動時間で移動させるものであり、前記動作値算出部は、前記時間配分設定部によって設定された時間における最小の前記動作値として、トルク値を算出し、前記各工程における前記制御対象を移動させるための入力軌跡であって、前記動作値算出部が算出したトルク値を用いたトルク波形から生成した入力軌跡を生成する入力軌跡生成部を備えているものであってもよい。
【００１６】
前記の構成によれば、最適となるように算出されたトルク値を用いて生成されたトルク波形から生成された入力軌跡として制御対象を制御することができる。
【００１７】
本発明係る制御装置では、前記入力軌跡生成部は、前記各工程により、前記入力軌跡として前記トルク波形を用いるか、または、前記トルク波形から導出した、前記制御対象の時間と速度との関係を示す速度軌跡、或いは前記制御対象の時間と位置との関係を示す位置軌跡を前記入力軌跡として用いるものであってもよい。
【００１８】
前記の構成によれば、工程により、トルク波形、速度軌跡または位置軌跡の何れかを入力軌跡として用いることができる。
【００１９】
前記入力軌跡生成部は、前記トルクの最大値が最小となる前記切り替えのタイミングおよび前記トルクの値を数値解析手法により算出し、前記トルク波形を生成するものであってもよい。
【００２０】
一般的に、トルクの最大値が最小となる切り替えのタイミングおよびトルクの値の算出は困難なものである。前記の構成によれば、数値解析手法を用いることによって、切り替えのタイミングおよびトルクの値の算出を実現することが可能となる。なお、数値解析手法は、発見的探索アルゴリズムによるものであってもよいし、ニュートン法等の収束計算によるものであってもよい。
【００２１】
前記課題を解決するために、本発明にかかる制御装置の制御方法は、複数の工程を含む処理を制御する制御装置の制御方法であって、前記処理を実行するための全駆動時間を受け付ける入力受付ステップと、前記全駆動時間における前記各工程の時間配分を設定する時間配分設定ステップと、前記各工程の処理に必要な動作値であって、前記時間配分設定ステップによって設定された時間における最小の前記動作値を算出する動作値算出ステップと、前記動作値算出ステップで算出した前記各工程の最小の前記動作値の差が所定の範囲となるように前記全駆動時間における前記各工程の時間配分を再設定する再設定ステップと、を含むことを特徴としている。
【００２２】
これにより、前述した効果を同様の効果を奏する。
【００２３】
本発明の各態様に係る制御装置は、コンピュータによって実現してもよく、この場合には、コンピュータを前記制御装置が備える各部（ソフトウェア要素）として動作させることにより前記制御装置をコンピュータにて実現させる制御装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００２４】
本発明によれば、各工程の処理に必要な動作値がバラバラになることにより、処理全体を実行する装置に必要な動作値を、複数の工程のうち、最も動作値が高い工程に合わせる必要がなくなるので、処理全体を実行する装置に必要な動作値を適切に設定することができるという効果を奏する。
【図面の簡単な説明】
【００２５】
【図１】本実施形態に係る制御装置の要部構成を示すブロック図である。
【図２】上記実施形態に係る制御システムの概略を示す図である。
【図３】上記制御システムの詳細を示す図である。
【図４】上記実施形態に係るサポート装置のハードウェア構成を示す模式図である。
【図５】上記制御装置における入力軌跡を生成する処理の流れを示すフローチャート図である。
【図６】上記実施形態による効果を示す図である。
【図７】複数の工程において、評価項目が異なる例を示す図である。
【図８】各工程で最小としたい動作値の種類が異なる場合の処理の流れを示すフローチャート図である。
【図９】換算テーブルの例を示す図である。
【図１０】本実施形態に係る機能ブロック化の例を示す図である。
【図１１】従来技術の課題を説明するための図である。
【図１２】従来技術における最適制御の流れを示すフローチャート図である。
【発明を実施するための形態】
【００２６】
〔実施形態１〕
以下、本発明の実施形態について、詳細に説明する。本実施形態に係る制御システムは、制御装置（図２等の制御装置１に対応）において、制御対象（図２等の制御対象５に対応）を目的位置（所定位置、終端位置）に目的時刻（終端時刻）に移動させる入力軌跡を生成し、サーボドライバ（図２等のサーボドライバ３に対応）に入力して、サーボモータ（図２等のサーボモータ４に対応）を駆動させて制御対象を移動させるものである。
【００２７】
また、本実施形態では、条件の異なる複数の工程を含む処理を実行するものであり、複数の工程を含む全体の処理を行う入力軌跡を生成する。そして、生成した入力軌跡は、工程全体で最適となるものである。
【００２８】
これにより、従来であれば、工程毎に最適動作値を導出することにより、工程全体では、必ずしも最適な動作値とはなっていなかったところ、本実施形態では、工程全体で最適な動作値とすることができる。
【００２９】
なお、制御装置１において生成する入力軌跡は、トルク軌跡であってもよいし、速度軌跡であってもよい、位置軌跡であってもよい。トルク軌跡とは、与えるトルク値と時間との関係を示す軌跡である。また、速度軌跡とは、制御対象の速度と時間との関係を示す軌跡である。また、位置軌跡とは、制御対象の位置と時間との関係を示す軌跡である。
【００３０】
また、本実施形態では、制御装置１が生成する入力軌跡の入力先としてサーボドライバ３を例に挙げて説明するが、制御装置１が生成する入力軌跡の入力先はサーボドライバ３に限られるものではない。入力軌跡の入力先は、軌跡を用いて制御を行う装置であればどのようなものであってもよい。例えば、温度調整装置のようなものであってもよい。
〔制御システムの概要〕
まず、制御システムの概要について図２、３を参照して説明する。図２は、制御システムの概略を示す図である。また、図３は、制御システムの詳細を示す図である。
【００３１】
図２に示すように、制御システムは、制御装置（軌跡生成装置）１、サーボドライバ３、および制御対象５（サーボモータ４）を含む。そして、制御装置１で生成された指令値（トルク軌跡、速度軌跡、位置軌跡）をサーボドライバ３に入力する。サーボドライバ３は、受け取った指令値に基づくトルクによりサーボモータ４を駆動して制御対象５を移動させる。
【００３２】
制御装置１は、機械や設備などの制御対象を制御するための指令値を設定するものであり、その構成要素としてＣＰＵユニット１３（図３）を含む。ＣＰＵユニット１３は、マイクロプロセッサと、マイクロプロセッサのメインメモリを含む記憶手段と、通信回路とを含む。ＣＰＵユニット１３は、出力データの送信と、入力データの受信と、入力データを使用して出力データを生成する制御プログラムの実行とを繰り返すことによって制御対象を制御するように構成されている。
【００３３】
記憶手段は、制御プログラム、および当該制御プログラムの実行と入力データおよび出力データの入出力とを制御するシステムプログラムの格納に用いられる。マイクロプロセッサは、記憶手段に格納されたシステムプログラムおよび制御プログラムを実行する。
【００３４】
通信回路は、出力データを送信し、入力データを受信する。制御装置１は、通信回路として、制御装置システムバスによって出力データの送信および入力データの受信を行う第１通信回路と、フィールドネットワーク２（図３）によって出力データの送信および入力データの受信を行う第２通信回路とを有している。
【００３５】
より詳細に図３を参照して説明する。図３に示すように、制御装置システムは、制御装置１と、制御装置１とフィールドネットワーク２を介して接続されるサーボドライバ３およびリモートＩＯターミナルと、フィールド機器であるセンサ６およびリレー７とを含む。また、制御装置１には、接続ケーブル１０などを介してサポート装置８が接続されている。
【００３６】
制御装置１は、主たる演算処理を実行するＣＰＵユニット１３と、１つ以上のＩＯユニット１４と、特殊ユニット１５とを含む。これらのユニットは、ＰＬＣシステムバス１１を介して、データを互いに遣り取りできるように構成されている。また、これらのユニットには、電源ユニット１２によって適切な電圧の電源が供給される。なお、制御装置１として構成される各ユニットは、制御装置メーカーが提供するものであるので、ＰＬＣシステムバス１１は、一般に制御装置メーカーごとに独自に開発され使用されている。これに対して、フィールドネットワーク２は、異なるメーカーの製品同士が接続できるように、その規格などが公開されている場合も多い。
【００３７】
ＩＯユニット１４は、一般的な入出力処理に関するユニットであり、オン／オフといった２値化されたデータの入出力を司る。すなわち、ＩＯユニット１４は、センサ６などのセンサが何らかの対象物を検出している状態（オン）、および何らの対象物も検出していない状態（オフ）の何れであるかという情報を収集する。また、ＩＯユニット１４は、リレー７やアクチュエータといった出力先に対して、活性化するための指令（オン）および不活性化するための指令（オフ）の何れかを出力する。
【００３８】
特殊ユニット１５は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、ＩＯユニット１４ではサポートしない機能を有する。
【００３９】
フィールドネットワーク２は、ＣＰＵユニット１３と遣り取りされる各種データを伝送する。フィールドネットワーク２としては、典型的には、各種の産業用イーサネット（登録商標）を用いることができる。産業用イーサネットとしては、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、Ｐｒｏｆｉｎｅｔ  ＩＲＴ、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどが知られており、これらのうちの何れを採用してもよい。さらに、産業用イーサネット以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ／ＩＰ（登録商標）などを用いてもよい。本実施の形態に係る制御装置システムでは、典型的に、産業用イーサネットであるＥｔｈｅｒＣＡＴをフィールドネットワーク２として採用する場合の構成について例示する。
【００４０】
なお、制御装置１は、ＣＰＵユニット１３にＩＯユニット１４の機能やサーボドライバ３の機能を持たせることにより、そのような内蔵機能でまかなえる範囲については、ＩＯユニット１４やサーボドライバ３などを介さずにＣＰＵユニット１３が直接制御対象を制御する構成でもよい。
【００４１】
サーボドライバ３は、フィールドネットワーク２を介してＣＰＵユニット１３と接続されるとともに、ＣＰＵユニット１３からの指令値にしたがってサーボモータ４を駆動する。より具体的には、サーボドライバ３は、制御装置１から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値（入力軌跡）を受ける。また、サーボドライバ３は、サーボモータ４の軸に接続されている位置センサ（ロータリーエンコーダ）やトルクセンサといった検出器から、位置、速度（典型的には、今回位置と前回位置との差から算出される）、トルクといったサーボモータ４の動作に係る実測値を取得する。そして、サーボドライバ３は、ＣＰＵユニット１３からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行う。すなわち、サーボドライバ３は、実測値が目標値に近づくようにサーボモータ４を駆動するための電流を調整する。なお、サーボドライバ３は、サーボモータアンプと称されることもある。
【００４２】
なお、図３には、サーボモータ４とサーボドライバ３とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
【００４３】
図３に示す制御装置システムのフィールドネットワーク２には、さらに、リモートＩＯターミナルが接続されている。リモートＩＯターミナルは、基本的には、ＩＯユニット１４と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートＩＯターミナルは、フィールドネットワーク２でのデータ伝送に係る処理を行うための通信カプラ５２と、１つ以上のＩＯユニット５３とを含む。これらのユニットは、リモートＩＯターミナルバス５１を介して、データを互いに遣り取りできるように構成される。
【００４４】
〔サポート装置８のハードウェア構成〕
次に、制御装置１で実行されるプログラムの作成および制御装置１のメンテナンスなどを行うためのサポート装置８について説明する。図４は、サポート装置８のハードウェア構成を示す模式図である。サポート装置８は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、サポート装置８は、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【００４５】
図４に示すように、サポート装置８は、ＯＳを含む各種プログラムを実行するＣＰＵ８１と、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）８２と、ＣＰＵ８１でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ８３と、ＣＰＵ８１で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）８４とを含む。ＣＰＵ８１がサポート装置８の演算部に相当し、ＲＯＭ８２、ＲＡＭ８３およびハードディスク８４がサポート装置８の記憶部に相当する。
【００４６】
サポート装置８は、さらに、ユーザからの操作を受け付けるキーボード８５およびマウス８６と、情報をユーザに提示するためのモニタ８７とを含む。さらに、サポート装置８は、制御装置１（ＣＰＵユニット１３）などと通信するための通信インターフェイス（ＩＦ）８９を含む。
【００４７】
サポート装置８で実行される各種プログラムは、ＣＤ−ＲＯＭ９に格納されて流通する。このＣＤ−ＲＯＭ９に格納されたプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ８８によって読取られ、ハードディスク（ＨＤＤ）８４などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【００４８】
なお、本実施形態では、制御装置１とサポート装置８とを別の装置として記載しているが、１つの装置として制御装置１によって構成されていてもよい、この場合、サポート装置８のハードウェア構成は、そのまま制御装置１のハードウェア構成となる。
【００４９】
〔制御装置１の詳細〕
次に、図１を参照して、制御装置１の詳細について説明する。図１は、制御装置１の要部構成を示すブロック図である。
【００５０】
図１に示すように、制御装置１は、入力受付部１００、軌跡部２００、および動作指示部３００を含む。また、軌跡部２００は、時間配分設定部２０１、動作値算出部２０２、および入力軌跡生成部２０３を含む。
【００５１】
入力受付部１００は、サポート装置８を介して、ユーザからの指示を受け付け、軌跡部２００に通知する。受け付ける指示内容は、例えば、「駆動時間」、「初期位置」、「初期速度」、各工程における「終端位置」、および各工程における「終端速度」である。
【００５２】
軌跡部２００は、サーボドライバ３へ指示する入力軌跡を生成するものである。具体的には、入力軌跡として、トルク軌跡、速度軌跡、および位置軌跡の少なくとも何れかを生成する。また、上述したように、軌跡部２００は、時間配分設定部２０１、動作値算出部２０２、および入力軌跡生成部２０３を含む。
【００５３】
時間配分設定部２０１は、処理の各工程における最適動作値が一致する、または一致していると言えるような範囲となるように、各工程の時間配分を設定する。一致していると言えるような範囲かどうかは、例えば、各工程における最適動作値の差が所定の範囲にあるかどうかで判断することができる。所定の範囲とは、例えば、各工程の最適動作値の差が、何れかの最適動作値の１％以下となるような範囲である。なお、１％はあくまでも例示であり、一致していると言えるような範囲であれば、１％でなくてもよい。
【００５４】
また、所定の範囲が狭くなればなるほど、各工程の時間配分の設定処理に時間を要するので、許される処理時間と、求める結果の精度との兼ね合いで、所定の範囲を設定してもよい。例えば、結果の精度が重要で、処理時間が多少長くなってもよい場合は、最適動作値の０．１％以下となるような範囲を所定の範囲としてもよいし、結果の精度よりも処理時間が重要な場合は、最適動作値の５％以下となるような範囲を所定の範囲としてもよい。
【００５５】
また、時間配分の設定は、数値解析手法を用いて行うことができる。数値解析手法は、発見的探索アルゴリズム（ヒューリスティックなアルゴリズム）、遺伝的アルゴリズム（ＧＡ：genetic algorithm）、粒子群最適化（ＰＳＯ：Particle Swarm Optimization）によるものであってもよいし、ニュートン法、二分法等の収束計算によるものであってもよい。
【００５６】
また、時間配分設定部２０１は、各工程における最適動作値の種類が異なる場合、異なる種類の最適動作値を比較対象となる値に換算して、一致する、または一致していると言えるような範囲にあるかを判定する。なお、具体的な換算方法については後述する。
【００５７】
動作値算出部２０２は、各工程における最適動作値を導出する。最適動作値とは、例えば、当該工程における処理を実行するための動作値であって、最小の動作値である。動作値の例としては、トルク等が挙げられる。最適動作値の導出は公知技術を用いて可能であるので、導出方法の説明は省略する。
【００５８】
入力軌跡生成部２０３は、時間配分設定部２０１が設定した時間配分、および動作値算出部２０２が導出した動作値に基づき、入力軌跡を生成する。上述したように、入力軌跡は、トルク軌跡（トルク波形）であってもよいし、速度軌跡、位置軌跡であってもよい。また、工程毎に、入力軌跡の種類が異なるものであってもよい。すなわち、Ａ工程、Ｂ工程、Ｃ工程の３つの工程がある場合に、Ａ工程における入力軌跡はトルク軌跡、Ｂ工程における入力軌跡は速度軌跡、Ｃ工程における入力軌跡は位置軌跡というように、工程毎に、入力軌跡の種類が異なっていてもよい。
【００５９】
また、入力軌跡生成部２０３は、トルク軌跡を、矩形波で、かつ、トルクの最大値および最小値の絶対値が等しく、かつ、トルクの最大値と最小値との切り替えは１回となる、との条件で、切り替えのタイミングとトルクの最大値を調整して、トルクの最大値が最小となるトルク軌跡を生成する。切り替えのタイミングとトルクの最大値との調整は、数値解析手法を用いて行うことができる。数値解析手法は、発見的探索アルゴリズム（ヒューリスティックなアルゴリズム）によるものであってもよいし、ニュートン法等の収束計算によるものであってもよい。
【００６０】
なお、入力軌跡生成部２０３は、生成したトルク軌跡を入力軌跡としてもよいし、トルク軌跡から生成された速度軌跡、位置軌跡の少なくとも何れかを入力軌跡としてもよい。
【００６１】
動作指示部３００は、軌跡部２００が生成した入力軌跡にしたがって、サーボドライバ３に指令を送信する。
【００６２】
〔制御装置１における処理の流れ〕
次に、図５を参照して、制御装置１において入力軌跡を生成する処理の流れを説明する。図５は、制御装置１における入力軌跡を生成する処理の流れを示すフローチャート図である。
【００６３】
図５に示すように、制御装置１では、まず入力受付部１００にて全駆動時間の指定を受け付ける（Ｓ１０１、入力受付ステップ）。なお、入力受付部１００では、駆動時間とともに、初期位置、初期速度、各工程における終端位置、および各工程における終端速度も受け付けている。
【００６４】
次に、時間配分設定部２０１は、各工程の処理時間の配分を設定する（Ｓ１０２、時間配分設定ステップ、再設定ステップ）。次に、動作値算出部２０２は、ステップＳ１０２で設定した時間配分での各工程における最適動作値を導出する（Ｓ１０３、動作値算出ステップ）。ステップＳ１０３では、工程数分の最適動作値を導出する。すなわち、工程数が２工程であれば、２工程それぞれにおける最適動作値を導出し、工程数が３工程であれば、３工程それぞれにおける最適動作値を導出する。４工程以上であっても同様である。
【００６５】
そして、入力軌跡生成部２０３は、ステップＳ１０３で導出した各工程の最適動作値が実質的に同じと言えるか否か、換言すれば、各工程の最適動作値が一致しているか否か、または一致していると言える範囲にあるか否かを判定する（Ｓ１０４）。各工程の最適動作値が一致していると言える範囲にあるか否かは、各工程の最適動作値の差が所定の範囲にあるか否かで判断することができる。
【００６６】
各工程の最適動作値が実質的に同じと言えない場合（最適動作値が一致しない場合、または一致していると言える範囲にない場合）（Ｓ１０４でＮＯ）、ステップＳ１０２に戻り、ステップＳ１０２〜Ｓ１０４を繰り返す。すなわち、ステップＳ１０２において時間配分を再設定し、ステップＳ１０３において、再設定された時間配分に基づき最適動作値を再度、導出し、ステップＳ１０４で再度、導出された最適動作値を比較する。
【００６７】
一方、各工程の最適動作値が実質的に同じと言える場合（最適動作値が一致している場合、または一致していると言える範囲にある場合）（Ｓ１０４でＹＥＳ）、入力軌跡生成部２０３は、そのときの時間配分、および最適動作値に基づき、入力軌跡を生成する（Ｓ１０５）。
【００６８】
以上が、制御装置１における入力軌跡を生成する処理の流れである。上述したように、本実施形態では、各工程の最適動作値が一致するまで、または一致していると言える範囲になるまで、ステップＳ１０２〜Ｓ１０４を繰り返すという、発見的探索アルゴリズムにより、各工程の時間配分の設定、および最適動作値の導出を行っている。
【００６９】
〔本実施形態による効果〕
図６を参照して、本実施形態による効果を説明する。図６は、本実施形態による効果を示す図である。なお、ここでは、図１１に示す例の場合で説明する。すなわち、全工程は、勾配を上る工程と、勾配を下る工程との２つの工程からなり、全駆動時間は２ｓである。図６の（ａ）に、従来の最適制御によるトルク軌跡を示す。図６の（ａ）に示すように、従来の最適制御では、上り工程および下り工程それぞれの駆動時間が１ｓであり、上り工程における最適動作位置が３０Ｎｍ、下り工程における最適動作値が２０Ｎｍとなっている。したがって、前述したように、従来の最適制御では、出力可能なトルク値が少なくとも３０Ｎｍであるモータが必要となる。
【００７０】
図６の（ｂ）に、本実施形態により生成したトルク軌跡を示す。図６の（ｂ）に示すように、本実施形態により生成したトルク軌跡では、上り工程の駆動時間は１.２ｓ、下り工程の駆動時間は０．８ｓとなっており、上り工程と下り工程との最適動作値が２５Ｎｍで一致している。
【００７１】
これにより、本実施形態では、全工程で必要なトルク値は２５Ｎｍとなり、出力可能なトルク値が少なくとも２５Ｎｍであるモータで十分となる。よって、従来よりもモータの容量を下げることができる。また、従来と同じ容量のモータであれば、制御対象の重量を上げることができ、また同じ重量であれば、駆動時間を短縮することができる。
【００７２】
〔実施形態２〕
本発明の他の実施形態について、図７〜９に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【００７３】
〔概要〕
実施形態１では、最適動作値が一致するように各工程の時間配分を設定していた。しかし、ユーザによっては、各工程で最小としたい動作値の種類が異なることがある。例えば、図７に示すように、工程Ｘ、Ｙ、Ｚとあり、工程ＸおよびＺでは、トルクを下げたく、工程Ｙでは、電力を下げたいというような場合、そのままでは一致させる最適動作値の種類が一致せず、単純に比較することができない。
【００７４】
そこで、本実施形態では、ユーザが評価の対象としたい動作値の種類（評価項目）を受け付ける評価項目受付部を備え、当該評価項目における最適動作値を導出後、導出した最適動作値を各工程の動作値を比較するための動作評価値（換算評価値）に換算し、動作評価値が一致するように各工程の時間配分を設定する。これにより、工程によって調整したい動作値の種類が異なる場合でも、適切に最適動作値を導出することができる。
【００７５】
〔処理の流れ〕
次に、図８を参照して、各工程で最小としたい動作値の種類が異なる場合の処理の流れを説明する。図８は、各工程で最小としたい動作値の種類が異なる場合の処理の流れを示すフローチャート図である。なお、以下では、予め最適動作値を動作評価値に換算する換算テーブルを保持しているものとする。また、ユーザにより、各工程の評価項目が指示されているものとする。
【００７６】
図８に示すように、ステップＳ１０３までは上述した実施形態１における図５と同様である。なお、ステップＳ１０３では、各工程について、ユーザによって指示された評価項目における最適動作値を導出する。
【００７７】
本実施形態では、ステップＳ１０３の後、導出した最適動作値を動作評価値に換算する（Ｓ１０３ａ）。動作評価値の導出は、例えば、テーブルを用いて行うことができる。テーブル例を図９に示す。図９は、トルクと電力との対応を示すテーブルである。図９に示すテーブル９０１では、トルク「５Ｎ〜１０Ｎ」が電力「２０Ｗ〜３５Ｗ」と対応し、トルク「１０Ｎ〜１５Ｎ」が電力「３５Ｗ〜５０Ｗ」と対応している。これにより、動作評価値がトルクであれば、電力から対応するトルクを導出することができる。なお、ステップＳ１０３で導出した最適動作値の種類が動作評価値の種類と同じ場合は、ステップＳ１０３ａの処理は不要である。
【００７８】
そして、入力軌跡生成部２０３は、ステップＳ１０３ａで導出した各工程の動作評価値が実質的に同じと言えるか否か、換言すれば、各工程の動作評価値が一致しているか否か、または一致していると言える範囲にあるか否かを判定する（Ｓ１０４ａ）。各工程の動作評価値が一致していると言える範囲にあるか否かは、各工程の動作評価値の差が所定の範囲にあるか否かで判断することができる。
【００７９】
各工程の動作評価値が実質的に同じと言えない場合（動作評価値が一致しない場合、または一致していると言える範囲にない場合）（Ｓ１０４ａでＮＯ）、ステップＳ１０２に戻り、ステップＳ１０２〜Ｓ１０４ａを繰り返す。
【００８０】
一方、各工程の動作評価値が実質的に同じと言える場合（動作評価値が一致している場合、または一致していると言える範囲にある場合）（Ｓ１０４ａでＹＥＳ）、入力軌跡生成部２０３は、そのときの時間配分、および最適動作値に基づき、入力軌跡を生成する（Ｓ１０５）。
【００８１】
これにより、工程により、下げたい動作値の種類が異なる場合でも、適切に時間配分を設定し、最適動作値を導出することができる。
【００８２】
なお、前記では、下げたい動作値の種類として電力を上げたが、電力以外にも、振動量、最大加速度、最大速度、ジャーク、速度と加速度との積の最大値等を挙げることができる。
【００８３】
〔機能ブロック化の例〕
図１０を参照して、本実施形態に係る制御装置１を機能ブロック化した別の例を説明する。図１０は、制御装置１を機能ブロック化した例を示す図である。
【００８４】
図１０に示す機能ブロック（Function Block）では、左側に入力データ、右側に出力データを示している。図１０に示すように、本実施形態では、入力データとして、全駆動時間、工程Ｘのモデルパラメータ、工程Ｘの終端位置、終端速度、工程Ｙのモデルパラメータ、工程Ｙの終端位置、終端速度、トルクと電力との換算評価値が入力される。そして、これらの入力に対し、出力データとして、指令位置、指令速度が出力される。
【００８５】
なお、図１０に機能ブロック化の例は、あくまでも例であり、工程Ｘ、Ｙ、…は、制御する処理工程数によって異なる。また、トルクと電力との換算評価値は必須ではなく、比較する動作値の種類が同じ場合は不要である。
【００８６】
〔ソフトウェアによる実現例〕
制御装置１の制御ブロック（特に軌跡部２００（時間配分設定部２０１、動作値算出部２０２、入力軌跡生成部２０３）、および動作指示部３００）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【００８７】
後者の場合、制御装置１は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００８８】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【００８９】
１  制御装置
２  フィールドネットワーク
３  サーボドライバ
４  サーボモータ
５  制御対象
１００  入力受付部
２００  軌跡部
２０１  時間配分設定部
２０２  動作値算出部
２０３  入力軌跡生成部
３００  動作指示部
【図１】
2018060290.tif 000003
【図２】
2018060290.tif 000004
【図３】
2018060290.tif 000005
【図４】
2018060290.tif 000006
【図５】
2018060290.tif 000007
【図６】
2018060290.tif 000008
【図７】
2018060290.tif 000009
【図８】
2018060290.tif 000010
【図９】
2018060290.tif 000011
【図１０】
2018060290.tif 000012
【図１１】
2018060290.tif 000013
【図１２】
2018060290.tif 000014