図面 (/)
課題
解決手段
概要
背景
従来、フィードバック制御系に加えて、モデルを用いたフィードフォワード制御系を備えることにより、モデル追従制御を行うモータ制御装置が知られている(特許文献1〜3)。例えば、特許文献1には、電動機モデルおよび負荷機械モデルから出力された信号を基に生成されたトルク信号(以下、モデルトルク信号という)に、外乱トルクを考慮した速度制御回路から出力されたトルク信号(以下、外乱トルク信号という)を含めた上で、モータを駆動するためのトルク指令値を出力している。
また、特許文献2では、規範モデル値と制御目標値とに基づいて制御指令値を出力するモータ駆動装置において、制御指令値であるトルク指令値を制限するトルク制限処理を行うことが記載されている。
概要
制御対象の挙動が安定化するモデル追従型のモータ制御装置を実現する。制御装置(1)は、サーボモータ2の回転状態を検出するエンコーダ(4)の検出値に基づいて、サーボモータ2を駆動させるための駆動用トルク指令値を生成するフィードバック制御部(20)と、モデルトルク指令値を生成し、フォードバック制御部20に出力するフィードフォワード制御部(10)とを備え、フィードフォワード制御部(10)は、モデルトルク指令値を第1制限範囲内に制限するモデルトルクリミッタ(104)を備える。
目的
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
制御対象に含まれるモータの制御を行うモータ制御装置であって、前記モータの回転状態を検出する回転検出器の検出値に基づいて、前記モータを駆動させるための駆動用トルク指令値を生成するフィードバック制御部と、モデル指令値を生成し、前記フィードバック制御部に出力するフィードフォワード制御部とを備え、前記フィードフォワード制御部は、前記モデル指令値に含まれるモデルトルク指令値を第1制限範囲内に制限する第1トルク制限部を備えることを特徴とするモータ制御装置。
請求項2
前記フィードフォワード制御部は、前記第1制限範囲の上限値および下限値を設定する設定部を備え、前記設定部は、絶対値が0よりも大きな値となるように、前記第1制限範囲の上限値および下限値を設定することを特徴とする請求項1に記載のモータ制御装置。
請求項3
前記フィードバック制御部は、前記駆動用トルク指令値を第2制限範囲内に制限する第2トルク制限部を備え、前記フィードフォワード制御部は、前記第2制限範囲の上限値を前記第1制限範囲の上限値とし、前記第2制限範囲の下限値を前記第1制限範囲の下限値として設定する設定部を備えることを特徴とする請求項1または2に記載のモータ制御装置。
請求項4
前記フィードバック制御部は、前記モータの駆動状態により変動する第1補償要素、および、前記制御対象の駆動特性により変動する第2補償要素の少なくとも一方に基づいた補正トルク値を前記駆動用トルク指令値に加える補償部を備え、前記フィードフォワード制御部は、前記モータの最大トルク値および最小トルク値から、前記補正トルク値を減算することで、前記第1制限範囲の上限値および下限値を設定する設定部を備えることを特徴とする請求項1または2に記載のモータ制御装置。
請求項5
前記フィードバック制御部は、前記モータの駆動状態により変動する第1補償要素、および、前記制御対象の駆動特性により変動する第2補償要素の少なくとも一方に基づいた補正トルク値を前記駆動用トルク指令値に加える補償部と、前記駆動用トルク指令値を第2制限範囲内に制限する第2トルク制限部とを備え、前記フィードフォワード制御部は、前記第2制限範囲の上限値から前記補正トルク値を減算した値を前記第1制限範囲の上限値とし、前記第2制限範囲の下限値から前記補正トルク値を減算した値を前記第1制限範囲の下限値として設定する設定部を備えることを特徴とする請求項1または2に記載のモータ制御装置。
請求項6
前記設定部は、前記第2制限範囲の上限値から前記補正トルク値を減算した減算値が、0よりも大きい第1所定値以上の場合、当該減算値を前記第1制限範囲の上限値とし、前記減算値が前記第1所定値未満の場合、前記第1所定値を前記第1制限範囲の上限値とし、前記第2制限範囲の下限値から前記補正トルク値を減算した減算値が0よりも小さい第2所定値以下の場合、当該減算値を前記第1制限範囲の下限値とし、前記減算値が前記第2所定値より大きい場合、前記第2所定値を前記第1制限範囲の下限値とすることを特徴とする請求項5に記載のモータ制御装置。
請求項7
前記設定部は、ユーザからの入力に従って、前記第1所定値および前記第2所定値を決定することを特徴とする請求項6に記載のモータ制御装置。
請求項8
制御対象に含まれるモータの制御を行うモータ制御方法であって、モデル指令値を生成するフィードフォワード工程と、前記モデル指令値と、前記モータの回転状態を検出する回転検出器の検出値とに基づいて、前記モータを駆動させるための駆動用トルク指令値を生成するフィードバック工程とを備え、前記フィードフォワード工程において、前記モデル指令値に含まれるモデルトルク指令値を第1制限範囲内に制限することを特徴とするモータ制御方法。
請求項9
請求項10
請求項9に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
技術分野
背景技術
0002
従来、フィードバック制御系に加えて、モデルを用いたフィードフォワード制御系を備えることにより、モデル追従制御を行うモータ制御装置が知られている(特許文献1〜3)。例えば、特許文献1には、電動機モデルおよび負荷機械モデルから出力された信号を基に生成されたトルク信号(以下、モデルトルク信号という)に、外乱トルクを考慮した速度制御回路から出力されたトルク信号(以下、外乱トルク信号という)を含めた上で、モータを駆動するためのトルク指令値を出力している。
先行技術
発明が解決しようとする課題
0005
しかしながら、特許文献1の技術では、フィードフォワード制御系が外乱トルクを考慮しないモデルトルク信号を生成するため、フィードバック制御系では、モデルトルク信号に外乱トルク信号を含めてしまう。そのため、フィードフォワード制御系から出力されるモデルトルク信号に制限がなく、かつ、外乱トルクが大きい場合、フィードバック制御系では、モータに出力可能な範囲を大きく超えるトルク指令値を生成し得る。これにより、モータ制御装置におけるモデル追従性が低下する。その結果、フィードバック制御系からの出力信号が不安定となり、ひいては制御対象の挙動が不安定となる問題がある。
0006
また、特許文献2の技術では、フィードバック制御系にトルク制限処理を有しているものの、フィードフォワード制御系から出力される規範モデル値のトルク成分であるモデルトルク値には制限がない。そのため、フィードフォワード制御系からのモデルトルク値が、トルク制限処理におけるトルク指令値の制限範囲から大きくずれる場合があり得る。この場合、モータ制御装置におけるモデル追従性が低下する。その結果、フィードバック制御系からの出力信号が不安定となり、ひいては制御対象の挙動が不安定となる問題がある。
課題を解決するための手段
0008
上記の課題を解決するために、本発明の一態様に係るモータ制御装置は、制御対象に含まれるモータの制御を行うモータ制御装置であって、前記モータの回転状態を検出する回転検出器の検出値に基づいて、前記モータを駆動させるための駆動用トルク指令値を生成するフィードバック制御部と、モデル指令値を生成し、前記フォードバック制御部に出力するフィードフォワード制御部とを備え、前記フィードフォワード制御部は、前記モデル指令値に含まれるモデルトルク指令値を第1制限範囲内に制限する第1トルク制限部を備える。
0009
また、上記の課題を解決するために、本発明の一態様に係るモータ制御方法は、制御対象に含まれるモータの制御を行うモータ制御方法であって、モデル指令値を生成するフィードフォワード工程と、前記モデル指令値と、前記モータの回転状態を検出する回転検出器の検出値とに基づいて、前記モータを駆動させるための駆動用トルク指令値を生成するフィードバック工程とを備え、前記フィードフォワード工程において、前記モデル指令値に含まれるモデルトルク指令値を第1制限範囲内に制限する。
0010
上記の構成によれば、フィードフォワード制御部が第1トルク制限部を備えている。そのため、フィードバック制御部が出力する駆動用トルク指令値が安定化するように、モデルトルク指令値を制限することができる。その結果、制御対象の挙動を安定化させることができる。
0011
また、本発明の一態様に係るモータ制御装置において、前記フィードフォワード制御部は、前記第1制限範囲の上限値および下限値を設定する設定部を備え、前記設定部は、絶対値が0よりも大きな値となるように、前記第1制限範囲の上限値および下限値を設定することが好ましい。
0012
フィードフォワード制御部から出力されるモデルトルク指令値が0に制限されてしまうと、モータ制御装置に指令が入力されているにもかかわらず、モータが駆動されないという問題が生じ得る。
0013
しかしながら、上記の構成によれば、設定部は、絶対値が0よりも大きな値となるように、第1定範囲の上限値および下限値を設定する。そのため、フィードフォワード制御部から出力されるモデルトルク指令値は、0に制限されることがない。そのため、モータ制御装置に指令が入力されているにもかかわらず、モータが駆動されないという上記の問題が解決される。
0014
また、本発明の一態様に係るモータ制御装置において、前記フィードバック制御部は、前記駆動用トルク指令値を第2制限範囲内に制限する第2トルク制限部を備え、前記フィードフォワード制御部は、前記第2制限範囲の上限値を前記第1制限範囲の上限値とし、前記第2制限範囲の下限値を前記第1制限範囲の下限値として設定する設定部を備えてもよい。
0015
上記の構成によれば、フィードフォワード制御部から出力されるモデルトルク指令値がフィードバック制御部における第2トルク制限部の第2制限範囲内となり、フィードバック制御部による制御のモデル追従性をさらに向上させることができる。
0016
また、本発明の一態様に係るモータ制御装置において、前記フィードバック制御部は、前記モータの駆動状態により変動する第1補償要素、および、前記制御対象の駆動特性により変動する第2補償要素の少なくとも一方に基づいた補正トルク値を前記駆動用トルク指令値に加える補償部を備え、前記フィードフォワード制御部は、前記モータの最大トルク値および最小トルク値から、前記補正トルク値を減算することで、前記第1制限範囲の上限値および下限値を設定する設定部を備えていてもよい。
0017
もしくは、本発明の一態様に係るモータ制御装置において、前記フィードバック制御部は、前記モータの駆動状態により変動する第1補償要素、および、前記制御対象の駆動特性により変動する第2補償要素の少なくとも一方に基づいた補正トルク値を前記駆動用トルク指令値に加える補償部と、前記駆動用トルク指令値を第2制限範囲内に制限する第2トルク制限部とを備え、前記フィードフォワード制御部は、前記第2制限範囲の上限値から前記補正トルク値を減算した値を前記第1制限範囲の上限値とし、前記第2制限範囲の下限値から前記補正トルク値を減算した値を前記第1制限範囲の下限値として設定する設定部を備えていてもよい。
0018
上記の構成によれば、フィードバック制御部で駆動用トルク指令値に加えられる補正トルク値を考慮して、フィードフォワード制御部の設定部は、前記第1制限範囲の上限値および下限値を設定することができる。これにより、フィードバック制御部の補償部によって補正トルク値が加えられた駆動用トルク指令値を第2制限範囲内にしやすくなる。言い換えると、実際のモータ加減速に使用される駆動用トルク値に見合った制限をモデルトルク指令値にかけることができる。これにより、モータ制御装置におけるモデル追従性を向上させることができ、その結果、制御対象の挙動をより安定化させることができる。
0019
また、本発明の一態様に係るモータ制御装置において、前記設定部は、前記第2制限範囲の上限値から前記補正トルク値を減算した減算値が、0よりも大きい第1所定値以上の場合、当該減算値を前記第1制限範囲の上限値とし、前記減算値が前記第1所定値未満の場合、前記第1所定値を前記第1制限範囲の上限値とし、前記第2制限範囲の下限値から前記補正トルク値を減算した減算値が0よりも小さい第2所定値以下の場合、当該減算値を前記第1制限範囲の下限値とし、前記減算値が前記第2所定値より大きい場合、前記第2所定値を前記第1制限範囲の下限値としてもよい。
0020
上記の構成によれば、フィードバック制御部で駆動用トルク指令値に加えられる補正トルク値を考慮して、フィードフォワード制御部の設定部は、前記第1制限範囲の上限値および下限値を設定することができる。
0021
そのため、フィードバック制御部の補償部によって補正トルク値が加えられた駆動用トルク指令値を第2制限範囲内にしやすくなる。これにより、モータ制御装置におけるモデル追従性の低下をより抑制することができ、その結果、制御対象の挙動をより安定化させることができる。
0022
また、フィードフォワード制御部から出力されるモデルトルク指令値が0に制限されてしまうと、モータ制御装置に指令が入力されているにもかかわらず、モータが駆動されないという問題が生じ得る。
0023
しかしながら、上記の構成によれば、設定部は、絶対値が0よりも大きな値となるように、第2制限範囲の上限値および下限値を設定するため、モータ制御装置に指令が入力されているにもかかわらず、モータが駆動されないという上記の問題が解決される。
0024
また、本発明の一態様に係るモータ制御装置において、前記設定部は、ユーザからの入力に従って、前記第1所定値および前記第2所定値を設定してもよい。
0025
上記の構成によれば、ユーザは、第1制限範囲の最小範囲を所望の範囲に設定することができる。
0026
なお、上記モータ制御装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各部として動作させることによりモータ制御装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読取り可能な記録媒体も、本発明の範疇に入る。
発明の効果
0027
本発明の一態様によれば、制御対象の挙動が安定化するモデル追従型のモータ制御装置を提供することができるという効果を奏する。
図面の簡単な説明
0028
本発明の実施形態1に係る制御装置の要部構成を示すブロック図である。
トルクリミッタの機能を説明する図である。
本発明の実施形態2,3に係る制御装置の要部構成を示すブロック図である。
従来のモータ制御装置の概要を示す図である。
実施例
0029
以下、本発明の実施形態について詳細に説明する。本発明の一態様に係る制御装置(モータ制御装置)についての理解を容易にするため、先ず、従来の制御装置9について図4に基づいて説明しておく。
0030
(従来の制御装置の概要)
図4は、従来の制御装置9の概要を示す図である。図4に示すように、従来の制御装置9は、サーボモータ2についてモデル追従制御を行う制御装置である。図4にはさらに、サーボモータ2によって駆動される負荷機械3、および、サーボモータ2の位置を検出し、例えば、サーボモータ2の回転角度を検出するエンコーダ4が示されている。エンコーダ4は、検出した位置をフィードバック制御部40に送信する。具体的には、エンコーダ4により検出されたサーボモータ2の位置は、フィードバック制御部40の位置制御部401および速度検出部402に入力される。なお、エンコーダ4は、サーボモータ2の速度を検出してもよく、検出した速度をフィードバック制御部40に送信してもよい。その場合、フィードバック制御部40は、エンコーダ4によって検出されたサーボモータ2の位置からサーボモータ2の速度を算出する速度検出部402を備えなくてもよい。
0031
従来の制御装置9は、従来のフィードフォワード制御部30と、フィードバック制御部40とを備える。従来のフィードフォワード制御部30は、サーボモータ2の位置、速度、トルクの目標値であるモデル位置指令値θM、モデル速度指令値vM、モデルトルク指令値を出力する。つまり、サーボモータ2のモデル(規範モデル)に基づいた指令値を出力する。ここで、従来のフィードフォワード制御部30は、サーボモータ2のモデルについて、PID制御を行う。すなわち、従来のフィードフォワード制御部30は、外部から(例えば、ユーザから)与えられる位置指令値θR、および当該位置指令値θRから生成される速度指令値vRに追従するよう、前記モデルの目標位置であるモデル位置指令値θM、および、前記モデルの目標速度であるモデル速度指令値vMについて、PID制御を行う。従来のフィードフォワード制御部30は、モデル位置制御部301、速度指令生成部302、モデル速度制御部303、制御対象モデル部305を備えている。
0032
モデル位置制御部301は、前記位置指令値θRと、制御対象モデル部305により生成されたモデル位置指令値θMと、を受け付け、当該モデル位置指令値θMが当該位置指令値θRに追従するよう制御するモデル速度制御指令を生成する。モデル位置制御部301は、生成したモデル速度制御指令を、モデル速度制御部303およびフィードバック制御部40へと出力する。
0033
速度指令生成部302は、前記位置指令値θRを受け付け、前記位置指令値θRから速度指令値vRを生成する。速度指令生成部302は、生成した前記速度指令値vRをモデル速度制御部303へと出力する。
0034
モデル速度制御部303は、モデル位置制御部301により生成されたモデル速度制御指令、速度指令生成部302により生成された前記速度指令値vR、および、制御対象モデル部305により生成されたモデル速度指令値vMを受け付ける。モデル速度制御部303は、当該モデル速度指令値vMが、前記モデル速度制御指令および前記速度指令値vRに追従するよう制御するようモデルトルク指令値を生成する。このとき、モデル速度制御部303は、サーボモータ2における摩擦トルクや偏荷重、外乱トルクなどを考慮せずに、モデルトルク指令値を生成する。モデル速度制御部303は、生成したモデルトルク指令値を、制御対象モデル部305およびフィードバック制御部40へと通知する。ここで、モデルトルク指令値は、サーボモータ2のトルクの目標値であり、サーボモータ2のモデル(規範モデル)のトルクである。
0035
制御対象モデル部305は、モデル速度制御部303により生成されたモデルトルク指令値を受け付けて、モデル位置指令値θMおよびモデル速度指令値vMを生成し、生成したモデル位置指令値θMおよびモデル速度指令値vMを出力する。すなわち、制御対象モデル部305により生成されたモデル位置指令値θMは、モデル位置制御部301およびフィードバック制御部40へと通知される。制御対象モデル部305により生成されたモデル速度指令値vMは、モデル速度制御部303およびフィードバック制御部40へと通知される。
0036
フィードバック制御部40は、従来のフィードフォワード制御部30により制御される前記モデル位置指令値θM、前記モデル速度指令値vM、および、前記モデルトルク指令値に追従するよう、サーボモータ2の位置、速度、およびトルクについてPID制御を行う。フィードバック制御部40は、位置制御部401、速度検出部402、速度制御部403、補償部404、トルクリミッタ405、制限値設定部406を備えている。
0037
位置制御部401は、エンコーダ4により検出されたサーボモータ2の位置と、制御対象モデル部305により生成されたモデル位置指令値θMとを受け付け、検出されたサーボモータ2の位置がモデル位置指令値θMに追従するように制御する速度制御指令を生成する。そして、位置制御部401は、生成した速度制御指令を速度制御部403へと出力する。
0038
速度検出部402は、エンコーダ4により検出されたサーボモータ2の位置からサーボモータ2の速度を算出し、算出したサーボモータ2の速度を速度制御部403へと出力する。
0039
速度制御部403は、位置制御部401により生成された速度制御指令、制御対象モデル部305により生成されたモデル検出速度、および、速度検出部402により算出された速度(サーボモータ2の速度)を受け付ける。そして、速度検出部402により算出されたサーボモータ2の速度が、前記速度制御指令および前記モデル検出速度に追従するように制御するトルク制御指令を生成し、生成したトルク制御指令をトルクリミッタ405へと出力する。このとき、速度制御部403は、サーボモータ2における摩擦トルクや偏荷重、外乱トルクなどを考慮せずに、トルク制御指令を生成する。
0040
補償部404は、サーボモータ2で生じる動摩擦トルクFd、粘性摩擦トルクFv、偏荷重トルクτu、外乱要因によって生じた外乱トルクτobsなどを考慮して、これらのトルクを組み合わせた補正トルク値Cを生成する。
0041
動摩擦トルクFdは、サーボモータ2の速度vに応じて符号が変わる定数である。補償部404は、Fdの絶対値を予め記憶しておき、制御対象モデル部305から出力されるモデル速度指令値vMに応じて符号を決定し、動摩擦トルクFdを設定する。もしくは、補償部404は、サーボモータ2の実際の速度(速度検出部402の出力値、または、エンコーダ4が速度情報を出力可能であるならばエンコーダ4からの速度情報)に応じて符号を決定し、動摩擦トルクFdを設定してもよい。
0042
粘性摩擦トルクFvは、サーボモータ2の速度vに応じて変化する関数Fv(v)で表される。補償部404は、当該関数を予め記憶しておき、制御対象モデル部305から出力されるモデル速度指令値vMに応じて粘性摩擦トルクFvを算出する。もしくは、補償部404は、サーボモータ2の実際の速度(速度検出部402の出力値、または、エンコーダ4が速度情報を出力可能であるならばエンコーダ4からの速度情報)に応じて粘性摩擦トルクFvを算出してもよい。
0043
なお、サーボモータ2の実際の速度は、予期しない外乱などの影響を受けている場合がある。この場合、サーボモータ2の実際の速度を用いて動摩擦トルクFdや粘性摩擦トルクFvを求めると、モデル出力トルクが不安定になる可能性がある。そのため、予期しない外乱などの影響を受けやすい環境の場合には、補償部404は、サーボモータ2の駆動状態として制御対象モデル部305から出力されるモデル速度指令値vMに応じて動摩擦トルクFdや粘性摩擦トルクFvを求めることが好ましい。
0044
偏荷重トルクτuは、負荷機械3に対してある特定の方向にだけ発生する荷重により生じるトルクを示している。例えば、負荷機械3が鉛直方向に往復運動する際に、重力の影響によって生じるトルクである。また、外乱トルクτobsは、サーボモータ2または負荷機械3に与えられる外乱によって生じるトルクである。
0045
補償部404は、次式のように、決定した動摩擦トルクFd、粘性摩擦トルクFv、偏荷重トルクτu、外乱トルクτobsを合算することで、補正トルク値Cを生成する。
C=Fd+Fv+τu+τobs
トルクリミッタ405は、速度制御部203により生成されたトルク制御指令と、補償部404で生成された補正トルク値Cと、制御対象モデル部305により生成されたモデルトルク指令値との合算値を駆動用トルク指令値として受け付け、入力された駆動用トルク指令値が制限値設定部406により設定された制限範囲内か否かを判定し、その結果に基づいてサーボモータ2を制御する。
0046
具体的には、トルクリミッタ204は、トルク制御指令と補正トルク値Cとモデルトルク指令値との合算値である駆動用トルク指令値が制限範囲内である場合には、当該駆動用トルク指令値に基づいてサーボモータ2を制御する。一方、トルクリミッタ204は、駆動用トルク指令値が制限範囲外である場合には、制限値に制限した上でサーボモータ2を制御する。
0047
制限値設定部406は、トルクリミッタ204で用いる制限範囲の上限値(正の値)および下限値(負の値)を設定する。制限値設定部406は、ユーザからの入力がある場合には、当該入力に従って上限値および下限値を設定し、ユーザからの入力がない場合には、サーボモータ2の最大トルク値(正の値であり、絶対値が最大となるトルク)をτmax、最小トルク値(負の値であり、絶対値が最大となるトルク)を−τmaxとするとき、上限値をτmax、下限値を−τmaxに設定する。
0048
従来の制御装置9では、速度制御部203により生成されたトルク制御指令と、補償部404で生成された補正トルク値Cと、フィードフォワード制御部30から出力されたモデルトルク指令値との合算値である駆動用トルク指令値により、サーボモータ2が制御される。しかしながら、フィードフォワード制御部30ではモデルトルク指令値の制限を行わない。そのため、フィードフォワード制御部30から出力されたモデルトルク指令値が、サーボモータ2の最大トルク値以下であったとしても、補償部404から出力される補正トルク値Cを合算した駆動用トルク指令値が当該最大トルク値を超える場合がある。この場合、フィードバック制御部40によるサーボモータ2の制御において、モデル追従性が低下してしまう。これにより、フィードバック制御部40によるサーボモータ2の制御が不安定となり、ひいては制御対象である負荷機械3の挙動が不安定となる問題が生じる。
0049
また、従来の制御装置9では、フィードバック制御部40がトルクリミッタ405を備えているのに対し、フィードフォワード制御部30では、モデルトルク指令値が制限されない。そのため、フィードフォワード制御部30からのモデルトルク指令値が、フィードバック制御部40のトルクリミッタ405の制限範囲から大きくずれる場合があり得る。この場合、フィードバック制御部40によるサーボモータ2の制御において、モデル追従性が低下してしまう。これにより、フィードバック制御部40によるサーボモータ2の制御が不安定となり、ひいては制御対象である負荷機械3の挙動が不安定となる問題が生じる。
0050
本発明の実施形態は、このような問題を解決するものであり、その詳細について以下に説明する。
0051
(実施形態1)
図1は、本発明の実施形態1に係る制御装置(モータ制御装置)1の要部構成を示すブロック図である。制御装置1は、サーボモータ2についてモデル追従制御を行う制御装置である。すなわち、制御装置1は、サーボモータ2を含む制御対象のモデル(規範モデル)に基づいて、モデル指令値(モデル位置指令値、モデル速度指令値、モデルトルク指令値)を出力するフィードフォワード制御部10と、フィードフォワード制御部10が出力するモデル指令値に追従するよう、サーボモータ2を制御するフィードバック制御部20と、を含んでいる。
0052
フィードバック制御部20は、位置制御部201、速度検出部202、速度制御部203、トルクリミッタ(第2トルク制限部)204、第2制限値設定部205を備えている。ここで、位置制御部201、速度検出部202、速度制御部203、トルクリミッタ204の機能は、それぞれ図4に示す位置制御部401、速度検出部402、速度制御部403、トルクリミッタ405と同一であるため、詳細な説明を省略する。
0053
第2制限値設定部205は、図4に示す制限値設定部406と同様に、トルクリミッタ405で用いる第2制限範囲の上限値τ2_u(正の最大値)および下限値τ2_l(負の最大値)を設定する。すなわち、第2制限値設定部205は、ユーザからの入力がある場合には、当該入力に従って、第2制限範囲の上限値τ2_uおよび下限値τ2_lを設定し、ユーザからの入力がない場合には、サーボモータ2の最大トルク値をτmaxとし、最小トルク値を−τmaxするとき、上限値τ2_uをτmax、下限値τ2_lを−τmaxに設定する。なお、ユーザからτmaxを超える上限値が入力された場合、第2制限値設定部205は、τmaxを上限値τ2_uとして設定してもよいし、エラーを通知して、ユーザにτmax以下の値の再入力を促し、再入力された値を上限値τ2_uと設定してもよい。同様に、ユーザから−τmaxを下回る下限値が入力された場合、第2制限値設定部205は、−τmaxを下限値τ2_lとして設定してもよいし、エラーを通知して、ユーザに−τmax以上の値の再入力を促し、再入力された値を下限値τ2_lと設定してもよい。
0054
図2は、第2制限値設定部205により設定された上限値τ2_uおよび下限値τ2_lに従ったトルクリミッタ204での入力と出力との関係を示す図である。図2に示されるように、トルクリミッタ204に入力される駆動用トルク指令値が上限値τ2_u以下であり、かつ、下限値τ2_l以上である場合(つまり、第2制限範囲内である場合)、トルクリミッタ204は、入力された駆動用トルク指令値に従ってサーボモータ2を制御する。一方、トルクリミッタ204は、入力される駆動用トルク指令値が上限値τ2_uを超える場合、当該上限値τ2_uのトルクに従ってサーボモータ2を制御し、入力される駆動用トルク指令値が下限値τ2_lを下回る場合、当該下限値τ2_lのトルクに従ってサーボモータ2を制御する。
0055
フィードフォワード制御部10は、モデル位置制御部101、速度指令生成部102、モデル速度制御部103、モデルトルクリミッタ(第1トルク制限部)104、第1制限値設定部(設定部)105、制御対象モデル部106を備えている。ここで、モデル位置制御部101、速度指令生成部102、モデル速度制御部103、制御対象モデル部106の機能は、それぞれ図4に示すモデル位置制御部301、速度指令生成部302、モデル速度制御部303、制御対象モデル部305と同一であるため、詳細な説明を省略する。
0056
モデルトルクリミッタ104は、モデル速度制御部103により制御されたモデルトルク指令値が第1制限値設定部105により設定された第1制限範囲内か否かを判定し、必要に応じて制限をかけたうえでモデルトルク指令値を出力する。
0057
具体的には、モデルトルクリミッタ104は、モデル速度制御部103から入力されたモデルトルク指令値が制限範囲内である場合には、当該モデルトルク指令値をそのまま出力する。一方、モデルトルクリミッタ104は、モデル速度制御部103から入力されたモデルトルク指令値が制限範囲外である場合には、モデルトルク指令値を制限値に制限した上で出力する。
0058
第1制限値設定部105は、モデルトルクリミッタ104で用いる第1制限範囲の制限値、つまり上限値τ1_uおよび下限値τ1_lを設定する。第1制限値設定部105は、第2制限値設定部205で設定された第2制限範囲の上限値τ2_uおよび下限値τ2_lと同じ値に、第1制限範囲の上限値τ1_uおよび下限値τ1_lを設定する。
0059
第1制限値設定部105により設定された上限値τ1_uおよび下限値τ1_lに従ったモデルトルクリミッタ104での入力と出力との関係は、図2と同様である。すなわち、モデルトルクリミッタ104に入力されるモデルトルク指令値が上限値τ1_u以下であり、かつ、下限値τ1_l以上である場合(つまり、第1制限範囲内である場合)、モデルトルクリミッタ104は、入力されたモデルトルク指令値をそのまま出力する。一方、モデルトルクリミッタ104は、入力されるモデルトルク指令値が上限値τ1_uを超える場合、当該上限値τ1_uをモデルトルク指令値として出力し、入力されるモデルトルク指令値が下限値τ1_lを下回る場合、当該下限値τ1_lをモデルトルク指令値として出力する。
0060
以上のように、本実施形態の制御装置1は、サーボモータ2の回転状態を検出するエンコーダ(回転検出器)4の検出値に基づいて、サーボモータ2を駆動させるための駆動用トルク指令値を生成するフィードバック制御部20と、モデルトルク指令値を生成し、フォードバック制御部20に出力するフィードフォワード制御部10とを備え、フィードフォワード制御部10は、モデルトルク指令値を第1制限範囲内に制限するモデルトルクリミッタ(第1トルク制限部)104を備える。
0061
そのため、フィードバック制御部20が生成する駆動用トルク指令値が安定化するように、モデルトルク指令値を制限することができる。その結果、制御対象の挙動を安定化させることができる。
0062
また、本実施形態では、フィードフォワード制御部10の第1制限値設定部105は、モデルトルクリミッタ104の上限値τ1_uおよび下限値τ1_lを、フィードバック制御部20の第2制限値設定部205が設定する上限値τ2_uおよび下限値τ2_lと同値としている。
0063
そのため、フィードフォワード制御部10から出力されるモデルトルク指令値がフィードバック制御部20におけるトルクリミッタ204の第2制限範囲内となり、フィードバック制御部20による制御のモデル追従性をさらに向上させることができる。
0064
(実施形態2)
図3は、本発明の実施形態2に係る制御装置(モータ制御装置)1aの要部構成を示すブロック図である。図3に示されるように、本実施形態の制御装置1aは、サーボモータ2のモデル(規範モデル)を制御するフィードフォワード制御部10aと、フィードフォワード制御部10により制御されるサーボモータ2のモデルに追従するよう、サーボモータ2を制御するフィードバック制御部20aと、を含んでいる。
0065
フィードバック制御部20aは、実施形態1のフォードバック制御部20と比較して、補償部206を備えている点でのみ相違する。そのため、補償部206以外のブロックの説明を省略する。
0066
補償部206は、図4に示す補償部404と同様の機能を有している。すなわち、補償部206は、サーボモータ2で生じる動摩擦トルクFd、粘性摩擦トルクFv、偏荷重トルクτu、外乱要因によって生じた外乱トルクτobsを合算することで、
C=Fd+Fv(v)+τu+τobs
に従って補正トルク値Cを生成する。
0067
ここで、動摩擦トルクFd、粘性摩擦トルクFvは、サーボモータ2の駆動状態により変動する要素(第1補償要素)であり、偏荷重トルクτu、外乱トルクτobsは、制御対象である負荷機械3の駆動特性により変動する要素(第2補償要素)である。
0068
なお、補償部404と同様に、補償部206は、Fdの絶対値を予め記憶しておき、制御対象モデル部106から出力されるモデル速度指令値に応じて符号を決定し、動摩擦トルクFdを設定する。もしくは、補償部206は、サーボモータ2の実際の速度(速度検出部402の出力値、または、エンコーダ4が速度情報を出力可能であるならばエンコーダ4からの速度情報)に応じて符号を決定し、動摩擦トルクFdを設定してもよい。
0069
また、補償部206は、サーボモータ2の速度vに応じて変化する粘性摩擦トルクの関数Fv(v)を予め記憶しておき、制御対象モデル部106から出力されるモデル速度指令値に応じて粘性摩擦トルクFvを算出する。もしくは、補償部206は、サーボモータ2の実際の速度(速度検出部402の出力値、または、エンコーダ4が速度情報を出力可能であるならばエンコーダ4からの速度情報)に応じて粘性摩擦トルクFvを算出してもよい。
0070
補償部206は、予め設定された値を偏荷重トルクτuおよび/または外乱トルクτobsとして設定してもよいし、予め設定された関数により偏荷重トルクτuおよび/または外乱トルクτobsを算出してもよい。
0071
なお、補償部206は、動摩擦トルクFd、粘性摩擦トルクFv、偏荷重トルクτu、外乱トルクτobsの全てを用いる必要はなく、一部のトルクを考慮して補正トルク値Cを決定してもよいし、他の要因で生じるトルクを補正トルク値Cに加えてもよい。
0072
そして、本実施形態では、速度制御部203で生成されたトルク制御指令、フィードフォワード制御部10aから出力されたモデルトルク指令値、および補償部206で生成された補正トルク値Cとの合算値が駆動用トルク指令値としてトルクリミッタ204に入力される。
0073
フィードフォワード制御部10aは、実施形態1のフォードフォワード制御部10と比較して、第1制限値設定部105の代わりに第1制限値設定部(設定部)105aを備える点でのみ相違する。そのため、第1制限値設定部105a以外のブロックの説明を省略する。
0074
第1制限値設定部105aは、モデルトルクリミッタ104で用いる第1制限範囲の制限値、つまり上限値τ1_uおよび下限値τ1_lを設定する。第1制限値設定部105aは、第2制限値設定部205で設定された第2制限範囲の上限値τ2_uから補正トルク値Cを減算した値を上限値τ1_uとして設定し、第2制限範囲の下限値τ2_lから補正トルク値Cを減算した値を下限値τ1_lとして設定する。
0075
なお、第1制限値設定部105aは、補償部206と同様の演算処理により補正トルク値Cを生成し、生成した補正トルク値Cを用いて上限値τ1_uおよび下限値τ1_lを設定してもよいし、補償部206で生成された補正トルク値Cを用いて上限値τ1_uおよび下限値τ1_lを設定してもよい。
0076
フィードバック制御部20aにおいて、トルクリミッタ204は、速度制御部203で生成されたトルク制御指令、フィードフォワード制御部10aから出力されたモデルトルク指令値、および補償部206で生成された補正トルク値Cとの合算値に対して制限をかける。そのため、フィードフォワード制御部10aから出力されたモデルトルク指令値が、トルクリミッタ204の第2制限範囲内であったとしても、補正トルク値Cが加算されることで、上記の合算値がトルクリミッタ204の第2制限範囲外となる場合がある。この場合、フィードバック制御部20aにおけるサーボモータ2の制御のモデル追従性が低下する可能性がある。
0077
しかしながら、本実施形態では、上述したように、フィードフォワード制御部10aのモデルトルクリミッタ104の第1制限範囲の上限値τ1_uとして、トルクリミッタ204の第2制限範囲の上限値τ2_uから補正トルク値Cを減算した値が設定され、第1制限範囲の下限値τ1_lとして、第2制限範囲の下限値τ2_lから補正トルク値Cを減算した値が設定される。
0078
例えば、第2制限範囲の上限値および下限値として、サーボモータ2の最大トルク値および最小トルク値が設定されていた場合、第1制限値設定部105aは、最大トルク値から補正トルク値Cを減算した値を上限値τ1_uとして設定し、最小トルク値から補正トルク値Cを減算した値を下限値τ1_lとして設定する。
0079
もしくは、第2制限範囲の上限値および下限値として、ユーザにより指定された値が設定されている場合には、第1制限値設定部105aは、当該ユーザにより指定された値から補正トルク値Cを減算した値により、上限値τ1_uおよび下限値τ1_lをして設定する。
0080
これにより、フィードバック制御部20aにおいて、速度制御部203で生成されたトルク制御指令、フィードフォワード制御部10aから出力されたモデルトルク指令値、および補償部206で生成された補正トルク値Cとの合算値である駆動用トルク指令値がトルクリミッタ204の第2制限範囲を超える頻度を小さくすることができ、制御装置1aにおけるモデル追従性を向上させることができる。その結果、制御対象である負荷機械3の挙動をより安定化させ、負荷機械3を所望の動作で動作させることができる。
0081
(実施形態3)
上記の実施形態2では、フィードフォワード制御部10aのモデルトルクリミッタ104の第1制限範囲の上限値τ1_uとして、トルクリミッタ204の第2制限範囲の上限値τ2_uから補正トルク値Cを減算した値が設定され、第1制限範囲の下限値τ1_lとして、第2制限範囲の下限値τ2_lから補正トルク値Cを減算した値が設定されるものとした。そのため、補正トルク値Cが大きな値をとる場合、もしくは、上限値τ2_uおよび下限値τ2_lの絶対値として小さな値が設定された場合、上限値τ1_uとして0または負の値が設定されたり、下限値τ1_lとして0または正の値が設定されることがあり得る。
0082
この場合、ユーザが制御装置1aに位置指令値を入力しているにもかかわらず、モデルトルク指令値が0となり、サーボモータ2が動作しなくなる。一般に、ユーザは、制御装置1aの内部処理について詳細に把握していないため、サーボモータ2が動作しない理由を推定しづらい。そのため、このような状態は望ましくない。
0083
そこで、本発明の実施形態3に係る制御装置1aでは、実施形態2と同様の構成(図3参照)を有しているものの、第1制限値設定部105aは、以下の式に従って、モデルトルクリミッタ104の第1制限範囲の上限値τ1_uおよび下限値τ1_lを設定する。
0084
0085
上記式において、τ0は、正の値であり、予め設定されている。上記式によれば、第1制限値設定部105aは、第2制限範囲の上限値τ2_uから補正トルク値Cを減算した値がτ0以上の場合、当該減算した値が第1制限範囲の上限値τ1_uとして設定され、当該減算した値がτ0未満である場合、τ0が第1制限範囲の上限値τ1_uとして設定される。そのため、第1制限範囲の上限値τ1_uとして0または負の値が設定されることはない。
0086
同様に、第1制限値設定部105aは、第2制限範囲の下限値τ2_lから補正トルク値Cを減算した値が−τ0以下の場合、当該減算した値が第1制限範囲の下限値τ1_lとして設定され、当該減算した値が−τ0より大きい場合、−τ0が第1制限範囲の下限値τ1_lとして設定される。そのため、第1制限範囲の下限値τ1_lとして0または正の値が設定されることはない。
0087
本実施形態によれば、ユーザが制御装置1aに位置指令値を入力しているにもかかわらず、モデルトルク指令値が0となり、サーボモータ2が動作しなくなることを避けることができる。
0088
なお、上記の説明では、上限値τ1_uを第1所定値としてのτ0以上に制限するものとし、下限値τ1_lを第2所定値としての−τ0以下に制限するものとした。しかしながら、第1所定値と第2所定値との絶対値は一致していなくてもよい。第1所定値は0より大きい値であればよく、第2所定値は0より小さい値であればよい。
0089
また、上記の説明では、第1所定値としてのτ0、および第2所定値としての−τ0が予め設定されているものとしたが、第1制限値設定部105aは、ユーザからの入力に従って第1所定値および第2所定値を設定してもよい。これにより、ユーザは、モデルトルク指令値の第1制限範囲の最小範囲を所望の範囲に設定することができる。この場合、ユーザは、例えば、制御装置1に接続可能な外部装置に対して、所望の値を入力することにより、第1所定値および第2所定値を設定することができる。外部装置としては第1所定値および第2所定値の設定機能(ソフトウェア)が組み込まれた汎用パソコンや、プログラマブル表示器を用いることができる。
0090
〔ソフトウェアによる実現例〕
制御装置1および制御装置1aの制御ブロック(特に、フィードフォワード制御部10・10a、モデルトルクリミッタ104、第1制限値設定部105・105a、フィードバック制御部20・20a、トルクリミッタ204、第2制限値設定部205、補償部206)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
0091
後者の場合、制御装置1および制御装置1aは、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
0092
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
0093
なお、実施形態1〜3において、フィードフォワード制御部10がモデル位置制御部101、速度制御部103、モデルトルクリミッタ104、制御対象モデル部106を備えた構成を開示したが、フィードフォワード制御部10の構成はこれに限られない。例えば、モデル位置制御部101、速度制御部103、モデルトルクリミッタ104、制御対象モデル部106を1つにまとめたフィードフォワード制御器として構成してもよい。すなわち、モデルトルクリミッタ104は、請求項にも記載のように、フィードフォワード制御部10におけるモデルトルク指令値を制限する制限機能として備えられていればよい。
0094
1、1a制御装置(モータ制御装置)
2サーボモータ(モータ)
3負荷機械
4エンコーダ(回転検出器)
10、10aフィードフォワード制御部
20、20aフィードバック制御部
101モデル位置制御部
102速度指令生成部
103モデル速度制御部
104モデルトルクリミッタ(第1トルク制限部)
105、105a 第1制限値設定部(設定部)
106制御対象モデル部
201位置制御部
202速度検出部
203速度制御部
204トルクリミッタ(第2トルク制限部)
205 第2制限値設定部
206補償部