(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-05-01
(45)【発行日】2024-05-13
(54)【発明の名称】モータ制御システム、制御パラメータ自動調整方法、及び、自動調整プログラム
(51)【国際特許分類】
G05B 13/02 20060101AFI20240502BHJP
G05B 13/04 20060101ALI20240502BHJP
H02P 4/00 20060101ALI20240502BHJP
【FI】
G05B13/02 A
G05B13/04
H02P4/00
(21)【出願番号】P 2022205681
(22)【出願日】2022-12-22
【審査請求日】2023-07-18
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100212026
【氏名又は名称】中村 真生
(72)【発明者】
【氏名】中崎 竜也
(72)【発明者】
【氏名】武藤 大貴
(72)【発明者】
【氏名】川澤 優大
【審査官】田中 友章
(56)【参考文献】
【文献】特開2018-128734(JP,A)
【文献】国際公開第2019/106963(WO,A1)
【文献】特開平9-131087(JP,A)
【文献】特開2004-328829(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/02
G05B 13/04
H02P 4/00
H02P 29/00
(57)【特許請求の範囲】
【請求項1】
位置検出器を含むモータを有する制御対象を制御する動作制御部と、
前記動作制御部における制御パラメータを設定するパラメータ設定部と、
モデル同定用動作指令および前記位置検出器の実検出値に基づいて、伝達関数を表す制御対象モデルを同定するモデル同定部と、
前記制御対象モデルが前記制御パラメータの自動調整に利用可能か否かを判定するモデル評価部と、を備え、
前記パラメータ設定部は、
前記制御対象モデルが自動調整に利用可能であると判定された場合には、前記制御対象モデルを利用する第1の自動調整方法で前記制御パラメータを自動調整して前記動作制御部に設定し、
前記制御対象モデルが自動調整に利用可能ではないと判定された場合には、前記制御対象モデルを利用しない第2の自動調整方法で前記制御パラメータを自動調整して前記動作制御部に設定する、
モータ制御システム。
【請求項2】
前記モデル評価部は、
前記モデル同定部が同定した前記制御対象モデルに、モデル評価用動作指令を入力した際に得られる前記制御対象モデルの出力値と、所定のしきい値との比較に基づいて、前記制御対象モデルが前記制御パラメータの自動調整に利用可能か否かを判定する、
請求項1に記載のモータ制御システム。
【請求項3】
前記モデル評価用動作指令は不安定極周波数の正弦波トルク指令であり、
前記出力値は位置振幅である、
請求項2に記載のモータ制御システム。
【請求項4】
前記動作制御部は、少なくとも速度制御系を構成しており、
前記制御パラメータは、前記速度制御系における速度比例ゲインを含む、
請求項1~3のいずれか一項に記載のモータ制御システム。
【請求項5】
前記モデル同定部が同定した前記制御対象モデルを利用して、前記制御パラメータの少なくとも一部を推定するシミュレーション演算部を更に備え、
前記パラメータ設定部は、前記第1の自動調整方法では、
所定の動作指令が入力された前記動作制御部が、前記シミュレーション演算部により推定された推定値に基づく第1の初期値から前記制御パラメータを段階的に増加させて前記制御対象を制御した際の前記実検出値に含まれる振動レベルと、所定の振動振幅しきい値との比較に基づいて、前記制御パラメータを調整して前記動作制御部に設定する、
請求項1に記載のモータ制御システム。
【請求項6】
前記パラメータ設定部は、前記第2の自動調整方法では、
所定の動作指令が入力された前記動作制御部が、所定の第2の初期値から前記制御パラメータを段階的に増加させて前記制御対象を制御した際の前記実検出値に含まれる振動レベルと、所定の振動振幅しきい値との比較に基づいて、前記制御パラメータを調整して前記動作制御部に設定する、
請求項1に記載のモータ制御システム。
【請求項7】
前記動作制御部は、少なくとも速度制御系を構成しており、
前記制御パラメータは、前記速度制御系における速度比例ゲインを含み、
前記シミュレーション演算部は、
二分探索で変化させる前記速度比例ゲインごとに前記制御対象モデルを含む閉ループの極を導出し、前記極に基づいて安定領域と不安定領域との境界となる前記速度比例ゲインを前記推定値に設定する、
請求項5に記載のモータ制御システム。
【請求項8】
前記動作制御部は、少なくとも速度制御系を構成しており、
前記制御パラメータは、前記速度制御系における速度比例ゲインを含み、
前記パラメータ設定部は、前記制御対象の所定位置での停止指令が前記動作制御部に入力されて、前記実検出値に含まれる停止時振動が確認されない場合に、
前記制御対象の所定位置での停止指令が入力された前記動作制御部が、前記第1の初期値から前記速度比例ゲインを段階的に増加させた際の前記振動レベルに応じて、前記速度比例ゲインを調整することと、
ゲイン調整用動作指令が入力された前記動作制御部が、前記速度比例ゲインを更に段階的に増加させた際の前記振動レベルと、前記振動振幅しきい値との比較に基づいて、前記速度比例ゲインを調整して決定する設定制御と、を順に実行する、
請求項5に記載のモータ制御システム。
【請求項9】
前記動作制御部は、少なくとも速度制御系を構成しており、
前記制御パラメータは、前記速度制御系における速度比例ゲインを含み、
前記パラメータ設定部は、前記制御対象の所定位置での停止指令が前記動作制御部に入力されて、前記実検出値に含まれる停止時振動が確認されない場合に、
前記制御対象の所定位置での停止指令が入力された前記動作制御部が、前記第2の初期値から前記速度比例ゲインを段階的に増加させた際の前記振動レベルに応じて、前記速度比例ゲインを調整することと、
ゲイン調整用動作指令が入力された前記動作制御部が、前記速度比例ゲインを更に段階的に増加させた際の前記振動レベルと、前記振動振幅しきい値との比較に基づいて、前記速度比例ゲインを調整して決定する設定制御と、を順に実行する、
請求項6に記載のモータ制御システム。
【請求項10】
前記パラメータ設定部は、前記設定制御において、第1更新量で前記速度比例ゲインが段階的に増加した際の前記振動レベルを用いて前記速度比例ゲインを調整する第1調整制御と、前記第1更新量より小さい第2更新量で前記速度比例ゲインが段階的に増加した際の前記振動レベルを用いて前記速度比例ゲインを調整する第2調整制御と、を順に実行する、
請求項8または9に記載のモータ制御システム。
【請求項11】
位置検出器を含むモータを有する制御対象を制御する際の制御パラメータを設定することと、
モデル同定用動作指令および前記位置検出器の実検出値に基づいて、伝達関数を表す制御対象モデルを同定することと、
前記制御対象モデルが前記制御パラメータの自動調整に利用可能か否かを判定することと、を含み、
前記制御パラメータを設定することにおいて、
前記制御対象モデルが自動調整に利用可能であると判定された場合には、前記制御対象モデルを利用する第1の自動調整方法で前記制御パラメータが自動調整されて設定され、
前記制御対象モデルが自動調整に利用可能ではないと判定された場合には、前記制御対象モデルを利用しない第2の自動調整方法で前記制御パラメータが自動調整されて設定される、
制御パラメータ自動調整方法。
【請求項12】
請求項11に記載の制御パラメータ自動調整方法をコンピュータに実行させるための自動調整プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、モータ制御システム、制御パラメータ自動調整方法、及び、自動調整プログラムに関する。
【背景技術】
【0002】
特許文献1には、負荷装置を駆動する電動機を制御するサーボシステムと、サーボシステムに接続され、電動機を所定の目標動作に制御するために設定される調整パラメータの最適値を自動調整する制御支援装置と、を備える制御システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、パラメータの調整作業における簡素化と安定化との両立に有用なモータ制御システム、制御パラメータ自動調整方法、及び、自動調整プログラムを提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係るモータ制御システムは、位置検出器を含むモータを有する制御対象を制御する動作制御部と、動作制御部における制御パラメータを設定するパラメータ設定部と、モデル同定用動作指令および位置検出器の実検出値に基づいて、伝達関数を表す制御対象モデルを同定するモデル同定部と、制御対象モデルが制御パラメータの自動調整に利用可能か否かを判定するモデル評価部と、を備える。パラメータ設定部は、制御対象モデルが自動調整に利用可能であると判定された場合には、制御対象モデルを利用する第1の自動調整方法で制御パラメータを自動調整して動作制御部に設定し、制御対象モデルが自動調整に利用可能ではないと判定された場合には、制御対象モデルを利用しない第2の自動調整方法で制御パラメータを自動調整して動作制御部に設定する。
【0006】
本開示の一側面に係る制御パラメータ自動調整方法は、位置検出器を含むモータを有する制御対象を制御する際の制御パラメータを設定することと、モデル同定用動作指令および位置検出器の実検出値に基づいて、伝達関数を表す制御対象モデルを同定することと、制御対象モデルが制御パラメータの自動調整に利用可能か否かを判定することと、を含む。制御パラメータを設定することにおいて、制御対象モデルが自動調整に利用可能であると判定された場合には、制御対象モデルを利用する第1の自動調整方法で制御パラメータが自動調整されて設定され、制御対象モデルが自動調整に利用可能ではないと判定された場合には、制御対象モデルを利用しない第2の自動調整方法で制御パラメータが自動調整されて設定される。
【発明の効果】
【0007】
本開示によれば、パラメータの調整作業における簡素化と安定化との両立に有用なモータ制御システム、制御パラメータ自動調整方法、及び、自動調整プログラムが提供される。
【図面の簡単な説明】
【0008】
【
図1】
図1は、モータ制御システムの一例を示す模式図である。
【
図2】
図2は、制御装置が実行する制御内容の一例を示す模式図である。
【
図3】
図3(a)は、自動調整の一例を説明するためのグラフである。
図3(b)および
図3(c)は、制御対象モデルまたは伝達関数の一例を示す図である。
【
図4】
図4は、モータ制御システムのハードウェア構成の一例を示す模式図である。
【
図5】
図5は、自動調整方法の一例を示すフローチャートである。
【
図6】
図6は、自動調整方法の一例を示すフローチャートである。
【
図7】
図7(a)は、制御パラメータの推定方法の一例を示すフローチャートである。
図7(b)は、制御系の安定領域および不安定領域の一例を示す図である。
【
図8】
図8は、制御パラメータの調整の様子を例示するグラフである。
【発明を実施するための形態】
【0009】
以下、図面を参照して一実施形態について説明する。説明において、同一要素または同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0010】
[モータ制御システム]
図1に示されるモータ制御システム1は、制御対象90に対する制御を実行する際の制御パラメータを自動調整し、調整されたパラメータに従って制御対象90を制御するシステムである。制御パラメータの自動調整とは、調整の開始以降において、システム(装置)が自律的に制御パラメータの値を決定することである。制御対象90は、モータ92と、モータ92に連結された機械装置94とを有する。モータ92は、機械装置94を動作させることが可能であればよく、その種類は限定されない。モータ92は、例えば、サーボモータである。モータ92は、回転型のモータであってもよく、リニア(直動)型のモータであってもよい。
【0011】
モータ92は、モータ本体92aと、位置検出器92bとを含む。モータ本体92aは、モータ制御システム1から供給される電力(例えば、電流)に応じて、機械装置94の少なくとも一部を動かすための駆動力を発生する。位置検出器92bは、モータ92の位置を示す検出情報を取得する。位置検出器92bは、モータ92の位置を示す検出情報として、モータ92の速度(回転速度)を示す速度情報を取得してもよい。速度情報によって示されるモータ92の速度を積分することで、モータ92の位置を求めることができる。
【0012】
モータ制御システム1は、制御装置10と、設定装置30とを備える。制御装置10および設定装置30は、制御装置10が制御対象90を制御するときに用いる制御パラメータの自動調整が行われる際に、互いに通信可能に接続されてもよい。制御パラメータの自動調整後では、設定装置30が用いられずに、制御装置10が制御パラメータに従って制御対象90(モータ92)を制御してもよい。
【0013】
制御パラメータの自動調整は、制御対象90である装置を初めて稼働させる際、または、制御対象90である装置をメンテナンスする度に実行されてもよい。本開示では、制御パラメータの自動調整を行う段階を「調整段階」と称し、調整段階で自動調整が行われた後に制御対象90に対する制御が行われる段階を「稼働段階」と称する。以下、制御装置10と、設定装置30とのそれぞれについて説明する。
【0014】
(制御装置)
制御装置10は、制御対象90を制御するコンピュータ装置である。制御装置10は、モータ92の位置が目標位置に追従するように制御対象90(モータ92)を制御する。制御装置10は、サーボアンプと称される場合もある。制御装置10は、機能上の構成(以下、「機能モジュール」という。)として、例えば、動作制御部12と、動作情報取得部14と、動作指令部16と、を有する。これらの機能モジュールが実行する処理は、制御装置10が実行する処理に相当する。
【0015】
動作制御部12は、位置検出器92bを含むモータ92を有する制御対象90を制御する機能モジュールである。動作制御部12は、位置検出器92bから得られる検出情報に基づいて、モータ92の位置が目標位置に追従するように制御対象90を制御する。動作制御部12は、制御対象90を制御する際に、位置検出器92bからの検出情報に基づいて、モータ92の位置が目標位置に近づくようにモータ92に供給する電流値を調節してもよい。
図2には、動作制御部12が実行する制御内容が模式的に示されている。
【0016】
動作制御部12は、少なくとも速度制御系を構成してもよい。この場合、動作制御部12は、位置検出器92bから得られる速度と、目標位置に基づく速度の指令値との偏差を縮小させるように制御対象90の制御を実行する。上記稼働段階において、動作制御部12が実行する制御内容の一例について説明する。動作制御部12が、位置・速度制御系を構成する場合、動作制御部12には、例えば、目標位置を表す位置指令が上位コントローラ98から入力される。また、動作制御部12には、位置検出器92bからの検出情報が入力される。
図2に示されるように、動作制御部12は、位置制御、速度制御、および電流制御を実行する。
【0017】
動作制御部12は、位置制御において、位置指令によって示される目標位置と、位置検出器92bによる検出情報から得られる検出位置との位置偏差を演算する。動作制御部12は、位置制御において、位置偏差と位置比例ゲインとに基づいて、位置偏差が縮小するように速度指令を生成する。動作制御部12は、速度制御において、速度指令によって示される指令値と、位置検出器92bによる検出情報から得られる速度の検出値との速度偏差を演算する。動作制御部12は、速度制御において、速度偏差と速度比例ゲインとに基づいて、速度偏差が縮小するようにトルク指令を生成する。
【0018】
動作制御部12は、電流制御において、トルク指令に応じた電流値を演算して、演算した値を有する電流を生成する。動作制御部12は、トルク指令に応じた電流をモータ92に対して供給する。以上の制御が継続されることにより、モータ92の位置が目標位置に追従するように制御対象90が制御される。
【0019】
図1に戻り、動作情報取得部14は、位置検出器92bから検出情報を取得する機能モジュールである。動作情報取得部14は、検出情報として、モータ92の速度を示す速度情報(速度フィードバック)を位置検出器92bから取得してもよい。動作指令部16は、調整段階において、制御パラメータの自動調整を行うための各種の調整用の動作指令を動作制御部12に入力する機能モジュールである。動作指令部16は、調整用の動作指令としてトルク指令を動作制御部12に入力してもよい。
【0020】
(設定装置)
設定装置30は、上記動作制御部12における制御パラメータの少なくとも一部を自動調整するための処理を実行するコンピュータ装置である。自動調整での調整対象の制御パラメータは、速度制御における速度比例ゲインを含んでもよい。設定装置30は、作業員等のユーザが操作可能なエンジニアリングツールであってもよい。設定装置30は、ユーザとの間で情報の入出力を行うための入出力デバイスを有してもよい。設定装置30は、例えば、自動調整を行う調整段階において、制御装置10に対して通信可能に接続される。
【0021】
ここで、本開示における自動調整の理解を容易にするために、
図3(a)を参照しながら、制御パラメータの1つである速度比例ゲイン(以下、「ゲインKv」と表記する。)の自動調整の一手法を説明する。制御の応答性の観点から、ゲインKvの値は大きいほうがよいが、ゲインKvが大きすぎる値に設定されると、制御系において発振が生じてしまう。すなわち、制御系が不安定な状態となる。そのため、ゲインKvの自動調整では、ゲインKvが、制御系で発振が生じない範囲で、なるべく大きい値に調整(設定)される。
【0022】
ゲインKvの自動調整では、動作制御部12に対して調整用の動作指令が入力される。調整用の動作指令は、例えば、モータ92の位置(機械装置94)が往復運動するような指令である。動作制御部12は、調整用の動作指令に従ってモータ92に対して電流を供給して、モータ92を動作させる。動作制御部12は、調整用の動作指令に従ってモータ92を動作させつつ、ゲインKvの値を、ある初期値から徐々に増加させる。設定装置30は、動作制御部12による制御が実行されている期間において、位置検出器92bからの検出情報を取得する。ゲインKvを徐々に増加させると、閉ループの制御系が安定した状態から、振動が発生する状態となる。振動が発生した後に、ゲインKvを増加させ振動のレベルが更に大きくなると、閉ループの制御系が発振した状態(不安定な状態)となる。
【0023】
設定装置30は、位置検出器92bからの検出情報から、閉ループの制御系での振動を検出したゲインKvの値を特定する。そして、設定装置30は、振動が検出されたゲインKvの値に対して安全率を考慮した値に、ゲインKvの値を決定する。
図3(a)では、ゲインKvを徐々に増加させる際の初期値が「K1」で示されおり、振動が検出された際の値が「K2」で示されており、ゲインKvの値として設定(自動調整)された値が「Kset」で示されている。本開示における設定装置30は、所定の条件が満たされる場合には、シミュレーションでの演算を利用しながら、ゲインKvの自動調整を行う。
【0024】
図1に戻り、設定装置30は、例えば、機能モジュールとして、条件設定部32と、モデル同定部34と、モデル保持部36と、モデル評価部38と、シミュレーション演算部42と、パラメータ設定部44と、を有する。これらの機能モジュールが実行する処理は、設定装置30が実行する処理に相当する。
【0025】
条件設定部32は、自動調整を行うための各種の指示を制御装置10に出力する機能モジュールである。条件設定部32は、例えば、ユーザ入力に基づいて、制御装置10を自動調整での動作モードに設定する。また、条件設定部32は、ユーザ入力に基づいて、自動調整に用いるための動作指令の条件を設定したうえで、その動作指令を、制御装置10の動作指令部16に出力する。自動調整での動作モードに設定された制御装置10では、動作制御部12が、動作指令部16からの動作指令に基づいてモータ92を動作させ、動作情報取得部14が、位置検出器92bからの検出情報を取得して、その検出情報を設定装置30に出力する。
【0026】
モデル同定部34は、モデル同定用動作指令および位置検出器92bからの検出情報に基づいて、伝達関数を表す制御対象モデルを同定する機能モジュールである。上記制御対象モデルは、制御対象90に対する制御内容を、伝達関数を用いた数式で表すモデルである。上記伝達関数(または、制御対象モデル)は、例えば、
図3(b)に示されるように、トルクの指令値の時間変化を表すトルク指令の入力に応じて、位置検出器92bの検出結果の予測値を出力するように同定される。以下では、モデル同定部34によって同定された制御対象モデルを「制御対象モデルM」と表記する。
【0027】
図3(b)における「P(s)」は、制御対象モデルMにおける伝達関数を表す。なお、制御対象モデルMにおける伝達関数は、z領域に変換された離散系の伝達関数であってもよい。本開示では、制御対象モデルMでの位置検出器92bの検出結果の予測値を「位置検出器92bの予測検出値」と称し、位置検出器92bから実際に得られる検出情報を「位置検出器92bの実検出値」と称する。
【0028】
制御対象モデルMの同定が行われる際には、条件設定部32からの指示に基づき、動作指令部16が、動作制御部12に対してモデル同定用動作指令を入力する。モデル同定用動作指令は、例えば、モデル同定用のトルク指令である。モデル同定用動作指令は、複数の周波数の正弦波によって構成されるトルク指令であってもよい。モデル同定部34は、モデル同定用動作指令に基づいて動作制御部12がモータ92を動作させた際の位置検出器92bの実検出値を動作情報取得部14から取得する。モデル同定部34は、種々の公知の手法によって、モデル同定用動作指令によりモータ92を動作させた際の位置検出器92bの実検出値に基づいて、制御対象モデルMを同定してもよい。
【0029】
モデル保持部36は、モデル同定部34によって同定された制御対象モデルMを保持(記憶)する機能モジュールである。モデル同定部34が、制御対象モデルMを同定(生成)することで、制御パラメータを自動調整する際に、制御対象モデルMを用いたシミュレーションが可能となる。制御対象モデルMを用いたシミュレーションを利用して自動調整を行うことで、自動調整に要する時間を短縮することができるが、機械装置94の特性によっては、制御対象モデルMがシミュレーションに適さない場合もある。そのため、モータ制御システム1では、制御対象モデルMの利用可否が判定されて、制御パラメータの自動調整が行われる。
【0030】
モデル評価部38は、制御対象モデルMが制御パラメータの自動調整に利用可能か否かを判定する。モデル評価部38は、例えば、制御対象モデルMによる出力に含まれる誤差が大きいと評価できる場合に、制御対象モデルMが自動調整に利用できないと判定し、制御対象モデルMによる出力に含まれる誤差が小さいと評価できる場合に、制御対象モデルMが自動調整に利用できると判定する。
【0031】
モデル評価部38は、制御対象モデルMに、モデル評価用動作指令を入力した際に得られる制御対象モデルMの出力値と、所定のしきい値との比較に基づいて、制御対象モデルMが制御パラメータの自動調整に利用可能か否かを判定してもよい。モデル評価用動作指令は、不安定極周波数の正弦波トルク指令であってもよく、判定のために用いる上記出力値は、位置振幅であってもよい。制御対象モデルMが、位置検出器92bによる速度の予測検出値(速度フィードバックの予測値)を出力する場合には、速度の予測検出値を積分することにより、位置の予測値の時間変化が求められ、位置振幅が得られる。
【0032】
不安定極周波数とは、制御対象モデルMを含む伝達関数の極の実部が負とならない周波数である。制御対象モデルMを含む伝達関数の極は、複素数によって表されてもよい。不安定極周波数を有する正弦波で表されるトルク指令(不安定極周波数の正弦波トルク指令)が制御対象モデルMに入力されると、制御対象モデルMの出力には振動が含まれ、大きくなる傾向がある。そこで、出力値が大きくなる傾向がある不安定極周波数の指令が入力されても、出力値である位置振幅が小さい場合には、制御対象モデルMの出力に含まれる誤差は大きいと考えることができる。そのため、制御対象モデルMの利用可否の判定方法の一例では、不安定極周波数に注目して、制御対象モデルMの評価が行われる。なお、制御対象モデルMの出力値と所定のしきい値とを比較(例えば、位置振幅と所定のしきい値の比較)することには、出力値をしきい値と直接比較することだけでなく、出力値としきい値との比較に実質的に等しい判定を行うことも含まれる。
【0033】
シミュレーション演算部42は、制御対象モデルMを利用して、制御パラメータの少なくとも一部を推定する。シミュレーション演算部42は、例えば、動作制御部12の速度制御と制御対象モデルMとを含む閉ループの伝達関数(以下、「推定用の伝達関数」という。)を用いて推定を行う。
図3(c)には、推定用の伝達関数が例示されている。推定用の伝達関数の出力は、ゲインKvの値によって変動する。シミュレーション演算部42は、推定用の伝達関数に基づいてゲインKvを推定してもよい。一例では、シミュレーション演算部42は、推定用の伝達関数に基づいて、発振限界(制御系が安定状態から不安定状態へ遷移する境界)となるゲインKvの値を推定する。
【0034】
パラメータ設定部44は、動作制御部12における制御パラメータを設定する機能モジュールである。具体的には、パラメータ設定部44は、モデル評価部38による判定結果に基づいて、制御対象モデルMを利用する第1の自動調整方法と、制御対象モデルMを利用しない第2の自動調整方法とのいずれか一方を実行することで、制御パラメータを自動調整して動作制御部12に設定する。パラメータ設定部44による制御パラメータの自動調整の具体例については後述する。
【0035】
図4に示されるように、制御装置10は、回路110を備える。回路110は、1以上のプロセッサ111と、メモリ112と、ストレージ113と、通信ポート115と、入出力ポート116と、ドライバ117とを含む。ストレージ113は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。ストレージ113は、モータ92を制御するためのプログラム、および設定装置30と連携して制御パラメータの自動調整を行うためのプログラムおよびデータを記憶する。メモリ112は、ストレージ113からロードしたプログラムおよびプロセッサ111による演算結果等を一時的に記憶する。
【0036】
プロセッサ111は、メモリ112と協働して上記プログラムを実行することで、制御装置10の上記機能モジュールを構成する。通信ポート115は、プロセッサ111からの指令に応じて、設定装置30等との間で、無線、有線、またはネットワーク回線を介して通信を行う。入出力ポート116は、プロセッサ111からの指令に応じて、モータ92(例えば、モータ92の位置検出器92b)との間で電気信号の入出力を行う。ドライバ117は、プロセッサ111からの指令に応じてモータ92に駆動用の電力(電流)を出力する。
【0037】
設定装置30は、回路130を備える。回路130は、1以上のプロセッサ131と、メモリ132と、ストレージ133と、通信ポート135と、入出力ポート136とを含む。ストレージ133は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。ストレージ133は、制御装置10と連携して制御パラメータの自動調整を行うためのプログラム(自動調整プログラム)およびデータを記憶する。メモリ132は、ストレージ133からロードしたプログラムおよびプロセッサ131による演算結果等を一時的に記憶する。
【0038】
プロセッサ131は、メモリ132と協働して上記プログラムを実行することで、設定装置30の上記機能モジュールを構成する。通信ポート135は、プロセッサ131からの指令に応じて、制御装置10等との間で、無線、有線、またはネットワーク回線を介して通信を行う。入出力ポート136は、プロセッサ131からの指令に応じて、設定装置30に設けられる入出力デバイス等との間で電気信号の入出力を行う。
【0039】
[制御パラメータの自動調整方法]
続いて、
図5~
図8を参照しながら、制御パラメータの自動調整方法の一例として、調整段階においてモータ制御システム1が実行する一連の処理を説明する。また、制御パラメータの1つである上記ゲインKv(速度制御系における速度比例ゲイン)を自動調整する場合を例に説明する。
【0040】
この自動調整方法では、設定装置30により制御装置10の動作モードが自動調整モードに設定された状態で、
図5に示されるように、モータ制御システム1が、ステップS11を最初に実行する。ステップS11では、例えば、設定装置30の条件設定部32が、ユーザ入力に基づいて、自動調整に用いるためのモデル同定用動作指令の条件を設定したうえで、その動作指令を、制御装置10の動作指令部16に出力する。モデル同定用動作指令は、互いに周波数が異なる複数の正弦波を合成して生成されるトルク指令であってもよい。
【0041】
次に、モータ制御システム1は、ステップS12を実行する。ステップS12では、動作制御部12が、ステップS11で準備されたモデル同定用動作指令に従って、制御対象90のモータ92に対して電流を供給して、モータ92を動作させる。そして、モデル同定部34が、モデル同定用動作指令に従ってモータ92を動作させた際の位置検出器92bの実検出値(例えば、速度の実測値)を取得する。
【0042】
次に、モータ制御システム1は、ステップS13を実行する。ステップS13では、例えば、モデル同定部34が、種々の公知の手法によって、ステップS12で取得された位置検出器92bの実検出値に基づいて、制御対象モデルMを同定する。制御対象モデルMが同定(生成)された後、モデル保持部36は、その制御対象モデルMを記憶する。
【0043】
次に、モータ制御システム1は、ステップS14を実行する。ステップS14では、例えば、モデル評価部38が、制御対象モデルMがシミュレーションに適しているか否かを評価する。モデル評価部38は、制御対象モデルMにモデル評価用動作指令を入力した際に得られる制御対象モデルMの出力値と、所定のしきい値との比較に基づいて、制御対象モデルMが制御パラメータの自動調整に利用可能か否かを判定してもよい。一例では、モデル評価部38は、不安定極周波数の正弦波トルク指令が入力された際の制御対象モデルMの出力値(例えば、位置振幅)が、所定のしきい値よりも大きいと評価できる場合に、自動調整に利用可能であると判定する。また、モデル評価部38は、不安定極周波数の正弦波トルク指令が入力された際の制御対象モデルMの出力値(例えば、位置振幅)が、所定のしきい値よりも小さいと評価できる場合に、自動調整に利用できないと判定する。
【0044】
ステップS14において、制御対象モデルMが自動調整に利用可能であると判定された場合には、モータ制御システム1が実行する処理は、ステップS15に進む。ステップS15では、例えば、パラメータ設定部44が、制御対象モデルMを利用した第1の自動調整方法で、制御パラメータの自動調整を実行する。一方、ステップS14において、制御対象モデルMが自動調整に利用可能ではないと判定された場合には、モータ制御システム1が実行する処理は、ステップS16に進む。ステップS16では、例えば、パラメータ設定部44が、制御対象モデルMを利用しない第2の自動調整方法で、制御パラメータの自動調整を実行する。
【0045】
一例では、パラメータ設定部44は、制御対象モデルMが自動調整に利用可能であると判定された場合には、第1の自動調整方法でゲインKvを自動調整して動作制御部12に設定する。また、パラメータ設定部44は、制御対象モデルMが自動調整に利用可能ではないと判定された場合には、第2の自動調整方法でゲインKvを自動調整して動作制御部12に設定する。
図6には、制御対象モデルMを利用する第1の自動調整方法で、ゲインKvの自動調整を行う場合の一連の処理が示されている。
【0046】
<第1の自動調整方法>
第1の自動調整方法では、モータ制御システム1が最初にステップS21を実行する。ステップS21では、例えば、シミュレーション演算部42が、制御対象モデルMを含む上記推定用の伝達関数に基づいて、不安定領域と安定領域との境界(発振限界)となるゲインKvの値を推定する。一例では、シミュレーション演算部42は、二分探索で変化させるゲインKvごとに上記推定用の伝達関数の極(閉ループの極)を導出し、導出した極に基づいて安定領域と不安定領域との境界となるゲインKvを推定値に設定する。
図7には、制御対象モデルMを用いたシミュレーションにより、上記境界となるゲインKvを推定する方法の一例が示されている。
【0047】
ステップS21におけるゲインKvの推定では、設定装置30が、最初にステップS31を実行する。ステップS31では、例えば、シミュレーション演算部42が、現在のKvmaxと現在のKvminとの中央の値を演算し、現在のゲインKvの値を、その演算した値に設定する。Kvmaxは、推定を行う際にゲインKvを変化させる範囲の上限を表しており、その初期値は、例えば、ユーザにより予め設定されている。Kvminは、推定を行う際にゲインKvを変化させる範囲の下限を表しており、その初期値は、例えば、ユーザにより予め設定されている。
【0048】
次に、設定装置30は、ステップS32,S33を実行する。ステップS32では、例えば、シミュレーション演算部42が、ゲインKvがステップS31で上記値に設定されている場合での推定用の伝達関数における1以上の極を演算する。ステップS33では、例えば、シミュレーション演算部42が、ステップS32で演算された1以上の極に基づいて、ゲインKvがステップS31で上記値に設定されている場合での制御系(推定用の伝達関数で表される閉ループ)が安定か否かを判定する。
【0049】
図7(b)には、複素平面(s平面)が示されており、横軸が実部を表し、縦軸が虚部を表している。虚部が-I1から+I2の間において、実部がゼロよりも大きい領域A1を不安定領域と定義し、実部がゼロよりも小さい領域A2を安定領域と定義することができる。シミュレーション演算部42は、ステップS32で演算された1以上の極のうち、上記領域A1(不安定領域)に位置する極が存在する場合に、制御系が不安定であると判定してもよい。シミュレーション演算部42は、ステップS32で演算された1以上の極のいずれもが、上記領域A1(不安定領域)に存在しない場合に、制御系が安定であると判定してもよい。
【0050】
ステップS33において、制御系が安定であると判定された場合、設定装置30が実行する処理は、ステップS34に進む。ステップS34では、例えば、シミュレーション演算部42が、下限値を表すKvminを現在のKvの値に更新する。ステップS33において、制御系が不安定であると判定された場合、設定装置30が実行する処理は、ステップS35に進む。ステップS35では、例えば、シミュレーション演算部42が、上限値を表すKvmaxを現在のKvの値に更新する。
【0051】
次に、設定装置30は、ステップS36を実行する。ステップS36では、例えば、シミュレーション演算部42が、所定の終了条件を満たすか否かを判定する。一例では、シミュレーション演算部42は、現在のKvmaxと現在のKvminとの差分が所定値よりも小さい場合に、終了条件を満たすと判定してもよく、上記差分が上記所定値以上である場合に、終了条件を満たさないと判定してもよい。ステップS36で用いる上記所定値は、数Hz程度であってもよい。
【0052】
ステップS36において、終了条件を満たさないと判定された場合には、設定装置30が実行する処理はステップS31に戻る。そして、シミュレーション演算部42は、KvmaxまたはKvminが更新された状態で、ステップS31~S36の一連の処理を再度実行する。一方、ステップS36において、終了条件を満たすと判定された場合には、設定装置30は、一連の処理を終了する。シミュレーション演算部42は、一連の処理が終了した時点でのゲインKvの値を、安定領域と不安定領域との境界となる推定値に設定する。
【0053】
以上のように、二分探索でゲインKvを変化させつつ、ゲインKvの推定値が演算される。ここで、ステップS22以降の処理を説明する前に、第1の自動調整方法の概要を説明する。パラメータ設定部44は、第1の自動調整方法では、ステップS21で推定されたゲインKvの推定値に基づく値を、自動調整する際の初期値(第1の初期値)に設定する。例えば、パラメータ設定部44は、ステップS21で得られるゲインKvの推定値から所定数を減算して得られる値を、自動調整する際の初期値に設定する。
【0054】
パラメータ設定部44は、第1の自動調整方法では、所定の動作指令が入力された動作制御部12が、上記推定値に基づく上記初期値からゲインKvを段階的に増加させて制御対象90を制御した際の位置検出器92bの実検出値に含まれる振動レベルと、所定の振動振幅しきい値との比較に基づいて、ゲインKvを調整して動作制御部12に設定してもよい。位置検出器92bの実検出値に含まれる振動レベルとは、目標の制御量(例えば、目標位置)を中心に実際の検出値が変動する際の変動の大きさを表す。
【0055】
位置検出器92bの実検出値に含まれる振動レベルは、例えば、トルク指令、位置の検出値、速度の検出値、位置偏差、または速度偏差から測定することができる。上記振動振幅しきい値は、例えば、上記振動レベルが、発振状態に遷移しようとしていると評価できる値に設定される。上記振動振幅しきい値は、ユーザにより予め設定されてもよく、ステップS21の実行前において、設定用の動作指令に基づき制御対象90を制御した際の実検出値に基づき設定されてもよい。
【0056】
ステップS21の実行後に、動作制御部12におけるゲインKvがステップS21で演算された推定値に基づく初期値に設定された状態で、モータ制御システム1は、ステップS22を実行する。ステップS22では、例えば、パラメータ設定部44が、制御対象90の所定位置での停止指令が動作制御部12に入力されて、当該停止指令に従ってモータ92を動作させた際に、位置検出器92bの実検出値に振動(以下、「停止時振動」という。)が含まれるか否かを確認する。制御対象90の所定位置での停止指令は、制御対象90のモータ92が、ある位置(回転位置)で停止するように設定された指令である。
【0057】
一例では、パラメータ設定部44は、上記停止指令に従って制御した際のトルク指令における最大値と最小値との差分と、所定しきい値との比較に基づいて、位置検出器92bの実検出値に停止時振動が含まれるか否かを確認する。上記停止指令が動作制御部12に入力されて、位置検出器92bの実検出値に含まれる停止時振動が確認された場合、動作制御部12は、例えば、ステップS21で得られる推定値に基づく上記初期値からゲインKvを停止時振動が確認されない値まで下げる。一方、上記停止指令が動作制御部12に入力されて、位置検出器92bの実検出値において停止時振動が確認されない場合、動作制御部12は、例えば、ゲインKvの設定値を、ステップS21で得られる推定値に基づく上記初期値に維持する。
【0058】
次に、モータ制御システム1は、ステップS23を実行する。ステップS23では、例えば、動作制御部12に制御対象90の所定位置での停止指令が入力されて、動作制御部12が、ステップS22で設定された値(停止時振動が確認されない設定値)からゲインKvを段階的に増加させつつ上記停止指令に従って制御対象90を制御する。そして、上記停止指令に基づく動作制御部12による制御対象90の制御が実行されている最中に、パラメータ設定部44が、位置検出器92bの実検出値から得られる振動レベルに応じてゲインKvを調整する。
図8には、ステップS22以降の一連の処理でのゲインKvの調整の様子(ゲインKvの設定値の時間変化)が例示されている。
【0059】
図8において、ステップS21で得られる推定値に基づく上記初期値が「Ke」で示されている。
図8に示される例では、ステップS22において、停止時振動が確認されておらず、ステップS23の実行開始時点で、ゲインKvは初期値Keに設定されている。一例では、パラメータ設定部44は、ゲインKvを所定の更新量で上昇させる度に、上記停止時振動の有無を確認する。そして、パラメータ設定部44は、上記停止時振動が確認されるまでゲインKvを上昇させ、上記停止時振動が確認されたときの値を現在のゲインKvの値に設定する。
【0060】
次に、モータ制御システム1は、ステップS24を実行する。ステップS24では、例えば、動作制御部12にゲイン調整用動作指令が入力されて、動作制御部12が、現在の値からゲインKvを段階的に増加させつつ上記ゲイン調整用動作指令に従って制御対象90を制御する。この場合、動作制御部12は、ステップS23で調整された値からゲインKvを段階的に増加させる。そして、上記ゲイン調整用動作指令に基づく動作制御部12による制御対象90の制御が実行されている最中に、パラメータ設定部44は、位置検出器92bの実検出値から得られる振動レベルと上記振動振幅しきい値との比較に基づきゲインKvを調整する。ゲイン調整用動作指令は、制御対象90の可動部分を所定の範囲で往復移動させる指令であってもよい。
【0061】
一例では、ステップS24において、
図8に示されるように、パラメータ設定部44は、動作制御部12が更新量Δk1(第1更新量)でゲインKvを段階的に増加させつつ、位置検出器92bの実検出値における振動レベルを検出する。パラメータ設定部44は、振動レベルが振動振幅しきい値に達する前に、振動レベルと振動振幅しきい値との差が所定値より小さくなった場合に、更新量Δk1でのゲインKvの段階的な増加を停止する。そして、パラメータ設定部44は、振動レベルと振動振幅しきい値との差が所定値より小さくなったときの値を、現在のゲインKvの値に設定する。
図8では、振動レベルと振動振幅しきい値との差が所定値より小さくなったときのゲインKvの値が「K3」で示されている。
【0062】
なお、ゲイン調整用動作指令を用いた調整において、設定可能なゲインKvの値の上限(ゲインKvを変化させる範囲の上限)が、予め定められていてもよい。
図8では、ゲインKvの上限値が「Kl」で示されている。この上限値Klは、振動レベルと振動振幅しきい値との比較に関係なく、例えば、装置の安全を考慮して、自動調整を強制的に終了するために設定される。この場合、パラメータ設定部44は、振動レベルと振動振幅しきい値との差が所定値より小さくなった場合、または、現在のゲインKvの値と上限値Klとの差が所定値(例えば、更新量Δk1)よりも小さくなった場合に、更新量Δk1でのゲインKvの段階的な増加を停止してもよい。
【0063】
次に、モータ制御システム1は、ステップS25を実行する。ステップS25では、例えば、動作制御部12にゲイン調整用動作指令が入力されて、動作制御部12が、ステップS24で調整された値からゲインKvを段階的に増加させつつ上記ゲイン調整用動作指令に従って制御対象90を制御する。ステップS25で用いられるゲイン調整用動作指令は、ステップS24で用いられる調整用の動作指令と同じものであってもよく、異なるものであってもよい。そして、ゲイン調整用動作指令に基づく動作制御部12による制御対象90の制御が実行されている最中に、パラメータ設定部44は、位置検出器92bの実検出値から得られる振動レベルと上記振動振幅しきい値との比較に基づきゲインKvを調整する。
【0064】
一例では、ステップS25において、
図8に示されるように、パラメータ設定部44は、動作制御部12が更新量Δk2(第2更新量)でゲインKvを増加させつつ、位置検出器92bの実検出値における振動レベルを検出する。更新量Δk2は、更新量Δk1よりも小さい値に設定されている。更新量Δk2は、更新量Δk1の1/2倍~1/10倍程度であってもよい。パラメータ設定部44は、振動レベルが振動振幅しきい値を超えた場合に、更新量Δk2でのゲインKvの段階的な増加を停止する。そして、パラメータ設定部44は、振動レベルが振動振幅しきい値を超えたときの値を、現在のゲインKvの値に設定する。
【0065】
図8では、振動レベルが振動振幅しきい値を超えたときのゲインKvの値が「K2」で示されている。
図8に示される値K2は、
図3に示される「K2」に対応する。なお、パラメータ設定部44は、振動レベルが振動振幅しきい値を超えない場合でも、ゲインKvの値が上限値Klに達した場合に、更新量Δk2でのゲインKvの段階的な増加を停止する。この場合、パラメータ設定部44は、上限値Klを現在のゲインKvの値に設定する。
【0066】
ステップS25において以上のゲインKvの調整が行われた後に、
図3を用いて説明したように、パラメータ設定部44は、振動が検出されたまたは上限に達したゲインKvの現在の値に対して安全率を考慮した値Ksetに、ゲインKvの値を変更する。パラメータ設定部44は、値K2または上限値Klに対して、1よりも小さい値(例えば、0.7~0.9)を乗算して得られる値を、ゲインKvの最終的な調整値(値Kset)に設定してもよい。
【0067】
以上のステップS22~S25の一連の処理では、パラメータ設定部44は、ゲインKvが初期値Keに設定された状態で、上記停止時振動が確認されない場合に、次の2つのことを実行する。パラメータ設定部44は、最初に、制御対象90の所定位置での停止指令が入力された動作制御部12が、初期値KeからゲインKvを段階的に増加させた際の振動レベルに応じて、ゲインKvを調整する。その後、ゲイン調整用動作指令が入力された動作制御部12が、ゲインKvを更に段階的に増加させた際の振動レベルと、振動振幅しきい値との比較に基づいて、ゲインKvを調整して決定する第1の設定制御を実行する。なお、パラメータ設定部44は、ゲインKvが初期値Keに設定された状態で、上記停止時振動が確認された場合には、ゲインKvを初期値Keから停止時振動が確認されない値まで下げたうえで、上記2つのことを実行する。パラメータ設定部44は、第1の設定制御において、上記ゲイン調整用動作指令が入力された動作制御部12が、ゲインKvを更に段階的に増加させた際の振動レベルと、振動振幅しきい値との比較に基づいて、ゲインKvを調整して決定する。
【0068】
パラメータ設定部44は、第1の設定制御において、更新量Δk1でゲインKvが段階的に増加した際の振動レベルを用いてゲインKvを調整する第1調整制御と、更新量Δk1より小さい更新量Δk2でゲインKvが段階的に増加した際の振動レベルを用いてゲインKvを調整する第2調整制御と、を実行する。第1調整制御はステップS24で実行され、第2調整制御はステップS25で実行される。また、パラメータ設定部44は、振動レベルと振動振幅しきい値との差が、所定値より小さくなった場合に第1調整制御から第2調整制御に移行する。なお、第1調整制御(ステップS24)の実行後、第2調整制御(ステップS25)が実行される前に、別の処理が実行されてもよい。
【0069】
制御対象モデルMを利用する第1の自動調整方法では、自動調整を開始する時点のゲインKvの初期値Keが、制御対象モデルMを利用して求められた、シミュレーション上の発振限界となる推定値に基づき決定されている。これにより、実際の装置(実機)において、発振限界となるゲインKvに近い値からゲインKvを増加させて自動調整を行うことができる。そのため、自動調整に要する時間が短縮され得る。
図3では、初期値Keを用いることで短縮可能な期間が「T1」で示されている。
【0070】
また、ステップS24でのゲインKvの更新量Δk1は、ステップS25でのゲインKvの更新量Δk2よりも大きい。そのため、ステップS24において、実機での発振限界に近い値まで簡易的に早く調整したうえで、ステップS25において、ゲインKvを細かく調整することができる。これにより、更新量Δk2で最初から最後までゲインKvを増加させて自動調整する場合に比べて、調整の精度を維持しつつ早く調整を行うことができる。
【0071】
<第2の自動調整方法>
制御対象モデルMを利用しない第2の自動調整方法では、モータ制御システム1(設定装置30)は、ステップS21に代えて、自動調整開始時のゲインKvの値を、所定の初期値(第2の初期値)に設定する。以下、第1の自動調整方法での推定値に基づく初期値Keと区別するために、第2の自動調整方法でのゲインKvの初期値を「初期値K1」と表記する。初期値K1は、ユーザにより予め設定されていてもよい。モータ制御システム1(設定装置30)は、ゲインKvを初期値K1に設定した後、上述したステップS22~S25と同様の一連の処理を実行してもよい。
【0072】
第2の自動調整方法でのステップS22~S25に対応する一連の処理は、初期値Keに代えて初期値K1を用いること以外はステップS22~S25と同じである。この場合、パラメータ設定部44は、第2の自動調整方法では、所定の動作指令が入力された動作制御部12が、初期値K1からゲインKvを段階的に増加させて制御対象90を制御した際の位置検出器92bの実検出値に含まれる振動レベルと、振動振幅しきい値との比較に基づいて、ゲインKvを調整して動作制御部12に設定する。
【0073】
一例では、パラメータ設定部44は、ゲインKvが初期値K1に設定された状態で、制御対象90の所定位置での停止指令が動作制御部12に入力されて、位置検出器92bの実検出値において停止時振動が確認されない場合に、次の2つのことを実行する。パラメータ設定部44は、最初に、制御対象90の所定位置での停止指令が入力された動作制御部12が、初期値K1からゲインKvを段階的に増加させた際の振動レベルに応じて、ゲインKvを調整する。その後、ゲイン調整用動作指令が入力された動作制御部12が、ゲインKvを更に段階的に増加させた際の振動レベルと、振動振幅しきい値との比較に基づいて、ゲインKvを調整して決定する第2の設定制御を実行する。なお、パラメータ設定部44は、ゲインKvが初期値K1に設定された状態で、上記停止時振動が確認された場合には、ゲインKvを初期値K1から停止時振動が確認されない値まで下げたうえで、上記2つのことを実行する。第2の設定制御には、第1の自動調整方法における第1の設定制御と同様に、上記第1調整制御および上記第2調整制御が含まれてもよい。
【0074】
[変形例]
図5~
図7それぞれにおいて説明した一連の処理は一例であり、適宜変更可能である。いずれかの一連の処理において、モータ制御システム1は、1つのステップと次のステップとを並列に実行してもよく、上述した例とは異なる順序で各ステップを実行してもよい。モータ制御システム1は、いずれかのステップを省略してもよく、いずれかのステップにおいて上述の例とは異なる処理を実行してもよい。モータ制御システム1は、上述の例とは異なる処理を追加で実行してもよい。
【0075】
動作制御部12が構成する速度制御系に、振動を抑制するためのフィルタが含まれていてもよい。この場合、モータ制御システム1(設定装置30)は、ゲインKvに加えて、フィルタに関する制御パラメータを設定してもよい。モータ制御システム1は、ステップS21~S24の一連の処理を行った後に、フィルタに関する制御パラメータを設定してもよい。フィルタに関する制御パラメータが設定された後に、モータ制御システム1は、ステップS21~S25の一連の処理を実行してもよい。モータ制御システム1は、2回目のステップS21では、パラメータが設定されたフィルタを考慮して、ゲインKvの推定を行ってもよい。
【0076】
モータ制御システム1は、ステップS24(第1調整制御)を実行した後、ステップS25に移行する前に、ステップS24で調整されたゲインKvでの停止時振動の発生の有無を確認してもよい。停止時振動の発生が確認された場合には、モータ制御システム1は、ステップS23と同様の処理を実行してもよい。
【0077】
上述の例では、パラメータ設定部44は、振動レベルが振動振幅しきい値を超える前に、これらの差分が所定値より小さくなった場合に、第1調整制御を終了している。これに代えて、パラメータ設定部44は、振動レベルが振動振幅しきい値を超えた場合に、第1調整制御を終了してもよい。この場合、パラメータ設定部44は、振動レベルが振動振幅しきい値を超えたときのゲインKvから更新量Δk1を減算した値に、ゲインKvの現在の値を設定してもよい。
【0078】
上述の例では、ステップS21において、二分探索によりゲインKvを順次変化させて、発振限界となる推定値が演算されている。これに代えて、シミュレーション演算部42は、所定の下限初期値または上限初期値から徐々にゲインKvを変化させて、発振限界となる推定値を演算してもよい。
【0079】
動作制御部12は、上述した速度制御系(速度フィードバック制御)に、フィードフォワード制御が組み合わされた制御を実行してもよい。モータ制御システム1(設定装置30)は、ゲインKvに代えてまたは加えて、ゲインKv以外の各種の制御パラメータを自動調整してもよい。
【0080】
制御装置10が有する各種の機能、および設定装置30が有する各種の機能は、上述の例に限られない。例えば、制御装置10は、
図1に示される設定装置30が有する複数の機能モジュールのうちの少なくとも一部を有していてもよい。モータ制御システム1は、少なくとも、動作制御部12、動作情報取得部14、モデル同定部34、モデル評価部38、およびパラメータ設定部44を備えていれば、どのように構成されていてもよい。
【0081】
以上に説明した種々の例のうちの1つの例において、他の例で説明した事項の少なくとも一部が組み合わされてもよい。
【0082】
[本開示のまとめ]
本開示は、次の[1]~[12]に記載の構成を含んでいる。
【0083】
[1]位置検出器92bを含むモータ92を有する制御対象90を制御する動作制御部12と、動作制御部12における制御パラメータを設定するパラメータ設定部44と、モデル同定用動作指令および位置検出器92bの実検出値に基づいて、伝達関数を表す制御対象モデルMを同定するモデル同定部34と、制御対象モデルMが制御パラメータの自動調整に利用可能か否かを判定するモデル評価部38と、を備え、パラメータ設定部44は、制御対象モデルMが自動調整に利用可能であると判定された場合には、制御対象モデルMを利用する第1の自動調整方法で制御パラメータを自動調整して動作制御部12に設定し、制御対象モデルMが自動調整に利用可能ではないと判定された場合には、制御対象モデルMを利用しない第2の自動調整方法で制御パラメータを自動調整して動作制御部12に設定する、モータ制御システム1。
同定した制御対象モデルのシミュレーション結果を利用して、速度制御系における速度比例ゲイン等の制御パラメータの値を自動調整することが考えられる。例えば、シミュレーションにて、実機でパラメータを調整する際の調整範囲を事前に演算することが考えられる。この方法では、同定した制御対象モデルの出力に含まれる誤差が大きい場合、事前に演算される調整範囲が適切な範囲とならずに、制御パラメータの最適な値(例えば、値が大きく、発振しないようなゲインの値)が取得されないおそれがある。この場合、実機における制御系の不安定化を招く可能性があり、さらには実機に含まれる装置が損傷してしまう可能性もある。
これに対して、上記モータ制御システム1では、同定された制御対象モデルMが利用可能であるか否かが判定され、制御対象モデルの利用有無が異なる2つの自動調整方法のいずれか一方で、制御パラメータの自動調整が行われる。そのため、制御対象モデルMの出力に含まれる誤差が大きいような場合、制御対象モデルMをそのまま使用して制御パラメータを自動調整することを避けることができる。また、制御対象モデルMが利用可能である場合には、シミュレーションを用いた自動調整により制御パラメータを早く設定できる。従って、モータ制御システム1は、パラメータの調整作業における簡素化と安定化との両立に有用である。
【0084】
[2]モデル評価部38は、モデル同定部34が同定した制御対象モデルMに、モデル評価用動作指令を入力した際に得られる制御対象モデルMの出力値と、所定のしきい値との比較に基づいて、制御対象モデルMが制御パラメータの自動調整に利用可能か否かを判定する、上記[1]に記載のモータ制御システム1。
上記構成では、制御対象モデルMの出力値が小さい場合には、そのモデルの出力に含まれる誤差が大きいと判定できる。そのため、制御対象モデルMによる推定の誤差が大きい場合に、モデルによるシミュレーションを利用して自動調整を行うことを回避できる。
【0085】
[3]モデル評価用動作指令は不安定極周波数の正弦波トルク指令であり、上記出力値は位置振幅である、上記[2]に記載のモータ制御システム。
不安定極周波数の正弦波トルク指令を制御対象モデルに入力すると、位置振幅が大きくなる傾向がある。位置振幅が大きくなる傾向がある不安定極周波数の指令でも、位置振幅が小さい場合には、同定された制御対象モデルMの出力では誤差が大きいと判定できる。従って、上記構成では、簡易な指令で制御対象モデルMの利用可否が判定できるので、装置の演算負荷を低減できる。
【0086】
[4]動作制御部12は、少なくとも速度制御系を構成しており、上記制御パラメータは、速度制御系におけるゲインKv(速度比例ゲイン)を含む、上記[1]~[3]のいずれか1つに記載のモータ制御システム1。
制御対象モデルMの出力での誤差が大きい場合、そのモデルを利用して自動調整を行うと、速度制御系における整定時間の長大化、または、オーバーシュートの増大を招く可能性がある。上記構成では、制御対象モデルMの出力の誤差が大きいような場合に、制御対象モデルMを利用しての速度比例ゲインの自動調整の機会を回避できる。したがって、速度比例ゲインの調整作業の安定化を図ることができる。
【0087】
[5]モデル同定部34が同定した制御対象モデルMを利用して、制御パラメータの少なくとも一部を推定するシミュレーション演算部42を更に備え、パラメータ設定部44は、第1の自動調整方法では、所定の動作指令が入力された動作制御部12が、シミュレーション演算部42により推定された推定値に基づく初期値Ke(第1の初期値)から制御パラメータを段階的に増加させて制御対象90を制御した際の位置検出器92bの実検出値に含まれる振動レベルと、所定の振動振幅しきい値との比較に基づいて、制御パラメータを調整して動作制御部12に設定する、上記[1]~[4]のいずれか1つに記載のモータ制御システム1。
この場合、制御対象モデルMを用いて得られる推定値に基づく初期値から制御パラメータを増加させて自動調整が行われるので、自動調整に要する時間を短縮できる。
【0088】
[6]パラメータ設定部44は、第2の自動調整方法では、所定の動作指令が入力された動作制御部12が、所定の初期値K1(第2の初期値)から制御パラメータを段階的に増加させて制御対象90を制御した際の位置検出器92bの実検出値に含まれる振動レベルと、所定の振動振幅しきい値との比較に基づいて、制御パラメータを調整して動作制御部12に設定する、上記[1]~[5]のいずれか1つに記載のモータ制御システム1。
この場合、制御対象モデルMの出力とは関係なく定められた初期値から制御パラメータを増加させて自動調整が行われるので、制御パラメータを調整する作業の安定化を図ることができる。
【0089】
[7]動作制御部12は、少なくとも速度制御系を構成しており、制御パラメータは、速度制御系におけるゲインKvを含み、シミュレーション演算部42は、二分探索で変化させるゲインKvごとに制御対象モデルMを含む閉ループの極を導出し、上記極に基づいて安定領域と不安定領域との境界となるゲインKvを推定値に設定する、上記[5]に記載のモータ制御システム1。
この場合、値が大きく、発振しないゲインの初期値がシミュレーションにより得られ、その初期値を利用することで、実機を用いた自動調整において、制御系の安定状態を維持しつつパラメータを早く調整できる。
【0090】
[8]動作制御部12は、少なくとも速度制御系を構成しており、制御パラメータは、速度制御系におけるゲインKvを含み、パラメータ設定部44は、制御対象90の所定位置での停止指令が動作制御部12に入力されて、位置検出器92bの実検出値に含まれる停止時振動が確認されない場合に、制御対象90の所定位置での停止指令が入力された動作制御部12が、初期値KeからゲインKvを段階的に増加させた際の振動レベルに応じて、ゲインKvを調整することと、ゲイン調整用動作指令が入力された動作制御部12が、ゲインKvを更に段階的に増加させた際の振動レベルと、振動振幅しきい値との比較に基づいて、ゲインKvを調整して決定する設定制御と、を順に実行する、上記[5]または[7]に記載のモータ制御システム1。
この場合、停止指令及び動作指令の双方について、速度比例ゲインを適切な値に設定することができる。
【0091】
[9]動作制御部12は、少なくとも速度制御系を構成しており、制御パラメータは、速度制御系におけるゲインKvを含み、パラメータ設定部44は、制御対象90の所定位置での停止指令が動作制御部12に入力されて、位置検出器92bの実検出値に含まれる停止時振動が確認されない場合に、制御対象90の所定位置での停止指令が入力された動作制御部12が、初期値K1からゲインKvを段階的に増加させた際の振動レベルに応じて、ゲインKvを調整することと、ゲイン調整用動作指令が入力された動作制御部12が、ゲインKvを更に段階的に増加させた際の振動レベルと、振動振幅しきい値との比較に基づいて、ゲインKvを調整して決定する設定制御と、を順に実行する、上記[6]に記載のモータ制御システム1。
この場合、停止指令及び動作指令の双方について、速度比例ゲインを適切な値に設定することができる。
【0092】
[10]パラメータ設定部44は、上記設定制御において、更新量Δk1(第1更新量)でゲインKvが段階的に増加した際の振動レベルを用いてゲインKvを調整する第1調整制御と、更新量Δk1より小さい更新量Δk2(第2更新量)でゲインKvが段階的に増加した際の振動レベルを用いてゲインKvを調整する第2調整制御と、を順に実行する、上記[8]または[9]に記載のモータ制御システム1。
この場合、実機により自動調整を行う際のゲインKvの更新回数と、実機での動作回数とを少なくでき、パラメータの自動調整の時間を短縮できる。
【0093】
[11]位置検出器92bを含むモータ92を有する制御対象90を制御する際の制御パラメータを設定することと、モデル同定用動作指令および位置検出器92bの実検出値に基づいて、伝達関数を表す制御対象モデルMを同定することと、制御対象モデルMが制御パラメータの自動調整に利用可能か否かを判定することと、を含み、制御パラメータを設定することにおいて、制御対象モデルMが自動調整に利用可能であると判定された場合には、制御対象モデルMを利用する第1の自動調整方法で制御パラメータが自動調整されて設定され、制御対象モデルMが自動調整に利用可能ではないと判定された場合には、制御対象モデルMを利用しない第2の自動調整方法で制御パラメータが自動調整されて設定される、制御パラメータ自動調整方法。
この制御パラメータ自動調整方法は、上記[1]に記載のモータ制御システム1と同様に、パラメータの調整作業における簡素化と安定化との両立に有用である。
【0094】
[12]上記[11]に記載の制御パラメータ自動調整方法をコンピュータに実行させるための自動調整プログラム。
【符号の説明】
【0095】
1…モータ制御システム、10…制御装置、12…動作制御部、30…設定装置、34…モデル同定部、38…モデル評価部、42…シミュレーション演算部、44…パラメータ設定部、90…制御対象、92…モータ、92b…位置検出器、M…制御対象モデル、Kv…ゲイン、K1,Ke…初期値。
【要約】
【課題】パラメータの調整作業における簡素化と安定化との両立を図る。
【解決手段】モータ制御システムは、位置検出器を含むモータを有する制御対象を制御する動作制御部と、動作制御部における制御パラメータを設定するパラメータ設定部と、モデル同定用動作指令および位置検出器の実検出値に基づいて、伝達関数を表す制御対象モデルを同定するモデル同定部と、制御対象モデルが制御パラメータの自動調整に利用可能か否かを判定するモデル評価部と、を備える。パラメータ設定部は、制御対象モデルが自動調整に利用可能であると判定された場合には、制御対象モデルを利用する第1の自動調整方法で制御パラメータを自動調整して動作制御部に設定し、制御対象モデルが自動調整に利用可能ではないと判定された場合には、制御対象モデルを利用しない第2の自動調整方法で制御パラメータを自動調整して動作制御部に設定する。
【選択図】
図1