IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社アイエイアイの特許一覧

特開2024-17379制御装置、アクチュエータ、及び衝突検出方法
<>
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図1
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図2
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図3
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図4
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図5
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図6
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図7
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図8
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図9
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図10
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図11
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図12
  • 特開-制御装置、アクチュエータ、及び衝突検出方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024017379
(43)【公開日】2024-02-08
(54)【発明の名称】制御装置、アクチュエータ、及び衝突検出方法
(51)【国際特許分類】
   H02P 29/024 20160101AFI20240201BHJP
【FI】
H02P29/024
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022119972
(22)【出願日】2022-07-27
(71)【出願人】
【識別番号】391008515
【氏名又は名称】株式会社アイエイアイ
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】榊原 則夫
(72)【発明者】
【氏名】鈴木 新悟
(72)【発明者】
【氏名】飯田 峻也
(72)【発明者】
【氏名】服部 智壮
【テーマコード(参考)】
5H501
【Fターム(参考)】
5H501BB08
5H501DD04
5H501DD07
5H501GG01
5H501GG03
5H501GG05
5H501HB08
5H501JJ03
5H501JJ12
5H501JJ18
5H501JJ22
5H501JJ24
5H501JJ26
5H501LL07
5H501LL22
5H501LL35
5H501LL51
5H501MM04
5H501MM09
(57)【要約】
【課題】移動体の物体への衝突を精度良く検出する。
【解決手段】制御装置10は、移動体27に関する位置指令値に基づいて、移動体27の位置を推定し、モータ22の電流値が第1閾値を超え、かつ、移動体27の推定位置と移動体27の現在位置との差が第2閾値を超える場合に、移動体27が物体に衝突したと判定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
移動体を移動させるモータを制御する制御装置であって、
前記移動体に関する位置指令値に基づいて、前記移動体の位置を推定する推定部と、
前記モータの電流値が第1閾値を超え、かつ、前記推定部により推定された推定位置と前記移動体の現在位置との差が第2閾値を超える場合に、前記移動体が物体に衝突したと判定する衝突判定部と、
を備えた制御装置。
【請求項2】
前記推定部は、位置ゲインの逆数を時定数とするローパスフィルタ処理の実行により前記推定位置を算出する、
請求項1に記載の制御装置。
【請求項3】
前記電流値は、前記モータの電流検出値である、又は、前記位置指令値に基づいて算出される電流指令値である、
請求項1に記載の制御装置。
【請求項4】
前記衝突判定部は、前記電流値が前記第1閾値を超え、かつ、前記推定位置と前記現在位置との差が前記第2閾値を超える状態が所定時間継続した場合に、前記移動体が前記物体に衝突したと判定する、
請求項1に記載の制御装置。
【請求項5】
前記衝突判定部は、前記電流値が前記第1閾値を超え、かつ、前記推定位置と前記現在位置との差が前記第2閾値以下で、かつ、前記推定位置が前記移動体の到達目標とする位置である目標位置に到達したときに前記現在位置が前記目標位置に対して所定の範囲外である場合に、前記移動体が前記物体に衝突したと判定する、
請求項1に記載の制御装置。
【請求項6】
前記衝突判定部は、前記電流値が前記第1閾値を超え、かつ、前記推定位置と前記現在位置との差が前記第2閾値以下で、かつ、前記推定位置が前記目標位置に到達したときに前記現在位置が前記目標位置に対して所定の範囲外である状態が所定時間継続した場合に、前記移動体が前記物体に衝突したと判定する、
請求項5に記載の制御装置。
【請求項7】
移動体を移動させるモータを制御する制御装置であって、
前記移動体に関する位置指令値に基づいて、前記移動体の位置を推定する推定部と、
前記モータの電流値が第1閾値を超え、かつ、前記推定部により推定された推定位置が前記移動体の到達目標とする位置である目標位置に到達したときに前記移動体の現在位置が前記目標位置に対して所定の範囲外である場合に、前記移動体が物体に衝突したと判定する衝突判定部と、
を備えた制御装置。
【請求項8】
移動体と、
前記移動体を移動させるモータと、
前記モータを制御する、請求項1~請求項7の何れか1項に記載の制御装置と、
を含むアクチュエータ。
【請求項9】
移動体を移動させるモータを制御する制御装置が実行する衝突検出方法であって、
前記移動体に関する位置指令値に基づいて、前記移動体の位置を推定し、
前記モータの電流値が第1閾値を超え、かつ、前記推定された推定位置と前記移動体の現在位置との差が第2閾値を超える場合に、前記移動体が物体に衝突したと判定する、
衝突検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、アクチュエータ、及び衝突検出方法に関する。
【背景技術】
【0002】
例えば、特許文献1には、モータの回転運動をスライダ等の移動体の直線運動等に変換させるアクチュエータの制御装置が記載されている。このアクチュエータの制御装置は、移動体の移動速度が一定である期間においてモータに流れる電流値が所定の閾値を超える場合に、移動体が障害物等の物体に衝突したことを検出する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2014-087235号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記のようなモータの電流値と閾値との比較による衝突検出技術では、移動体の加減速中は衝突を検出することができない。より詳細には、移動体の加減速中は電流値が比較的大きくなるため同じ閾値を使うと誤検出してしまう。
【0005】
本発明は、以上の事実を考慮して成されたもので、移動体の物体への衝突を精度良く検出することができる制御装置、アクチュエータ、及び衝突検出方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、第1態様に係る制御装置は、移動体を移動させるモータを制御する制御装置であって、前記移動体に関する位置指令値に基づいて、前記移動体の位置を推定する推定部と、前記モータの電流値が第1閾値を超え、かつ、前記推定部により推定された推定位置と前記移動体の現在位置との差が第2閾値を超える場合に、前記移動体が物体に衝突したと判定する衝突判定部と、を備える。
【0007】
第1態様によれば、移動体の物体への衝突を精度良く検出することができる。
【0008】
また、第2態様に係る制御装置は、第1態様に係る制御装置において、位置ゲインの逆数を時定数とするローパスフィルタ処理の実行により前記推定位置を算出する。
【0009】
第2態様によれば、ローパスフィルタ処理の実行により精度の高い推定位置を得ることができる。
【0010】
また、第3態様に係る制御装置は、第1態様又は第2態様に係る制御装置において、前記電流値が、前記モータの電流検出値である、又は、前記位置指令値に基づいて算出される電流指令値である。
【0011】
第3態様によれば、電流検出値又は電流指令値として電流値を得ることができる。
【0012】
また、第4態様に係る制御装置は、第1態様~第3態様の何れか1態様に係る制御装置において、前記衝突判定部が、前記電流値が前記第1閾値を超え、かつ、前記推定位置と前記現在位置との差が前記第2閾値を超える状態が所定時間継続した場合に、前記移動体が前記物体に衝突したと判定する。
【0013】
第4態様によれば、衝突判定条件を満たす状態が所定時間継続するという条件を追加することにより誤判定を抑制することができる。
【0014】
また、第5態様に係る制御装置は、第1態様~第4態様の何れか1態様に係る制御装置において、前記衝突判定部が、前記電流値が前記第1閾値を超え、かつ、前記推定位置と前記現在位置との差が前記第2閾値以下で、かつ、前記推定位置が前記移動体の到達目標とする位置である目標位置に到達したときに前記現在位置が前記目標位置に対して所定の範囲外である場合に、前記移動体が前記物体に衝突したと判定する。
【0015】
第5態様によれば、目標位置付近の衝突を精度良く検出することができる。
【0016】
また、第6態様に係る制御装置は、第5態様に係る制御装置において、前記衝突判定部が、前記電流値が前記第1閾値を超え、かつ、前記推定位置と前記現在位置との差が前記第2閾値以下で、かつ、前記推定位置が前記目標位置に到達したときに前記現在位置が前記目標位置に対して所定の範囲外である状態が所定時間継続した場合に、前記移動体が前記物体に衝突したと判定する。
【0017】
第6態様によれば、衝突判定条件を満たす状態が所定時間継続するという条件を追加することにより誤判定を抑制することができる。
【0018】
また、第7態様に係る制御装置は、移動体を移動させるモータを制御する制御装置であって、前記移動体に関する位置指令値に基づいて、前記移動体の位置を推定する推定部と、前記モータの電流値が第1閾値を超え、かつ、前記推定部により推定された推定位置が前記移動体の到達目標とする位置である目標位置に到達したときに前記移動体の現在位置が前記目標位置に対して所定の範囲外である場合に、前記移動体が物体に衝突したと判定する衝突判定部と、を備える。
【0019】
第7態様によれば、目標位置付近の衝突を精度良く検出することができる。
【0020】
更に、上記目的を達成するために、第8態様に係るアクチュエータは、移動体と、前記移動体を移動させるモータと、前記モータを制御する、第1態様~第7態様の何れか1態様に係る制御装置と、を含む。
【0021】
第8態様によれば、移動体の物体への衝突を精度良く検出可能なアクチュエータを提供することができる。
【0022】
更に、上記目的を達成するために、第9態様に係る衝突検出方法は、移動体を移動させるモータを制御する制御装置が実行する衝突検出方法であって、前記移動体に関する位置指令値に基づいて、前記移動体の位置を推定し、前記モータの電流値が第1閾値を超え、かつ、前記推定された推定位置と前記移動体の現在位置との差が第2閾値を超える場合に、前記移動体が物体に衝突したと判定する。
【0023】
第9態様によれば、上記第1態様と同様に、移動体の物体への衝突を精度良く検出することができる。
【発明の効果】
【0024】
以上説明したように、本発明によれば、移動体の物体への衝突を精度良く検出することができる、という効果が得られる。
【図面の簡単な説明】
【0025】
図1】第1の実施形態に係る制御装置及びアクチュエータの構成の一例を概略的に示す図である。
図2】第1の実施形態に係る制御装置が備える制御部の電気的な構成の一例を示すブロック図である。
図3】各種移動指令における移動体の移動速度の遷移例を示す波形図である。
図4】比較例に係る衝突検出機能の説明に供する図である。
図5】第1の実施形態に係る制御装置の機能的な構成の一例を示すブロック図である。
図6】第1の実施形態に係るアクチュエータの衝突判定時の状態を模式的に示す図である。
図7】第1の実施形態に係るアクチュエータによる衝突判定処理の説明に供する図である。
図8】衝突検出ステータスがオンされるまでの衝突判定処理の説明に供する図である。
図9】第1の実施形態に係る制御プログラムによる衝突判定処理の流れの一例を示すフローチャートである。
図10】第2の実施形態に係るアクチュエータの衝突判定時の状態を模式的に示す図である。
図11】第2の実施形態に係るアクチュエータによる衝突判定処理の説明に供する図である。
図12】移動体の現在位置が位置決め範囲外である例と位置決め範囲内である例を模式的に示す図である。
図13】第2の実施形態に係る制御プログラムによる衝突判定処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0026】
以下、図面を参照して、本開示の技術を実施するための形態の一例について詳細に説明する。なお、動作、作用、機能が同じ働きを担う構成要素及び処理には、全図面を通して同じ符号を付与し、重複する説明を適宜省略する場合がある。各図面は、本開示の技術を十分に理解できる程度に、概略的に示してあるに過ぎない。よって、本開示の技術は、図示例のみに限定されるものではない。また、本実施形態では、本発明と直接的に関連しない構成や周知な構成については、説明を省略する場合がある。
【0027】
[第1の実施形態]
図1は、第1の実施形態に係る制御装置10及びアクチュエータ20の構成の一例を概略的に示す図である。
【0028】
図1に示すように、アクチュエータ20は、エンコーダ21、モータ22、出力シャフト23、カップリング24、ボールねじ軸25、ボールねじナット26、移動体27、及びハウジング28を備えている。なお、ボールねじ軸25及びボールねじナット26は、すべりねじ軸及びすべりねじナットとしてもよい。また、図1の例では、移動体27は、テーブルタイプとして示しているが、ロッドタイプであってもよい。
【0029】
エンコーダ21は、モータ22に取り付けられている。エンコーダ21は、モータ22の回転位置を検出し、検出した位置をフィードバック位置信号として制御装置10に出力する。
【0030】
モータ22は、制御装置10によって制御され、移動体27を移動させるための駆動源である。モータ22は、例えば、三相のACサーボモータである。但し、これに限るものではなく、モータ22は、DCブラシレスモータ又はステッピングモータなどのモータであってもよい。
【0031】
モータ22の出力シャフト23は、カップリング24を介して、ボールねじ軸25が結合されている。ボールねじ軸25は、ボールねじナット26と共に、モータ22の回転運動を並進運動に変換するための機械部品として構成される。移動体27は、ボールねじナット26を介して、ボールねじ軸25に接合されている。
【0032】
ハウジング28は、出力シャフト23、カップリング24、ボールねじ軸25、ボールねじナット26を収容している。ボールねじ軸25は、ハウジング28内にてベアリング(図示省略)によって回転可能に支持されている。また、ハウジング28の上面は、移動体27がハウジング28の上部で移動可能となるように開口している。但し、当該開口は、移動体27のハウジング28の上部での移動を妨げないような構造でステンレスシート(図示省略)などのシート部材によって塞がれている。
【0033】
制御装置10は、制御部100、インバータ部101、及び電流センサ29を備え、d軸電流指令値及びq軸電流指令値を用いたベクトル制御によってモータ22を制御するコントローラである。制御部100、インバータ部101、及び電流センサ29は、例えば、筐体に収容されている。d軸電流指令値及びq軸電流指令値は、モータ22の通電電流を制御するための指令値である。d軸とは、磁束の方向であり、q軸とは、d軸に直交する方向であり、トルクの大きさに寄与する。なお、図1では、制御装置10は、アクチュエータ20と別体に設けられているが、アクチュエータ20に内蔵されていてもよい。すなわち、アクチュエータ20は、制御装置10を備えていてもよい。また、インバータ部101及び電流センサ29は、アクチュエータ20に内蔵されていてもよい。すなわち、アクチュエータ20は、インバータ部101及び電流センサ29を備えていてもよく、この場合、制御装置10は制御部100のみを備えていてもよい。
【0034】
インバータ部101は、例えば、図示省略の交流電源及びコンバータを介して供給された直流電力を交流電力に変換してモータ22に供給する駆動回路(ドライバ)である。インバータ部101は、モータ22の複数の巻線(三相の場合、U、V、W相巻線)に対応して設けられ、制御部100によってオン、オフ駆動が制御される複数のスイッチング素子等で構成されている。電流センサ29は、例えば、ホール素子などの磁気検出素子等で構成されている。より詳細には、電流センサ29は、例えば、インバータ部101とモータ22の複数の巻線との間の電流路のうちU相巻線、W相巻線のそれぞれに向かう電流路に設けられており、モータ22に流れる電流に応じた信号を制御部100に出力する。
【0035】
図2は、第1の実施形態に係る制御装置10が備える制御部100の電気的な構成の一例を示すブロック図である。
【0036】
図2に示すように、本実施形態に係る制御装置10の制御部100は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、入出力インタフェース(I/O)14と、記憶部15と、接続部16と、を備えている。
【0037】
CPU11、ROM12、RAM13、及びI/O14は、バスを介して各々接続されている。I/O14には、記憶部15と、接続部16と、を含む各機能部が接続されている。これらの各機能部は、I/O14を介して、CPU11と相互に通信可能とされる。
【0038】
CPU11、ROM12、RAM13、及びI/O14は、例えば、マイクロコンピュータ(マイコン)を構成する。マイコンは、制御部100の一部の動作を制御するサブ制御部として構成されてもよいし、制御部100の全体の動作を制御するメイン制御部の一部として構成されてもよい。マイコンの各ブロックの一部又は全部には、例えば、LSI(Large Scale Integration)等の集積回路又はIC(Integrated Circuit)チップセットが用いられる。上記各ブロックに個別の回路を用いてもよいし、一部又は全部を集積した回路を用いてもよい。上記各ブロック同士が一体として設けられてもよいし、一部のブロックが別に設けられてもよい。また、上記各ブロックのそれぞれにおいて、その一部が別に設けられてもよい。マイコンの集積化には、LSIに限らず、専用回路又は汎用プロセッサを用いてもよい。
【0039】
記憶部15としては、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等が用いられる。ROM12又は記憶部15には、モータ22を制御するための制御プログラム、モータ22の制御に必要な各種の設定値、データテーブル等が記憶される。
【0040】
制御プログラムは、例えば、制御部100に予めインストールされていてもよい。制御プログラムは、不揮発性の記憶媒体に記憶して、又はネットワークを介して配布して、制御部100に適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、CD-ROM(Compact Disc Read Only Memory)、光磁気ディスク、HDD、DVD-ROM(Digital Versatile Disc Read Only Memory)、フラッシュメモリ、メモリカード等が想定される。
【0041】
接続部16は、エンコーダ21、モータ22、及びPLC(Programmable Logic Controller)等の上位装置の各々と接続するためのインタフェースである。
【0042】
図3は、各種移動指令における移動体27の移動速度の遷移例を示す波形図である。縦軸に移動体27の移動速度を示し、横軸に時間を示す。
【0043】
各種移動指令としては、例えば、位置決め動作指令、及び原点復帰動作指令が挙げられる。位置決め動作とは、モータ22の回転に応じて、移動体27を、位置決め動作開始点から位置決め動作の目標位置まで移動させる動作である。なお、目標位置とは、移動体27の到達目標とする位置である。例えば、図1に示す矢印のように、移動体27は、前進端への位置決め動作では原点(後退端)から前進端まで移動し、原点(後退端)への位置決め動作では前進端から原点(後退端)まで移動する。原点復帰動作とは、モータ22の回転に応じて、移動体27を原点復帰動作開始点から原点(原点復帰動作の目標位置)まで移動させる動作である。例えば、移動体27は、前進端から原点(後退端)まで移動する。
【0044】
図3は、各種動作における移動体27の移動速度の時間変化の一例を示す。より詳細には、図3は、例えば、原点復帰動作、前進端への位置決め動作、及び原点(後退端)への位置決め動作の順に行った場合の移動体27の移動速度の時間変化を示す。図3に示すように、位置決め動作では移動体27を比較的高速で移動させて、原点復帰動作では移動体27を比較的低速で移動させる。なお、図3に示す例において、各動作における移動体27の移動速度は、前進端への位置決め動作における速度>原点(後退端)への位置決め動作における速度>原点復帰動作における速度という関係となっている。
【0045】
ところで、上述したように、モータの電流値としてのフィードバック電流値(以下、単に「FB電流値」という。)と閾値との比較による衝突検出機能では、移動体の加減速中は電流値が比較的大きくなるため同じ閾値を使うと誤検出してしまう。
【0046】
図4は、比較例に係る衝突検出機能の説明に供する図であり、移動体の速度とFB電流との関係を示す。なお、図4において、横軸は移動体の位置を示し、縦軸左は電流値を示し、縦軸右は移動体の速度を示す。
【0047】
図4に示すように、比較例に係る衝突検出機能は、移動体が移動開始位置から目標位置に至るまでの速度一定期間中にのみ設定される。つまり、速度一定期間中にFB電流値(例えば、トルク電流検出値(q軸電流検出値))が閾値を超えた場合に、衝突と判定する。この場合、速度一定期間外、すなわち、移動開始位置付近及び目標位置付近における加減速中では、衝突を検出することができない。また、この衝突検出機能を加減速中にも適用した場合、加減速中ではFB電流値が速度一定期間中よりも大きくなるため、同じ閾値を使うと誤検出してしまう。
【0048】
これに対して、本実施形態に係る制御装置10は、移動体27に関する位置指令値に基づいて、移動体27の位置を推定し、モータ22の電流値が第1閾値を超え、かつ、推定された推定位置と移動体27の現在位置との差が第2閾値を超える場合に、移動体27が物体に衝突したと判定する。なお、ここでいう物体とは、移動体27の移動経路に存在する障害物等である。また、衝突とは、移動体27の移動中に物体にぶつかる状態をいう。また、推定位置とは、障害物等の物体がなければ移動したであろう仮想の位置である。
【0049】
具体的に、本実施形態に係る制御装置10のCPU11は、ROM12又は記憶部15に記憶されている制御プログラムをRAM13に書き込んで実行することにより、図5に示す各部として機能する。
【0050】
図5は、第1の実施形態に係る制御装置10の機能的な構成の一例を示すブロック図である。
【0051】
図5に示すように、本実施形態に係る制御装置10のCPU11は、移動指令取得部111、運転計画生成部112、第1減算器113、第1位置制御器114、第2減算器115、速度制御器116、第3減算器117、電流制御部118、推定部119、衝突判定部123、位置情報取得部124、現在速度換算部125、電気角換算部126、及び電流検出部127として機能する。また、推定部119は、第4減算器120、第2位置制御器121、及び積分器122を含む。
【0052】
移動指令取得部111は、例えば、PLC等の上位装置から移動指令を取得する。なお、制御装置10がプログラム作成機能を有している場合には、制御装置10自体がPLCとして機能してもよい。この移動指令は、例えば、位置決め動作指令及び原点復帰動作指令のいずれかである。位置決め動作指令は、例えば、前進端などの位置決め動作終了位置を示す目標位置等で構成される位置情報と、位置決め動作の上限速度を示す目標速度等で構成される速度情報と、加速度及び減速度で構成される加減速度情報と、を含むパラメータで構成され、位置決め動作を実現するための指令である。なお、位置決め動作速度は、位置決め動作の時間が短くなるように比較的高い目標速度に設定されている。原点復帰動作指令は、例えば、原点復帰動作終了位置を示す原点(後退端)等で構成される位置情報と、原点復帰動作の上限速度を示す目標速度等で構成される速度情報と、加減速度情報と、を含むパラメータで構成され、原点復帰動作を実現するための指令である。原点復帰動作速度は、例えば、位置決め動作速度よりも比較的低い目標速度(例えば、20mm/s以下)に設定されている。移動指令取得部111は、移動指令から、当該移動指令の種別を判定し、判定結果を運転計画生成部112に出力する。
【0053】
運転計画生成部112は、移動体27の目標位置に向けて位置指令値を生成し、生成した位置指令値を第1減算器113及び第4減算器120の各々に出力する。具体的に、運転計画生成部112は、移動体27に関する加速度、減速度、目標速度及び目標位置を含むパラメータと現在位置とに基づいて位置指令値を生成する。移動体27の目標位置、目標速度、及び加減速度を含むパラメータは、各種移動指令から取得される。運転計画生成部112は、移動体27の移動速度が、一例として、上述の図3に示すように、目標速度を上限とした台形形状に時間的に変化するように位置指令値を生成する。
【0054】
より詳細には、運転計画生成部112は、各種移動指令を取得すると、現在の位置指令値と目標位置との差から移動体27を移動させたい距離を定め、移動体27の速度が目標速度を上底とする台形形状(移動距離によっては目標速度に達しない三角形状)となるように位置指令値を逐次(例えば、1msの制御周期で)生成する。言い換えると、運転計画生成部112は、移動体27の移動速度を加速中は移動速度が目標速度となるまでパラメータの加速度で加速させて、一定速中は目標速度を維持し、減速中は移動速度がゼロとなるまでパラメータの減速度で減速させて、移動開始時点から移動終了時点までの時間における速度変化を示す台形(移動距離によっては目標速度に達しない三角形)の面積、つまり、速度の時間積分が、上記定めた距離となるように位置指令値を逐次生成する。また、逐次生成される位置指令値の変化量は、加速中においては増加し、減速中においては減少し、速度一定のときはパラメータの目標速度を超えないように調整される。つまり、目標速度は位置指令値の変化量のリミッタを意味する。これにより、図3に示す挙動、つまり、各種移動指令における速度の時間変化を実現するような位置指令値が生成される。
【0055】
第1減算器113は、運転計画生成部112からの位置指令値から、位置情報取得部124からの現在位置(位置検出値)を減じて得られた位置偏差を第1位置制御器114に出力する。
【0056】
第1位置制御器114は、第1減算器113から得られた位置偏差に位置制御用ゲイン(設定値)を乗じて速度指令値を生成し、生成した速度指令値を第2減算器115に出力する。第1位置制御器114は、比例制御を行う。
【0057】
第2減算器115は、第1位置制御器114からの速度指令値から、現在速度換算部125からの現在速度(速度検出値)を減じて得られた速度偏差を速度制御器116に出力する。
【0058】
速度制御器116は、第2減算器115から得られた速度偏差に速度制御用比例ゲイン/速度制御用積分ゲイン(設定値)を乗じて積分することによりトルク電流指令値を生成し、生成したトルク電流指令値を第3減算器117に出力する。速度制御器116は、比例/積分制御を行う。ここで、本実施形態では、d軸電流指令値Id=0としてモータ22の制御を行うため、図5の例において、d軸電流指令値Idの制御ブロックに関する図示を省略している。そのため、トルク電流指令値は、モータ22のトルクの発生に寄与するq軸電流指令値Iqであるものとして説明する。
【0059】
第3減算器117は、速度制御器116からのトルク電流指令値(=q軸電流指令値Iq)から、後述の電流検出部127からのFB電流値としてのq軸電流検出値Iqを減じて得られた電流偏差を電流制御部118に出力する。
【0060】
位置情報取得部124は、モータ22に取り付けられたエンコーダ21から、モータ22のフィードバック位置信号を取得する。位置情報取得部124は、フィードバック位置信号に基づいて得られる移動体27の位置検出値を現在位置として第1減算器113、現在速度換算部125、衝突判定部123、及び電気角換算部126の各々に出力する。
【0061】
現在速度換算部125は、位置情報取得部124からの現在位置を現在速度(速度検出値)に換算し、換算した現在速度(速度検出値)を第2減算器115に出力する。
【0062】
電気角換算部126は、位置情報取得部124からの現在位置をモータ22の電気角に換算し、電流制御部118に出力する。
【0063】
電流検出部127は、電流センサ29からの出力に基づいてFB電流値としてのq軸電流検出値を算出することにより検出する。より詳細には、電流検出部127は、まず、電流センサ29からのU相電流検出値Iu、W相電流検出値Iwを入力し、Iu+Iv+Iw=0の関係からV相電流検出値を算出することで検出する。次に、電流検出部127は、U,V,W相電流Iu,Iv,Iwを静止座標系(α、β座標系)でのα、β軸電流検出値に変換する。その後、電流検出部127は、電気角換算部126からの電気角を用いて、α、β軸電流検出値を回転座標系であるd、q軸座標系のd軸電流検出値Id及びq軸電流検出値Iqを算出する。電流検出部127は、q軸電流検出値IqをFB電流値として第3減算器117及び衝突判定部123に出力する。一方、電流検出部127は、図示については省略するが、d軸電流検出値Idを電流制御部118へ出力する。
【0064】
電流制御部118は、第3減算器117からの電流偏差及び電気角換算部126からの電気角を用いて、モータ22を制御する。より詳細には、モータ22が三相のACサーボモータである場合、電流制御部118は、まず、d軸電流指令値Idを0とし(Id=0)、d軸電流検出値Idとのd軸に関する電流偏差を算出する。次に、電流制御部118は、d、q軸に関する電流偏差に基づいて、d、q軸電圧指令値Vd、Vqを生成する。次に、電流制御部118は、電気角を用いてd、q軸電圧指令値Vd、Vqをα、β軸での電圧指令値に変換する。その後、電流制御部118は、α、β軸での電圧指令値に基づいて、インバータ部101のU,V,W相巻線に対応して設けられた複数のスイッチング素子をオン、オフ駆動させるための指令値を算出し、これらに基づいてインバータ部101を制御することで、モータ22の駆動を制御する。
【0065】
一方、推定部119は、移動体27に関する位置指令値に基づいて、移動体27の位置を推定する。推定部119は、例えば、位置制御ゲインの逆数を時定数とするローパスフィルタの実行により推定位置を算出する。具体的に、第4減算器120は、運転計画生成部112からの位置指令値から、積分器122から得られる推定位置を減じて得られた推定位置偏差を第2位置制御器121に出力する。
【0066】
第2位置制御器121は、第4減算器120から得られた推定位置偏差に位置制御用ゲイン(設定値)を乗じて速度推定値を生成し、生成した速度推定値を積分器122に出力する。
【0067】
積分器122は、第2位置制御器121からの速度推定値を積分することにより得られる推定位置を第4減算器120及び衝突判定部123の各々に出力する。推定位置は、第1位置制御器114が位置偏差に乗算した位置制御ゲインと同じ位置制御用ゲインを考慮して、位置指令値に対する理想的な位置として算出されるものである。
【0068】
衝突判定部123は、モータ22の電流値(FB電流値)が第1閾値を超え、かつ、推定部119で推定された推定位置と、位置情報取得部124から得られた移動体27の現在位置との差が第2閾値を超える場合に、移動体27が物体に衝突したと判定する。第1閾値及び第2閾値は、例えば、ROM12又は記憶部15に予め記憶されており、過去の知見、実験結果等に基づいて適切な値が設定される。つまり、本実施形態では、FB電流値が第1閾値を超えることを条件1とし、推定位置と現在位置との差が第2閾値を超えることを条件2とし、条件1と条件2の両方を満たす場合に、衝突と判定する。なお、第2閾値を用いた位置の衝突判定は、例えば、エンコーダ21のカウント値に基づいて実行される。この場合、第2閾値をエンコーダ21のカウント値に換算して用いればよい。一例として、第2閾値を2[mm]、ボールねじ軸25のリード幅を20[mm]、エンコーダ分解能を16384[count]とした場合、エンコーダ21のカウント値に換算した第2閾値は、2/20×16384≒1638、となる。
【0069】
また、衝突判定部123は、電流値(FB電流値)が第1閾値を超え、かつ、推定位置と現在位置との差が第2閾値を超える状態が所定時間継続した場合に、移動体27が物体に衝突したと判定してもよい。ここで、所定時間は、例えば、5[ms]以上15[ms]以下の範囲で適切な値が設定され、望ましくは、10[ms]が設定される。以下、この所定時間を「衝突判定時間」という。
【0070】
次に、図6図8を参照して、第1の実施形態に係る衝突判定処理について具体的に説明する。
【0071】
図6は、第1の実施形態に係るアクチュエータ20の衝突判定時の状態を模式的に示す図である。
【0072】
図6に示すように、移動体27が物体30に衝突した場合、FB電流値が第1閾値を超えるため条件1を満たすが、条件1だけでは、移動体27が加減速中である可能性を排除できない。また、速度一定時においてもベアリング等の抵抗によりFB電流値が上がる場合もある。このため、移動体27の現在位置と推定位置との差D1が第2閾値を超えるという条件2についても判定し、条件2も満たす場合に、加減速中であること、あるいは、ベアリング等の抵抗が原因でFB電流値が増大したわけではない、つまり、加減速中、あるいは、ベアリング等の抵抗が原因である可能性が排除される。これにより、加減速中であるか否かによらず、あるいは、ベアリング等の抵抗によらず、精度良く衝突が検出される。したがって、上述の図4を参照して説明した比較例と比較して、衝突を検出可能な範囲を拡大することができる。また、条件2と共に条件1を満たしたときに、衝突と判定することで、条件2を満たしたことのみで衝突と判定する場合と比較して、衝突検出の精度を高めることができる。
【0073】
図7は、第1の実施形態に係るアクチュエータ20による衝突判定処理の説明に供する図である。なお、図7の例では、衝突判定時間を例えば10[ms]とした場合について示す。
【0074】
図7において、(A)に示すグラフは、条件2に係る移動体27の位置の時間変化を示し、(B)に示すグラフは、条件1に係るFB電流値の時間変化を示す。(C)に示すタイミングチャートは、電流(FB電流値)による衝突検出をオンするタイミング、及び、位置差分(推定位置と現在位置との差)による衝突検出をオンするタイミングを示す。(D)に示すグラフは、衝突判定時間を計測する衝突検出カウンタ(以下、単に「カウンタ」ともいう。)のカウント値の時間変化を示す。(E)に示すタイミングチャートは、衝突検出ステータスをオンするタイミングを示す。なお、カウンタは、図示を省略するが、例えば、制御装置10が備えるタイマ機能により実現される。
【0075】
但し、(A)において、Pthは第2閾値を示し、(B)において、Ithは第1閾値を示し、(D)において、Tthは衝突判定時間(例えば10ms)を示す。
【0076】
(A)において、時刻T1は移動体27が物体に衝突した時刻を示す。時刻T1での移動体27の位置が現在位置に対応する。また、時刻T3は移動体27の推定位置と現在位置との差が第2閾値Pthを超えたときの時刻を示す。時刻T3では(C)に示す位置差分による衝突検出がオンされる。つまり、条件2を満たす。
【0077】
(B)において、時刻T2はFB電流値が第1閾値Ithを超えたときの時刻を示す。時刻T2では(C)に示す電流による衝突検出がオンされる。つまり、条件1を満たす。
【0078】
(D)において、条件1、2を満たすと判定した時点、つまり、時刻T3でカウンタが衝突判定時間Tthのカウントを開始する。時刻T4は時刻T3からの経過時間が衝突判定時間Tthに到達したときの時刻を示す。時刻T4では(E)に示す衝突検出ステータスがオンされる。つまり、カウンタのカウント値が衝突判定時間Tthに到達すると、衝突と判定され、(E)に示す衝突検出ステータスがオンされる。
【0079】
上記より、条件1、2を満たす状態が衝突判定時間Tth以上継続した場合に、移動体27が物体に衝突したと判定される。条件1、2を満たした場合に即時衝突検出とすると、誤検出の可能性が残るため、誤検出の可能性をより低減するために、衝突判定時間Tthを設けることが望ましい。FB電流値は、アクチュエータ20の運転状態、設置状態等によっても変化する。また、移動体27の推定位置についても、摩擦等の外乱は考慮されない。このため、移動体27の現在位置と推定位置との差には動作開始、停止間際で若干の誤差が発生する可能性がある。このような誤差による衝突の誤検出を防止するためにも、衝突判定時間Tthを設けることが望ましい。
【0080】
図8は、衝突検出ステータスがオンされるまでの衝突判定処理の説明に供する図である。
【0081】
図8において、(A)に示すグラフは、条件2に係る移動体27の位置の時間変化を示し、(B)に示すグラフは、条件1に係るFB電流値の時間変化を示す。(C)に示すグラフは、衝突判定時間を計測するカウンタのカウント値の時間変化を示す。
【0082】
(A)において、時刻T11で移動体27が物体に衝突する。時刻T11での移動体27の位置が現在位置に対応する。また、時刻T12で移動体27の推定位置と現在位置との差が第2閾値Pthを超え、条件2を満たす。
【0083】
(B)において、時刻T11と時刻T12の間でFB電流値が第1閾値Ithを超え、条件1を満たす。
【0084】
(C)において、条件1、2を満たすと判定した時点、つまり、時刻T12でカウンタが衝突判定時間Tthのカウントを開始する。時刻T13は時刻T12からの経過時間が衝突判定時間Tthに到達したときの時刻を示す。カウンタのカウント値が衝突判定時間Tthに到達すると、衝突と判定され、衝突検出ステータスがオンされる。
【0085】
つまり、条件1、2を満たすと判定した時刻T12から衝突判定時間Tthのカウントを開始し、衝突判定時間Tthに到達すると、衝突検出ステータスがオンされる。このとき、衝突判定時間Tthへの到達の前に、条件1及び条件2の少なくとも一方を満たさない状態になると、カウント値は減少する。図8の例では、時刻T12と時刻T13との間で条件1を満たさない状態になるため、カウント値が減少するが、その後、条件1を満たすと再びカウント値が増加するようになっている。
【0086】
次に、図9を参照して、第1の実施形態に係る制御装置10の作用を説明する。
【0087】
図9は、第1の実施形態に係る制御プログラムによる衝突判定処理の流れの一例を示すフローチャートである。
【0088】
まず、制御装置10に対してモータ制御の指示がなされると、CPU11によって制御プログラムが起動され、以下の各処理を実行する。なお、本衝突判定処理は、所定の間隔(例えば、1ms周期)で繰り返し実行される。また、推定位置は、本衝突判定処理の実行周期よりも短い時間間隔(例えば、100μs周期)で算出されている。
【0089】
図9のステップS111では、CPU11が、移動体27の推定位置と現在位置との差[Dn]を算出する。
【0090】
ステップS112では、CPU11が、ステップS111で算出した差[Dn]が第2閾値Pthを超えたか否かを判定する。差[Dn]が第2閾値Pthを超えたと判定した場合(YES:肯定判定の場合)、ステップS113に移行し、差[Dn]が第2閾値Pth以下と判定した場合(NO:否定判定の場合)、ステップS115に移行する。
【0091】
ステップS113では、CPU11が、FB電流値が第1閾値Ithを超えたか否かを判定する。FB電流値が第1閾値Ithを超えたと判定した場合(YES:肯定判定の場合)、ステップS114に移行し、FB電流値が第1閾値Ith以下と判定した場合(NO:否定判定の場合)、ステップS115に移行する。
【0092】
ステップS114では、CPU11が、衝突と判定し、ステップS116に移行する。
【0093】
一方、ステップS115では、CPU11が、非衝突と判定し、ステップS116に移行する。
【0094】
ステップS116では、CPU11が、衝突と判定したか否かを判定する。衝突と判定した場合(YES:肯定判定の場合)、ステップS117に移行し、非衝突と判定した場合(NO:否定判定の場合)、ステップS118に移行する。
【0095】
ステップS117では、CPU11が、衝突検出カウンタのカウント値をインクリメントし、ステップS121に移行する。
【0096】
一方、ステップS118では、CPU11が、衝突検出カウンタのカウント値をデクリメントし、ステップS119に移行する。
【0097】
ステップS119では、CPU11が、衝突検出カウンタのカウント値がゼロ(=0)より小さいか否かを判定する。カウント値がゼロより小さいと判定した場合(YES:肯定判定の場合)、ステップS120に移行し、カウント値がゼロ以上と判定した場合(NO:否定判定の場合)、ステップS121に移行する。
【0098】
ステップS120では、CPU11が、衝突検出カウンタのカウント値に「ゼロ(=0)」を設定し、ステップS121に移行する。
【0099】
ステップS121では、CPU11が、衝突検出カウンタのカウント値が衝突判定時間Tth以上であるか否かを判定する。カウント値が衝突判定時間Tth以上であると判定した場合(YES:肯定判定の場合)、ステップS122に移行し、カウント値が衝突判定時間Tth未満であると判定した場合(NO:否定判定の場合)、ステップS124に移行する。
【0100】
ステップS122では、CPU11が、衝突検出カウンタに「衝突判定時間Tth」を設定する。
【0101】
ステップS123では、CPU11が、衝突検出として、衝突検出ステータスをオンし、本制御プログラムによる衝突判定処理を終了する。
【0102】
一方、ステップS124では、CPU11が、衝突非検出として、衝突検出ステータスをオフし、本制御プログラムによる衝突判定処理を終了する。
【0103】
ここで、衝突検出後、制御装置10は、自ら警告音等によって衝突検出を報知してもよいし、PLC等の上位装置に衝突検出を通知するようにしてもよい。また、衝突検出後、制御装置10がモータ22を減速、停止させるようにしてもよい。
【0104】
また、第2閾値(例えば、2mm)は、ユーザ設定可能とされる。第2閾値は、例えば、ユーザの使用状態、アクチュエータのサイズ(ストローク、移動体の駆動機構としてのボールねじのリード幅)、アクチュエータの設置状態等を考慮して設定するのが望ましい。
【0105】
また、速度一定区間では、条件1を満たすか否かによって衝突を検出し、加減速区間では、条件1、2を満たすか否かによって衝突を検出してもよい。このとき、速度一定区間、加減速区間であることは、上述の特許文献1(特開2014-087235号公報)のように検出ゾーンを設定して現在位置が検出ゾーン内にあるか否かを判定する方法、あるいは、移動指令の目標速度と検出速度との比較によって認識する方法等が考えられる。
【0106】
また、移動指令に含まれる情報から運転計画が「原点復帰動作」又は「押付け動作」である場合は、衝突検出機能をオフするようにしてもよい。「原点復帰動作」又は「押付け動作」も衝突に該当するが、意図的な衝突であるため、衝突検出の対象外とする。なお、「押付け動作」とは、障害物ではなく、押付け対象として予め用意されたワークに移動体を押付ける動作を意味する。
【0107】
また、衝突判定時間の値(例えば、10ms)は、ユーザによる設定が可能とされる。上述したように、移動体の推定位置の生成には摩擦等の外乱が考慮されていない。つまり、移動体の現在位置と推定位置との差が動作開始時、停止間際で大きくなる可能性があるため、所定時間継続したか否かを設けることで誤判定が抑制される。
【0108】
以上説明したように、本実施形態によれば、条件1、2の両方を満たす場合に、移動体が物体に衝突したと判定される。このため、条件1のみで衝突を判定する場合と比較して、精度良く判定することができる。
【0109】
ここで、移動体が移動開始位置から目標位置に移動するまでの間、移動体は、加速し、目標速度にて一定速度で移動し、減速する、つまり、移動体の速度は、台形状又は三角形状に変化する。ここで、加減速中のモータの通電電流は、一定速度で移動中の場合と比較して大きくなる。このため、条件1が満たされただけでは、移動体が物体と衝突したのか、単に加減速中なのか特定することができない。そこで、衝突検出に条件2を付加することによって、衝突がなければ到達したであろう推定位置と、現在位置との差が大きくなったことが検出可能となるので、加減速中であるか否かに関わらず条件1が満たされた原因は衝突によるものと判定することができる。
【0110】
また、条件1、2が満たされた状態が所定時間継続したことを条件として追加することで、衝突検出の精度を更に向上させることができる。
【0111】
[第2の実施形態]
上記第1の実施形態では、条件1、2を満たす場合に、衝突と判定する形態について説明した。第2の実施形態では、条件1、2に、更に、移動体の推定位置が目標位置に到達したときに現在位置が目標位置に対して所定の範囲外であるという条件3を加え、条件3も考慮して、衝突と判定する形態について説明する。
【0112】
上述の図5を参照して、第2の実施形態に係る制御装置10の機能的な構成について説明する。
【0113】
衝突判定部123は、モータ22の電流値が第1閾値を超え、かつ、移動体27の推定位置と現在位置との差が第2閾値以下で、かつ、移動体27の推定位置が目標位置に到達したときに現在位置が目標位置に対して所定の範囲外である場合に、移動体27が物体に衝突したと判定する。移動体27の推定位置が目標位置に到達したときに現在位置が目標位置に対して所定の範囲外であることを条件3とする。ここでいう所定の範囲は、例えば、目標位置を中心とする範囲である。つまり、条件2は満たさず、かつ、条件1、3を満たす場合に、移動体27が物体に衝突したと判定する。
【0114】
また、衝突判定部123は、モータ22の電流値が第1閾値を超え、かつ、移動体27の推定位置と現在位置との差が第2閾値以下で、かつ、移動体27の推定位置が目標位置に到達したときに現在位置が目標位置に対して所定の範囲外である状態が所定時間(つまり、衝突判定時間)継続した場合に、移動体27が物体に衝突したと判定してもよい。
【0115】
次に、図10図12を参照して、第2の実施形態に係る衝突判定処理について具体的に説明する。
【0116】
図10は、第2の実施形態に係るアクチュエータ20の衝突判定時の状態を模式的に示す図である。
【0117】
図10に示すように、移動体27が物体30に衝突した場合、FB電流値が第1閾値を超えるため条件1を満たすが、移動体27の現在位置が目標位置付近である場合、移動体27の推定位置と現在位置との差D1が小さくなる、つまり、差D1<第2閾値Pthとなり、条件2を満たさない。条件1を満たし、かつ、条件2を満たさない場合、例えば、減速中である可能性を排除できない。このため、移動体27の推定位置が目標位置に到達したときに現在位置が目標位置に対する所定の範囲外(以下、「位置決め範囲」という。)であるという条件3についても判定し、条件3も満たす場合に、現在位置が目標位置付近(つまり、移動体27の推定位置と現在位置との差が小さい場合)であっても、減速中であることが原因でFB電流値が増大したわけではない、つまり、減速中である可能性が排除される。これにより、減速中であるか否かによらず、目標位置付近の衝突が精度良く検出される。
【0118】
図11は、第2の実施形態に係るアクチュエータ20による衝突判定処理の説明に供する図である。なお、図11の例では、衝突判定時間を例えば10[ms]とした場合について示す。
【0119】
図11において、(A)に示すグラフは、条件3に係る移動体27の位置の時間変化を示し、(B)に示すグラフは、条件1に係るFB電流値の時間変化を示す。(C)に示すタイミングチャートは、目標位置=推定装置の検出をオンするタイミング、位置決め完了の検出をオンするタイミング、位置による衝突検出をオンするタイミング、電流(FB電流値)による衝突検出をオンするタイミング、及び、衝突検出ステータスをオンするタイミングを示す。
【0120】
但し、(A)において、Pthは第2閾値を示し、(B)において、Ithは第1閾値を示し、(C)において、Tthは衝突判定時間(例えば10ms)を示す。
【0121】
(A)において、時刻T21は移動体27が物体に衝突した時刻を示す。時刻T21での移動体27の位置が現在位置に対応する。また、時刻T23は移動体27の推定位置が目標位置に到達したときの時刻を示す。移動体27の推定位置が目標位置に到達したときに、移動体27の推定位置と現在位置との差<第2閾値Pthであり、移動体27の現在位置が目標位置に対して位置決め範囲外である。時刻T23では(C)に示す目標位置=推定位置の検出がオンされ、かつ、位置決め完了の検出がオフのままであり、かつ、位置による衝突検出がオンされる。つまり、条件2は満たさず、かつ、条件3を満たす。
【0122】
(B)において、時刻T22はFB電流値が第1閾値Ith超えたときの時刻を示す。時刻T22では(C)に示す電流による衝突検出がオンされる。つまり、条件1を満たす。
【0123】
条件2を満たさず、かつ、条件1、3を満たすと判定した時点、つまり、時刻T23でカウンタが衝突判定時間Tthのカウントを開始する。時刻T24は時刻T23からの経過時間が衝突判定時間Tthに到達したときの時刻を示す。時刻T24では(C)に示す衝突検出ステータスがオンされる。つまり、カウンタのカウント値が衝突判定時間Tthに到達すると、衝突と判定され、(C)に示す衝突検出ステータスがオンされる。
【0124】
上記より、条件1、3を満たす状態が衝突判定時間Tth以上継続した場合に、移動体27が物体に衝突したと判定される。条件1、3を満たした場合に即時衝突検出とすると、誤検出の可能性が残るため、誤検出の可能性をより低減するために、衝突判定時間Tthを設けることが望ましい。
【0125】
図12は、移動体27の現在位置が位置決め範囲外である例と位置決め範囲内である例を模式的に示す図である。
【0126】
図12に示すように、目標位置を中心として位置決め範囲を設定する。位置決め範囲は、ユーザにより予め設定することが可能とされる。図12の例では、目標位置を中心として、-a[mm]~+a[mm]の範囲が位置決め範囲として設定される。位置決め位置1は、(目標位置-a)の位置であり、位置決め位置2は、(目標位置+a)の位置である。
【0127】
一例として、移動体27の移動距離を300[mm]、つまり、目標位置を300[mm]とし、位置決め範囲を-0.1[mm]~+0.1[mm]の範囲とした場合、図12に示す位置決め範囲外の例では、移動体27の現在位置が299[mm]であるとき、残移動量は、300-299=1[mm]となり、1[mm]は0.1[mm]より大きいため、移動中(位置決め未完了)、つまり、位置決め範囲外と判定される。一方、位置決め範囲内の例では、移動体27の現在位置が299.95[mm]であるとき、残移動量は、300-299.95=0.05[mm]となり、0.05[mm]は0.1[mm]より小さいため、移動完了(位置決め完了)、つまり、位置決め範囲内と判定される。
【0128】
次に、図13を参照して、第2の実施形態に係る制御装置10の作用を説明する。
【0129】
図13は、第2の実施形態に係る制御プログラムによる衝突判定処理の流れの一例を示すフローチャートである。
【0130】
まず、制御装置10に対してモータ制御の指示がなされると、CPU11によって制御プログラムが起動され、以下の各処理を実行する。なお、本衝突判定処理は、所定の間隔(例えば、1ms周期)で繰り返し実行される。また、推定位置は、本衝突判定処理の実行周期よりも短い時間間隔(例えば、100μs周期)で算出されている。
【0131】
図13のステップS131では、CPU11が、移動体27の推定位置と現在位置との差[Dn]を算出する。
【0132】
ステップS132では、CPU11が、ステップS131で算出した差[Dn]が第2閾値Pthを超えたか否かを判定する。差[Dn]が第2閾値Pthを超えたと判定した場合(YES:肯定判定の場合)、ステップS133に移行し、差[Dn]が第2閾値Pth以下と判定した場合(NO:否定判定の場合)、ステップS136に移行する。
【0133】
ステップS133では、CPU11が、FB電流値が第1閾値Ithを超えたか否かを判定する。FB電流値が第1閾値Ithを超えたと判定した場合(YES:肯定判定の場合)、ステップS134に移行し、FB電流値が第1閾値Ith以下と判定した場合(NO:否定判定の場合)、ステップS135に移行する。
【0134】
ステップS134では、CPU11が、衝突と判定し、ステップS140に移行する。
【0135】
一方、ステップS135では、CPU11が、非衝突と判定し、ステップS140に移行する。
【0136】
一方、ステップS136では、CPU11が、移動体27の推定位置が目標位置に到達し、かつ、移動体27の現在位置が目標位置に対して位置決め範囲外であるか否かを判定する。移動体27の推定位置が目標位置に到達し、かつ、移動体27の現在位置が目標位置に対して位置決め範囲外であると判定した場合(YES:肯定判定の場合)、ステップS137に移行し、移動体27の推定位置が目標位置に到達しない、又は、移動体27の現在位置が目標位置に対して位置決め範囲内であると判定した場合(NO:否定判定の場合)、ステップS139に移行する。
【0137】
ステップS137では、CPU11が、FB電流値が第1閾値Ithを超えたか否かを判定する。FB電流値が第1閾値Ithを超えたと判定した場合(YES:肯定判定の場合)、ステップS138に移行し、FB電流値が第1閾値Ith以下と判定した場合(NO:否定判定の場合)、ステップS139に移行する。
【0138】
ステップS138では、CPU11が、衝突と判定し、ステップS140に移行する。
【0139】
一方、ステップS139では、CPU11が、非衝突と判定し、ステップS140に移行する。
【0140】
ステップS140では、CPU11が、衝突と判定したか否かを判定する。衝突と判定した場合(YES:肯定判定の場合)、ステップS141に移行し、非衝突と判定した場合(NO:否定判定の場合)、ステップS142に移行する。
【0141】
ステップS141では、CPU11が、衝突検出カウンタのカウント値をインクリメントし、ステップS145に移行する。
【0142】
一方、ステップS142では、CPU11が、衝突検出カウンタのカウント値をデクリメントし、ステップS143に移行する。
【0143】
ステップS143では、CPU11が、衝突検出カウンタのカウント値がゼロ(=0)より小さいか否かを判定する。カウント値がゼロより小さいと判定した場合(YES:肯定判定の場合)、ステップS144に移行し、カウント値がゼロ以上と判定した場合(NO:否定判定の場合)、ステップS145に移行する。
【0144】
ステップS144では、CPU11が、衝突検出カウンタのカウント値に「ゼロ(=0)」を設定し、ステップS145に移行する。
【0145】
ステップS145では、CPU11が、衝突検出カウンタのカウント値が衝突判定時間Tth以上であるか否かを判定する。カウント値が衝突判定時間Tth以上であると判定した場合(YES:肯定判定の場合)、ステップS146に移行し、カウント値が衝突判定時間Tth未満であると判定した場合(NO:否定判定の場合)、ステップS148に移行する。
【0146】
ステップS146では、CPU11が、衝突検出カウンタに「衝突判定時間Tth」を設定する。
【0147】
ステップS147では、CPU11が、衝突検出として、衝突検出ステータスをオンし、本制御プログラムによる衝突判定処理を終了する。
【0148】
一方、ステップS148では、CPU11が、衝突非検出として、衝突検出ステータスをオフし、本制御プログラムによる衝突判定処理を終了する。
【0149】
ここで、速度一定区間では、条件1を満たすか否かによって衝突を検出し、加減速区間では、条件1~3を満たすか否かによって衝突を検出してもよい。
【0150】
また、目標位置を中心とする位置決め範囲(例えば、±0.1mm)は、ユーザ設定可能とされる。位置決め範囲は、第2閾値よりも十分小さくしてもよい。
【0151】
以上説明したように、本実施形態によれば、条件1、3の両方を満たす場合に、移動体が物体に衝突したと判定される。このため、現在位置が目標位置付近(つまり、移動体の推定位置と現在位置との差が小さい場合)であっても、条件1のみで衝突を判定する場合と比較して、精度良く判定することができる。
【0152】
ここで、移動体の減速中など、現在位置が目標位置付近である場合に衝突が発生すると、推定位置が目標位置に達するものの、推定位置がこれ以上変化しないため、推定位置と現在位置との差が小さく、条件2が満たされない場合がある。このとき、条件1が満たされるのは減速中の電流値の増大による場合があるため、衝突が発生したか否かを精度良く検出することができない場合がある。このため、条件3を付加することにより、現在位置が目標位置付近である場合であっても衝突を精度良く検出することができる。したがって、上述の図4を参照して説明した比較例と比較して、衝突検出可能な範囲を更に拡大することができる。この場合も、上述したように、条件3と共に条件1を満たしたときに衝突と判定することで、条件3を満たしたことのみで衝突と判定する場合と比較して、衝突検出の精度を高めることができる。
【0153】
つまり、移動体の減速中など、推定位置が目標位置に達してこれ以上変化しないような場合でも、現在位置が目標位置に対して所定の範囲外であるときは、移動体と物体との衝突が発生したと判定することができる。
【0154】
上記各実施形態の変形例について説明する。具体的に、条件2を考慮することなく、条件1、3のみを満たすか否かを判定してもよい。この場合、衝突判定部123は、モータ22の電流値(FB電流値)が第1閾値を超え、かつ、移動体27の推定位置が目標位置に到達したときに現在位置が目標位置に対して所定の範囲(位置決め範囲)外である場合に、移動体27が物体に衝突したと判定する。
【0155】
尚、上記各実施形態では、条件1を満たすか否かを判定するのに第1閾値と電流検出部127が検出したFB電流値(モータ22のトルクの発生に寄与する電流検出値(例えば、q軸電流検出値))とを比較したが、これに限るものではない。例えば、第1閾値と比較する電流値として、FB電流値に代えて、位置指令値に基づき算出される、トルクの発生に寄与する電流指令値を用いてもよい。より詳細には、電流指令値は、速度制御器116の出力であるトルク電流指令値(例えば、q軸電流指令値Iq)である。
【0156】
以上、各実施形態に係る制御装置を例示して説明した。実施形態は、制御装置の機能をコンピュータに実行させるためのプログラムの形態としてもよい。実施形態は、これらのプログラムを記憶したコンピュータが読み取り可能な非一時的記憶媒体の形態としてもよい。
【0157】
その他、上記実施形態で説明した制御装置の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【0158】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【0159】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【符号の説明】
【0160】
10 制御装置
11 CPU
12 ROM
13 RAM
14 I/O
15 記憶部
16 接続部
20 アクチュエータ
21 エンコーダ
22 モータ
23 出力シャフト
24 カップリング
25 ボールねじ軸
26 ボールねじナット
27 移動体
28 ハウジング
29 電流センサ
100 制御部
101 インバータ部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13