(57)【要約】【課題】電子カム制御について、実際の稼働時における負荷および機械特性等の変化に対応する適切な補償を実行する。【解決手段】コントローラ（１００）は、従軸の位置をフィードバック制御するフィードバック制御系（２００）からフィードバック位置を取得して、フィードバック制御系（２００）に対するスライディングモード制御を実行する。【選択図】図１
2020004023.tif 000002
【特許請求の範囲】
【請求項１】
電子カムの主軸の位置から、前記電子カムの従軸の位置を制御するフィードバック制御系に出力する指令値を生成する制御装置であって、
前記主軸の位置に対応する前記従軸の位置である対応位置を演算するカム演算部と、
前記指令値に対する前記フィードバック制御系の状態方程式から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、前記カム演算部により演算された前記対応位置と、前記フィードバック制御系から取得する前記従軸のフィードバック位置とから、前記フィードバック制御系に対するスライディングモード制御を実行するスライディングモード制御部と、
を備えることを特徴とする制御装置。
【請求項２】
前記スライディングモード制御部は、前記対応位置と前記フィードバック位置との偏差である位置偏差、および、前記位置偏差を時間微分して算出した速度偏差が、前記切替線に収束し、前記位置偏差および前記速度偏差が前記切替線を通って０に収束するように、前記スライディングモード制御を実行する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記スライディングモード制御部は、前記スライディングモード制御の実行によって生成した速度指令を、前記指令値として前記フィードバック制御系に出力する
ことを特徴とする請求項１または２に記載の制御装置。
【請求項４】
電子カムの主軸の位置から、前記電子カムの従軸の位置を制御するフィードバック制御系に出力する指令値を生成する制御装置の制御方法であって、
前記主軸の位置に対応する前記従軸の位置である対応位置を演算するカム演算ステップと、
前記指令値に対する前記フィードバック制御系の状態方程式から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、前記カム演算ステップにて演算された前記対応位置と、前記フィードバック制御系から取得する前記従軸のフィードバック位置とから、前記フィードバック制御系に対するスライディングモード制御を実行するスライディングモード制御ステップと、
を含むことを特徴とする制御方法。
【請求項５】
請求項１から３のいずれか一項に記載の制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
【請求項６】
請求項５に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子カム制御装置等に関する。
【背景技術】
【０００２】
従来、電子カム制御について、従軸位置を本来のカム曲線に追従させるための種々の試みが知られている。
例えば、下掲載の特許文献１には、サーボ系の追従遅れを補償した簡易なサーボ制御システムを実現する方法として、以下の方法が開示されている。すなわち、先ず、第１のパターン（＝原カムパターン）を時間で微分すると共に、該微分された値に位置制御ゲインの逆数の次元を有する定数が乗算された乗算値を求め、該乗算値から予め定められた位相を減算することにより、補正パターンを生成する。そして、生成した補正パターンを第１のパターンに加算して第２のパターンを生成し、生成した該第２のパターンを用いて、サーボモータの位置指令を発生する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開ＷＯ２００３／００５１４１（２００３年１月１６日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のような従来技術は、予め所定の動作を行うことによって決定した設定値（具体的には、或る時点のサーボ系のゲイン。特に、位置制御ゲイン）を用いて、従軸を制御するサーボ系への指令値を生成するオープンループ制御である。そのため、従来技術には、実際の稼働状態における負荷および機械特性等の逐次的または経時的変化に伴う、追従性（言い換えれば、応答性）の変化に対応することができないという問題がある。
【０００５】
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、実際の稼働時における負荷および機械特性等の変化に対応可能な、高追従性と高ロバスト性とを両立した電子カム制御装置等を実現することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明の一態様に係る制御装置は、電子カムの主軸の位置から、前記電子カムの従軸の位置を制御するフィードバック制御系に出力する指令値を生成する制御装置であって、前記主軸の位置に対応する前記従軸の位置である対応位置を演算するカム演算部と、前記指令値に対する前記フィードバック制御系の状態方程式から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、前記カム演算部により演算された前記対応位置と、前記フィードバック制御系から取得する前記従軸のフィードバック位置とから、前記フィードバック制御系に対するスライディングモード制御を実行するスライディングモード制御部と、を備えることを特徴としている。
【０００７】
前記の構成によれば、前記制御装置は、前記主軸の位置に対応する前記従軸の位置である前記対応位置と、前記フィードバック制御系から取得する前記従軸のフィードバック位置とから、前記電子カムの従軸の位置を制御するフィードバック制御系に対して、スライディングモード制御を実行する。
【０００８】
ここで、一般にスライディングモード制御は、高追従性と高ロバスト性とを両立する制御方式として知られている。前記制御装置は、例えばカム曲線（前記主軸の位相に対する、理想的な前記従軸の変位）を前記従軸の目標軌跡として、前記従軸の制御にスライディングモード制御を適用する。
【０００９】
したがって、前記制御装置は、高追従性と高ロバスト性とを両立するスライディングモード制御を前記従軸の制御に適用することによって、前記従軸の制御について、高追従性と高ロバスト性とを実現することができるとの効果を奏する。
【００１０】
特に、前記制御装置は、前記主軸の始動時および停止時の加減速、前記主軸の速度変更、そして、前記従軸の負荷変動および機械剛性の特性変化に伴う応答性の変化等に対して、適切な補償を実行し、前記従軸の制御の高追従性を維持できるとの効果を奏する。
【００１１】
すなわち、前記制御装置は、前記フィードバック制御系の前記状態方程式に対応する前記パラメータｓにより傾斜が指定される切替線を用いて、前記対応位置と、前記フィードバック位置とから、前記フィードバック制御系へのスライディングモード制御を実行する。言い換えれば、前記制御装置は、前記フィードバック制御系の動特性を用いて、前記対応位置と、前記フィードバック位置とから、前記従軸の追従偏差を低減するための補正量を実時間で逐次算出する。つまり、前記制御装置は、前記フィードバック制御系の動特性を用いて、前記対応位置と、前記フィードバック位置とから、前記主軸の速度変更、そして、前記従軸の負荷変動および機械剛性の特性変化に伴う応答性の変化等に対する補償を実行する。そして、前記制御装置は、算出した補正量を前記対応位置に重畳して得る指令値を、前記フィードバック制御系に出力する。
【００１２】
したがって、前記制御装置は、実際の稼働時における負荷および機械特性等の変化に対応する適切な補償を実行し、高追従性と高ロバスト性とを両立した前記従軸の制御を実現することができるとの効果を奏する。
【００１３】
さらに、前記制御装置は、前記フィードバック制御系の状態方程式から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、前記スライディングモード制御を実行するので、前記従軸の制御に係る調整工数を低減できるとの効果を奏する。
【００１４】
本発明の一態様に係る制御装置において、前記スライディングモード制御部は、前記対応位置と前記フィードバック位置との偏差である位置偏差、および、前記位置偏差を時間微分して算出した速度偏差が、前記切替線に収束し、前記位置偏差および前記速度偏差が前記切替線を通って０に収束するように、前記スライディングモード制御を実行してもよい。
【００１５】
前記の構成によれば、前記制御装置は、前記電子カムの前記従軸の位置を制御する前記フィードバック制御系に対して、前記位置偏差および前記速度偏差が、前記切替線に収束し、前記位置偏差および前記速度偏差が前記切替線を通って０に収束するように、前記スライディングモード制御を実行する。
【００１６】
したがって、前記制御装置は、高追従性と高ロバスト性とを両立するスライディングモード制御を前記従軸の制御に適用することによって、前記従軸の制御について、高追従性と高ロバスト性とを実現することができるとの効果を奏する。
【００１７】
特に、前記制御装置は、前記切替線を用いて、前記対応位置と、前記フィードバック位置とから、前記フィードバック制御系へのスライディングモード制御を実行する。したがって、前記制御装置は、実際の稼働時における負荷および機械特性等の変化に対応する適切な補償を実行し、高追従性と高ロバスト性とを両立した前記従軸の制御を実現することができるとの効果を奏する。
【００１８】
本発明の一態様に係る制御装置において、前記スライディングモード制御部は、前記スライディングモード制御の実行によって生成した速度指令を、前記指令値として前記フィードバック制御系に出力してもよい。
【００１９】
前記の構成によれば、前記制御装置は、前記スライディングモード制御を実行して生成した前記速度指令を、前記フィードバック制御系に出力する。
【００２０】
ここで、一般に、前記フィードバック制御系における速度制御ループの制御周期は、前記制御装置による前記フィードバック制御系への制御周期（つまり、前記速度指令を前記フィードバック制御系に送信する周期）よりも早い。
【００２１】
前記制御装置は、自装置から前記フィードバック制御系への制御周期よりも高速な制御周期で実行される、前記フィードバック制御系における速度制御ループへ、前記速度指令を出力することによって、前記速度制御ループによる摩擦補償の効果を実現する。したがって、前記制御装置は、自装置と前記フィードバック制御系とによって実現する制御の全体について、前記速度制御ループによる摩擦補償の効果を実現し、外乱へのロバスト性を向上させることができるとの効果を奏する。
【００２２】
上記の課題を解決するために、本発明の一態様に係る制御方法は、電子カムの主軸の位置から、前記電子カムの従軸の位置を制御するフィードバック制御系に出力する指令値を生成する制御装置の制御方法であって、前記主軸の位置に対応する前記従軸の位置である対応位置を演算するカム演算ステップと、前記指令値に対する前記フィードバック制御系の状態方程式から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、前記カム演算ステップにて演算された前記対応位置と、前記フィードバック制御系から取得する前記従軸のフィードバック位置とから、前記フィードバック制御系に対するスライディングモード制御を実行するスライディングモード制御ステップと、を含むことを特徴としている。
【００２３】
前記の方法によれば、前記制御方法は、前記主軸の位置に対応する前記従軸の位置である前記対応位置と、前記フィードバック制御系から取得する前記従軸のフィードバック位置とから、前記電子カムの従軸の位置を制御するフィードバック制御系に対して、スライディングモード制御を実行する。
【００２４】
ここで、一般にスライディングモード制御は、高追従性と高ロバスト性とを両立する制御方式として知られている。前記制御方法は、例えばカム曲線（前記主軸の位相に対する、理想的な前記従軸の変位）を前記従軸の目標軌跡として、前記従軸の制御にスライディングモード制御を適用する。
【００２５】
したがって、前記制御方法は、高追従性と高ロバスト性とを両立するスライディングモード制御を前記従軸の制御に適用することによって、前記従軸の制御について、高追従性と高ロバスト性とを実現することができるとの効果を奏する。
【００２６】
特に、前記制御方法は、前記主軸の始動時および停止時の加減速、前記主軸の速度変更、そして、前記従軸の負荷変動および機械剛性の特性変化に伴う応答性の変化等に対して、適切な補償を実行し、前記従軸の制御の高追従性を維持できるとの効果を奏する。
【００２７】
すなわち、前記制御方法は、前記フィードバック制御系の前記状態方程式に対応する前記パラメータｓにより傾斜が指定される切替線を用いて、前記対応位置と、前記フィードバック位置とから、前記フィードバック制御系へのスライディングモード制御を実行する。言い換えれば、前記制御方法は、前記フィードバック制御系の動特性を用いて、前記対応位置と、前記フィードバック位置とから、前記従軸の追従偏差を低減するための補正量を実時間で逐次算出する。つまり、前記制御方法は、前記フィードバック制御系の動特性を用いて、前記対応位置と、前記フィードバック位置とから、前記主軸の速度変更、そして、前記従軸の負荷変動および機械剛性の特性変化に伴う応答性の変化等に対する補償を実行する。そして、前記制御方法は、算出した補正量を前記対応位置に重畳して得る指令値を、前記フィードバック制御系に出力する。
【００２８】
したがって、前記制御方法は、実際の稼働時における負荷および機械特性等の変化に対応する適切な補償を実行し、高追従性と高ロバスト性とを両立した前記従軸の制御を実現することができるとの効果を奏する。
【００２９】
さらに、前記制御方法は、前記フィードバック制御系の状態方程式から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、前記スライディングモード制御を実行するので、前記従軸の制御に係る調整工数を低減できるとの効果を奏する。
【発明の効果】
【００３０】
本発明の一態様によれば、電子カム制御について、実際の稼働時における負荷および機械特性等の変化に対応する適切な補償を実行し、高追従性と高ロバスト性とを両立した従軸の制御を実現することができるという効果を奏する。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態１に係るコントローラ等の要部構成を示すブロック図である。
【図２】図１のコントローラが実行する処理の概要を示すフロー図である。
【図３】シミュレーション例１およびシミュレーション例２において実現すべき電子カムのカム曲線を示す図である。
【図４】図３のカム曲線について、主軸速度が周期的に変動する場合の主軸の速度および対応する従軸の速度の一例を示す図である。
【図５】図３のカム曲線を実現しようとする従来までの電子カム制御装置および図１のコントローラについて、主軸速度が周期的に変動する場合の従軸制御の結果を示す図である。
【図６】図５に示した従来までの電子カム制御装置および図１のコントローラの各々の従軸追従偏差について、その二乗平均を整理して示す図である。
【図７】負荷機械の剛性が低い場合に、従軸制御について補正を行なわない装置、進角補正を行なう装置、および図１のコントローラによる従軸制御の結果を示す図である。
【発明を実施するための形態】
【００３２】
〔実施形態１〕
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。以下では、機械および設備等の制御対象を制御するコントローラ１００を、制御装置の典型例として説明を行う。コントローラ１００は、電子カム制御を実行する制御装置であって、例えばＰＬＣ（プログラマブル・ロジック・コントローラ、Programmable Logic Controller）である。
【００３３】
§１．適用例
主軸の回転位置をもとにサーボモータを制御して従軸の位置を制御する電子カム制御において、従来、追従性を向上する種々の手段が講じられてきた。しかしながら、進角補正などの従来の技術は、予め決めておいた補正量または補正演算式を、従軸を制御するサーボドライバに与えるオープンループ制御である。そのため、従来の技術では、実際の稼働状態において発生する、負荷および機械特性等の変動（＝変化）に適切に対応することができない。
【００３４】
そこで、コントローラ１００は、カム曲線から生成する「従軸に対する指令値」に対して、従軸の駆動をフィードバック制御するフィードバック制御系２００の動特性をもとに、従軸の追従偏差を低減するための補正量を実時間で計算する。そして、コントローラ１００は、その計算結果を「従軸に対する指令値」に重畳してフィードバック制御系２００に与える。
【００３５】
つまり、コントローラ１００は、主軸の速度、フィードバック制御系２００の負荷および機械剛性など、電子カム制御における変動要素に対して、フィードバック制御系２００の動特性をもとに、従軸が追従するために必要な補正量を逐次計算する。したがって、コントローラ１００は、従軸の制御について追従性を向上させることができる。また、コントローラ１００は、予め算出しておいたフィードバック制御系２００の動特性をもとに、従軸を制御するので、従軸の制御に係る調整工数を低減することができる。
【００３６】
コントローラ１００は、フィードバック制御系２００からのフィードバック値を用いたクローズループ制御（閉ループ制御）をフィードバック制御系２００に対して実行する。具体的には、コントローラ１００は、フィードバック制御系２００からのフィードバック値（例えば、フィードバック位置）をもとに、カム演算により演算した位置指令（＝カム動作指令）に対して従軸の追従性を向上させた指令値（例えば、速度指令）を生成し、生成した指令値を、フィードバック制御系２００に与える。ここで特に、コントローラ１００は、フィードバック制御系２００からのフィードバック値を用いたスライディングモード制御を、フィードバック制御系２００に対して実行する。
【００３７】
§２．構成例
図１は、コントローラ１００等の要部構成を示すブロック図である。以下、コントローラ１００についての理解を容易にするため、先ず、コントローラ１００を含む制御システム１の概要について説明する。
【００３８】
（制御システムの概要）
図１に例示する制御システム１は、上位コントローラであるコントローラ１００と、コントローラ１００により制御されるフィードバック制御系２００と、を含んでいる。
【００３９】
フィードバック制御系２００は、サーボドライバ２１０と、サーボドライバ２１０によって駆動を制御されるモータ２５０（および、不図示の負荷機械）と、を含むフィードバック制御系である。コントローラ１００とサーボドライバ２１０とは通信可能に接続されており、その接続方式は、任意の有線接続方式または無線接続方式である。
【００４０】
サーボドライバ２１０は、コントローラ１００から所定の制御周期（従軸側制御周期）ごとに受け付ける「従軸についての指令値」に従って、モータ２５０の出力（つまり、従軸の位置）を制御するフィードバック制御装置である。サーボドライバ２１０は、コントローラ１００からの「従軸についての指令値（例、速度指令）」を目標値とし、実測値（例、フィードバック位置を時間微分したフィードバック速度）をフィードバック値として、モータ２５０にフィードバック制御を行う。すなわち、サーボドライバ２１０は、実測値が目標値に近づくように、モータ２５０を駆動するための電流を調整する。なお、サーボドライバ２１０は、サーボモータアンプと称されることもある。
【００４１】
図１のサーボドライバ２１０は、指令解析部２２０と、速度制御部２３０と、トルク制御部２４０とを備えている。指令解析部２２０は、コントローラ１００からの「従軸についての指令値（例、速度指令）」を受け付け、受け付けた指令値を速度制御部２３０へ出力し、また、受け付けた指令値を解析して算出する算出トルクをトルク制御部２４０へ出力する。速度制御部２３０は、比例積分制御（ＰＩ制御）を行なう。具体的には、速度制御部２３０は、指令解析部２２０がコントローラ１００から受け付けた速度指令と、不図示の微分器がエンコーダ２６０からのフィードバック位置に基づいて算出したフィードバック速度との偏差である速度偏差から、トルク指令を出力する。トルク制御器２４０は、指令解析部２２０からの算出トルクと、速度制御部２３０により生成されたトルク指令とに基づいて、サーボモータ３０を制御する。
【００４２】
モータ２５０は、サーボドライバ２１０によって駆動を制御され、例えば、不図示の負荷機械（メカ）を駆動する。エンコーダ２６０は、モータ２５０の位置を検出し、例えば、モータ２５０の回転角度を検出する。エンコーダ２６０は、検出した位置を、コントローラ１００およびサーボドライバ２１０に送信する。つまり、エンコーダ２６０により検出されたモータ２５０の出力（つまり、モータ２５０の位置）は、従軸の位置のフィードバック値（「フィードバック位置」とも称する）として、コントローラ１００およびサーボドライバ２１０の各々へ入力される。
【００４３】
コントローラ１００（制御装置）は、フィードバック制御系２００を含む制御システム１の全体を制御し、例えば、プログラマブルコントローラ（ＰＬＣ、Programmable Logic Controller）である。コントローラ１００は、電子カム制御装置であり、例えば、電子カムの主軸の位置から、電子カムの従軸の位置を制御するフィードバック制御系２００に出力する指令値を生成する制御装置である。具体的には、コントローラ１００は、主軸の回転位置をもとに、サーボドライバ２１０を介してモータ２５０の駆動を制御して、カム動作を行わせる。
【００４４】
コントローラ１００は、フィードバック制御系２００の動特性を用いたフィードバック制御を、フィードバック制御系２００に対して実行する。すなわち、コントローラ１００は、「主軸の回転位置から演算した従軸の移動指令」と、「現時点、あるいはそれ以前の『フィードバック位置』」とから、フィードバック制御系２００の動特性に基づき、フィードバック制御系２００への指令値を生成する。
【００４５】
具体的には、コントローラ１００は、フィードバック制御系２００からのフィードバック位置が従軸の移動指令に一致するように、補正値を逐次（つまり、制御周期ごとに）生成する。そして、コントローラ１００は、生成した補正値を重畳させた指令値を制御周期ごとにフィードバック制御系２００へと出力する。なお、「主軸の回転位置から演算した従軸の移動指令」は、「本来のカム曲線」と言い換えてもよい。
【００４６】
ここで、コントローラ１００は、フィードバック制御系２００に対するフィードバック制御に用いる「フィードバック制御系２００の動特性」として、以下の値を用いる。すなわち、コントローラ１００は、フィードバック制御系２００への指令値（例えば、位置あるいは速度のステップ状指令）に対する、フィードバック制御系２００の応答動作の時定数を、「フィードバック制御系２００の動特性」として用いる。
【００４７】
具体的には、コントローラ１００は、「指令値に対する、フィードバック制御系２００の応答動作の時定数」から決定されるフィードバック制御系２００の状態方程式をもとに、スライディングモード制御に用いる切替線の傾斜を指定するパラメータｓを予め求めておく。そして、コントローラ１００は、パラメータｓに対応する切替線を用いて、「主軸の回転位置から演算した従軸の移動指令」と、「現時点、あるいはそれ以前の『フィードバック位置』」とから、フィードバック制御系２００にスライディングモード制御を実行する。
【００４８】
コントローラ１００は、「主軸の回転位置から演算した従軸の移動指令（位置指令）」に対する従軸の実際の位置（＝フィードバック位置）との偏差である位置偏差を求め、さらに、位置偏差を時間微分して得られる速度偏差を求める。コントローラ１００は、求めた位置偏差と速度偏差とを用いて、フィードバック制御系２００にスライディングモード制御を実行する。
【００４９】
ここで、フィードバック制御系２００における速度制御ループの制御周期は、コントローラ１００によるフィードバック制御系２００への制御周期（つまり、速度指令をフィードバック制御系２００に送信する周期）よりも早い。
【００５０】
そこで、コントローラ１００は、「スライディングモード制御の実行によって得られた速度指令」を、フィードバック制御系２００に出力する。つまり、コントローラ１００は、自装置からフィードバック制御系２００への制御周期よりも高速な制御周期で実行される、フィードバック制御系２００における速度制御ループへ、速度指令を出力する。
【００５１】
コントローラ１００は、フィードバック制御系２００に速度指令を出力することによって、フィードバック制御系２００の速度制御ループによる摩擦補償の効果を利用することができる。したがって、コントローラ１００は、自装置とフィードバック制御系２００とを含む制御システム１の制御全体について、フィードバック制御系２００の速度制御ループによる摩擦補償の効果を利用して、外乱へのロバスト性を向上させる。
【００５２】
（コントローラの概要）
これまで、制御システム１、およびコントローラ１００の概要を説明してきた。ここで、コントローラ１００の詳細を説明する前に、コントローラ１００についての理解を容易にするため、コントローラ１００の概要について、以下のように整理しておく。
【００５３】
コントローラ１００は、電子カムの主軸の位置から、電子カムの従軸の位置を制御するフィードバック制御系２００に出力する指令値を生成する制御装置であって、カム演算部１１０と、スライディングモード制御部１２０とを備えている。カム演算部１１０は、「電子カムの主軸の位置」に対応する、「電子カムの従軸の位置」である対応位置を演算する。スライディングモード制御部１２０は、「フィードバック制御系２００に出力する指令値に対する、フィードバック制御系２００の状態方程式」から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、フィードバック制御系２００に対するスライディングモード制御を実行する。特に、スライディングモード制御部１２０は、カム演算部１１０により演算された対応位置と、フィードバック制御系２００から取得する従軸のフィードバック位置とから、フィードバック制御系２００に対するスライディングモード制御を実行する。
【００５４】
前記の構成によれば、コントローラ１００は、「電子カムの主軸の位置」に対応する、「電子カムの従軸の位置」である対応位置と、フィードバック制御系２００から取得する「従軸のフィードバック位置」とから、電子カムの従軸の位置を制御するフィードバック制御系２００に対して、スライディングモード制御を実行する。
【００５５】
ここで、一般にスライディングモード制御は、高追従性と高ロバスト性とを両立する制御方式として知られている。コントローラ１００は、例えばカム曲線（主軸の位相に対する、従軸の理想的な変位）を「従軸の目標軌跡」として、従軸の制御にスライディングモード制御を適用する。
【００５６】
したがって、コントローラ１００は、高追従性と高ロバスト性とを両立するスライディングモード制御を従軸の制御に適用することによって、従軸の制御について、高追従性と高ロバスト性とを実現することができるとの効果を奏する。
【００５７】
特に、コントローラ１００は、主軸の始動時および停止時の加減速、主軸の速度変更、そして、従軸の負荷変動および機械剛性の特性変化に伴う応答性の変化等に対して、適切な補償を実行し、従軸の制御の高追従性を維持できるとの効果を奏する。
【００５８】
すなわち、コントローラ１００は、フィードバック制御系２００の状態方程式に対応するパラメータｓにより傾斜が指定される切替線を用いて、前記対応位置と、前記フィードバック位置とから、フィードバック制御系２００へのスライディングモード制御を実行する。言い換えれば、コントローラ１００は、フィードバック制御系２００の動特性を用いて、前記対応位置と、前記フィードバック位置とから、従軸の追従偏差を低減するための補正量を実時間で逐次算出する。つまり、コントローラ１００は、フィードバック制御系２００の動特性を用いて、前記対応位置と、前記フィードバック位置とから、主軸の速度変更、そして、従軸の負荷変動および機械剛性の特性変化に伴う応答性の変化等に対する補償を実行する。そして、コントローラ１００は、算出した補正量を前記対応位置に重畳して得る指令値を、フィードバック制御系２００に出力する。
【００５９】
したがって、コントローラ１００は、実際の稼働時における負荷および機械特性等の変化に対応する適切な補償を実行し、高追従性と高ロバスト性とを両立した従軸の制御を実現することができるとの効果を奏する。
【００６０】
さらに、コントローラ１００は、フィードバック制御系２００の状態方程式から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、スライディングモード制御を実行するので、従軸の制御に係る調整工数を低減できるとの効果を奏する。
【００６１】
コントローラ１００において、スライディングモード制御部１２０は、前記対応位置と前記フィードバック位置との偏差である位置偏差、および、前記位置偏差を時間微分して算出した速度偏差が、前記切替線に収束し、前記位置偏差および前記速度偏差が前記切替線を通って０に収束するように、前記スライディングモード制御を実行する。
【００６２】
前記の構成によれば、コントローラ１００は、電子カムの従軸の位置を制御するフィードバック制御系２００に対して、前記位置偏差および前記速度偏差が、前記切替線に収束し、前記位置偏差および前記速度偏差が前記切替線を通って０に収束するように、スライディングモード制御を実行する。
【００６３】
したがって、コントローラ１００は、高追従性と高ロバスト性とを両立するスライディングモード制御を従軸の制御に適用することによって、従軸の制御について、高追従性と高ロバスト性とを実現することができるとの効果を奏する。
【００６４】
特に、コントローラ１００は、前記切替線を用いて、前記対応位置と、前記フィードバック位置とから、フィードバック制御系２００へのスライディングモード制御を実行する。したがって、コントローラ１００は、実際の稼働時における負荷および機械特性等の変化に対応する適切な補償を実行し、高追従性と高ロバスト性とを両立した前記従軸の制御を実現することができるとの効果を奏する。
【００６５】
コントローラ１００において、スライディングモード制御部１２０は、前記スライディングモード制御の実行によって生成した速度指令を、前記指令値としてフィードバック制御系２００に出力する。
【００６６】
前記の構成によれば、コントローラ１００は、前記スライディングモード制御を実行して生成した前記速度指令を、フィードバック制御系２００に出力する。
【００６７】
ここで、一般に、フィードバック制御系２００における速度制御ループの制御周期は、コントローラ１００によるフィードバック制御系２００への制御周期（つまり、前記速度指令をフィードバック制御系２００に送信する周期）よりも早い。
【００６８】
コントローラ１００は、自装置からフィードバック制御系２００への制御周期よりも高速な制御周期で実行される、フィードバック制御系２００における速度制御ループへ、前記速度指令を出力することによって、前記速度制御ループによる摩擦補償の効果を実現する。したがって、コントローラ１００は、自装置とフィードバック制御系２００とによって実現する制御の全体について、前記速度制御ループによる摩擦補償の効果を実現し、外乱へのロバスト性を向上させることができるとの効果を奏する。
【００６９】
これまでに概要を整理してきたコントローラ１００について、次に、その構成等の詳細について、図１を用いて説明していく。
【００７０】
（コントローラの詳細）
図１に示すように、コントローラ１００は、機能ブロックとして、カム演算部１１０と、スライディングモード制御部１２０と、指令変換部１３０とを備えている。なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、コントローラ１００は、当該省略された構成を備えてもよい。図１に例示した各機能ブロックは、例えば、ＣＰＵ（central processing unit）などが、ＲＯＭ（read only memory）、ＮＶＲＡＭ（non-Volatile random access memory）等で実現された記憶装置（不図示の記憶部）に記憶されているプログラムを不図示のＲＡＭ（random access memory）等に読み出して実行することで実現できる。以下、コントローラ１００における各機能ブロックについて説明する。
【００７１】
（各機能ブロックの詳細）
カム演算部１１０は、主軸の位置（位相）（以下、「主軸位置」と略記することがある）を取得し、取得した主軸位置に対応する従軸の位置（変位）（以下、「従軸位置」と略記することがある）を演算する。カム演算部１１０は、主軸位置から演算した、「主軸位置に対応する従軸位置」を、スライディングモード制御部１２０に通知する。
【００７２】
カム演算部１１０は、例えば、「主軸の位置（位相）に対して、従軸の位置（変位）を対応付けた配列」である主従関係情報（例えば、いわゆる「カムテーブル」）を用いて、主軸位置に対応する従軸位置を演算する。カム演算部１１０は、「主軸の位置（位相）に対して、従軸の位置（変位）を対応付けた演算式（例えば、いわゆる「カム演算式」）」を用いて、主軸位置に対応する従軸位置を演算してもよい。カム演算部１１０は、周知の技術を用いて、主軸位置に対応する従軸位置を演算できればよく、「カム演算部１１０が、主軸位置から、主軸位置に対応する従軸位置を演算する方法」は、特に限定されない。
【００７３】
スライディングモード制御部１２０は、「『指令値に対する、フィードバック制御系２００の状態方程式』から予め求められていたパラメータｓにより傾斜が指定される、切替線」を用いて、スライディングモード制御を実行する。すなわち、スライディングモード制御部１２０は、従軸の位置偏差および速度偏差が、「パラメータｓにより傾斜が指定される切替線」に収束し、従軸の位置偏差および速度偏差が「パラメータｓにより傾斜が指定される切替線」を通って０に収束するように、フィードバック制御系２００に対するスライディングモード制御を実行する。
【００７４】
先ず、スライディングモード制御部１２０は、従軸の位置指令と従軸のフィードバック位置との偏差から、「従軸の位置偏差」を算出する。ここで、スライディングモード制御部１２０は、カム演算部１１０から通知される「主軸位置に対応する従軸位置」を従軸の位置指令とし、エンコーダ２６０の検出した「モータ２５０の出力（つまり、モータ２５０の位置）」を、従軸のフィードバック位置とする。つまり、スライディングモード制御部１２０は、「主軸位置に対応する従軸位置（＝位置指令）」と、「モータ２５０の位置（フィードバック位置）」との偏差から、「従軸の位置偏差」を算出する。次に、スライディングモード制御部１２０は、算出した「従軸の位置偏差」を時間微分して、「従軸の速度偏差」を算出する。
【００７５】
そして、スライディングモード制御部１２０（特に、制御実行部１２１）は、算出された「従軸の位置偏差」および「従軸の速度偏差」が、「パラメータｓにより傾斜が指定される切替線」に収束し、「従軸の位置偏差」および「従軸の速度偏差」が「パラメータｓにより傾斜が指定される切替線」を通って０に収束するように、フィードバック制御系２００に対するスライディングモード制御を実行する。具体的には、スライディングモード制御部１２０は、以下のように、算出した「従軸の位置偏差」および「従軸の速度偏差」に、「パラメータｓにより傾斜が指定される切替線」を用いたスライディングモード制御を適用し、速度指令を算出する。すなわち、スライディングモード制御部１２０は、「横軸に速度偏差、縦軸に位置偏差をとる位相平面ＰＰ」を考え、算出した「従軸の位置偏差」および「従軸の速度偏差」を、位相平面ＰＰ上にプロットする。そして、スライディングモード制御部１２０は、位相平面ＰＰ上にプロットした「従軸の位置偏差」および「従軸の速度偏差」が、位相平面ＰＰ上に描いた「パラメータｓにより傾斜が指定される切替線」に収束し、「従軸の位置偏差」および「従軸の速度偏差」が「パラメータｓにより傾斜が指定される切替線」を通って０に収束するのに必要な速度（＝速度指令）を算出する。
【００７６】
スライディングモード制御部１２０は、従軸の位置偏差および速度偏差から「パラメータｓにより傾斜が指定される切替線」を用いて算出した「速度指令」を、指令変換部１３０に出力する。
【００７７】
なお、上述の説明では、スライディングモード制御部１２０が「従軸の位置偏差」を時間微分して、「従軸の速度偏差」を算出する例を説明したが、スライディングモード制御部１２０による「従軸の速度偏差」の算出方法はこれに限られるものではない。
【００７８】
スライディングモード制御部１２０は、例えば、カム演算部１１０により演算された「主軸位置に対応する従軸位置」を時間微分して、「従軸の速度指令」を算出してもよい。同様に、スライディングモード制御部１２０は、例えば、エンコーダ２６０の検出した「モータ２５０の位置」を時間微分して、「従軸のフィードバック速度」を算出してもよい。そして、スライディングモード制御部１２０は、算出した「従軸の速度指令」と「従軸のフィードバック速度」との偏差から、「従軸の速度偏差」を算出してもよい。
【００７９】
指令変換部１３０は、スライディングモード制御部１２０から受け付けた速度指令を、サーボドライバ２１０の指令解析部２２０が受け付け可能な適切な形態に変換して、サーボドライバ２１０へと出力する。「指令解析部２２０が受け付け可能な適切な形態」とは、例えば、アナログ電圧による速度指令、および、通信データに含まれる速度指令などである。
【００８０】
（記憶部についての補足）
コントローラ１００は、コントローラ１００が使用する各種データを格納する記憶装置として、不図示の記憶部を備えていてもよい。そのような記憶部は、コントローラ１００が実行する（１）制御プログラム、（２）ＯＳプログラム、（３）コントローラ１００が有する各種機能を実行するためのアプリケーションプログラム、および、（４）該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の（１）〜（４）のデータは、例えば、ＲＯＭ（read only memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（登録商標）（Electrically EPROM）、ＨＤＤ（Hard Disc Drive）等の不揮発性記憶装置に記憶されてもよい。さらに、コントローラ１００は、前述のような記憶部とは別に、不図示の一時記憶部を備えていてもよい。一時記憶部は、コントローラ１００が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、ＲＡＭ（Random Access Memory）などの揮発性記憶装置で構成されてもよい。どのデータをどの記憶装置に記憶するのかについては、コントローラ１００の使用目的、利便性、コスト、または、物理的な制約などから適宜決定される。前述のような記憶部は、予め算出される、「フィードバック制御系２００への指令値に対する、フィードバック制御系２００の状態方程式」を格納していてもよい。また、前述のような記憶部は、「フィードバック制御系２００への指令値に対する、フィードバック制御系２００の状態方程式」から求められる、「スライディングモード制御に用いる切替線の傾斜を指定するパラメータｓ」を格納していてもよい。
【００８１】
§３．動作例
図２は、コントローラ１００が実行する処理の全体概要を示すフロー図である。図２に示すように、コントローラ１００は、予め、フィードバック制御系２００の状態方程式
【００８２】
【数１】
2020004023.tif 000003
【００８３】
から、この状態方程式に対するスライディングモード切替平面Ｓ（切替線）を算出しておく（Ｓ４１０）。すなわち、コントローラ１００は、予め「フィードバック制御系２００への指令値に対する、フィードバック制御系２００の応答動作の時定数」を算出しておく。そして、コントローラ１００は、算出した「フィードバック制御系２００への指令値に対する、フィードバック制御系２００の応答動作の時定数」から決定されるフィードバック制御系２００の状態方程式をもとに、「スライディングモード制御に用いる切替線（切替平面Ｓ）の傾斜を指定するパラメータｓ」を求める。
【００８４】
前記状態方程式において、ＡおよびＢは、各々、フィードバック制御系２００の動特性を表すパラメータである。また、Ｒは、「フィードバック制御系２００への指令値（例えば、位置指令）の時間的な変化に対して、フィードバック制御系２００の動特性に基づいて計算される」フィードフォワード項である。コントローラ１００は、前記状態方程式に対して、「スライディングモード制御に用いる切替線（切替平面Ｓ）の傾斜を指定するパラメータｓ」を予め算出しておく。
【００８５】
なお、フィードバック制御系２００の状態方程式を決定する方法は周知である。例えば、フィードバック制御系２００の応答動作の時定数から、フィードバック制御系２００の状態方程式を算出することができる。コントローラ１００は、周知の方法を用いて、「フィードバック制御系２００の状態方程式」を算出する。
【００８６】
同様に、「フィードバック制御系の状態方程式」から、「そのフィードバック制御系に適用するスライディングモード制御に用いる、切替線（切替平面Ｓ）の傾斜を指定するパラメータｓ」の算出方法についても周知である。コントローラ１００は、周知の算出方法を用いて、「フィードバック制御系２００の状態方程式」から、「スライディングモード制御に用いる切替線（切替平面Ｓ）の傾斜を指定するパラメータｓ」を求める。
【００８７】
コントローラ１００は、自装置が電子カム制御を実行できる状態にあるか（つまり、電子カム制御が有効であるか）を確認する。例えば、コントローラ１００は、フィードバック制御系２００への制御を実行できる状態にあるか、つまり、「フィードバック制御系２００の状態方程式」を算出済みであるかを確認する（Ｓ４２０）。
【００８８】
コントローラ１００は、自装置が電子カム制御を実行できる状態にない（つまり、電子カム制御が有効でない）と判定すると（Ｓ４２０でＮｏ）、電子カム制御の実行を開始せず、処理を終了する。コントローラ１００は、例えば、「フィードバック制御系２００の状態方程式」を未だ算出していないと判定すると、電子カム制御の実行を開始せず、処理を終了する。
【００８９】
コントローラ１００は、自装置が電子カム制御を実行できる状態にある（つまり、電子カム制御が有効である）と判定すると（Ｓ４２０でＹｅｓ）、コントローラ１００は、電子カム演算を実行する（Ｓ４３０）。具体的には、カム演算部１１０が、主軸位置（＝主軸位相）に対する従軸変位（＝従軸位置）の計算を実行し、つまり、主軸位置に対応する従軸位置を演算する。カム演算部１１０は、主軸位置から演算した、「主軸位置に対応する従軸位置」を、スライディングモード制御部１２０に通知する。
【００９０】
コントローラ１００は、従軸の変位（＝従軸変位。つまり、「従軸のフィードバック位置」）を時間微分して従軸の速度（＝従軸速度。つまり、「従軸のフィードバック速度」）を算出する（Ｓ４４０）。具体的には、スライディングモード制御部１２０が、エンコーダ２６０の検出した「モータ２５０の位置（＝従軸のフィードバック位置）」を時間微分して、「従軸のフィードバック速度」を算出する。
【００９１】
コントローラ１００（具体的には、スライディングモード制御部１２０）は、カム演算部１１０により演算された「主軸位置に対応する従軸位置」を時間微分して算出した「従軸の速度指令」と「従軸のフィードバック速度」とから、「従軸の速度偏差」を算出する。また、スライディングモード制御部１２０は、カム演算部１１０により演算された「主軸位置に対応する従軸位置（＝従軸の位置指令）」と従軸のフィードバック位置とから、「従軸の位置偏差」を算出する。
【００９２】
コントローラ１００（具体的には、スライディングモード制御部１２０）は、「従軸の位置偏差」および「従軸の速度偏差」から、Ｓ４１０で算出した切替平面Ｓを用いたスライディングモード制御を実行して、「速度指令」を算出する（Ｓ４５０）。そして、コントローラ１００（具体的には、指令変換部１３０）は、スライディングモード制御部１２０の算出した「速度指令」を、サーボドライバ２１０の速度制御ループに与える（Ｓ４６０）。コントローラ１００は、制御が終了するまで、Ｓ４２０からＳ４６０までの処理を、制御周期ごとに繰り返す。
【００９３】
これまでに図２を用いて説明してきた、コントローラ１００の実行する制御方法は、以下のように整理することができる。すなわち、コントローラ１００の実行する制御方法は、電子カムの主軸の位置から、電子カムの従軸の位置を制御するフィードバック制御系（例えば、フィードバック制御系２００）に出力する指令値を生成する制御装置の制御方法である。コントローラ１００の実行する制御方法は、「電子カムの主軸の位置」に対応する、「電子カムの従軸の位置」である対応位置を演算するカム演算ステップ（Ｓ４３０）と、「フィードバック制御系２００の状態方程式」から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、前記カム演算ステップにて演算された「前記対応位置」と、フィードバック制御系２００から取得する「従軸のフィードバック位置」とから、フィードバック制御系２００に対するスライディングモード制御を実行するスライディングモード制御ステップ（Ｓ４５０）と、を含む。
【００９４】
前記の方法によれば、前記制御方法は、「電子カムの主軸の位置」に対応する、「電子カムの従軸の位置」である対応位置と、フィードバック制御系２００から取得する従軸のフィードバック位置とから、電子カムの従軸の位置を制御するフィードバック制御系２００に対して、スライディングモード制御を実行する。
【００９５】
ここで、一般にスライディングモード制御は、高追従性と高ロバスト性とを両立する制御方式として知られている。前記制御方法は、例えばカム曲線（電子カムの主軸の位相に対する、電子カムの従軸の理想的な変位）を「従軸の目標軌跡」として、従軸の制御にスライディングモード制御を適用する。
【００９６】
したがって、前記制御方法は、高追従性と高ロバスト性とを両立するスライディングモード制御を従軸の制御に適用することによって、従軸の制御について、高追従性と高ロバスト性とを実現することができるとの効果を奏する。
【００９７】
特に、前記制御方法は、主軸の始動時および停止時の加減速、主軸の速度変更、そして、従軸の負荷変動および機械剛性の特性変化に伴う応答性の変化等に対して、適切な補償を実行し、従軸の制御の高追従性を維持できるとの効果を奏する。
【００９８】
すなわち、前記制御方法は、フィードバック制御系２００の前記状態方程式に対応するパラメータｓにより傾斜が指定される切替線を用いて、前記対応位置と、前記フィードバック位置とから、フィードバック制御系２００へのスライディングモード制御を実行する。言い換えれば、前記制御方法は、フィードバック制御系２００の動特性を用いて、前記対応位置と、前記フィードバック位置とから、従軸の追従偏差を低減するための補正量を実時間で逐次算出する。つまり、前記制御方法は、フィードバック制御系２００の動特性を用いて、前記対応位置と、前記フィードバック位置とから、主軸の速度変更、そして、従軸の負荷変動および機械剛性の特性変化に伴う応答性の変化等に対する補償を実行する。そして、前記制御方法は、算出した補正量を前記対応位置に重畳して得る指令値を、フィードバック制御系２００に出力する。
【００９９】
したがって、前記制御方法は、実際の稼働時における負荷および機械特性等の変化に対応する適切な補償を実行し、高追従性と高ロバスト性とを両立した従軸の制御を実現することができるとの効果を奏する。
【０１００】
さらに、前記制御方法は、フィードバック制御系２００の状態方程式から予め求めておいたパラメータｓにより傾斜が指定される切替線を用いて、スライディングモード制御を実行するので、従軸の制御に係る調整工数を低減できるとの効果を奏する。
【０１０１】
〔本実施形態に係るコントローラが奏する効果〕
これまでに説明してきたコントローラ１００が奏する効果について、以下に図３から図７を用いて説明していく。具体的には、主軸の速度が変動する場合の従軸の制御を検証するシミュレーション例１、および、モータ２５０等により駆動される負荷機械の剛性を低くした場合の従軸の制御を検証するシミュレーション例２について、以下に詳細を説明していく。
【０１０２】
（シミュレーション例１）
図３は、シミュレーション例１およびシミュレーション例２において実現すべき電子カムのカム曲線を示す図であり、横軸は「主軸の位置（＝主軸位相）」であり、縦軸は「従軸の位置（＝従軸変位）」である。なお、図３に示すカム曲線は、シミュレーション例１およびシミュレーション例２に用いるカム曲線の例であって、コントローラ１００が実現可能なカム曲線は、図３に示すカム曲線に限定されるものではない。
【０１０３】
図４は、図３のカム曲線について、主軸の速度が周期的に変動する場合の主軸の速度および対応する従軸の速度の一例を示す図であり、具体的には、主軸の速度が０．４（Ｈｚ）で「０」から「Ｖｍａｘ」まで周期的に変動する場合について示している。図４において、横軸は「時間」であり、縦軸は「主軸および従軸の速度」であり、点線で示す曲線は「主軸の速度（＝主軸速度）」を、実線で示す曲線は「従軸の速度（＝従軸速度）」を示している。
【０１０４】
シミュレーション例１では、「主軸の速度が、『０』から『Ｖｍａｘ』まで、『ｆ／Ｔ（Ｈｚ）』の周期で、周期的に変動する」場合について、従来までの電子カム制御装置と比較して、コントローラ１００による従軸の制御を検証する。「主軸の速度が、『０』から『Ｖｍａｘ』まで、『ｆ／Ｔ（Ｈｚ）』の周期で、周期的に変動する」場合、主軸の速度Ｖｍａｓｔｅｒは、
【０１０５】
【数２】
2020004023.tif 000004
【０１０６】
と表すことができる。前述の通り、図４は、主軸の速度が周期的に変動する場合のうち特に、主軸の速度の変動周期が「ｆ／Ｔ＝０．４（Ｈｚ）」である場合の、主軸の速度および対応する従軸の速度を示している。
【０１０７】
図５は、図３のカム曲線を実現しようとする従来（＝従来までの電子カム制御装置）およびコントローラ１００について、主軸速度が周期的に変動する場合の従軸制御の結果を示す図である。図５において、横軸は「時間」であり、縦軸は、「従来までの電子カム制御装置およびコントローラ１００による、図３のカム曲線に対する従軸の追従偏差」である。図５の（Ａ）、（Ｂ）、および（Ｃ）は各々、主軸の速度の変動周期が「０．４（Ｈｚ）」、「１．０（Ｈｚ）」、「２．０（Ｈｚ）」である場合の、従来までの電子カム制御装置およびコントローラ１００による、図３のカム曲線に対する従軸の追従偏差を示している。なお、図５の検証結果について、「従来までの電子カム制御装置」は進角補正を実施する電子カム制御装置であるものとする。
【０１０８】
図５の上段に示すように、進角補正を実施する「従来までの電子カム制御装置」は、主軸の速度の変動が穏やかなうちは、従軸について良好な制御を実現できているが、主軸の速度の変動が激しくなるにしたがって、従軸を主軸に追従させることができなくなる。すなわち、主軸の速度の変動周期が「０．４（Ｈｚ）」である時、「従来までの電子カム制御装置」の「図３のカム曲線に対する従軸の追従偏差」は「−０．２」から「＋０．２」までの間に収まっている。しかしながら、主軸の速度の変動周期が「１．０（Ｈｚ）」になると、「従来までの電子カム制御装置」の「図３のカム曲線に対する従軸の追従偏差」は大きくなり、「−０．２」から「＋０．２」までの間には収まらない。そして、主軸の速度の変動周期が「２．０（Ｈｚ）」になると、「従来までの電子カム制御装置」の「図３のカム曲線に対する従軸の追従偏差」はさらに大きくなり、「−０．８」から「＋０．８」までの間で大きく振動してしまっている。
【０１０９】
これに対して、図５の下段に示すように、コントローラ１００は、主軸の速度の変動周期が大きくなっても、従軸について良好な制御を実現できている。すなわち、主軸の速度の変動周期が「０．４（Ｈｚ）」、「１．０（Ｈｚ）」、「２．０（Ｈｚ）」である場合のいずれについても、コントローラ１００の「図３のカム曲線に対する従軸の追従偏差」は「−０．２」から「＋０．２」までの間に収まっている。つまり、コントローラ１００は、主軸の速度の変動が激しくなったとしても（つまり、主軸の速度が急激に変化したとしても）、従軸を正確に主軸に追従させることができる。したがって、コントローラ１００は、主軸の始動時および停止時の加減速、主軸の速度変更に対して、従軸の制御について適切な補償を実行し、従軸の制御の高追従性を維持することができることが判明した。
【０１１０】
図６は、図５に示した「従来（＝従来までの電子カム制御装置）」およびコントローラ１００の各々の従軸追従偏差について、その二乗平均を整理して示す図である。図６において、横軸は「主軸の速度の変動周波数（×０．１（Ｈｚ））」であり、縦軸は「従来までの電子カム制御装置およびコントローラ１００による、図３のカム曲線に対する従軸の追従偏差の二乗平均」である。図６において、バツ印を結ぶ折れ線は、「コントローラ１００による、図３のカム曲線に対する従軸の追従偏差の二乗平均」を、三角印を結ぶ折れ線は、「従来までの電子カム制御装置による、図３のカム曲線に対する従軸の追従偏差の二乗平均」を示している。
【０１１１】
図６に示す通り、主軸の速度の変動周期が、「０．４（Ｈｚ）」、「１．０（Ｈｚ）」、「２．０（Ｈｚ）」と順に大きくなるにしたがって、「従来までの電子カム制御装置による、図３のカム曲線に対する従軸の追従偏差の二乗平均」は大きくなっている。つまり、進角補正を実施する「従来までの電子カム制御装置」は、主軸の速度の変動が激しくなるにしたがって、従軸を主軸に追従させることができなくなる。
【０１１２】
これに対して、コントローラ１００は、主軸の速度の変動周期が、「０．４（Ｈｚ）」、「１．０（Ｈｚ）」、「２．０（Ｈｚ）」と大きくなっても、「従来までの電子カム制御装置による、図３のカム曲線に対する従軸の追従偏差の二乗平均」はほぼ一定である。つまり、コントローラ１００は、主軸の速度の変動周期が大きくなっても、従軸の制御について適切な補償を実行し、従軸の制御の高追従性を維持することができている。
【０１１３】
（シミュレーション例２）
図７は、負荷機械の剛性が低い場合に、従軸制御について補正を行なわない装置、進角補正を行なう装置、およびコントローラ１００による従軸制御の結果を示す図である。ここで、「従軸制御について補正を行なわない装置」とは、「従軸の制御について、進角補正を含む何らかの補正をまったく実行しない、従来までの電子カム制御装置」である。また、「進角補正を行なう装置」とは、「従軸の制御について進角補正を実行する、従来までの電子カム制御装置」である。前述の通り、シミュレーション例２では、モータ２５０等により駆動される負荷機械の剛性を低くした場合の従軸の制御を検証する。具体的には、シミュレーション例２では、負荷状態（つまり、負荷機械の剛性）および主軸の速度を一定として、サーボ系（例えば、フィードバック制御系２００）のゲインを低くすることによって、「負荷機械の剛性が低い」状態を擬似的に作り出した。
【０１１４】
図７において、横軸は「主軸の位置（＝主軸位相）」であり、縦軸は「従軸の位置（＝従軸変位）」である。図７の（Ａ）、（Ｂ）、および（Ｃ）の各々において実線で示す曲線は、「主軸位相に対する、理想的な従軸変位を示す曲線（つまり、本来のカム曲線）」を示している。また、図７の（Ａ）、（Ｂ）、および（Ｃ）の各々において点線で示す曲線は、「負荷機械の剛性が低い」状態における、従軸制御について補正を行なわない装置、進角補正を行なう装置、およびコントローラ１００による、主軸位相に対する従軸変位を示している。
【０１１５】
図７の（Ａ）において、点線で示す、「従軸制御について補正を行なわない装置による、主軸位相に対する従軸変位」は、実線で示す「本来のカム曲線」から大きく乖離している。つまり、「負荷機械の剛性が低い」状態において、従軸制御について補正を行なわない装置による「主軸位相に対する従軸変位」は、「本来のカム曲線」から大きく乖離し、つまり、大きな追従遅れが発生している。
【０１１６】
「負荷機械の剛性が低い」状態において、点線で示す「主軸位相に対する従軸変位」の、実線で示す「本来のカム曲線」からの乖離は、「進角補正を行なう装置（図７の（Ｂ））」の方が「従軸制御について補正を行なわない装置（図７の（Ａ））」よりも小さい。
【０１１７】
しかしながら、図７の（Ｂ）において、点線で示す「進角補正を行なう装置」の「主軸位相に対する従軸変位」におけるピークの絶対値は、実線で示す「本来のカム曲線」のピークの絶対値よりも小さい。つまり、「進角補正を行なう装置」は、従軸の制御について、「負荷機械の剛性が低い」状態を十分に補償することができていない。
【０１１８】
これに対して、図７の（Ｃ）において、「負荷機械の剛性が低い」状態においても、点線で示す「コントローラ１００による、主軸位相に対する従軸変位」は、実線で示す「本来のカム曲線」にほぼ一致している。したがって、コントローラ１００は、「負荷機械の剛性が低い」状態においても、つまり、従軸の負荷が小さい場合でも、従軸の制御について適切な補償を実行し、従軸の制御の高追従性を維持することができることが判明した。
【０１１９】
§４．変形例
これまで、コントローラ１００が、フィードバック制御系２００（特に、サーボドライバ２１０）に、速度指令を送信する例を説明した。しかしながら、コントローラ１００は、サーボドライバ２１０に、速度指令をさらに時間積分して算出する「従軸についての位置指令」を送信してもよい。この場合、サーボドライバ２１０について、速度制御部２３０が実行する速度制御ループの前に、位置制御ループが追加されることになる。
【０１２０】
同様に、コントローラ１００は、「スライディングモード制御により算出した速度指令」の代わりに「スライディングモード制御により算出したトルク指令」をサーボドライバ２１０に出力してもよい。この場合、スライディングモード制御部１２０は、算出した「従軸の位置偏差」および「従軸の速度偏差」に、「パラメータｓにより傾斜が指定される切替線」を用いたスライディングモード制御を適用し、トルク指令を算出する。また、この場合、サーボドライバ２１０について、速度制御部２３０は不要となる。
【０１２１】
「パラメータｓ」は「指令値に対する、フィードバック制御系２００の状態方程式」から予め求められるが、この状態方程式は、以下のように決定されてもよい。すなわち、サーボドライバ２１０の動特性を無視できると仮定すると、状態方程式を決定するための「モータ２５０により駆動される負荷機械の運動特性」は、例えば、「モータ２５０により駆動される負荷機械の慣性モーメント（慣性）および粘性係数（粘性摩擦）」等であってもよい。
【０１２２】
〔ソフトウェアによる実現例〕
コントローラ１００の制御ブロック（特に、カム演算部１１０、スライディングモード制御部１２０、および、指令変換部１３０）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１２３】
後者の場合、コントローラ１００は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１２４】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１２５】
１００  コントローラ（制御装置）
１１０  カム演算部
１２０  スライディングモード制御部
２００  フィードバック制御系
ｓ  パラメータ
Ｓ４３０  カム演算ステップ
Ｓ４５０  スライディングモード制御ステップ
【図１】
2020004023.tif 000005
【図２】
2020004023.tif 000006
【図３】
2020004023.tif 000007
【図４】
2020004023.tif 000008
【図５】
2020004023.tif 000009
【図６】
2020004023.tif 000010
【図７】
2020004023.tif 000011