(57)【要約】  サーボ制御装置が、モータで機械系を駆動する制御対象１に対し、モータ位置またはモータ速度に対応するモータ運動がモータ運動指令に追従するよう制御する追従制御部２と、制御対象１に行わせる周期的動作の位相を表す位相信号θを入力し、予め設定した第１の関数により、位相信号θに応じた機械運動指令を算出する指令関数部５１と、第１の関数を位相信号で２階微分した関数である２次導関数として予め設定した第２の関数を用い、位相信号に応じた第２の関数の値を２階微分基礎信号として算出する２次導関数部５２と、位相速度の２乗値と、２階微分基礎信号と、第１の定数と、の積を用いて、モータ運動指令を補正する第１の指令補正値を演算する補正値演算部５３と、第１の指令補正値と機械運動指令との加算値に基づいてモータ運動指令を算出する補正値加算部５４Ａと、を備える。
2014064815.tif 000002
【特許請求の範囲】
【請求項１】
モータおよび前記モータで駆動する機械系から構成される制御対象に対し、前記モータのモータ位置あるいはモータ速度に対応するモータ運動が、モータ運動指令に追従するよう前記モータを制御する追従制御部と、
前記制御対象に行わせる周期的動作の位相を表す位相信号を入力し、予め設定した第１の関数により、前記位相信号に応じた機械運動指令を算出する指令関数部と、
前記位相信号を入力し、前記第１の関数を前記位相信号で２階微分した関数である２次導関数として予め設定した第２の関数を用い、前記位相信号に応じた前記第２の関数の値を２階微分基礎信号として算出する２次導関数部と、
前記位相信号の時間微分値を表す位相速度と、前記２階微分基礎信号と、を入力し、前記位相速度の２乗値と、前記２階微分基礎信号と、第１の定数と、の積を用いて、前記モータ運動指令を補正する第１の指令補正値を演算する補正値演算部と、
前記第１の指令補正値と前記機械運動指令との加算値に基づいて前記モータ運動指令を算出する補正加算部と、
を備えることを特徴とするサーボ制御装置。
【請求項２】
前記第１の定数を、前記制御対象の機械特性に応じて外部から設定するよう構成したことを特徴とする請求項１に記載のサーボ制御装置。
【請求項３】
前記第１の定数は、前記制御対象の振動周波数に対応する反共振周波数を２乗した値の逆数に基づく値であることを特徴とする請求項１に記載のサーボ制御装置。
【請求項４】
前記第２の関数は、前記位相信号と前記２階微分基礎信号との対応関係を示す第１のデータテーブルであり、
前記２次導関数部は、前記第１のデータテーブルを用いて、前記２階微分基礎信号として算出することを特徴とする請求項１に記載のサーボ制御装置。
【請求項５】
前記位相信号を入力し、前記第１の関数を前記位相信号で微分した関数である１次導関数として予め設定した第３の関数を用い、前記位相信号に応じた前記第３の関数の値を１階微分基礎信号として算出する１次導関数部と、
前記位相速度の時間微分値を表す位相加速度と、前記１階微分基礎信号と、を入力し、前記１階微分基礎信号と、前記位相加速度と、第２の定数と、の積を用いて、前記モータ運動指令を補正する第２の指令補正値を算出する加速時補正値演算部と、
をさらに備え、
前記補正加算部は、前記第１および第２の指令補正値と前記機械運動指令との加算値に基づいて前記モータ運動指令を算出することを特徴とする請求項１〜３のいずれか１つに記載のサーボ制御装置。
【請求項６】
前記第２の定数は、前記制御対象の振動周波数に対応する反共振周波数を２乗した値の逆数に基づく値であることを特徴とする請求項５に記載のサーボ制御装置。
【請求項７】
前記位相信号を入力し、前記第１の関数を前記位相信号で微分した関数である１次導関数として予め設定した第３の関数を用い、前記位相信号に応じた前記第３の関数の値を１階微分基礎信号として算出する１次導関数部と、
前記１階微分基礎信号と、前記位相速度と、を入力し、前記１階微分基礎信号と、前記位相速度と、第３の定数と、の積を用いて、前記モータ運動指令を補正する第３の指令補正値を算出する減衰補正値演算部と、
を備え、
前記補正加算部は、前記第１および第３の指令補正値と前記機械運動指令との加算値に基づいて前記モータ運動指令を算出することを特徴とする請求項１〜３のいずれか１つに記載のサーボ制御装置。
【請求項８】
前記第３の定数は、前記制御対象の減衰係数と、前記制御対象の振動周波数に対応する反共振周波数の逆数との積に基づく値であることを特徴とする請求項７に記載のサーボ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象を駆動制御するサーボ制御装置に関する。
【背景技術】
【０００２】
産業用ロボット、プレス装置、ライン自動化装置などの産業用機械を駆動制御するサーボ制御装置は、機械系を駆動するモータの運動（位置や速度）に関する指令を生成し、その指令にモータの運動が、追従するよう制御する。機械系の剛性が低い場合（駆動する機械系がアーム状の場合や、低剛性なシャフトや減速器を介して負荷機械を駆動する場合など）には、低剛性部が撓むことで機械先端の運動がモータの運動と違いを生じる。また、機械系の剛性が低い場合には、停止などの指令の変化の後に振動を生じる。これらの原因により、機械先端の運動が指令に対して誤差を持ち、制御精度が劣化する。【０００３】
このような低剛性に起因した問題に対し、特許文献１に記載の技術では、位置指令ブロックが生成した位置指令値に対して時間に関する２階微分値を求め、それにゲイン定数を乗じて補正値を求めている。そして、この補正値を元の位置指令値に加算した補正位置指令値にモータが追従するよう制御している。【０００４】
また、特許文献１に記載の技術では、純粋微分でなく擬似微分を用いてもよいことが記載されている。さらに、指令速度のパターンが台形になるような場合には、指令の加速度が変化する時点を抽出し、予め設定した時系列の補正パターンを用いて補正値を生成することが記載されている。【０００５】
また、サーボ制御装置は、一定とは限らない周期で、特定パターンの動作を産業用機械に周期的に行わせる場合がある。このような場合には、例えば電子カムと呼ばれるような、指令関数部を備える方式が用いられる。この方式では、周期内の位相を表すとともに時間経過にしたがって増加あるいは減少する位相信号を用いる。そして、指令関数部が、位相信号に基づく数式やデータテーブル参照を用いて周期的な位置指令を生成する。これにより、位相に対して同一形状の位置指令を繰返し生成し、その位置指令にモータ位置を追従させる。このような指令関数部を用いたサーボ制御装置によって位置指令を更に補正することで制御精度を高める技術として、特許文献２に記載の技術がある。【０００６】
この特許文献２に記載の技術は、同一パターンの動作を周期的に行うサーボ制御装置の制御精度の向上を目的に、指令の補正を行うものである。この技術では、位相信号（位相指令値）を入力として指令関数部（位置パターン発生器）を用いて周期的な位置指令（位置パターン）を生成している。そして、追従制御部（位置制御系）の遅れを補正するために、指令関数部が、位相を進めた位置指令を使用するとともに、位置指令の時間に関する２階微分値や３階微分値に係数を乗じて補正値を算出している。【０００７】
また、特許文献２に記載の技術では、位置指令の２階微分値や３階微分値の絶対値の大きさに応じて、上述した補正値を加算するか否かを切り替えることで、ノイズが位置指令に重畳することを抑制する技術が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−７６４２６号公報
【特許文献２】特開２０１１−６７０１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記前者の従来技術では、位置指令の２階微分を行うと信号がノイズ的になるので、高精度な制御が困難になるという問題があった。また、ノイズ問題への対策として、純粋微分の代わりに擬似微分を用いると、位相遅れにより高精度な制御が困難になるという問題があった。また、指令の加速度が変化する時点を抽出して所定のパターンにより補正値を求めるような方法では、特定の指令形状にしか対応できないという問題があった。【００１０】
また、上記後者の従来技術では、指令関数部が出力した位置指令の時間に関する２階微分や３階微分を用いて補正値を演算するので、指令ノイズが大きくなり、高精度な制御が困難になるという問題があった。また、位置指令の２階微分値や３階微分値の大きさに応じて補正を行うか否かを切換えることでノイズの問題に対応しているが、結局補正を行う場合にノイズの影響を受けるので、高精度な制御が困難になるという問題があった。【００１１】
本発明は、上記に鑑みてなされたものであって、制御対象が低剛性であっても、周期的な動作を高精度に制御できるサーボ制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明は、モータおよび前記モータで駆動する機械系から構成される制御対象に対し、前記モータのモータ位置あるいはモータ速度に対応するモータ運動が、モータ運動指令に追従するよう前記モータを制御する追従制御部と、前記制御対象に行わせる周期的動作の位相を表す位相信号を入力し、予め設定した第１の関数により、前記位相信号に応じた機械運動指令を算出する指令関数部と、前記位相信号を入力し、前記第１の関数を前記位相信号で２階微分した関数である２次導関数として予め設定した第２の関数を用い、前記位相信号に応じた前記第２の関数の値を２階微分基礎信号として算出する２次導関数部と、前記位相信号の時間微分値を表す位相速度と、前記２階微分基礎信号と、を入力し、前記位相速度の２乗値と、前記２階微分基礎信号と、第１の定数と、の積を用いて、前記モータ運動指令を補正する第１の指令補正値を演算する補正値演算部と、前記第１の指令補正値と前記機械運動指令との加算値に基づいて前記モータ運動指令を算出する補正加算部と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、制御対象が低剛性であっても、周期的な動作を高精度に制御できるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態１に係るサーボ制御装置の構成を示すブロック図である。
【図２】図２は、制御対象の構成例を示す模式図である。
【図３】図３は、本発明の実施の形態２に係るサーボ制御装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下に、本発明の実施の形態に係るサーボ制御装置を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態１．
図１は、本発明の実施の形態１に係るサーボ制御装置の構成を示すブロック図である。実施の形態１に係るサーボ制御装置１００Ａは、モータ（後述するモータ１１）と、モータ１１で駆動する機械系から構成される制御対象１と、を駆動制御する装置である。
【００１７】
制御対象１は、例えば、産業用ロボット、プレス装置、ライン自動化装置などの産業用機械であり、モータ１１と、モータ１１に接続された機械系と、を備えている。サーボ制御装置１００Ａは、サーボモータなどのアクチュエータを用いて、制御対象１を駆動制御する。サーボ制御装置１００Ａは、モータトルクτｍを制御対象１のモータに発生させることで、制御対象１に所望の動作をさせる。具体的には、サーボ制御装置１００Ａは、検出器（図示せず）で検出したモータ位置ｙｍに基づいてモータトルクτｍを逐次変更することにより、制御対象１が所望の動作を行うようモータ１１の動作位置を制御する。
【００１８】
サーボ制御装置１００Ａは、位相発生部３Ａと、指令生成部５Ａと、追従制御部２と、を含んで構成されている。位相発生部３Ａは、制御対象１に行わせる周期的動作の位相を表す位相信号θと、位相信号θの変化速度を表す位相速度ωとを発生させて、指令生成部５Ａに出力する。指令生成部５Ａは、後述する演算によってモータ位置指令ｙｒを算出し、算出したモータ位置指令ｙｒを追従制御部２に出力する。
【００１９】
追従制御部２は、指令生成部５Ａから出力されたモータ位置指令ｙｒと制御対象１で検出されたモータ位置ｙｍとを入力し、モータ位置ｙｍをモータ位置指令ｙｒに追従させるようモータトルクτｍを生成する。すなわち、追従制御部２は、モータ位置ｙｍで表されるモータ運動が、モータ位置指令ｙｒすなわちモータ運動指令に追従するよう、モータトルクτｍを生成して制御する。
【００２０】
なお、本実施の形態では、位相発生部３Ａがサーボ制御装置１００Ａの内部にある場合について説明するが、サーボ制御装置１００Ａの内部に位相発生部３Ａがなくてもよい。サーボ制御装置１００Ａは、例えば、外部装置の動作に同期させるよう、例えば回転動作をする外部装置の回転位置などの信号を外部から入力する構成でもよい。
【００２１】
位相発生部３Ａは、例えば外部から指定された位相速度ωを時間経過に従って積分することで位相信号θを生成し、位相速度ωと位相信号θとを指令生成部５Ａに出力する。あるいは、位相発生部３Ａは、外部から入力した時間的に増大または減少する位相信号θを指令生成部５Ａに出力するとともに、位相信号θの時間微分に相当する位相速度ωを指令生成部５Ａに出力してもよい。この場合、位相発生部３Ａは、位相信号θに含まれる量子化等に起因したノイズ成分が微分演算に起因して大きくならないよう、ノイズ除去効果が十分に大きいフィルタを用いて位相速度ωを演算する。このように、位相発生部３Ａは、位相信号θと、ノイズ成分を含まないように生成した位相速度ωとを、指令生成部５Ａに出力する。
【００２２】
次に、指令生成部５Ａの構成と動作について説明する。指令生成部５Ａは、位相発生部３Ａから出力された位相信号θと位相速度ωとを入力して、モータ位置指令ｙｒを算出し追従制御部２に出力する。指令生成部５Ａは、指令関数部５１と、２次導関数部５２と、補正値演算部５３と、補正値加算部５４Ａと、を含んで構成されている。
【００２３】
指令生成部５Ａでは、指令関数部５１および２次導関数部５２に位相発生部３Ａから出力された位相信号θが入力され、補正値演算部５３に位相発生部３Ａから出力された位相速度ωが入力される。
【００２４】
指令関数部５１は、位相信号θに基づいて、制御対象１に対する機械位置指令ｙｒ０を算出する。このとき、指令関数部５１は、予め設定しておいた指令関数ｆ（θ）を用いて機械位置指令ｙｒ０を算出する。換言すると、指令関数部５１は、予め設定しておいた指令関数ｆ（θ）（第１の関数）により、位相信号θに応じた機械運動指令を算出する。指令関数ｆ（θ）は、例えば数式やデータテーブルである。
【００２５】
指令関数ｆ（θ）がデータテーブルの場合、位相信号θの点（値）と機械位置指令ｙｒ０の点（値）との対応関係を、予めデータテーブルに設定しておく。データテーブルには、前記対応関係を所定数設定しておく。指令関数部５１は、入力された任意の値の位相信号θに対してデータテーブル参照値を補間することで機械位置指令ｙｒ０を算出する。このとき、指令関数部５１は、直線補間を用いれば容易に機械位置指令ｙｒ０を算出することができる。なお、指令関数部５１は、複雑なスプライン補間などを用いてもよい。指令関数部５１は、算出した機械位置指令ｙｒ０を補正値加算部５４Ａに出力する。
【００２６】
２次導関数部５２には、指令関数ｆ（θ）の２次導関数ｆ’’（θ）に相当する関数（第２の関数）が、予め設定されている。ここで２次導関数ｆ’’（θ）とは、指令関数ｆ（θ）を位相信号θによって２階微分したものである。２次導関数部５２は、入力した位相信号θに対応した関数の値を２階微分基礎信号ｘｂとして算出し、補正値演算部５３に出力する。ここで２次導関数部５２の第２の関数は、指令関数ｆ（θ）と同様に、例えば数式やデータテーブルである。また第２の関数は、場合によっては指令関数ｆ（θ）の２次導関数ｆ’’（θ）を近似的に表すものであるが、以下で厳密性に記述する必要がない場合は、第２の関数と２次導関数ｆ’’（θ）を区別せずに書く。
【００２７】
２次導関数部５２における第２の関数がデータテーブルの場合、位相信号θの点（値）と２次導関数ｆ’’（θ）に相当する点（値）との対応関係、すなわち位相信号θの点（値）と２階微分基礎信号ｘｂの点（値）との対応関係を、予めデータテーブルに設定しておく。２次導関数部５２は、入力された任意の値の位相信号θに対してデータテーブル参照値を補間することで２階微分基礎信号ｘｂを算出する。２次導関数部５２は、算出した２階微分基礎信号ｘｂを補正値演算部５３に出力する。
【００２８】
補正値演算部５３は、２階微分基礎信号ｘｂと位相速度ωとを入力し、位相速度ωの２乗と、所定の定数（第１の定数）と、２階微分基礎信号ｘｂと、の積を用いて、機械位置指令ｙｒ０を補正する指令補正値ｙｈを算出する。補正値演算部５３は、算出した指令補正値ｙｈを補正値加算部５４Ａに出力する。ここで、所定の定数は、制御対象１の剛性あるいは振動に関係した機械定数に応じて設定されるものであり、後述する制御対象１の反共振周波数の２乗の逆数になるよう設定される。
【００２９】
補正値演算部５３は、２乗演算部５３ａと、定数乗算部５３ｂと、２階微分乗算部５３ｃと、を有している。補正値演算部５３では、２乗演算部５３ａが位相速度ωの２乗を算出して定数乗算部５３ｂに出力する。そして、定数乗算部５３ｂは、２乗演算部５３ａからの出力に対して、所定の定数（例えば、制御対象１の反共振周波数ωzの２乗の逆数に基づく値）を乗じる。定数乗算部５３ｂは、乗算した値を２階微分乗算部５３ｃに出力する。さらに、２階微分乗算部５３ｃは、定数乗算部５３ｂからの出力と２階微分基礎信号ｘｂとの乗算を行って指令補正値ｙｈを算出する。そして、２階微分乗算部５３ｃは、指令補正値ｙｈを補正値加算部５４Ａに出力する。
【００３０】
ここで、補正値演算部５３内の各部における乗算の順序は特に上述した手順に限定されるものではない。補正値演算部５３は、指令補正値ｙｈが、位相速度ωの２乗と、反共振周波数ωzを２乗した値の逆数と、２階微分基礎信号ｘｂと、の積になるよう計算すればよい。
【００３１】
補正値加算部５４Ａは、指令関数部５１が出力した機械位置指令ｙｒ０に、補正値演算部５３が出力した指令補正値ｙｈを加算した結果（加算値）を、モータ位置指令ｙｒとして追従制御部２に出力する。このように、指令生成部５Ａは、上記の動作によって、位相信号θと位相速度ωに基づいてモータ位置指令ｙｒを算出し追従制御部２に出力する。
【００３２】
追従制御部２は、指令生成部５Ａが出力したモータ位置指令ｙｒと制御対象１から検出したモータ位置ｙｍとを入力する。追従制御部２は、モータ位置ｙｍがモータ位置指令ｙｒに追従して一致するように制御対象１におけるモータ１１の電流を制御しながらモータトルクτｍを発生させる。追従制御部２は、例えばモータ位置制御、モータ速度制御、モータ電流制御とから構成されたカスケード制御などを用いる。
【００３３】
次に、本実施の形態により得られる効果を説明するために、まず、本実施の形態で考慮する制御対象１の特性について説明する。図２は、制御対象の構成例を示す模式図である。
【００３４】
制御対象１は、モータ１１と機械負荷１３とがシャフトなどの弾性部１２で結合されている。そして、制御対象１では、サーボ制御装置１００Ａが生成するモータトルクτｍによってモータ１１が駆動され、弾性部１２を介して機械負荷１３が駆動される。
【００３５】
機械負荷１３の負荷イナーシャがＪＬであり、動作する機械負荷１３の位置である負荷位置がｙＬであり、弾性部１２のバネ定数がＫｇであり、弾性部１２の粘性定数がＣｇであり、モータ１１のモータイナーシャがＪＭである。
【００３６】
モータトルクτｍによって制御対象１を駆動した場合の負荷位置ｙＬとモータ位置ｙｍとの関係は以下の式（１）で表される。なお、以下において、記号のｓはラプラス演算子であり、等価的に時間微分を意味する演算子である。
ｙＬ／ｙｍ＝１／（ｓ2／ωz2＋２ζ・ｓ／ωz＋１）・・・（１）
【００３７】
式（１）のωzは制御対象１の反共振周波数であり、ζは減衰係数であり、それぞれ以下の式（２）と式（３）で表される。
ωz＝（Ｋｇ／ＪＬ）(1/2)・・・（２）
ζ＝Ｃｇ／｛２（ＪＬ・Ｋｇ）(1/2)｝・・・（３）
【００３８】
ここで、追従制御部２の作用によって制御された結果としての、モータ位置指令ｙｒからモータ位置ｙｍまでの伝達関数をＧ（ｓ）と表す。すなわち、以下の式（４）が成り立つとき、モータ位置指令ｙｒから負荷位置ｙＬまでの伝達関数は以下の式（５）となる。
ｙｍ／ｙｒ＝Ｇ（ｓ）・・・（４）
ｙＬ／ｙｒ＝Ｇ（ｓ）｛１／（ｓ2／ωz2＋２ζ・ｓ／ωz＋１）｝・・・（５）
【００３９】
制御対象１における機械系の剛性が低い場合、通常は減衰係数ζが１よりもかなり小さくなるので、減衰係数ζは十分に小さいものとして無視すると、式（５）は、以下の式（６）で近似できる。
ｙＬ／ｙｒ＝Ｇ（ｓ）｛１／（ｓ2／ωz2＋１）｝・・・（６）
【００４０】
したがって、追従制御部２の応答を高速高精度にしても（伝達関数Ｇ（ｓ）を１に近づけても）、式（６）は２次共振特性を含む。このため、負荷位置ｙＬの応答は誤差を持ち、またモータ位置指令ｙｒの変化に対して反共振周波数ωzで振動的な挙動をすることが分かる。このように、反共振周波数ωzは、機械系の振動周波数に対応する。
【００４１】
次に、指令生成部５Ａの詳細な特性について説明する。指令生成部５Ａは、上述した動作をすることで、位相信号θの入力に対して以下の式（７）で表される指令補正値ｙｈを計算する。
ｙｈ＝ｆ’’（θ）・ω2／ωz2・・・（７）
【００４２】
ここで、機械位置指令ｙｒ０（すなわちｆ（θ））の時間微分を考える。機械位置指令ｙｒ０の１階微分値および２階微分値は、以下の式（８）および式（９）で表される。
ｄｆ（θ）／ｄｔ＝｛ｄｆ（θ）／ｄθ｝（ｄθ／ｄｔ）・・・（８）
ｄ2ｆ（θ）／ｄｔ2＝  ｛ｄ2ｆ（θ）／ｄθ2｝（ｄθ／ｄｔ）2＋｛ｄｆ（θ）／ｄθ｝（ｄ2θ／ｄｔ2）・・・（９）
【００４３】
ここで、位相信号θの時間微分である位相速度ωが、考慮する期間において一定あるいは変化が十分に小さいとすると、式（９）は以下の式（１０）となる。
ｄ2ｆ（θ）／ｄｔ2＝  ｛ｄ2ｆ（θ）／ｄθ2｝（ｄθ／ｄｔ）2・・・（１０）
【００４４】
式（１０）においてｄ2ｆ（θ）／ｄθ2をｆ’’（θ）に書き換え、ｄθ／ｄｔをωに書換え、ｆ（θ）をｙｒ０に書き換え、時間微分を演算子ｓに書き換えると、式（１０）は以下の式（１１）に書き換えられる。そして、指令補正値ｙｈを表す式（７）は、以下の式（１２）で表される。
ｓ2ｙｒ０＝ｆ’’（θ）ω2・・・（１１）
ｙｈ＝（ｓ2／ωz2）ｙｒ０・・・（１２）
【００４５】
このように、実装上は機械位置指令ｙｒ０に対する時間微分の演算を行わないにも関わらず、等価的には機械位置指令ｙｒ０の時間に関する２階微分値に所定の定数を乗じた信号として、指令補正値ｙｈを演算することができる。
【００４６】
また、モータ位置指令ｙｒは、ｙｒ０とｙｈとの和なので、機械位置指令ｙｒ０からモータ位置指令ｙｒまでの伝達関数は以下の式（１３）となる。その結果、機械位置指令ｙｒ０から負荷位置ｙＬまでの伝達関数は、式（６）と式（１３）とを併せることで以下の式（１４）となる。
ｙｒ／ｙｒ０＝（ｓ2／ωz2＋１）・・・（１３）
ｙＬ／ｙｒ０＝Ｇ（ｓ）・・・（１４）
【００４７】
したがって、追従制御部２の応答を高速高精度にし、伝達関数Ｇ（ｓ）を１に近づけることで、制御対象１の剛性が低くても、負荷位置ｙＬが機械位置指令ｙｒ０に高速高精度で追従するよう、制御することが可能になる。
【００４８】
指令生成部５Ａの特性は、定数乗算部５３ｂに設定した所定の定数を、制御対象１の機械特性（例えば、剛性や振動周波数に関係した機械特性）である反共振周波数ωzを用いて設定することで得られるものである。指令生成部５Ａの特性を、例えば、制御対象１の機械特性に応じて外部から設定することで、制御対象１への高精度制御が実現できる。
【００４９】
また、反共振周波数ωzは、制御対象１の振動周波数に対応している。このため、例えばサーボ制御装置１００Ａ内で自動的に振動周波数を測定して指令生成部５Ａに反共振周波数ωzを設定するようにサーボ制御装置１００Ａを構成してもよい。
【００５０】
上述した高速高精度制御が得られる効果は、原理的には、機械位置指令ｙｒ０からモータ位置指令ｙｒまでの伝達関数を式（１３）のようにすれば得ることができる。この性質は、特許文献１に記載の方法と原理的に同じである。
【００５１】
一方、本実施の形態に係るサーボ制御装置１００Ａの特徴の１つは、位相信号θに対する関数が設定された２次導関数部５２を用いて２階微分基礎信号ｘｂを算出し、位相速度ωの２乗と２階微分基礎信号ｘｂと所定の定数との積として指令補正値ｙｈを演算することである。このように、サーボ制御装置１００Ａでは、式（１２）で表される指令補正値ｙｈを、２階の時間微分を直接的に行うことなく演算する。
【００５２】
従来の技術とサーボ制御装置１００Ａとの比較として、仮に式（１２）に示すような２階時間微分を、実際に実時間で演算する場合を考える。実際のサーボ制御装置１００Ａでの演算においては、有効桁数が有限長の数値演算を用いる。その場合、位相発生部３Ａにおける位相信号θの演算時に、理想値に対して量子化ノイズが混入する。また、指令関数部５１において、位相信号θから機械位置指令ｙｒ０を出力する過程（データテーブル参照に基づいた補間演算を行う過程）の各四則演算において、丸め誤差や打ち切り誤差に起因した量子化ノイズが混入する。
【００５３】
このような量子化ノイズが混入した機械位置指令ｙｒ０に対して、時間微分を２重に行うような２階微分演算を行うと、量子化ノイズの成分が非常に大きくなり、そのまま指令補正値ｙｈの演算に用いることができなくなる。また、量子化ノイズを抑制するために、実時間演算でフィルタを作用させると、フィルタによる遅れが発生するので、高精度な制御の実現が困難になる。
【００５４】
これに対し、本実施の形態では、位相信号θに対する関数あるいはデータテーブルが設定された２次導関数部５２の参照値に基づいて指令補正値ｙｈの計算を行うので、数値の量子化と時間微分とに起因したノイズ成分の増大を抑制できる。その結果、フィルタ等を追加することなく高精度な制御を容易に実現できる。
【００５５】
このように、サーボ制御装置１００Ａは、機械位置指令ｙｒ０の位相信号θに関する２階微分値に相当する２階微分基礎信号ｘｂを２次導関数部５２で算出している。そして、サーボ制御装置１００Ａは、２階微分基礎信号ｘｂと、位相発生部３Ａでノイズ成分を含まないように生成した位相速度ωの２乗と、所定の定数と、を乗じて指令補正値ｙｈを算出している。これにより、位相速度ωの変更（制御対象１に行わせる周期的動作の周期の変更）にも対応して、機械位置指令ｙｒ０の２階時間微分を用いるのと同等な制御特性を実現できる。また、実際の演算では時間微分を行わないため、信号のノイズ成分が抑制されたモータ位置指令ｙｒを算出することができる。
【００５６】
また、位相発生部３Ａにおける位相速度ωの演算において、ノイズを除去するための遅いローパスフィルタを用いたとしても、位相速度ωの変化が緩やかならば、ローパスフィルタによる遅れが指令補正値ｙｈの演算に与える影響は微小となる。このため、サーボ制御装置１００Ａは、制御精度を悪化させることなく、ノイズの悪影響を除去できる。
【００５７】
本実施の形態では、指令関数部５１の指令関数ｆ（θ）および２次導関数部５２の２次導関数ｆ’’（θ）を、予め設定しておいたデータテーブルと補間演算によって算出する場合について説明した。このデータテーブルの作成方法は、特に限定されるものではない。指令関数ｆ（θ）および２次導関数ｆ’’（θ）を位相信号θに対する数式として演算できる場合は、非常に複雑な演算であっても、テーブル化しておくことで実時間動作において計算時間に起因する問題を回避できる。また、２次導関数ｆ’’（θ）に相当するデータテーブルを予め作成しておく際に高精度な浮動小数点演算などを用いてデータテーブルを演算しておけば、ノイズ誤差が混入することなくデータテーブルを作成できる。したがって、高周波数のノイズの問題が生じることなく高精度な制御を実現できる。
【００５８】
また、指令関数部５１に設定しておく関数ｆ（θ）として、数式に基づかずに有限個の位相信号θの点に対する数値テーブルを設定してもよい。この場合、数式では表すことが困難な任意のパターンの周期的動作を容易に設定できる。このような場合に、指令関数部５１の指令関数ｆ（θ）のデータテーブルに基づいた単純な方式として、仮に隣接する位相信号θの点に関する差分演算を２重に行うことにより２次導関数ｆ’’（θ）に相当するデータテーブルを求めると、位相信号θの領域における高周波数成分を大きくし過ぎる場合がある。
【００５９】
高周波数成分を大きくし過ぎる場合には、フィルタによる平滑化操作が必要になるが、実時間演算でなく事前にオフラインで平滑化操作をすればよいので、位相誤差を生じることなく高周波数成分を抑制することが可能となる。
【００６０】
具体的には、位相信号θの領域で作用させるフィルタ演算においてゼロ位相フィルタと呼ばれる手法を用いる。すなわち、位相信号θに関する高周波数成分を抑制する特性のフィルタ演算を、位相信号θの正方向と逆方向とに二重に適用する。これにより、位相誤差を生じさせずに高周波数成分を抑制しながら、２次導関数部５２における２次導関数ｆ’’（θ）に相当する関数を作成できる。その結果、２次導関数部５２でデータテーブル参照と補間演算とを行う実時間動作の演算の際に、出力信号の高周波数ノイズを大きくすることなく、制御対象１の振動や制御誤差への影響が大きい反共振周波数ωz付近の周波数特性については高精度な実時間演算をできる。したがって、高精度な制御を実現することが可能となる。
【００６１】
また、本実施の形態では、指令関数部５１の関数ｆ（θ）および２次導関数部５２のｆ’’（θ）に相当する関数が、所定数の位相信号θの点に対するデータテーブルとして設定される場合について説明したが、指令関数ｆ（θ）や２次導関数ｆ’’（θ）として数式演算を設定しておいてもよい。例えば、実時間演算が可能な関数で指令関数ｆ（θ）や２次導関数ｆ’’（θ）を実現できる場合は、データテーブルを設定する必要はなく、位相信号θに対する数式演算を行ってもよい。
【００６２】
このように、本実施の形態では、サーボ制御装置１００Ａが位置制御を行う場合について説明した。具体的には、位相信号θを入力とした指令関数部５１が機械位置指令ｙｒ０を算出し、位相信号θと位相速度ωを入力とした補正値演算部５３が指令補正値ｙｈを算出し、補正値加算部５４Ａがモータ位置指令ｙｒを算出している。そして、追従制御部２が、モータ位置指令ｙｒにモータ位置ｙｍが追従するよう制御対象１を制御している。
【００６３】
なお、サーボ制御装置１００Ａは、同様な構成で速度の次元で動作させることも可能であり、その場合も位置制御と全く同様な効果が得られる。この場合、位相信号θを入力とした指令関数部５１が機械運動指令として機械速度指令を算出し、位相信号θと位相速度ωを入力とした補正値演算部５３が速度の指令補正値を算出し、補正値加算部５４Ａがモータ運動指令としてモータ速度指令を算出する。そして、追従制御部２がモータ速度指令にモータ運動であるモータ速度が追従するよう制御対象１を制御する。
【００６４】
このように、実施の形態１によれば、周期的な動作をさせる制御対象１の低剛性に起因した振動や制御誤差を抑制しつつ、周期変更にも対応しながら、指令の信号量子化に起因したノイズの問題を生じることなく、高精度な制御を実現できる。したがって、制御対象１が低剛性であっても、周期的な動作を高精度に制御することが可能となる。
【００６５】
実施の形態２．
つぎに、図３を用いてこの発明の実施の形態２について説明する。図３は、本発明の実施の形態２に係るサーボ制御装置の構成を示すブロック図である。図３の各構成要素のうち図１に示す実施の形態１のサーボ制御装置１００Ａと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【００６６】
実施の形態２に係るサーボ制御装置１００Ｂは、サーボ制御装置１００Ａよりも複雑な設定や演算を行うことで、サーボ制御装置１００Ａよりも高精度な制御を実現する。本実施の形態のサーボ制御装置１００Ｂは、一次導関数部６２および加速時補正値演算部６３を備えることで位相信号θの変化速度を表す位相速度ωが一定でない場合にも制御精度を向上させる。また一次導関数部６２および減衰補正値演算部６４を備えることで制御対象１の振動特性における減衰が大きい場合にも制御精度を向上させる。
【００６７】
サーボ制御装置１００Ｂは、位相発生部３Ｂと、指令生成部５Ｂと、追従制御部２と、を含んで構成されている。位相発生部３Ｂは、実施の形態１における位相発生部３Ａと同様に、位相信号θと位相速度ωを指令生成部５Ｂに出力する。また、位相発生部３Ｂは、位相速度ωの時間微分に相当する位相加速度αを指令生成部５Ｂに出力する。この位相加速度αは、予め時系列パターンとして設定しておくなどの方法により、ノイズ的な成分を含まずに出力させることが可能である。
【００６８】
指令生成部５Ｂは、位相信号θ、位相速度ω、位相加速度αを入力してモータ位置指令ｙｒを算出し、算出したモータ位置指令ｙｒを追従制御部２に出力する。指令生成部５Ｂは、指令関数部５１と、２次導関数部５２と、補正値演算部５３と、補正値加算部５４Ｂと、１次導関数部６２と、加速時補正値演算部６３と、減衰補正値演算部６４と、を含んで構成されている。
【００６９】
指令生成部５Ｂでは、指令関数部５１、２次導関数部５２および１次導関数部６２に位相発生部３Ｂから出力された位相信号θが入力される。また、補正値演算部５３および減衰補正値演算部６４に位相発生部３Ｂから出力された位相速度ωが入力される。さらに、加速時補正値演算部６３に位相発生部３Ｂから出力された位相加速度αが入力される。
【００７０】
１次導関数部６２には、指令関数部５１における指令関数ｆ（θ）の１次導関数ｆ’（θ）に相当する第３の関数が、予め設定されている。１次導関数ｆ’（θ）に相当する第３の関数は、指令関数ｆ（θ）を位相信号θによって１階微分したものに相当する関数である。１次導関数部６２は、入力した位相信号θに対応した第３の関数の値を１階微分基礎信号ｘｂ１として、加速時補正値演算部６３および減衰補正値演算部６４に出力する。この１次導関数ｆ’（θ）に相当する第３の関数は、指令関数ｆ（θ）や２次導関数ｆ’’（θ）と同様に、例えば数式やデータテーブルである。
【００７１】
１次導関数ｆ’（θ）に相当する第３の関数がデータテーブルの場合、位相信号θの点（値）と１階微分基礎信号ｘｂ１の点（値）との間の対応関係を、予めデータテーブルに所定数設定しておく。１次導関数部６２は、入力された任意の値の位相信号θに対してデータテーブル参照値を補間することで１階微分基礎信号ｘｂ１を算出する。１次導関数部６２は、算出した１階微分基礎信号ｘｂ１を加速時補正値演算部６３および減衰補正値演算部６４に出力する。
【００７２】
加速時補正値演算部６３は、１階微分基礎信号ｘｂ１と位相加速度αとを入力し、１階微分基礎信号ｘｂ１と位相加速度αと所定の定数（第２の定数）との積を、加速時補正値ｙｈａとして算出する。加速時補正値演算部６３は、算出した加速時補正値ｙｈａを、補正値加算部５４Ｂに出力する。
【００７３】
加速時補正値演算部６３で用いる所定の定数は、実施の形態１における補正値演算部５３で用いる所定の定数と同様に、制御対象１の剛性あるいは振動に関係した機械定数に応じて設定されるものである。例えば、加速時補正値演算部６３で用いる所定の定数は、制御対象１の反共振周波数ωzの２乗の逆数になるよう設定される。したがって、加速時補正値ｙｈａは、以下の式（１５）を用いて演算される。
ｙｈａ＝ｆ’（θ）・α／ωz・・・（１５）
【００７４】
ここで、機械位置指令ｙｒ０（すなわちｆ（θ））の時間に関する２階微分値は、実施の形態１で説明したように、式（９）で表される。実施の形態１で仮定した位相速度ωの変化が十分に小さいとした条件が成り立たない場合、式（９）は以下の式（１６）に書き換えられる。また、式（７）と式（１５）より、指令補正値ｙｈと加速時補正値ｙｈａとの和は、以下の式（１７）で表される。
ｓ2ｙｒ０＝ｆ’’（θ）ω2＋ｆ’（θ）α・・・（１６）
ｙｈ＋ｙｈａ＝（ｓ2／ωz2）ｙｒ０・・・（１７）
【００７５】
減衰補正値演算部６４は、上述した１階微分基礎信号ｘｂ１と位相速度ωとを入力し、１階微分基礎信号ｘｂ１と位相速度ωと所定の定数（第３の定数）との積を、減衰補正値ｙｈｚとして算出する。減衰補正値演算部６４は、算出した減衰補正値ｙｈｚを、補正値加算部５４Ｂに出力する。
【００７６】
減衰補正値演算部６４における所定の定数は、例えば、制御対象１の減衰係数ζの２倍と反共振周波数ωzの逆数とを乗じた値に基づく値である。また、実施の形態１における式（８）より、以下の式（１８）が成り立つので、演算する減衰補正値ｙｈｚは以下の式（１９）で表される。
ｓ・ｙｒ０＝ｆ’（θ）ω・・・（１８）
ｙｈｚ＝（２ζ・ｓ／ωz）ｙｒ０・・・（１９）
【００７７】
補正値加算部５４Ｂは、指令関数部５１が出力した機械位置指令ｙｒ０に、補正値演算部５３が出力した指令補正値ｙｈと、加速時補正値演算部６３が出力した加速時補正値ｙｈａと、減衰補正値ｙｈｚと、を加算した結果を、モータ位置指令ｙｒとして追従制御部２に出力する。式（１７）と式（１９）に基づいて、機械位置指令ｙｒ０からモータ位置指令ｙｒまでの伝達関数を算出すると、以下の式（２０）となる。
ｙｒ／ｙｒ０＝（ｓ2／ωz2＋２ζｓ／ωz＋１）・・・（２０）
【００７８】
したがって、位相速度ωの変化を表す位相加速度αを無視できない場合や、制御対象１の減衰係数ζを無視できない場合であっても、式（６）と式（２０）を併せることで、機械位置指令ｙｒ０から負荷位置ｙＬまでの伝達関数を、実施の形態１と同様に式（１４）で表すことができる。
【００７９】
その結果、追従制御部２の応答を高速高精度にし、伝達関数Ｇ（ｓ）を１に近づけることで、負荷位置ｙＬが機械位置指令ｙｒ０に高速高精度で追従するよう、制御対象１を制御することが可能になる。
【００８０】
なお、本実施の形態では、機械位置指令ｙｒ０に、指令補正値ｙｈ、加速時補正値ｙｈａおよび減衰補正値ｙｈｚの全てを加算することによって、モータ位置指令ｙｒを算出する場合について説明したが、モータ位置指令ｙｒの算出方法は、この方法に限らない。指令生成部５Ｂは、機械位置指令ｙｒ０と指令補正値ｙｈの加算値に、加速時補正値ｙｈａおよび、減衰補正値ｙｈｚの少なくとも１つを加算することによってモータ位置指令ｙｒを算出すればよい。
【００８１】
例えば、モータ位置指令ｙｒを算出する際に加速時補正値ｙｈａを加算しない場合には、加速時補正値演算部６３は不要となる。また、モータ位置指令ｙｒを算出する際に減衰補正値ｙｈｚを加算しない場合には、減衰補正値演算部６４は不要となる。
【００８２】
このように、実施の形態２によれば、位相速度ωの変化が無視できない場合や制御対象１の振動特性の減衰係数ζが無視できない場合においても、周期的な動作をさせる制御対象１の低剛性に起因した振動や制御誤差を抑制しつつ、周期変更にも対応しながら、指令の信号量子化に起因したノイズの問題を生じることなく、高精度な制御を実現できる。
【産業上の利用可能性】
【００８３】
以上のように、本発明に係るサーボ制御装置は、モータで機械系を駆動する制御対象の制御に適している。
【符号の説明】
【００８４】
１  制御対象、２  追従制御部、３Ａ，３Ｂ  位相発生部、５Ａ，５Ｂ  指令生成部、１１  モータ、１２  弾性部、１３  機械負荷、５１  指令関数部、５２  ２次導関数部、５３  補正値演算部、５３ａ  ２乗演算部、５３ｂ  定数乗算部、５３ｃ  ２階微分乗算部、５４Ａ，５４Ｂ  補正値加算部、６２  １次導関数部、６３  加速時補正値演算部、６４  減衰補正値演算部、１００Ａ，１００Ｂ  サーボ制御装置。
【図１】
2014064815.tif 000003
【図２】
2014064815.tif 000004
【図３】
2014064815.tif 000005
【国際調査報告】
2014064815.tif 000006
2014064815.tif 000007