(57)【特許請求の範囲】
【請求項１】
制御対象に含まれるモータの制御を行うモータ制御装置であって、
前記モータの回転状態を検出する回転検出器の検出値に基づいて、前記モータを駆動させるための駆動用トルク指令値を生成するフィードバック制御部と、
モデル指令値を生成し、前記フィードバック制御部に出力するフィードフォワード制御部とを備え、
前記フィードフォワード制御部は、前記モデル指令値に含まれるモデルトルク指令値を第１制限範囲内に制限する第１トルク制限部を備え、
前記フィードバック制御部は、
前記モータの動摩擦トルク、粘性摩擦トルク、偏荷重トルク、および、外乱トルクに基づいた補正トルク値を前記駆動用トルク指令値に加える補償部と、
前記駆動用トルク指令値を第２制限範囲内に制限する第２トルク制限部とを備え、
前記フィードフォワード制御部は、前記第２制限範囲の上限値から前記補正トルク値を減算した値を前記第１制限範囲の上限値とし、前記第２制限範囲の下限値から前記補正トルク値を減算した値を前記第１制限範囲の下限値として設定する設定部を備える
ことを特徴とするモータ制御装置。
【請求項２】
前記設定部は、絶対値が０よりも大きな値となるように、前記第１制限範囲の上限値および下限値を設定することを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
制御対象に含まれるモータの制御を行うモータ制御方法であって、
モデル指令値を生成するフィードフォワード工程と、
前記モデル指令値と、前記モータの回転状態を検出する回転検出器の検出値とに基づいて、前記モータを駆動させるための駆動用トルク指令値を生成するフィードバック工程とを備え、
前記フィードフォワード工程において、前記モデル指令値に含まれるモデルトルク指令値を第１制限範囲内に制限し、
前記フィードバック工程は、
前記モータの動摩擦トルク、粘性摩擦トルク、偏荷重トルク、および、外乱トルクに基づいた補正トルク値を前記駆動用トルク指令値に加える補償工程と、
前記駆動用トルク指令値を第２制限範囲内に制限する第２トルク制限工程とを含み、
前記フィードフォワード工程は、前記第２制限範囲の上限値から前記補正トルク値を減算した値を前記第１制限範囲の上限値とし、前記第２制限範囲の下限値から前記補正トルク値を減算した値を前記第１制限範囲の下限値として設定する設定工程を含む
ことを特徴とするモータ制御方法。
【請求項４】
請求項１又は２に記載のモータ制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
【請求項５】
請求項４に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの駆動を制御する、モデル追従型のモータ制御装置に関する。
【背景技術】
【０００２】
従来、フィードバック制御系に加えて、モデルを用いたフィードフォワード制御系を備えることにより、モデル追従制御を行うモータ制御装置が知られている（特許文献１〜３）。例えば、特許文献１には、電動機モデルおよび負荷機械モデルから出力された信号を基に生成されたトルク信号（以下、モデルトルク信号という）に、外乱トルクを考慮した速度制御回路から出力されたトルク信号（以下、外乱トルク信号という）を含めた上で、モータを駆動するためのトルク指令値を出力している。
【０００３】
また、特許文献２では、規範モデル値と制御目標値とに基づいて制御指令値を出力するモータ駆動装置において、制御指令値であるトルク指令値を制限するトルク制限処理を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３２１４２７０号（２００１年１０月２日発行）
【特許文献２】特開２０１６−５２９６号（２０１６年１月１２日公開）
【特許文献３】特開２０１０−３３１７２号（２０１０年２月１２日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、フィードフォワード制御系が外乱トルクを考慮しないモデルトルク信号を生成するため、フィードバック制御系では、モデルトルク信号に外乱トルク信号を含めてしまう。そのため、フィードフォワード制御系から出力されるモデルトルク信号に制限がなく、かつ、外乱トルクが大きい場合、フィードバック制御系では、モータに出力可能な範囲を大きく超えるトルク指令値を生成し得る。これにより、モータ制御装置におけるモデル追従性が低下する。その結果、フィードバック制御系からの出力信号が不安定となり、ひいては制御対象の挙動が不安定となる問題がある。
【０００６】
また、特許文献２の技術では、フィードバック制御系にトルク制限処理を有しているものの、フィードフォワード制御系から出力される規範モデル値のトルク成分であるモデルトルク値には制限がない。そのため、フィードフォワード制御系からのモデルトルク値が、トルク制限処理におけるトルク指令値の制限範囲から大きくずれる場合があり得る。この場合、モータ制御装置におけるモデル追従性が低下する。その結果、フィードバック制御系からの出力信号が不安定となり、ひいては制御対象の挙動が不安定となる問題がある。
【０００７】
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、制御対象の挙動が安定化するモデル追従型のモータ制御装置、モータ制御方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明の一態様に係るモータ制御装置は、制御対象に含まれるモータの制御を行うモータ制御装置であって、前記モータの回転状態を検出する回転検出器の検出値に基づいて、前記モータを駆動させるための駆動用トルク指令値を生成するフィードバック制御部と、モデル指令値を生成し、前記フォードバック制御部に出力するフィードフォワード制御部とを備え、前記フィードフォワード制御部は、前記モデル指令値に含まれるモデルトルク指令値を第１制限範囲内に制限する第１トルク制限部を備える。
【０００９】
また、上記の課題を解決するために、本発明の一態様に係るモータ制御方法は、制御対象に含まれるモータの制御を行うモータ制御方法であって、モデル指令値を生成するフィードフォワード工程と、前記モデル指令値と、前記モータの回転状態を検出する回転検出器の検出値とに基づいて、前記モータを駆動させるための駆動用トルク指令値を生成するフィードバック工程とを備え、前記フィードフォワード工程において、前記モデル指令値に含まれるモデルトルク指令値を第１制限範囲内に制限する。
【００１０】
上記の構成によれば、フィードフォワード制御部が第１トルク制限部を備えている。そのため、フィードバック制御部が出力する駆動用トルク指令値が安定化するように、モデルトルク指令値を制限することができる。その結果、制御対象の挙動を安定化させることができる。
【００１１】
また、本発明の一態様に係るモータ制御装置において、前記フィードフォワード制御部は、前記第１制限範囲の上限値および下限値を設定する設定部を備え、前記設定部は、絶対値が０よりも大きな値となるように、前記第１制限範囲の上限値および下限値を設定することが好ましい。
【００１２】
フィードフォワード制御部から出力されるモデルトルク指令値が０に制限されてしまうと、モータ制御装置に指令が入力されているにもかかわらず、モータが駆動されないという問題が生じ得る。
【００１３】
しかしながら、上記の構成によれば、設定部は、絶対値が０よりも大きな値となるように、第１定範囲の上限値および下限値を設定する。そのため、フィードフォワード制御部から出力されるモデルトルク指令値は、０に制限されることがない。そのため、モータ制御装置に指令が入力されているにもかかわらず、モータが駆動されないという上記の問題が解決される。
【００１４】
また、本発明の一態様に係るモータ制御装置において、前記フィードバック制御部は、前記駆動用トルク指令値を第２制限範囲内に制限する第２トルク制限部を備え、前記フィードフォワード制御部は、前記第２制限範囲の上限値を前記第１制限範囲の上限値とし、前記第２制限範囲の下限値を前記第１制限範囲の下限値として設定する設定部を備えてもよい。
【００１５】
上記の構成によれば、フィードフォワード制御部から出力されるモデルトルク指令値がフィードバック制御部における第２トルク制限部の第２制限範囲内となり、フィードバック制御部による制御のモデル追従性をさらに向上させることができる。
【００１６】
また、本発明の一態様に係るモータ制御装置において、前記フィードバック制御部は、前記モータの駆動状態により変動する第１補償要素、および、前記制御対象の駆動特性により変動する第２補償要素の少なくとも一方に基づいた補正トルク値を前記駆動用トルク指令値に加える補償部を備え、前記フィードフォワード制御部は、前記モータの最大トルク値および最小トルク値から、前記補正トルク値を減算することで、前記第１制限範囲の上限値および下限値を設定する設定部を備えていてもよい。
【００１７】
もしくは、本発明の一態様に係るモータ制御装置において、前記フィードバック制御部は、前記モータの駆動状態により変動する第１補償要素、および、前記制御対象の駆動特性により変動する第２補償要素の少なくとも一方に基づいた補正トルク値を前記駆動用トルク指令値に加える補償部と、前記駆動用トルク指令値を第２制限範囲内に制限する第２トルク制限部とを備え、前記フィードフォワード制御部は、前記第２制限範囲の上限値から前記補正トルク値を減算した値を前記第１制限範囲の上限値とし、前記第２制限範囲の下限値から前記補正トルク値を減算した値を前記第１制限範囲の下限値として設定する設定部を備えていてもよい。
【００１８】
上記の構成によれば、フィードバック制御部で駆動用トルク指令値に加えられる補正トルク値を考慮して、フィードフォワード制御部の設定部は、前記第１制限範囲の上限値および下限値を設定することができる。これにより、フィードバック制御部の補償部によって補正トルク値が加えられた駆動用トルク指令値を第２制限範囲内にしやすくなる。言い換えると、実際のモータ加減速に使用される駆動用トルク値に見合った制限をモデルトルク指令値にかけることができる。これにより、モータ制御装置におけるモデル追従性を向上させることができ、その結果、制御対象の挙動をより安定化させることができる。
【００１９】
また、本発明の一態様に係るモータ制御装置において、前記設定部は、前記第２制限範囲の上限値から前記補正トルク値を減算した減算値が、０よりも大きい第１所定値以上の場合、当該減算値を前記第１制限範囲の上限値とし、前記減算値が前記第１所定値未満の場合、前記第１所定値を前記第１制限範囲の上限値とし、前記第２制限範囲の下限値から前記補正トルク値を減算した減算値が０よりも小さい第２所定値以下の場合、当該減算値を前記第１制限範囲の下限値とし、前記減算値が前記第２所定値より大きい場合、前記第２所定値を前記第１制限範囲の下限値としてもよい。
【００２０】
上記の構成によれば、フィードバック制御部で駆動用トルク指令値に加えられる補正トルク値を考慮して、フィードフォワード制御部の設定部は、前記第１制限範囲の上限値および下限値を設定することができる。
【００２１】
そのため、フィードバック制御部の補償部によって補正トルク値が加えられた駆動用トルク指令値を第２制限範囲内にしやすくなる。これにより、モータ制御装置におけるモデル追従性の低下をより抑制することができ、その結果、制御対象の挙動をより安定化させることができる。
【００２２】
また、フィードフォワード制御部から出力されるモデルトルク指令値が０に制限されてしまうと、モータ制御装置に指令が入力されているにもかかわらず、モータが駆動されないという問題が生じ得る。
【００２３】
しかしながら、上記の構成によれば、設定部は、絶対値が０よりも大きな値となるように、第２制限範囲の上限値および下限値を設定するため、モータ制御装置に指令が入力されているにもかかわらず、モータが駆動されないという上記の問題が解決される。
【００２４】
また、本発明の一態様に係るモータ制御装置において、前記設定部は、ユーザからの入力に従って、前記第１所定値および前記第２所定値を設定してもよい。
【００２５】
上記の構成によれば、ユーザは、第１制限範囲の最小範囲を所望の範囲に設定することができる。
【００２６】
なお、上記モータ制御装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各部として動作させることによりモータ制御装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００２７】
本発明の一態様によれば、制御対象の挙動が安定化するモデル追従型のモータ制御装置を提供することができるという効果を奏する。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態１に係る制御装置の要部構成を示すブロック図である。
【図２】トルクリミッタの機能を説明する図である。
【図３】本発明の実施形態２，３に係る制御装置の要部構成を示すブロック図である。
【図４】従来のモータ制御装置の概要を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態について詳細に説明する。本発明の一態様に係る制御装置（モータ制御装置）についての理解を容易にするため、先ず、従来の制御装置９について図４に基づいて説明しておく。
【００３０】
（従来の制御装置の概要）
図４は、従来の制御装置９の概要を示す図である。図４に示すように、従来の制御装置９は、サーボモータ２についてモデル追従制御を行う制御装置である。図４にはさらに、サーボモータ２によって駆動される負荷機械３、および、サーボモータ２の位置を検出し、例えば、サーボモータ２の回転角度を検出するエンコーダ４が示されている。エンコーダ４は、検出した位置をフィードバック制御部４０に送信する。具体的には、エンコーダ４により検出されたサーボモータ２の位置は、フィードバック制御部４０の位置制御部４０１および速度検出部４０２に入力される。なお、エンコーダ４は、サーボモータ２の速度を検出してもよく、検出した速度をフィードバック制御部４０に送信してもよい。その場合、フィードバック制御部４０は、エンコーダ４によって検出されたサーボモータ２の位置からサーボモータ２の速度を算出する速度検出部４０２を備えなくてもよい。
【００３１】
従来の制御装置９は、従来のフィードフォワード制御部３０と、フィードバック制御部４０とを備える。従来のフィードフォワード制御部３０は、サーボモータ２の位置、速度、トルクの目標値であるモデル位置指令値θＭ、モデル速度指令値ｖＭ、モデルトルク指令値を出力する。つまり、サーボモータ２のモデル（規範モデル）に基づいた指令値を出力する。ここで、従来のフィードフォワード制御部３０は、サーボモータ２のモデルについて、ＰＩＤ制御を行う。すなわち、従来のフィードフォワード制御部３０は、外部から（例えば、ユーザから）与えられる位置指令値θＲ、および当該位置指令値θＲから生成される速度指令値ｖＲに追従するよう、前記モデルの目標位置であるモデル位置指令値θＭ、および、前記モデルの目標速度であるモデル速度指令値ｖＭについて、ＰＩＤ制御を行う。従来のフィードフォワード制御部３０は、モデル位置制御部３０１、速度指令生成部３０２、モデル速度制御部３０３、制御対象モデル部３０５を備えている。
【００３２】
モデル位置制御部３０１は、前記位置指令値θＲと、制御対象モデル部３０５により生成されたモデル位置指令値θＭと、を受け付け、当該モデル位置指令値θＭが当該位置指令値θＲに追従するよう制御するモデル速度制御指令を生成する。モデル位置制御部３０１は、生成したモデル速度制御指令を、モデル速度制御部３０３およびフィードバック制御部４０へと出力する。
【００３３】
速度指令生成部３０２は、前記位置指令値θＲを受け付け、前記位置指令値θＲから速度指令値ｖＲを生成する。速度指令生成部３０２は、生成した前記速度指令値ｖＲをモデル速度制御部３０３へと出力する。
【００３４】
モデル速度制御部３０３は、モデル位置制御部３０１により生成されたモデル速度制御指令、速度指令生成部３０２により生成された前記速度指令値ｖＲ、および、制御対象モデル部３０５により生成されたモデル速度指令値ｖＭを受け付ける。モデル速度制御部３０３は、当該モデル速度指令値ｖＭが、前記モデル速度制御指令および前記速度指令値ｖＲに追従するよう制御するようモデルトルク指令値を生成する。このとき、モデル速度制御部３０３は、サーボモータ２における摩擦トルクや偏荷重、外乱トルクなどを考慮せずに、モデルトルク指令値を生成する。モデル速度制御部３０３は、生成したモデルトルク指令値を、制御対象モデル部３０５およびフィードバック制御部４０へと通知する。ここで、モデルトルク指令値は、サーボモータ２のトルクの目標値であり、サーボモータ２のモデル（規範モデル）のトルクである。
【００３５】
制御対象モデル部３０５は、モデル速度制御部３０３により生成されたモデルトルク指令値を受け付けて、モデル位置指令値θＭおよびモデル速度指令値ｖＭを生成し、生成したモデル位置指令値θＭおよびモデル速度指令値ｖＭを出力する。すなわち、制御対象モデル部３０５により生成されたモデル位置指令値θＭは、モデル位置制御部３０１およびフィードバック制御部４０へと通知される。制御対象モデル部３０５により生成されたモデル速度指令値ｖＭは、モデル速度制御部３０３およびフィードバック制御部４０へと通知される。
【００３６】
フィードバック制御部４０は、従来のフィードフォワード制御部３０により制御される前記モデル位置指令値θＭ、前記モデル速度指令値ｖＭ、および、前記モデルトルク指令値に追従するよう、サーボモータ２の位置、速度、およびトルクについてＰＩＤ制御を行う。フィードバック制御部４０は、位置制御部４０１、速度検出部４０２、速度制御部４０３、補償部４０４、トルクリミッタ４０５、制限値設定部４０６を備えている。
【００３７】
位置制御部４０１は、エンコーダ４により検出されたサーボモータ２の位置と、制御対象モデル部３０５により生成されたモデル位置指令値θＭとを受け付け、検出されたサーボモータ２の位置がモデル位置指令値θＭに追従するように制御する速度制御指令を生成する。そして、位置制御部４０１は、生成した速度制御指令を速度制御部４０３へと出力する。
【００３８】
速度検出部４０２は、エンコーダ４により検出されたサーボモータ２の位置からサーボモータ２の速度を算出し、算出したサーボモータ２の速度を速度制御部４０３へと出力する。
【００３９】
速度制御部４０３は、位置制御部４０１により生成された速度制御指令、制御対象モデル部３０５により生成されたモデル検出速度、および、速度検出部４０２により算出された速度（サーボモータ２の速度）を受け付ける。そして、速度検出部４０２により算出されたサーボモータ２の速度が、前記速度制御指令および前記モデル検出速度に追従するように制御するトルク制御指令を生成し、生成したトルク制御指令をトルクリミッタ４０５へと出力する。このとき、速度制御部４０３は、サーボモータ２における摩擦トルクや偏荷重、外乱トルクなどを考慮せずに、トルク制御指令を生成する。
【００４０】
補償部４０４は、サーボモータ２で生じる動摩擦トルクＦｄ、粘性摩擦トルクＦｖ、偏荷重トルクτｕ、外乱要因によって生じた外乱トルクτｏｂｓなどを考慮して、これらのトルクを組み合わせた補正トルク値Ｃを生成する。
【００４１】
動摩擦トルクＦｄは、サーボモータ２の速度ｖに応じて符号が変わる定数である。補償部４０４は、Ｆｄの絶対値を予め記憶しておき、制御対象モデル部３０５から出力されるモデル速度指令値ｖＭに応じて符号を決定し、動摩擦トルクＦｄを設定する。もしくは、補償部４０４は、サーボモータ２の実際の速度（速度検出部４０２の出力値、または、エンコーダ４が速度情報を出力可能であるならばエンコーダ４からの速度情報）に応じて符号を決定し、動摩擦トルクＦｄを設定してもよい。
【００４２】
粘性摩擦トルクＦｖは、サーボモータ２の速度ｖに応じて変化する関数Ｆｖ（ｖ）で表される。補償部４０４は、当該関数を予め記憶しておき、制御対象モデル部３０５から出力されるモデル速度指令値ｖＭに応じて粘性摩擦トルクＦｖを算出する。もしくは、補償部４０４は、サーボモータ２の実際の速度（速度検出部４０２の出力値、または、エンコーダ４が速度情報を出力可能であるならばエンコーダ４からの速度情報）に応じて粘性摩擦トルクＦｖを算出してもよい。
【００４３】
なお、サーボモータ２の実際の速度は、予期しない外乱などの影響を受けている場合がある。この場合、サーボモータ２の実際の速度を用いて動摩擦トルクＦｄや粘性摩擦トルクＦｖを求めると、モデル出力トルクが不安定になる可能性がある。そのため、予期しない外乱などの影響を受けやすい環境の場合には、補償部４０４は、サーボモータ２の駆動状態として制御対象モデル部３０５から出力されるモデル速度指令値ｖＭに応じて動摩擦トルクＦｄや粘性摩擦トルクＦｖを求めることが好ましい。
【００４４】
偏荷重トルクτｕは、負荷機械３に対してある特定の方向にだけ発生する荷重により生じるトルクを示している。例えば、負荷機械３が鉛直方向に往復運動する際に、重力の影響によって生じるトルクである。また、外乱トルクτｏｂｓは、サーボモータ２または負荷機械３に与えられる外乱によって生じるトルクである。
【００４５】
補償部４０４は、次式のように、決定した動摩擦トルクＦｄ、粘性摩擦トルクＦｖ、偏荷重トルクτｕ、外乱トルクτｏｂｓを合算することで、補正トルク値Ｃを生成する。
Ｃ＝Ｆｄ＋Ｆｖ＋τｕ＋τｏｂｓ
トルクリミッタ４０５は、速度制御部２０３により生成されたトルク制御指令と、補償部４０４で生成された補正トルク値Ｃと、制御対象モデル部３０５により生成されたモデルトルク指令値との合算値を駆動用トルク指令値として受け付け、入力された駆動用トルク指令値が制限値設定部４０６により設定された制限範囲内か否かを判定し、その結果に基づいてサーボモータ２を制御する。
【００４６】
具体的には、トルクリミッタ２０４は、トルク制御指令と補正トルク値Ｃとモデルトルク指令値との合算値である駆動用トルク指令値が制限範囲内である場合には、当該駆動用トルク指令値に基づいてサーボモータ２を制御する。一方、トルクリミッタ２０４は、駆動用トルク指令値が制限範囲外である場合には、制限値に制限した上でサーボモータ２を制御する。
【００４７】
制限値設定部４０６は、トルクリミッタ２０４で用いる制限範囲の上限値（正の値）および下限値（負の値）を設定する。制限値設定部４０６は、ユーザからの入力がある場合には、当該入力に従って上限値および下限値を設定し、ユーザからの入力がない場合には、サーボモータ２の最大トルク値（正の値であり、絶対値が最大となるトルク）をτｍａｘ、最小トルク値（負の値であり、絶対値が最大となるトルク）を−τｍａｘとするとき、上限値をτｍａｘ、下限値を−τｍａｘに設定する。
【００４８】
従来の制御装置９では、速度制御部２０３により生成されたトルク制御指令と、補償部４０４で生成された補正トルク値Ｃと、フィードフォワード制御部３０から出力されたモデルトルク指令値との合算値である駆動用トルク指令値により、サーボモータ２が制御される。しかしながら、フィードフォワード制御部３０ではモデルトルク指令値の制限を行わない。そのため、フィードフォワード制御部３０から出力されたモデルトルク指令値が、サーボモータ２の最大トルク値以下であったとしても、補償部４０４から出力される補正トルク値Ｃを合算した駆動用トルク指令値が当該最大トルク値を超える場合がある。この場合、フィードバック制御部４０によるサーボモータ２の制御において、モデル追従性が低下してしまう。これにより、フィードバック制御部４０によるサーボモータ２の制御が不安定となり、ひいては制御対象である負荷機械３の挙動が不安定となる問題が生じる。
【００４９】
また、従来の制御装置９では、フィードバック制御部４０がトルクリミッタ４０５を備えているのに対し、フィードフォワード制御部３０では、モデルトルク指令値が制限されない。そのため、フィードフォワード制御部３０からのモデルトルク指令値が、フィードバック制御部４０のトルクリミッタ４０５の制限範囲から大きくずれる場合があり得る。この場合、フィードバック制御部４０によるサーボモータ２の制御において、モデル追従性が低下してしまう。これにより、フィードバック制御部４０によるサーボモータ２の制御が不安定となり、ひいては制御対象である負荷機械３の挙動が不安定となる問題が生じる。
【００５０】
本発明の実施形態は、このような問題を解決するものであり、その詳細について以下に説明する。
【００５１】
（実施形態１）
図１は、本発明の実施形態１に係る制御装置（モータ制御装置）１の要部構成を示すブロック図である。制御装置１は、サーボモータ２についてモデル追従制御を行う制御装置である。すなわち、制御装置１は、サーボモータ２を含む制御対象のモデル（規範モデル）に基づいて、モデル指令値（モデル位置指令値、モデル速度指令値、モデルトルク指令値）を出力するフィードフォワード制御部１０と、フィードフォワード制御部１０が出力するモデル指令値に追従するよう、サーボモータ２を制御するフィードバック制御部２０と、を含んでいる。
【００５２】
フィードバック制御部２０は、位置制御部２０１、速度検出部２０２、速度制御部２０３、トルクリミッタ（第２トルク制限部）２０４、第２制限値設定部２０５を備えている。ここで、位置制御部２０１、速度検出部２０２、速度制御部２０３、トルクリミッタ２０４の機能は、それぞれ図４に示す位置制御部４０１、速度検出部４０２、速度制御部４０３、トルクリミッタ４０５と同一であるため、詳細な説明を省略する。
【００５３】
第２制限値設定部２０５は、図４に示す制限値設定部４０６と同様に、トルクリミッタ４０５で用いる第２制限範囲の上限値τ２＿ｕ（正の最大値）および下限値τ２＿ｌ（負の最大値）を設定する。すなわち、第２制限値設定部２０５は、ユーザからの入力がある場合には、当該入力に従って、第２制限範囲の上限値τ２＿ｕおよび下限値τ２＿ｌを設定し、ユーザからの入力がない場合には、サーボモータ２の最大トルク値をτｍａｘとし、最小トルク値を−τｍａｘするとき、上限値τ２＿ｕをτｍａｘ、下限値τ２＿ｌを−τｍａｘに設定する。なお、ユーザからτｍａｘを超える上限値が入力された場合、第２制限値設定部２０５は、τｍａｘを上限値τ２＿ｕとして設定してもよいし、エラーを通知して、ユーザにτｍａｘ以下の値の再入力を促し、再入力された値を上限値τ２＿ｕと設定してもよい。同様に、ユーザから−τｍａｘを下回る下限値が入力された場合、第２制限値設定部２０５は、−τｍａｘを下限値τ２＿ｌとして設定してもよいし、エラーを通知して、ユーザに−τｍａｘ以上の値の再入力を促し、再入力された値を下限値τ２＿ｌと設定してもよい。
【００５４】
図２は、第２制限値設定部２０５により設定された上限値τ２＿ｕおよび下限値τ２＿ｌに従ったトルクリミッタ２０４での入力と出力との関係を示す図である。図２に示されるように、トルクリミッタ２０４に入力される駆動用トルク指令値が上限値τ２＿ｕ以下であり、かつ、下限値τ２＿ｌ以上である場合（つまり、第２制限範囲内である場合）、トルクリミッタ２０４は、入力された駆動用トルク指令値に従ってサーボモータ２を制御する。一方、トルクリミッタ２０４は、入力される駆動用トルク指令値が上限値τ２＿ｕを超える場合、当該上限値τ２＿ｕのトルクに従ってサーボモータ２を制御し、入力される駆動用トルク指令値が下限値τ２＿ｌを下回る場合、当該下限値τ２＿ｌのトルクに従ってサーボモータ２を制御する。
【００５５】
フィードフォワード制御部１０は、モデル位置制御部１０１、速度指令生成部１０２、モデル速度制御部１０３、モデルトルクリミッタ（第１トルク制限部）１０４、第１制限値設定部（設定部）１０５、制御対象モデル部１０６を備えている。ここで、モデル位置制御部１０１、速度指令生成部１０２、モデル速度制御部１０３、制御対象モデル部１０６の機能は、それぞれ図４に示すモデル位置制御部３０１、速度指令生成部３０２、モデル速度制御部３０３、制御対象モデル部３０５と同一であるため、詳細な説明を省略する。
【００５６】
モデルトルクリミッタ１０４は、モデル速度制御部１０３により制御されたモデルトルク指令値が第１制限値設定部１０５により設定された第１制限範囲内か否かを判定し、必要に応じて制限をかけたうえでモデルトルク指令値を出力する。
【００５７】
具体的には、モデルトルクリミッタ１０４は、モデル速度制御部１０３から入力されたモデルトルク指令値が制限範囲内である場合には、当該モデルトルク指令値をそのまま出力する。一方、モデルトルクリミッタ１０４は、モデル速度制御部１０３から入力されたモデルトルク指令値が制限範囲外である場合には、モデルトルク指令値を制限値に制限した上で出力する。
【００５８】
第１制限値設定部１０５は、モデルトルクリミッタ１０４で用いる第１制限範囲の制限値、つまり上限値τ１＿ｕおよび下限値τ１＿ｌを設定する。第１制限値設定部１０５は、第２制限値設定部２０５で設定された第２制限範囲の上限値τ２＿ｕおよび下限値τ２＿ｌと同じ値に、第１制限範囲の上限値τ１＿ｕおよび下限値τ１＿ｌを設定する。
【００５９】
第１制限値設定部１０５により設定された上限値τ１＿ｕおよび下限値τ１＿ｌに従ったモデルトルクリミッタ１０４での入力と出力との関係は、図２と同様である。すなわち、モデルトルクリミッタ１０４に入力されるモデルトルク指令値が上限値τ１＿ｕ以下であり、かつ、下限値τ１＿ｌ以上である場合（つまり、第１制限範囲内である場合）、モデルトルクリミッタ１０４は、入力されたモデルトルク指令値をそのまま出力する。一方、モデルトルクリミッタ１０４は、入力されるモデルトルク指令値が上限値τ１＿ｕを超える場合、当該上限値τ１＿ｕをモデルトルク指令値として出力し、入力されるモデルトルク指令値が下限値τ１＿ｌを下回る場合、当該下限値τ１＿ｌをモデルトルク指令値として出力する。
【００６０】
以上のように、本実施形態の制御装置１は、サーボモータ２の回転状態を検出するエンコーダ（回転検出器）４の検出値に基づいて、サーボモータ２を駆動させるための駆動用トルク指令値を生成するフィードバック制御部２０と、モデルトルク指令値を生成し、フォードバック制御部２０に出力するフィードフォワード制御部１０とを備え、フィードフォワード制御部１０は、モデルトルク指令値を第１制限範囲内に制限するモデルトルクリミッタ（第１トルク制限部）１０４を備える。
【００６１】
そのため、フィードバック制御部２０が生成する駆動用トルク指令値が安定化するように、モデルトルク指令値を制限することができる。その結果、制御対象の挙動を安定化させることができる。
【００６２】
また、本実施形態では、フィードフォワード制御部１０の第１制限値設定部１０５は、モデルトルクリミッタ１０４の上限値τ１＿ｕおよび下限値τ１＿ｌを、フィードバック制御部２０の第２制限値設定部２０５が設定する上限値τ２＿ｕおよび下限値τ２＿ｌと同値としている。
【００６３】
そのため、フィードフォワード制御部１０から出力されるモデルトルク指令値がフィードバック制御部２０におけるトルクリミッタ２０４の第２制限範囲内となり、フィードバック制御部２０による制御のモデル追従性をさらに向上させることができる。
【００６４】
（実施形態２）
図３は、本発明の実施形態２に係る制御装置（モータ制御装置）１ａの要部構成を示すブロック図である。図３に示されるように、本実施形態の制御装置１ａは、サーボモータ２のモデル（規範モデル）を制御するフィードフォワード制御部１０ａと、フィードフォワード制御部１０により制御されるサーボモータ２のモデルに追従するよう、サーボモータ２を制御するフィードバック制御部２０ａと、を含んでいる。
【００６５】
フィードバック制御部２０ａは、実施形態１のフォードバック制御部２０と比較して、補償部２０６を備えている点でのみ相違する。そのため、補償部２０６以外のブロックの説明を省略する。
【００６６】
補償部２０６は、図４に示す補償部４０４と同様の機能を有している。すなわち、補償部２０６は、サーボモータ２で生じる動摩擦トルクＦｄ、粘性摩擦トルクＦｖ、偏荷重トルクτｕ、外乱要因によって生じた外乱トルクτｏｂｓを合算することで、
Ｃ＝Ｆｄ＋Ｆｖ（ｖ）＋τｕ＋τｏｂｓ
に従って補正トルク値Ｃを生成する。
【００６７】
ここで、動摩擦トルクＦｄ、粘性摩擦トルクＦｖは、サーボモータ２の駆動状態により変動する要素（第１補償要素）であり、偏荷重トルクτｕ、外乱トルクτｏｂｓは、制御対象である負荷機械３の駆動特性により変動する要素（第２補償要素）である。
【００６８】
なお、補償部４０４と同様に、補償部２０６は、Ｆｄの絶対値を予め記憶しておき、制御対象モデル部１０６から出力されるモデル速度指令値に応じて符号を決定し、動摩擦トルクＦｄを設定する。もしくは、補償部２０６は、サーボモータ２の実際の速度（速度検出部４０２の出力値、または、エンコーダ４が速度情報を出力可能であるならばエンコーダ４からの速度情報）に応じて符号を決定し、動摩擦トルクＦｄを設定してもよい。
【００６９】
また、補償部２０６は、サーボモータ２の速度ｖに応じて変化する粘性摩擦トルクの関数Ｆｖ（ｖ）を予め記憶しておき、制御対象モデル部１０６から出力されるモデル速度指令値に応じて粘性摩擦トルクＦｖを算出する。もしくは、補償部２０６は、サーボモータ２の実際の速度（速度検出部４０２の出力値、または、エンコーダ４が速度情報を出力可能であるならばエンコーダ４からの速度情報）に応じて粘性摩擦トルクＦｖを算出してもよい。
【００７０】
補償部２０６は、予め設定された値を偏荷重トルクτｕおよび／または外乱トルクτｏｂｓとして設定してもよいし、予め設定された関数により偏荷重トルクτｕおよび／または外乱トルクτｏｂｓを算出してもよい。
【００７１】
なお、補償部２０６は、動摩擦トルクＦｄ、粘性摩擦トルクＦｖ、偏荷重トルクτｕ、外乱トルクτｏｂｓの全てを用いる必要はなく、一部のトルクを考慮して補正トルク値Ｃを決定してもよいし、他の要因で生じるトルクを補正トルク値Ｃに加えてもよい。
【００７２】
そして、本実施形態では、速度制御部２０３で生成されたトルク制御指令、フィードフォワード制御部１０ａから出力されたモデルトルク指令値、および補償部２０６で生成された補正トルク値Ｃとの合算値が駆動用トルク指令値としてトルクリミッタ２０４に入力される。
【００７３】
フィードフォワード制御部１０ａは、実施形態１のフォードフォワード制御部１０と比較して、第１制限値設定部１０５の代わりに第１制限値設定部（設定部）１０５ａを備える点でのみ相違する。そのため、第１制限値設定部１０５ａ以外のブロックの説明を省略する。
【００７４】
第１制限値設定部１０５ａは、モデルトルクリミッタ１０４で用いる第１制限範囲の制限値、つまり上限値τ１＿ｕおよび下限値τ１＿ｌを設定する。第１制限値設定部１０５ａは、第２制限値設定部２０５で設定された第２制限範囲の上限値τ２＿ｕから補正トルク値Ｃを減算した値を上限値τ１＿ｕとして設定し、第２制限範囲の下限値τ２＿ｌから補正トルク値Ｃを減算した値を下限値τ１＿ｌとして設定する。
【００７５】
なお、第１制限値設定部１０５ａは、補償部２０６と同様の演算処理により補正トルク値Ｃを生成し、生成した補正トルク値Ｃを用いて上限値τ１＿ｕおよび下限値τ１＿ｌを設定してもよいし、補償部２０６で生成された補正トルク値Ｃを用いて上限値τ１＿ｕおよび下限値τ１＿ｌを設定してもよい。
【００７６】
フィードバック制御部２０ａにおいて、トルクリミッタ２０４は、速度制御部２０３で生成されたトルク制御指令、フィードフォワード制御部１０ａから出力されたモデルトルク指令値、および補償部２０６で生成された補正トルク値Ｃとの合算値に対して制限をかける。そのため、フィードフォワード制御部１０ａから出力されたモデルトルク指令値が、トルクリミッタ２０４の第２制限範囲内であったとしても、補正トルク値Ｃが加算されることで、上記の合算値がトルクリミッタ２０４の第２制限範囲外となる場合がある。この場合、フィードバック制御部２０ａにおけるサーボモータ２の制御のモデル追従性が低下する可能性がある。
【００７７】
しかしながら、本実施形態では、上述したように、フィードフォワード制御部１０ａのモデルトルクリミッタ１０４の第１制限範囲の上限値τ１＿ｕとして、トルクリミッタ２０４の第２制限範囲の上限値τ２＿ｕから補正トルク値Ｃを減算した値が設定され、第１制限範囲の下限値τ１＿ｌとして、第２制限範囲の下限値τ２＿ｌから補正トルク値Ｃを減算した値が設定される。
【００７８】
例えば、第２制限範囲の上限値および下限値として、サーボモータ２の最大トルク値および最小トルク値が設定されていた場合、第１制限値設定部１０５ａは、最大トルク値から補正トルク値Ｃを減算した値を上限値τ１＿ｕとして設定し、最小トルク値から補正トルク値Ｃを減算した値を下限値τ１＿ｌとして設定する。
【００７９】
もしくは、第２制限範囲の上限値および下限値として、ユーザにより指定された値が設定されている場合には、第１制限値設定部１０５ａは、当該ユーザにより指定された値から補正トルク値Ｃを減算した値により、上限値τ１＿ｕおよび下限値τ１＿ｌをして設定する。
【００８０】
これにより、フィードバック制御部２０ａにおいて、速度制御部２０３で生成されたトルク制御指令、フィードフォワード制御部１０ａから出力されたモデルトルク指令値、および補償部２０６で生成された補正トルク値Ｃとの合算値である駆動用トルク指令値がトルクリミッタ２０４の第２制限範囲を超える頻度を小さくすることができ、制御装置１ａにおけるモデル追従性を向上させることができる。その結果、制御対象である負荷機械３の挙動をより安定化させ、負荷機械３を所望の動作で動作させることができる。
【００８１】
（実施形態３）
上記の実施形態２では、フィードフォワード制御部１０ａのモデルトルクリミッタ１０４の第１制限範囲の上限値τ１＿ｕとして、トルクリミッタ２０４の第２制限範囲の上限値τ２＿ｕから補正トルク値Ｃを減算した値が設定され、第１制限範囲の下限値τ１＿ｌとして、第２制限範囲の下限値τ２＿ｌから補正トルク値Ｃを減算した値が設定されるものとした。そのため、補正トルク値Ｃが大きな値をとる場合、もしくは、上限値τ２＿ｕおよび下限値τ２＿ｌの絶対値として小さな値が設定された場合、上限値τ１＿ｕとして０または負の値が設定されたり、下限値τ１＿ｌとして０または正の値が設定されることがあり得る。
【００８２】
この場合、ユーザが制御装置１ａに位置指令値を入力しているにもかかわらず、モデルトルク指令値が０となり、サーボモータ２が動作しなくなる。一般に、ユーザは、制御装置１ａの内部処理について詳細に把握していないため、サーボモータ２が動作しない理由を推定しづらい。そのため、このような状態は望ましくない。
【００８３】
そこで、本発明の実施形態３に係る制御装置１ａでは、実施形態２と同様の構成（図３参照）を有しているものの、第１制限値設定部１０５ａは、以下の式に従って、モデルトルクリミッタ１０４の第１制限範囲の上限値τ１＿ｕおよび下限値τ１＿ｌを設定する。
【００８４】
【数１】
0006531682.tif 000002
【００８５】
上記式において、τ０は、正の値であり、予め設定されている。上記式によれば、第１制限値設定部１０５ａは、第２制限範囲の上限値τ２＿ｕから補正トルク値Ｃを減算した値がτ０以上の場合、当該減算した値が第１制限範囲の上限値τ１＿ｕとして設定され、当該減算した値がτ０未満である場合、τ０が第１制限範囲の上限値τ１＿ｕとして設定される。そのため、第１制限範囲の上限値τ１＿ｕとして０または負の値が設定されることはない。
【００８６】
同様に、第１制限値設定部１０５ａは、第２制限範囲の下限値τ２＿ｌから補正トルク値Ｃを減算した値が−τ０以下の場合、当該減算した値が第１制限範囲の下限値τ１＿ｌとして設定され、当該減算した値が−τ０より大きい場合、−τ０が第１制限範囲の下限値τ１＿ｌとして設定される。そのため、第１制限範囲の下限値τ１＿ｌとして０または正の値が設定されることはない。
【００８７】
本実施形態によれば、ユーザが制御装置１ａに位置指令値を入力しているにもかかわらず、モデルトルク指令値が０となり、サーボモータ２が動作しなくなることを避けることができる。
【００８８】
なお、上記の説明では、上限値τ１＿ｕを第１所定値としてのτ０以上に制限するものとし、下限値τ１＿ｌを第２所定値としての−τ０以下に制限するものとした。しかしながら、第１所定値と第２所定値との絶対値は一致していなくてもよい。第１所定値は０より大きい値であればよく、第２所定値は０より小さい値であればよい。
【００８９】
また、上記の説明では、第１所定値としてのτ０、および第２所定値としての−τ０が予め設定されているものとしたが、第１制限値設定部１０５ａは、ユーザからの入力に従って第１所定値および第２所定値を設定してもよい。これにより、ユーザは、モデルトルク指令値の第１制限範囲の最小範囲を所望の範囲に設定することができる。この場合、ユーザは、例えば、制御装置１に接続可能な外部装置に対して、所望の値を入力することにより、第１所定値および第２所定値を設定することができる。外部装置としては第１所定値および第２所定値の設定機能（ソフトウェア）が組み込まれた汎用パソコンや、プログラマブル表示器を用いることができる。
【００９０】
〔ソフトウェアによる実現例〕
制御装置１および制御装置１ａの制御ブロック（特に、フィードフォワード制御部１０・１０ａ、モデルトルクリミッタ１０４、第１制限値設定部１０５・１０５ａ、フィードバック制御部２０・２０ａ、トルクリミッタ２０４、第２制限値設定部２０５、補償部２０６）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【００９１】
後者の場合、制御装置１および制御装置１ａは、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００９２】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【００９３】
なお、実施形態１〜３において、フィードフォワード制御部１０がモデル位置制御部１０１、速度制御部１０３、モデルトルクリミッタ１０４、制御対象モデル部１０６を備えた構成を開示したが、フィードフォワード制御部１０の構成はこれに限られない。例えば、モデル位置制御部１０１、速度制御部１０３、モデルトルクリミッタ１０４、制御対象モデル部１０６を１つにまとめたフィードフォワード制御器として構成してもよい。すなわち、モデルトルクリミッタ１０４は、請求項にも記載のように、フィードフォワード制御部１０におけるモデルトルク指令値を制限する制限機能として備えられていればよい。
【符号の説明】
【００９４】
１、１ａ  制御装置（モータ制御装置）
２  サーボモータ（モータ）
３  負荷機械
４  エンコーダ（回転検出器）
１０、１０ａ  フィードフォワード制御部
２０、２０ａ  フィードバック制御部
１０１  モデル位置制御部
１０２  速度指令生成部
１０３  モデル速度制御部
１０４  モデルトルクリミッタ（第１トルク制限部）
１０５、１０５ａ  第１制限値設定部（設定部）
１０６  制御対象モデル部
２０１  位置制御部
２０２  速度検出部
２０３  速度制御部
２０４  トルクリミッタ（第２トルク制限部）
２０５  第２制限値設定部
２０６  補償部
【図１】
0006531682.tif 000003
【図２】
0006531682.tif 000004
【図３】
0006531682.tif 000005
【図４】
0006531682.tif 000006