JP2019008416A - 制御装置、制御プログラムおよび制御システム - Google Patents

制御装置、制御プログラムおよび制御システム Download PDF

Info

Publication number
JP2019008416A
JP2019008416A JP2017121562A JP2017121562A JP2019008416A JP 2019008416 A JP2019008416 A JP 2019008416A JP 2017121562 A JP2017121562 A JP 2017121562A JP 2017121562 A JP2017121562 A JP 2017121562A JP 2019008416 A JP2019008416 A JP 2019008416A
Authority
JP
Japan
Prior art keywords
control
command value
value
correction data
learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017121562A
Other languages
English (en)
Other versions
JP6897360B2 (ja
Inventor
正樹 浪江
Masaki Namie
正樹 浪江
高史 藤井
Takashi Fujii
高史 藤井
昭朗 小林
Akiro Kobayashi
昭朗 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2017121562A priority Critical patent/JP6897360B2/ja
Priority to US15/893,704 priority patent/US10977576B2/en
Priority to CN201810149072.0A priority patent/CN109100990B/zh
Priority to EP18156814.8A priority patent/EP3418822A1/en
Publication of JP2019008416A publication Critical patent/JP2019008416A/ja
Application granted granted Critical
Publication of JP6897360B2 publication Critical patent/JP6897360B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/041Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a variable is automatically adjusted to optimise the performance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/048Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators using a predictor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32071Adaptive fuzzy controller, tunes itself as function of machine parameter variation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/41Servomotor, servo controller till figures
    • G05B2219/41374Observe position and driving signal, predict, estimate disturbance signal
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42058General predictive controller GPC

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】制御対象を実際に動作させる時間および回数を低減して、学習制御の調整工数を低減することが要望されている。【解決手段】制御装置は、第1の指令値を補正データに従って制御周期毎に出力される補正量で補償した第2の指令値を生成して制御演算手段へ出力する指令値生成手段と、第1の指令値と制御対象からのフィードバック値との偏差に基づいて、補正データを更新する学習演算手段と、補正データの初期値を決定する初期値決定手段とを含む。初期値決定手段は、制御演算手段に与えられる指令値と当該指令値に応答して制御対象に現れるフィードバック値との関係を示す応答特性を取得する特性取得手段と、第1の指令値を仮の補正データで補償した値と、応答特性とに基づいて、制御対象に現れるであろうフィードバック値を推定する推定手段と、第1の指令値と推定されたフィードバック値との偏差に基づいて仮の補正データを更新する更新手段とを含む。【選択図】図6

Description

本発明は、制御対象に対する制御性能を学習制御によって高める技術に関する。
制御対象を制御する方法の一例として、制御対象に対して指令値パターンに従って順次出力される指令値に対して、当該制御対象の特性に応じて補正した上で、当該制御対象に与えるような制御系がある。このような制御系においては、指令値に対する補正量などを学習により順次更新するような学習制御が採用される。
このような学習制御は、例えば、モータを用いたメカニカルシステムやロボットといった制御対象に未知の要素を含む動的システムに適用されることがある。
例えば、特開2004−227163号公報(特許文献1)は、部品等の同一形状の加工を多数実行するような場合に、学習制御を適用できるようにしたサーボ制御装置を開示する。
特開2004−227163号公報
上述したような学習制御においては、適切な補正量を決定するためには、ある程度の学習が必要であり、実際の制御対象に適用するためには、制御対象を所定回数に亘って実際に動作させる必要があった。
そのため、制御対象を実際に動作させる回数を低減して、学習制御の調整工数を低減することが要望されている。
本発明のある局面に従えば、制御対象を制御するための制御装置が提供される。制御装置は、予め定められたパターンに従って制御周期毎に出力される第1の指令値を、補正データに従って制御周期毎に出力される補正量で補償した第2の指令値を生成して制御演算手段へ出力する指令値生成手段を含む。制御演算手段は、第2の指令値に従って制御対象に対する制御出力を算出する。制御装置は、第1の指令値と制御対象からのフィードバック値との偏差に基づいて、補正データを更新する学習演算手段と、学習演算手段による補正データに対する更新が実行されていない状態において用いられる、当該補正データの初期値を決定する初期値決定手段とを含む。初期値決定手段は、制御演算手段に与えられる指令値と当該指令値に応答して制御対象に現れるフィードバック値との関係を示す応答特性を取得する特性取得手段と、第1の指令値を仮の補正データで補償した値と、応答特性とに基づいて、制御対象に現れるであろうフィードバック値を推定する推定手段と、第1の指令値と推定されたフィードバック値との偏差に基づいて仮の補正データを更新する更新手段とを含む。
好ましくは、初期値決定手段は、第1の指令値の制御演算手段への出力に応答して制御対象に現れるフィードバック値と、対応する推定されたフィードバック値との偏差からモデル誤差を算出する算出手段をさらに含む。
好ましくは、更新手段は、モデル誤差を更新後の仮の補正データに反映する。
好ましくは、更新手段は、推定されたフィードバック値との偏差に所定の係数を乗じた値で現在の仮の補正データを更新する。
好ましくは、特性取得手段は、ステップ状の指定値パターンに従って制御周期毎に出力される第3の指令値を制御演算手段へ出力し、第3の指令値に対応して取得されるフィードバック値の時間変化について時間的な差分近似により単位パルスに対する応答特性を算出する。
好ましくは、特性取得手段は、任意の指令値を制御演算手段へ与えるとともに、当該任意の指令値に対応して取得されるフィードバック値の時間変化に基づいて、システム同定手法により推定される伝達関数を応答特性として決定する。
好ましくは、初期値決定手段は、予め定められた終了条件が満たされるまで、推定手段および更新手段による処理を繰返す手段をさらに含む。
本発明の別の局面に従えば、制御対象を制御するための制御装置を実現するための制御プログラムが提供される。制御プログラムはコンピュータに、予め定められたパターンに従って制御周期毎に出力される第1の指令値を、補正データに従って制御周期毎に出力される補正量で補償した第2の指令値を生成して制御演算手段へ出力するステップを実行させる。制御演算手段は、第2の指令値に従って制御対象に対する制御出力を算出する。制御プログラムはコンピュータに、第1の指令値と制御対象からのフィードバック値との偏差に基づいて、補正データを更新するステップと、補正データに対する更新が実行されていない状態において用いられる、当該補正データの初期値を決定するステップとを実行させる。補正データの初期値を決定するステップは、制御演算手段に与えられる指令値と当該指令値に応答して制御対象に現れるフィードバック値との関係を示す応答特性を取得するステップと、第1の指令値を仮の補正データで補償した値と、応答特性とに基づいて、制御対象に現れるであろうフィードバック値を推定するステップと、第1の指令値と推定されたフィードバック値との偏差に基づいて仮の補正データを更新するステップとを含む。
本発明のさらに別の局面に従えば、制御対象を制御するための制御システムが提供される制御システムは、予め定められたパターンに従って制御周期毎に出力される第1の指令値を、補正データに従って制御周期毎に出力される補正量で補償した第2の指令値を生成する指令値生成手段と、第2の指令値に従って制御対象に対する制御出力を算出する制御演算手段と、第1の指令値と制御対象からのフィードバック値との偏差に基づいて、補正データを更新する学習演算手段と、学習演算手段による補正データに対する更新が実行されていない状態において用いられる、当該補正データの初期値を決定する初期値決定手段とを含む。初期値決定手段は、制御演算手段に与えられる指令値と当該指令値に応答して制御対象に現れるフィードバック値との関係を示す応答特性を取得する特性取得手段と、第1の指令値を仮の補正データで補償した値と、応答特性とに基づいて、制御対象に現れるであろうフィードバック値を推定する推定手段と、第1の指令値と推定されたフィードバック値との偏差に基づいて仮の補正データを更新する更新手段とを含む。
本発明のある実施の形態によれば、制御対象を実際に動作させる回数を低減して、学習制御の調整工数を低減できる。
本実施の形態に従う制御装置の構成を示す模式図である。 本実施の形態に従う制御装置を含む制御システムの機能分担例を示す模式図である。 本実施の形態に従う学習制御を含む制御系の指令値生成および制御演算に着目した模式図である。 本実施の形態に従う学習制御を含む制御系の指令値生成に係るデータの一例を説明するための図である。 本実施の形態に従う学習制御を含む制御系の学習演算に着目した模式図である。 図5に示す本実施の形態に従う学習制御を含む制御系に対してシミュレーション学習演算を付加した模式図である。 本実施の形態に従う制御装置における学習制御に係る処理手順を示すフローチャートである。 図7のステップS8に示すシミュレーション学習演算に係る処理手順を示すフローチャートである。 図7のステップS8に示すシミュレーション学習演算において取得される時間波形の一例を示す図である。 本実施の形態に従うシミュレーション学習演算による効果を説明するためのグラフである。 本実施の形態に従うシミュレーション学習演算による効果を説明するためのグラフである。 本実施の形態に従う制御装置の制御プログラムに含まれる学習制御プログラム114の実装例を示す図である。 本実施の形態に従う制御装置の制御プログラムに含まれる学習制御プログラム114の実装例を示す図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.制御装置の構成>
まず、本実施の形態に従う制御装置100の構成について説明する。制御装置100は、主として、任意の制御対象を制御する機能を有している。制御装置100としては、例えば、PLC(プログラマブルコントローラ)のようなFA(Factory Automation)用のコントローラであってもよいし、汎用コンピュータであってもよい。また、複数の装置が連携することで、後述するような本実施の形態に従う学習制御を含む制御系を実現してもよい。例えば、PLCが学習演算を含む実制御を担当するとともに、PLCと連携した汎用コンピュータが事前の学習演算(シミュレーション)を担当するようにしてもよい。
本実施の形態に従う学習制御は、予め定められた指令値パターンから都度算出される指令値(以下、「補正前指令値」とも称す。)を、制御対象の特性に応じて補正することで指令値を生成する。そして、この生成された指令値に基づいて制御出力を算出するための制御演算が実行される。すなわち、本実施の形態に従う学習制御は、主として、指令値生成、学習演算および制御演算から構成される。
以下、説明の便宜上、PLCを用いて実装する場合の構成例を主として示す。
図1は、本実施の形態に従う制御装置100の構成を示す模式図である。図1を参照して、制御装置100は、予め格納された制御プログラム(システムプログラム110およびユーザプログラム112を含む)を実行することで算出される制御出力または指令値をサーボドライバ200へ与えるとともに、サーボドライバ200またはI/O(Input/Output)ユニット126を介してフィードバック値を取得する。このような制御出力または指令値とフィードバック値とを用いて、学習制御を実現する。
より具体的には、制御装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メインメモリ106と、フラッシュメモリ108と、外部ネットワークコントローラ116と、メモリカードインターフェイス118と、内部バスコントローラ122と、フィールドバスコントローラ124とを含む。
プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110およびユーザプログラム112を読み出して、メインメモリ106に展開して実行することで、制御対象に対する任意の制御を実現する。システムプログラム110は、データの入出力処理や実行タイミング制御などの、制御装置100の基本的な機能を提供するための命令コードを含む。ユーザプログラム112は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム112Aおよびモーション制御を実行するためのモーションプログラム112Bとを含む。
本実施の形態に従う学習制御を実現するために、フラッシュメモリ108には、学習制御プログラム114が格納されている。学習制御プログラム114は、シーケンスプログラム112Aおよびモーションプログラム112Bと連携して実行されることで、後述するような学習制御を実現してもよい。
このように、制御プログラム(システムプログラム110、ユーザプログラム112および学習制御プログラム114)はプロセッサ102により実行されることで、制御対象を制御するための制御装置を実現する。
チップセット104は、各コンポーネントを制御することで、制御装置100全体としての処理を実現する。
内部バスコントローラ122は、制御装置100と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、I/Oユニット126が接続されている例を示す。
フィールドバスコントローラ124は、制御装置100とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ200が接続されている例を示す。
内部バスコントローラ122およびフィールドバスコントローラ124は、接続されているデバイスに対して任意の指令値を与えることができるとともに、デバイスが管理している任意のデータ(測定値を含む)を取得することができる。
外部ネットワークコントローラ116は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。
制御装置100が制御プログラムを実行することで提供される機能の一部または全部を専用のハードワイヤード回路として実装してもよい。ハードワイヤード回路としては、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などを用いて実装することができる。
<B.制御系の機能分担例>
次に、本実施の形態に従う学習制御を含む制御系の機能分担例について説明する。図2は、本実施の形態に従う制御装置100を含む制御システムの機能分担例を示す模式図である。図2(A)を参照して、典型的には、制御装置100は、サーボドライバ200およびメカ300を含む制御対象10からフィードバック値を測定するとともに、測定したフィードバック値(制御量)を反映した学習演算および制御演算の結果得られる制御出力を制御対象10へ出力する。すなわち、図2(A)に示す構成においては、制御装置100において指令値生成、学習演算および制御演算が実行される。図2(A)に示す制御出力は操作量に相当する。
なお、図2において、メカ300は、駆動体であるモータおよび被駆動体であるメカ体を総称したものである。
図2(B)に示すように、制御装置100が指令値生成および学習演算を実行して生成される指令値をサーボドライバ200に対して与えるとともに、サーボドライバ200が指令値に従って制御演算を実行するようにしてもよい。
あるいは、図2(C)に示すように、制御装置100が指令値生成を実行して補正前指令値をサーボドライバ200へ出力し、サーボドライバ200において、学習演算および制御演算を実行するようにしてもよい。
図2(B)および図2(C)に示すように、制御装置100およびサーボドライバ200が協働して、本実施の形態に従う学習制御を実現してもよい。さらに、図2(A)〜2(C)に示す構成に限らず、任意のハードウェア構成により実現してもよい。
以上のとおり、本実施の形態に従う学習制御を含む制御系を実現する1または複数の装置またはユニットを「制御システム」と総称することもできる。制御システムは、1または複数の装置またはユニットからなる任意の構成を包含する概念である。
<C.指令値生成および制御演算>
次に、本実施の形態に従う学習制御を含む制御系の指令値生成および制御演算に着目して基本的な処理を説明する。
図3は、本実施の形態に従う学習制御を含む制御系の指令値生成および制御演算に着目した模式図である。図3には、一例として、予め定められた位置パターンに従って制御対象10を制御する場合の構成例を示す。但し、位置に限らず、任意の指令値を用いることができる。
図3を参照して、制御装置100は、指令値生成を担当する、指令値生成部150および指令値補正部152を含む。また、制御装置100は、制御演算を担当する制御演算部154を含む。
指令値生成部150は、予め定められた指令値パターン151に従って制御周期(例えば、1ms)毎に補正前指令値(「第1の指令値」に相当)を出力する。図3に示す例では、指令値パターン151は制御対象10が移動すべき軌跡(位置パターン)が規定されているとする。そのため、補正前指令値は位置指令値となる。
指令値補正部152は、指令値生成部150からの補正前指令値を、補正データ153に従って制御周期毎に出力される補正量で補償することで、指令値(補正後指令値:「第2の指令値」に相当)を生成する。そして、指令値補正部152は、生成した指令値を制御演算部154へ出力する。この例においては、指令値は位置指令値となる。後述するように、補正データ153は、学習制御によりその内容が更新される。
図4は、本実施の形態に従う学習制御を含む制御系の指令値生成に係るデータの一例を説明するための図である。図4を参照して、例えば、指令値パターン151には、基準点からスタートして一方の方向に移動した後、所定時間その位置で待機し、そして元の基準位置に戻るようなパターンが規定されているとする。この指令値パターン151に従って制御周期毎に補正前指令値が出力される。補正前指令値が出力され制御周期に対応させて、補正データ153に基づいて制御周期毎に補正量が順次出力される。指令値補正部152において、補正前指令値を補正量で補償することで、図4に示すような指令値155が制御演算部154へ出力される。
例えば、制御対象10は所定の慣性を有しており、また、制御演算部154はある程度の遅れ時間を有しているので、指令値パターン151に規定されるような補正前指令値を与えたとしても、制御対象10は指令値パターン151に沿った動きをするわけではない。そこで、指令値パターン151に規定される軌跡に沿って制御対象10が動作できるように、補正データ153には補正量(あるいは、補償量)が格納される。このような補正量で補償された指令値155を制御演算部154へ与えることで、制御対象10は、指令値パターン151に応じた挙動をすることになる。
補正データ153には、制御対象10の特性に応じた補正量を規定する必要があり、本実施の形態においては、後述するような学習演算によって、適切な補正データ153を決定する。
再度図3を参照して、指令値補正部152からの指令値は制御演算部154へ与えられる。制御演算部154は、指令値に従って制御対象10に対する制御出力を算出する。より具体的には、制御演算部154は、制御対象10のフィードバック値が指令値と一致するように制御演算を実行し、制御出力を算出する。制御演算は、所定の制御周期(例えば、1ms)毎に繰返し実行される。図3に示す例では、制御演算部154が位置制御を実行する例を示すが、速度制御などを実行してもよい。
図3に示す制御系においては、制御演算部154は、指令値補正部152からの位置指令値に対して、位置制御ループおよび速度制御ループにより、最終的な制御出力(この例では、サーボドライバ200へ与える電流指令値)を算出する。
より具体的には、制御演算部154は、差分器156,160と、位置制御部158と、速度制御部162と、トルクフィルタ164と、電流制御部166と、速度検出部168とを含む。
位置制御部158は、位置制御ループを構成する制御演算部であり、差分器156からの位置偏差に応じて速度指令値を操作量として出力する。差分器156は、制御対象10のフィードバック値(実位置)と位置指令値との偏差(位置偏差)を算出する。
速度制御部162は、速度制御ループを構成する制御演算部であり、差分器160からの速度偏差に応じたトルク指令値を出力する。差分器160は、制御対象10のフィードバック値(実速度)と位置制御部158からの操作量(速度指令値)との偏差(速度偏差)を算出する。
速度検出部168は、モータに装着されたエンコーダなどからのフィードバック値(例えば、モータの回転数に比例した数のパルス)からモータの実速度を算出する。速度検出部168は、典型的には、微分要素を用いて実現される。
トルクフィルタ164は、速度制御部162からのトルク指令値に含まれる高周波成分を除去する。電流制御部166は、トルクフィルタ164からのトルク指令値からサーボドライバ200がモータへ与えるべき電流の大きさやタイミングを示す電流指令値を算出する。
図3に示す制御系においては、位置制御部158としてP(比例)制御が採用されており、速度制御部162としてPI(比例積分)制御が採用されている。但し、位置制御部158および速度制御部162はどのような制御系であってもよい。
本実施の形態に従う学習制御は、指令値補正部152における指令値の補正処理に依拠して制御性能を高めることを主としており、制御演算部154での制御演算の内容は、特に制限されることはない。
また、上述の図2(B)および図2(C)に示すように、制御装置100およびサーボドライバ200が協働して、本実施の形態に従う学習制御を実現する場合には、指令値生成部150による補正前指令値の生成周期、指令値補正部152による指令値の出力周期、制御演算部154による制御演算の周期は、互いに一致していなくともよく、各装置の周期で演算処理を実行すればよい。
<D.学習演算>
次に、本実施の形態に従う学習制御を含む制御系の学習演算に着目して基本的な処理を説明する。
図5は、本実施の形態に従う学習制御を含む制御系の学習演算に着目した模式図である。図5を参照して、制御装置100は、学習演算を担当する、偏差算出部170と、学習演算部172と、学習切替部174とを含む。
本実施の形態に従う学習制御の学習演算は、指令値が出力された後、制御演算部154を経て制御対象10に生じる変位を示すフィードバック値にどのような変化が生じるのかを測定して、補正データ153を順次更新する。
指令値補正部152が指令値を制御演算部154へ出力することで、制御演算部154では入力された特性測定用指令値に応じた制御演算が実行されて、得られた制御出力が制御対象10へ出力される。その制御出力に応答して、制御対象10に生じた変化がフィードバック値として現れる。偏差算出部170は、指令値生成部150からの補正前指令値とフィードバック値との偏差を算出し、偏差データ171として順次出力する。偏差データ171は、予め定められた指令値パターン151と制御対象10の実際の挙動との相違を意味する。
学習演算部172は、偏差データ171(指令値と制御対象10からのフィードバック値との偏差)に基づいて、補正データ153を更新する。指令値パターン151に規定されている一連の補正前指令値の出力を複数回繰返すことで、補正データ153は順次更新され、制御演算部154および制御対象10の特性を反映したものとなる。
指令値パターン151に規定されている補正前指令値の全体出力を1回と数えて、k回目の学習演算時の偏差データをErr(k)と記述する。また、学習演算をk回実行することで得られた偏差データErr(k)を用いて算出される、k+1回目の補正データをRev(k+1)と記述する。
学習演算部172は、各回の学習演算において補正データ153を更新する。より具体的には、k回目の学習演算における偏差データErr(k)を用いて、k+1回目の補正データRev(k+1)は、以下のような数式に従って算出される。但し、n=0〜Nである。
Rev(k+1)(n)=Rev(k)(n)+G×Err(k)(n+st)
但し、
Rev(k+1)(n):k+1回目の学習演算のサンプル時刻nにおける補正データ
Rev(k)(n):k回目の学習演算のサンプル時刻nにおける補正データ
G:学習の強さを定める係数(0<G≦1:通常は「1」でもよい)
Err(k)(n+st):k回目の学習演算のサンプル時刻n+stにおける偏差データ
st:補正シフト時間(制御周期の整数倍)
上述の数式において、Err(k)(n+st)となっているのは、偏差データを補正データに反映する際に、偏差データを補正シフト時間stだけ時間を過去方向にずらすことを意味する。これは、制御演算、メカ300の応答遅れ、通信遅れなどに起因するむだ時間を補償することを意図している。補正シフト時間stは、後述するような特性測定の方法を利用して、制御演算部154および制御対象10の特性から事前に決定できる。
学習演算部172による学習演算は、学習切替部174が学習演算部172と補正データ153とを内部的に接続または遮断することで、有効化または無効化される。通常、学習演算部172による学習演算は、所定回数の実行後に無効化される。補正データ153が過学習されたものとなることを防止するためである。
本実施の形態に従う学習制御の学習演算においては、制御演算部154および制御対象10を含む全体の特性を測定するモードを有している。このモードは、後述のシミュレーション学習演算においても利用するので、以下では「特性測定/シミュレーション学習モード」とも称す。なお、特性測定/シミュレーション学習モードの対比として、指令値補正部152からの指令値を制御演算部154へ出力するモードを「制御モード」とも称す。
制御装置100は、特性測定を担当する、特性測定用指令値生成部176とモード切替部178とを含む。
特性測定においては、モード切替部178が特性測定/シミュレーション学習モード側へ切り替えられ、特性測定用指令値生成部176と制御演算部154とが内部的に接続される。特性測定用指令値生成部176は、予め定められた特性測定用指令値パターン177に従って制御周期毎に特性測定用指令値を出力する。特性測定用指令値の出力に応答して生じるフィードバック値から、制御演算部154および制御対象10を含む特性が算出される。制御演算部154および制御対象10を含む特性は、補正データ153を更新する際に用いられる補正シフト時間を決定する際に考慮されてもよい。
特性測定用指令値生成部176が特性測定用指令値を出力する制御周期は、基本的には、指令値生成部150が補正前指令値を出力する制御周期と同一に設定されている。また、特性測定用指令値パターン177に規定される特性測定用指令値パターンとしては、制御演算部154および制御対象10を含む特性を測定するのに好ましい時間変化(例えば、パルス状の時間変化、ステップ状の時間変化(ステップ応答)、ランプ状の時間変化(ランプ応答)など)を用いることが好ましい。パルス状の時間変化は、時間幅が短い(例えば、1制御周期など)パルスを与えたときの応答特性を意味する。
以上のような学習演算によって、制御対象に応じた適切な指令値を算出するための補正データ153が決定される。
なお、図5に示す学習切替部174およびモード切替部178は、物理的なスイッチでなくてもよく、例えば、ソフトウェアを用いて実装された論理的なスイッチであってもよい。
<E.シミュレーション学習演算>
本実施の形態に従う学習制御を含む制御系は、さらに、補正データ153の初期値であるRev(1)をより適切に決定するための処理(以下、「シミュレーション学習演算」とも称す。)が実装されている。Rev(1)に入力する補正データを、以下「仮の補正データ」とも称す。
シミュレーション学習演算においては、特性測定/シミュレーション学習モードにおいて測定されるフィードバック値を用いて、上述したような学習演算に相当する演算をシミュレーションにより実行する。そのシミュレーションの実行により得られた結果から仮の補正データを算出する。このようなシミュレーション学習演算を採用することで、適切な補正データを収集するために実際に制御対象を動作させる回数を低減させることができる。
図6は、図5に示す本実施の形態に従う学習制御を含む制御系に対してシミュレーション学習演算を付加した模式図である。図6を参照して、制御装置100は、シミュレーション学習演算を担当するシミュレーション学習演算部180を含む。シミュレーション学習演算は、特性測定用指令値生成部176およびモード切替部178の機能も利用する。
シミュレーション学習演算においては、基本的には、2つの応答データ(フィードバック値の時間変化)が測定される。
第1の応答データは、指令値パターン151に規定された補正前指令値がそのまま(指令値補正部152において何らの補正量も与えられることなく)制御演算部154へ出力されたときに生じるフィードバック値の時間変化に相当する補正なし応答データ182である。
第2の応答データは、特性測定用指令値パターン177に規定された補正前指令値が制御演算部154へ出力されたときに生じるフィードバック値の時間変化に相当する特性測定用応答データ181である。
シミュレーション学習演算部180は、補正なし応答データ182と、特性測定用指令値パターン177および特性測定用応答データ181とに基づいて、制御演算部154および制御対象10含む全体の特性をシミュレーションすることで、Rev(1)として用いられる仮の補正データを算出する。すなわち、シミュレーション学習演算部180は、学習演算部172による補正データ153に対する更新が実行されていない状態において用いられる、補正データ153の初期値Rev(1)を決定する。
特性測定用指令値パターン177は、後述するように、ステップ状の時間変化(ステップ応答)を採用することが好ましい。
<F.処理手順>
次に、本実施の形態に従う制御装置100における学習制御に係る処理手順について説明する。図7は、本実施の形態に従う制御装置100における学習制御に係る処理手順を示すフローチャートである。図7に示す各ステップは、図1に示すプロセッサ102が制御プログラム(システムプログラム110、ユーザプログラム112および学習制御プログラム114を含む)を実行することで実現される。
図7を参照して、制御装置100は、まず、学習制御に必要な準備工程(ステップS2〜S10)を実行する。
具体的には、制御装置100は、起動指令を受けると(ステップS2においてYES)、制御モードを設定する(モード切替部178を制御モード側へ切り替える)とともに、指令値パターン151に従う補正前指令値を制御演算部154へ与えて、そのときに測定されるフィードバック値の時間変化を補正なし応答データ182として格納する(ステップS4)。
続いて、制御装置100は、特性測定/シミュレーション学習モード(モード切替部178を特性測定/シミュレーション学習モード側へ切り替える)を設定するとともに、特性測定用指令値パターン177に従う特性測定用指令値を制御演算部154へ与えて、そのときに測定されるフィードバック値の時間変化を特性測定用応答データ181として格納する(ステップS6)。
続いて、制御装置100は、ステップS2において取得した補正なし応答データ182と、ステップS6において取得した特性測定用応答データ181とを用いて、シミュレーション学習演算を実行する(ステップS8)。ステップS8のシミュレーション学習演算の実行により得られた仮の補正データを補正データ153の初期値であるRev(1)として設定する(ステップS10)。すなわち、制御装置100は、補正データ153に対する更新が実行されていない状態において用いられる、補正データ153の初期値Rev(1)を決定する。
以上の処理によって、学習制御の準備工程が完了するので、続いて、学習制御を開始する。
制御装置100は、起動指令を受けると(ステップS12においてYES)、制御モードを設定する(モード切替部178を制御モード側へ切り替える)とともに、学習演算を有効化(学習切替部174をオンに設定する)する(ステップS14)。そして、制御装置100は、起動指令に応答して、予め定められた指令値パターン151に従って制御周期毎に出力される補正前指令値を、現在の補正データ153に従って制御周期毎に出力される補正量で補償した指令値を出力する(ステップS16)。出力される指令値に従って制御対象10に対する制御出力が算出される。
続いて、制御装置100は、指令値生成部150からの補正前指令値と測定されるフィードバック値との偏差の時間変化を偏差データ171として格納する(ステップS18)とともに、格納した偏差データ171に基づいて補正データ153を更新する(ステップS20)。すなわち、制御装置100は、指令値と制御対象10からのフィードバック値との偏差に基づいて、補正データ153を更新する。
指令値パターン151に規定された時間変化のすべての出力が完了すると、制御装置100は、学習回数を1だけインクリメントする(ステップS22)。そして、制御装置100は、学習回数が予め定められた所定回数に到達したか否かを判断し(ステップS24)、学習回数が予め定められた所定回数に到達していなければ(ステップS24においてNO)、制御装置100は、ステップS12以下の処理を繰返す。
これに対して、学習回数が予め定められた所定回数に到達していれば(ステップS24においてYES)、制御装置100は、学習演算を無効化(学習切替部174をオフに設定する)する(ステップS26)。以下、通常の制御モードで学習制御を実行する。
制御装置100は、起動指令を受けると(ステップS28においてYES)、起動指令に応答して、指令値パターン151に従う補正前指令値に対して、現在の補正データ153に従って出力される補正量で補償することで算出された指令値を制御演算部154へ与える(ステップS30)。以下、ステップS28およびS30の処理が繰返される。
<G.シミュレーション学習演算の処理手順>
次に、シミュレーション学習演算(図7のステップS8)のより詳細な処理手順について説明する。
図8は、図7のステップS8に示すシミュレーション学習演算に係る処理手順を示すフローチャートである。図9は、図7のステップS8に示すシミュレーション学習演算において取得される時間波形の一例を示す図である。
図8を参照して、制御装置100は、制御装置100は、制御演算部154に与えられる指令値と当該指令値に応答して制御対象10に現れるフィードバック値との関係を示す応答特性を取得する。より具体的には、ステップS6において取得した特性測定用応答データ181を用いて、単位パルス指令値に対する単位パルス応答データU(n)を算出する(ステップS81)。
特性測定用指令値パターン177においては、高さHのステップ状の時間変化が指令値として規定されているとする。特性測定用指令値パターン177に規定される時間変化は、制御周期のN倍の長さに亘って規定されているとする。
図9(A)には、制御周期を1msとして、高さ1のステップ状の時間変化を示す特性測定用指令値を与えるとともに、そのときに現れた特性測定用応答データに相当する応答データS(n)の時間波形を示す。図9(A)に示すように、応答データS(n)は、特性測定用指令値が与えられると、所定の時定数で徐々に増加する。
特性測定用指令値生成部176は、予め定められた特性測定用指令値パターン177に従って制御周期毎に特性測定用指令値を出力する。この特性測定用指令値に対して生じるフィードバック値の時間変化、すなわち制御周期毎の応答データS(n)(n=0〜N)が特性測定用応答データ181として格納される。
特性測定用応答データ181に格納される時間変化は、制御演算部154および制御対象10の離散ステップ応答に相当する。ステップS81においては、この離散ステップ応答から離散単位インパルス応答を算出する。
具体的には、1つの制御周期を単位時間とし、高さ1の単位時間幅のパルス(以下、「単位パルス」とも称する。)指令値に対する単位パルス応答データU(n)(n=0〜N)を、近似的に以下のような数式に従って算出される。ここで、S(−1)=0とする。
U(n)={S(n)−S(n−1)}/H)
このように、制御装置100は、ステップ状の指定値パターンに従って制御周期毎に出力される特性測定用指令値を制御演算部154へ出力し、特性測定用指令値に対応して取得されるフィードバック値の時間変化(すなわち、応答データS(n))について時間的な差分近似により単位パルスに対する応答特性(すなわち、単位パルス応答データU(n))を算出する。
続いて、制御装置100は、仮の補正データの初期値を決定する。より具体的には、制御装置100は、予め定められた指令値パターン151に規定された補正前指令値のパターンに対する応答データRsim(0)(n)を算出する(ステップS82)。より詳細には、指令値パターン151に規定された指令値パターンD(n)に対して、単位パルス応答データU(n)を使用して対応する応答データRsim(0)(n)(n=0〜N)を、近似的に以下のような数式に従って算出される。ここで、i=0〜nであり、Rsim(k)(0)=0とする。
sim(0)(n)=Σ{D(i)×U(n−i)}
すなわち、指令値パターンD(n)と単位パルス応答データU(n)との一種の畳み込み演算によって、学習演算の開始前に取得されるであろう応答特性に相当する、応答データRsim(0)(n)が算出される。
図9(B)には、図9(A)に示される応答データS(n)から算出された単位パルス指令値と当該単位パルス指令値に対応する単位パルス応答データU(n)の時間波形を示す。図9(B)に示すように、単位パルス応答データU(n)は、単位パルス指令に応答して、ある時間の間だけ応答を示す。
次に、制御装置100は、補正前指令値の制御演算部154への出力に応答して制御対象10に現れるフィードバック値と、対応する推定されたフィードバック値との偏差からモデル誤差Merr(n)を算出する(ステップS83)。より具体的には、制御装置100は、ステップS4において取得した補正なし応答データ182に格納される時間変化である応答データR(0)(n)と、ステップS82において算出した応答データRsim(0)(n)との偏差をモデル誤差Merr(n)として算出する。つまり、モデル誤差Merr(n)(n=0〜N)は、以下のような数式に従って算出される。
Merr(n)=R(0)(n)−Rsim(0)(n)
続いて、制御装置100は、シミュレーションにより学習演算を実行(シミュレーション学習演算)する。すなわち、制御装置100は、上述したような学習演算部172での補正データ153の更新と同様の処理をシミュレーションで実現する。
まず、制御装置100は、補正前指令値を仮の補正データで補償した値と、応答特性とに基づいて、制御対象10に現れるであろうフィードバック値を推定する。より具体的には、制御装置100は、k回目のシミュレーション学習演算における偏差データErrsim(k)を算出する(ステップS84)。
回目のシミュレーション学習演算における偏差データErrsim(k)は、シミュレーション上においては、近似的に以下のような数式に従って算出される。但し、n=0〜N,i=0〜nである。
sim(k)(n)=Σ[{D(i)+Revsim(k)(i)}×U(n−i)]
Errsim(k)(n)=D(n)−Rsim(k)(n)
続いて、制御装置100は、指令値と推定されたフィードバック値との偏差に基づいて仮の補正データを更新する。より具体的には、制御装置100は、偏差データErrsim(k)に基づいてk+1回目の補正データRevsim(k+1)を更新する(ステップS85)。k+1回目の補正データRevsim(k+1)は、以下のような数式に従って算出される。但し、n=0〜Nである。
Revsim(k+1)(n)=Revsim(k)(n)+G×Errsim(k)(n+st)+Merr(n)
但し、
Revsim(k+1)(n):k+1回目のシミュレーション学習のサンプル時刻nにおける補正データ
Revsim(k)(n):k回目のシミュレーション学習のサンプル時刻nにおける補正データ
G:学習の強さを定める係数(0<G≦1:通常は「1」でもよい)
Errsim(k)(n+st):k回目のシミュレーション学習のサンプル時刻n+stにおける偏差データ
st:補正シフト時間(制御周期の整数倍)
上述のように、制御装置100は、推定されたフィードバック値との偏差に所定の係数Gを乗じた値で現在の仮の補正データを更新する。このとき、モデル誤差Merr(n)を更新後の仮の補正データに反映してもよい。
続いて、制御装置100は、シミュレーション学習演算の実行が完了すると、予め定められたシミュレーション終了条件が満たされるか否かを判断する(ステップS86)。予め定められたシミュレーション終了条件が満たされていなければ(ステップS86においてNO)、制御装置100は、ステップS84以下を再度実行する。このように、予め定められた終了条件が満たされるまで、フィードバック値の推定および仮の補正データの更新に係る処理を繰返す。
一方、予め定められたシミュレーション終了条件が満たされていれば(ステップS86においてYES)、制御装置100は、補正データRevsim(k)の現在値を仮の補正データとして決定する(ステップS87)。そして、処理は図7のステップS10へ進む。
予め定められたシミュレーション終了条件としては、例えば、偏差データErrsim(k)の2乗和などを含む評価関数が十分小さな値に収束することを含む。あるいは、予め定められたシミュレーション終了条件としては、シミュレーション学習演算の実行が予め定められた学習回数に到達することを含む。なお、シミュレーション学習演算においては、補正データ153が過学習されたものとなる可能性が低いので、上述の学習演算の終了を判定する条件に比較して、シミュレーション終了条件を厳しく(すなわち、学習回数を増加させる方向に変更)してもよい。
以上のような処理手順によって、Rev(1)として用いられる仮の補正データが算出される。
図9(C)には、10回のシミュレーション学習演算を実行後に得られた補正データの一例を示す。図9(C)には、補正データに加えて、補正前指令値および実位置(フィードバック値)の時間変化の一例を示す。図9(C)に示すように、シミュレーションによって、適切な補正データが事前に取得できていることが分かる。
<H.実施例>
次に、本実施の形態に従う学習制御を含む制御系によるいくつかの実施例を説明する。
図10および図11は、本実施の形態に従うシミュレーション学習演算による効果を説明するためのグラフである。
図10(A)には、学習演算を全く行っていない状態(補正データ153に何らの情報も存在していない状態)で制御を実行したときの各部の時間波形を示す。図10(B)には、1回の学習演算を行った状態(補正データ153には1回の学習演算によって得られた情報のみ存在している状態)で制御を実行したときの各部の時間波形を示す。図10(C)には、所定回数のシミュレーション学習演算を実行して仮の補正データを設定した上で、1回の学習演算を行った状態(補正データ153では、仮の補正データが1回の学習演算によって得られた情報によって更新された状態)で制御を実行したときの各部の時間波形を示す。
図10(A)〜10(C)において、位置偏差の変動が小さい程、適切に学習されているとみなすことができる。1回の学習演算によって、図10(A)に示す状態から図10(B)に示す状態に改善している。しかしながら、図10(C)に示すように、本実施の形態に従うシミュレーション学習演算を事前に実行することで、図10(B)に示される位置偏差の変動に比較して、位置偏差の変動がより小さくなっていることが分かる。すなわち、シミュレーション学習演算を事前に実行することで、最終的な補正データにより早く近付けることが分かる。
図11(A)には、3回の学習演算を行った状態(補正データ153には3回の学習演算によって得られた情報が存在している状態)で制御を実行したときの各部の時間波形を示す。図11(B)には、5回の学習演算を行った状態(補正データ153には3回の学習演算によって得られた情報が存在している状態)で制御を実行したときの各部の時間波形を示す。
一方、図11(C)には、所定回数のシミュレーション学習演算を実行して仮の補正データを設定した上で、3回の学習演算を行った状態(補正データ153では、仮の補正データが3回の学習演算によって得られた情報によって更新された状態)で制御を実行したときの各部の時間波形を示す。
上述したように、位置偏差の変動が小さい程、適切に学習されているとみなすことができる。3回の学習演算によって得られる図11(A)に示す状態から、さらに4回の学習演算を行って、合計7回の学習演算によって得られる図11(B)に示す状態に改善している。しかしながら、図11(C)に示すように、本実施の形態に従うシミュレーション学習演算を事前に実行することで、3回の学習演算だけで、図11(B)に示すような7回の学習演算と同様の効果が得られることが分かる。すなわち、図11に示す例においては、シミュレーション学習演算によって、実際に制御対象を動作させる回数を半分以下(7回から3回)に低減できることが分かる。
<I.学習制御プログラムの実装例>
次に、本実施の形態に従う制御装置100に予め格納された制御プログラムに含まれる学習制御プログラム114の実装例について説明する。
図12および図13は、本実施の形態に従う制御装置100の制御プログラムに含まれる学習制御プログラム114の実装例を示す図である。図12および図13には、上述したような各処理の実行をファンクションブロックにより規定する例を示す。
図12(A)には、制御演算部154および制御対象10を含む全体の特性を測定する処理を担当する特性測定ファンクションブロック1141を示す。図12に示す特性測定ファンクションブロック1141に左側にある要素が入力要素であり、右側にある要素が出力要素である。以下に説明する他のファンクションブロックについても同様である。
より具体的には、特性測定ファンクションブロック1141には、入力信号として、特性測定モードの開始を指示する特性測定モード起動と、特性測定を継続すべき時間を規定する最大測定時間と、特性測定用指令値として与えるステップ信号の高さを規定する指令値高さと、制御対象からのフィードバック値を規定するフィードバック値とが入力される。
また、特性測定ファンクションブロック1141からは、特性測定モードを実行中であることを示す特性測定中と、特性測定用指令値のモニター出力である特性測定用指令値と、学習演算において補正データを更新するために用いる補正シフト時間と、シミュレーション学習演算において使用される単位パルス応答データU(n)とが出力される。特性測定用指令値としては、パルス状またはステップ状の指令値を指定された最大測定時間に亘って出力する。単位パルス応答データは、時系列データであるので、配列データとして出力されてもよい。
図12(B)には、学習演算を担当する学習演算ファンクションブロック1142を示す。学習演算ファンクションブロック1142は、1回の学習演算毎に起動されることが想定されている。
より具体的には、学習演算ファンクションブロック1142には、入力信号として、学習演算の開始を指示する学習演算起動と、学習演算を終了するための条件である学習終了判定値と、学習演算において補正データを更新するために用いる補正シフト時間と、予め定められた指令値パターンと、制御対象からのフィードバック値を規定するフィードバック値と、現在の補正データとが入力される。
また、学習演算ファンクションブロック1142からは、学習演算を実行中であることを示す学習演算中と、1回の学習演算の結果を示す評価関数値と、学習演算の実行が完了したことを示す学習終了と、学習演算中のフィードバック値の時間変化を示す応答データと、1回の学習演算の結果得られた更新後の補正データとが出力される。応答データおよび補正データは、時系列データであるので、配列データとして出力されてもよい。
なお、初回の学習演算において取得された応答データは、シミュレーション学習演算において、補正なし応答データ182として用いられてもよい。補正データは学習演算毎に更新される。
図13には、シミュレーション学習演算を担当するシミュレーション学習演算ファンクションブロック1143を示す。シミュレーション学習演算は、1回の起動で、仮の補正データを出力することが想定されている。
より具体的には、シミュレーション学習演算ファンクションブロック1143には、入力信号として、シミュレーション学習演算の開始を指示する学習演算起動と、シミュレーション学習演算において補正データを更新するために用いる補正シフト時間と、予め定められた指令値パターンと、単位パルス応答データと、補正なし応答データとが入力される。指令値パターンと、単位パルス応答データと、補正なし応答データとは、時系列データであるので、配列データとして出力されてもよい。
また、シミュレーション学習演算ファンクションブロック1143からは、シミュレーション学習演算を実行中であることを示すシミュレーション学習中と、シミュレーション学習演算の実行により決定された仮の補正データが出力される。仮の補正データは、時系列データであるので、配列データとして出力されてもよい。仮の補正データは、学習演算ファンクションブロック1142に入力される補正データの初期値として用いられてもよい。また、後述するような方法を採用することで、補正なし応答データを不要にしてもよい。
<J.実施の形態に対する変形例>
上述した実施の形態について以下のような変形を加えてもよい。
(1)シミュレーション学習演算における特性測定の省略(図7のステップS4)
上述のシミュレーション学習演算においては、特性測定により、補正なし応答データが取得される(ステップS4)。さらに、補正なし応答データを用いて、モデル誤差Merr(n)が算出される(ステップS83)が、応答データS(n)の取得を省略した場合には、モデル誤差Merr(n)はゼロとして取り扱うことになる。
シミュレーション学習演算における特性測定を省略することで、算出される仮の補正データの精度はやや低下するものの、実際に制御対象を動作させる回数を1回分低減させることができる。
(2)単位パルス応答データU(n)の算出方法(ステップS81)
上述の実施の形態においては、特性測定用指令値として、ステップ状の時間変化を用いるとともに、そのような指令値に応じて取得されるステップ応答データを用いて、単位パルス指令値に対する応答データを算出している。
これに限らず、特性測定用指令値として、パルス状の時間変化を用いるとともに、そのような指令値に基づいて、単位パルス応答データを直接的に測定してもよい。
あるいは、特性測定用指令値として、ランプ状の時間変化を用いるとともに、そのような指令値に応じて取得されるランプ応答データから単位パルス応答データを算出してもよい。
(3)単位パルス応答データU(n)の算出方法(ステップS81)および補正データRevsim(k)の算出方法(ステップS84)
上述の実施の形態においては、単位パルス応答データU(n)と指令値パターンD(n)とに基づいて、各回の補正データRevsim(k)(n)を算出する。
単位パルス応答データU(n)に代えて、制御演算部154および制御対象10をまとめた伝達関数を用いるようにしてもよい。
伝達関数は、白色雑音などの入力を与えて、それに対する応答データからシステム同定手法により決定してもよい。すなわち、白色雑音などの任意の指令値を制御演算部154へ与えるとともに、当該任意の指令値に対応して取得されるフィードバック値の時間変化に基づいて、システム同定手法により推定される伝達関数を応答特性として決定してもよい。
このように決定された伝達関数と、指令値パターンD(n)とに基づいて、各回の補正データRevsim(k)(n)を算出してもよい。
(4)オフラインシステムでのシミュレーション学習演算
上述の実施の形態においては、典型例として、制御装置100が学習演算およびシミュレーション学習演算を実行する構成を説明した。しかしながら、学習演算およびシミュレーション学習演算をそれぞれ別の処理主体で実行するようにしてもよい。例えば、制御装置100が指令値を出力することで得られるフィードバック値を取得し、その取得したフィードバック値を用いて、制御装置100とは別に用意されたパーソナルコンピュータ上でシミュレーション学習演算を実行し、そのシミュレーション学習演算の実行により決定された仮の補正データを再度制御装置100へ戻すようにしてもよい。
<K.結論>
本実施の形態に従う学習制御を含む制御系においては、既知の指令値を制御演算部154へ与えるとともに、制御対象10からのフィードバック値の時間変化である応答データを取得する。そして、取得した応答データに基づいて、制御演算部154および制御対象10を含めた系の特性を反映したシミュレーション学習演算を実行し、指令値パターンに対する仮の補正データを決定する。決定された仮の補正データを学習演算の補正データの初期値として採用することで、学習演算を早期の収束し、適切な補正データを決定できる。
以上のようなシミュレーション学習演算を採用することで、適切な学習演算を実現するために必要な制御対象10を実際に動作させる回数を低減でき、これによって、制御系に対する調整の時間および手間を削減できる。また、より少ない学習演算の実行回数であっても、精度の高い学習制御を実現できる。
また、シミュレーション実行環境が十分な性能を有している場合には、制御対象10を実際に動作させる回数が少なくて済む結果、学習演算を実現するためのトータルの時間を短縮できる。
さらに、制御対象10を実際に動作させる処理と上述のシミュレーションとを並列的に実行することで、さらなるトータル時間の短縮が可能となる。具体的には、現在の指令値パターンで制御対象10を実際に動作させているときに、次の指令値パターンに対する事前シミュレーションを実行するという手法が考えられる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
10 制御対象、100 制御装置、102 プロセッサ、104 チップセット、106 メインメモリ、108 フラッシュメモリ、110 システムプログラム、112 ユーザプログラム、112A シーケンスプログラム、112B モーションプログラム、114 学習制御プログラム、116 外部ネットワークコントローラ、118 メモリカードインターフェイス、120 メモリカード、122 内部バスコントローラ、124 フィールドバスコントローラ、126 I/Oユニット、150 指令値生成部、151 指令値パターン、152 指令値補正部、153 補正データ、154 制御演算部、155 指令値、156,160 差分器、158 位置制御部、162 速度制御部、164 トルクフィルタ、166 電流制御部、168 速度検出部、170 偏差算出部、171 偏差データ、172 学習演算部、174 学習切替部、176 特性測定用指令値生成部、177 特性測定用指令値パターン、178 モード切替部、180 シミュレーション学習演算部、181 特性測定用応答データ、182 応答データ、200 サーボドライバ、300 メカ、1141 特性測定ファンクションブロック、1142 学習演算ファンクションブロック、1143 シミュレーション学習演算ファンクションブロック。
本発明のさらに別の局面に従えば、制御対象を制御するための制御システムが提供される制御システムは、予め定められたパターンに従って制御周期毎に出力される第1の指令値を、補正データに従って制御周期毎に出力される補正量で補償した第2の指令値を生成する指令値生成手段と、第2の指令値に従って制御対象に対する制御出力を算出する制御演算手段と、第1の指令値と制御対象からのフィードバック値との偏差に基づいて、補正データを更新する学習演算手段と、学習演算手段による補正データに対する更新が実行されていない状態において用いられる、当該補正データの初期値を決定する初期値決定手段とを含む。初期値決定手段は、制御演算手段に与えられる指令値と当該指令値に応答して制御対象に現れるフィードバック値との関係を示す応答特性を取得する特性取得手段と、第1の指令値を仮の補正データで補償した値と、応答特性とに基づいて、制御対象に現れるであろうフィードバック値を推定する推定手段と、第1の指令値と推定されたフィードバック値との偏差に基づいて仮の補正データを更新する更新手段とを含む。
図8を参照して、制御装置100は、制御演算部154に与えられる指令値と当該指令値に応答して制御対象10に現れるフィードバック値との関係を示す応答特性を取得する。より具体的には、ステップS6において取得した特性測定用応答データ181を用いて、単位パルス指令値に対する単位パルス応答データU(n)を算出する(ステップS81)。
図11(A)には、3回の学習演算を行った状態(補正データ153には3回の学習演算によって得られた情報が存在している状態)で制御を実行したときの各部の時間波形を示す。図11(B)には、回の学習演算を行った状態(補正データ153には回の学習演算によって得られた情報が存在している状態)で制御を実行したときの各部の時間波形を示す。

Claims (9)

  1. 制御対象を制御するための制御装置であって、
    予め定められたパターンに従って制御周期毎に出力される第1の指令値を、補正データに従って制御周期毎に出力される補正量で補償した第2の指令値を生成して制御演算手段へ出力する指令値生成手段を備え、前記制御演算手段は、前記第2の指令値に従って前記制御対象に対する制御出力を算出し、
    前記第1の指令値と前記制御対象からのフィードバック値との偏差に基づいて、前記補正データを更新する学習演算手段と、
    前記学習演算手段による前記補正データに対する更新が実行されていない状態において用いられる、当該補正データの初期値を決定する初期値決定手段とを備え、
    前記初期値決定手段は、
    前記制御演算手段に与えられる指令値と当該指令値に応答して前記制御対象に現れるフィードバック値との関係を示す応答特性を取得する特性取得手段と、
    前記第1の指令値を仮の補正データで補償した値と、前記応答特性とに基づいて、前記制御対象に現れるであろうフィードバック値を推定する推定手段と、
    前記第1の指令値と前記推定されたフィードバック値との偏差に基づいて前記仮の補正データを更新する更新手段とを含む、制御装置。
  2. 前記初期値決定手段は、前記第1の指令値の前記制御演算手段への出力に応答して前記制御対象に現れるフィードバック値と、対応する前記推定されたフィードバック値との偏差からモデル誤差を算出する算出手段をさらに含む、請求項1に記載の制御装置。
  3. 前記更新手段は、前記モデル誤差を更新後の仮の補正データに反映する、請求項2に記載の制御装置。
  4. 前記更新手段は、前記推定されたフィードバック値との偏差に所定の係数を乗じた値で現在の仮の補正データを更新する、請求項2または3に記載の制御装置。
  5. 前記特性取得手段は、
    ステップ状の指定値パターンに従って制御周期毎に出力される第3の指令値を前記制御演算手段へ出力し、
    前記第3の指令値に対応して取得されるフィードバック値の時間変化について時間的な差分近似により単位パルスに対する応答特性を算出する、請求項1〜4のいずれか1項に記載の制御装置。
  6. 前記特性取得手段は、任意の指令値を前記制御演算手段へ与えるとともに、当該任意の指令値に対応して取得されるフィードバック値の時間変化に基づいて、システム同定手法により推定される伝達関数を前記応答特性として決定する、請求項1〜4のいずれか1項に記載の制御装置。
  7. 前記初期値決定手段は、予め定められた終了条件が満たされるまで、前記推定手段および前記更新手段による処理を繰返す手段をさらに含む、請求項1〜6のいずれか1項に記載の制御装置。
  8. 制御対象を制御するための制御装置を実現するための制御プログラムであって、前記制御プログラムはコンピュータに
    予め定められたパターンに従って制御周期毎に出力される第1の指令値を、補正データに従って制御周期毎に出力される補正量で補償した第2の指令値を生成して制御演算手段へ出力するステップを実行させ、前記制御演算手段は、前記第2の指令値に従って前記制御対象に対する制御出力を算出し、
    前記第1の指令値と前記制御対象からのフィードバック値との偏差に基づいて、前記補正データを更新するステップと、
    前記補正データに対する更新が実行されていない状態において用いられる、当該補正データの初期値を決定するステップとを実行させ、
    前記補正データの初期値を決定するステップは、
    前記制御演算手段に与えられる指令値と当該指令値に応答して前記制御対象に現れるフィードバック値との関係を示す応答特性を取得するステップと、
    前記第1の指令値を仮の補正データで補償した値と、前記応答特性とに基づいて、前記制御対象に現れるであろうフィードバック値を推定するステップと、
    前記第1の指令値と前記推定されたフィードバック値との偏差に基づいて前記仮の補正データを更新するステップとを含む、制御プログラム。
  9. 制御対象を制御するための制御システムであって、
    予め定められたパターンに従って制御周期毎に出力される第1の指令値を、補正データに従って制御周期毎に出力される補正量で補償した第2の指令値を生成する指令値生成手段と、
    前記第2の指令値に従って前記制御対象に対する制御出力を算出する制御演算手段と、
    前記第1の指令値と前記制御対象からのフィードバック値との偏差に基づいて、前記補正データを更新する学習演算手段と、
    前記学習演算手段による前記補正データに対する更新が実行されていない状態において用いられる、当該補正データの初期値を決定する初期値決定手段とを備え、
    前記初期値決定手段は、
    前記制御演算手段に与えられる指令値と当該指令値に応答して前記制御対象に現れるフィードバック値との関係を示す応答特性を取得する特性取得手段と、
    前記第1の指令値を仮の補正データで補償した値と、前記応答特性とに基づいて、前記制御対象に現れるであろうフィードバック値を推定する推定手段と、
    前記第1の指令値と前記推定されたフィードバック値との偏差に基づいて前記仮の補正データを更新する更新手段とを含む、制御システム。
JP2017121562A 2017-06-21 2017-06-21 制御装置、制御プログラムおよび制御システム Active JP6897360B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017121562A JP6897360B2 (ja) 2017-06-21 2017-06-21 制御装置、制御プログラムおよび制御システム
US15/893,704 US10977576B2 (en) 2017-06-21 2018-02-12 Control device, recording medium, and control system
CN201810149072.0A CN109100990B (zh) 2017-06-21 2018-02-13 控制装置、记录媒体及控制系统
EP18156814.8A EP3418822A1 (en) 2017-06-21 2018-02-14 Control device, control program, and control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017121562A JP6897360B2 (ja) 2017-06-21 2017-06-21 制御装置、制御プログラムおよび制御システム

Publications (2)

Publication Number Publication Date
JP2019008416A true JP2019008416A (ja) 2019-01-17
JP6897360B2 JP6897360B2 (ja) 2021-06-30

Family

ID=61526526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017121562A Active JP6897360B2 (ja) 2017-06-21 2017-06-21 制御装置、制御プログラムおよび制御システム

Country Status (4)

Country Link
US (1) US10977576B2 (ja)
EP (1) EP3418822A1 (ja)
JP (1) JP6897360B2 (ja)
CN (1) CN109100990B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6781191B2 (ja) * 2018-05-24 2020-11-04 ファナック株式会社 プログラマブルコントローラ及び機械学習装置
JP6849643B2 (ja) * 2018-11-09 2021-03-24 ファナック株式会社 出力装置、制御装置、及び評価関数と機械学習結果の出力方法
JP7156982B2 (ja) * 2019-03-11 2022-10-19 株式会社日立製作所 リアルタイムコントローラおよびそれを用いた分散制御システム、産業機械
JP7484382B2 (ja) * 2020-04-24 2024-05-16 横河電機株式会社 制御装置、制御方法および制御プログラム
EP4016834A1 (en) 2020-12-21 2022-06-22 Schneider Toshiba Inverter Europe SAS Electric motor control
US20220395977A1 (en) * 2021-06-15 2022-12-15 X Development Llc Robot instruction distribution framework

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225533A (ja) * 2007-03-08 2008-09-25 Fanuc Ltd サーボ制御装置
JP2011186668A (ja) * 2010-03-05 2011-09-22 Mori Seiki Co Ltd 制御方法及び制御装置
JP2017102624A (ja) * 2015-11-30 2017-06-08 オムロン株式会社 制御装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437201B2 (en) * 2003-01-14 2008-10-14 Cullen Christopher P Electric motor controller
JP2004227163A (ja) 2003-01-21 2004-08-12 Fanuc Ltd サーボ制御装置
JP4575508B1 (ja) 2009-05-20 2010-11-04 ファナック株式会社 デュアル位置フィードバック制御を行うサーボ制御装置
US8886359B2 (en) 2011-05-17 2014-11-11 Fanuc Corporation Robot and spot welding robot with learning control function
CN102374038B (zh) 2011-09-06 2013-09-11 天津大学 自学习的前馈和主动抗扰反馈结合的vvt控制方法
WO2015004885A1 (ja) 2013-07-09 2015-01-15 パナソニックIpマネジメント株式会社 電動機の制御装置
JP2015176340A (ja) 2014-03-14 2015-10-05 オムロン株式会社 プログラマブルコントローラおよびプログラマブルコントローラによるデバイス制御方法
JP5902767B2 (ja) * 2014-07-09 2016-04-13 ファナック株式会社 モータの過熱推定を行う工作機械の制御装置
JP6361387B2 (ja) 2014-09-05 2018-07-25 オムロン株式会社 識別装置および識別装置の制御方法
JP5987081B1 (ja) 2015-04-02 2016-09-06 ファナック株式会社 基準軸を切り替えて学習制御を行うサーボ制御装置
JP6378144B2 (ja) 2015-07-31 2018-08-22 ファナック株式会社 学習メモリの割り当てを最適化する機能を有する学習制御装置を備えたサーボ制御システム
JP6243385B2 (ja) * 2015-10-19 2017-12-06 ファナック株式会社 モータ電流制御における補正値を学習する機械学習装置および方法ならびに該機械学習装置を備えた補正値計算装置およびモータ駆動装置
JP6519457B2 (ja) 2015-11-30 2019-05-29 オムロン株式会社 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225533A (ja) * 2007-03-08 2008-09-25 Fanuc Ltd サーボ制御装置
JP2011186668A (ja) * 2010-03-05 2011-09-22 Mori Seiki Co Ltd 制御方法及び制御装置
JP2017102624A (ja) * 2015-11-30 2017-06-08 オムロン株式会社 制御装置

Also Published As

Publication number Publication date
CN109100990B (zh) 2021-09-03
EP3418822A1 (en) 2018-12-26
US20180374001A1 (en) 2018-12-27
CN109100990A (zh) 2018-12-28
JP6897360B2 (ja) 2021-06-30
US10977576B2 (en) 2021-04-13

Similar Documents

Publication Publication Date Title
JP6897360B2 (ja) 制御装置、制御プログラムおよび制御システム
US10571874B2 (en) Control device for performing learning control
JP6519457B2 (ja) 補正装置、補正装置の制御方法、情報処理プログラム、および記録媒体
US10386794B2 (en) Control device, storage medium, and control system by creating internal model of control target
JP5227254B2 (ja) プロセスモデルの状態量のリアルタイム計算方法およびシミュレータ
JP6622765B2 (ja) ロボットシステム
JPH06197578A (ja) パラメータ同定器
US10656616B2 (en) Control device, control system, and recording medium
US7031949B2 (en) Method and apparatus for generating input signals in a physical system
JP7416267B2 (ja) 調整システム、調整方法および調整プログラム
US20130018612A1 (en) Device and method for observing or controlling a non-linear system
JP2019215635A (ja) 制御システム、制御装置、画像処理装置およびプログラム
JPWO2022044191A5 (ja)
US11230003B2 (en) Robot system configured to perform learning control
US11314211B2 (en) Method and device for optimizing performance of a servo control of a mechatronic system based on effective static and dynamic margins
JP2003014462A (ja) 人工衛星の姿勢検出装置
JP2019156345A (ja) 車両の評価システム
WO2020162202A1 (ja) 制御装置および制御プログラム
JP7059957B2 (ja) 制御装置および制御プログラム
CN118114498A (zh) 数据滤波方法、装置、计算机设备、存储介质及程序产品
CN116526889A (zh) 压电驱动器的控制方法、装置、设备、存储介质及产品
CN117713759A (zh) 脉冲指令滤波方法、装置、终端设备以及存储介质
JP4504423B2 (ja) 制御装置とアクティブチェーン診断をモデリングするプログラムとを結合する結合方法
Anuchin Feedback-signal prediction for a deadbeat PI controller
JPH08339207A (ja) 制御装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180216

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210524

R150 Certificate of patent or registration of utility model

Ref document number: 6897360

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250