(57)【要約】【課題】位置制御の精度の向上を図る。【解決手段】実施形態にかかる磁気ディスク装置は、ヘッドと、位置検出部と、フィルタ部と、を備える。ヘッドは、ディスク上のサーボ情報を読み込む。位置検出部は、サーボ情報に基づいてヘッドが存在する位置を示した位置情報を検出する。フィルタ部は、位置情報とヘッドの目標となる位置を示した目標位置情報との違いを示した位置誤差情報に基づいて、所定の伝達関数を自己適応させる２次の適応デジタルフィルタによって推定される推定周波数のフィルタ処理を行い、当該推定周波数に基づいて、所定の伝達関数に含まれる全てのフィルタ係数を調整する。【選択図】図４
2019040657.tif 000002
【特許請求の範囲】
【請求項１】
ディスク上のサーボ情報を読み込むヘッドと、
前記サーボ情報に基づいて前記ヘッドが存在する位置を示した位置情報を検出する位置検出部と、
前記位置情報と前記ヘッドの目標となる位置を示した目標位置情報との違いを示した位置誤差情報に基づいて、所定の伝達関数を自己適応させる２次の適応デジタルフィルタによって推定される推定周波数のフィルタ処理を行い、当該推定周波数に基づいて、前記所定の伝達関数に含まれる全てのフィルタ係数を調整するフィルタ部と、
を備える磁気ディスク装置。
【請求項２】
前記フィルタ部は、下記の式（Ａ）を満たす前記所定の伝達関数Ｇ（ｚ）を自己適応させる前記適応デジタルフィルタによって推定された前記推定周波数に基づいて、次のフィルタ処理で用いられる、前記フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを調整する、
【数１】
2019040657.tif 000003
請求項１に記載の磁気ディスク装置。
【請求項３】
前記推定周波数に対応して変化する、前記フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆに関する情報を記憶する記憶部を、さらに備え、
前記フィルタ部は、前記適応デジタルフィルタによって推定される前記推定周波数と、前記記憶部と、に基づいて、前記フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを調整する、
請求項２に記載の磁気ディスク装置。
【請求項４】
前記記憶部は、前記推定周波数を代入した場合に、前記フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを算出する２次関数の係数を記憶する、
請求項３に記載の磁気ディスク装置。
【請求項５】
適応デジタルフィルタは、ＩＩＲ（Infinite  Impulse  Response）型デジタルフィルタである、
請求項１乃至４のいずれか一つに記載の磁気ディスク装置。
【請求項６】
位置制御装置で実行される位置制御方法であって、
制御対象が存在する位置を示した位置情報を検出する位置検出ステップと、
前記位置情報と前記制御対象の目標となる位置を示した目標位置情報との違いを示した位置誤差情報に基づいて、所定の伝達関数を自己適応させる２次の適応デジタルフィルタによって推定される推定周波数のフィルタ処理を行うフィルタステップと、
前記推定周波数に基づいて、前記所定の伝達関数に含まれる全てのフィルタ係数を調整する調整ステップと、
を含む位置制御方法。
【請求項７】
前記調整ステップは、下記の式（Ｂ）を満たす前記所定の伝達関数Ｇ（ｚ）を自己適応させる前記適応デジタルフィルタによって推定された前記推定周波数に基づいて、次のフィルタ処理で用いられる、前記フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを調整する、
【数２】
2019040657.tif 000004
請求項６に記載の位置制御方法。
【請求項８】
前記位置制御装置は、前記推定周波数に対応して変化する、前記フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを記憶する記憶部を備え、
前記フィルタステップは、前記適応デジタルフィルタによって推定される前記推定周波数と、前記記憶部で対応付けられた、前記フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを調整する、
請求項７に記載の位置制御方法。
【請求項９】
前記記憶部は、前記推定周波数を代入した場合に、前記フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを算出する２次関数の係数を記憶する、
請求項８に記載の位置制御方法。
【請求項１０】
適応デジタルフィルタは、ＩＩＲ（Infinite  Impulse  Response）型デジタルフィルタである、
請求項６乃至９のいずれか一つに記載の位置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、磁気ディスク装置、及び位置制御方法に関する。
【背景技術】
【０００２】
従来から、適応デジタルフィルタを用いて、外部からの振動周波数に対するフィルタ処理を行い、位置を制御する技術が提案されている。例えば、ハードディスク(Hard  Disk  Drive:  ＨＤＤ)のヘッドの位置誤差情報に基づいた適応デジタルフィルタを用いて、ボイスコイルモータ(Voice  Coil  Motor:  ＶＣＭ)を制御してヘッドの位置制御を行うフィードバック制御が適用されている。
【０００３】
従来、適応デジタルフィルタの伝達関数において、振動周波数の変化にかかわらず、固定されたフィルタ係数も含まれている。このような場合、外部からの振動周波数の変化にうまく自己適応しない場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１６／０３４３３９３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一つの実施形態は、位置制御の精度向上を図ることができる磁気ディスク装置、及び位置制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの実施形態にかかる磁気ディスク装置は、ヘッドと、位置検出部と、フィルタ部と、を備える。ヘッドは、ディスク上のサーボ情報を読み込む。位置検出部は、サーボ情報に基づいてヘッドが存在する位置を示した位置情報を検出する。フィルタ部は、位置情報とヘッドの目標となる位置を示した目標位置情報との違いを示した位置誤差情報に基づいて、所定の伝達関数を自己適応させる２次の適応デジタルフィルタによって推定される推定周波数のフィルタ処理を行い、当該推定周波数に基づいて、所定の伝達関数に含まれる全てのフィルタ係数を調整する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態にかかるＨＤＤの構成を示すブロック図である。
【図２】図２は、実施形態にかかる磁気ディスクのセクタの構成例を示した図である。
【図３】図３は、実施形態にかかるヘッドの位置制御を行う構成を例示した図である。
【図４】図４は、実施形態にかかる適応フィルタの構成を例示したブロック図である。
【図５】図５は、実施形態にかかる情報処理装置による、ＨＤＤに設定するフィルタ係数の算出処理の手順を示すフローチャートである。
【図６】図６は、実施形態にかかる適応フィルタが行う処理の手順を示すフローチャートである。
【図７】図７は、従来用いられていたＩＩＲフィルタの特性を例示した図である。
【図８】図８は、従来用いられていたＩＩＲフィルタの特性を例示した図である。
【図９】図９は、実施形態にかかる適応フィルタのＩＩＲフィルタの特性を例示した図である。
【図１０】図１０は、実施形態にかかる適応フィルタのＩＩＲフィルタの特性を例示した図である。
【図１１】図１１は、実施形態にかかる適応フィルタの感度を示した図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、実施形態にかかる磁気ディスク装置、及び位置制御方法を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。本実施形態においては、位置制御装置として磁気ディスク装置を用いた上で、制御対象がヘッドの場合について説明するが、制御対象をヘッドに制限するものではなく、任意の制御対象の位置を制御する位置制御装置であれば良い。
【０００９】
図１は、実施形態にかかるＨＤＤ（Hard  Disk  Drive）１０の構成を示すブロック図である。図１に示されるように、ＨＤＤ１０は、磁気ディスク１、ヘッド２、アーム３、ＶＣＭ（Voice  Coil  Motor）４、及びＳＰＭ（SPindle  Motor）５を含む機構部を有する。
【００１０】
本実施形態では、磁気ディスク装置の例として、ＨＤＤ１０を用いて説明するが、光ディスクドライブ、ＭＯ(Magneto-Optical)ドライブ等であっても良い。
【００１１】
磁気ディスク１は、ＳＰＭ５に固定され、ＳＰＭ５が回転駆動することで回転する。図２は、図１の磁気ディスク１のセクタの構成例を示した図である。図２に示されるように、磁気ディスク１の少なくとも一面は、磁気的に情報が記録される記録面とする。
【００１２】
図２に示されるように、記録面には例えば同心円の複数のトラックが定義され、各トラックはサーボ領域ＳＢと、データ領域ＤＴとを有する。サーボ領域ＳＢとデータ領域ＤＴは、サーボセクタ６を構成する。サーボ領域ＳＢには、磁気ディスク１の記録面上での物理的なアドレス情報、及び、サーボ情報が記録されている。サーボ情報は、トラックに対する半径方向のズレを算出するための位置情報を含む。また、データ領域ＤＴには、ＨＤＤ１０に記録すべき情報が記録される。
【００１３】
図１に戻り、ＨＤＤ１０の各構成について説明する。アーム３は、一方の端部にヘッド２を備え、他方の端部に軸受部３ａを備えている。アーム３は、ＶＣＭ４への駆動電流（又は駆動電圧）の供給に応じて、軸受部３ａを中心として回転し、磁気ディスク１の記録面上でヘッド２を半径方向に移動させる。
【００１４】
ヘッド２は、リードヘッド及びライトヘッド（何れも不図示）を備えている。リードヘッドは、磁気ディスク１の記録面に磁気記録された情報を読み取る。読み取られた信号は、ヘッドＩＣ２２に出力される。ライトヘッドは、ヘッドＩＣ２２を介して入力されるライト信号（ライト電流）に応じて、磁気ディスク１の記録面に情報を磁気的に記録する。
【００１５】
ＶＣＭ４は、後述するモータドライバ２１から供給される駆動信号（電流又は電圧）に応じて駆動し、アーム３を回転させる。
【００１６】
ＳＰＭ５は、モータドライバ２１から供給される駆動信号（電流又は電圧）に応じて駆動し、磁気ディスク１を回転させる。
【００１７】
また、ＨＤＤ１０は、モータドライバ２１と、ヘッドＩＣ２２と、ＮＶＲＡＭ(Non  
Volatile  Random  Access  Memory  )２３と、接続Ｉ／Ｆ２４と、コントローラ６０と、を備える。
【００１８】
モータドライバ２１は、コントローラ６０からの制御信号に基づいて、ＶＣＭ４を駆動するための駆動信号をＶＣＭ４に供給する。また、モータドライバ２１は、コントローラ６０からの制御信号に基づいて、ＳＰＭ５を駆動させるための駆動信号（電流）をＳＰＭ５へ供給する。
【００１９】
ヘッドＩＣ２２は、ヘッド２に備えられたリードヘッドからアーム３上の導体パターンを介して入力された信号を増幅し、増幅した信号をリード情報としてコントローラ６０に出力する。またヘッドＩＣ２２は、コントローラ６０から入力された記録情報に応じたライト信号を、ヘッド２に備えられたライトヘッドへ、アーム３上の導体パターンを介して出力する。
【００２０】
ＮＶＲＡＭ２３は、不揮発性の半導体メモリである。ＮＶＲＡＭ２３は、ＣＰＵ
(Central  Processing  Unit)４１が実行するプログラム及びＣＰＵ４１で実行される処理で利用される各種パラメータを記憶する。なお、ＮＶＲＡＭ２３の代わりに、ＲＯＭ(Read  Only  Memory)などを用いてもよい。
【００２１】
接続Ｉ／Ｆ２４は、ホスト装置１００とＨＤＤ１０とを接続し、ホスト装置１００とＨＤＤ１０との間のデータ及びコマンドの送受に係る通信に利用される。ＨＤＤ１０は、接続Ｉ／Ｆ２４を介して、ホスト装置１００と接続されている。これにより、ＨＤＤ１０は、ホスト装置１００の記憶モジュールとして機能する。
【００２２】
コントローラ６０は、ＲＷＣ（Read  Write  Channel）３１と、ＣＰＵ４１と、ＲＡＭ４２と、ＨＤＣ（Hard  Disc  Controller）５０と、を少なくとも含むＳＯＣ（System  On  Chip）として構成される。なお、コントローラ６０がＲＡＭ４２を含まず、コントローラ６０の外部にＲＡＭ４２が接続される構成であってもよい。
【００２３】
ＲＡＭ４２は、ＲＷＣ３１、ＣＰＵ４１及びＨＤＣ５０のワークメモリ（作業領域）とする。ＲＡＭ４２には、例えば揮発性メモリであるＤＲＡＭ(Dynamic  Random  Access  
Memory)が適用される。
【００２４】
接続Ｉ／Ｆ２４が、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）規格に準拠したインターフェースとした場合、ＨＤＣ５０は、ホスト装置１００との間でＳＡＴＡ規格に準拠した通信制御を行う。本実施形態では、接続Ｉ／Ｆの規格として、ＳＡＴＡ規格を用いる例について説明するが、ＳＡＳ(Serial  Attached  SCSI)やＰＣＩｅ(Peripheral  Component  Interconnect  express)等の他の規格の接続Ｉ／Ｆを用いても良い。
【００２５】
ＨＤＣ５０は、ホスト装置１００との間で情報の送受信を制御する。ＨＤＣ５０は、ＲＷＣ３１からの復号化された情報に所定の処理を施して符号化し、符号化した情報をホスト装置１００に送信する。また、ＨＤＣ５０は、ホスト装置１００から受信した受信情報に所定の処理を施して復号化し、復号化した情報を記録すべき情報としてＲＷＣ３１へ出力する。
【００２６】
また、ＨＤＣ５０は、ホスト装置１００から、データの記録を開始する論理アドレス及び記録データ長の情報を含むライトコマンドを受信した場合、受信したライトコマンドから論理アドレス及び記録データ長の情報を抽出する。抽出された論理アドレス及び記録データ長の情報は、ＣＰＵ４１へ出力される。
【００２７】
ＲＷＣ３１（位置検出部）は、ヘッドＩＣ２２から入力されたリード情報からサーボ領域ＳＢに対応するサーボ情報を検出し、検出したサーボ情報からアドレス情報および位置情報を抽出する。抽出されたアドレス情報および位置情報はＣＰＵ４１へ出力される。
【００２８】
また、ＲＷＣ３１は、リード情報からデータ領域ＤＴに対応する情報を検出し、検出した情報に所定の処理を施して復号化する。復号化された情報は、ＨＤＣ５０へ出力される。
【００２９】
さらにＲＷＣ３１は、ＨＤＣ５０から入力された、記録すべき情報に所定の処理を施して符号化し、符号化した情報を記録情報としてヘッドＩＣ２２へ出力する。ＲＷＣ３１は、これらの複数の処理のためにＲＡＭ４２をワークメモリとして利用する。
【００３０】
ＣＰＵ４１は、ＨＤＤ１０全体を制御するプロセッサとする。例えば、ＣＰＵ４１は、ＮＶＲＡＭ２３に記憶されたプログラムを実行し、ＲＡＭ４２を作業領域として用いることで、様々な制御を実現する。
【００３１】
例えば、ＣＰＵ４１は、ＶＣＭ４及びＳＰＭ５の回転制御、及び磁気ディスク１からの情報再生処理の制御を行う。
【００３２】
他の例としては、ＣＰＵ４１は、磁気ディスク１に記録されたサーボ情報から抽出された、位置情報に基づいて、磁気ディスク１の記録面の半径方向に対するヘッド２の位置制御を行う。本実施形態のヘッド２の位置制御には、フィードバック制御を用いる。
【００３３】
ＣＰＵ４１は、フィードバック制御において、磁気ディスク１からヘッド２により読み出されたサーボ情報に基づいたヘッド２が存在する実際の位置を示した位置情報と、フィードバック制御によってヘッド２の目標となる位置を示した目標位置情報と、に基づいて位置誤差情報を算出する。そして、ＣＰＵ４１は、適応フィルタを用いて、算出された位置誤差情報に対してフィルタ処理を行う。
【００３４】
本実施形態の適応フィルタは、位置誤差情報に対して、高速フーリエ変換(Fast  
Fourier  Transform:  ＦＦＴ)を用いることなく外乱の不特定の周波数成分（以下、推定周波数と称す）を適応的に推定する。本実施形態では、ＨＤＤ１０のヘッド２の位置決め制御の適応フィルタとして、ＩＩＲ（Infinite  Impulse  Response）型適応フィルタを用いる。
【００３５】
次に、本実施形態における、ヘッド２の位置制御を行う構成について説明する。図３は、本実施形態にかかるヘッド２の位置制御を行う構成を例示した図である。
【００３６】
図３に示されるように、ＲＷＣ３１は、信号処理部２０１と、位置検出部２０２と、を備える。また、ＣＰＵ４１は、ＮＶＲＡＭ２３に格納されたプログラムを実行して、適応フィルタ２１１と、固定フィルタ２１２と、を実現する。また、ＮＶＲＡＭ２３は、適応フィルタ２１１で用いるための係数記憶部２２１を備える。そして、本実施形態では、信号処理部２０１、位置検出部２０２、適応フィルタ２１１、固定フィルタ２１２、及びモータドライバ２１により、ヘッド２の位置制御が行われる。
【００３７】
係数記憶部２２１は、適応フィルタ２１１より推定された推定周波数に対応して変化するフィルタ係数に関する情報を記憶する。
【００３８】
ＲＷＣ３１の信号処理部２０１は、ヘッドＩＣ２２からのリード情報を入力して処理する。信号処理部２０１は、入力されたリード情報に対して、復調やエラー訂正などの処理を行う。信号処理部２０１は、処理されたリード情報を、位置検出部２０２に出力する。
【００３９】
位置検出部２０２は、信号処理部２０１から入力されたリード情報から、サーボ情報を検出する。位置検出部２０２は、検出したサーボ情報から、ヘッド２が読み込んでいる位置を示した位置情報を検出する。位置検出部２０２は、検出した位置情報を、ＣＰＵ４１に出力する。
【００４０】
ＣＰＵ４１は、ＲＷＣ３１の位置検出部２０２から、位置情報を入力する。そして、ＣＰＵ４１は、位置情報で示された実際の位置と、ヘッド２の目標となる位置を示した目標位置と、の差を示した位置誤差情報を算出する。
【００４１】
ＣＰＵ４１の適応フィルタ２１１は、算出された位置誤差情報を入力する。適応フィルタ２１１は、入力された位置誤差情報から、ヘッド２の位置制御に対する外乱の不特定の周波数成分（推定周波数）を適応的に推定する。さらに、適応フィルタ２１１は、推定周波数に基づいた特徴的な特性でフィルタ処理（フィルタリング）する。本実施形態においては、推定周波数に基づいた特徴的な特性を導出する際に、係数記憶部２２１に記憶されたフィルタ係数に関する情報を参照する。
【００４２】
従来においては、適応フィルタとして２次のＩＩＲフィルタのうち、一部のフィルタ係数のみを、推定周波数に基づいて更新し、他の複数のフィルタ係数については固定化し、更新が行われなかった。このため、推定周波数がフィルタ設計した周波数近辺の場合には抑圧性能を維持するが、推定周波数がフィルタ設計した周波数から大きく離れるに従って性能が低下していた。
【００４３】
そこで、本実施形態の適応フィルタ２１１は、ＩＩＲフィルタにおいて、伝達関数として用いられる全てのフィルタ係数を、推定周波数に基づいて調整することとした。このため、本実施形態の係数記憶部２２１は、ＩＩＲフィルタの伝達関数に用いられる全てのフィルタ係数の各々について、当該フィルタ係数を算出するための、２次関数の係数を記憶する。
【００４４】
本実施形態の係数記憶部２２１は、あらかじめ想定する広範囲の周波数に対応するフィルタ係数を記憶する。本実施形態においては、例えばフィルタ係数Ｐ（ｗ）は、以下の式（１）から算出されるものとする。なお、式（１）では、推定周波数ｗとし、Ｐ０、Ｐ１、Ｐ２を係数とする。
【００４５】
Ｐ（ｗ）＝Ｐ０＋(Ｐ１×ｗ)＋（Ｐ２×ｗ２）……式（１）
【００４６】
係数Ｐ０、Ｐ１、Ｐ２が、フィルタ係数Ｐ（ｗ）を算出するための係数として係数記憶部２２１に記憶される。係数Ｐ０、Ｐ１、Ｐ２の算出手法については、後述する。同様に、フィルタ係数Ｑ（ｗ）を算出するための係数Ｑ０、Ｑ１、Ｑ２も係数記憶部２２１に記憶される。フィルタ係数Ｒ（ｗ）、Ｅ（ｗ）、Ｆ（ｗ）についても同様とする。
【００４７】
これにより、推定周波数に基づいて、ＩＩＲフィルタに用いられる全て（５個）のフィルタ係数を調整できる。
【００４８】
そして、適応フィルタ２１１は、フィルタ処理された情報を、固定フィルタ２１２に出力する。
【００４９】
固定フィルタ２１２は、ヘッド２の位置制御におけるフィードバック制御を安定化するための位相補償やゲイン補償を行う。固定フィルタ２１２においては、所定の伝達関数を実現するためのフィルタ係数が予め設定されている。そして、固定フィルタ２１２は、フィルタ処理した情報を、モータドライバ２１へ出力する。
【００５０】
モータドライバ２１は、適応フィルタ２１１及び固定フィルタ２１２でフィルタ処理された情報に基づいて、ＶＣＭ４を駆動し、ヘッド２を磁気ディスク１上で移動させる。ヘッド２に備えられたリードヘッドが磁気ディスク１の記録面から読み出した信号は、ヘッドＩＣ２２を介してリード情報となり、ヘッド２の位置制御におけるフィードバック制御に用いられる。
【００５１】
次に、本実施形態にかかる適応フィルタ２１１の構成について説明する。図４は、本実施形態にかかる適応フィルタ２１１の構成を例示したブロック図である。
【００５２】
図４に示されるように、ＣＰＵ４１のヘッド位置制御では、フィードバック制御系が実現されている。ＣＰＵ４１は、直列に接続された、適応フィルタ２１１と、固定フィルタ２１２と、を備えて、位置制御モジュールとして機能する。
【００５３】
固定フィルタ２１２は、適応フィルタ２１１の後段に設けられている。さらに、固定フィルタ２１２の後段には、制御対象４５０が設けられている。固定フィルタ２１２は、適応フィルタ２１１の前段に設けられても良い。
【００５４】
制御対象４５０は、モータドライバ２１からヘッドＩＣ２２までを含むブロックとする。そして、制御対象４５０が出力するリード情報が、ＣＰＵ４１に入力される。
【００５５】
ＣＰＵ４１内の位置誤差演算部４２１は、リード情報に含まれるサーボ情報に基づいた演算結果である、位置誤差情報を、適応フィルタ２１１に出力する。具体的には、位置誤差演算部４２１は、ホスト装置１００からの要求に基づいた目標位置情報で示されるヘッド２の目標位置と、サーボ情報から検出された位置情報で示されるヘッド２の実際の位置と、の差を示した値を、位置誤差情報として適応フィルタ２１１に出力する。
【００５６】
図４に示されるように、適応フィルタ２１１は、第１の加算器４０１と、第１の演算器４０２と、第１の遅延器４０３と、第２の遅延器４０４と、第１の乗算器４０５と、第２の演算器４０６と、第２の乗算器４０７と、第３の演算器４０８と、第２の加算器４０９と、第３の乗算器４１０と、第４の演算器４１１と、積分器４１２と、係数処理部４１３と、を備え、位置誤差情報に基づいて、推定周波数のフィルタ処理を行う。
【００５７】
本実施形態の適応フィルタ２１１は、ヘッド２の位置制御を実行する時に、ヘッド２により読み出されたサーボ情報から生成された位置誤差情報にそれぞれが基づいた分母係数と分子係数とを含む高次の適応デジタルフィルタとする。
【００５８】
本実施形態では、所定の伝達関数Ｇ（ｚ）を自己適応させる適応フィルタ２１１として、２次のＩＩＲ型適応デジタルフィルタを用いる例について説明するが、２次に制限するものではなく高次であれば良い。
【００５９】
本実施形態の適応フィルタ２１１は、最適化アルゴリズムに従って伝達関数Ｇ（ｚ）を自己適応させる。伝達関数Ｇ（ｚ）は、以下の式（２）で示す。
【００６０】
Ｇ（ｚ）＝｛（Ｐ×ｚ2）＋（Ｑ×ｚ）＋Ｒ｝／｛ｚ2＋（Ｅ×ｚ）＋Ｆ｝……式（２）
【００６１】
フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆは、適応フィルタ２１１が減衰させる対象となる推定周波数、ノッチ深さ、及びノッチ幅に基づいて設定される係数であって、推定周波数が推定される毎に調整される係数とする。
【００６２】
つまり、本実施形態は、適応フィルタ２１１を適応ノッチフィルタとして用いる例とする。例えば、外部からの影響による振動周波数で振動する環境でＨＤＤ１０を使用する場合がある。しかしながら、ＨＤＤ１０を振動させる振動周波数は、時間や場所によって異なる。このため、外部振動による振動成分を除去する周波数範囲が広くなるほうが望ましい。そこで、本実施形態では、適応フィルタ２１１を適応ノッチフィルタとして用いることで、ＨＤＤ１０に加えられた外部振動の周波数成分の減衰が可能となる。これにより、ヘッド２の位置誤差を低減できる。
【００６３】
係数処理部４１３は、適応フィルタ２１１によって、外部振動と推定される推定周波数に基づいて、フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを調整する。さらに、本実施形態においては、伝達関数Ｇ（ｚ）に含まれている、全てのフィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを、推定周波数が推定される毎に調整する。具体的な調整手法については後述する。
【００６４】
本実施形態の第１の加算器４０１は、伝達関数Ｇ（ｚ）から導出される分母係数ｙを、出力する。
【００６５】
すなわち、第１の加算器４０１が、位置誤差情報Pes_nと、分母係数ｙの一次遅れから得られた一次遅延値ｙ’にフィルタ係数Ｅを乗算した値(Ｅ×ｙ’)と、分母係数ｙの二次遅れから得られた二次遅延値ｙ’’にフィルタ係数Ｆを乗算した値(Ｆ×ｙ’’)と、を加算することで、分母係数ｙを生成する。
【００６６】
詳細には、第１の遅延器４０３が、分母係数ｙの一次遅れである一次遅延値ｙ’を出力する。第２の遅延器４０４が、一次遅延値ｙ’の一次遅れ、換言すれば分母係数ｙの二次遅れである二次遅延値ｙ’’を出力する。
【００６７】
第１の乗算器４０５は、一次遅延値ｙ’に、フィルタ係数Ｅを乗算して、第１の加算器４０１に出力する。フィルタ係数Ｅは、係数処理部４１３により調整される。
【００６８】
第２の演算器４０６は、二次遅延値ｙ’’に、フィルタ係数Ｆを乗算して、第１の加算器４０１に出力する。フィルタ係数Ｆは、係数処理部４１３により調整される。
【００６９】
また、本実施形態の第２の加算器４０９は、伝達関数Ｇ（ｚ）から導出される分子係数Out_nを出力する。
【００７０】
すなわち、第２の加算器４０９は、分母係数ｙにフィルタ係数Ｐを乗算して得られた値(Ｐ×ｙ)と、分母係数ｙの一次遅れから得られた一次遅延値ｙ’にフィルタ係数Ｑを乗算した値(Ｑ×ｙ’)と、分母係数ｙの二次遅れから得られた二次遅延値ｙ’’にフィルタ係数Ｒを乗算した値(Ｒ×ｙ’’)と、を加算することで分子係数Out_nを生成する。
【００７１】
詳細には、第１の演算器４０２が、分母係数ｙに、フィルタ係数Ｐを乗算して、第２の加算器４０９に出力する。フィルタ係数Ｐは、係数処理部４１３により調整される。
【００７２】
第２の乗算器４０７が、一次遅延値ｙ’に、フィルタ係数Ｑを乗算して、第２の加算器４０９に出力する。フィルタ係数Ｑは、係数処理部４１３により調整される。
【００７３】
第３の演算器４０８は、二次遅延値ｙ’’に、フィルタ係数Ｒを乗算して、第２の加算器４０９に出力する。フィルタ係数Ｒは、係数処理部４１３により調整される。
【００７４】
また、本実施形態の積分器４１２は、推定周波数ｗを出力する。推定周波数ｗは、時間の経過と共にそれぞれ遷移する、位置誤差情報Pes_n及び分母係数ｙに基づいて生成される。
【００７５】
推定周波数ｗは、ＨＤＤ１０を振動させる外部振動として推定される推定周波数とする。
【００７６】
本実施形態の積分器４１２は、位置誤差情報Pes_nに、分母係数ｙを乗算して生成した値に対して係数Ｋを乗算した値を積算していくことで、推定周波数ｗを生成する。つまり、積分器４１２は、１サンプル前の推定周波数ｗ’に、Ｋ・Pes_n・ｙを加算して生成した値を推定周波数ｗとする。
【００７７】
詳細には、第３の乗算器４１０が、位置誤差情報Pes_nに、分母係数ｙを乗算する。そして、第４の演算器４１１は、第３の乗算器４１０の乗算で生成された値に、係数Ｋを乗算し、１サンプル前の推定周波数ｗ’に積算する積算値Ｋ・Pes_n・ｙを生成する。なお、係数Ｋには実施の態様に応じた値が設定される。
【００７８】
係数処理部４１３は、積分器４１２から出力される推定周波数ｗと、係数記憶部２２１と、に基づいて、フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを導出する。具体的には、係数処理部４１３は、係数記憶部２２１に記憶されているフィルタ係数毎の２次関数の係数を参照し、入力された推定周波数ｗを、フィルタ係数毎の２次関数に代入して、フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを算出する。例えば、フィルタ係数Ｐは、上述した式（１）から算出される。なお、係数Ｐ０、Ｐ１、Ｐ２は、係数記憶部２２１から読み出される。他のフィルタ係数Ｑ、Ｒ、Ｅ、Ｆも同様に算出される。
【００７９】
そして、係数処理部４１３は、フィルタ係数Ｐを、第１の演算器４０２に出力し、フィルタ係数Ｑを、第２の乗算器４０７に出力し、フィルタ係数Ｒを、第３の演算器４０８に出力し、フィルタ係数Ｅを、第１の乗算器４０５に出力し、フィルタ係数Ｆを、第２の演算器４０６に出力する。これにより、フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆが、今回推定された推定周波数ｗに従って調整される。このように、本実施形態は、推定周波数ｗに従って、次のフィルタ処理で用いられる、フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを調整する。これにより、外部振動として推定される推定周波数のフィルタ処理の精度を向上できる。
【００８０】
次に、本実施形態のＨＤＤ１０に設定するフィルタ係数の算出処理について説明する。図５は、本実施形態における情報処理装置による上述した処理の手順を示すフローチャートである。なお、情報処理装置は、図５に示す処理を実行可能な装置であればよく、例えばホスト装置１００でも良い。また、情報処理装置が、以下の処理を行うためのプログラムとしては、どのようなプログラムを用いても良いが、例えばマトラボ(MATrix  
LABoratory:  MATLAB、登録商標)を用いることが考えられる。
【００８１】
まず、情報処理装置が、ノッチ深さＮＧ、ノッチ幅ＮＱ、サンプリング周期Ｔの入力を受け付ける（Ｓ５０１）。設定を受け付けるために、（１）〜（３）に示される命令文を用いても良い。
（１）ＮＧ  ＝  input(’深さ[Hz]:’)
（２）ＮＱ  ＝  input(’幅:’)
（３）Ｔ  ＝  input(’サンプリング周期[sec]:’)
【００８２】
次に、情報処理装置は、設計周波数ＦＲ（１，…，ｍ）を読み込む（Ｓ５０２）。設計周波数ＦＲ（１，…，ｍ）は、以下の式（３）で示される行列とする。なお、式（３）では、予め定められた設計周波数ＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍとする。予め定められた設計周波数ＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍは、例えば、ＨＤＤ１０に対する外部振動として想定されている周波数帯において、所定の周波数間隔で設定された周波数とする（式（３））。
【００８３】
設計周波数ＦＲ（１，…，ｍ）＝｛ＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍ｝…式（３）
【００８４】
次に、情報処理装置が、カウンタ変数ｎnumを‘１’で初期化する（Ｓ５０３）。
【００８５】
そして、情報処理装置が、カウンタ変数ｎnumに基づいた設計周波数ＦＲ（ｎnum）、ノッチ深さＮＧ、ノッチ幅ＮＱに基づいて、連続時間のフィルタ（フィルタは、分母係数ベクトルｎ，分子係数ベクトルｄで構成される）を算出する（Ｓ５０４）。
【００８６】
連続時間のフィルタ係数を生成するために、（４）〜（８）に示される命令文を用いても良い。なお、演算用周波数ｆｒ、第１の変数ｋ１、第２の変数ｋ２、円周率ｐｉとする。
（４）ｆｒ＝ＦＲ（ｎnum）
（５）ｋ１＝ＮＱ
（６）ｋ２＝ｋ１×１０^(ＮＧ/２０)
（７）ｎ＝[１,  ２×ｋ１×２×ｐｉ×ｆｒ,  （２×ｐｉ×ｆｒ）＾２]
（８）ｄ＝[１,  ２×ｋ２×２×ｐｉ×ｆｒ,  （２×ｐｉ×ｆｒ）＾２]
【００８７】
そして、情報処理装置が、サンプリング周期Ｔを用いて、連続時間のフィルタ（分母係数ベクトルｎ、及び分子係数ベクトルｄを含む）から、離散時間のフィルタにモデル変換する（Ｓ５０５）。モデル変換するために、（９）で示される命令文を用いても良い。（９）で示される命令文では、モデル変換に命令”c2dm”を用いる例とする。なお、離散モデルにおいては、分母係数のベクトルをｎｄとし、分子係数のベクトルをｄｄとする。
（９）[ｎｄ，ｄｄ]＝c2dm(ｎ,  ｄ,  Ｔ)
【００８８】
そして、情報処理装置は、離散時間のフィルタから、フィルタ係数(Ｐ（ｎnum）,Ｑ（ｎnum），Ｒ（ｎnum）,Ｅ（ｎnum），Ｆ（ｎnum）)を抽出する（Ｓ５０６）。フィルタ係数(Ｐ（ｎnum）,Ｑ（ｎnum），Ｒ（ｎnum）,Ｅ（ｎnum），Ｆ（ｎnum）)を抽出するために、（１０）〜（１４）に示される命令文を用いても良い。なお、ベクトルｎｄ（数字ｋ）は、ベクトルｎｄのｋ番目の要素を示している。
（１０）Ｐ（ｎnum）＝ｎｄ（１）
（１１）Ｑ（ｎnum）＝ｎｄ（２）
（１２）Ｒ（ｎnum）＝ｎｄ（３）
（１３）Ｅ（ｎnum）＝−ｄｄ（２）
（１４）Ｆ（ｎnum）＝−ｄｄ（３）
【００８９】
情報処理装置は、推定周波数ｗ（ｎnum）を算出する（Ｓ５０７）。推定周波数ｗ（ｎnum）を算出するためには、（１５）に示される命令文を用いても良い。
【００９０】
（１５）ｗ（ｎnum）＝−２×ｃｏｓ（２×ｐｉ×ｆｒ×Ｔ）
【００９１】
次に、情報処理装置は、カウンタ変数ｎnumに‘１’加算する処理（ｎnum＝ｎnum＋１）を行う（Ｓ５０８）。
【００９２】
情報処理装置は、カウンタ変数ｎnumが設計周波数の数ｍより大きい（ｎnum＞ｍ？）か否かを判定する（Ｓ５０９）。カウンタ変数ｎnumが設計周波数の数ｍ以下と判定した場合（Ｓ５０９：Ｎｏ）、再びＳ５０４から処理を行う。
【００９３】
一方、カウンタ変数ｎnumが設計周波数の数ｍより大きいと判定した場合（Ｓ５０９：Ｙｅｓ）、情報処理装置は、フィルタ係数（Ｐ，Ｑ，Ｒ，Ｅ，Ｆ）毎に、推定周波数ｗからフィルタ係数を算出するための２次関数を導出する（Ｓ５１０）。
【００９４】
例えば、本実施形態の情報処理装置は、最小二乗法を適用して、１７個の（ｗ（ｎnum），Ｐ（ｎnum））（ｎnum＝１、…、ｍ）を近似した２次関数を、フィルタ係数Ｐを算出するための２次関数として導出する。
【００９５】
同様に、情報処理装置は、１７個の（ｗ（ｎnum），Ｑ（ｎnum））（ｎnum＝１、…、ｍ）から、フィルタ係数Ｑを算出する２次関数を導出し、１７個の（ｗ（ｎnum），Ｒ（ｎnum））（ｎnum＝１、…、ｍ）から、フィルタ係数Ｒを算出する２次関数を導出し、１７個の（ｗ（ｎnum），Ｅ（ｎnum））（ｎnum＝１、…、ｍ）から、フィルタ係数Ｅを算出する２次関数を導出し、１７個の（ｗ（ｎnum），Ｆ（ｎnum））（ｎnum＝１、…、ｍ）から、フィルタ係数Ｆを算出する２次関数を導出する。
【００９６】
そして、情報処理装置は、フィルタ係数（Ｐ，Ｑ，Ｒ，Ｅ，Ｆ）毎に導出された２次関数の係数を、ＨＤＤ１０のＮＶＲＡＭ２３の係数記憶部２２１に設定する（Ｓ５１１）。例えば、フィルタ係数Ｐを算出するための２次関数として、Ｐ（ｗ）＝(Ｐ２×ｗ２）＋（Ｐ１×ｗ）＋Ｐ０が導出された場合に、係数Ｐ２、Ｐ１、Ｐ０が係数記憶部２２１に設定される。他のフィルタ係数（Ｑ，Ｒ，Ｅ，Ｆ）も同様として説明を省略する。
【００９７】
これにより、ＨＤＤ１０の適応フィルタ２１１は、推定周波数ｗに応じてフィルタ係数Ｐ，Ｑ，Ｒ，Ｅ，Ｆを調整できる。従って、実施態様に応じた適応フィルタの精度を向上できる。
【００９８】
次に、本実施形態のＨＤＤ１０の適応フィルタ２１１が行う処理について説明する。図６は、本実施形態にかかる適応フィルタ２１１における上述した処理の手順を示すフローチャートである。
【００９９】
まず、係数処理部４１３が、フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを算出するための２次関数の係数を、係数記憶部２２１から読み込む（Ｓ６０１）。これにより、フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆ毎に、フィルタ係数を算出するための２次関数を導出できる。
【０１００】
次に、係数処理部４１３が、推定周波数の初期値を設定する（Ｓ６０２）。推定周波数の初期値は、どのような値でも良く、例えば、上述したＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍのうちいずれか一つ又は‘０’でも良い。
【０１０１】
そして、係数処理部４１３は、フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆ毎に導出された２次関数に、推定周波数を代入することで、フィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを算出する（Ｓ６０３）。初回はＳ６０２で設定された推定周波数の初期値を用い、二回目以降はＳ６０６で算出された推定周波数を用いる。そして、Ｓ６０３で算出されたフィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆは、Ｓ６０４〜Ｓ６０５で用いられる。換言すれば、係数処理部４１３は、前回のフィルタ処理においてＳ６０６で算出された推定周波数に基づいてフィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆを調整する。そして、調整されたフィルタ係数Ｐ、Ｑ、Ｒ、Ｅ、Ｆが、次のフィルタ処理で用いられる。
【０１０２】
そして、適応フィルタ２１１の第１の加算器４０１等が、分母係数ｙを算出する（Ｓ６０４）。分母係数ｙを算出する式（４）を以下に示す。また、ｙ’は、分母係数の前回の値とし、ｙ’’は、分母係数の前々回の値とする。なお、初回のＳ６０４の場合、ｙ’、ｙ’’は、初期値が設定されている。
ｙ  ＝  Pes_n＋(Ｅ×ｙ’)＋(Ｆ×ｙ’’)……式（４）
【０１０３】
適応フィルタ２１１の第２の加算器４０９等が、分子係数Out_nを算出する（Ｓ６０５）。分子係数Out_nを算出する式（５）を以下に示す。
Out_n  ＝  (Ｐ×ｙ)＋(Ｑ×ｙ’)＋(Ｒ×ｙ’’)……式（５）
【０１０４】
適応フィルタ２１１の積分器４１２等が、推定周波数ｗを算出する（Ｓ６０６）。推定周波数ｗを算出する式（６）を以下に示す。ｗ’は、推定周波数の前回の値とする。
ｗ  ＝  ｗ’＋(Ｋ×Pes_n×ｙ’)……式（６）
【０１０５】
そして、第１の遅延器４０３、及び第２の遅延器４０４が、第１の加算器４０１から出力される分母係数ｙに基づいて、適応フィルタ２１１内の係数を更新する（Ｓ６０７）。更新には式（７）、式（８）を用いる。
ｙ’’＝ｙ’……式（７）
ｙ’＝ｙ……式（８）
【０１０６】
図６に示す処理において、ＲＷＣ３１から位置情報が入力された場合に、ＣＰＵ４１は、新たに入力された位置情報に基づいて位置誤差情報を算出する。算出された位置誤差情報は、Ｓ６０４の式（４）に用いられる。このような処理が繰り返されることで、位置誤差の修正を実現できる。
【０１０７】
図７及び図８は、従来用いられていたＩＩＲフィルタの特性を例示した図である。従来のＩＩＲフィルタは、フィルタ係数Ｐ，Ｑ，Ｒ，Ｅ，Ｆのうち、いくつかのフィルタ係数が固定値の場合とする。そして、固定値のフィルタ係数は、１０ｋＨｚ近傍の設計周波数に基づいて定められたものとする。
【０１０８】
図７は、上述した１７個の設計周波数（ＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍ）毎のゲイン[ｄＢ]を示し、図８は、上述した１７個の設計周波数（ＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍ）毎の位相[ｄｅｇ]を示している。
【０１０９】
図７及び図８に示される例では、１０ｋＨｚ近傍の設計周波においては、ゲイン及び位相は適切な値になる。しかしながら、設計周波数が小さくなるに従って、ゲイン及び位相も減少していくことになるため、フィルタ特性が歪んでいることが確認できる。
【０１１０】
図９及び図１０は、本実施形態にかかる適応フィルタ２１１のＩＩＲフィルタの特性を例示した図である。本実施形態の適応フィルタ２１１のＩＩＲフィルタは、フィルタ係数Ｐ，Ｑ，Ｒ，Ｅ，Ｆ全てが推定周波数に基づいて調整される。
【０１１１】
図９は、上述した１７個の設計周波数（ＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍ）毎のゲイン[ｄＢ]を示し、図１０は、上述した１７個の設計周波数（ＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍ）毎の位相[ｄｅｇ]を示している。
【０１１２】
図９及び図１０に示される例では、設計周波数（ＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍ）のいずれであっても、ゲイン及び位相は適切な値になる。換言すれば、少なくとも設計周波数（ＦＲ０，ＦＲ１，ＦＲ２，…，ＦＲｍ）で示される２ｋＨｚ〜１０ｋＨｚの広い範囲で感度特性が改善されていることが確認できる。
【０１１３】
本実施形態においては、フィルタ係数Ｐ，Ｑ，Ｒ，Ｅ，Ｆ全てを、推定周波数に従って調整されるようにしたことで、適切なゲイン及び位相となる。これにより本実施形態の適応フィルタ２１１のフィルタ特性は歪みが生じていないことを確認できる。
【０１１４】
図１１は、本実施形態にかかる適応フィルタ２１１の感度を示した図である。図１１に示される直線１１０１が、本実施形態の適応フィルタ２１１を用いた場合の感度関数を示している。破線１１０２が、本実施形態の適応フィルタ２１１を用いなかった場合の感度関数を示している。
【０１１５】
直線１１０１に示される、適応フィルタ２１１を用いた場合の感度関数と、破線１１０２に示される、適応フィルタ２１１を用いない場合の感度関数とでは、周波数２ｋＨｚ〜１０ｋＨｚの間で５ｄＢ程度の違いが生じる。このように、本実施形態の適応フィルタ２１１を用いた場合、適応フィルタ２１１を使用しない場合よりもゲインが向上し、より適切なフィルタ処理を実現できる。これにより、本実施形態の適応フィルタ２１１は、従来の適応フィルタと比べて、精度が向上していることが確認できる。
【０１１６】
本実施形態においては、ヘッド２の位置制御を行う例について説明した。しかしながら、本実施形態は、ヘッド２の位置制御に制限するものではなく、外部からの振動周波数が存在する場合の位置制御を行うものであれば適用可能である。例えば、ロボットのアーム等の位置制御に用いても良い。
【０１１７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１８】
１…磁気ディスク、２…ヘッド、３…アーム、２３…ＮＶＲＡＭ、３１…ＲＷＣ、４２…ＲＡＭ、４１…ＣＰＵ、５０…ＨＤＣ、６０…コントローラ、１００…ホスト装置、２０１…信号処理部、２０２…位置検出部、２１１…適応フィルタ、２１２…固定フィルタ、２２１…係数記憶部、４０１…第１の加算器、４０２…第１の演算器、４０３…第１の遅延器、４０４…第２の遅延器、４０５…第１の乗算器、４０６…第２の演算器、４０７…第２の乗算器、４０８…第３の演算器、４０９…第２の加算器、４１０…第３の乗算器、４１１…第４の演算器、４１２…積分器、４１３…係数処理部、４５０…制御対象。
【図１】
2019040657.tif 000005
【図２】
2019040657.tif 000006
【図３】
2019040657.tif 000007
【図４】
2019040657.tif 000008
【図５】
2019040657.tif 000009
【図６】
2019040657.tif 000010
【図７】
2019040657.tif 000011
【図８】
2019040657.tif 000012
【図９】
2019040657.tif 000013
【図１０】
2019040657.tif 000014
【図１１】
2019040657.tif 000015