(57)【要約】【課題】外乱または負荷の変化があっても、容易な手法で、加速および減速時に円滑にモータを動作させ、オーバーシュートを最小限にして、整定時間を短縮化する。【解決手段】モータの制御装置の基準決定部は、モータを回転させるための指令値としてモータの基準回転角度を所定周期で決定する。基準決定部は、モータの実際の回転角度が、基準決定部で決定された直前の基準回転角度よりも遅れており、遅れ量が所定の閾値より小さい場合には、モータの回転速度に対応する角度増分を直前の基準回転角度に加えることにより、現在の基準回転角度を決定し、実際の回転角度が直前の基準回転角度よりも遅れており、遅れ量が閾値より大きい場合には、直前の基準回転角度を現在の基準回転角度として決定する。【選択図】図３
2019170114.tif 000002
【特許請求の範囲】
【請求項１】
モータの実際の回転角度を所定周期で取得し、前記モータを回転させるための指令値として前記モータの基準回転角度を前記所定周期で決定する基準決定部を有し、
前記基準決定部は、
前記モータの実際の回転角度が、前記基準決定部で決定された直前の基準回転角度よりも遅れており、かつ遅れ量が所定の閾値より小さい場合には、前記モータの回転速度に対応する角度増分を前記直前の基準回転角度に加えることにより、現在の基準回転角度を決定し、
前記実際の回転角度が、前記直前の基準回転角度よりも遅れており、かつ前記遅れ量が前記閾値より大きい場合には、前記直前の基準回転角度を、前記現在の基準回転角度として決定する、
モータの制御装置。
【請求項２】
前記基準決定部は、
前記モータの実際の回転角度が、前記直前の基準回転角度よりも進んでいる場合には、前記実際の回転角度に前記角度増分を加えることにより、前記現在の基準回転角度を決定する、
請求項１に記載のモータの制御装置。
【請求項３】
前記基準決定部は、
前記直前の基準回転角度が前記モータの目標回転角度に到達している場合には、前記目標回転角度を前記現在の基準回転角度として決定する、
請求項１または２に記載のモータの制御装置。
【請求項４】
前記基準決定部は、前記モータを回転させるための指令値として前記モータの基準回転速度を前記所定周期で決定し、
前記角度増分は、前記基準決定部で決定された現在の基準回転速度に前記所定周期を乗算して得られる、
請求項１から３のいずれか１項に記載のモータの制御装置。
【請求項５】
前記基準決定部は、前記モータを回転させるための指令値として前記モータの基準回転速度を前記所定周期で決定し、
前記基準決定部は、
前記基準決定部で決定された前記モータの直前の基準回転速度が目標回転速度より小さい場合には、前記モータの前記直前の基準回転速度に速度増分を加えることにより、現在の基準回転速度を決定し、
前記直前の基準回転速度が前記目標回転速度以上である場合には、前記目標回転速度を前記現在の基準回転速度として決定する、
請求項１から４のいずれか１項に記載のモータの制御装置。
【請求項６】
前記基準決定部は、
前記実際の回転角度が所定の減速開始角度に達した後、前記基準決定部で決定された前記直前の基準回転速度が所定の低回転速度閾値より大きい場合には、前記直前の基準回転速度から速度減分を引くことにより、前記現在の基準回転速度を決定し、
前記実際の回転角度が所定の減速開始角度に達した後、前記直前の基準回転速度が前記低回転速度閾値以下である場合には、低回転速度を前記現在の基準回転速度として決定する、
請求項５に記載のモータの制御装置。
【請求項７】
前記基準決定部は、
前記直前の基準回転角度が前記モータの目標回転角度に到達した後には、前記現在の基準回転速度をゼロに決定する、
請求項５または６に記載のモータの制御装置。
【請求項８】
前記基準決定部は、前記モータを回転させるための指令値として、前記基準決定部で決定された前記現在の基準回転速度を出力する
請求項４から７のいずれか１項に記載のモータの制御装置。
【請求項９】
前記基準決定部は、前記モータを回転させるための指令値として、前記基準決定部で決定された前記現在の基準回転角度を出力する
請求項１から８のいずれか１項に記載のモータの制御装置。
【請求項１０】
少なくとも１つのモータと、
前記少なくとも１つのモータに付随する請求項１から９のいずれか１項に記載の制御装置と、
前記少なくとも１つのモータにより駆動される機械要素と、
を有するロボット。
【請求項１１】
モータの実際の回転角度を所定周期で取得することと、
前記モータを回転させるための指令値として前記モータの基準回転角度を前記所定周期で決定することとを有し、
前記基準回転角度を決定することにおいては、
前記モータの実際の回転角度が、既に決定された直前の基準回転角度よりも遅れており、かつ遅れ量が所定の閾値より小さい場合には、前記モータの回転速度に対応する角度増分を前記直前の基準回転角度に加えることにより、現在の基準回転角度を決定し、
前記実際の回転角度が、前記直前の基準回転角度よりも遅れており、かつ前記遅れ量が前記閾値より大きい場合には、前記直前の基準回転角度を、前記現在の基準回転角度として決定する、
モータの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの制御装置、ロボットおよびモータの制御方法に関する。
【背景技術】
【０００２】
例えば移動ロボットまたは多関節ロボットに組み込まれたモータの制御方法として、動作基準プロファイルに従って、モータのトルク、回転角度、回転速度またはジャーク（加加速度）を制御することが知られている（特許文献１、２）。動作基準プロファイルは、モータのトルク、回転角度、回転速度またはジャークの経時的変化を規定する。動作基準プロファイルは、目標回転角度、モータの性能（例えば、達成可能な最大回転加速度、達成可能な最大回転減速度、達成可能な最大回転速度）およびモータに与えられる負荷に基づいて、あらかじめ設計される。一般に、速度変化に関する三角形または台形の動作基準プロファイル、および角度変化に関するＳ字曲線の動作基準プロファイルが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８７１０７７７号明細書
【特許文献２】米国特許第９０４１３３７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
適切な動作基準プロファイルの設計のためには、モータの性能を知っているだけでなく、モータに与えられる負荷を予測することが望ましい。負荷に応じて、モータの動作が制限されるためである。
【０００５】
しかしながら、負荷を正確に予測するのは困難で時間がかかることがある。また、モータの動作中に、外乱が生じたり、負荷が変化したりすることがありうる。外乱の理由としては、例えば、モータで駆動される物体が障害物にぶつかることが挙げられる。負荷の変化の理由としては、アームの姿勢が変化する時に、モータに与えられる負荷が変化することが挙げられる。外乱および負荷の変化は、予測するのがさらに困難である。したがって、一定の動作条件を仮定してあらかじめ設計された動作基準を使用することにより、実際の位置が基準位置に追従できず、その結果、基準位置と実際の位置との間に大きな差が生じることがありえる。その結果、システムは、大きなオーバーシュート、長い整定時間、およびモータの駆動信号の飽和の長い持続時間など、制御性能が低下することがありえる。。
【０００６】
さらに、あらかじめ設計された動作基準プロファイルの使用中に、が、外乱または負荷の変化があると、急激なモータの加速または減速が必要になることがありうる。その結果、モータの部品またはギヤなどの関連部品の寿命が短くなる可能性がある。
【０００７】
モータの制御においては、モータが円滑に動作することが望ましい。また、オーバーシュートを最小限にして、目標位置への整定時間を短くし、駆動信号の飽和時間を低減することが望ましい。これらの目標は、外乱および負荷の変化があっても、達成されるべきである。
【０００８】
特許文献１に記載の技術では、モータの動作中にモータの慣性および摩擦係数を推定して、推定に基づいてモータの制御パラメータを動的に調整する。しかし、この技術は、演算の負担を大きくする上、オーバーシュートの低減および整定時間（ｓｅｔｔｌｉｎｇ  ｔｉｍｅ）の短縮には寄与せず、外乱および負荷の変化に対する堅牢性が少ない。
【０００９】
特許文献２に記載の技術では、動作プロファイルにおける各セグメント（段階）の継続時間を計算して、さらに継続時間を修正し、修正された継続時間を用いて動作基準を再計算する。しかし、この技術では、演算の負担が過大であり、外乱および負荷の変化に対する堅牢性が少ない。
【００１０】
そこで、本発明は、外乱または負荷の変化があっても、容易な手法で、加速および減速時に円滑にモータを動作させ、オーバーシュートを最小限にして、整定時間を短縮化することが可能なモータの制御装置、ロボットおよびモータの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のある態様に係るモータの制御装置は、モータの実際の回転角度を所定周期で取得し、前記モータを回転させるための指令値として前記モータの基準回転角度を前記所定周期で決定する基準決定部を有し、前記基準決定部は、前記モータの実際の回転角度が、前記基準決定部で決定された直前の基準回転角度よりも遅れており、かつ遅れ量が所定の閾値より小さい場合には、前記モータの回転速度に対応する角度増分を前記直前の基準回転角度に加えることにより、現在の基準回転角度を決定し、前記実際の回転角度が、前記直前の基準回転角度よりも遅れており、かつ前記遅れ量が前記閾値より大きい場合には、前記直前の基準回転角度を、前記現在の基準回転角度として決定する。
【発明の効果】
【００１２】
本発明においては、外乱またはモータに与えられる負荷の変化があっても、直前に決定された基準回転角度に基づいて現在の基準回転角度を決定するので、基準回転角度と実際の回転角度の相違を常に小さくすることができる。したがって、オーバーシュートを最小限にして、整定時間を短縮化し、モータに供給される駆動信号の飽和を低減することが可能であり、また、モータの加速および減速が円滑化されるので、モータの部品およびモータに関連する部品の寿命を向上させることが可能である。また、直前の基準回転角度もしくは現在の基準回転角度をそのまま使用するか、または回転速度に対応する角度増分を加えるだけで、容易に現在の基準回転角度を決定することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施形態に係るモータの制御装置を示すブロック図である。
【図２】図２は、実施形態に係る基準回転角度の決定処理を示すフローチャートである。
【図３】図３は、実施形態に係る基準角度位置の決定処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、添付の図面を参照しながら本発明に係る実施の形態を説明する。
＜制御装置の構成＞
図１は、本発明の実施形態に係るモータの制御装置１を示すブロック図である。本実施形態に係る制御装置１は、移動ロボットの車輪を回転させるモータ２を制御するために、移動ロボットに設けられている。制御装置１は、モータ２を駆動するモータコントローラ４に指令値を与える。指令値は、モータ２を回転させるべき基準角度位置（基準回転角度）θrおよび基準回転速度ωrである。
【００１５】
モータコントローラ４は、駆動回路とプロセッサの組合せである。モータコントローラ４は、制御装置１から与えられた基準回転速度ωrで、制御装置１から与えられた基準角度位置θrにモータ２が回転するよう、モータ２を制御する駆動信号をモータ２に供給する。
【００１６】
制御装置１は、基準決定部７およびメモリ８を有する。基準決定部７は、プロセッサであり、記録媒体（例えばメモリ８）に記憶されたプログラムを読み出して実行することによって、動作する。したがって、記録媒体から読み出されたプログラム（プログラムコード）が実施形態の機能を実現する。また、当該プログラムを記録した記録媒体は本発明を構成することができる。
【００１７】
モータ２を制御するため、メモリ８には、各種のパラメータが記憶されている。各種のパラメータは、モータ２を最終的に回転させるべき目標角度位置θd、およびモータ２を回転させるべき目標回転速度ωdを含む。また、各種のパラメータは、基準決定部７で決定された、基準角度位置θrおよび基準回転速度ωrも含む。
【００１８】
基準決定部７は、モータコントローラ４に与える基準角度位置θrと基準回転速度ωrを決定する。現在の基準角度位置θr（ｔ）の決定のため、基準決定部７は、メモリ８から基準決定部７で決定された直前の基準回転角度θr（ｔ−１）を取得すなわち読み出しする。
【００１９】
基準決定部７は、基準決定部７で決定された直前の基準回転角度θr（ｔ−１）に基づいて、モータ２を回転させるべき現在の基準回転角度θr（ｔ）を所定周期（サンプリング周期）Ｔで周期的に決定する。そして、基準決定部７は、決定された現在の基準回転角度θr（ｔ）にモータ２が回転するようにモータコントローラ４にサンプリング周期Ｔで周期的に指令する。したがって、基準決定部７で決定された基準回転角度θrは、モータ２を回転させるための指令値としての指令回転角度である。基準決定部７は、決定した現在の基準回転角度θr（ｔ）をメモリ８に格納する。
【００２０】
ここで、現在の基準回転角度θr（ｔ）とは、モータ２を制御する現在のサンプリングタイムｔでの基準回転角度θrを意味する。直前の基準回転角度θr（ｔ−１）とは、直前のサンプリングタイムｔ−１（現在のサンプリングタイムｔのサンプリング周期Ｔだけ前のサンプリングタイム）での基準回転角度θrを意味する。以下の説明では、基準回転角度を基準角度位置と呼ぶ。
【００２１】
また、現在の基準回転速度ωr（ｔ）の決定のため、基準決定部７は、メモリ８から基準決定部７で決定された直前の基準回転速度ωr（ｔ−１）を取得すなわち読み出しする。
【００２２】
基準決定部７は、基準決定部７で決定されたモータ２の直前の基準回転速度ωr（ｔ−１）に基づいて、モータ２を回転させるべき現在の基準回転速度ωr（ｔ）をサンプリング周期Ｔで周期的に決定する。そして、基準決定部７は、モータ２が基準回転速度ωr（ｔ）で回転するようにモータコントローラ４にサンプリング周期Ｔで周期的に指令する。したがって、基準決定部７で決定された基準回転速度ωrは、モータ２を回転させるための指令値としての指令回転速度である。基準決定部７は、決定した現在の基準回転速度ωr（ｔ）をメモリ８に格納する。
【００２３】
ここで、現在の基準回転速度ωr（ｔ）とは、モータ２を制御する現在のサンプリングタイムｔでの基準回転速度ωrを意味する。直前の基準回転速度ωr（ｔ−１）とは、直前のサンプリングタイムｔ−１（現在のサンプリングタイムｔのサンプリング周期Ｔだけ前のサンプリングタイム）での基準回転速度ωrを意味する。
【００２４】
制御装置１は測定ユニット５と協働する。測定ユニット５は、速度計算部１０とロータリエンコーダユニット１２を有する。ロータリエンコーダユニット１２は、モータ２の角度位置を測定する。ロータリエンコーダユニット１２はモータ２もしくは車輪の近傍またはモータ２の内部に配置されている。ロータリエンコーダユニット１２は、モータ２の角度位置を表す角度位置信号として実際の回転角度θをモータコントローラ４と基準決定部７と速度計算部１０にサンプリング周期Ｔで周期的に供給する。したがって、基準決定部７は、モータ２の現在の実際の回転角度θ（ｔ）をサンプリング周期Ｔで周期的に取得する。基準決定部７は、基準角度位置θr（ｔ）と基準回転速度ωr（ｔ）の決定のために、現在の実際の回転角度θ（ｔ）を使用する。現在の実際の回転角度θ（ｔ）は、現在のサンプリングタイムｔでのモータ２の実際の回転角度θを意味する。以下の説明では、実際の回転角度を実際の角度位置と呼ぶ。
【００２５】
速度計算部１０は、角度位置信号に基づいて、公知の手法でモータ２の現在の実際の回転速度ω（ｔ）をサンプリング周期Ｔで周期的に計算する。回転速度ωは、推定値すなわち測定値であるが、ここでは、基準回転速度ωrと区別するため、回転速度ωを実際の回転速度と呼ぶ。そして、速度計算部１０は、モータ２の現在の実際の回転速度ω（ｔ）をモータコントローラ４にサンプリング周期Ｔで周期的に供給する。現在の実際の回転速度ω（ｔ）は、現在のサンプリングタイムｔでのモータ２の実際の回転速度ωを意味する。モータコントローラ４には、ロータリエンコーダユニット１２から現在の実際の回転角度θ（ｔ）が供給され、速度計算部１０から現在の実際の回転速度ω（ｔ）が供給され、基準決定部７から基準角度位置θr（ｔ）と基準回転速度ωr（ｔ）が供給される。モータコントローラ４のプロセッサは、現在の実際の回転角度θ（ｔ）と、現在の実際の回転速度ω（ｔ）と、基準角度位置θr（ｔ）と、基準回転速度ωr（ｔ）に基づいて、所定の制御アルゴリズムに従って、駆動信号を生成し、駆動信号を駆動回路に供給する。この結果、モータ２が基準回転速度ωr（ｔ）で基準角度位置θr（ｔ）に回転する。
【００２６】
＜パラメータおよび変数＞
次に、本明細書で使用されるパラメータおよび変数を説明する。
【００２７】
θr：基準角度位置。
ωr：基準回転速度。
θ：実際の角度位置。
ω：実際の回転速度。
基準角度位置θr、基準回転速度ωr、実際の角度位置θ、および実際の回転速度ωについては既に説明した通りである。
【００２８】
θd：モータ２の目標角度位置。目標角度位置θdは、モータ２を最終的に回転させるべき角度位置である。目標角度位置θdは、制御装置１の管理者により入力されるか、図示しないシステムコントローラにより生成される。目標角度位置θdは、メモリ８に記憶される。基準決定部７は、目標角度位置θdをメモリ８から読み出して、現在の基準角度位置θr（ｔ）および現在の基準回転速度ωr（ｔ）の決定に使用する。
【００２９】
ωd：モータ２の目標回転速度。目標回転速度ωdは、モータ２を回転させるべき所望の速度であり、モータ２の定格最高速度以下である。目標回転速度ωdは、制御装置１の管理者により入力されて、メモリ８に記憶されている。あるいは、目標回転速度ωdは、あらかじめメモリ８に記憶されたデフォルト値であってもよい。基準決定部７は、目標回転速度ωdをメモリ８から読み出して、現在の基準回転速度ωr（ｔ）の決定に使用する。
【００３０】
ａ1：加速係数。モータ２を加速する際、モータ２の回転速度に速度増分（一定の正の値）が加えられる。速度増分は、加速係数ａ1にサンプリング周期Ｔを乗算した値である。加速係数ａ1は、一定の正の値である。加速係数ａ1は、制御装置１の管理者により入力されて、メモリ８に記憶されている。あるいは、加速係数ａ1は、あらかじめメモリ８に記憶されたデフォルト値であってもよい。基準決定部７は、加速係数ａ1をメモリ８から読み出して、モータ２を加速する際、現在の基準回転速度ωr（ｔ）の決定に使用する。
【００３１】
ａ2：減速係数。モータ２を減速する際、モータ２の回転速度から速度減分（一定の正の値）が引かれる。速度減分は、減速係数ａ2にサンプリング周期Ｔを乗算した値である。減速係数ａ2は、一定の正の値である。減速係数ａ2は、制御装置１の管理者により入力されて、メモリ８に記憶されている。あるいは、減速係数ａ2は、あらかじめメモリ８に記憶されたデフォルト値であってもよい。基準決定部７は、減速係数ａ2をメモリ８から読み出して、モータ２を減速する際、現在の基準回転速度ωr（ｔ）の決定に使用する。
【００３２】
θe：位置誤差。位置誤差θeは、直前の基準角度位置θr（ｔ−１）と現在の実際の角度位置θ（ｔ）の相違であり、θe＝θr（ｔ−１）−θ（ｔ）として定義される。
【００３３】
θth：位置遅れ閾値。位置遅れ閾値θthは、現在の基準角度位置θr（ｔ）を決定する際に、基準決定部７が位置誤差θeと比較する正の閾値である。位置遅れ閾値θthは、制御装置１の管理者により入力されて、メモリ８に記憶されている。あるいは、位置遅れ閾値θthは、あらかじめメモリ８に記憶されたデフォルト値であってもよい。基準決定部７は、位置遅れ閾値θthをメモリ８から読み出して、現在の基準角度位置θr（ｔ）を決定する際に、位置遅れ閾値θthを使用する。
【００３４】
θdec：減速開始境界角度。減速開始境界角度θdecは、正の値である。減速開始境界角度θdecは、制御装置１の管理者により入力されて、メモリ８に記憶されている。あるいは、減速開始境界角度θdecは、あらかじめメモリ８に記憶されたデフォルト値であってもよい。
【００３５】
ωlow：低回転速度。低回転速度ωlowは、目標角度位置θdの付近でモータ２を回転させるべき一定の速度であり、目標回転速度ωdより低い速度である。例えば、低回転速度ωlowは、目標回転速度ωdの１／４である。低回転速度ωlowは、制御装置１の管理者により入力されて、メモリ８に記憶されている。あるいは、低回転速度ωlowは、あらかじめメモリ８に記憶されたデフォルト値であってもよい。基準決定部７は、減速開始境界角度θdecと低回転速度ωlowをメモリ８から読み出して、目標角度位置θdから現在の実際の角度位置θ（ｔ）を引いた値が減速開始境界角度θdecより小さくなると、基準回転速度ωr（ｔ）を低回転速度ωlowに低下させる。すなわち、基準決定部７は、現在の実際の角度位置θ（ｔ）が、目標角度位置θdの手前の減速開始境界角度θdec内に入ると、基準回転速度ωr（ｔ）を低回転速度ωlowに低下させる。
【００３６】
Ｔ：サンプリング周期。サンプリング周期Ｔは、例えば２ｍｓである。基準決定部７は、モータ２の現在の実際の角度位置θ（ｔ）をサンプリング周期Ｔで取得し、現在の基準角度位置θr（ｔ）をサンプリング周期Ｔで生成し、現在の基準回転速度ωr（ｔ）をサンプリング周期Ｔで周期的に決定する。
【００３７】
以下、実施形態に係るモータ２の制御方法を説明する。以下の説明では、モータ２を一方向にのみ回転させると仮定する。但し、本発明は、モータ２を逆方向に回転させるためにも適用可能である。また、以下の説明では、初期の実際の角度位置θおよび初期の実際の回転速度ωはゼロと仮定され、初期の基準角度位置θrおよび初期の基準回転速度ωrはゼロである。但し、本発明は、任意の初期の位置、および任意の初期の回転速度にも適用可能である。
【００３８】
＜基準回転速度の決定処理＞
図２を参照し、実施形態に係る基準回転速度の決定処理を説明する。
【００３９】
基準決定部７は、サンプリングタイムになると（ステップＳ１の判断が肯定的になると）、直前の基準角度位置θr（ｔ−１）が目標角度位置θdに到達しているか否か判断する（ステップＳ２）。基準角度位置（指令角度位置）の決定処理については後述する。
【００４０】
ステップＳ２の判断が否定的であれば、処理はステップＳ３に進む。ステップＳ３において、基準決定部７は、目標角度位置θdから現在の実際の角度位置θ（ｔ）を引いた値が減速開始境界角度θdec以上か否か判断する。
【００４１】
ステップＳ３の判断が肯定的であれば、処理はステップＳ４に進み、基準決定部７は、基準決定部７で決定された直前の基準回転速度ωr（ｔ−１）が目標回転速度ωdより小さいか否か判断する。
【００４２】
ステップＳ４の判断が肯定的であれば、処理はステップＳ５に進む。ステップＳ５において、基準決定部７は、基準決定部７で決定された直前の基準回転速度ωr（ｔ−１）に速度増分を加えることにより、現在の基準回転速度ωr（ｔ）を決定する。すなわち、モータ２の直前の基準回転速度ωr（ｔ−１）が目標回転速度ωdより小さい場合には、基準決定部７は、モータ２の直前の基準回転速度ωr（ｔ−１）に速度増分を加えることにより、現在の基準回転速度ωr（ｔ）を上昇させるように決定する。速度増分は、加速係数ａ1にサンプリング周期Ｔを乗算した値である。
また、ステップＳ５において、基準決定部７は、モータ２を回転させるための指令値として、基準決定部７で決定された現在の基準回転速度ωr（ｔ）をモータコントローラ４に供給する。ステップＳ５の後、処理はステップＳ１に戻り、次のサンプリングタイムまで待機する。
【００４３】
ステップＳ４の判断が否定的であれば、処理はステップＳ６に進む。ステップＳ６において、基準決定部７は、目標回転速度ωdを現在の基準回転速度ωr（ｔ）として決定する。すなわち、基準決定部７で決定されたモータ２の直前の基準回転速度ωr（ｔ−１）が目標回転速度ωd以上である場合には、基準決定部７は、現在の基準回転速度ωr（ｔ）として目標回転速度ωdを維持するよう決定する。
また、ステップＳ６において、基準決定部７は、モータ２を回転させるための指令値として、基準決定部７で決定された現在の基準回転速度ωr（ｔ）をモータコントローラ４に供給する。ステップＳ６の後、処理はステップＳ１に戻り、次のサンプリングタイムまで待機する。
【００４４】
一方、ステップＳ３の判断が否定的であれば、処理はステップＳ７に進む。すなわち、目標角度位置θdから現在の実際の角度位置θ（ｔ）を引いた値が減速開始境界角度θdecより小さい場合、処理はステップＳ７に進む。ステップＳ７において、基準決定部７は、基準決定部７で決定された直前の基準回転速度ωr（ｔ−１）が低回転速度ωlowより大きいか否か判断する。
【００４５】
ステップＳ７の判断が肯定的であれば、処理はステップＳ８に進む。ステップＳ８において、基準決定部７は、基準決定部７で決定された直前の基準回転速度ωr（ｔ−１）から速度減分を引くことにより、現在の基準回転速度ωr（ｔ）を決定する。すなわち、現在の実際の角度位置θ（ｔ）が所定の減速開始角度（目標角度位置θd−θdec）に達した後、直前の基準回転速度ωr（ｔ−１）が所定の低回転速度閾値ωlowより大きい場合には、基準決定部７は、直前の基準回転速度ωr（ｔ−１）から速度減分を引くことにより、現在の基準回転速度ωr（ｔ）を下降させるように決定する。速度減分は、減速係数ａ2にサンプリング周期Ｔを乗算した値である。
また、ステップＳ８において、基準決定部７は、モータ２を回転させるための指令値として、基準決定部７で決定された現在の基準回転速度ωr（ｔ）をモータコントローラ４に供給する。ステップＳ８の後、処理はステップＳ１に戻り、次のサンプリングタイムまで待機する。
【００４６】
ステップＳ７の判断が否定的であれば、処理はステップＳ９に進む。ステップＳ９において、基準決定部７は、低回転速度ωlowを現在の基準回転速度ωr（ｔ）として決定する。すなわち、現在の実際の角度位置θ（ｔ）が所定の減速開始角度θdecに達した後、直前の基準回転速度ωr（ｔ−１）が低回転速度閾値ωlow以下である場合には、基準決定部７は、現在の基準回転速度ωr（ｔ）として低回転速度ωlowを維持するよう決定する。
また、ステップＳ９において、基準決定部７は、モータ２を回転させるための指令値として、基準決定部７で決定された現在の基準回転速度ωr（ｔ）をモータコントローラ４に供給する。ステップＳ９の後、処理はステップＳ１に戻り、次のサンプリングタイムまで待機する。
【００４７】
一方、ステップＳ２の判断が肯定的であれば、処理はステップＳ１０に進む。ステップＳ１０において、基準決定部７は、現在の基準回転速度ωr（ｔ）をゼロに決定する。すなわち、直前の基準角度位置θr（ｔ−１）がモータ２の目標角度位置θdに到達した後には、基準決定部７は、現在の基準回転速度ωr（ｔ）をゼロに決定する。
また、ステップＳ１０において、基準決定部７は、モータ２を回転させるための指令値として、基準決定部７で決定された現在の基準回転速度ωr（ｔ）をモータコントローラ４に供給する。ステップＳ１０の後、処理は終了する。
【００４８】
実施形態に係る基準回転速度の決定処理に従ったモータ２の動作には、加速、一定速度、減速、低速回転および停止の５つのセグメント（段階）がある。加速セグメントは、動作がステップＳ２、Ｓ３、Ｓ４を経てＳ５に進むことの繰り返しにより実行される。加速セグメントでは、モータ２の直前の基準回転速度ωr（ｔ−１）が目標回転速度ωdに到達するまで、モータ２の直前の基準回転速度ωr（ｔ−１）に一定の速度増分（ａ1×Ｔ）を加えることにより、モータ２の回転速度は増加し続ける。
【００４９】
一定速度セグメントは、直前の基準回転速度ωr（ｔ−１）が目標回転速度ωdに到達すること（ステップＳ４の判断が否定的になること）を契機として、動作がステップＳ２、Ｓ３、Ｓ４を経てＳ６に進むことの繰り返しにより実行される。一定速度セグメントでは、現在の基準回転速度ωr（ｔ）として目標回転速度ωdが維持され、モータ２は一定速度ωdで回転し続ける。
【００５０】
減速セグメントは、基準決定部７で決定された現在の実際の角度位置θ（ｔ）が所定の減速開始角度に達すること（ステップＳ３の判断が否定的になること）を契機として、動作がステップＳ２、Ｓ３、Ｓ７を経てＳ８に進むことの繰り返しにより実行される。減速セグメントでは、モータ２の直前の基準回転速度ωr（ｔ−１）が低回転速度ωlowに下降するまで、モータ２の直前の基準回転速度ωr（ｔ−１）から一定の速度減分（ａ2×Ｔ）が引かれることにより、モータ２の回転速度は減少し続ける。
【００５１】
低速回転セグメントは、基準決定部７で決定された現在の実際の角度位置θ（ｔ）が所定の減速開始角度に達した後、直前の基準角度位置θr（ｔ−１）が低回転速度ωlowに下降すること（ステップＳ７の判断が否定的になること）を契機として、動作がステップＳ２、Ｓ３、Ｓ７を経てＳ９に進むことの繰り返しにより実行される。低速回転セグメントでは、現在の基準回転速度ωr（ｔ）として低回転速度ωlowが維持され、モータ２は一定の低回転速度ωlowで回転し続ける。
【００５２】
停止セグメントは、基準決定部７で決定された直前の基準角度位置θr（ｔ−１）がモータ２の目標角度位置θdに到達すること（ステップＳ２の判断が肯定的になること）を契機として、動作がステップＳ１０に進むことにより実行される。停止セグメントでは、現在の基準回転速度ωr（ｔ）がゼロに決定されて、モータ２の回転が停止する。
【００５３】
実施形態に係る基準回転速度の決定処理によれば、容易かつ動的に現在の基準回転速度ωr（ｔ）を決定することができる。具体的には、加速セグメントでは、直前の基準回転速度ωr（ｔ−１）と所定の加速係数ａ1から、容易かつ動的に現在の基準回転速度ωr（ｔ）を決定することができる（ステップＳ５）。一定速度セグメントでは、目標回転速度ωdから、容易かつ動的に現在の基準回転速度ωr（ｔ）を決定することができる（ステップＳ６）。減速セグメントでは、直前の基準回転速度ωr（ｔ−１）と所定の減速係数ａ2から、容易かつ動的に現在の基準回転速度ωr（ｔ）を決定することができる（ステップＳ８）。低速回転セグメントでは、低回転速度ωlowから、容易かつ動的に現在の基準回転速度ωr（ｔ）を決定することができる（ステップＳ９）。
【００５４】
実施形態に係る基準回転速度の決定処理によれば、所定の状態に応じて、所与のパラメータおよび／または所与の変数から、容易かつ動的に現在の基準回転速度ωr（ｔ）を決定することができる。
【００５５】
＜基準角度位置の決定処理＞
図３を参照し、実施形態に係る基準角度位置（指令角度位置）の決定処理を説明する。基準角度位置の決定処理は、基準回転速度の決定処理と並行して実行される。より正確には、基準角度位置の決定処理は、基準回転速度の決定処理に遅れて開始される。
【００５６】
基準決定部７は、サンプリングタイムになると（ステップＳ１１の判断が肯定的になると）、基準決定部７で決定された直前の基準角度位置θr（ｔ−１）がモータ２の目標角度位置θdに到達しているか否か判断する（ステップＳ１２）。ステップＳ１２の判断が否定的であれば、処理はステップＳ１３に進む。ステップＳ１３において、基準決定部７は、ロータリエンコーダユニット１２から取得されたモータ２の現在の実際の角度位置θ（ｔ）が、基準決定部７で決定された直前の基準角度位置θr（ｔ−１）よりも大きいか否か判断する。すなわち、ステップＳ１３において、基準決定部７は、現在の実際の角度位置θ（ｔ）が、基準決定部７で決定された直前の基準角度位置θr（ｔ−１）よりも進んでいるか否か判断する。
【００５７】
ステップＳ１３の判断が否定的であれば、処理はステップＳ１４に進む。ステップＳ１４において、基準決定部７は、直前の基準角度位置θr（ｔ−１）が現在の実際の角度位置θ（ｔ）に位置遅れ閾値θthを加えた値より大きいか否か判断する。すなわち、ステップＳ１４において、基準決定部７は、位置誤差θeが位置遅れ閾値θthより大きいか否か判断する。
【００５８】
ステップＳ１４の判断が肯定的であれば、処理はステップＳ１５に進む。ステップＳ１５において、基準決定部７は、直前の基準角度位置θr（ｔ−１）を、現在の基準角度位置θr（ｔ）として決定する。すなわち、現在の実際の角度位置θ（ｔ）が直前の基準角度位置θr（ｔ−１）よりも遅れており、かつ遅れ量（位置誤差θe）が閾値θthより大きい場合には、基準決定部７は、直前の基準角度位置θr（ｔ−１）を現在の基準角度位置θr（ｔ）として決定する。
また、ステップＳ１５において、基準決定部７は、モータ２を回転させるための指令値として、基準決定部７で決定された現在の基準角度位置（現在の指令角度位置）θr（ｔ）をモータドライバ４に供給する。ステップＳ１５の後、処理はステップＳ１１に戻り、次のサンプリングタイムまで待機する。
【００５９】
一方、ステップＳ１４の判断が否定的であれば、処理はステップＳ１６に進む。ステップＳ１６において、基準決定部７は、モータ２の回転速度に対応する角度増分を直前の基準角度位置θr（ｔ−１）に加えることにより、現在の基準角度位置θr（ｔ）を決定する。すなわち、現在の実際の角度位置θ（ｔ）が直前の基準角度位置θr（ｔ−１）に一致するか、現在の実際の角度位置θ（ｔ）が直前の基準角度位置θr（ｔ−１）よりも遅れているが遅れ量（位置誤差θe）が閾値θth以下である場合には、基準決定部７は、角度増分を直前の基準角度位置θr（ｔ−１）に加えることにより、現在の基準角度位置θr（ｔ）を決定する。角度増分は、例えば、基準回転速度の決定処理で決定された現在の基準回転速度ωr（ｔ）にサンプリング周期Ｔを乗算した値である。但し、角度増分は、現在の実際の角度位置θ（ｔ）にサンプリング周期Ｔを乗算した値であってもよい。
また、ステップＳ１６において、基準決定部７は、モータ２を回転させるための指令値として、基準決定部７で決定された現在の基準角度位置（現在の指令角度位置）θr（ｔ）をモータドライバ４に供給する。
【００６０】
一方、ステップＳ１３の判断が肯定的であれば、処理はステップＳ１７に進む。ステップＳ１７において、基準決定部７は、現在の実際の角度位置θ（ｔ）に角度増分を加えることにより、現在の基準角度位置θr（ｔ）を決定する。すなわち、モータ２の現在の実際の角度位置θ（ｔ）が、直前の基準角度位置θr（ｔ−１）よりも進んでいる場合には、基準決定部７は、現在の実際の角度位置θ（ｔ）に角度増分を加えることにより、現在の基準角度位置θr（ｔ）を決定する。角度増分は、例えば、基準回転速度の決定処理で決定された現在の基準回転速度ωr（ｔ）にサンプリング周期Ｔを乗算した値である。但し、角度増分は、現在の実際の角度位置θ（ｔ）にサンプリング周期Ｔを乗算した値であってもよい。
また、ステップＳ１７において、基準決定部７は、モータ２を回転させるための指令値として、基準決定部７で決定された現在の基準角度位置（現在の指令角度位置）θr（ｔ）をモータドライバ４に供給する。ステップＳ１７の後、処理はステップＳ１１に戻り、次のサンプリングタイムまで待機する。
【００６１】
ステップＳ１２の判断が肯定的であれば、処理はステップＳ１８に進む。ステップＳ１８において、基準決定部７は、目標角度位置θdを現在の基準角度位置θr（ｔ）として決定する。すなわち、基準決定部７は、直前の基準角度位置θr（ｔ−１）がモータ２の目標角度位置θdに到達している場合には、目標角度位置θdを現在の基準角度位置θr（ｔ）として決定する。
また、ステップＳ１８において、基準決定部７は、モータ２を回転させるための指令値として、基準決定部７で決定された現在の基準角度位置（現在の指令角度位置）θr（ｔ）をモータドライバ４に供給する。ステップＳ１８の後、処理は終了する。
【００６２】
実施形態に係る基準角度位置の決定処理によれば、外乱またはモータ２に与えられる負荷の変化があっても、急加速または急減速せずにモータ２を動作させるので、オーバーシュートを最小限にして、整定時間を短縮化することが可能であり、モータ２の部品およびモータ２に関連する部品の寿命を向上させることが可能である。
【００６３】
具体的には、現在の実際の角度位置θ（ｔ）が直前の基準角度位置θr（ｔ−１）よりも遅れており、かつ遅れ量（位置誤差θe）が閾値θthより大きい場合には、基準決定部７は、直前の基準角度位置θr（ｔ−１）を現在の基準角度位置θr（ｔ）として決定する（ステップＳ１５）。換言すれば、基準角度位置は、遅れ量（位置誤差θe）が閾値θth以下になるまで増加しない。この場合には、位置誤差θeを常に閾値θth以内に維持することができる。したがって、モータコントローラ４からモータ２に供給される駆動信号の飽和を回避または低減することができ、オーバーシュートを最小限にして、整定時間を短縮できる。
【００６４】
現在の実際の角度位置θ（ｔ）が直前の基準角度位置θr（ｔ−１）に一致するか、現在の実際の角度位置θ（ｔ）が直前の基準角度位置θr（ｔ−１）よりも遅れているが遅れ量（位置誤差θe）が閾値θth以下である場合には、基準決定部７は、角度増分を直前の基準角度位置θr（ｔ−１）に加えることにより、現在の基準角度位置θr（ｔ）を決定する（ステップＳ１６）。この場合には、実際の角度位置θ（ｔ）は基準角度位置に追従することができると考えられる。直前の角度位置θr（ｔ−１）に角度増分を加えることにより、現在の基準位置θr（ｔ）が更新されるので、基準角度位置が目標角度位置θdに向かって徐々に増加する。
【００６５】
モータ２の現在の実際の角度位置θ（ｔ）が、直前の基準角度位置θr（ｔ−１）よりも進んでいる場合には、基準決定部７は、現在の実際の角度位置θ（ｔ）に角度増分を加えることにより、現在の基準角度位置θr（ｔ）を決定する（ステップＳ１７）。この場合には、現在の実際の角度位置θ（ｔ）に角度増分を加えるだけで、現在の基準角度位置θr（ｔ）を決定する。したがって、モータ２を急減速しない。また、現在の実際の角度位置θ（ｔ）に角度増分を加えるだけで、容易に現在の基準角度位置θr（ｔ）を決定することができる。
【００６６】
ステップＳ１６およびＳ１７において使用される角度増分は、例えば、基準回転速度の決定処理で決定された現在の基準回転速度ωr（ｔ）にサンプリング周期Ｔを乗算した値である。但し、角度増分は、現在の実際の角度位置θ（ｔ）にサンプリング周期Ｔを乗算した値であってもよい。いずれにせよ、角度増分を容易に算出することができ、ステップＳ１６およびＳ１７において、角度増分から現在の基準角度位置θr（ｔ）を容易に決定することができる。
【００６７】
＜変形例＞
以上、本発明の実施形態を説明したが、上記の説明は本発明を限定するものではなく、本発明の技術的範囲において、構成要素の削除、追加、置換を含む様々な変形例が考えられる。
【００６８】
例えば、上記の実施形態に係る制御装置１は、移動ロボットの車輪を回転させるモータ２を制御するために、移動ロボットに設けられている。但し、多関節ロボット、乗り物、または搬送装置のモータの制御に本発明を利用してもよい。モータ２により駆動される機械要素は、車輪に限定されず、多関節ロボットのアーム、搬送装置のローラ、またはその他の機械要素であってもよい。
【００６９】
制御装置１またはモータコントローラ４において、プロセッサが実行する各機能は、プロセッサの代わりに、ハードウェアで実行してもよいし、例えばFPGA（Field Programmable Gate Array）、DSP（Digital Signal Processor）等のプログラマブルロジックデバイスで実行してもよい。
【００７０】
上記の実施形態において、ロータリエンコーダユニット１２がモータ２の現在の実際の角度位置θ（ｔ）を導出して、角度位置θ（ｔ）を示す角度位置信号をモータコントローラ４、基準決定部７、および速度計算部１０に供給する。しかし、計算部１０が、他のタイプの角度センサからの角度位置信号に基づいて、モータ２の現在の実際の角度位置θ（ｔ）および現在の実際の回転速度ω（ｔ）を計算してもよい。
【００７１】
基準回転速度の決定処理（図２）のステップＳ５で使用される加速係数ａ1は、上記の実施形態では、一定値である。但し、加速係数ａ1は、モータ２の回転速度に対応して変化する可変値でもよい。例えば、モータ２の回転速度が目標回転速度ωdに接近すると、加速係数ａ1を減少させてもよい。
基準回転速度の決定処理（図２）のステップＳ８で使用される減速係数ａ2は、上記の実施形態では、一定値である。但し、減速係数ａ2は、モータ２の回転速度に対応して変化する可変値でもよい。例えば、モータ２の回転速度が低回転速度ωlowに接近すると、減速係数ａ2を減少させてもよい。
【００７２】
基準回転速度の決定処理（図２）のステップＳ９で使用される低回転速度ωlowは、上記の実施形態では、一定値である。但し、低回転速度ωlowは、モータ２の角度位置に対応して変化する可変値でもよい。この場合、ステップＳ９で速度基準として使用される低回転速度ωlowが、ステップＳ７で閾値として使用される低回転速度ωlowと異なってもよい。例えば、モータ２の角度位置が目標角度位置θdに接近すると、ステップＳ９で速度基準として使用される低回転速度ωlowを減少させてもよい。
【００７３】
基準角度位置の決定処理(図３）のステップＳ１４における記号「＞」は「≧」に代えてもよい。すなわち、遅れ量（位置誤差θe）が閾値θthに等しい場合には、上記の実施形態では、処理はステップＳ１６に進むが、この場合に、処理はステップＳ１５に進んでもよい。
【００７４】
本発明の他の態様に係る項目を列挙する。
１．モータの実際の回転角度を所定周期で取得し、前記モータを回転させるための指令値として前記モータの基準回転角度を前記所定周期で決定する基準決定部を有し、
前記基準決定部は、
前記モータの実際の回転角度が、前記基準決定部で決定された前記直前の基準回転角度よりも進んでいる場合には、前記実際の回転角度に前記角度増分を加えることにより、前記現在の基準回転角度を決定する、
モータの制御装置。
【００７５】
２．前記基準決定部は、
前記直前の基準回転角度が前記モータの目標回転角度に到達している場合には、前記目標回転角度を前記現在の基準回転角度として決定する、
項目１に記載のモータの制御装置。
【００７６】
３．モータを回転させるための指令値として前記モータの基準回転速度を前記所定周期で決定する基準決定部を有し、
前記基準決定部は、
前記基準決定部で決定された前記モータの直前の基準回転速度が目標回転速度より小さい場合には、前記モータの前記直前の基準回転速度に速度増分を加えることにより、現在の基準回転速度を決定し、
前記直前の基準回転速度が前記目標回転速度以上である場合には、前記目標回転速度を前記現在の基準回転速度として決定する、
モータの制御装置。
【００７７】
４．前記基準決定部は、
前記モータの実際の回転角度が所定の減速開始角度に達した後、前記基準決定部で決定された前記直前の基準回転速度が所定の低回転速度閾値より大きい場合には、前記直前の基準回転速度から速度減分を引くことにより、前記現在の基準回転速度を決定し、
前記実際の回転角度が所定の減速開始角度に達した後、前記直前の基準回転速度が前記低回転速度閾値以下である場合には、低回転速度を前記現在の基準回転速度として決定する、
項目３に記載のモータの制御装置。
【００７８】
５．前記基準決定部は、
前記直前の基準回転角度が前記モータの目標回転角度に到達した後には、前記現在の基準回転速度をゼロに決定する、
項目３または４に記載のモータの制御装置。
【００７９】
６．少なくとも１つのモータと、
前記少なくとも１つのモータに付随する項目１から５のいずれか１項に記載の制御装置と、
前記少なくとも１つのモータにより駆動される機械要素と、
を有するロボット。
【００８０】
７．モータの実際の回転角度を所定周期で取得することと、
前記モータを回転させるための指令値として前記モータの基準回転角度を前記所定周期で決定することとを有し、
前記基準回転角度を決定することにおいては、
前記モータの実際の回転角度が、既に決定された前記直前の基準回転角度よりも進んでいる場合には、前記実際の回転角度に前記角度増分を加えることにより、前記現在の基準回転角度を決定する、
モータの制御方法。
【００８１】
８．モータを回転させるための指令値として前記モータの基準回転速度を所定周期で決定することを有し、
前記基準回転速度を決定することにおいては、
既に決定された前記モータの直前の基準回転速度が目標回転速度より小さい場合には、前記モータの前記直前の基準回転速度に速度増分を加えることにより、現在の基準回転速度を決定し、
前記直前の基準回転速度が前記目標回転速度以上である場合には、前記目標回転速度を前記現在の基準回転速度として決定する、
モータの制御方法。
【符号の説明】
【００８２】
１  制御装置
２  モータ
４  モータコントローラ
７  基準決定部
８  メモリ
１０  速度計算部
１２  ロータリエンコーダユニット
【図１】
2019170114.tif 000003
【図２】
2019170114.tif 000004
【図３】
2019170114.tif 000005