(57)【特許請求の範囲】
【請求項１】
対象物の位置に応じて、アクチュエータにより、前記対象物を位置制御する位置制御装置において、
目標位置と前記対象物の現在位置との位置誤差に応じて、内部制御定数を使用して、外乱適応制御を含む位置制御を、所定のサンプル周期で実行するデジタル制御ブロックと、
外乱の角周波数ωとし、前記サンプル周期をＴとした場合に、ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値に応じた前記内部制御定数を格納するテーブルとを有し、
前記デジタル制御ブロックは、前記内部制御定数を使用して、外乱適応制御値を計算する外乱適応制御ブロックと、前記位置誤差と前記外乱適応制御ブロックが使用する内部制御定数とから、適応則に従い、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の推定誤差の値を計算する周波数推定ブロックとを有し、前記周波数推定ブロックが計算した前記ｓｉｎ（ωＴ）の推定誤差にｃｏｓωＴに比例した適応ゲインを乗算し、又は前記周波数推定ブロックが計算した前記ｃｏｓ（ωＴ）の推定誤差にｓｉｎωＴに比例した適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値を更新し、前記更新した値で、前記テーブルから対応する前記内部制御定数を読み出し、前記外乱適応制御ブロックが使用する内部制御定数を更新して、前記外乱適応制御を含む位置制御を行う
位置制御装置。 
【請求項２】
前記デジタル制御ブロックは、オブザーバ制御により、前記外乱適応制御を含む位置制御を行う
請求項１の位置制御装置。 
【請求項３】
前記デジタル制御ブロックは、前記オブザーバ制御におけるオブザーバの状態変数と、推定ゲインと、推定位置誤差とから推定誤差を計算し、前記適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）に加算して、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）を逐次更新する
請求項２の位置制御装置。 
【請求項４】
前記デジタル制御ブロックは、前記オブザーバ制御におけるオブザーバの現サンプルの状態変数と、次のサンプルの状態変数とから推定誤差を計算し、前記適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）に加算して、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）を逐次更新する
請求項２の位置制御装置。 
【請求項５】
前記デジタル制御ブロックは、前記計算した前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値を、所定の範囲に収めるためにクリップする
請求項１の位置制御装置。 
【請求項６】
前記デジタル制御ブロックは、
前記位置誤差に応じて、前記アクチュエータの制御値を演算するコントロールブロックを有し、
前記コントロールブロックの制御値と前記外乱適応制御値とで、前記アクチュエータを駆動する
請求項１の位置制御装置。 
【請求項７】
前記テーブルは、前記計算した前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値に対応した前記オブザーバ制御におけるオブザーバの状態推定ゲインを格納し、
前記デジタル制御ブロックは、前記内部制御定数として、前記オブザーバの状態推定ゲインを、前記テーブルから読み出された状態推定ゲインで更新する
請求項２の位置制御装置。 
【請求項８】
ディスクから情報を読み取るヘッドと、
前記ヘッドを前記ディスクのトラック横断方向に移動するアクチュエータと、
目標位置と前記ヘッドの現在位置との位置誤差に応じて、内部制御定数を使用して、外乱適応制御を含む位置制御を、所定のサンプル周期で実行するデジタル制御ブロックと、
外乱の角周波数ωとし、前記サンプル周期をＴとした場合に、ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値に応じた前記内部制御定数を格納するテーブルとを有し、
前記デジタル制御ブロックは、前記内部制御定数を使用して、外乱適応制御値を計算する外乱適応制御ブロックと、前記位置誤差と前記外乱適応制御ブロックが使用する内部制御定数とから、適応則に従い、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の推定誤差の値を計算する周波数推定ブロックとを有し、前記周波数推定ブロックが計算した前記ｓｉｎ（ωＴ）の推定誤差にｃｏｓωＴに比例した適応ゲインを乗算し、又は前記周波数推定ブロックが計算した前記ｃｏｓ（ωＴ）の推定誤差にｓｉｎωＴに比例した適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値を更新し、前記更新した値で、前記テーブルから対応する前記内部制御定数を読み出し、前記外乱適応制御ブロックが使用する内部制御定数を更新して、前記外乱適応制御を含む位置制御を行う
ディスク装置。 
【請求項９】
前記デジタル制御ブロックは、オブザーバ制御により、前記外乱適応制御を含む位置制御を行う
請求項８のディスク装置。 
【請求項１０】
前記デジタル制御ブロックは、前記オブザーバ制御におけるオブザーバの状態変数と、推定ゲインと、推定位置誤差とから推定誤差を計算し、前記適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）に加算して、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）を逐次更新する
請求項９のディスク装置。 
【請求項１１】
前記デジタル制御ブロックは、前記オブザーバ制御におけるオブザーバの現サンプルの状態変数と、次のサンプルの状態変数とから推定誤差を計算し、前記適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）に加算して、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）を逐次更新する
請求項９のディスク装置。 
【請求項１２】
前記デジタル制御ブロックは、前記計算した前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値を、所定の範囲に収めるためにクリップする
請求項８のディスク装置。 
【請求項１３】
前記デジタル制御ブロックは、
前記位置誤差に応じて、前記アクチュエータの制御値を演算するコントロールブロックを有し、
前記コントロールブロックの制御値と前記外乱適応制御値とで、前記アクチュエータを駆動する
請求項８のディスク装置。 
【請求項１４】
前記テーブルは、前記計算した前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値に対応した前記オブザーバ制御におけるオブザーバの状態推定ゲインを格納し、
前記デジタル制御ブロックは、前記内部制御定数として、前記オブザーバの状態推定ゲインを、前記テーブルから読み出された状態推定ゲインで更新する
請求項９のディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外乱による対象物の位置ずれを抑制するための位置制御装置及びディスク装置に関し、特に、未知の外乱周波数による位置ずれを抑制するための位置制御装置及びディスク装置に関する。
【背景技術】
【０００２】
近年、対象物を高精度で位置制御する装置は、広く利用されている。例えば、回転する記憶媒体（例えば、ディスク媒体）に、ヘッドで、データを記録、再生するディスク装置では、ヘッドを記憶媒体の所望のトラックに位置決めし、そのトラックに、データをリード／ライトする。このようなディスク装置、例えば、磁気ディスク装置や光ディスク装置において、ヘッドを目標トラックに正確に位置決めすることが、記録密度向上のために極めて重要である。
【０００３】
この位置決めを阻害する要因の１つとして、ディスク上の同心円状のサーボ信号の中心が、モータの回転中心と異なることにより生じる偏心がある。この偏心を補正する技術として、オブザーバを利用した制御方法がある（例えば、特許文献１参照）。
【０００４】
偏心は、回転周波数の整数倍に同期した正弦波状の位置ゆれを発生させる。前記のオブザーバ制御方法は、このような正弦波状の位置揺れを抑圧し、目標トラックに正確に位置決めすることができる。しかしながら、このような偏心補正は、あらかじめ補正する周波数を事前に把握していなければならない。たとえば、回転数の整数倍、１倍や２倍でなければならない。
【０００５】
位置決めを阻害する２つ目の要因として、ディスク装置の外部から加わる振動がある。この振動はさまざまな波形があるが、ここでは、正弦波状の振動に対処する方法について検討する。前記の偏心補正制御を応用することで、回転数の整数倍以外の周波数にも対処することは可能になる。
【０００６】
前記の従来の構成は、外乱の周波数が既知であることを前提としている。ところが、外部振動は、どのような振動が加わるのかは、制御系の設計時点では未知であり、事前にその周波数を把握することはできない。それゆえ、なんらかの未知の周波数の検出手段が必要になり、周波数さえ検出できれば、前述の特許文献１に示したような制御方法を用いて、外部振動による位置ゆれを抑圧する（外部振動に適応追従する）ことが可能になる。
【０００７】
図２１は、従来の外乱周波数を検出し、所定の周波数の正弦波状の外乱を抑圧し、位置追従するための制御系の構成図である。図２１に示すように、目標位置ｒと現在位置ｙとの位置誤差ｅを演算ブロック１２０で演算し、制御ブロック（Ｃｎ）１２１で制御演算し、制御量Ｕｎを計算し、プラント１２２（例えば、ディスク装置のＶＣＭ）を駆動する。ディスク装置では、磁気ヘッドからのサーボ信号を、復調し、プラント１２２の現在位置ｙを計算し、演算ブロック１２０にフィードバックする。
【０００８】
周波数（ω）推定器１２４は、位置誤差ｅと外乱抑圧補償器１２３（Ｃｄ）の内部変数を用いて、外部振動の角周波数ωを推定する。補償用テーブル１２５は、各周波数ωに対応した外部振動抑圧用の補償器１２３（Ｃｄ）の定数を格納する。外乱抑圧補償器１２３（Ｃｄ）は、周波数推定器１２４の角周波数ωにより、補償用テーブル１２５から読み出された定数により内部定数を修正し、位置誤差ｅから外乱抑圧制御量Ｕｄを計算する。加算ブロック１２６は、制御量Ｕｎと外乱抑圧制御量Ｕｄとを加算して、プラント１２２に出力する。
【０００９】
このように、従来は、角周波数（外乱周波数）ωを推定し、角周波数ωの値に応じて、補償器Ｃｄの内部定数を修正し、補償器Ｃｄの動作を、広い周波数範囲にわたり、常に最適に保っていた（例えば、特許文献２参照）。
【００１０】
この従来の角周波数ωの推定のために、未知の外乱周波数に適応するため、推定した角周波数ωを逐次修正する。このための適応則は、アナログ制御系で、以下のように導出していた。即ち、周期性外乱を補償する補償器の回転ベクトルを、式（１）の連続系で表現する。
【００１１】
【数１】
0005362062.tif 000002
【００１２】
式（１）において、ｚ１、ｚ２は、回転ベクトルのＸ軸成分、Ｙ軸成分である。
【００１３】
式（１）のｚ１、ｚ２の時間微分を求めると、下記（２）式が得られる。但し、ωは、時間に対して可変である時間関数である。
【００１４】
【数２】
0005362062.tif 000003
【００１５】
この回転ベクトルの角度は、ｓｉｎ成分ｚ１，ｃｏｓ成分ｚ２のｔａｎｇｅｎｔであり、角周波数ωは、その微分値であるから、この回転ベクトルの角周波数ωは、次式（３）で求められる。
【００１６】
【数３】
0005362062.tif 000004
【００１７】
ここで、補償器は、次の（４）式を利用する。尚、式（４）は、ωが定常値（ｃｏｎｓｔａｎｔ）であることを仮定している。
【００１８】
【数４】
0005362062.tif 000005
【００１９】
式（４）において、ｚ１は、外乱のｓｉｎ成分、ｚ２は、外乱のｃｏｓ成分、Ｌ４，Ｌ５は、入力ゲイン、ｅは、位置誤差、ｓは、ラプラス演算子である。
【００２０】
式（４）のアナログの補償器の状態方程式を展開し、ｚ１、ｚ２の微分式を求め、ｚ１，ｚ２の微分式を，式（３）に代入すると、次の式（５）が得られる。
【００２１】
【数５】
0005362062.tif 000006
【００２２】
推定した未知外乱の角周波数が、正しければ、補償器１２３（Ｃｄ）は、適切に外乱を抑圧できる。結果として、位置誤差ｅ又はオブザーバの推定位置誤差が、ゼロになる。即ち、式（５）において、補償器２３（Ｃｄ）の対象とする角周波数ωと、推定した外乱の角周波数ωとが一致する条件は、式（５）のω‘、即ち、右辺の位置誤差ｅの項が、ゼロであれば、良い。このため、（５）式を、角周波数の時間微分式で表現し、次式（６）の適応則（積分補償則）を得る。
【００２３】
【数６】
0005362062.tif 000007
【００２４】
この式を用いて、ωの値を逐次修正する。（６）式を、積分形式に直し、デジタル制御の式で表現して、次式（７）が得られる。
【００２５】
【数７】
0005362062.tif 000008
【００２６】
尚、Ｋは、適応ゲインである。上式（７）は、加算形式で適応則を用いている。これを乗算形式で表現することもできる。この適応則を用いると、図２２に示すように、外乱の振動周波数に対し、推定周波数ωは、リニアーな関係が得られる。
【先行技術文献】
【特許文献】
【００２７】
【特許文献１】日本特許第３，４６０，７９５号公報
【特許文献２】日本特許公開２００７−００４９４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２８】
一方、近年、このような制御系をデジタル制御、即ち、プロセッサのデータ処理で実行する方式が採用されている。前述の従来技術では、アナログの式を元に、アナログの適応則を導出し、これをデジタルの適応則に変換していた。このため、式（７）をデジタル制御に用いると、デジタルの外乱適応制御で、外乱を良好に抑圧できない（外乱に位置追従できない）という問題が生じる。即ち、推定角周波数ωを直接導出しているが、これは、アナログの式に基づくからである。
【００２９】
従って、本発明の目的は、デジタル処理に適した外乱適応制御を行うための位置制御装置及びディスク装置を提供することにある。
【００３０】
又、本発明の他の目的は、デジタル処理に適した外乱適応則を利用して、推定外乱周波数を高精度に推定し、外乱適応制御するための位置制御装置及びディスク装置を提供することにある。
【００３１】
本発明の更に他の目的は、オブザーバ制御に適した外乱適応制御を行い、より正確に外乱による位置ずれを抑圧するための位置制御装置及びディスク装置を提供することにある。
【課題を解決するための手段】
【００３２】
この目的の達成のため、実施形態は、対象物の位置に応じて、アクチュエータにより、前記対象物を位置制御する位置制御装置において、目標位置と前記対象物の現在位置との位置誤差に応じて、内部制御定数を使用して、外乱適応制御を含む位置制御を、所定のサンプル周期で実行するデジタル制御ブロックと、外乱の角周波数ωとし、前記サンプル周期をＴとした場合に、ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値に応じた前記内部制御定数を格納するテーブルとを有し、前記デジタル制御ブロックは、前記内部制御定数を使用して、外乱適応制御値を計算する外乱適応制御ブロックと、前記位置誤差と前記外乱適応制御ブロックが使用する内部制御定数とから、適応則に従い、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の推定誤差の値を計算する周波数推定ブロックとを有し、前記周波数推定ブロックが計算した前記ｓｉｎ（ωＴ）の推定誤差にｃｏｓωＴに比例した適応ゲインを乗算し、又は前記周波数推定ブロックが計算した前記ｃｏｓ（ωＴ）の推定誤差にｓｉｎωＴに比例した適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値を更新し、前記更新した値で、前記テーブルから対応する前記内部制御定数を読み出し、前記外乱適応制御ブロックが使用する内部制御定数を更新して、前記外乱適応制御を含む位置制御を行う。 
【００３３】
又、実施形態のディスク装置は、ディスクから情報を読み取るヘッドと、前記ヘッドを前記ディスクのトラック横断方向に移動するアクチュエータと、目標位置と前記ヘッドの現在位置との位置誤差に応じて、内部制御定数を使用して、外乱適応制御を含む位置制御を、所定のサンプル周期で実行するデジタル制御ブロックと、外乱の角周波数ωとし、前記サンプル周期をＴとした場合に、ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値に応じた前記内部制御定数を格納するテーブルとを有し、前記デジタル制御ブロックは、前記内部制御定数を使用して、外乱適応制御値を計算する外乱適応制御ブロックと、前記位置誤差と前記外乱適応制御ブロックが使用する内部制御定数とから、適応則に従い、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の推定誤差の値を計算する周波数推定ブロックとを有し、前記周波数推定ブロックが計算した前記ｓｉｎ（ωＴ）の推定誤差にｃｏｓωＴに比例した適応ゲインを乗算し、又は前記周波数推定ブロックが計算した前記ｃｏｓ（ωＴ）の推定誤差にｓｉｎωＴに比例した適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値を更新し、前記更新した値で、前記テーブルから対応する前記内部制御定数を読み出し、前記外乱適応制御ブロックが使用する内部制御定数を更新して、前記外乱適応制御を含む位置制御を行う。 
【００３４】
更に、実施形態では、好ましくは、前記デジタル制御ブロックは、オブザーバ制御により、前記外乱適応制御を含む位置制御を行う。
【００３５】
更に、実施形態では、好ましくは、前記デジタル制御ブロックは、前記オブザーバ制御のオブザーバの状態変数と、推定ゲインと、推定位置誤差とから推定誤差を計算し、前記適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）に加算して、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）を逐次更新する。 
【００３６】
更に、実施形態では、好ましくは、前記デジタル制御ブロックは、前記オブザーバ制御のオブザーバの現サンプルの状態変数と、次のサンプルの状態変数とから推定誤差を計算し、前記適応ゲインを乗算し、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）に加算して、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）を逐次更新する。 
【００３７】
更に、実施形態では、好ましくは、前記デジタル制御ブロックは、前記計算した前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値を、所定の範囲に収めるためにクリップする。
【００３８】
更に、実施形態では、好ましくは、前記デジタル制御ブロックは、前記位置誤差に応じて、前記アクチュエータの制御値を演算するコントロールブロックと、前記適応則に従い、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）に計算し、前記適応ゲインを乗算して、前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）を更新し、前記更新された値により、前記テーブルから読み出された内部制御定数を使用して、外乱適応制御値を計算する外乱適応制御ブロックとを有し、前記コントロールブロックの制御値と前記外乱適応制御値とで、前記アクチュエータを駆動する。
【００３９】
更に、実施形態では、好ましくは、前記テーブルは、前記計算した前記ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値に対応した前記オブザーバ制御のオブザーバの状態推定ゲインを格納し、前記デジタル制御ブロックは、前記内部制御定数として、前記オブザーバの状態推定ゲインを、前記テーブルから読み出された状態推定ゲインで更新する。 
【発明の効果】
【００４０】
外乱の角周波数ωとし、前記サンプル周期をＴとした場合に、ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の推定誤差を計算し、角周波数ωに比例する適応ゲインを乗算して、ｓｉｎ（ωＴ）、又はｃｏｓ（ωＴ）の値を更新し、外乱適応制御するので、デジタル制御において、外乱の周波数の推定精度を向上でき、外乱適応制御を精度よく実現できる。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施の形態のディスク記憶装置の構成図である。
【図２】図１の構成のディスクの位置信号の説明図である。
【図３】図２の位置信号の詳細説明図である。
【図４】図１のヘッドのシーク動作の説明図である。
【図５】本発明の第１の実施の形態の外乱抑圧補償器を付加した位置制御系のブロック図である。
【図６】図５のｓｉｎ（ωＴ）推定の説明図である。
【図７】図５のｃｏｓ（ωＴ）と振動周波数との関係図である。
【図８】図５のｓｉｎ（ωＴ）と適応ゲインとの関係図である。
【図９】本発明の第２の実施の形態の外乱抑圧補償器を付加した位置制御系のブロック図である。
【図１０】図９の構成におけるテーブルの構成図である。
【図１１】図９の構成における他のｓｉｎ（ωＴ）推定器の構成図である。
【図１２】本発明の第３の実施の形態の外乱抑圧補償器を付加した位置制御系のブロック図である。
【図１３】図１２のｓｉｎ（ωＴ／２）推定の説明図である。
【図１４】図１２のｓｉｎ（ωＴ／２）と振動周波数との関係図である。
【図１５】図１２のｓｉｎ（ωＴ／２）と適応ゲインとの関係図である。
【図１６】本発明の第４の実施の形態の外乱抑圧補償器を付加した位置制御系のブロック図である。
【図１７】図１６の構成におけるテーブルの構成図である。
【図１８】図１６の構成における他のｓｉｎ（ωＴ／２）推定器の構成図である。
【図１９】本発明の第５の実施の形態の外乱抑圧補償器を付加した位置制御系のブロック図である。
【図２０】本発明の第６の実施の形態の外乱抑圧補償器を付加した位置制御系のブロック図である。
【図２１】従来の外乱適応制御を付加した位置制御系のブロック図である。
【図２２】図２１の従来の外乱周波数の推定の説明図である。
【発明を実施するための形態】
【００４２】
以下、本発明を図面に従い、ディスク装置、位置制御系の外乱周波数推定、適応制御、位置制御系の第１の実施の形態、位置制御系の第３の実施の形態、位置制御系の第４の実施の形態、位置制御系の第５の実施の形態、位置制御系の第６の実施の形態、他の実施の形態の順で説明するが、本発明は、下記実施の形態に限らず、種々の変形が可能である。
【００４３】
［ディスク装置］
図１は、本発明の一実施の形態のディスク装置の構成図、図２は、図１の磁気ディスクの位置信号の配置図、図３は、図１及び図２の磁気ディスクの位置信号の構成図、図４は、図１のヘッド位置制御の説明図である。
【００４４】
図１は、ディスク装置として、磁気ディスク装置を示す。図１に示すように、磁気記憶媒体である磁気ディスク４が、スピンドルモータ５の回転軸２に設けられている。スピンドルモータ５は、磁気ディスク４を回転する。アクチュエータ（ＶＣＭ）１は、そのアーム先端に磁気ヘッド３を備え、磁気ヘッド３を磁気ディスク４の半径方向に移動する。
【００４５】
アクチュエータ１は、回転軸を中心に回転するボイスコイルモータ（ＶＣＭ）で構成される。図では、磁気ディスク装置に、２枚の磁気ディスク４が搭載され、４つの磁気ヘッド３が、同一のアクチュエータ１で同時に駆動される。
【００４６】
磁気ヘッド３は、リード素子と、ライト素子とからなる。磁気ヘッド３は、スライダに、磁気抵抗（ＭＲ）素子を含むリード素子を積層し、その上にライトコイルを含むライト素子を積層して、構成される。
【００４７】
位置検出回路７は、磁気ヘッド３が読み取った位置信号（アナログ信号）をデジタル信号に変換する。リード／ライト（Ｒ／Ｗ）回路１０は、磁気ヘッド３の読み取り及び書込みを制御する。スピンドルモータ（ＳＰＭ）駆動回路８は、スピンドルモータ５を駆動する。ボイスコイルモータ（ＶＣＭ）駆動回路６は、ボイスコイルモータ（ＶＣＭ）１に駆動電流を供給し、ＶＣＭ１を駆動する。
【００４８】
マイクロコントローラ（ＭＣＵ）１４は、位置検出回路７からのデジタル位置信号から現在位置を検出（復調）し、検出した現在位置と目標位置との誤差に従い、ＶＣＭ駆動指令値を演算する。即ち、位置復調とサーボ制御を行う。リードオンリーメモリ（ＲＯＭ）１３は、ＭＣＵ１４の制御プログラム等を格納する。ランダムアクセスメモリ（ＲＡＭ）１２は、ＭＣＵ１４の処理のためのデータ等を格納する。
【００４９】
ハードディスクコントローラ（ＨＤＣ）１１は、サーボ信号のセクタ番号を基準にして，１周内の位置を判断し，データを記録・再生する。バッファ用ランダムアクセスメモリ（ＲＡＭ）１５は、リードデータやライトデータを一時格納する。ＨＤＣ１１は、ＵＳＢ，ＡＴＡやＳＣＳＩ等のインターフェイスＩＦで、ホストと通信する。バス９は、これらを接続する。
【００５０】
図２に示すように、磁気ディスク４には、外周から内周に渡り、各トラックにサーボ信号（位置信号）１６が、円周方向に等間隔に配置される。尚、各トラックは、複数のセクタで構成され、図２の実線は、サーボ信号１６の記録位置を示す。図３に示すように、位置信号は，サーボマークＳｅｒｖｏ  Ｍａｒｋと、トラック番号Ｇｒａｙ  Ｃｏｄｅと、インデックスＩｎｄｅｘと、オフセット情報（サーボバースト）ＰｏｓＡ，ＰｏｓＢ，ＰｏｓＣ，ＰｏｓＤとからなる。尚、図３の点線は、トラックセンターを示す。
【００５１】
図３に示すトラック番号Ｇｒａｙ  Ｃｏｄｅとオフセット情報ＰｏｓＡ，ＰｏｓＢ，ＰｏｓＣ，ＰｏｓＤを使い，磁気ヘッドの半径方向の位置を検出する。さらに、インデックス信号Ｉｎｄｅｘを元にして，磁気ヘッドの円周方向の位置を把握する。
【００５２】
例えば，インデックス信号を検出したときのセクタ番号を０番に設定し、サーボ信号を検出する毎に、カウントアップして、トラックの各セクタのセクタ番号を得る。このサーボ信号のセクタ番号は，データの記録再生を行うときの基準となる。尚、インデックス信号は、１周に１つである、又、インデックス信号の代わりに、セクタ番号を設けることもできる。
【００５３】
図４は、図１のＭＣＵ１４が行うアクチュエータのシーク制御例である。図１の位置検出回路７を通じて、ＭＣＵ１４が、アクチュエータの位置を確認して，サーボ演算し、適切な電流をＶＣＭ１に供給する。図４では、あるトラック位置から目標トラック位置へヘッド３を移動するシーク開始時からの制御の遷移と、アクチュエータ１の電流、アクチュエータ(ヘッド）の速度、アクチュエータ(ヘッド）の位置を示す。
【００５４】
即ち、シーク制御は、コアース制御、整定制御及びフォローイング制御と遷移することで，目標位置まで移動させることができる。コアース制御は、基本的に速度制御であり、整定制御、フォローイング制御は、基本的に位置制御であり、いずれも、ヘッドの現在位置を検出する必要がある。
【００５５】
このような，位置を確認するためには，前述の図２のように、磁気ディスク上にサーボ信号を事前に記録しておく。即ち、図３に示したように、サーボ信号の開始位置を示すサーボマーク，トラック番号を表すグレイコード，インデックス信号，オフセットを示すＰｏｓＡ〜ＰｏｓＤといった信号が記録されている。この信号を磁気ヘッドで読み出し、このサーボ信号を、位置検出回路７が、デジタル値に変換する。
【００５６】
［位置制御系の第１の実施の形態］
図５は、本発明の位置制御系（サーボ制御系）の第１の実施の形態のブロック図、図６は、図５のｓｉｎ（ωＴ）推定の説明図、図７は、振動周波数と推定値ｃｏｓ（ωＴ）との関係図、図８は、図５の適応ゲインの説明図である。
【００５７】
図５は、ＭＣＵ１４が実行するサーボ制御系の演算ブロック図である。即ち、目標位置ｒと現在位置ｙとの位置誤差ｅを演算ブロック２０で演算し、制御ブロック（Ｃｎ）２１に入力する。制御ブロック（Ｃｎ）２１は、位置誤差ｅに従い、制御演算し、制御量Ｕｎを計算し、プラント２２であるＶＣＭ１、３を駆動する。プラントの位置は、磁気ヘッド３からのサーボ信号を、復調し、現在位置ｙを計算し、演算ブロック２０にフィードバックする。
【００５８】
周波数推定器２４は、位置誤差ｅと外乱抑圧補償器２３（Ｃｄ）の内部変数を用いて、外部振動の角周波数ωのｓｉｎ（ωＴ）を推定する。補償用テーブル２５は、角周波数ωのｓｉｎ（ωＴ）に対応した外部振動抑圧用の補償器２３（Ｃｄ）の定数を格納する。
【００５９】
外乱抑圧補償器２３（Ｃｄ）は、周波数推定器２４の角周波数ωのｓｉｎ（ωＴ）により、補償用テーブル２５から読み出された定数により内部定数を修正し、位置誤差ｅから外乱抑圧制御量Ｕｄを計算する。加算ブロック２６は、制御量Ｕｎと外乱抑圧制御量Ｕｄとを加算して、プラント２２に出力する。外乱抑圧制御量とは、外乱に対し、ディスクとヘッドとの位置関係がずれないように制御するための制御量であり、外乱が印加されると、通常ヘッドの位置ずれが生じるため、ヘッドを駆動するＶＣＭの駆動値を適応制御する。
【００６０】
ここで、本発明では、周波数推定器２４は、ｓｉｎ（ωＴ）を導出している。この理由を説明する。制御ブロック２１、補償器２３、周波数推定器２４を、オブザーバで構成した制御系で説明する。先ず、予測オブザーバの適応則を説明する。
【００６１】
予測オブザーバでの補償器２３は、下記式（８）で表される。尚、式（８）において、ｚ１は、外乱のｓｉｎ成分、ｚ２は、外乱のｃｏｓ成分、Ｌ４，Ｌ５は、入力ゲイン、ｅは、位置誤差である。
【００６２】
【数８】
0005362062.tif 000009
【００６３】
ここで、外乱モデルが、正弦波の場合には、式（８）のＡ行列は、下記式（９）で表される。
【００６４】
【数９】
0005362062.tif 000010
【００６５】
式（８）を展開すると、式（１０）となる。
【００６６】
【数１０】
0005362062.tif 000011
【００６７】
式（２）のアナログの時間微分は、デジタルでは、引き算であるので、式（１０）のＺ２［ｋ＋１］の式から、Ｚ２［ｋ］を引き、Ｚ１［ｋ］を掛けると、式（１１）が得られる。
【００６８】
【数１１】
0005362062.tif 000012
【００６９】
同様に、式（１０）のＺ１［ｋ＋１］の式から、Ｚ１［ｋ］を引き、Ｚ２［ｋ］を掛けると、式（１）が得られる。
【００７０】
【数１２】
0005362062.tif 000013
【００７１】
式（３）と同様に、アナログの微分は、デジタルの引き算であるから、式（１１）と式（１２）の差分を取ると、式（１３）が得られる。
【００７２】
【数１３】
0005362062.tif 000014
【００７３】
又、外乱モデルが正弦波である時は、式（９）のように、ａ１１＝ａ２２（＝ｃｏｓ（ωＴ））、ａ１２＝−ａ２２（＝ｓｉｎ（ωＴ））であるから、式（１３）は、下記式（１４）に変形できる。
【００７４】
【数１４】
0005362062.tif 000015
【００７５】
式（１４）において、ｚ１とｚ２の二乗和で除算して、式（１５）を得る。
【００７６】
【数１５】
0005362062.tif 000016
【００７７】
式（５）と比較すると、式（５）では、外乱として、ωを推定するのに対し、式（１５）では、ｓｉｎ（ωＴ）を推定することを示す。即ち、デジタル制御においては、ｓｉｎωＴを推定する必要があり、適応則は、式（１５）の右辺の第２項を「０」にするように、ｓｉｎωＴを推定することになる。
【００７８】
次に、現在オブザーバの適応則を説明する。現在オブザーバは、デジタル制御において、予測オブザーバより広く利用されている。
【００７９】
現在オブザーバでの補償器２３は、下記式（１６）で表される。尚、式（１６）において、ｚ１は、外乱のｓｉｎ成分、ｚ２は、外乱のｃｏｓ成分、Ｌ４，Ｌ５は、入力ゲイン、ｅは、位置誤差である。
【００８０】
【数１６】
0005362062.tif 000017
【００８１】
式（１６）の２つの式を纏めると、式（１７）が得られる。
【００８２】
【数１７】
0005362062.tif 000018
【００８３】
ここで、外乱モデルが、正弦波の場合には、式（１７）のＡ行列は、下記式（１８）で表される。尚、式の簡略化のため、ｃｏｓ（ωＴ），ｓｉｎ（ωＴ）を、「ｃ」、「ｓ」で表すこととする。
【００８４】
【数１８】
0005362062.tif 000019
【００８５】
式（１８）のＡ行列の逆行列は、次式（１９）となる。
【００８６】
【数１９】
0005362062.tif 000020
【００８７】
式（１７）を、式（１８）のＡ行列で割り、式（１９）のＡ行列の逆行列に置き換えると、式（２０）が得られる。
【００８８】
【数２０】
0005362062.tif 000021
【００８９】
式（２０）から、ｋサンプル時のｚ１、ｚ２を、求めると、式（２１）が得られる。
【００９０】
【数２１】
0005362062.tif 000022
【００９１】
式（２１）のｚ２［ｋ＋１］を掛け、ｚ２［ｋ］に、ｚ１［ｋ＋１］を掛けると、式（２２）が得られる。この時、ｚ２［ｋ］に、左辺のマイナスを付与している。
【００９２】
【数２２】
0005362062.tif 000023
【００９３】
式（２２）の上下の式の和をとると、式（２３）が得られる。
【００９４】
【数２３】
0005362062.tif 000024
【００９５】
式（２３）から、現在オブザーバの構成でも、ｓｉｎ（ωＴ）を推定すべきである。即ち、アナログの式のように、外乱周波数又は外乱角周波数ωを推定するのではなく、デジタル制御においては、直接推定すべきは、ｓｉｎ（ωＴ）である。式（２３）から、ｓｉｎ（ωＴ）は、下記式（２４）で得られる。
【００９６】
【数２４】
0005362062.tif 000025
【００９７】
又、現在オブザーバでは、ｓｉｎ（ωＴ）の代わりに、ｃｏｓ（ωＴ）を推定しても良い。即ち、式（２１）のｚ１［ｋ＋１］を掛け、ｚ２［ｋ］に、ｚ２［ｋ＋１］を掛けると、式（２５）が得られる。
【００９８】
【数２５】
0005362062.tif 000026
【００９９】
式（２５）の上下の式の和をとると、式（２６）が得られる。
【０１００】
【数２６】
0005362062.tif 000027
【０１０１】
式（２６）から、アナログの式のように、外乱周波数又は外乱角周波数ωを推定するのではなく、デジタル制御においては、直接推定するのは、ｃｏｓ（ωＴ）である。式（２６）から、ｃｏｓ（ωＴ）は、下記式（２７）で得られる。
【０１０２】
【数２７】
0005362062.tif 000028
【０１０３】
図６は、振動周波数と推定値ｓｉｎ（ωＴ）との関係図である。推定値ｓｉｎ（ωＴ）は実線で、従来の推定値ωは、一点鎖線で示す。横軸の振動周波数に対し、従来の推定値ωは、直線状の特性を描くが、推定値ｓｉｎ（ωＴ）と比べると、振動周波数に対し、推定周波数のずれがあり、推定精度が低い。このため、デジタル制御では、推定値ωを推定しても、正確に振動周波数を推定できず、振動周波数に適応する位置制御が困難であった。
【０１０４】
一方、本願は、振動周波数を、ｓｉｎ（ωＴ）で推定しているため、デジタル制御において、正確に振動周波数を推定でき、振動周波数成分に適応する位置制御が実現できる。
【０１０５】
又、デジタル制御において、ｓｉｎ（ωＴ）を、振動周波数ｆの推定値に使用することは、デジタル制御のサンプリング周波数をＦｓとすると、次式（２８）の周波数を推定することになる。
【０１０６】
【数２８】
0005362062.tif 000029
【０１０７】
このことは、図６に示したように、外乱周波数ｆとｓｉｎ（ωＴ）とが、単調な関係を示す範囲は、０からＦｓ／４の領域であり、Ｆｓ／４以上では、適応追従ができない。
【０１０８】
又、図７は、振動周波数と推定値ｃｏｓ（ωＴ）との関係図である。図７に示すように、ｃｏｓ（ωＴ）を推定値に用いる場合には、０からＦｓ／２の範囲で、単調減少の特性が得られる。従って、ｓｉｎ（ωＴ）の推定の場合に、生じていたＦｓ／４の上限の制約はない。
【０１０９】
一方、ｃｏｓ（ωＴ）を利用すると、低周波数領域では、カーブが平坦近くなり、周波数の推定精度が劣化する。例えば、１２ｋＨｚのサンプル周波数の場合には、５００Ｈｚ程度の低周波数領域までは、カーブが平坦であり、推定精度が低下する。
【０１１０】
従って、低い周波数側の推定精度を重要視する場合には、ｓｉｎ（ωＴ）の推定式を使用し、高い周波数側の推定精度を重要視する場合には、ｃｏｓ（ωＴ）の推定を行うことが望ましい。
【０１１１】
更に、ディスク装置の使用形態では、外部振動が、通常、低い周波数側で問題になることが多い。例えば、数１００Ｈｚ程度の外部振動が、外部から加わることが多い。そのため、ディスク装置では、低い周波数の振動を精度よく推定できるｓｉｎ（ωＴ）推定式を利用することが、都合が良い。
【０１１２】
［外乱適応制御］
次に、図５のｓｉｎ（ωＴ）（又は、ｃｏｓ（ωＴ））推定器２４は、次のように、ｓｉｎ（ωＴ）又はｃｏｓ（ωＴ）を推定して、適応制御する。
【０１１３】
第１の適応制御は、正しく、推定できて、制御系が外乱周波数を抑圧できれば、式（２４）又は式（２７）のｅ［ｋ］は、「０」になるので、式（２４）、式（２７）の右辺第２項は、「０」となるはずである。
【０１１４】
そこで、ｓｉｎ（ωＴ）推定の場合には、式（２４）の右辺第２項Ｅ［ｋ］を，次式（２９）で計算する。
【０１１５】
【数２９】
0005362062.tif 000030
【０１１６】
次に、式（２９）のＥ［ｋ］に適応ゲインＫを掛け、次式（３０）のように、ｓｉｎ（ωＴ）を更新する。
【０１１７】
【数３０】
0005362062.tif 000031
【０１１８】
又、ｃｏｓ（ωＴ）推定の場合には、式（２７）の右辺第２項Ｅ［ｋ］を，次式（３１）で計算する。
【０１１９】
【数３１】
0005362062.tif 000032
【０１２０】
次に、式（３１）のＥ［ｋ］に適応ゲインＫを掛け、次式（３２）のように、ｃｏｓ（ωＴ）を更新する。
【０１２１】
【数３２】
0005362062.tif 000033
【０１２２】
上記のようにして、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］，ｅ［ｋ］，Ｌ４，Ｌ５の５つの値を利用して、ｓｉｎ（ωＴ）、ｃｏｓ（ωＴ）を、適応的に推定できる。
【０１２３】
第２の適応制御の計算方法を説明する。固定小数点方式のプロセッサを使用する場合には、桁数が限られる。上記の、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］，ｅ［ｋ］，Ｌ４，Ｌ５の５つの値を利用する場合に、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］の値と，ｅ［ｋ］，Ｌ４，Ｌ５の値との桁が相違する。そこで、限られた桁数を有効に利用するため、以下の手順で、計算する。
【０１２４】
ｓｉｎ（ωＴ）推定の場合には、式（２４）の右辺第１項Ｇ［ｋ］を，次式（３３）で計算する。
【０１２５】
【数３３】
0005362062.tif 000034
【０１２６】
次に、現在の設定値であるｓｉｎ（ωＴ）と、式（３３）のずれＥ［ｋ］を、次式（３４）で計算する。
【０１２７】
【数３４】
0005362062.tif 000035
【０１２８】
この式（３４）のＥ［ｋ］に適応ゲインＫを掛け、次式（３５）のように、ｓｉｎ（ωＴ）を更新する。
【０１２９】
【数３５】
0005362062.tif 000036
【０１３０】
又、ｃｏｓ（ωＴ）推定の場合には、式（２７）の右辺第１項Ｇ［ｋ］を，次式（３６）で計算する。
【０１３１】
【数３６】
0005362062.tif 000037
【０１３２】
次に、現在の設定値であるｃｏｓ（ωＴ）と、式（３６）のずれＥ［ｋ］を、次式（３７）で計算する。
【０１３３】
【数３７】
0005362062.tif 000038
【０１３４】
次に、式（３７）のＥ［ｋ］に適応ゲインＫを掛け、次式（３８）のように、ｃｏｓ（ωＴ）を更新する。
【０１３５】
【数３８】
0005362062.tif 000039
【０１３６】
上記のようにして、ｚ１［ｋ＋１］，ｚ１［ｋ］，ｚ２［ｋ＋１］，ｚ［ｋ］の４つの値を利用するだけで、ｓｉｎ（ωＴ）、ｃｏｓ（ωＴ）を、適応的に推定できる。
【０１３７】
次に、式（３０）、（３２）、（３５）、（３８）の適応ゲインＫによる誤差を解消する方法を説明する。アナログ制御で，外乱周波数または外乱角周波数を求める場合は，適応則は、式（６）であった。式（６）のエラー値には、外乱以外のノイズ成分（例えば、ＲＲＯ（Repeatable  Run  Out）、ＮＲＲＯ（Non  Repeatable  Run  Out））が含まれている。
【０１３８】
外乱が、いかなる周波数においても、そのノイズの影響は同じ値を示す場合を考える。とすると，外乱周波数に追従している状態では，上記の一律の適応ゲインＫを用いている場合には，外乱周波数が、いかなる値においても，推定した周波数の変動は、適応ゲインＫとエラー値の変動で決まり，一定のばらつきを持つ。
【０１３９】
一方、デジタル制御においては、式（３０）、（３２）、（３５）、（３８）に示したように、エラー値Ｅ［ｋ］を求めた後、適応ゲインＫをかけて，ｓｉｎωＴを更新する。これらの式において、適応ゲインは一定値として説明した。
【０１４０】
このエラー値Ｅ［ｋ］が、ノイズの影響で変動する場合、かつその変動は、外乱周波数が、いかなる周波数においても、同様の値を示す場合を考える。すると，外乱周波数が低い場合、すなわち、ｓｉｎωＴが「０」に近い場合と，外乱周波数が高い場合、すなわち、ｓｉｎωＴが「１」に近い場合とで、エラー値Ｅ［ｋ］のばらつきが、ω[k]に与える影響には差があることになる。
【０１４１】
図８に示すように、ωが高いとき，ｓｉｎωＴのω変化に対する変動は小さい。ωが小さい時、ｓｉｎωＴのω変化に対する変動は大きい。この変化幅は、下記式（３９）で表される。即ち、ｓｉｎωＴを、ωで偏微分すると求めることができる。
【０１４２】
【数３９】
0005362062.tif 000040
【０１４３】
このように、変化幅が異なることは、デジタル制御における適応ゲインは、一律であっては、誤差への影響が大きくなる。従って、現在の推定外乱周波数に応じて、異なる値をとるべきである。その適応ゲインは、可変であり，周波数が低いと大きく，周波数が高いと低くすべきである。
【０１４４】
即ち、ｓｉｎωＴを推定する方法においては、適応ゲインＫａは、下記式（４０）に示すように、ｃｏｓωＴに比例した値をとる。これにより、変化幅の相違による、誤差への影響を抑制できる。
【０１４５】
【数４０】
0005362062.tif 000041
【０１４６】
又、ｃｏｓωＴを推定する方法においては、適応ゲインＫａは、式（４０）と同様に、ｓｉｎωＴに比例した値をとる。
【０１４７】
次に、図５で示した補償器２３は、オブザーバで構成され、下記式（４１）により、外乱抑圧制御量（電流）Ｕｄｉｓｔ（又は、Ｕｄ）を計算する。
【０１４８】
【数４１】
0005362062.tif 000042
【０１４９】
図５の制御定数テーブル２５は、図１０で説明するように、式（４１）で使用するｓｉｎ（ωＴ）又はｃｏｓ（ωＴ）の値と、対応するＬ４、Ｌ５、ｃｏｓωＴ又はｓｉｎωＴの値のテーブルで構成される。
【０１５０】
従って、サンプル毎に、ｓｉｎωＴ（ｃｏｓωＴ）演算器２４で計算されたｓｉｎωＴ（ｃｏｓωＴ）に対応するＬ４、Ｌ５、ｃｏｓωＴ又はｓｉｎωＴの値が、テーブル２５から読み出され、補償器２３にセットされる。補償器２３は、セットされた制御定数と、位置誤差から、式（４１）を計算し、外部抑圧制御量Ｕｄｉｓｔを計算し、加算ブロック２６に出力する。
【０１５１】
［位置制御系の第２の実施の形態］
図９は、本発明の第２の実施の形態の位置制御系のブロック図、図１０は、図９の制御定数テーブルの説明図である。図９は、コントローラ２１、補償器２３を、一体の現在オブザーバで構成した例である。又、ｓｉｎωＴ演算部２４を、第１の適応制御の計算方法を適用した例である。
【０１５２】
図９の位置制御系は、外乱周波数を検出し、外乱を適応制御により、抑圧するため、下記式（４２）、（４３）、（４４）で示される外乱抑圧を行う現在オブザーバである。
【０１５３】
【数４２】
0005362062.tif 000043
【０１５４】
【数４３】
0005362062.tif 000044
【０１５５】
【数４４】
0005362062.tif 000045
【０１５６】
尚、式（４４）において、ａ１１〜ａ２２は、式（９）、式（１８）で示したｓｉｎ，ｃｏｓの値である。
【０１５７】
即ち、この実施の形態は、コントローラのモデルと外乱モデルを含むオブザーバによる位置制御系の例である。図９において、図５で示したものと同一のものは、同一の記号で示してある。
【０１５８】
図９において、第１の演算ブロック２０は、ヘッド３（図１参照）が読み取った前述のサーボ情報を復調して得た観測位置ｙ［ｋ］から目標位置ｒを差し引き、実位置誤差ｅｒ［ｋ］を演算する。
【０１５９】
第２の演算ブロック３２は、実位置誤差ｅｒ［ｋ］からオブザーバの推定位置ｘ［ｋ］を差し引き、推定位置誤差ｅ［ｋ］を演算する。状態推定ブロック３４は、この推定位置誤差ｅ［ｋ］と、内部変数である式（４２）の推定ゲインＬ（Ｌ１，Ｌ２、Ｌ３，Ｌ４，Ｌ５）を用いて、推定修正値（式（４２）の右辺第２項）を、演算する。
【０１６０】
そして、加算ブロック３６は、この推定修正値と、遅延ブロック４６から状態量（式（４２）の右辺第１項）ｘ［ｋ］，ｖ［ｋ］、ｂ［ｋ］，ｚ１［ｋ］，ｚ２［ｋ］とを加算し、式（４２）のように、推定位置ｘ［ｋ］，推定速度ｖ［ｋ］、推定バイアス値ｂ［ｋ］，推定外乱抑圧値ｚ１［ｋ］，ｚ２［ｋ］を得る。尚、式（４４）では、推定位置誤差ｅ［ｋ］を、（ｙ［ｋ］−ｘ［ｋ］）で表示する。
【０１６１】
この推定値は、第４の演算ブロック３８で、状態フィードバックゲイン（一Ｆａ＝Ｆ１，Ｆ２，Ｆ３，Ｆ４，Ｆ５）を乗算され、式（４３）のように、アクチュエータ１の駆動値ｕ［ｋ］を得る。一方、加算ブロック３６からの式（４２）の推定値は、第５の演算ブロック４２で、推定ゲインＡａ（式（４４）の右辺第１項の行列）を乗じられる。
【０１６２】
第４の演算ブロック３８の駆動値ｕ［ｋ］は、第６の演算ブロック４０で、推定ゲインＢ（式（４４）の右辺第２項のｕ［ｋ］に乗じる値）を乗じられる。両乗算結果は、加算ブロック４４で、加算され、式（４４）の次のサンプルの推定状態量ｘ［ｋ＋１］，ｖ［ｋ＋１］、ｂ［ｋ＋１］，ｚ１［ｋ＋１］，ｚ２［ｋ＋１］を得る。
【０１６３】
この次のサンプルの推定状態量は、前述のように、遅延ブロック４６に入力し、状態推定ブロック３４で、推定修正値で、修正される。そして、加算ブロック３６からの式（４２）の推定値は、第７の演算ブロック４８で、推定位置ｘ［ｋ］が取り出され、前述の第２の演算ブロック３２に入力する。
【０１６４】
この現在オブザーバに、周波数推定器２４と、制御定数テーブル２５とを付与する。周波数推定器２４は、ｓｉｎ（ωＴ）の第１の適応則である式（２９）、（３０）を演算し、ｓｉｎ（ωＴ）を計算する。
【０１６５】
即ち、周波数推定器２４では、推定誤差（Ｅ［ｋ］）演算器２４−１が、推定位置誤差ｅ［ｋ］、推定状態量ｚ１［ｋ＋１］，ｚ２［ｋ＋１］、推定ゲインＬ４，Ｌ５を受け、式（２９）を計算し、推定誤差Ｅ［ｋ］を出力する。
【０１６６】
ゲイン乗算器２４−２は、推定誤差Ｅ［ｋ］にゲインＫａを乗算し、式（３０）の右辺第２項を計算する。加算器２４−５は、遅延ブロック２４−３からの１サンプル前のｓｉｎ（ω［ｋ］Ｔ）と、ゲイン乗算器２４−２の出力とを加算し、式（３０）のｓｉｎ（ω［ｋ＋１］Ｔ）を出力する。このｓｉｎ（ω［ｋ＋１］Ｔ）は、遅延ブロック２４−３で１サンプル遅延され、加算器２４−４に入力する。
【０１６７】
クリップブロック（飽和処理ブロック）２４−４は、入力されたｓｉｎωＴが、「０」より小さい場合は、「０」に、「１」より大きい場合は、「１」に制限する。このため、状態変数からｓｉｎωＴを推定しても、図６の周波数範囲の外乱周波数成分を得ることができる。
【０１６８】
前述のように、０〜Ｆｓ／４の周波数の範囲に対応するｓｉｎωＴの値は、０〜１である。従って、推定したｓｉｎωＴの値は、常に０から１の範囲に制限する必要がある。この実施の形態は、加算ブロック２４−５の出力を、０から１の範囲に制限するクリップブロック２４−４を設けたものである。
【０１６９】
そして、ゲイン可変部２４−６は、遅延ブロック２４−３からのｓｉｎ（ω［ｋ］Ｔ）から、ｃｏｓ（ω［ｋ］Ｔ）を計算し、式（４０）に従い、ゲイン乗算部２４−２のゲインＫａを更新する。
【０１７０】
周波数推定器２４の出力ｓｉｎ（ω［ｋ＋１］Ｔ）は、制御定数テーブル２５に入力する。図１０に示すように、制御定数テーブル２５は、推定値ｓｉｎωＴに対応する、推定ゲインＬ１、Ｌ２,Ｌ３,Ｌ４,Ｌ５、ｃｏｓωＴの値を格納する。ｓｉｎωＴは、図６で説明したように、０〜Ｆｓ／４までを使用するため、図１０のテーブルは、３３個のｓｉｎωＴの値を、０〜Ｆｓ／４の範囲に割り振る。
【０１７１】
そして、制御定数テーブル２５は、推定値ｓｉｎωＴに対応する推定ゲインＬ、ｃｏｓωＴを、引き出し、且つブロック３４，４２に設定する。これにより、ブロック３４の式（４２）の推定ゲインＬ１〜Ｌ５、ブロック４２の式（４４）の制御定数ａ１１〜ａ２２（＝ｃｏｓωＴ又はｓｉｎωＴ）が更新され、オブザーバの外乱抑圧特性を、外乱周波数に応じて、変更する。
【０１７２】
このように、現在オブザーバで構成すると、設計が容易であり、且つ外乱抑圧機能を容易に設定できる。又、周波数推定器２４が、ｃｏｓωＴを推定する場合にも、同様の構成で実現できる。又、ｃｏｓωＴを推定する場合には、図７のように、クリップブロック２４−４は、クリップ範囲を、「−１」〜「＋１」に制限することにより、同様の作用効果を奏する。
【０１７３】
図１１は、図９の構成における他の周波数推定器２４Ａのブロック図である。図１１において、図９で示したものと同一のものは、同一の記号で示してある。
【０１７４】
図１１において、周波数推定器２４Ａは、ｓｉｎωＴの第２の適応則である式（３３）乃至式（３５）を演算し、ｓｉｎ（ωＴ）を計算する。即ち、周波数推定器２４Ａでは、推定誤差（Ｇ［ｋ］）演算器２４−７が、推定状態量ｚ１［ｋ］,ｚ１［ｋ＋１］，ｚ２［ｋ］，ｚ２［ｋ＋１］を受け、式（３３）を計算し、第１の推定誤差Ｇ［ｋ］を出力する。
【０１７５】
第１の演算ブロック２４−８は、第１の推定誤差Ｇ［ｋ］から、遅延ブロック２４−３からの１サンプル前のｓｉｎ（ω［ｋ］Ｔ）を引き、式（３４）の第２の推定誤差Ｅ［ｋ］を出力する。
【０１７６】
ゲイン乗算器２４−２は、第２の推定誤差Ｅ［ｋ］にゲインＫａを乗算し、式（３５）の右辺第２項を計算する。加算器２４−５は、遅延ブロック２４−３からの１サンプル前のｓｉｎ（ω［ｋ］Ｔ）と、ゲイン乗算器２４−２の出力とを加算し、式（３５）のｓｉｎ（ω［ｋ＋１］Ｔ）を出力する。このｓｉｎ（ω［ｋ＋１］Ｔ）は、遅延ブロック２４−３で１サンプル遅延され、演算ブロック２４−８、加算器２４−５に入力する。
【０１７７】
クリップブロック（飽和処理ブロック）２４−４は、入力されたｓｉｎωＴが、「０」より小さい場合は、「０」に、「１」より大きい場合は、「１」に制限する。
【０１７８】
そして、ゲイン可変部２４−６は、遅延ブロック２４−３からのｓｉｎ（ω［ｋ］Ｔ）から、ｃｏｓ（ω［ｋ］Ｔ）を計算し、式（４０）に従い、ゲイン乗算部２４−２のゲインＫａを更新する。
【０１７９】
周波数推定器２４Ａの出力ｓｉｎ（ω［ｋ＋１］Ｔ）は、図９のように、制御定数テーブル２５に入力する。制御定数テーブル２５は、図１０で示したように、推定値ｓｉｎωＴに対応する推定ゲインＬ、ｃｏｓωＴを、引き出し、且つブロック３４，４２に設定する。これにより、ブロック３４の式（４０）の推定ゲインＬ１〜Ｌ５、ブロック４２の式（４２）の制御定数ａ１１〜ａ２２（＝ｃｏｓωＴ又はｓｉｎωＴ）が更新され、オブザーバの外乱抑圧特性を、外乱周波数に応じて、変更する。
【０１８０】
このように、現在オブザーバで構成すると、設計が容易であり、且つ外乱抑圧機能を容易に設定できる。又、第２の適応式を用いているので、入力の桁数に差異がなく、固定小数点方式のプロセッサでも、精度良く、計算できる。更に、周波数推定器２４Ａが、ｃｏｓωＴを推定する場合にも、同様の構成で、式（３６）〜式（３８）を計算できる。
【０１８１】
［位置制御系の第３の実施の形態］
前述の周波数推定では、ｓｉｎ（ωＴ）を推定した。一方、使用用途によっては、更に推定周波数範囲を拡大したいとの要望がある。例えば、ナイキスト周波数であるＦｓ／２まで拡張したいとの要望がある。この周波数範囲の拡張方法を説明する。
【０１８２】
図１２は、本発明の第３の実施の形態のブロック図、図１３は、図１２のｓｉｎ（ωＴ／２）推定の説明図、図１４は、振動周波数と推定値ｓｉｎ（ωＴ／２）との関係図、図１５は、図１２の適応ゲインの説明図である。
【０１８３】
図１２において、図５で説明したものと同一のものは、同一の記号で示してある。周波数推定器２７は、外乱周波数として、ｓｉｎ（ωＴ／２）を推定する。制御定数テーブル２８は、図５と同様に、ｓｉｎ（ωＴ／２）の値に対応する制御定数を格納する。
【０１８４】
現在オブザーバの適応則式（２４）の導出で示した、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］は、あくまでも、推定値である。従って、この推定値ｚ１［ｋ＋１］，ｚ２［ｋ＋１］を使って、０．５サンプル分戻した推定値ｚ１［ｋ＋０．５］，ｚ２［ｋ＋０．５］を作成する。
【０１８５】
ｚ１［ｋ＋１］，ｚ２［ｋ＋１］は、振動周波数の回転ベクトルのｓｉｎ，ｃｏｓ成分であるから、図１３に示すように、ｋ＋１サンプル時点のｚ１［ｋ＋１］，ｚ２［ｋ＋１］を、０．５サンプル戻すこと、即ち、ｋ＋０．５サンプル時点の回転ベクトルｚ１［ｋ＋０．５］，ｚ２［ｋ＋０．５］を作成することは、回転ベクトルを、ωＴ／２戻せば良い。従って、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］から、下記式（４５）により、０．５サンプル戻したｚ１［ｋ＋０．５］，ｚ２［ｋ＋０．５］を計算できる。
【０１８６】
【数４５】
0005362062.tif 000046
【０１８７】
この式（４５）の左辺と右辺を入れ替えて、更に、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］が、単独で表されるように、変換すると、次式（４６）が得られる。
【０１８８】
【数４６】
0005362062.tif 000047
【０１８９】
前述のｚ１［ｋ＋１」、ｚ２［ｋ＋１］の式（１７）に、式（４６）を代入すると、式（４７）が得られる。
【０１９０】
【数４７】
0005362062.tif 000048
【０１９１】
更に、式を整理するため、式（４７）の左辺、右辺ともに、下記式（４８）を掛ける。
【０１９２】
【数４８】
0005362062.tif 000049
【０１９３】
この時、ｃｏｓ，ｓｉｎの行列間の掛け算では、下記式（４９）が成立する。
【０１９４】
【数４９】
0005362062.tif 000050
【０１９５】
式（４９）を利用して、式（４７）の左辺、右辺に、式（４８）を掛けると、式（５０）が得られる。
【０１９６】
【数５０】
0005362062.tif 000051
【０１９７】
即ち、ｓｉｎωＴの式（１７）と同様に、ｓｉｎ（ωＴ／２）の関係式が得られた。この式（５０）を、ｓｉｎωＴの導出と同様に展開する。即ち、ｓｉｎ（ωＴ／２），ｃｏｓ（ωＴ／２）を、それぞれ、「ｓ」、「ｃ」と簡略化すると、式（５０）は、式（５１）に変換される。
【０１９８】
【数５１】
0005362062.tif 000052
【０１９９】
式（５１）から、ｋサンプル時のｚ１［ｋ］、ｚ２［ｋ］を、求めると、式（５２）が得られる。
【０２００】
【数５２】
0005362062.tif 000053
【０２０１】
式（５２）の上側に、ｚ２［ｋ＋０．５］を掛け、下側に、−ｚ１［ｋ＋０．５］を掛けると、式（５３）が得られる。この時、ｚ２［ｋ］に、左辺のマイナスを付与している。
【０２０２】
【数５３】
0005362062.tif 000054
【０２０３】
式（５３）の上下の式の和をとると、式（５４）が得られる。
【０２０４】
【数５４】
0005362062.tif 000055
【０２０５】
式（５４）から、ｓｉｎ（ωＴ／２）は、下記式（５５）で表される。これを適応則に利用する。
【０２０６】
【数５５】
0005362062.tif 000056
【０２０７】
式（５５）から、デジタル制御においては、外乱周波数を直接推定するため、ｓｉｎ（ωＴ／２）を推定すればよい。
【０２０８】
図１４は、振動周波数と推定値ｓｉｎ（ωＴ／２）との関係図である。デジタル制御において、ｓｉｎ（ωＴ／２）を、振動周波数ｆの推定値に使用することは、デジタル制御のサンプリング周波数をＦｓとすると、次式（５６）の周波数を推定することになる。
【０２０９】
【数５６】
0005362062.tif 000057
【０２１０】
このことは、図１４に示したように、外乱周波数ｆとｓｉｎ（ωＴ／２）とが、単調な関係を示す範囲は、０からＦｓ／２の領域であり、ナイキスト周波数まで推定できる。又、Ｆｓ／２以上では、適応追従ができない。例えば、サンプリング周波数Ｆｓを１２ＫＨｚとすると、６ＫＨｚまで推定できる。
【０２１１】
従って、低い周波数側の推定精度を高くして、且つ高い周波数まで、推定できる。又、ディスク装置の使用形態では、外部振動が、通常、低い周波数側で問題になることが多い。例えば、数１００Ｈｚ程度の外部振動が、外部から加わることが多い。そのため、ディスク装置では、低い周波数の振動を精度よく推定できるｓｉｎ（ωＴ／２）推定式を利用することが、都合が良い。
【０２１２】
次に、図１２のｓｉｎ（ωＴ／２）推定器２７は、次のように、ｓｉｎ（ωＴ／２）を推定して、適応制御する。
【０２１３】
第１の適応制御は、正しく、推定できて、制御系が外乱周波数を抑圧できれば、式（５５）のｅ［ｋ］は、「０」になるので、式（５５）の右辺第２項は、「０」となるはずである。
【０２１４】
そこで、ｓｉｎ（ωＴ／２）推定の場合には、式（５５）の右辺第２項Ｅ［ｋ］を，次式（５７）で計算する。
【０２１５】
【数５７】
0005362062.tif 000058
【０２１６】
次に、式（５７）のＥ［ｋ］に適応ゲインＫを掛け、次式（５８）のように、ｓｉｎ（ωＴ／２）を更新する。
【０２１７】
【数５８】
0005362062.tif 000059
【０２１８】
上記のようにして、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］，ｅ［ｋ］，Ｌ４，Ｌ５の５つの値を利用して、ｓｉｎ（ωＴ／２）を、適応的に推定できる。
【０２１９】
第２の適応制御の計算方法を説明する。固定小数点方式のプロセッサを使用する場合には、桁数が限られる。上記の、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］，ｅ［ｋ］，Ｌ４，Ｌ５の５つの値を利用する場合に、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］の値と，ｅ［ｋ］，Ｌ４，Ｌ５の値との桁が相違する。そこで、限られた桁数を有効に利用するため、以下の手順で、計算する。
【０２２０】
ｓｉｎ（ωＴ）推定の場合には、式（５５）の右辺第１項Ｇ［ｋ］を，次式（５９）で計算する。
【０２２１】
【数５９】
0005362062.tif 000060
【０２２２】
次に、現在の設定値であるｓｉｎ（ωＴ／２）と、式（５９）のずれＥ［ｋ］を、次式（６０）で計算する。
【０２２３】
【数６０】
0005362062.tif 000061
【０２２４】
この式（６０）のＥ［ｋ］に適応ゲインＫを掛け、次式（６１）のように、ｓｉｎ（ωＴ／２）を更新する。
【０２２５】
【数６１】
0005362062.tif 000062
【０２２６】
上記のようにして、ｚ１［ｋ＋１］，ｚ１［ｋ］，ｚ２［ｋ＋１］，ｚ［ｋ］の４つの値を利用するだけで、ｓｉｎ（ωＴ／２）を、適応的に推定できる。
【０２２７】
又、第１の実施の形態と同様に、これらの式において、適応ゲインは一定値として説明したが、ｓｉｎωＴの推定と同様に、図１５に示すように、ωが高いとき，ｓｉｎωＴ／２のω変化に対する変動は小さい。ωが小さい時、ｓｉｎωＴ／２のω変化に対する変動は大きい。従って、現在の推定外乱周波数に応じて、異なる値をとるべきである。その適応ゲインは、可変であり，周波数が低いと大きく，周波数が高いと低くすべきである。
【０２２８】
即ち、ｓｉｎωＴ／２を推定する方法においても、適応ゲインＫａは、下記式（６２）に示すように、ｃｏｓωＴ／２に比例した値をとる。これにより、変化幅の相違による、誤差への影響を抑制できる。
【０２２９】
【数６２】
0005362062.tif 000063
【０２３０】
次に、図１２で示した補償器２３は、オブザーバで構成され、前述の式（４１）により、外乱抑圧制御量（電流）Ｕｄｉｓｔ（又は、Ｕｄ）を計算する。
【０２３１】
図１２の制御定数テーブル２８は、図１７で説明するように、ｓｉｎ（ωＴ／２）の値と、対応するＬ４、Ｌ５、ｃｏｓωＴ、ｓｉｎωＴの値のテーブルで構成される。ｃｏｓωＴ、ｓｉｎωＴの値は、式（４１）のＨの計算に使用する。
【０２３２】
従って、サンプル毎に、ｓｉｎ（ωＴ／２）演算器２７で計算されたｓｉｎωＴ／２に対応するＬ４、Ｌ５、ｃｏｓωＴ，ｓｉｎωＴの値が、テーブル２８から読み出され、補償器２３にセットされる。補償器２３は、セットされた制御定数と、位置誤差から、式（４１）を計算し、外部抑圧制御量Ｕｄｉｓｔを計算し、加算ブロック２６に出力する。
【０２３３】
このようにして、デジタル位置制御系において、外乱周波数に適応した位置制御を行う場合に、外乱周波数を精度良く推定し、外乱周波数に適応した位置制御が可能となる。
【０２３４】
［位置制御系の第４の実施の形態］
図１６は、本発明の第４の実施の形態の位置制御系のブロック図、図１７は、図１６の制御定数テーブルの説明図である。図１６は、コントローラ２１、補償器２３を、一体の現在オブザーバで構成した例である。又、ｓｉｎωＴ／２演算部２７を、第１の適応制御の計算方法を適用した例である。
【０２３５】
図１６の位置制御系は、外乱周波数を検出し、外乱を適応制御により、抑圧するため、前述の式（４２）、（４３）、（４４）で示される外乱抑圧を行う現在オブザーバである。即ち、この実施の形態は、コントローラのモデルと外乱モデルを含むオブザーバによる位置制御系の例である。図１６において、図９、図１２で示したものと同一のものは、同一の記号で示してある。
【０２３６】
図１６において、現在オブザーバ２１，２３，２６の構成は、図９と同一のため、説明を省略する。この現在オブザーバに、周波数推定器２７と、制御定数テーブル２８とを付与する。周波数推定器２７は、ｓｉｎ（ωＴ／２）の第１の適応則である式（５７）、（５８）を演算し、ｓｉｎ（ωＴ／２）を計算する。
【０２３７】
即ち、周波数推定器２７では、状態時点変換ブロック２７−１は、式（４５）に従い、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］を、ｚ１［ｋ＋０．５］，ｚ２［ｋ＋０．５］に変換する。推定誤差（Ｅ［ｋ］）演算器２７−２が、推定位置誤差ｅ［ｋ］、推定状態量ｚ１［ｋ＋０．５］，ｚ２［ｋ＋０．５］、推定ゲインＬ４，Ｌ５を受け、式（５７）を計算し、推定誤差Ｅ［ｋ］を出力する。
【０２３８】
ゲイン乗算器２７−３は、推定誤差Ｅ［ｋ］にゲインＫを乗算し、式（５８）の右辺第２項を計算する。加算器２７−５は、遅延ブロック２７−４からの１サンプル前のｓｉｎ（ω［ｋ］Ｔ／２）と、ゲイン乗算器２７−３の出力とを加算し、式（５８）のｓｉｎ（ω［ｋ＋１］Ｔ／２）を出力する。このｓｉｎ（ω［ｋ＋１］Ｔ／２）は、遅延ブロック２７−４で１サンプル遅延され、加算器２７−５に入力する。
【０２３９】
クリップブロック（飽和処理ブロック）２７−６は、入力されたｓｉｎ（ωＴ／２）が、「０」より小さい場合は、「０」に、「１」より大きい場合は、「１」に制限する。
【０２４０】
そして、ゲイン可変部２７−７は、遅延ブロック２４−４からのｓｉｎ（ω［ｋ］Ｔ／２）から、ｃｏｓ（ω［ｋ］Ｔ／２）を計算し、式（６２）に従い、ゲイン乗算部２７−３のゲインＫａを更新する。
【０２４１】
周波数推定器２７の出力ｓｉｎ（ω［ｋ＋１］Ｔ／２）は、制御定数テーブル２８に入力する。図１７に示すように、制御定数テーブル２８は、推定値ｓｉｎωＴ／２に対応する、推定ゲインＬ１、Ｌ２,Ｌ３,Ｌ４,Ｌ５、ｃｏｓωＴ，ｓｉｎωＴの値を格納する。ｓｉｎωＴ／２は、図１４で説明したように、０〜Ｆｓ／２までを使用するため、図１７のテーブルは、３３個のｓｉｎωＴ／２の値を、０〜Ｆｓ／２の範囲に割り振る。
【０２４２】
そして、制御定数テーブル２８は、推定値ｓｉｎωＴ／２に対応する推定ゲインＬ、ｃｏｓωＴ、ｓｉｎωＴを、引き出し、且つブロック３４，４２に設定する。これにより、ブロック３４の式（４２）の推定ゲインＬ１〜Ｌ５、ブロック４２の式（４４）の制御定数ａ１１〜ａ２２（＝ｃｏｓωＴ又はｓｉｎωＴ）が更新され、オブザーバの外乱抑圧特性を、外乱周波数に応じて、変更する。
【０２４３】
このように、現在オブザーバで構成すると、設計が容易であり、且つ外乱抑圧機能を容易に設定できる。
【０２４４】
図１８は、図１６の周波数推定器２７の他の実施の形態のブロック図である。図１８において、図１６で示したものと同一のものは、同一の記号で示してある。ｓｉｎ（ωＴ／２）演算部２７Ａに、第２の適応制御の計算方法を適用した例である。
【０２４５】
図１８において、周波数推定器２７Ａは、ｓｉｎ（ωＴ／２）の第２の適応則である式（５９）乃至式（６１）を演算し、ｓｉｎ（ωＴ／２）を計算する。
【０２４６】
即ち、周波数推定器２７Ａでは、状態時点変換ブロック２７−１は、式（４５）に従い、ｚ１［ｋ＋１］，ｚ２［ｋ＋１］を、ｚ１［ｋ＋０．５］，ｚ２［ｋ＋０．５］に変換する。推定誤差（Ｇ［ｋ］）演算器２７−８が、推定状態量ｚ１［ｋ］,ｚ１［ｋ＋０．５］，ｚ２［ｋ］，ｚ２［ｋ＋０．５］を受け、式（５９）を計算し、第１の推定誤差Ｇ［ｋ］を出力する。
【０２４７】
第１の演算ブロック２７−９は、第１の推定誤差Ｇ［ｋ］から、遅延ブロック２７−４からの１サンプル前のｓｉｎ（ω［ｋ］Ｔ／２）を引き、式（６０）の第２の推定誤差Ｅ［ｋ］を出力する。
【０２４８】
ゲイン乗算器２７−３は、第２の推定誤差Ｅ［ｋ］にゲインＫを乗算し、式（６１）の右辺第２項を計算する。加算器２７−５は、遅延ブロック２７−４からの１サンプル前のｓｉｎ（ω［ｋ］Ｔ／２）と、ゲイン乗算器２７−３の出力とを加算し、式（６１）のｓｉｎ（ω［ｋ＋１］Ｔ／２）を出力する。このｓｉｎ（ω［ｋ＋１］Ｔ／２）は、遅延ブロック２７−４で１サンプル遅延され、演算ブロック２７−９、加算器２７−５に入力する。
【０２４９】
図１６と同様に、クリップブロック（飽和処理ブロック）２７−６は、入力されたｓｉｎ（ωＴ／２）が、「０」より小さい場合は、「０」に、「１」より大きい場合は、「１」に制限する。
【０２５０】
そして、ゲイン可変部２７−７は、遅延ブロック２４−４からのｓｉｎ（ω［ｋ］Ｔ／２）から、ｃｏｓ（ω［ｋ］Ｔ／２）を計算し、式（６２）に従い、ゲイン乗算部２７−３のゲインＫａを更新する。
【０２５１】
この周波数推定器２７Ａの出力ｓｉｎ（ω［ｋ＋１］Ｔ／２）は、制御定数テーブル２８に入力する。制御定数テーブル２８は、図１７で示したものと同一であり、推定値ｓｉｎ（ωＴ／２）に対応する推定ゲインＬ、ｓｉｎωＴ，ｃｏｓωＴを、引き出し、且つブロック３４，４２に設定する。これにより、ブロック３４の式（４２）の推定ゲインＬ１〜Ｌ５、ブロック４２の式（４４）の制御定数ａ１１〜ａ２２（＝ｃｏｓωＴ又はｓｉｎωＴ）が更新され、オブザーバの外乱抑圧特性を、外乱周波数に応じて、変更する。
【０２５２】
このように、現在オブザーバで構成すると、設計が容易であり、且つ外乱抑圧機能を容易に設定できる。又、第２の適応式を用いているので、入力の桁数に差異がなく、固定小数点方式のプロセッサでも、精度良く、計算できる。
【０２５３】
［位置制御系の第５の実施の形態］
図１９は、本発明の第５の実施の形態の位置制御系のブロック図である。図１９は、コントローラ２１と、補償器２３を、分離した現在オブザーバで構成した例である。又、ｓｉｎ（ωＴ）演算部２４に、第１の適応制御の計算方法を適用した例である。
【０２５４】
図１９の位置制御系は、外乱周波数を検出し、外乱を適応制御により、抑圧するため、下記式（６３）、（６４）、（６５）、（６６）、（６７）で示される外乱抑圧を行う現在オブザーバである。
【０２５５】
【数６３】
0005362062.tif 000064
【０２５６】
【数６４】
0005362062.tif 000065
【０２５７】
【数６５】
0005362062.tif 000066
【０２５８】
【数６６】
0005362062.tif 000067
【０２５９】
【数６７】
0005362062.tif 000068
【０２６０】
尚、式（６７）において、ａ１１〜ａ２２は、式（９）、式（１８）で示したｓｉｎ，ｃｏｓの値である。
【０２６１】
即ち、この実施の形態は、コントローラのモデルと外乱モデルを含むオブザーバによる位置制御系の例である。図１９において、図５、図９、図１６で示したものと同一のものは、同一の記号で示してある。
【０２６２】
図１９において、第１の演算ブロック２０は、ヘッド３（図１参照）が読み取った前述のサーボ情報を復調して得た観測位置ｙ［ｋ］から目標位置ｒを差し引き、実位置誤差ｅｒ［ｋ］を演算する。
【０２６３】
第２の演算ブロック３２は、実位置誤差ｅｒ［ｋ］からオブザーバの推定位置ｘ［ｋ］を差し引き、推定位置誤差ｅ［ｋ］を演算する。状態推定ブロック３４−１は、この推定位置誤差ｅ［ｋ］と、内部変数である式（４３）の推定ゲインＬ（Ｌ１，Ｌ２）を用いて、推定修正値（式（６３）の右辺第２項）を、演算する。
【０２６４】
そして、加算ブロック３６−１は、この推定修正値と、遅延ブロック４６−１から状態量（式（６３）の右辺第１項）ｘ［ｋ］，ｖ［ｋ］とを加算し、式（６３）のように、推定位置ｘ［ｋ］，推定速度ｖ［ｋ］を得る。尚、式（６３）では、推定位置誤差ｅ［ｋ］を、（ｙ［ｋ］−ｘ［ｋ］）で表示する。
【０２６５】
この推定値は、第４の演算ブロック３８−１で、状態フィードバックゲイン（一Ｆａ＝Ｆ１，Ｆ２）を乗算され、式（６４）のように、アクチュエータ１の駆動値ｕ［ｋ］を得る。一方、加算ブロック３６−１からの式（６３）の推定値は、第５の演算ブロック４２−１で、推定ゲインＡａ（式（６６）の右辺第１項の行列）を乗じられる。
【０２６６】
第４の演算ブロック３８−１の駆動値ｕ［ｋ］は、第６の演算ブロック４０で、推定ゲインＢ（式（６６）の右辺第２項のｕ［ｋ］に乗じる値）を乗じられる。両乗算結果は、加算ブロック４４で、加算され、式（６６）の次のサンプルの推定状態量ｘ［ｋ＋１］，ｖ［ｋ＋１］を得る。
【０２６７】
この次のサンプルの推定状態量は、前述のように、遅延ブロック４６−１に入力し、状態推定ブロック３４−１の推定修正値で、修正される。そして、加算ブロック３６−１からの式（６３）の推定値は、第５の演算ブロック４８で、推定位置ｘ［ｋ］が取り出され、前述の第２の演算ブロック３２に入力する。
【０２６８】
同様に、外乱モデルにおいても、第２の状態推定ブロック３４−２は、この推定位置誤差ｅ［ｋ］と、内部変数である式（６３）の推定ゲインＬｄ１（Ｌ３、Ｌ４，Ｌ５）を用いて、推定修正値（式（６３）の右辺第２項）を、演算する。
【０２６９】
そして、第２の加算ブロック３６−２は、この推定修正値と、第２の遅延ブロック４６−２から状態量（式（６３）の右辺第１項）ｂ［ｋ］，ｚ１［ｋ］，ｚ２［ｋ］とを加算し、式（６３）のように、推定バイアスｂ［ｋ］，推定外乱量ｚ１［ｋ］，ｚ２［ｋ］を得る。
【０２７０】
この推定値は、第６の演算ブロック３８−２で、状態フィードバックゲイン（一Ｆｄ１＝Ｆ３、Ｆ４，Ｆ５）を乗算され、式（６５）のように、アクチュエータ１の外乱抑圧駆動値ｕｄ［ｋ］を得る。一方、第２の加算ブロック３６−２からの式（６３）の推定値は、第７の演算ブロック４２−２で、推定ゲインＡｄ１（式（６７）の右辺の行列）を乗じられる。
【０２７１】
第８の演算ブロック５０は、第５の演算ブロック３８−２の駆動値ｕｄ［ｋ］と、第４の演算ブロック３８−１の駆動値ｕ［ｋ］とを加算し、アクチュエータの駆動値ｕ［ｋ］を出力する。
【０２７２】
この例でも、この現在オブザーバに、周波数推定器２４と、制御定数テーブル２５とを付与する。周波数推定器２４は、図９で説明したものである。又、制御定数テーブル２５は、図１０で説明したものである。
【０２７３】
そして、制御定数テーブル２５は、推定値ｓｉｎωＴに対応する推定ゲインＬ１、Ｌ２を、状態推定ブロック３４−１に、推定ゲインＬ３，Ｌ４，Ｌ５，ｓｉｎωＴ，ｃｏｓωＴを、ブロック３４−２，４２−２に設定する。これにより、ブロック３４−１，３４−２の式（６３）の推定ゲインＬ１〜Ｌ５、ブロック４２−２の式（６７）の制御定数ａ１１〜ａ２２（＝ｃｏｓωＴ又はｓｉｎωＴ）が更新され、オブザーバの外乱抑圧特性を、外乱周波数に応じて、変更する。
【０２７４】
このように、外乱モデルを分離した現在オブザーバで構成すると、外乱モデルの設計が容易であり、且つ外乱抑圧機能を容易に設定できる。
【０２７５】
［位置制御系の第６の実施の形態］
図２０は、本発明の第６の実施の形態の位置制御系のブロック図である。図２０は、コントローラ２１と、補償器２３を、分離した現在オブザーバで構成した例である。又、ｓｉｎ（ωＴ）演算部２４Ａに、第２の適応制御の計算方法を適用した例である。
【０２７６】
図２０において、図１９で示したものと同一のものは、同一の記号で示してある。図２０の位置制御系は、外乱周波数を検出し、外乱を適応制御により、抑圧するため、前述の式（６３）乃至（６７）で示される外乱抑圧を行う現在オブザーバである。
【０２７７】
即ち、この実施の形態は、図１９と同様に、コントローラのモデルと外乱モデルを含むオブザーバによる位置制御系の例である。従って、オブザーバの説明は、省略する。
【０２７８】
この例でも、この現在オブザーバに、周波数推定器２４Ａと、制御定数テーブル２５とを付与する。周波数推定器２４Ａは、図１１で説明したものである。又、制御定数テーブル２５は、図１０で説明したものである。
【０２７９】
そして、制御定数テーブル２８は、推定値ｓｉｎ（ωＴ／２）に対応する推定ゲインＬ１、Ｌ２を、状態推定ブロック３４−１に、推定ゲインＬ３，Ｌ４，Ｌ５，ｓｉｎωＴ，ｃｏｓωＴを、ブロック３４−２，４２−２に設定する。これにより、ブロック３４−１，３４−２の式（６３）の推定ゲインＬ１〜Ｌ５、ブロック４２−２の式（６７）の制御定数ａ１１〜ａ２２（＝ｃｏｓωＴ又はｓｉｎωＴ）が更新され、オブザーバの外乱抑圧特性を、外乱周波数に応じて、変更する。
【０２８０】
このように、外乱モデルを分離した現在オブザーバで構成すると、外乱モデルの設計が容易であり、且つ外乱抑圧機能を容易に設定できる。
【０２８１】
［他の実施の形態］
図１９、図２０の説明では、周波数推定器に、ｓｉｎωＴを推定する推定器で説明したが、ｃｏｓωＴを推定する推定器や、ｓｉｎ（ωＴ／２）を推定する推定器を適用することもできる。
【０２８２】
又、以上の説明では、補償器２３に、オブザーバの構成で説明した。しかしながら、図５の補償器２３にフィルタを使用する場合にも、適用できる。
【０２８３】
更に、ヘッドの位置制御装置で、説明したが、他の位置制御装置にも適用できる。同様に、ディスク装置を磁気ディスク装置で説明したが、他のデータ記憶装置にも適用できる。
【産業上の利用可能性】
【０２８４】
外乱の角周波数ωとし、前記サンプル周期をＴとした場合に、ｓｉｎ（ωＴ），ｃｏｓ（ωＴ），ｓｉｎ（ωＴ／２）のいずれかの推定誤差を計算し、角周波数ωに比例する適応ゲインを乗算して、ｓｉｎ（ωＴ），ｃｏｓ（ωＴ），ｓｉｎ（ωＴ／２）のいずれかの値を更新し、外乱適応制御するので、デジタル制御において、外乱の周波数の推定精度を向上でき、外乱適応制御を精度よく実現できる。
【符号の説明】
【０２８５】
１  アクチュエータ
２  スピンドルモータの回転軸
３  ヘッド
４  ディスク
５  スピンドルモータ
６  アクチュエータのＶＣＭ駆動回路
７  位置復調回路
８  スピンドルモータの駆動回路
９  バス
１０  データの記録再生回路
１１  ハードディスクコントローラ
１２  ＭＣＵのＲＡＭ
１３  ＭＣＵのＲＯＭ
１４  マイクロコントローラユニット（ＭＣＵ）
１５  ハードディスクコントローラのＲＡＭ
１６  位置信号
２０  位置誤差計算ブロック
２１  コントローラ
２２  プラント（ヘッド、アクチュエータ）
２３  外乱抑圧補償器
２４  ｓｉｎ（ωＴ）推定ブロック
２７  ｓｉｎ（ωＴ／２）推定ブロック
２５，２８  テーブル（定数補正ブロック）
２６  加算ブロック
【図１】
0005362062.tif 000069
【図２】
0005362062.tif 000070
【図３】
0005362062.tif 000071
【図４】
0005362062.tif 000072
【図５】
0005362062.tif 000073
【図６】
0005362062.tif 000074
【図７】
0005362062.tif 000075
【図８】
0005362062.tif 000076
【図９】
0005362062.tif 000077
【図１０】
0005362062.tif 000078
【図１１】
0005362062.tif 000079
【図１２】
0005362062.tif 000080
【図１３】
0005362062.tif 000081
【図１４】
0005362062.tif 000082
【図１５】
0005362062.tif 000083
【図１６】
0005362062.tif 000084
【図１７】
0005362062.tif 000085
【図１８】
0005362062.tif 000086
【図１９】
0005362062.tif 000087
【図２０】
0005362062.tif 000088
【図２１】
0005362062.tif 000089
【図２２】
0005362062.tif 000090