(57)【要約】【課題】主軸位置に対する従軸制御の追従性を向上する。【解決手段】コントローラ（１００）は、現在の主軸のフィードバック位置から算出する現在のフィードバック加速度が、所定期間にわたって一定で継続すると仮定して、未来の主軸のフィードバック位置を予測する。【選択図】図１
2020005385.tif 000002
【特許請求の範囲】
【請求項１】
主軸の位置に対して従軸の位置を追従させる制御装置であって、
（Ａ）前記主軸の位置をフィードバック制御する第１サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、（Ｂ）前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来における前記主軸フィードバック位置を予測する予測部と、
前記予測部により予測された未来における前記主軸フィードバック位置に対応する、前記従軸の位置である対応従属位置を演算する演算部と、
前記従軸の位置をフィードバック制御する第２サーボ制御系の動特性モデルを用いて予測する、未来における前記従軸の予測位置が、前記演算部により演算された前記対応従属位置に一致するように、前記第２サーボ制御系に対する現在における指令値である従軸指令値を生成する従軸指令部と、
を備えることを特徴とする制御装置。
【請求項２】
前記制御装置は、前記主軸の位置に対して前記従軸の位置を追従させ、
前記予測部は、各周期における前記主軸フィードバック位置の加速度が、複数の周期にわたって一定であると仮定して、現在および過去の各周期における前記主軸フィードバック位置を用いて、未来の周期における前記主軸フィードバック位置を予測する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御装置は、前記主軸の位置に対して前記従軸の位置を追従させ、
前記予測部は、各周期における前記主軸指令位置と前記主軸フィードバック位置との偏差である前記位置偏差の、時間に対する変化率が、複数の周期にわたって一定であると仮定して、（Ｃ）現在および過去の各周期における前記主軸フィードバック位置と、（Ｄ）過去、現在、および、未来の各周期における前記主軸指令位置と、を用いて、未来の周期における前記主軸フィードバック位置を予測する
ことを特徴とする請求項１に記載の制御装置。
【請求項４】
前記第１サーボ制御系の動特性モデルを用いて予測する未来における前記主軸の予測位置が、未来における前記主軸指令位置に一致するように、前記第１サーボ制御系に対する現在における指令値である指令主軸値を生成する主軸指令部をさらに備える
ことを特徴とする請求項１から３のいずれか１項に記載の制御装置。
【請求項５】
前記予測部により予測された未来における前記主軸フィードバック位置を監視する監視部をさらに備える
ことを特徴とする請求項１から４のいずれか１項に記載の制御装置。
【請求項６】
前記主軸は電子カムの主軸であり、前記従軸は前記電子カムの従軸であり、
前記演算部は、前記予測部により予測された未来における前記電子カムの主軸の位相に対応する、前記電子カムの従軸の位置を演算するカム演算部である
ことを特徴とする請求項１から５のいずれか１項に記載の制御装置。
【請求項７】
主軸の位置に対して従軸の位置を追従させる制御装置の制御方法であって、
（Ａ）前記主軸の位置をフィードバック制御する第１サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、（Ｂ）前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来における前記主軸フィードバック位置を予測する予測ステップと、
前記予測ステップにて予測された未来における前記主軸フィードバック位置に対応する、前記従軸の位置である対応従属位置を演算する演算ステップと、
前記従軸の位置をフィードバック制御する第２サーボ制御系の動特性モデルを用いて予測する、未来における前記従軸の予測位置が、前記演算ステップにて演算された前記対応従属位置に一致するように、前記第２サーボ制御系に対する現在における指令値である従軸指令値を生成する従軸指令ステップと、
を含むことを特徴とする制御方法。
【請求項８】
請求項１から６のいずれか一項に記載の制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
【請求項９】
請求項８に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主軸の位置に対して従軸の位置を追従させる制御装置等に関する。
【背景技術】
【０００２】
主軸位置に対して従軸位置を追従させる制御において、従軸の制御の追従性を向上させるためには、従軸の未来の指令値を予測するのが有効である。そこで従来、従軸の未来の指令値を予測するために主軸の未来のフィードバック値を予測する試みが知られている。
【０００３】
例えば、下掲の特許文献１には、主軸モータに同期して従属軸モータを駆動する同期制御装置であって、主軸装置の動特性モデルを利用して、未来の主軸位置増分値の予測値を求める構成が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２８９７８８（１９９７年１１月４日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のような従来技術には、「主軸の未来のフィードバック値」の予測が必要になるのは、「主軸装置の動特性モデル」を用いて行う予測の精度が低い状況であるとの問題がある。すなわち、「主軸装置の動特性モデル」の利用には、外乱がなく、かつ、「主軸装置の動特性モデル」の特性変動がないとの前提が必要とされる。このような前提があり、かつ、動特性モデルによる予測の精度が高いのであれば、その動特性モデルを主軸の制御に用いることで、主軸のフィードバック値を主軸の指令値に高精度に追従させることができるはずである。そして、主軸のフィードバック値を主軸の指令値に高精度に追従させることができるのであれば、そもそも「主軸の未来のフィードバック値」を予測する必要はなく、「主軸の未来の指令値」から「従軸の未来の指令値」を計算すればよいと考えられる。
【０００６】
本発明の一態様は、主軸位置に対する従軸制御の追従性を向上することであり、例えば、従軸制御に適用するモデル予測制御の性能を十分に発揮させるため、主軸の未来のフィードバック値を予測して、対応する従軸の未来の指令値を予測することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明の一態様に係る制御装置は、主軸の位置に対して従軸の位置を追従させる制御装置であって、（Ａ）前記主軸の位置をフィードバック制御する第１サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、（Ｂ）前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来における前記主軸フィードバック位置を予測する予測部と、前記予測部により予測された未来における前記主軸フィードバック位置に対応する、前記従軸の位置である対応従属位置を演算する演算部と、前記従軸の位置をフィードバック制御する第２サーボ制御系の動特性モデルを用いて予測する、未来における前記従軸の予測位置が、前記演算部により演算された前記対応従属位置に一致するように、前記第２サーボ制御系に対する現在における指令値である従軸指令値を生成する従軸指令部と、を備えることを特徴としている。
【０００８】
前記の構成によれば、前記制御装置は、未来における前記主軸フィードバック位置を、（１）前記主軸フィードバック位置の現在における加速度が所定期間にわたって一定のまま継続すると仮定して、または、（２）前記位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、予測する。
【０００９】
特に、前記制御装置は、前記第１サーボ制御系の動特性モデルを用いずに予測した前記主軸の未来のフィードバック位置から、前記主軸の未来のフィードバック位置に対応する、前記従軸の未来の位置である対応従属位置を演算する。そして、前記制御装置は、演算した前記対応従属位置を前記従軸の未来の指令値（指令位置）とする、前記第２サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。つまり、前記制御装置は、未来における前記主軸フィードバック位置を予測し、予測した「未来における前記主軸フィードバック位置」に対応する「前記従軸の未来の指令値」を用いたモデル予測制御を、前記従軸の制御に適用する。
【００１０】
したがって、前記制御装置は、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、前記制御装置は、前記制御装置によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
【００１１】
本発明の一態様に係る制御装置は、前記主軸の位置に対して前記従軸の位置を追従させ、前記予測部は、各周期における前記主軸フィードバック位置の加速度が、複数の周期にわたって一定であると仮定して、現在および過去の各周期における前記主軸フィードバック位置を用いて、未来の周期における前記主軸フィードバック位置を予測してもよい。
【００１２】
前記の構成によれば、前記制御装置は、現在および過去の各周期における前記主軸フィードバック位置を用いて、未来の周期における前記主軸フィードバック位置を予測する。
【００１３】
例えば、前記制御装置は、現在の周期における前記主軸フィードバック位置と、現在から１周期前の周期における前記主軸フィードバック位置との差を、前記周期の時間間隔である周期時間で除して、現在の周期における前記第１サーボ制御系のフィードバック速度を算出する。
【００１４】
また、前記制御装置は、現在から１周期前の周期における前記主軸フィードバック位置と、現在から２周期前の周期における前記主軸フィードバック位置との差を、前記周期時間で除して、現在から１周期前の周期における前記第１サーボ制御系のフィードバック速度を算出する。
【００１５】
そして、前記制御装置は、前記第１サーボ制御系の現在の周期におけるフィードバック速度と、現在から１周期前の周期におけるフィードバック速度との差を、前記周期時間で除して、現在の周期における前記第１サーボ制御系のフィードバック加速度を算出する。
【００１６】
前記制御装置は、算出した「現在の周期における前記第１サーボ制御系のフィードバック加速度」が未来の周期においても一定で継続すると仮定して、前記周期時間、「前記第１サーボ制御系の現在の周期におけるフィードバック加速度」、「前記第１サーボ制御系の現在の周期におけるフィードバック速度」、および、「前記第１サーボ制御系の現在の周期における前記主軸フィードバック位置」から、未来の周期における前記主軸フィードバック位置を予測する。
【００１７】
そして、前記制御装置は、予測した「未来の周期における前記主軸フィードバック位置」に対応する、前記従軸の未来の位置である対応従属位置を演算する。前記制御装置は、演算した前記対応従属位置を前記従軸の未来の指令値（指令位置）とする、前記第２サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。つまり、前記制御装置は、前記従軸の制御に適用する前記モデル予測制御に、現在および過去の前記主軸フィードバック位置を用いて予測した「未来の前記主軸フィードバック位置」に対応する、前記従軸の未来の指令値（前記対応従属位置）を用いる。
【００１８】
したがって、前記制御装置は、主軸の位置に対して従軸の位置を追従させる制御装置において、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【００１９】
本発明の一態様に係る制御装置は、前記主軸の位置に対して前記従軸の位置を追従させ、前記予測部は、各周期における前記主軸指令位置と前記主軸フィードバック位置との偏差である前記位置偏差の、時間に対する変化率が、複数の周期にわたって一定であると仮定して、（Ｃ）現在および過去の各周期における前記主軸フィードバック位置と、（Ｄ）過去、現在、および、未来の各周期における前記主軸指令位置と、を用いて、未来の周期における前記主軸フィードバック位置を予測してもよい。
【００２０】
前記の構成によれば、前記制御装置は、（Ｃ）現在および過去の各周期における前記主軸フィードバック位置と、（Ｄ）過去、現在、および、未来の各周期における前記主軸指令位置と、を用いて、未来の周期における前記主軸フィードバック位置を予測する。
【００２１】
例えば、前記制御装置は、現在の周期における前記主軸指令位置と前記主軸フィードバック位置との差から、現在の周期における前記位置偏差を算出する。また、前記制御装置は、現在から１周期前の周期における前記主軸指令位置と前記主軸フィードバック位置との差から、現在から１周期前の周期における前記位置偏差を算出する。
【００２２】
そして、前記制御装置は、現在の周期における前記位置偏差と、現在から１周期前の周期における位置偏差との差を、前記周期の時間間隔である周期時間で除して、「現在の周期における、前記位置偏差の時間に対する変化（率）」を示す、「現在の周期における位置偏差変化率」を算出する。
【００２３】
前記制御装置は、算出した「現在の周期における位置偏差変化率」が未来の周期においても一定で継続すると仮定して、前記周期時間、「現在の周期における位置偏差変化率」、および、「現在の周期における位置偏差」から、「未来の周期における前記位置偏差」を算出する。
【００２４】
そして、前記制御装置は、「未来の周期における主軸指令位置」と、算出した「未来の周期における前記位置偏差」との差から、「未来の周期における前記主軸フィードバック位置」を予測する。
【００２５】
前記制御装置は、予測した「未来の周期における前記主軸フィードバック位置」に対応する、前記従軸の未来の位置である対応従属位置を演算する。前記制御装置は、演算した前記対応従属位置を前記従軸の未来の指令値（指令位置）とする、前記第２サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。つまり、前記制御装置は、前記従軸の制御に適用する前記モデル予測制御に、「現在および過去の前記主軸フィードバック位置」と、「過去、現在、および、未来の前記主軸指令位置」とを用いて予測した「未来の前記主軸フィードバック位置」に対応する、前記従軸の未来の指令値（前記対応従属位置）を用いる。
【００２６】
したがって、前記制御装置は、主軸の位置に対して従軸の位置を追従させる制御装置において、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【００２７】
本発明の一態様に係る制御装置は、前記第１サーボ制御系の動特性モデルを用いて予測する未来における前記主軸の予測位置が、未来における前記主軸指令位置に一致するように、前記第１サーボ制御系に対する現在における指令値である指令主軸値を生成する主軸指令部をさらに備えてもよい。
【００２８】
前記の構成によれば、前記制御装置は、前記第１サーボ制御系の動特性モデルを用いて予測する未来における前記主軸の予測位置が、未来における前記主軸指令位置に一致するように、前記第１サーボ制御系に対する現在における指令主軸値を生成する。
【００２９】
したがって、前記制御装置は、前記第１サーボ制御系の動特性モデルを用いたモデル予測制御を前記主軸の位置の制御に適用することによって、前記主軸の位置制御について、追従性を向上させることができるとの効果を奏する。
【００３０】
特に、未来における前記主軸指令位置を用いて未来における前記主軸フィードバック位置を予測する場合、前記主軸の位置の制御には、高い追従性が求められる。そこで、前記制御装置は、前記第１サーボ制御系の動特性モデルを用いたモデル予測制御を前記主軸の位置の制御に適用することによって、前記主軸の位置制御について、追従性を向上させる。
【００３１】
したがって、前記制御装置は、モデル予測制御によって前記主軸の位置制御の追従性を向上させ、かつ、未来における前記主軸指令位置を用いて予測した未来における前記主軸フィードバック位置を用いて前記従軸の位置制御の追従性を向上させることができるとの効果を奏する。
【００３２】
本発明の一態様に係る制御装置は、前記予測部により予測された未来における前記主軸フィードバック位置を監視する監視部をさらに備えてもよい。
【００３３】
前記の構成によれば、前記制御装置は、予測した「未来における前記主軸フィードバック位置」を監視し、例えば、予測した「未来における前記主軸フィードバック位置」の変動を検知する。
【００３４】
したがって、前記制御装置は、予測した「未来における前記主軸フィードバック位置」を監視し、例えばその変動を検知することによって、変動にみられる傾向性および急激な変動の発生等を把握することができるとの効果を奏する。
【００３５】
本発明の一態様に係る制御装置において、前記主軸は電子カムの主軸であり、前記従軸は前記電子カムの従軸であり、前記演算部は、前記予測部により予測された未来における前記電子カムの主軸の位相に対応する、前記電子カムの従軸の位置を演算するカム演算部であってもよい。
【００３６】
前記の構成によれば、前記制御装置は、予測した未来における前記電子カムの主軸の位相に対応する、前記電子カムの従軸の位置を演算する。
【００３７】
ここで、前記制御装置は、未来における前記電子カムの主軸のフィードバック位置（フィードバック位相）を、（１）前記電子カムの主軸をフィードバック制御する前記第１サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、（２）前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、予測する。
【００３８】
つまり、前記制御装置は、前記電子カムの未来の主軸の位置を前記第１サーボ制御系の動特性モデルを用いずに予測し、予測した前記電子カムの未来の主軸の位置に対応する、前記電子カムの未来の従軸の位置（対応従属位置）を演算する。そして、前記制御装置は、演算した対応従属位置を用いて、前記電子カムの従軸の位置を制御する。具体的には、前記制御装置は、未来における前記主軸フィードバック位置を予測し、予測した「未来における前記主軸フィードバック位置」に対応する「前記従軸の未来の指令値」を用いたモデル予測制御を、前記従軸の制御に適用する。
【００３９】
したがって、前記制御装置は、前記電子カムの主軸の位置（位相）に対して前記電子カムの従軸の位置を追従させる制御装置において、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【００４０】
特に、前記制御装置は、前記第１サーボ制御系の動特性モデルを用いずに予測した前記電子カムの主軸の未来のフィードバック位置から、対応する「前記電子カムの従軸の未来の位置である、対応従属位置」を演算する。そして、前記制御装置は、演算した対応従属位置（前記未来における前記従軸の位置）を前記従軸の未来の指令値（指令位置）とする、前記第２サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。したがって、前記制御装置は、前記電子カムの従軸の位置制御について、追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【００４１】
上記の課題を解決するために、本発明の一態様に係る制御方法は、主軸の位置に対して従軸の位置を追従させる制御装置の制御方法であって、（Ａ）前記主軸の位置をフィードバック制御する第１サーボ制御系の、前記主軸のフィードバック位置である主軸フィードバック位置の現在における加速度が、所定期間にわたって一定のまま継続すると仮定して、または、（Ｂ）前記主軸の目標軌道から生成される指令位置である主軸指令位置と前記主軸フィードバック位置との偏差である位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来における前記主軸フィードバック位置を予測する予測ステップと、前記予測ステップにて予測された未来における前記主軸フィードバック位置に対応する、前記従軸の位置である対応従属位置を演算する演算ステップと、前記従軸の位置をフィードバック制御する第２サーボ制御系の動特性モデルを用いて予測する、未来における前記従軸の予測位置が、前記演算ステップにて演算された前記対応従属位置に一致するように、前記第２サーボ制御系に対する現在における指令値である従軸指令値を生成する従軸指令ステップと、を含むことを特徴としている。
【００４２】
前記の方法によれば、前記制御方法は、未来における前記主軸フィードバック位置を、（１）前記主軸フィードバック位置の現在における加速度が所定期間にわたって一定のまま継続すると仮定して、または、（２）前記位置偏差の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、予測する。
【００４３】
特に、前記制御方法は、前記第１サーボ制御系の動特性モデルを用いずに予測した前記主軸の未来のフィードバック位置から、前記主軸の未来のフィードバック位置に対応する、前記従軸の未来の位置である対応従属位置を演算する。そして、前記制御方法は、演算した前記対応従属位置を前記従軸の未来の指令値（指令位置）とする、前記第２サーボ制御系の動特性モデルを用いたモデル予測制御を、前記従軸の制御に適用する。つまり、前記制御方法は、未来における前記主軸フィードバック位置を予測し、予測した「未来における前記主軸フィードバック位置」に対応する「前記従軸の未来の指令値」を用いたモデル予測制御を、前記従軸の制御に適用する。
【００４４】
したがって、前記制御方法は、前記従軸の位置制御について追従性を向上させ、前記従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、前記制御方法は、前記制御方法によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
【発明の効果】
【００４５】
本発明の一態様によれば、主軸位置に対して従軸位置を追従させる制御装置等において、前記主軸位置に対する前記従軸の位置制御の追従性を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施形態１に係るコントローラ等の要部構成を示すブロック図である。
【図２】図１のコントローラが実行する処理の概要を示すフロー図である。
【図３】本発明の実施形態２に係るコントローラ等の要部構成を示すブロック図である。
【図４】図３のコントローラが実行する処理の概要を示すフロー図である。
【図５】本発明の実施形態３に係るコントローラ等の要部構成を示すブロック図である。
【図６】シミュレーション１において主軸の制御に印加する外乱を示す図である。
【図７】図６の外乱を印加した場合に、従来のコントローラおよび各実施形態に係るコントローラが実現する従軸制御について説明する図である。
【図８】シミュレーション２において主軸の制御に印加する外乱を示す図である。
【図９】図８の外乱を印加した場合に、従来のコントローラおよび各実施形態に係るコントローラが実現する従軸制御について説明する図である。
【発明を実施するための形態】
【００４７】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。以下の各実施形態においては、機械および設備等の制御対象を制御するコントローラ１００、５００、および９００の各々を、制御装置の典型例として説明を行う。コントローラ１００、５００、および９００は各々、例えばＰＬＣ（プログラマブル・ロジック・コントローラ、Programmable Logic Controller）である。以下では、コントローラ１００、５００、および９００について、各々の構成および各々の装置が実行する処理について、実施形態１、２、および３において説明し、その後、各々の装置が奏する効果について、図６から図９を用いて後述する。
【００４８】
〔実施形態１〕
先ず、コントローラ１００の構成、および、コントローラ１００が実行する処理について、以下、図１および図２を参照しながら説明していく。
【００４９】
§１．適用例
コントローラ１００は、主軸の位置に対して、従軸の位置を追従させる制御を実行する制御装置である。コントローラ１００は、従軸の制御について、モデル予測制御（Model Predictive Control、以下では「ＭＰＣ」と略記する）を適用し、従軸の制御の追従性を向上させている。
【００５０】
ここで、従軸の制御にＭＰＣを適用する場合、従軸の未来の指令値を予め取得できなければ、ＭＰＣを適用することによる十分な効果を期待できない。そこで、コントローラ１００は、主軸の未来のフィードバック（Feed Back、以下「ＦＢ」と略記する）値を予測し、予測した主軸の未来のＦＢ値に対応する、従軸の未来の指令値を演算し、つまり、予測した主軸の未来のＦＢ値から従軸の未来の指令値を予測する。そして、コントローラ１００は、予測した「従軸の未来の指令値」を用いるＭＰＣを従軸の制御に適用することによって、従軸の制御の追従性を十分に向上させる。コントローラ１００は、主軸に対する従軸の追従性を向上させることによって、コントローラ１００によって制御する機械の動作をより高速化することができ、これらの機械を用いた生産現場の生産性の向上に寄与することができる。なお、以下の説明においては、コントローラ１００を電子カム制御に適用する例を説明する。ただし、コントローラ１００の適用例は、電子カム制御に限られるものではなく、「主軸の位置に対して、従軸の位置を追従させる制御」であればよい。以下、図１および図２を用いて、コントローラ１００の詳細について説明していく。
【００５１】
§２．構成例
図１は、コントローラ１００等の要部構成を示すブロック図である。以下、コントローラ１００についての理解を容易にするため、先ず、コントローラ１００を含む制御システム１の概要について説明する。
【００５２】
（制御システムの概要）
図１に例示する制御システム１は、上位コントローラであるコントローラ１００と、コントローラ１００により制御される主軸サーボ系２００および従軸サーボ系３００と、を含む。
【００５３】
主軸サーボ系２００は、主軸サーボドライバ２１０と、主軸サーボドライバ２１０によって駆動を制御される機械２４０（例えば、モータおよびメカ）と、を含むフィードバック制御系である。同様に、従軸サーボ系３００は、従軸サーボドライバ３１０と、従軸サーボドライバ３１０によって駆動を制御される機械３３０（例えば、モータおよびメカ）と、を含むフィードバック制御系である。コントローラ１００と、主軸サーボドライバ２１０および従軸サーボドライバ３１０の各々とは通信可能に接続されており、その接続方式は、任意の有線接続方式または無線接続方式である。
【００５４】
主軸サーボ系２００において、主軸サーボドライバ２１０は、コントローラ１００から所定の制御周期（主軸側制御周期）ごとに受け付ける「主軸についての指令値」に従って、機械２４０の出力（つまり、主軸の位置）を制御するフィードバック制御装置である。機械２４０の出力は、主軸位置のＦＢ値（以下、「ＦＢ位置（主軸）」とも称する）として、主軸サーボドライバ２１０およびコントローラ１００の各々へ入力される。
【００５５】
主軸サーボドライバ２１０は、コントローラ１００からの「主軸についての指令値（例、指令位置（主軸））」を目標値とし、実測値（例、ＦＢ位置（主軸））をフィードバック値として、機械２４０にフィードバック制御を行う。すなわち、主軸サーボドライバ２１０は、実測値が目標値に近づくように、機械２４０（特に、機械２４０が含むサーボモータ）を駆動するための電流を調整する。なお、主軸サーボドライバ２１０は、サーボモータアンプと称されることもある。
【００５６】
図１の主軸サーボドライバ２１０は、比例制御（Ｐ制御）を行う位置制御部２２０と、比例積分制御（ＰＩ制御）を行なう速度制御部２３０とを備え、コントローラ１００から「主軸についての指令位置（以下、「指令位置（主軸）」とも称する）」を受信する。位置制御部２２０は、コントローラ１００から受け付けた指令位置（主軸）と、エンコーダ等によって取得するＦＢ位置（主軸）との偏差である位置偏差から、指令速度を出力する。速度制御部２３０は、位置制御部２２０が出力する指令速度と、ＦＢ位置（主軸）を微分して算出したＦＢ速度（主軸）との偏差である速度偏差（主軸）から、指令トルク（主軸）を生成する。主軸サーボドライバ２１０は、生成した指令トルク（主軸）に基づいて、機械２４０を制御する。
【００５７】
従軸サーボ系３００において、従軸サーボドライバ３１０は、コントローラ１００から所定の制御周期（従軸側制御周期）ごとに受け付ける「従軸についての指令値」に従って、機械３３０の出力（つまり、従軸の位置）を制御するフィードバック制御装置である。機械３３０の出力は、従軸位置のＦＢ値（以下、「ＦＢ位置（従軸）」とも称する）として、従軸サーボドライバ３１０およびコントローラ１００の各々へ入力される。
【００５８】
従軸サーボドライバ３１０は、コントローラ１００からの「従軸についての指令値（例、指令速度（従軸））」を目標値とし、実測値（例、ＦＢ位置（従軸）を時間微分したＦＢ速度（従軸））をフィードバック値として、機械３３０にフィードバック制御を行う。すなわち、従軸サーボドライバ３１０は、実測値が目標値に近づくように、機械３３０（特に、機械３３０が含むサーボモータ）を駆動するための電流を調整する。なお、従軸サーボドライバ３１０は、サーボモータアンプと称されることもある。
【００５９】
図１の従軸サーボドライバ３１０は、比例積分制御（ＰＩ制御）を行なう速度制御部３２０を備え、コントローラ１００から「従軸についての指令速度（以下、「指令速度（従軸）」とも称する）」を受信する。速度制御部３２０は、コントローラ１００から受け付けた指令速度（従軸）と、エンコーダ等によって取得するＦＢ位置（従軸）を微分して算出したＦＢ速度（従軸）との偏差である速度偏差（従軸）から、指令トルク（従軸）を生成する。従軸サーボドライバ３１０は、生成した指令トルク（従軸）に基づいて、機械３３０を制御する。
【００６０】
コントローラ１００（制御装置）は、主軸サーボ系２００および従軸サーボ系３００を含む制御システム１の全体を制御し、例えば、プログラマブルコントローラ（ＰＬＣ、Programmable Logic Controller）である。
【００６１】
コントローラ１００は、主軸サーボ系２００および従軸サーボ系３００に各々に指令値を出力して、主軸サーボ系２００および従軸サーボ系３００の各々を制御する。コントローラ１００は、例えば、主軸側制御周期ごとに、主軸についての指令位置である「指令位置（主軸）」を主軸サーボ系２００に出力して、主軸サーボ系２００を制御する。
【００６２】
また、コントローラ１００は、例えば、従軸側制御周期ごとに、従軸についての指令速度である「指令速度（従軸）」を従軸サーボ系３００に出力して、従軸サーボ系３００を制御する。コントローラ１００は、従軸サーボ系３００の動特性モデルを用いるＭＰＣを、従軸サーボ系３００の制御に適用する。
【００６３】
コントローラ１００の主軸サーボ系２００に対する制御周期（主軸側制御周期）と、コントローラ１００の従軸サーボ系３００に対する制御周期（従軸側制御周期）とは、同じであってもよいし、同じ時間でなくともよい。例えば、従軸側制御周期は主軸側制御周期よりも短くてもよく、つまり、従軸側制御周期は主軸側制御周期よりも速くてもよい。なお、主軸側制御周期の長さ（時間間隔）は、従軸側制御周期の長さ（時間間隔）の整数倍であるのが望ましい。なお、以下の説明においては、主軸側制御周期と従軸側制御周期とが同じ時間間隔である例について説明する。
【００６４】
コントローラ１００は、主軸サーボ系２００および従軸サーボ系３００からＦＢ値を取得して、主軸サーボ系２００および従軸サーボ系３００の制御に利用する。コントローラ１００は、例えば、機械２４０の出力（つまり、主軸の位置）であるＦＢ位置（主軸）を主軸サーボ系２００から取得し、主軸サーボ系２００および従軸サーボ系３００の制御に利用する。また、コントローラ１００は、例えば、機械３３０の出力（つまり、従軸の位置）であるＦＢ位置（従軸）を従軸サーボ系３００から取得し、従軸サーボ系３００の制御に利用する。
【００６５】
ここで、コントローラ１００は、従軸サーボ系３００の制御に、従軸サーボ系３００の動特性モデルを用いるＭＰＣを適用する。具体的には、コントローラ１００は、従軸サーボ系３００の動特性モデルを用いて予測する未来のＦＢ位置（従軸）が、「従軸の未来の指令値」に一致するよう、現在の指令速度（従軸）を生成する。特に、コントローラ１００は、現在の制御周期および過去の制御周期の各々におけるＦＢ位置（主軸）から、未来の制御周期におけるＦＢ位置（主軸）を予測する。そして、コントローラ１００は、予測した「未来の制御周期におけるＦＢ位置（主軸）」に対応する「従軸の未来の指令値（＝未来の制御周期における従軸の指令位置）」を用いて、従軸（＝従軸サーボ系３００）に対するＭＰＣを実行する。
【００６６】
（コントローラの概要）
これまで、制御システム１の概要を説明してきた。次に、コントローラ１００についての理解を容易にするため、コントローラ１００の概要を以下のように整理しておく。
【００６７】
すなわち、コントローラ１００は、主軸の過去と現在のＦＢ値のみを用いて、主軸の未来のＦＢ値を予測する。すなわち、コントローラ１００は、主軸の現在および過去の周期におけるＦＢ位置（主軸）を用いて、現在の周期のＦＢ位置（主軸）の加速度が一定で継続すると仮定して、未来の周期におけるＦＢ位置（主軸）を予測する。そして、コントローラ１００は、予測した主軸の未来のＦＢ値（つまり、未来の周期におけるＦＢ位置（主軸））に対応する、従軸の未来の指令値（つまり、未来の周期における指令位置（従軸）。「対応従属位置」とも称する）を演算する。コントローラ１００は、演算した対応従属位置（＝未来の周期における指令位置（従軸））を入力として、従軸サーボ系３００の動特性モデルを用いたＭＰＣを従軸の制御に適用し、つまり、従軸サーボ系３００についてＭＰＣを実行する。
【００６８】
具体的には、コントローラ１００は、主軸の位置に対して従軸の位置を追従させる制御装置であって、第１予測部１２０（予測部）と、カム演算部１３０（演算部）と、ＭＰＣ部１４０（従軸指令部）と、を備えている。第１予測部１２０は、「主軸の位置をフィードバック制御する主軸サーボ系２００（第１サーボ制御系）の、主軸のフィードバック位置であるＦＢ位置（主軸）の現在における加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるＦＢ位置（主軸）を予測する。カム演算部１３０は、第１予測部１２０により予測された「未来におけるＦＢ位置（主軸）」に対応する「従軸の位置」である対応従属位置を演算する。ＭＰＣ部１４０は、従軸の位置をフィードバック制御する従軸サーボ系３００（第２サーボ制御系）の動特性モデルを用いて予測する「未来における従軸の予測位置」が、カム演算部１３０により演算された「未来における対応従属位置」に一致するように、従軸サーボ系３００に対する現在における指令値である従軸指令値を生成する。
【００６９】
前記の構成によれば、コントローラ１００は、「ＦＢ位置（主軸）の現在における加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるＦＢ位置（主軸）を予測する。例えば、コントローラ１００は、「現在のＦＢ位置（主軸）」から算出する「現在のＦＢ加速度（主軸）」が、所定期間にわたって一定のまま継続すると仮定して、未来におけるＦＢ位置（主軸）を予測する。
【００７０】
特に、コントローラ１００は、主軸サーボ系２００の動特性モデルを用いずに予測した未来のＦＢ位置（主軸）から、未来のＦＢ位置（主軸）に対応する、従軸の未来の位置である対応従属位置を演算する。そして、コントローラ１００は、演算した対応従属位置（未来の従軸の位置）を従軸の未来の指令値（指令位置）とする、従軸サーボ系３００の動特性モデルを用いたＭＰＣを、従軸の制御に適用する。つまり、コントローラ１００は、未来におけるＦＢ位置（主軸）を予測し、予測した「未来におけるＦＢ位置（主軸）」に対応する「対応従属位置（従軸の未来の指令値、未来の周期における指令位置（従軸））」を用いたＭＰＣを、従軸の制御に適用する。
【００７１】
したがって、コントローラ１００は、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、コントローラ１００は、コントローラ１００によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
【００７２】
コントローラ１００は、例えば、主軸の位置に対して従軸の位置を追従させる。コントローラ１００において、第１予測部１２０は、「各周期（各主軸側制御周期）におけるＦＢ位置（主軸）の加速度が、複数の周期（主軸側制御周期）にわたって一定である」と仮定して、現在および過去の各周期（各主軸側制御周期）におけるＦＢ位置（主軸）を用いて、未来の周期（主軸側制御周期）におけるＦＢ位置（主軸）を予測する。
【００７３】
前記の構成によれば、コントローラ１００は、現在および過去の各周期（各主軸側制御周期）におけるＦＢ位置（主軸）を用いて、未来の周期（主軸側制御周期）におけるＦＢ位置（主軸）を予測する。
【００７４】
例えば、コントローラ１００は、現在の周期（主軸側制御周期）におけるＦＢ位置（主軸）と、現在から１周期前の周期（主軸側制御周期）におけるＦＢ位置（主軸）との差を、周期（主軸側制御周期）の時間間隔である周期時間で除して、現在の周期（主軸側制御周期）における主軸サーボ系２００のフィードバック速度（ＦＢ速度（主軸））を算出する。同様に、コントローラ１００は、現在から１周期前の周期におけるＦＢ位置（主軸）と、現在から２周期前の周期におけるＦＢ位置（主軸）との差を、前記周期時間で除して、現在から１周期前の周期におけるＦＢ速度（主軸）を算出する。
【００７５】
そして、コントローラ１００は、現在の周期におけるＦＢ速度（主軸）と、現在から１周期前の周期におけるＦＢ速度（主軸）との差を、前記周期時間で除して、現在の周期における主軸サーボ系２００のフィードバック加速度（ＦＢ加速度（主軸））を算出する。
【００７６】
コントローラ１００は、算出した「現在の周期におけるＦＢ加速度（主軸）」が未来の周期においても一定で継続すると仮定して、前記周期時間、「現在の周期におけるＦＢ加速度（主軸）」、「現在の周期におけるＦＢ速度（主軸）」、および、「現在の周期におけるＦＢ位置（主軸）」から、未来の周期におけるＦＢ位置（主軸）を予測する。
【００７７】
そして、コントローラ１００は、予測した「未来の周期におけるＦＢ位置（主軸）」に対応する、未来の周期における従軸の位置（つまり、指令位置（従軸））である対応従属位置を演算する。コントローラ１００は、演算した対応従属位置を「未来の従軸の指令値（指令位置（従軸））」とする、従軸サーボ系３００の動特性モデルを用いたＭＰＣを、従軸の制御に適用する。つまり、コントローラ１００は、従軸の制御に適用するＭＰＣに、現在および過去のＦＢ位置（主軸）を用いて予測した「未来のＦＢ位置（主軸）」に対応する「未来の指令位置（従軸）（つまり、対応従属位置）」を用いる。
【００７８】
したがって、コントローラ１００は、主軸の位置に対して従軸の位置を追従させる制御装置において、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【００７９】
コントローラ１００は、第１予測部１２０により予測された未来におけるＦＢ位置（主軸）を監視する監視部１５０を備えている。前記の構成によれば、コントローラ１００は、予測した未来におけるＦＢ位置（主軸）を監視し、例えば、予測した未来における前記ＦＢ位置（主軸）の変動を検知する。したがって、コントローラ１００は、予測した未来におけるＦＢ位置（主軸）を監視し、例えばその変動を検知することによって、変動にみられる傾向性および急激な変動の発生等を把握することができるとの効果を奏する。
【００８０】
制御システム１（コントローラ１００）において、例えば、主軸は電子カムの主軸であり、従軸は電子カムの従軸である。カム演算部１３０は、例えば、第１予測部１２０により予測された「未来における電子カムの主軸の位相」に対応する、「未来における電子カムの従軸の位置」を演算する。
【００８１】
前記の構成によれば、コントローラ１００は、予測した未来における電子カムの主軸の位相に対応する、未来における電子カムの従軸の位置を演算する。
【００８２】
ここで、コントローラ１００は、「電子カムの主軸のＦＢ位相であるＦＢ位置（主軸）の加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来における電子カムの主軸のＦＢ位置（ＦＢ位相）を予測する。つまり、コントローラ１００は、電子カムの未来の主軸の位置を主軸サーボ系２００の動特性モデルを用いずに予測する。そして、コントローラ１００は、予測した「電子カムの未来の主軸の位置」に対応する、「電子カムの未来の従軸の位置（対応従属位置）」を演算する。コントローラ１００は、演算した対応従属位置を用いて、電子カムの従軸の位置を制御する（具体的には、電子カムの従軸の位置制御に、ＭＰＣを適用する）。コントローラ１００は、未来におけるＦＢ位置（主軸）を予測し、予測した「未来におけるＦＢ位置（主軸）」に対応する「電子カムの従軸の未来の指令値」を用いたＭＰＣを、従軸の制御に適用する。
【００８３】
したがって、コントローラ１００は、電子カムの主軸の位置（位相）に対して電子カムの従軸の位置を追従させる制御装置において、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【００８４】
特に、コントローラ１００は、主軸サーボ系２００の動特性モデルを用いずに予測した電子カムの主軸の未来のフィードバック位置から、対応する「電子カムの従軸の未来の位置である、対応従属位置」を演算する。そして、コントローラ１００は、演算した対応従属位置（未来における従軸の位置）を「従軸の未来の指令値（指令位置）」とする、従軸サーボ系３００の動特性モデルを用いたＭＰＣを、従軸の制御に適用する。したがって、コントローラ１００は、電子カムの従軸の位置制御について、追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【００８５】
これまでに概要を整理してきたコントローラ１００について、次に、その構成等の詳細について、図１を用いて説明していく。
【００８６】
（コントローラの詳細）
図１に示すように、コントローラ１００は、機能ブロックとして、指令値生成部１１０、第１予測部１２０、カム演算部１３０、ＭＰＣ部１４０、および、監視部１５０を備えている。なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、コントローラ１００は、当該省略された構成を備えてもよい。図１に例示した各機能ブロックは、例えば、ＣＰＵ（central processing unit）などが、ＲＯＭ（read only memory）、ＮＶＲＡＭ（non-Volatile random access memory）等で実現された記憶装置（記憶部１６０）に記憶されているプログラムを不図示のＲＡＭ（random access memory）等に読み出して実行することで実現できる。以下、コントローラ１００における各機能ブロックについて説明する。
【００８７】
（記憶部以外の機能ブロックの詳細）
指令値生成部１１０は、外部（例えば、ユーザ）から、主軸の目標軌道データ（目標軌道）を受け付け（軌道生成）、受け付けた目標軌道データから制御周期（主軸側制御周期）ごとに指令値（具体的には、指令位置（主軸））を生成する。そして、指令値生成部１１０は、生成した指令位置（主軸）を、主軸側制御周期ごとに、主軸サーボ系２００（具体的には、主軸サーボドライバ２１０）へと出力する。
【００８８】
第１予測部１２０は、主軸サーボ系２００から、「主軸サーボ系２００（特に、機械２４０）の出力である主軸の位置（＝ＦＢ位置（主軸））」を、ＦＢ情報として、主軸側制御周期ごとに取得する。そして、第１予測部１２０は、主軸側制御周期ごとに取得したＦＢ位置（主軸）から、「未来の主軸側制御周期におけるＦＢ位置（主軸）」を主軸側制御周期ごとに予測する。
【００８９】
ここで、第１予測部１２０は、主軸の過去および現在のＦＢ値のみを用いて、主軸の現周期のＦＢ位置の加速度が一定で継続すると仮定して、主軸の未来のＦＢ値を予測する。例えば、
【００９０】
【数１】
2020005385.tif 000003
【００９１】
として、第１予測部１２０は、
【００９２】
【数２】
2020005385.tif 000004
【００９３】
を実行する。
【００９４】
すなわち、第１予測部１２０は、現在の主軸側制御周期におけるＦＢ位置（主軸）（上述の式におけるＰＶｎ）と、現在から１周期前の主軸側制御周期におけるＦＢ位置（主軸）（上述の式におけるＰＶｎ−１）との差を、主軸側制御周期の時間間隔である周期時間Ｔｓで除して、現在の主軸側制御周期における主軸サーボ系２００のフィードバック速度（ＰＶｖｎ）を算出する。
【００９５】
また、第１予測部１２０は、現在から１周期前の主軸側制御周期におけるＦＢ位置（主軸）（上述の式におけるＰＶｎ−１）と、現在から２周期前の主軸側制御周期におけるＦＢ位置（主軸）（上述の式におけるＰＶｎ−２）との差を、周期時間Ｔｓで除して、現在から１周期前の主軸側制御周期における主軸サーボ系２００のフィードバック速度（ＰＶｖｎ−１）を算出する。
【００９６】
そして、第１予測部１２０は、主軸サーボ系２００の、現在の主軸側制御周期におけるフィードバック速度ＰＶｖｎと、現在から１周期前の主軸側制御周期におけるフィードバック速度ＰＶｖｎ−１との差を、周期時間Ｔｓで除して、現在の主軸側制御周期における主軸サーボ系２００のフィードバック加速度（上述の式におけるＰＶａ）を算出する。すなわち、「ＰＶａ＝（ＰＶｖｎ−ＰＶｖｎ−１）／Ｔｓ＝（ＰＶｎ−２＊ＰＶｎ−１＋ＰＶｎ−２）／Ｔｓ２」を算出する。
【００９７】
第１予測部１２０は、算出した「現在の周期における主軸サーボ系２００のフィードバック加速度ＰＶａ」が未来の主軸側制御周期においても一定で継続すると仮定して、未来の周期におけるＦＢ位置（主軸）を予測する。
【００９８】
すなわち、「未来の周期におけるＦＢ位置（主軸）」は、具体的には、「ｉ周期後の予測ＦＢ位置（主軸）（「ｉ＝１  ｔｏ  Ｈ」とする）」であるとして、第１予測部１２０は、「ｉ周期後の予測ＦＢ位置（主軸）ＰＶｐｒ（ｉ）」を、上述の式の通り、予測する。すなわち、第１予測部１２０は、周期時間Ｔｓ、「主軸サーボ系２００の現在の周期におけるフィードバック加速度ＰＶａ」、「主軸サーボ系２００の現在の周期におけるフィードバック速度ＰＶｖｎ（上述の式におけるＰＶｖ）」、および、「主軸サーボ系２００の現在の周期におけるＦＢ位置（主軸）ＰＶｎ」から、「未来の周期におけるＦＢ位置（主軸）ＰＶｐｒ（ｉ）」を予測する。
【００９９】
第１予測部１２０は、予測した主軸側制御周期ごとの「未来の主軸側制御周期におけるＦＢ位置（主軸）」を、カム演算部１３０に通知し、また、記憶部１６０の予測主軸位置テーブル１６１に格納する。
【０１００】
カム演算部１３０は、第１予測部１２０から通知された「未来の主軸側制御周期におけるＦＢ位置（主軸）」に対応する、「未来の従軸制御周期における指令位置（従軸）」を演算する。なお、以下では、カム演算部１３０が「未来の主軸側制御周期におけるＦＢ位置（主軸）」から演算する「未来の従軸制御周期における指令位置（従軸）」を、「対応従属位置」とも称する。
【０１０１】
カム演算部１３０は、例えば、「主軸の位置に対して、従軸の位置を対応付けた配列」である主従関係情報（例えば、いわゆる「カムテーブル」）を用いて、対応従属位置を演算する。カム演算部１３０は、「主軸の位置に対して、従軸の位置を対応付けた演算式（例えば、いわゆる「カム演算式」）」を用いて、対応従属位置を演算してもよい。カム演算部１３０は、周知の技術を用いて、対応従属位置を演算できればよく、対応従属位置を演算する方法は、特に限定されない。
【０１０２】
カム演算部１３０は、「未来の主軸側制御周期におけるＦＢ位置（主軸）」から演算した、「未来の主軸側制御周期におけるＦＢ位置（主軸）」に対応する「未来の従軸制御周期における指令位置（従軸）」を、つまり、「対応従属位置」を、ＭＰＣ部１４０に通知する。
【０１０３】
ＭＰＣ部１４０は、従軸サーボ系３００の動特性モデルを用いて、従軸サーボ系３００についてＭＰＣ（モデル予測制御）を行なう。具体的には、ＭＰＣ部１４０は、カム演算部１３０により演算された対応従属位置と、従軸サーボ系３００から取得するＦＢ位置（従軸）とを用いて、従軸サーボ系３００の動特性モデルを用いたＭＰＣによって、指令速度（従軸）を生成する。
【０１０４】
先ず、ＭＰＣ部１４０は、従軸サーボドライバ３１０および機械３３０のモデル（つまり、従軸サーボ系３００の動特性モデル）を内部モデルとして有し、この内部モデルを用いて、「未来の周期（従軸側制御周期）におけるＦＢ位置（従軸）」を予測する。例えば、ＭＰＣ部１４０は、従軸サーボ系３００の動特性モデルによって、「これまでに取得しているＦＢ位置（従軸）」および「これまでに従軸サーボドライバ３１０へ出力している指令値（従軸）」を用いて、「未来の周期（従軸側制御周期）におけるＦＢ位置（従軸）」を予測する。
【０１０５】
そして、ＭＰＣ部１４０は、予測した「未来の周期におけるＦＢ位置（従軸）」が、カム演算部１３０により演算された対応従属位置に一致するように、従軸サーボ系３００に対する現在の周期における指令値（例えば、指令速度（従軸））を生成する。ＭＰＣ部１４０は、予測した「未来の周期におけるＦＢ位置（従軸）」が、「未来の主軸側制御周期におけるＦＢ位置（主軸）」に対応する「未来の従軸制御周期における指令位置（従軸）」に一致するよう、現在の従軸制御周期における指令速度（従軸）を生成する。ＭＰＣ部１４０は、生成した「現在の従軸制御周期における指令速度（従軸）」を、現在の従軸制御周期において、従軸サーボ系３００（具体的には、従軸サーボドライバ３１０）に出力する。
【０１０６】
監視部１５０は、第１予測部１２０により予測された「未来の主軸側制御周期におけるＦＢ位置（主軸）」を監視し、例えば、「未来の主軸側制御周期におけるＦＢ位置（主軸）」に異常等が発生すると、コントローラ１００の外部等に通知する。例えば、監視部１５０は、記憶部１６０の予測主軸位置テーブル１６１に格納されている複数周期分の「未来の主軸側制御周期におけるＦＢ位置（主軸）」を監視し、「未来の主軸側制御周期におけるＦＢ位置（主軸）」の経時変化を監視する。監視部１５０は、「未来の主軸側制御周期におけるＦＢ位置（主軸）」の経時変化を監視することによって、「未来の主軸側制御周期におけるＦＢ位置（主軸）」の変動を検知し、例えば、変動にみられる傾向性および急激な変動の発生等を把握することができる。そして、監視部１５０は、把握した「未来の主軸側制御周期におけるＦＢ位置（主軸）」の変動の傾向性、および「未来の主軸側制御周期におけるＦＢ位置（主軸）」の急激な変動の発生などについて、コントローラ１００の内部の他のプログラム（機能ブロック）、または外部の装置に通知する。
【０１０７】
（記憶部の詳細）
記憶部１６０は、コントローラ１００が使用する各種データを格納する記憶装置である。なお、記憶部１６０は、コントローラ１００が実行する（１）制御プログラム、（２）ＯＳプログラム、（３）コントローラ１００が有する各種機能を実行するためのアプリケーションプログラム、および、（４）該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の（１）〜（４）のデータは、例えば、ＲＯＭ（read only memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（登録商標）（Electrically EPROM）、ＨＤＤ（Hard Disc Drive）等の不揮発性記憶装置に記憶される。また、例えば、カム演算部１３０が「未来の主軸側制御周期におけるＦＢ位置（主軸）」から「未来の従軸制御周期における指令位置（従軸）」を演算するのに用いる主従関係情報（例えば、カムテーブルまたはカム演算式）は記憶部１６０に格納されていてもよい。
【０１０８】
コントローラ１００は、図示しない一時記憶部を備えていてもよい。一時記憶部は、コントローラ１００が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、ＲＡＭ（Random Access Memory）などの揮発性記憶装置で構成される。 
【０１０９】
どのデータをどの記憶装置に記憶するのかについては、コントローラ１００の使用目的、利便性、コスト、または、物理的な制約などから適宜決定される。記憶部１６０はさらに予測主軸位置テーブル１６１を格納している。
【０１１０】
予測主軸位置テーブル１６１には、第１予測部１２０によって、第１予測部１２０が各主軸側制御周期において予測した、主軸側制御周期ごとの「未来の主軸側制御周期におけるＦＢ位置（主軸）」が格納される。
【０１１１】
§３．動作例
図２は、コントローラ１００が実行する処理の全体概要を示すフロー図である。コントローラ１００は先ず初期処理を実行し（Ｓ４１０）、例えば、起動後、通常動作（主軸サーボ系２００および従軸サーボ系３００の各々への制御処理）を開始する前の初期イニシャライズ（初期処理、例えば、通常動作に必要な各種の設定処理等）を実行する。
【０１１２】
コントローラ１００は、主軸サーボ系２００および従軸サーボ系３００の各々から、主軸および従軸の各々のＦＢ値（つまり、ＦＢ位置（主軸）およびＦＢ位置（従軸））を入力として受け付ける（Ｓ４２０）。そして、指令値生成部１１０は、主軸の目標軌道データから、主軸側制御周期ごとの主軸サーボドライバ２１０への指令値（例、指令位置（主軸））を計算する（Ｓ４３０）。
【０１１３】
第１予測部１２０は、Ｓ４２０で受け付けたＦＢ位置（主軸）から、主軸の未来ＦＢ値を、つまり、「未来の主軸側制御周期におけるＦＢ位置（主軸）」を、予測する（Ｓ４４０）。そして、第１予測部１２０は、予測した「未来の主軸側制御周期におけるＦＢ位置（主軸）」を、カム演算部１３０に通知する。
【０１１４】
カム演算部１３０は、第１予測部１２０から通知された「未来の主軸側制御周期におけるＦＢ位置（主軸）」に対応する、従軸の未来対応値（対応従属位置）を、つまり、「未来の従軸制御周期における指令位置（従軸）」を、計算する（Ｓ４５０）。カム演算部１３０は、「未来の主軸側制御周期におけるＦＢ位置（主軸）」から計算した対応従属位置を、ＭＰＣ部１４０に通知する。
【０１１５】
ＭＰＣ部１４０は、従軸サーボ系３００の動特性モデルを用いて、従軸サーボドライバ３１０への指令値を計算し（Ｓ４６０）、つまり、従軸サーボ系３００の動特性モデルを用いたＭＰＣを従軸サーボ系３００の制御に適用する。具体的には、ＭＰＣ部１４０は、従軸サーボ系３００の動特性モデルを用いて予測した「未来の周期（未来の従軸側制御周期）におけるＦＢ位置（従軸）」が、Ｓ４５０で計算した対応従属位置に一致するように、指令速度（従軸）を生成する。
【０１１６】
コントローラ１００（具体的には、指令値生成部１１０およびＭＰＣ部１４０の各々）は、主軸側および従軸側のサーボドライバ（つまり、主軸サーボドライバ２１０および従軸サーボドライバ３１０）へ、指令値を出力する（Ｓ４７０）。すなわち、指令値生成部１１０は主軸サーボドライバ２１０に指令位置（主軸）を出力し、ＭＰＣ部１４０は従軸サーボドライバ３１０に指令速度（従軸）を出力する。そして、コントローラ１００は、制御が終了する（Ｓ４８０でＹｅｓ）まで、Ｓ４２０からＳ４７０までの処理を、制御周期ごとに繰り返す。
【０１１７】
これまでに図２を用いて説明してきた、コントローラ１００の実行する制御方法は、以下のように整理することができる。すなわち、コントローラ１００の実行する制御方法は、主軸の位置に対して従軸の位置を追従させる制御装置の制御方法であって、「主軸の位置をフィードバック制御する主軸サーボ系２００の、主軸のフィードバック位置であるＦＢ位置（主軸）の現在における加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるＦＢ位置（主軸）を予測する予測ステップ（Ｓ４４０）と、予測ステップにて予測された「未来におけるＦＢ位置（主軸）」に対応する、「未来における従軸の位置」である対応従属位置を演算する演算ステップ（Ｓ４５０）と、従軸の位置をフィードバック制御する従軸サーボ系３００の動特性モデルを用いて予測する「未来における従軸の予測位置」が、演算ステップにて演算された「未来における対応従属位置」に一致するように、従軸サーボ系３００に対する現在における指令値である従軸指令値を生成する従軸指令ステップ（Ｓ４６０）と、を含んでいる。
【０１１８】
前記の方法によれば、前記制御方法は、「ＦＢ位置（主軸）の現在における加速度が、所定期間にわたって一定のまま継続する」と仮定して、未来における主軸のフィードバック位置であるＦＢ位置（主軸）を予測する。
【０１１９】
特に、前記制御方法は、主軸サーボ系２００の動特性モデルを用いずに予測した未来のＦＢ位置（主軸）から、未来のＦＢ位置（主軸）に対応する、従軸の未来の位置である対応従属位置を演算する。そして、前記制御方法は、演算した対応従属位置（未来における従軸の位置）を従軸の未来の指令値（指令位置）とする、従軸サーボ系３００の動特性モデルを用いたＭＰＣを、従軸の制御に適用する。つまり、前記制御方法は、未来におけるＦＢ位置（主軸）を予測し、予測した「未来におけるＦＢ位置（主軸）」に対応する「対応従属位置（従軸の未来の指令値、未来の周期における指令位置（従軸））」を用いたＭＰＣを、従軸の制御に適用する。
【０１２０】
したがって、前記制御方法は、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、前記制御方法は、前記制御方法によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
【０１２１】
〔実施形態２〕
本発明の実施形態２について、図３および図４に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。先ず、実施形態２に係るコントローラ５００に係る理解を容易にするため、コントローラ５００について、実施形態１で説明したコントローラ１００との違いを説明する。
【０１２２】
（実施形態１との違い）
コントローラ１００は、主軸の未来のＦＢ値の予測に「主軸の現在および過去のＦＢ値」を利用していた。これに対して、本実施形態に係るコントローラ５００は、「主軸の現在および過去のＦＢ値」に加えてさらに、「主軸の未来の指令値」を用いて、主軸の未来のＦＢ値を予測する。
【０１２３】
ここで、「主軸の未来の指令値」を用いて主軸の未来のＦＢ値を予測するコントローラ５００には、主軸の制御について、高い指令追従性が求められる。つまり、「主軸の未来の指令値」を用いた「主軸の未来のＦＢ値」の予測は、主軸制御における指令値への高い追従性を前提としている。具体的には、主軸制御において指令値への追従性が低い場合、主軸の制御偏差の変化が指令値の変化に対して非常に緩慢になり、制御偏差の変化と指令値の変化とを組み合わせても、主軸の未来のＦＢ値の予測精度が低くなってしまう。そのため、「主軸の未来の指令値」を用いて「主軸の未来のＦＢ値」を予測する場合、主軸制御の指令値への追従性は、相当程度高いことが求められる。
【０１２４】
そこで、コントローラ５００は、主軸の制御にＭＰＣを適用することにより、主軸制御における指令値への高追従性を実現し、また、「主軸の未来の指令値」を用いた、高精度の「主軸の未来のＦＢ値」の予測を実現している。
【０１２５】
コントローラ５００は、コントローラ１００と同じように、主軸に対する従軸の追従性を向上させることによって、コントローラ５００によって制御する機械の動作をより高速化することができ、これらの機械を用いた生産現場の生産性の向上に寄与する。なお、以下の説明においては、実施形態１のコントローラ１００と同様に、コントローラ５００を電子カム制御に適用する例を説明する。ただし、コントローラ５００の適用例は、電子カム制御に限られるものではなく、「主軸の位置に対して、従軸の位置を追従させる制御」であればよい。以下、図３および図４を用いて、コントローラ５００の詳細について説明していく。
【０１２６】
（制御システムの概要）
図３は、コントローラ５００等の要部構成を示すブロック図である。以下、コントローラ５００についての理解を容易にするため、先ず、コントローラ５００を含む制御システム２の概要について説明する。
【０１２７】
図３に例示する制御システム２は、上位コントローラであるコントローラ５００と、コントローラ５００により制御される主軸サーボ系６００および従軸サーボ系７００と、を含む。主軸サーボ系６００は、主軸サーボドライバ６１０と、主軸サーボドライバ６１０によって駆動を制御される機械６３０（例えば、モータおよびメカ）と、を含むフィードバック制御系である。同様に、従軸サーボ系７００は、従軸サーボドライバ７１０と、従軸サーボドライバ７１０によって駆動を制御される機械７３０（例えば、モータおよびメカ）と、を含むフィードバック制御系である。コントローラ５００と、主軸サーボドライバ６１０および従軸サーボドライバ７１０の各々とは通信可能に接続されており、その接続方式は、任意の有線接続方式または無線接続方式である。
【０１２８】
主軸サーボ系６００において、主軸サーボドライバ６１０は、コントローラ５００から所定の制御周期（主軸側制御周期）ごとに受け付ける「主軸についての指令値」に従って、機械６３０の出力（つまり、主軸の位置）を制御するフィードバック制御装置である。機械６３０の出力は、主軸位置のＦＢ値（以下、「ＦＢ位置（主軸）」とも称する）として、主軸サーボドライバ６１０およびコントローラ５００の各々へ入力される。
【０１２９】
主軸サーボドライバ６１０は、コントローラ５００からの「主軸についての指令値（指令主軸値。例えば、指令速度（主軸））」を目標値とし、実測値（例、ＦＢ位置（主軸）を時間微分したＦＢ速度（主軸））をフィードバック値として、機械６３０にフィードバック制御を行う。すなわち、主軸サーボドライバ６１０は、実測値が目標値に近づくように、機械６３０（特に、機械６３０が含むサーボモータ）を駆動するための電流を調整する。なお、主軸サーボドライバ６１０は、サーボモータアンプと称されることもある。
【０１３０】
図３の主軸サーボドライバ６１０は、比例積分制御（ＰＩ制御）を行なう速度制御部６２０を備え、コントローラ５００から「主軸についての指令速度（以下、「指令速度（主軸）」とも称する）」を受信する。速度制御部６２０は、コントローラ５００から受け付けた指令速度（主軸）と、ＦＢ位置（主軸）を微分して算出したＦＢ速度（主軸）との偏差である速度偏差（主軸）から、指令トルク（主軸）を生成する。主軸サーボドライバ６１０は、生成した指令トルク（主軸）に基づいて、機械６３０を制御する。
【０１３１】
従軸サーボ系７００において、従軸サーボドライバ７１０は、コントローラ５００から所定の制御周期（従軸側制御周期）ごとに受け付ける「従軸についての指令値」に従って、機械７３０の出力（つまり、従軸の位置）を制御するフィードバック制御装置である。機械７３０の出力は、従軸位置のＦＢ値（以下、「ＦＢ位置（従軸）」とも称する）として、従軸サーボドライバ７１０およびコントローラ５００の各々へ入力される。
【０１３２】
従軸サーボドライバ７１０は、コントローラ５００からの「従軸についての指令値（例、指令速度（従軸））」を目標値とし、実測値（例、ＦＢ位置（従軸）を時間微分したＦＢ速度（従軸））をフィードバック値として、機械７３０にフィードバック制御を行う。すなわち、従軸サーボドライバ７１０は、実測値が目標値に近づくように、機械７３０（特に、機械７３０が含むサーボモータ）を駆動するための電流を調整する。なお、従軸サーボドライバ７１０は、サーボモータアンプと称されることもある。
【０１３３】
図３の従軸サーボドライバ７１０は、比例積分制御（ＰＩ制御）を行なう速度制御部７２０を備え、コントローラ５００から「従軸についての指令速度（以下、「指令速度（従軸）」とも称する）」を受信する。速度制御部７２０は、コントローラ５００から受け付けた指令速度（従軸）と、エンコーダ等によって取得するＦＢ位置（従軸）を微分して算出したＦＢ速度（従軸）との偏差である速度偏差（従軸）から、指令トルク（従軸）を生成する。従軸サーボドライバ７１０は、生成した指令トルク（従軸）に基づいて、機械７３０を制御する。
【０１３４】
コントローラ５００（制御装置）は、主軸サーボ系６００および従軸サーボ系７００を含む制御システム２の全体を制御し、例えば、プログラマブルコントローラ（ＰＬＣ、Programmable Logic Controller）である。
【０１３５】
コントローラ５００は、主軸サーボ系６００および従軸サーボ系７００に各々に指令値を出力して、主軸サーボ系６００および従軸サーボ系７００の各々を制御する。コントローラ５００は、例えば、主軸側制御周期ごとに、主軸についての指令速度である「指令速度（主軸）」を主軸サーボ系６００に出力して、主軸サーボ系６００を制御する。コントローラ５００は、主軸サーボ系６００の動特性モデルを用いるＭＰＣを、主軸サーボ系６００の制御に適用する。
【０１３６】
また、コントローラ５００は、例えば、従軸側制御周期ごとに、従軸についての指令速度である「指令速度（従軸）」を従軸サーボ系７００に出力して、従軸サーボ系７００を制御する。コントローラ５００は、従軸サーボ系７００の動特性モデルを用いるＭＰＣを、従軸サーボ系７００の制御に適用する。
【０１３７】
コントローラ５００の主軸サーボ系６００に対する制御周期（主軸側制御周期）と、コントローラ５００の従軸サーボ系７００に対する制御周期（従軸側制御周期）とは、同じであってもよいし、同じ時間でなくともよい。例えば、従軸側制御周期は主軸側制御周期よりも短くてもよく、つまり、従軸側制御周期は主軸側制御周期よりも速くてもよい。
【０１３８】
コントローラ５００は、主軸サーボ系６００および従軸サーボ系７００からＦＢ値を取得して、主軸サーボ系６００および従軸サーボ系７００の制御に利用する。コントローラ５００は、例えば、機械６３０の出力（つまり、主軸の位置）であるＦＢ位置（主軸）を主軸サーボ系６００から取得し、主軸サーボ系６００および従軸サーボ系７００の制御に利用する。また、コントローラ５００は、例えば、機械７３０の出力（つまり、従軸の位置）であるＦＢ位置（従軸）を従軸サーボ系７００から取得し、従軸サーボ系７００の制御に利用する。
【０１３９】
（コントローラの概要）
これまで、制御システム２の概要を説明してきた。次に、コントローラ５００についての理解を容易にするため、コントローラ５００の概要を以下のように整理しておく。
【０１４０】
すなわち、コントローラ５００は、主軸の過去および現在の各々の主軸側制御周期における「ＦＢ値および指令値」、さらに、未来の主軸側制御周期における指令値を用いて、未来の主軸側制御周期におけるＦＢ値を予測する。つまり、コントローラ５００は、主軸の過去および現在の各々の主軸側制御周期における「ＦＢ位置（主軸）および指令位置（主軸）」と、未来の主軸側制御周期における指令位置（主軸）とを用いて、未来の主軸側制御周期におけるＦＢ位置（主軸）を予測する。
【０１４１】
ここで、コントローラ５００は、「主軸の現在の主軸側制御周期における位置偏差（ＦＢ位置（主軸）と指令位置（主軸）との偏差）の、時間に対する変化率が一定で継続する」と仮定して、「主軸の未来の主軸側制御周期における位置偏差」を算出する。
【０１４２】
具体的には、コントローラ５００は、「現在の主軸側制御周期における位置偏差の、時間に対する変化率が、未来においても一定で継続する」と仮定して、以下の処理を実行する。すなわち、コントローラ５００は、現在および過去の各々の主軸側制御周期における位置偏差を、現在および過去の各々の主軸側制御周期における「ＦＢ位置（主軸）および指令位置（主軸）」を用いて算出する。そして、コントローラ５００は、算出した「現在および過去の各々の主軸側制御周期における位置偏差」から、現在の主軸側制御周期における位置偏差変化率を演算する。
【０１４３】
コントローラ５００は、「現在の主軸側制御周期における位置偏差変化率」が一定で継続すると仮定して、「未来の主軸側制御周期における位置偏差」を算出する。すなわち、コントローラ５００は、前記仮定の下で、主軸側制御周期に対応する時間間隔（周期時間）と、「現在の主軸側制御周期における、位置偏差および位置偏差変化率」とから、「未来の主軸側制御周期における位置偏差」を算出する。
【０１４４】
そして、コントローラ５００は、算出した「未来の主軸側制御周期における位置偏差」と、「未来の主軸側制御周期における指令位置（主軸）」とから、「未来の主軸側制御周期におけるＦＢ位置（主軸）」を、つまり、主軸の未来のＦＢ値を、予測する。
【０１４５】
コントローラ５００は、予測した主軸の未来のＦＢ値（つまり、未来の周期におけるＦＢ位置（主軸））に対応する、従軸の未来の指令値（つまり、未来の周期における指令位置（従軸）。つまり、対応従属位置）を演算する。コントローラ５００は、演算した対応従属位置（＝未来の周期における指令位置（従軸））を入力として、従軸サーボ系７００の動特性モデルを用いたＭＰＣを従軸の制御に適用し、つまり、従軸サーボ系７００についてＭＰＣを実行する。また、コントローラ５００は、主軸サーボ系６００の動特性モデルを用いたＭＰＣを、主軸の制御に適用し、つまり、主軸サーボ系６００についてＭＰＣを実行する。
【０１４６】
具体的には、コントローラ５００は、主軸の位置に対して従軸の位置を追従させる制御装置であって、第２予測部５３０（予測部）と、カム演算部５４０（演算部）と、第２ＭＰＣ部５５０（従軸指令部）と、を備えている。第２予測部５３０は、「主軸の目標軌道から生成される指令位置である指令位置（主軸）（つまり、主軸指令位置）と、ＦＢ位置（主軸）（つまり、主軸フィードバック位置）との偏差である位置偏差（「位置偏差（主軸）」とも称する）」の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来におけるＦＢ位置（主軸）を予測する。カム演算部５４０は、第２予測部５３０により予測された「未来におけるＦＢ位置（主軸）」に対応する、「未来における従軸の位置」である対応従属位置を演算する。第２ＭＰＣ部５５０は、従軸の位置をフィードバック制御する従軸サーボ系７００の動特性モデルを用いて予測する「未来における従軸の予測位置」が、カム演算部５４０により演算された「未来における対応従属位置」に一致するように、従軸サーボ系７００に対する現在における指令値である従軸指令値を生成する。
【０１４７】
前記の構成によれば、コントローラ５００は、「位置偏差（主軸）の、現在における時間変化率が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるＦＢ位置（主軸）を予測する。
【０１４８】
特に、コントローラ５００は、主軸サーボ系６００の動特性モデルを用いずに予測した「未来のＦＢ位置（主軸）」から、「未来のＦＢ位置（主軸）」に対応する、「従軸の未来の位置」である対応従属位置を演算する。そして、コントローラ５００は、演算した「対応従属位置（未来における従軸の位置）」を「従軸の未来の指令値（指令位置）」とする、従軸サーボ系７００の動特性モデルを用いたＭＰＣを、従軸の制御に適用する。つまり、コントローラ５００は、未来におけるＦＢ位置（主軸）を予測し、予測した「未来におけるＦＢ位置（主軸）」に対応する「対応従属位置（従軸の未来の指令値、未来の周期における指令位置（従軸））」を用いたＭＰＣを、従軸の制御に適用する。
【０１４９】
したがって、コントローラ５００は、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、コントローラ５００は、コントローラ５００によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
【０１５０】
コントローラ５００は、例えば、主軸の位置に対して従軸の位置を追従させる。コントローラ５００において、第２予測部５３０は、「各周期（各主軸側制御周期）における指令位置（主軸）とＦＢ位置（主軸）との偏差である位置偏差（つまり、位置偏差（主軸））の、時間に対する変化率が、複数の周期にわたって一定である」と仮定して、「現在および過去の各周期（各主軸側制御周期）におけるＦＢ位置（主軸）」と、「過去、現在、および、未来の各周期（各主軸側制御周期）における指令位置（主軸）」と、を用いて、未来の周期（主軸側制御周期）におけるＦＢ位置（主軸）を予測する。
【０１５１】
前記の構成によれば、コントローラ５００は、「現在および過去の各周期（各主軸側制御周期）におけるＦＢ位置（主軸）」と、「過去、現在、および、未来の各周期（各主軸側制御周期）における指令位置（主軸）」と、を用いて、未来の周期（主軸側制御周期）におけるＦＢ位置（主軸）を予測する。
【０１５２】
例えば、コントローラ５００は、現在の周期（主軸側制御周期）における指令位置（主軸）とＦＢ位置（主軸）との差から、現在の周期（主軸側制御周期）における位置偏差（主軸）を算出する。また、コントローラ５００は、現在から１周期前の周期（主軸側制御周期）における指令位置（主軸）とＦＢ位置（主軸）との差から、現在から１周期前の周期（主軸側制御周期）における位置偏差（主軸）を算出する。
【０１５３】
そして、コントローラ５００は、現在の周期（主軸側制御周期）における位置偏差（主軸）と、現在から１周期前の周期（主軸側制御周期）における位置偏差（主軸）との差を、前記周期（主軸側制御周期）の時間間隔である周期時間で除して、「現在の周期（主軸側制御周期）における位置偏差（主軸）の、時間に対する変化（率）」を示す、「現在の周期（主軸側制御周期）における位置偏差変化率」を算出する。
【０１５４】
コントローラ５００は、算出した「現在の周期（主軸側制御周期）における位置偏差変化率」が未来の周期（主軸側制御周期）においても一定で継続すると仮定して、前記周期時間、「現在の周期（主軸側制御周期）における位置偏差変化率」、および、「現在の周期（主軸側制御周期）における位置偏差（主軸）」から、「未来の周期（主軸側制御周期）における位置偏差（主軸）」を算出する。
【０１５５】
そして、コントローラ５００は、「未来の周期（主軸側制御周期）における指令位置（主軸）」と、算出した「未来の周期（主軸側制御周期）における位置偏差（主軸）」との差から、「未来の周期（主軸側制御周期）におけるＦＢ位置（主軸）」を予測する。
【０１５６】
コントローラ５００は、予測した「未来の周期におけるＦＢ位置（主軸）」に対応する、未来の周期における従軸の位置（つまり、指令位置（従軸））である対応従属位置を演算する。コントローラ５００は、演算した対応従属位置を「未来の従軸の指令値（指令位置（従軸））」とする、従軸サーボ系７００の動特性モデルを用いたＭＰＣを、従軸の制御に適用する。つまり、コントローラ５００は、従軸の制御に適用するＭＰＣに、「現在および過去のＦＢ位置（主軸）」と、「過去、現在、および、未来の指令位置（主軸）」とを用いて予測した「未来のＦＢ位置（主軸）」に対応する「未来の指令位置（従軸）（つまり、対応従属位置）」を用いる。
【０１５７】
したがって、コントローラ５００は、主軸の位置に対して従軸の位置を追従させる制御装置において、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【０１５８】
コントローラ５００は、主軸サーボ系６００の動特性モデルを用いて予測する「未来における主軸の予測位置」が、未来における指令位置（主軸）に一致するように、主軸サーボ系６００に対する現在における指令値（指令主軸値。「指令速度（主軸）」とも称する）を生成する第１ＭＰＣ部５２０（主軸指令部）を備えている。
【０１５９】
前記の構成によれば、コントローラ５００は、主軸サーボ系６００の動特性モデルを用いて予測する「未来における主軸の予測位置」が、未来における指令位置（主軸）に一致するように、主軸サーボ系６００に対する現在における指令値（指令速度（主軸））を生成する。
【０１６０】
したがって、コントローラ５００は、主軸サーボ系６００の動特性モデルを用いたＭＰＣを主軸の位置の制御に適用することによって、主軸の位置制御について、追従性を向上させることができるとの効果を奏する。
【０１６１】
特に、「未来における指令位置（主軸）」を用いて「未来におけるＦＢ位置（主軸）」を予測する場合、主軸の位置の制御には、高い追従性が求められる。そこで、コントローラ５００は、主軸サーボ系６００の動特性モデルを用いたＭＰＣを主軸の位置の制御に適用することによって、主軸の位置制御について、追従性を向上させている。
【０１６２】
したがって、コントローラ５００は、ＭＰＣによって主軸の位置制御の追従性を向上させ、かつ、未来における指令位置（主軸）を用いて予測した未来におけるＦＢ位置（主軸）を用いて、従軸の位置制御の追従性を向上させることができるとの効果を奏する。
【０１６３】
制御システム２（コントローラ５００）において、例えば、主軸は電子カムの主軸であり、従軸は前記電子カムの従軸である。カム演算部５４０は、例えば、第２予測部５３０により予測された「未来における電子カムの主軸の位相（位置）」に対応する、「未来における電子カムの従軸の位置」を演算する。
【０１６４】
前記の構成によれば、コントローラ５００は、予測した「未来における電子カムの主軸の位相」に対応する、「未来における電子カムの従軸の位置」を演算する。
【０１６５】
ここで、コントローラ５００は、「電子カムの主軸の目標軌道から生成される指令位置である指令位置（主軸）とＦＢ位置（主軸）との偏差である位置偏差（主軸）の、現在における時間変化率が、所定期間にわたって一定のまま継続する」と仮定して、未来における電子カムの主軸のフィードバック位置（フィードバック位相）を予測する。
【０１６６】
つまり、コントローラ５００は、電子カムの未来の主軸の位置を主軸サーボ系６００の動特性モデルを用いずに予測する。そして、コントローラ５００は、予測した「電子カムの未来の主軸の位置」に対応する、「電子カムの未来の従軸の位置（対応従属位置）」を演算する。コントローラ５００は、演算した対応従属位置を用いて、電子カムの従軸の位置を制御する（具体的には、電子カムの従軸の位置制御に、ＭＰＣを適用する）。コントローラ５００は、未来におけるＦＢ位置（主軸）を予測し、予測した「未来におけるＦＢ位置（主軸）」に対応する「電子カムの従軸の未来の指令値」を用いたＭＰＣを、従軸の制御に適用する。
【０１６７】
したがって、コントローラ５００は、電子カムの主軸の位置（位相）に対して電子カムの従軸の位置を追従させる制御装置において、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【０１６８】
特に、コントローラ５００は、主軸サーボ系６００の動特性モデルを用いずに予測した「電子カムの主軸の未来のフィードバック位置」から、対応する「電子カムの従軸の未来の位置である、対応従属位置」を演算する。そして、コントローラ５００は、演算した「対応従属位置（未来における従軸の位置）」を「従軸の未来の指令値（指令位置）」とする、従軸サーボ系７００の動特性モデルを用いたＭＰＣを、従軸の制御に適用する。したがって、コントローラ５００は、電子カムの従軸の位置制御について、追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。
【０１６９】
これまでに概要を整理してきたコントローラ５００について、次に、その構成等の詳細について、図３を用いて説明していく。
【０１７０】
（コントローラの詳細）
図３に示すように、コントローラ５００は、機能ブロックとして、指令値生成部５１０、第１ＭＰＣ部５２０、第２予測部５３０、カム演算部５４０、第２ＭＰＣ部５５０、および、監視部５６０を備えている。なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、コントローラ５００は、当該省略された構成を備えてもよい。図３に例示した各機能ブロックは、例えば、ＣＰＵ（central processing unit）などが、ＲＯＭ（read only memory）、ＮＶＲＡＭ（non-Volatile random access memory）等で実現された記憶装置（記憶部５７０）に記憶されているプログラムを不図示のＲＡＭ（random access memory）等に読み出して実行することで実現できる。以下、コントローラ５００における各機能ブロックについて説明する。
【０１７１】
（記憶部以外の機能ブロックの詳細）
指令値生成部５１０は、指令値生成部１１０と同様であり、外部から、主軸の目標軌道データを受け付け、受け付けた目標軌道データから主軸側制御周期ごとに指令値（具体的には、指令位置（主軸））を生成する。そして、指令値生成部５１０は、生成した指令位置（主軸）を、第１ＭＰＣ部５２０および第２予測部５３０へと出力する。
【０１７２】
第１ＭＰＣ部５２０は、主軸サーボ系６００の制御に、主軸サーボ系６００の動特性モデルを用いるＭＰＣを適用する。具体的には、第１ＭＰＣ部５２０は、主軸サーボ系６００の動特性モデル（主軸サーボドライバ６１０および機械６３０の動特性モデル）を用いて、主軸サーボ系６００についてＭＰＣ（モデル予測制御）を行なう。具体的には、第１ＭＰＣ部５２０は、指令値生成部５１０により生成された指令位置（主軸）と、主軸サーボ系６００から取得するＦＢ位置（主軸）とを用いて、主軸サーボ系６００の動特性モデルを用いたＭＰＣによって、指令速度（主軸）を生成する。
【０１７３】
先ず、第１ＭＰＣ部５２０は、主軸サーボドライバ６１０および機械６３０のモデル（つまり、主軸サーボ系６００の動特性モデル）を内部モデルとして有し、この内部モデルを用いて、「未来の周期（主軸側制御周期）におけるＦＢ位置（主軸）」を予測する。例えば、第１ＭＰＣ部５２０は、主軸サーボ系６００の動特性モデルによって、これまでに取得しているＦＢ位置（主軸）を用いて、「未来の主軸側制御周期におけるＦＢ位置（主軸）」を予測する。
【０１７４】
そして、第１ＭＰＣ部５２０は、予測した「未来の周期におけるＦＢ位置（主軸）」が、指令値生成部５１０により生成された指令位置（主軸）に一致するように、主軸サーボ系６００に対する現在の周期における指令値（例えば、指令速度（主軸））を生成する。第１ＭＰＣ部５２０は、予測した「未来の周期におけるＦＢ位置（主軸）」が、主軸の目標軌道データから生成された指令位置（主軸）に一致するよう、現在の主軸制御周期における指令速度（主軸）を生成する。第１ＭＰＣ部５２０は、生成した「現在の主軸制御周期における指令速度（主軸）」を、現在の主軸制御周期において、主軸サーボ系６００（具体的には、主軸サーボドライバ６１０）に出力する。
【０１７５】
なお、主軸サーボ系６００の動特性モデルを用いたＭＰＣを主軸サーボ系６００の制御に適用する第１ＭＰＣ部５２０は、主軸サーボ系６００の制御について動摩擦補償も適用するものとする。これまでに説明したＭＰＣ部１４０、および以下に説明する第２ＭＰＣ部５５０についても、各々、従軸サーボ系３００および従軸サーボ系７００の各々に対する制御について動摩擦補償を適用してもよい。
【０１７６】
例えば、第１ＭＰＣ部５２０は、主軸サーボ系６００の制御について、指令速度（主軸）を主軸サーボドライバ６１０に出力することにより、主軸サーボドライバ６１０の高速な（つまり、主軸側制御周期よりも高速な）演算ループによる摩擦補償を利用する。これに対して、実施形態１のコントローラ１００における指令値生成部１１０は、主軸サーボ系２００の制御にＭＰＣも動摩擦補償も適用していない。なお、動摩擦補償は上述のようにサーボドライバ側で実行するだけでなく、コントローラ側で、つまり、コントローラ１００およびコントローラ５００側で実行してもよい。
【０１７７】
第２予測部５３０は、主軸サーボ系６００から、「主軸サーボ系６００（特に、機械６３０）の出力である主軸の位置（＝ＦＢ位置（主軸））」を、ＦＢ情報として、主軸側制御周期ごとに取得する。また、第２予測部５３０は、指令値生成部５１０から、指令値生成部５１０が目標軌道データから主軸側制御周期ごとに生成する指令値（具体的には、指令位置（主軸））を、特に、過去、現在、および、未来の主軸側制御周期の各々における指令値を取得する。
【０１７８】
ここで、第２予測部５３０は、主軸（＝主軸サーボ系６００）への未来の指令値と、主軸の過去および現在の各々における制御偏差（例えば、指令位置（主軸）とＦＢ位置（主軸）との位置偏差）を用いて、主軸の未来のＦＢ値を予測する。具体的には、第２予測部５３０は、主軸の過去および現在のＦＢ値と、過去、現在、および、未来の主軸（＝主軸サーボ系６００）への指令値を用いて、位置偏差変化率が複数の主軸側制御周期にわたって一定で継続すると仮定して、主軸の未来のＦＢ値を予測する。例えば、
【０１７９】
【数３】
2020005385.tif 000005
【０１８０】
として、第２予測部５３０は、
【０１８１】
【数４】
2020005385.tif 000006
【０１８２】
を実行する。
【０１８３】
すなわち、第２予測部５３０は、「現在の主軸側制御周期における主軸指令位置（上述の式におけるＳＰｎ）」と「現在の主軸側制御周期におけるＦＢ位置（主軸）（上述の式におけるＰＶｎ）」との差から、「現在の主軸側制御周期における位置偏差（ＥＲｎ）」を算出する。
【０１８４】
また、第２予測部５３０は、「現在から１周期前の主軸側制御周期における主軸指令位置（上述の式におけるＳＰｎ−１）」と「現在から１周期前の主軸側制御周期におけるＦＢ位置（主軸）（上述の式におけるＰＶｎ−１）」との差から、「現在から１周期前の主軸側制御周期における位置偏差（ＥＲｎ−１）」を算出する。
【０１８５】
そして、第２予測部５３０は、「現在の主軸側制御周期における位置偏差（ＥＲｎ）」と、「現在から１周期前の主軸側制御周期における位置偏差（ＥＲｎ−１）」との差を、主軸側制御周期の時間間隔である周期時間Ｔｓで除して、「現在の主軸側制御周期における、位置偏差の時間に対する変化（率）」を示す、「現在の主軸側制御周期における位置偏差変化率（上述の式におけるＥＲｄ）」を算出する。
【０１８６】
第２予測部５３０は、算出した「現在の主軸側制御周期における位置偏差変化率ＥＲｄ」が、未来の主軸側制御周期においても一定で継続すると仮定して、「未来の主軸側制御周期における位置偏差（ＥＲｉ）」を算出する。
具体的には、「未来の主軸側制御周期における位置偏差（ＥＲｉ）」が、「ｉ周期後の位置偏差（「ｉ＝１  ｔｏ  Ｈ」とする）」であるとして、第２予測部５３０は、「ｉ周期後の位置偏差（ＥＲｉ）」を、上述の式の通り予測する。すなわち、第２予測部５３０は、周期時間Ｔｓ、「現在の主軸側制御周期における位置偏差変化率（ＥＲｄ）」、および、「現在の主軸側制御周期における位置偏差（ＥＲｎ）」から、「ＥＲｉ＝ＥＲｎ＋ＥＲｄ＊Ｔｓ＊ｉ」を演算する。
【０１８７】
そして、第２予測部５３０は、「ｉ周期後の主軸側制御周期における主軸指令位置（上述の式におけるＳＰｉ）」と、演算した「ｉ周期後の位置偏差（ＥＲｉ）」との差から、「ｉ周期後の主軸側制御周期におけるＦＢ位置（主軸）（上述の式におけるＰＶｐｒ（ｉ））」を予測する。
【０１８８】
第２予測部５３０は、予測した主軸側制御周期ごとの「未来の主軸側制御周期におけるＦＢ位置（主軸）」を、カム演算部５４０に通知し、また、記憶部５７０の予測主軸位置テーブル５７１に格納する。
【０１８９】
カム演算部５４０は、第２予測部５３０から通知された「未来の主軸側制御周期におけるＦＢ位置（主軸）」に対応する、「未来の従軸制御周期における指令位置（従軸）」を演算する。なお、以下では、カム演算部５４０が「未来の主軸側制御周期におけるＦＢ位置（主軸）」から演算する「未来の従軸制御周期における指令位置（従軸）」を、「対応従属位置」とも称する。
【０１９０】
カム演算部５４０は、例えば、「主軸の位置に対して、従軸の位置を対応付けた配列」である主従関係情報（例えば、いわゆる「カムテーブル」）を用いて、対応従属位置を演算する。カム演算部５４０は、「主軸の位置に対して、従軸の位置を対応付けた演算式（例えば、いわゆる「カム演算式」）」を用いて、対応従属位置を演算してもよい。カム演算部５４０は、周知の技術を用いて、対応従属位置を演算できればよく、対応従属位置を演算する方法は、特に限定されない。
【０１９１】
カム演算部５４０は、「未来の主軸側制御周期におけるＦＢ位置（主軸）」から演算した、「未来の主軸側制御周期におけるＦＢ位置（主軸）」に対応する「未来の従軸制御周期における指令位置（従軸）」を、第２ＭＰＣ部５５０に通知する。
【０１９２】
第２ＭＰＣ部５５０は、従軸サーボ系７００の動特性モデルを用いて、従軸サーボ系７００についてＭＰＣ（モデル予測制御）を行なう。具体的には、第２ＭＰＣ部５５０は、カム演算部５４０により演算された対応従属位置と、従軸サーボ系７００から取得するＦＢ位置（従軸）とを用いて、従軸サーボ系７００の動特性モデルを用いたＭＰＣによって、指令速度（従軸）を生成する。
【０１９３】
先ず、第２ＭＰＣ部５５０は、従軸サーボドライバ７１０および機械７３０のモデル（つまり、従軸サーボ系７００の動特性モデル）を内部モデルとして有し、この内部モデルを用いて、「未来の周期（従軸側制御周期）におけるＦＢ位置（従軸）」を予測する。例えば、第２ＭＰＣ部５５０は、従軸サーボ系７００の動特性モデルによって、「これまでに取得しているＦＢ位置（従軸）」および「これまでに従軸サーボドライバ７１０へ出力している指令値（従軸）」を用いて、「未来の従軸側制御周期におけるＦＢ位置（従軸）」を予測する。
【０１９４】
そして、第２ＭＰＣ部５５０は、予測した「未来の周期におけるＦＢ位置（従軸）」が、カム演算部５４０により演算された対応従属位置に一致するように、従軸サーボ系７００に対する現在の周期における指令値（例えば、指令速度（従軸））を生成する。第２ＭＰＣ部５５０は、予測した「未来の周期におけるＦＢ位置（従軸）」が、「未来の主軸側制御周期におけるＦＢ位置（主軸）」に対応する「未来の従軸制御周期における指令位置（従軸）」に一致するよう、現在の従軸制御周期における指令速度（従軸）を生成する。第２ＭＰＣ部５５０は、生成した「現在の従軸制御周期における指令速度（従軸）」を、現在の従軸制御周期において、従軸サーボ系７００（具体的には、従軸サーボドライバ７１０）に出力する。
【０１９５】
監視部５６０は、監視部１５０と同様であるため、詳細は略記する。また、記憶部５７０、および、記憶部５７０に格納されている予測主軸位置テーブル５７１は、各々、記憶部１６０、および記憶部１６０に格納されている予測主軸位置テーブル１６１と同様であるため、詳細は略記する。すなわち、予測主軸位置テーブル５７１には、第２予測部５３０によって、第２予測部５３０が各主軸側制御周期において予測した、主軸側制御周期ごとの「未来の主軸側制御周期におけるＦＢ位置（主軸）」が格納される。また、監視部５６０は、第２予測部５３０により予測された「未来の主軸側制御周期におけるＦＢ位置（主軸）」を監視し、例えば、予測主軸位置テーブル５７１に格納されている複数周期分の「未来の主軸側制御周期におけるＦＢ位置（主軸）」を監視する。監視部５６０は、「未来の主軸側制御周期におけるＦＢ位置（主軸）」の経時変化を監視することによって、「未来の主軸側制御周期におけるＦＢ位置（主軸）」の変動を検知し、例えば、変動にみられる傾向性および急激な変動の発生等を把握する。
【０１９６】
（コントローラが実行する処理について）
図４は、コントローラ５００が実行する処理の全体概要を示すフロー図である。コントローラ５００は先ず初期処理を実行し（Ｓ８１０）、例えば、起動後、通常動作（主軸サーボ系６００および従軸サーボ系７００の各々への制御処理）を開始する前の初期イニシャライズ（初期処理、例えば、通常動作に必要な各種の設定処理等）を実行する。
【０１９７】
コントローラ５００は、主軸サーボ系６００および従軸サーボ系７００の各々から、主軸および従軸の各々のＦＢ値（つまり、ＦＢ位置（主軸）およびＦＢ位置（従軸））を入力として受け付ける（Ｓ８２０）。そして、指令値生成部５１０は、主軸の目標軌道データから、主軸側制御周期ごとの主軸サーボドライバ６１０への指令値（例、指令位置（主軸））を計算する（Ｓ８３０）。指令値生成部５１０は、生成した指令位置（主軸）を、第１ＭＰＣ部５２０および第２予測部５３０へと出力する。指令値生成部５１０から指令位置（主軸）を通知された第１ＭＰＣ部５２０は、主軸サーボ系６００の動特性モデルを用いるＭＰＣによって、主軸サーボドライバ６１０に対する指令値（例、指令速度（主軸））を計算する（Ｓ８４０）。
【０１９８】
第２予測部５３０は、Ｓ８２０で受け付けたＦＢ位置（主軸）と、指令値生成部５１０から取得する「過去、現在、および、未来の主軸側制御周期の各々における指令位置（主軸）」とから、主軸の未来のＦＢ値を予測する（Ｓ８５０）。すなわち、第２予測部５３０は、過去および現在の主軸側制御周期の各々における位置偏差（＝指令位置とＦＢ位置との偏差）と、未来の主軸側制御周期における指令位置（主軸）とを用いて、未来の主軸側制御周期におけるＦＢ位置（主軸）を、予測する。第２予測部５３０は、予測した「未来の主軸側制御周期におけるＦＢ位置（主軸）」を、カム演算部５４０に通知する。
【０１９９】
カム演算部５４０は、第２予測部５３０から通知された「未来の主軸側制御周期におけるＦＢ位置（主軸）」に対応する、従軸の未来対応値（対応従属位置）を、つまり、「未来の従軸制御周期における指令位置（従軸）」を、計算する（Ｓ８６０）。カム演算部５４０は、「未来の主軸側制御周期におけるＦＢ位置（主軸）」から計算した対応従属位置を、第２ＭＰＣ部５５０に通知する。
【０２００】
第２ＭＰＣ部５５０は、従軸サーボ系７００の動特性モデルを用いて、従軸サーボドライバ７１０への指令値を計算し（Ｓ８７０）、つまり、従軸サーボ系７００の動特性モデルを用いたＭＰＣを従軸サーボ系７００の制御に適用する。具体的には、第２ＭＰＣ部５５０は、従軸サーボ系７００の動特性モデルを用いて予測した「未来の周期（従軸側制御周期）におけるＦＢ位置（従軸）」が、Ｓ８６０で計算した対応従属位置に一致するように、指令速度（従軸）を生成する。
【０２０１】
コントローラ５００（具体的には、第１ＭＰＣ部５２０および第２ＭＰＣ部５５０の各々）は、主軸側および従軸側のサーボドライバ（つまり、主軸サーボドライバ６１０および従軸サーボドライバ７１０）へ、指令値を出力する（Ｓ８８０）。すなわち、第１ＭＰＣ部５２０は主軸サーボドライバ６１０に指令速度（主軸）を出力し、第２ＭＰＣ部５５０は従軸サーボドライバ７１０に指令速度（従軸）を出力する。そして、コントローラ５００は、制御が終了する（Ｓ８９０でＹｅｓ）まで、Ｓ８２０からＳ８８０までの処理を、制御周期ごとに繰り返す。
【０２０２】
これまでに図４を用いて説明してきた、コントローラ５００の実行する制御方法は、以下のように整理することができる。すなわち、コントローラ５００の実行する制御方法は、主軸の位置に対して従軸の位置を追従させる制御装置の制御方法であって、「主軸の目標軌道から生成される指令位置である指令位置（主軸）（つまり、主軸指令位置）と、ＦＢ位置（主軸）との偏差である位置偏差（つまり、位置偏差（主軸））」の、現在における時間変化率が、所定期間にわたって一定のまま継続すると仮定して、未来におけるＦＢ位置（主軸）を予測する予測ステップ（Ｓ８５０）と、予測ステップにて予測された「未来におけるＦＢ位置（主軸）」に対応する、「未来における従軸の位置」である対応従属位置を演算する演算ステップ（Ｓ８６０）と、従軸の位置をフィードバック制御する従軸サーボ系７００の動特性モデルを用いて予測する「未来における従軸の予測位置」が、演算ステップにて演算された「未来における対応従属位置」に一致するように、従軸サーボ系７００に対する現在における指令値である従軸指令値を生成する従軸指令ステップ（Ｓ８７０）と、を含んでいる。
【０２０３】
前記の方法によれば、前記制御方法は、「位置偏差（主軸）の、現在における時間変化率が、所定期間にわたって一定のまま継続する」と仮定して、未来におけるＦＢ位置（主軸）を予測する。
【０２０４】
特に、前記制御方法は、主軸サーボ系６００の動特性モデルを用いずに予測した「未来のＦＢ位置（主軸）」から、「未来のＦＢ位置（主軸）」に対応する、「従軸の未来の位置」である対応従属位置を演算する。そして、前記制御方法は、演算した「対応従属位置（未来における従軸の位置）」を「従軸の未来の指令値（指令位置）」とする、従軸サーボ系７００の動特性モデルを用いたＭＰＣを、従軸の制御に適用する。つまり、前記制御方法は、未来におけるＦＢ位置（主軸）を予測し、予測した「未来におけるＦＢ位置（主軸）」に対応する「対応従属位置（従軸の未来の指令値、未来の周期における指令位置（従軸））」を用いたＭＰＣを、従軸の制御に適用する。
【０２０５】
したがって、前記制御方法は、従軸の位置制御について追従性を向上させ、従軸の位置制御を高速化・高精度化することができるとの効果を奏する。例えば、前記制御方法は、前記制御方法によって制御する機械等の動作をより高速化させて、これらの機械を用いた生産現場の生産性の向上に寄与するとの効果を奏する。
【０２０６】
〔実施形態３〕
本発明の実施形態３について、図５に基づいて、以下に説明する。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０２０７】
図５は、実施形態３に係るコントローラ９００等の要部構成を示すブロック図である。図５に示すように、コントローラ９００は、実施形態２に係るコントローラ５００と以下の１点において異なり、他の点においてはコントローラ５００と同様である。すなわち、コントローラ９００は、コントローラ５００の第２予測部５３０に代えて、コントローラ１００の第１予測部１２０を備え、その他の構成はコントローラ５００と同様である。
【０２０８】
ここで、コントローラ１００の第１予測部１２０およびコントローラ５００の各構成については既に説明しているから、詳細は略記する。すなわち、コントローラ９００の第１予測部１２０は、主軸サーボ系６００から、「主軸サーボ系６００（特に、機械６３０）の出力である主軸の位置（＝ＦＢ位置（主軸））」を、ＦＢ情報として、主軸側制御周期ごとに取得する。そして、第１予測部１２０は、主軸側制御周期ごとに取得したＦＢ位置（主軸）から、「未来の主軸側制御周期におけるＦＢ位置（主軸）」を主軸側制御周期ごとに予測する。第１予測部１２０は、予測した主軸側制御周期ごとの「未来の主軸側制御周期におけるＦＢ位置（主軸）」を、カム演算部５４０に通知し、また、記憶部５７０の予測主軸位置テーブル５７１に格納する。カム演算部５４０は、第１予測部１２０から通知された「未来の主軸側制御周期におけるＦＢ位置（主軸）」に対応する、「未来の従軸制御周期における指令位置（従軸）」を演算する。
【０２０９】
「第２予測部５３０に代えて、第１予測部１２０を備えている」点を除いて、コントローラ９００がコントローラ５００と同様であるのに対応して、コントローラ９００が実行する処理も、コントローラ５００の実行する処理とほぼ同様である。
【０２１０】
具体的には、図４のＳ８５０において、第２予測部５３０は、Ｓ８２０で受け付けたＦＢ位置（主軸）と、指令値生成部５１０から取得する「過去、現在、および、未来の主軸側制御周期の各々における指令位置（主軸）」とから、主軸の未来のＦＢ値を予測した。これに対して、コントローラ９００は、図４のＳ８１０からＳ８４０までの処理を実行した後、以下の処理を実行する。
【０２１１】
すなわち、コントローラ９００の第１予測部１２０は、Ｓ８２０で受け付けたＦＢ位置（主軸）から、主軸の未来ＦＢ値を、つまり、「未来の主軸側制御周期におけるＦＢ位置（主軸）」を、予測する（Ｓ８５０’）。そして、第１予測部１２０は、予測した「未来の主軸側制御周期におけるＦＢ位置（主軸）」を、カム演算部５４０に通知する。その後、コントローラ９００は、図４のＳ８６０からＳ８９０までの処理を実行する。
【０２１２】
〔各実施形態のコントローラが奏する効果〕
これまでに説明してきたコントローラ１００、５００、および９００の各々が奏する効果について、以下に図６から図９を用いて説明していく。具体的には、主軸制御に外乱を印加するシミュレーション１およびシミュレーション２の各々において、従来のコントローラおよび各実施形態に係るコントローラが実現する従軸制御について、以下に詳細を説明していく。
【０２１３】
（シミュレーション例１）
図６は、シミュレーション１において、主軸の制御（例えば、制御システム１における主軸サーボ系２００、制御システム２における主軸サーボ系６００、および、制御システム３における主軸サーボ系６００）に印加する正弦波状のトルク外乱を示す図である。図６に例示するように、以下に説明するシミュレーション１において、主軸の制御に印加する外乱は、振幅５０％、周波数１０Ｈｚの正弦波状のトルク外乱とする。
【０２１４】
図７は、図６の外乱を印加した場合に、従来のコントローラおよび各実施形態に係るコントローラ（つまり、コントローラ１００、５００、および９００）が実現する従軸制御について説明する図である。シミュレーション１において、従来のコントローラおよび各実施形態に係るコントローラは、主軸と従軸とに同一の動作をさせようとするものとし、図６に示す外乱を主軸の制御に印加したときの、各コントローラの従軸制御の結果を示すのが、図７である。
【０２１５】
図７において（Ａ）は、従来のコントローラ（つまり、「主軸の未来のフィードバック値」の予測を行なわないコントローラ）について、主軸の制御に図６の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。なお、従来のコントローラは、従軸の制御において、現在の指令値が予測区間継続するとみなして従軸の制御を行なうものとする。
【０２１６】
同様に、図７において（Ｂ）は、コントローラ１００について、主軸サーボ系２００に図６の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。図７において（Ｃ）は、コントローラ９００について、主軸サーボ系６００に図６の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。図７において（Ｄ）は、コントローラ５００について、主軸サーボ系２００に図６の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。
【０２１７】
ここで、図７の（Ａ）から（Ｄ）の各々における「指令位置」は、従軸側への指令位置を示しており、具体的には主軸のＦＢ位置（つまり、ＦＢ位置（主軸））を示している。また、図７の（Ａ）から（Ｄ）の各々における「位置偏差」は、主軸のＦＢ位置（つまり、ＦＢ位置（主軸）。言い換えれば、前述の従軸側への「指令位置」）と従軸のＦＢ位置（つまり、ＦＢ位置（従軸））との偏差を示している。さらに、図７の（Ａ）から（Ｄ）の各々における「トルク」は、従軸を制御するフィードバック制御系（例えば、従軸サーボ系３００または従軸サーボ系７００）の出力するトルクを示している。
【０２１８】
なお、前述の通り、主軸サーボ系６００の動特性モデルを用いたＭＰＣを主軸サーボ系６００の制御に適用するコントローラ５００および９００は、主軸サーボ系６００の制御について動摩擦補償も適用するものとする。これに対して、コントローラ１００は、主軸サーボ系２００の制御にＭＰＣも動摩擦補償も適用していない。
【０２１９】
図７に示すように、従来のコントローラ（図７の（Ａ）に対応）と比較して、コントローラ１００、５００、および９００（各々、図７の（Ｂ）、（Ｄ）、および（Ｃ）に対応）はいずれも、追従性が大幅に向上している。具体的には、図７の（Ａ）の「位置偏差」に比べて、図７の（Ｂ）、（Ｄ）、および（Ｃ）の各々における「位置偏差」は大幅に低減している。これは、未来のＦＢ位置（主軸）の予測が、つまり、従軸側への未来の「指令位置」の予測が、従軸の制御に対して大きな効果を果たすことを示している。
【０２２０】
ここで、時刻０ｓの「動作開始時」、および、動作開始から０．２５ｓ後、０．５ｓ後、０．７５ｓ後における「動作方向反転時」は、摩擦の影響によって「位置偏差」が大きくなりやすい。図７の（Ａ）においては「位置偏差」が全体的に大きく、グラフのレンジが大きいために確認できないが、図７の（Ｂ）、（Ｄ）、および（Ｃ）の各々において、「動作開始時」および「動作方向反転時」に、「位置偏差」が大きくなっていることが分かる。これは、「動作反転時（および動作開始時）」は、摩擦によって加速度が不連続に変化するため、予測値（つまり、「未来のＦＢ位置（主軸）」。本シミュレーションでは、従軸側への未来の「指令位置」と一致）と実測値との誤差が大きくなることが原因である。
【０２２１】
例えば、図７の（Ｂ）（コントローラ１００に対応）と比べて、図７の（Ｃ）（コントローラ９００に対応）において、「動作反転時（および動作開始時）」の「位置偏差」は抑制されている。これは、コントローラ９００が主軸制御に動摩擦補償を適用しているために、主軸のＦＢ値（具体的には、ＦＢ位置（主軸））の加速度変化が低減されているためである。
【０２２２】
また、図７の（Ｃ）（コントローラ９００に対応）と比べて、図７の（Ｄ）（コントローラ５００に対応）において、「動作反転時（および動作開始時）」の「位置偏差」はさらに抑制されている。これは、予測値（つまり、「未来のＦＢ位置（主軸）」。本シミュレーションでは、従軸側への未来の「指令位置」と一致）の予測方法におけるコントローラ９００とコントローラ５００との違いが影響しているものと考えられる。
【０２２３】
つまり、未来のＦＢ位置（主軸）（＝従軸側への未来の「指令位置」）の予測に、ＦＢ位置（主軸）の加速度情報を用いるか、または、主軸の位置偏差（つまり、ＦＢ位置（主軸）と指令位置（主軸）との偏差）の変化率を用いるかの違いが主因と考えられる。
【０２２４】
前述の通り、コントローラ９００は、未来のＦＢ位置（主軸）（＝従軸側への未来の「指令位置」）の予測に、主軸のＦＢ位置の加速度情報を用い、主軸の位置偏差の変化率を用いていない。コントローラ９００は、コントローラ５００の第２予測部５３０に代えて、コントローラ１００の第１予測部１２０を備える。そして、コントローラ９００の第１予測部１２０は、未来の主軸側制御周期におけるＦＢ位置（主軸）の予測に、「現在および過去の各々の主軸側制御周期におけるＦＢ位置（主軸）」を利用し、「主軸の位置偏差の変化率」を利用しない。
【０２２５】
これに対して、コントローラ５００の第２予測部５３０は、主軸の各主軸側制御周期における位置偏差の、時間に対する変化率が、複数の周期にわたって一定であると仮定して、未来の主軸側制御周期におけるＦＢ位置（主軸）を予測する。
【０２２６】
つまり、コントローラ９００が未来のＦＢ位置（主軸）の予測に「主軸の位置偏差の変化率」を用いないのに対し、コントローラ５００は「主軸の位置偏差の変化率」を用いて未来のＦＢ位置（主軸）を予測する。未来のＦＢ位置（主軸）の予測方法についての、コントローラ５００とコントローラ９００との違いから、「動作反転時（および動作開始時）」の「位置偏差」は、図７の（Ｃ）に比べて図７の（Ｄ）において、より抑制されているものと考えられる。
【０２２７】
さらに、図７の（Ｄ）（コントローラ５００に対応）の「トルク」は、図７の（Ｂ）および図７の（Ｃ）の各々における「トルク」に比べて、ピーク値が抑制されていることが分かる。
【０２２８】
（シミュレーション例２）
図８は、シミュレーション２において、主軸の制御（例えば、制御システム１における主軸サーボ系２００、制御システム２における主軸サーボ系６００、および、制御システム３における主軸サーボ系６００）に印加するパルス状のトルク外乱を示す図である。図８に例示するように、以下に説明するシミュレーション２においては、時刻０．３ｓに、大きさ２００％、時間幅５０ｍｓのパルス状のトルク外乱を主軸の制御に印加するものとする。
【０２２９】
図９は、図８の外乱を印加した場合に、従来のコントローラおよび各実施形態に係るコントローラ（つまり、コントローラ１００、５００、および９００）が実現する従軸制御について説明する図である。シミュレーション２において、従来のコントローラおよび各実施形態に係るコントローラは、シミュレーション１と同様に、主軸と従軸とに同一の動作をさせようとするものとする。シミュレーション２において、図８に示す外乱を主軸の制御に印加したときの、各コントローラの従軸制御の結果を示すのが、図９である。
【０２３０】
図９において（Ａ）は、従来のコントローラ（つまり、「主軸の未来のフィードバック値」の予測を行なわないコントローラ）について、主軸の制御に図８の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。なお、従来のコントローラは、従軸の制御において、現在の指令値が予測区間継続するとみなして従軸の制御を行なうものとする。
【０２３１】
同様に、図９において（Ｂ）は、コントローラ１００について、主軸サーボ系２００に図８の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。図９において（Ｃ）は、コントローラ９００について、主軸サーボ系６００に図８の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。図９において（Ｄ）は、コントローラ５００について、主軸サーボ系２００に図８の外乱を印加した場合の「指令位置」、「位置偏差」、および、「トルク」を順に示している。
【０２３２】
ここで、図９の（Ａ）から（Ｄ）の各々における「指令位置」は、従軸側への指令位置を示しており、具体的には主軸のＦＢ位置（つまり、ＦＢ位置（主軸））を示している。また、図９の（Ａ）から（Ｄ）の各々における「位置偏差」は、主軸のＦＢ位置（つまり、ＦＢ位置（主軸）。言い換えれば、前述の従軸側への「指令位置」）と従軸のＦＢ位置（つまり、ＦＢ位置（従軸））との偏差を示している。さらに、図９の（Ａ）から（Ｄ）の各々における「トルク」は、従軸を制御するフィードバック制御系（例えば、従軸サーボ系３００または従軸サーボ系７００）の出力するトルクを示している。
【０２３３】
なお、前述の通り、主軸サーボ系６００の動特性モデルを用いたＭＰＣを主軸サーボ系６００の制御に適用するコントローラ５００および９００は、主軸サーボ系６００の制御について動摩擦補償も適用するものとする。これに対して、コントローラ１００は、主軸サーボ系２００の制御にＭＰＣも動摩擦補償も適用していない。
【０２３４】
図９に示すように、従来のコントローラ（図９の（Ａ）に対応）と比較して、コントローラ１００、５００、および９００（各々、図９の（Ｂ）、（Ｄ）、および（Ｃ）に対応）はいずれも、追従性が大幅に向上している。具体的には、図９の（Ａ）の「位置偏差」に比べて、図９の（Ｂ）、（Ｄ）、および（Ｃ）の各々における「位置偏差」は大幅に低減している。これは、未来のＦＢ位置（主軸）の予測が、つまり、従軸側への未来の「指令位置」の予測が、従軸の制御に対して大きな効果を果たすことを示している。
【０２３５】
ここで、時刻０．３ｓの「外乱印加開始時」と、時刻０．３５ｓの「外乱印加終了時」とにおいて、図９の（Ｂ）、（Ｄ）、および（Ｃ）の各々における「位置偏差」は大きくなっている。なお実際には、図９の（Ａ）においても、「外乱印加開始時」と「外乱印加終了時」とにおいて「位置偏差」は大きくなっているが、図９の（Ａ）においては「位置偏差」が全体的に大きいために、目立たないだけである。
【０２３６】
図９の（Ｂ）、（Ｄ）、および（Ｃ）の各々における「位置偏差」は、ほぼ等しい大きさである。ただし、図９の（Ｄ）（コントローラ５００に対応）の「トルク」は、図９の（Ｂ）（コントローラ１００に対応）および図９の（Ｃ）（コントローラ９００に対応）の各々における「トルク」に比べて、ピーク値が抑制されている。この違いは、コントローラ５００と、コントローラ１００および９００との、未来のＦＢ位置（主軸）（＝従軸側への未来の「指令位置」）の予測方法の違いに起因するものと考えられる。
【０２３７】
すなわち、コントローラ５００は、主軸の位置偏差の変化率（つまり、主軸のＦＢ位置の速度情報）を用いて、未来のＦＢ位置（主軸）（＝従軸側への未来の「指令位置」）を予測している。これに対して、コントローラ１００および９００は、未来のＦＢ位置（主軸）の予測に、ＦＢ位置（主軸）の加速度を用いて、主軸の位置偏差の変化率を用いない。
【０２３８】
§４．変形例
これまで、コントローラ１００、５００、および９００の各々が、従軸サーボドライバ３１０および従軸サーボドライバ７１０の各々に、指令速度（従軸）を送信する例を説明した。しかしながら、コントローラ１００、５００、および９００の各々は、従軸サーボドライバ３１０および従軸サーボドライバ７１０の各々に、「従軸についての指令位置（つまり、指令位置（従軸））」を送信してもよい。この場合、従軸サーボドライバ３１０および従軸サーボドライバ７１０の各々について、速度制御部３２０および速度制御部７２０の各々が実行する速度制御ループの前に、位置制御ループが追加されることになる。
【０２３９】
同様に、コントローラ５００は、主軸サーボドライバ６１０に、「主軸についての指令位置（つまり、指令位置（主軸））」を送信してもよい。この場合、主軸サーボドライバ６１０について、速度制御部６２０が実行する速度制御ループの前に、位置制御ループが追加されることになる。
【０２４０】
また、これまで、コントローラ１００、５００、および９００の各々が、電子カム制御に適用される例を説明してきたが、コントローラ１００、５００、および９００の各々の適用範囲は、電子カム制御に限られるものではない。コントローラ１００、５００、および９００の各々の適用範囲は、主軸の位置に対して従軸の位置を追従させる制御であれば、特に限定されない。
【０２４１】
〔ソフトウェアによる実現例〕
コントローラ１００、５００、および９００の制御ブロック（特に、指令値生成部１１０、第１予測部１２０、カム演算部１３０、ＭＰＣ部１４０、監視部１５０、指令値生成部５１０、第１ＭＰＣ部５２０、第２予測部５３０、カム演算部５４０、第２ＭＰＣ部５５０、および、監視部５６０）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【０２４２】
後者の場合、コントローラ１００、５００、および９００は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０２４３】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０２４４】
１００  コントローラ（制御装置）
１２０  第１予測部（予測部）
１３０  カム演算部（演算部）
１４０  ＭＰＣ部（従軸指令部）
１５０  監視部
５００  コントローラ（制御装置）
５２０  第１ＭＰＣ部（主軸指令部）
５３０  第２予測部（予測部）
５４０  カム演算部（演算部）
５５０  第２ＭＰＣ部（従軸指令部）
５６０  監視部
９００  コントローラ（制御装置）
Ｓ４４０  予測ステップ
Ｓ４５０  演算ステップ
Ｓ４６０  従軸指令ステップ
Ｓ８５０  予測ステップ
Ｓ８６０  演算ステップ
Ｓ８７０  従軸指令ステップ
【図１】
2020005385.tif 000007
【図２】
2020005385.tif 000008
【図３】
2020005385.tif 000009
【図４】
2020005385.tif 000010
【図５】
2020005385.tif 000011
【図６】
2020005385.tif 000012
【図７】
2020005385.tif 000013
【図８】
2020005385.tif 000014
【図９】
2020005385.tif 000015