(57)【要約】【課題】位置情報が分割されて配置される場合に、精度よく位置情報を検出する。【解決手段】本実施形態に係る位置検出装置は、位置情報に基づいて生成される複数の情報を周期的に検出する。位置情報は、上位桁と下位桁とに分割されている。上位桁は、さらに、前記周期と同じ数の複数の上位桁情報に分割されている。複数の上位桁情報のそれぞれは決められた順に得られる。下位桁は、複数の上位桁情報のいずれとも同時に得られる。位置情報は、上位桁を分割して得られる１つの上位桁情報で取り得る値の数と上位桁を分割する数とが、互いに素となるように、分割されている、【選択図】図１
2018156703.tif 000002
【特許請求の範囲】
【請求項１】
位置情報に基づいて生成される複数の情報を周期的に検出する検出部を具備し、
前記位置情報は、上位桁と下位桁とに分割されており、
前記上位桁は、さらに、前記周期と同じ数の複数の上位桁情報に分割されており、
前記複数の上位桁情報のそれぞれは決められた順に得られ、
前記下位桁は、前記複数の上位桁情報のいずれとも同時に得られ、
前記位置情報は、前記上位桁を分割して得られる１つの前記上位桁情報で取り得る値の数と前記上位桁を分割する数とが、互いに素となるように、分割されている、
ことを特徴とする位置検出装置。
【請求項２】
前記上位桁を分割する数は、奇数であることを特徴とする請求項１に記載の位置検出装置。
【請求項３】
前記複数の上位桁情報のうち第１の上位桁情報における下位部分と、前記第１の上位桁情報より１つ下位側の第２の上位桁情報における上位部分とが重複する場合に、前記１つの上位桁情報で取り得る値の数と前記上位桁を分割する数との最大公約数が、基数の重複桁数乗以下となるように、前記上位桁は分割されている、
ことを特徴とする請求項１又は請求項２に記載の位置検出装置。
【請求項４】
前記複数の上位桁情報のうち第１の上位桁情報における下位側ビットと、前記第１の上位桁情夫おより１つ下位側の第２の上位桁情報における上位側ビットとが重複する場合、前記上位桁を分割する数と前記上位桁情報のビット数乗との最大公約数が、２の重複するビット数以下となるように、前記上位桁を分割する、
ことを特徴とする請求項１乃至請求項３のいずれか１項に記載の位置検出装置。
【請求項５】
請求項１乃至請求項４のいずれか１項に記載の前記位置検出装置によって検出された前記複数の情報に基づいて位置決め制御を実行する位置制御装置。
【請求項６】
径方向の位置を検出するための位置情報に基づいて生成される複数のサーボ情報を、周方向に配置される複数のサーボ領域に周期的に記憶するディスクと、
前記ディスクとヘッドとの相対位置を制御し、前記ディスクへのデータの書き込みと前記ディスクからのデータの読み出しとを制御するコントローラと、
を具備し、
前記位置情報は、上位桁と下位桁とに分割されており、
前記上位桁は、さらに周方向のサーボ領域の周期と同じ数の複数の上位桁情報に分割されており、前記複数の上位桁情報のそれぞれは、複数のサーボ領域のうちの対応するサーボ領域に対して周期的に割り当てられ、
前記下位桁は、前記複数のサーボ領域のそれぞれに割り当てられ、
前記ディスクに記憶された前記位置情報は、前記上位桁を分割して得られる１つの上位桁情報で取り得る値の数と前記上位桁を分割する数とが、互いに素となるように、分割されている、
ことを特徴とするディスク記憶装置。
【請求項７】
前記コントローラは、
前記ヘッドの位置を含む状態を推定する状態推定部と、
前記状態推定部によって推定された状態が現実の状態に対してオフセットを持っていることを検出するオフセット検出部と、
前記オフセット検出部によってオフセットが検出された場合に、前記状態推定部によって推定された状態のオフセット量を推定するオフセット量推定部と、
前記オフセット量推定部によって推定されたオフセット量に基づいて前記状態推定部によって推定された前記状態を修正する状態修正部と、
を具備することを特徴とする請求項６に記載のディスク記憶装置。
【請求項８】
前記コントローラは、前記オフセット検出部によって検出された前記オフセットを修正するオフセット修正部をさらに具備し、
前記状態推定部は、前記オフセット修正部によって修正された修正オフセットを用いて、前記状態を推定する、
ことを特徴とする請求項７に記載のディスク記憶装置。
【請求項９】
位置情報に基づいて生成される複数の情報を周期的に検出することを具備し、
前記位置情報は、上位桁と下位桁とに分割されており、
前記上位桁は、さらに、前記周期と同じ数の複数の上位桁情報に分割されており、
前記複数の上位桁情報のそれぞれは、決められた順に得られ、
前記下位桁は、前記複数の上位桁情報のいずれとも同時に得られ、
前記位置情報は、前記上位桁を分割して得られる１つの前記上位桁情報で取り得る値の数と前記上位桁を分割する数とが、互いに素となるように、分割されている、
ことを特徴とする位置検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、位置検出装置、位置制御装置、ディスク記憶装置、及び位置検出方法に関する。
【背景技術】
【０００２】
ディスク記憶装置の一例として磁気ディスク装置がある。磁気ディスク装置の分野では、記憶媒体であるディスクの高記録密度化が推進されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８８０４２７４号明細書
【特許文献２】米国特許出願公開第２０１５／００４３０９９号明細書
【特許文献３】米国特許第８９２２９２１号明細書
【特許文献４】米国特許第６０３８０９７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本実施形態は、位置情報に基づいて生成された複数の情報が周期的に得られる場合に、この複数の情報から高精度に位置検出を行う位置検出装置、位置制御装置、ディスク記憶装置、及び位置検出方法を提供する。
【課題を解決するための手段】
【０００５】
本実施形態に係る位置検出装置は、位置情報に基づいて生成される複数の情報を周期的に検出する検出部を含む。位置情報は、上位桁と下位桁とに分割されている。上位桁は、さらに、前記周期と同じ数の複数の上位桁情報に分割されている。複数の上位桁情報のそれぞれは決められた順に得られる。下位桁は、複数の上位桁情報のいずれとも同時に得られる。位置情報は、上位桁を分割して得られる１つの上位桁情報で取り得る値の数と上位桁を分割する数とが、互いに素となるように、分割されている。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係るディスク記憶装置の一例を示すブロック図。
【図２】ディスク記憶装置に備えられるディスクに含まれるシリンダの領域の一例を示す概念図。
【図３】本実施形態に係るシリンダ番号とサーボ領域との関係の一例を示す概念図。
【図４】状態オブザーバを用いて修正された推定位置を生成するサーボシステムの一例を示すブロック図。
【図５】シーク動作を開始してから状態オフセットを検出するまでの処理の一例を示すフローチャート。
【図６】シリンダ番号の構成の一例を示す図。
【図７】状態オフセットの修正処理の一例を示すフローチャート。
【図８】本実施形態に係るサーボシステムの一例を示すブロック図。
【図９】本実施形態に係る位置情報の分割の一例を示す概念図。
【図１０】比較例としての速度オフセットの検出例を示す概念図。
【図１１】本実施形態の速度オフセットの検出例を示す概念図。
【図１２】位置情報に含まれるある部分のデータが複数のブロック情報に重複している状態の一例を示す概念図。
【発明を実施するための形態】
【０００７】
以下、図面を参照しながら各実施形態について説明する。以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、必要に応じて説明を行う。
【０００８】
本実施形態においては、本実施形態に係る位置検出装置と位置決め制御装置とがディスク記憶装置に適用されている場合を一例として説明する。ディスク記憶装置としては、例えばハードディスクドライブがある。しかしながら、本実施形態に係る位置検出装置は、位置情報に基づいて生成された複数の情報を周期的に検出する様々な分野で適用可能である。また、本実施形態に係る位置決め制御装置は、本実施形態に係る位置検出装置によって検出された複数の情報に基づいて位置決め制御を実行する。本実施形態に係る位置検出装置と位置決め制御装置とは、記憶装置に適用されているが、記憶装置ではない他の装置に適用されてもよい。例えば、本実施形態に係る位置検出装置は、位置情報をセンサで取得するがレンジ又は分解能が周期的に変わる分野にも適用可能である。
【０００９】
本実施形態に係るディスク記憶装置は、位置情報を分割し、この分割された情報に基づいてサーボ情報を生成し、生成したサーボ情報を周方向に配置されている複数のサーボ領域（サーボフレーム）に周期的に記憶する。このように位置情報を分割して管理する場合であっても、本実施形態に係るディスク記憶装置は、高精度にシーク制御可能である。
【００１０】
図１は、本実施形態に係るディスク記憶装置１の概略構成の一例を示すブロック図である。
【００１１】
図２は、ディスク記憶装置１に備えられるディスク２に含まれるシリンダ１５の領域の一例を示す概念図である。
【００１２】
ディスク記憶装置１は、ヘッド・ディスクアセンブリ（Head-disk assembly：ＨＤＡ）４、ヘッドアンプ集積回路（ＩＣ）５、メインコントローラ６、ドライバＩＣ７、バッファメモリ１９、揮発性メモリ１９１、不揮発性メモリ２０１を含む。
【００１３】
ＨＤＡ４は、記憶媒体であるディスク２と、スピンドルモータ（ＳＰＭ）８と、ヘッド９を搭載するアーム１０と、ボイスコイルモータ（ＶＣＭ）１１とを含む。ディスク２は、スピンドルモータ８により回転する。アーム１０とＶＣＭ１１とはアクチュエータ１４を構成し、ヘッド９をディスク２上の目標位置まで移動（シーク）させる。すなわち、アクチュエータ１４は、ＶＣＭ１１の駆動により、アーム１０に搭載されているヘッド９をディスク２上の径方向に移動させる。ＶＣＭ１１は、ドライバＩＣ７からの駆動電流により駆動制御される。
【００１４】
ディスク２は、データが記憶される多数のシリンダ１５を含むが、図１では多数のシリンダ１５のうちの１つを示している。ディスク２のシリンダ１５には、複数のサーボ領域１５Ｓが配置される。各サーボ領域１５Ｓには、後述の規則にそって、位置情報を分割して得られるブロック情報が割り当てられる。位置情報は、例えばディスク２の径方向の位置を示す。
【００１５】
本実施形態においては、サーボ領域に割り当てられた情報を、サーボ情報という。換言すれば、サーボ情報とは、サーボ領域へ書き込まれるデータであり、サーボ領域から読み出し可能なデータである。
【００１６】
ヘッド９はスライダを本体とし、スライダに実装されているライトヘッド９Ｒ及びリードヘッド９Ｗを備える。リードヘッド９Ｒは、ディスク２上のシリンダ１５に記憶されているデータを読み出す。ライトヘッド９Ｗは、ディスク２上にデータを書き込む。データは、例えば、サーボ情報及びユーザデータである。
【００１７】
ヘッドアンプＩＣ５は、リードアンプ及びライトドライバを備える。リードアンプは、リードヘッドにより読み出されたリード信号を増幅して、リード／ライト（Ｒ／Ｗ）チャネル１６に伝搬する。ライトドライバは、Ｒ／Ｗチャネル１６から出力されるライトデータに応じたライト電流をライトヘッド９Ｗに伝送する。
【００１８】
メインコントローラ６は、Ｒ／Ｗチャネル１６と、ハードディスクコントローラ（ＨＤＣ）１７と、プロセッサ１８とを含み、例えば集積回路である。メインコントローラ６は、１チップで構成されてもよい。Ｒ／Ｗチャネル１６は、リードチャネル１６Ｒとライトチャネル１６Ｗとを含む。リードチャネル１６Ｒは、リードヘッド９Ｒにより読み出されたリード信号を処理してデータ（サーボ情報を含む）を復号する。ライトチャネル１６Ｗは、ＨＤＣ１７からのライトデータの信号処理を実行する。
【００１９】
ＨＤＣ１７は、ホストデバイス２１とＲ／Ｗチャネル１６との間のデータ転送を制御する。ＨＤＣ１７は、バッファメモリ１９及び揮発性メモリ１９１を制御し、リードデータ及びライトデータをバッファメモリ１９又は揮発性メモリ１９１に一時的に格納することでデータ転送制御を実行する。バッファメモリ１９及び揮発性メモリ１９１は、例えばＤＲＡＭ（Dynamic Random Access Memory）でもよい。また、ＨＤＣ１７は、不揮発性メモリ２０１の一例としてのフラッシュメモリを制御し、例えばデータを一時的に格納するキャッシュ領域として不揮発性メモリ２０１を使用してもよい。
【００２０】
プロセッサ１８は、例えば、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）であり、ドライバＩＣ７を介してＶＣＭ１１を制御し、ヘッド９の位置決め制御（サーボ制御）を実行する。さらに、プロセッサ１８は、Ｒ／Ｗチャネル１６を介してデータの記憶及び再生を制御する。プロセッサ１８は、ファームウェアにしたがって、各種の機能を実現してもよい。
【００２１】
本実施形態において、プロセッサ１８は、状態推定部１８１、オフセット検出部１８２、オフセット量推定部１８３、状態修正（補正）部１８４、サーボ制御部１８５を含む。
【００２２】
状態推定部１８１は、へッド９の位置を含む状態を推定する。
【００２３】
オフセット検出部１８２は、状態推定部１８１によって推定された状態が現実の状態（実際の状態又は現在の状態）に対してオフセットを持っていることを検出する。
【００２４】
オフセット量推定部１８３は、オフセット検出部１８２によってオフセットが検出された場合に、状態推定部１８１によって推定された状態のオフセット量を推定する。
【００２５】
状態修正部１８４は、オフセット量推定部１８３によって推定されたオフセット量に基づいて状態推定部１８１によって推定された状態を修正する。
【００２６】
サーボ制御部１８５は、上記状態修正部１８４によって修正された状態に基づいて、ヘッド９の位置検出、及び、位置決め制御などのような各種制御を実行する。
【００２７】
本実施形態で定める規則に基づく位置情報の分割及び復元のための制御は、サーボ制御部１８５、Ｒ／Ｗチャネル１６、ＨＤＣ１７のうちのいずれかで実行されてもよく、サーボ制御部１８５、Ｒ／Ｗチャネル１６、ＨＤＣ１７のうちの少なくとも２つの協働により実行されてもよい。
【００２８】
ディスク２に含まれている各シリンダ１５には、ｑ種（ｑは２以上の整数）のサーボ領域１５Ｓが、周方向に、一定の間隔で、周期的に配置されている。サーボ領域１５Ｓの間には、ユーザデータを記憶するデータ領域１５Ｄが配置されている。複数のサーボ情報は、それぞれ、ｑ種のサーボ領域SVF1〜SVFqに記憶される。サーボ情報は、位置情報を複数のブロック情報に分割し、複数のブロックを規則にしたがってサーボ領域SVF1〜SVFqに割り当てることによって生成される。位置情報は、例えば、ヘッド９の現在位置としてシリンダ位置を検出するためのシリンダ情報を含む。シリンダ情報は、例えば、シリンダ１５を識別するためのシリンダ番号を含む。なお、位置情報は、例えば、ヘッド９の現在位置として例えばトラック位置を検出するためのトラック情報を含むとしてもよい。トラック情報は、例えば、トラックを識別するためのトラック番号を含むとしてもよい。さらに、位置情報は、シリンダ１５又はトラック内のセクタ位置を検出するためのセクタ情報を含むとしてもよい。セクタ情報は、例えば、セクタを識別するためのセクタ番号を含むとしてもよい。
【００２９】
本実施形態では、位置情報がシリンダ番号の場合を代表的な例として説明するが、例えばトラック番号又はセクタ番号などの他の位置情報の場合も同様である。
【００３０】
本実施形態のように、あるシリンダ１５を識別するためのシリンダ番号を複数のブロック情報に分割し、複数のブロック情報を規則にしたがってシリンダ１５内の複数のサーボ領域SVF1〜SVFqに割り当てて記憶することにより、各サーボ領域SVF1〜SVFqのサイズを削減することができ、シリンダ１５毎のユーザデータを記憶するデータ領域１５Ｄのサイズを増加することができ、ディスク２の高記憶密度化が可能になる。
【００３１】
図２では、便宜的に、ｑ＝４とし、シリンダ１５に４種のサーボ領域SVF1〜SVF4が周期的に配置されている場合を例示しているが、ｑの値は適宜変更可能である。
【００３２】
図３は、本実施形態に係るシリンダ番号とサーボ領域SVF1〜SVFqとの関係の一例を示す概念図である。
【００３３】
シリンダ番号（位置情報）は、上位シリンダ番号（上位桁）と下位シリンダ番号（下位桁）とに分割される。上位シリンダ番号をｑ個に区切った単位と、下位シリンダ番号とを便宜的にブロック情報と呼ぶ。上位シリンダ番号をｑ個に区切ったブロック情報（上位桁情報）は、対応するｑ種のサーボ領域SVF1〜SVFqにそれぞれ割り当てられ、記憶される。下位シリンダ番号に対応するブロック情報は、ｑ種のサーボ領域SVF1〜SVFqのそれぞれに対して共通に割り当てられ、記憶される。
【００３４】
本実施形態においては、ｑ個のサーボ領域SVF1〜SVFqを読み出すことによりシリンダ番号を生成することができる。
【００３５】
（１）状態オブザーバの一例の説明
以下に、状態オブザーバの一例について説明する。
【００３６】
ディスク記憶装置１では、プロセッサ１８は、例えばファームウェアを実行し、ヘッド９をシークさせて、ディスク２上の目標シリンダに位置決めするサーボ制御を行い、目標シリンダに対してユーザデータのリード又はライトを実行する。
【００３７】
サーボ制御を実行する場合に、プロセッサ１８は、ヘッド９の現実の位置（現実のシリンダ番号）を決定するために、複数のサーボ情報を読み出して、上位シリンダ番号と下位シリンダ番号を決定する必要がある。
【００３８】
上位シリンダ番号の決定において、プロセッサ１８は、ｑ種のサーボ領域SVF1〜SVFqから分割された上位シリンダ番号に対応するｑ個のブロック情報を読み出し、上位シリンダ番号を構成する各ブロック情報を合成し、上位シリンダ番号を決定する。以下では、この決定された上位シリンダ番号を単純合成位置と表記する場合がある。
【００３９】
下位シリンダ番号の決定において、プロセッサ１８は、ｑ種のサーボ領域SVF1〜SVFqのいずれからも下位シリンダ番号に対応するブロック情報を読み出すことができ、下位シリンダ番号を決定することができる。
【００４０】
そして、プロセッサ１８は、決定した上位シリンダ番号と決定した下位シリンダ番号とから現在シリンダ番号を決定する。
【００４１】
上記のように、サーボ情報がシリンダ１５上のサーボ領域SVF1〜SVFqに記憶されており、ヘッド９を現在の位置から目標位置まである速度でシークする場合、シーク中のヘッド９の現在の位置及び現在の速度を正しく得ることができず、シーク動作が失敗する場合がある。例えば、シーク中はヘッド９が測定するシリンダ１５が変化するため、過去に読み出した上位シリンダ番号が、現在ヘッド９が位置する現実のシリンダ１５に対する上位シリンダ番号ではない場合がある。この場合、プロセッサ１８は、ヘッド９の現実の位置及び現実の速度を誤って決定する可能性がある。
【００４２】
このように、サーボ情報がシリンダ１５上のサーボ領域SVF1〜SVFqに記憶されており、ヘッド９が現在の位置から目標位置までシークする場合、シーク中のヘッド９の現実の位置及び現実の速度を正しく得るために、プロセッサ１８は、状態オブサーバを用いる。
【００４３】
状態オブザーバは、例えば現実の位置及び現実の速度を含む状態を推定（予測）する。プロセッサ１８は、状態オブザーバによって推定された推定位置及び推定速度と、各サンプルでサーボ領域から得られた位置情報とに基づいて状態オブザーバによって推定された推定位置及び推定速度を修正し、当該修正された推定位置及び修正された推定速度を用いてシーク制御を実行する。
【００４４】
図４は、状態オブザーバ２６を用いて修正された推定位置を生成するサーボシステム２２の一例を示すブロック図である。
【００４５】
サーボシステム２２は、ヘッド９をディスク２上の目標位置に位置決めするサーボ制御を実行する。サーボシステム２２は、ソフトウェアを含むプロセッサ１８の機能と、Ｒ／Ｗチャネル１６のサーボ情報の復調機能と、ドライバＩＣ７によるＶＣＭ４の駆動制御機能とを含むとしてもよい。
【００４６】
ＶＣＭ１１及びＲ／Ｗチャネル１６は、サーボ領域SVF1〜SVFqからサーボ情報を読み出す。
【００４７】
サーボシステム２２は、各サーボ領域SVF1〜SVFqから読み出されたサーボ情報と状態オブザーバ２６によって算出された推定位置ｃとに基づいて修正された推定位置ｂを算出し、修正された推定位置ｂに基づいてヘッド９のシーク動作を制御する。
【００４８】
サーボシステム２２は、例えば、シーク動作中に読み出されたサーボ情報を、例えば揮発性メモリ１９１、メインコントローラ６内の図示しないメモリ、又は、プロセッサ１８内の図示しないメモリなどに記憶する。サーボシステム２２は、ヘッド９の現実の位置と推定位置ｃとの差、現実の速度と推定速度との差である状態オフセットの発生を判断し、状態オフセットの発生が検出された場合に、揮発性メモリ１９１、メインコントローラ６内の図示しないメモリ、又は、プロセッサ１８内の図示しないメモリに記憶されているサーボ情報に基づいて状態オブザーバ２６によって算出される推定位置ｃ、推定速度を修正する。以下では、このように、状態オフセットの発生が検出された場合に修正された推定位置、修正された推定速度を、それぞれ位置オフセット修正された推定位置、速度オフセット修正された修正速度と表記する。なお、修正された推定位置は位置オフセット修正された推定位置を含むとする。修正された推定速度は速度オフセット修正された修正速度を含むとする。また、位置オフセット修正された推定位置と速度オフセット修正された修正速度とをまとめて状態オフセット修正された推定状態という。
【００４９】
サーボシステム２２は、例えば、状態オフセットの発生が検出された場合に、推定位置ｃ、各サーボ情報から得られた分割されたヘッド９の現実の位置ｆに基づいて、状態オフセットの推定値を算出してもよい。
【００５０】
サーボシステム２２は、例えば、状態オフセットの発生が検出された場合に、状態オブザーバ２６の推定（予測）変化量、各サーボ情報から得られた分割されたヘッド９の現実の位置に基づいて、状態オフセットに含まれる速度オフセットの推定値を算出し、速度オフセットの推定値を算出後に、推定位置、速度オフセットの推定値と推定速度とから算出される速度オフセット修正された推定速度、各サーボ情報から得られた分割されたヘッド９の現実の位置に基づいて、状態オフセットに含まれている位置オフセットの推定値を算出するとしてもよい。
【００５１】
サーボシステム２２は、位置誤差演算器２３と、フィードバックコントローラ（伝達関数Ｇ）２４と、推定位置生成部２５とを含む。推定位置生成部２５は、状態オブザーバ２６と位置推定修正部２７とを含む。
【００５２】
位置誤差演算器２３は、ヘッド９の目標位置ｄと、位置推定修正部２７によって生成された修正された推定位置ｂとの位置誤差ｅを算出する。位置誤差演算器２３は、ハードウェアで実現されてもよく、ソフトウェアを実行するプロセッサ１８により実現されてもよい。
【００５３】
フィードバックコントローラ２４は、例えばプロセッサ１８により実現される機能である。フィードバックコントローラ２４は、位置誤差ｅに基づいて制御値ｕをプラント２８と状態オブザーバ２６へ出力し、位置決め誤差ｅを解消するようにプラント２８を制御する。プラント２８は、ＶＣＭ１１を含むアクチュエータ１４であり、制御値ｕに基づいてヘッド９を目標位置ｄまで移動するための制御を実行する。状態オブザーバ２６は、例えば、プロセッサ１８により実現される内部モデルに相当する。状態オブザーバ２６は、フィードバックコントローラ２４からの制御値ｕと位置推定修正部２７によって修正された推定位置ｂとを入力し、ヘッド９の現実の推定位置（推定値）ｃを算出し、推定位置ｃを位置推定修正部２７に出力する。位置推定修正部２７は、プラント２８からの出力ｙが位置情報が分割されてサーボ領域に記憶されていることを表す位置情報分割部２９の出力値ｆと状態オブザーバ２６によって推定された推定位置ｃとに基づいて修正された推定位置ｂを計算する。
【００５４】
上記のように、プロセッサ１８は、状態オブザーバ２６を用いて、位置、速度などの状態を推定可能である。しかしながら、推定された状態は、誤差を含む場合があり、ヘッド９の正確な状態と相違する場合がある。サーボシステム２２は、状態オブザーバ２６によって算出されるヘッド９の推定位置ｃの上位シリンダ番号と読み出された下位シリンダ番号を合成する。さらに、サーボシステム２２は、状態オブザーバ２６の推定誤差によって生じる現実の位置の下位シリンダ番号の誤差の影響を、上位シリンダ番号に反映させた下位推定誤差修正された推定位置を計算することにより、ヘッド９の現実の位置を誤って確定することを回避する。ここで、位置オフセットがない場合は、下位推定誤差修正された推定位置は、修正された推定位置ｂとなる。以下、下位推定誤差修正された推定位置の計算方法を状態オフセットがない前提で説明する。
【００５５】
状態オブザーバ２６は数シリンダ分の推定誤差を持つ場合があるが、下位シリンダ番号は、サーボ情報の読み出しが行われるたびに取得可能である。例えば、状態オブザーバ２６の推定位置の上位シリンダ番号と読み出された下位シリンダ番号とを合成し、位置情報を生成してもよい。しかし、状態オブザーバ２６の上位シリンダ番号と読み出された下位シリンダ番号とを単純に合成すると、状態オブザーバ２６の推定誤差により状態オブザーバ２６の上位シリンダ番号と現在位置の上位シリンダ番号が異なり、この単純な合成位置はヘッド９の現実の位置と一致しない場合が想定される。そこで、例えば、プロセッサ１８は、状態オブザーバ２６で推定された下位シリンダ番号と読み出された現実の下位シリンダ番号とを比較して、状態オブザーバ２６で推定された上位シリンダ番号に±１の修正を加えた情報と読み出された現実の下位シリンダ番号とを合成した下位推定誤差修正された推定位置を算出する。
【００５６】
例えば、状態オブザーバ２６によって推定された推定位置が３１シリンダ（上位シリンダ番号が０、下位シリンダ情報が３１）で、現実の位置が３５シリンダ（上位シリンダ番号が１、下位シリンダ情報が３）の場合を想定する。この場合、単純に状態オブザーバ２６で推定された上位シリンダ番号と読み出された現実の下位シリンダ番号とを合成すると、３シリンダ（上位シリンダ番号が０、下位シリンダ番号が３）となりヘッド９の現実の位置と一致しない。この例では、それぞれの下位シリンダ番号の差２８が設計上の推定誤差より十分大きいので、推定誤差により状態オブザーバ２６の上位シリンダ番号が１小さくなっていると推定される。そこで、プロセッサ１８は、状態オブザーバ２６によって推定された推定位置の上位シリンダ番号から１を足した値と読み出された現実の下位シリンダ情報とを合成した値を下位推定誤差修正された推定位置とする。この例では、状態オブザーバ２６によって推定された推定位置の上位シリンダ番号から１を足した値は１なので、下位推定誤差修正された推定位置は３５シリンダとなり現実の位置と一致する。
【００５７】
上述したように、上位シリンダ番号が複数のサーボ領域SVF1〜SVFqに分割されている場合、状態オブザーバ２６の推定結果の修正に使う推定誤差は、得られた上位シリンダ番号の部分と下位シリンダ番号とに基づいて算出される。しかしながら、ヘッド９の単純合成位置と現実の位置とが大きくずれたときのシークの安定性等を考慮すると、推定誤差の算出に、得られた上位シリンダ番号の部分を使用しない方がよい場合がある。例えば、上位のシリンダ番号の一部しか得られず、得られた上位シリンダ番号の部分における上位の値や下位の値が不明な場合、状態オブザーバ２６によって算出された推定値の修正が不正確になる。この場合、状態オブザーバ２６によって推定された状態が大きく変化し、サーボシステム２２の動作が不安定となる可能性がある。
【００５８】
また、サーボシステム２２は、下位シリンダ番号の値だけで状態オブザーバ２６の推定値を補正しても、上位シリンダ番号の分の推定誤差は修正できない。この場合、外乱等によりヘッド９の実位置、実速度に対する状態オブザーバ２６による推定位置、推定速度に上位誤差が発生する。この上位誤差を含む推定位置、推定速度を使って推定位置生成部２５で下位推定誤差修正された推定位置を計算することで、上位誤差が状態オフセットとして残る。状態オフセットとは、下位推定誤差修正された推定位置とヘッドの現実の位置との誤差である。この結果、サーボシステム２２は、状態オフセットを補正できないままヘッド９のシーク動作を続行することになり、ヘッド９が目標位置（目標シリンダ）に到達できない可能性がある。
【００５９】
そこで、プロセッサ１８は、サーボシステム２２によりサーボ制御（シーク動作）を実行する場合に、ヘッド９の実位置に対する、推定位置生成部２５による下位推定誤差修正された推定位置の誤差である状態オフセットを修正する。
【００６０】
図５は、シーク動作を開始してから状態オフセットを検出するまでの処理の一例を示すフローチャートである。
【００６１】
プロセッサ１８は、ディスク２上のある位置から目標位置（目標シリンダ番号）までヘッド９を移動させるシーク動作を開始する（ブロック５０）。プロセッサ１８は、シーク動作中に、サーボ領域SVF1〜SVFqからサーボ情報を読み出す（ブロック５１）。この時、各サーボ領域SVF1〜SVFqのサーボ情報は、同一シリンダから読み出されず、異なるシリンダから読み出される場合がある。サーボ情報は、サーボ領域SVF1〜SVFqからリードヘッド９Ｒにより読み出され、リードチャネル１６Ｒにより復調される。プロセッサ１８は、サーボ領域SVF1〜SVFqから読み出したサーボ情報をメモリに記憶する。このメモリは、プロセッサ１８に設けられているとしてもよく、メインコントローラ６に設けられているとしてもよく、バッファメモリ１９、揮発性メモリ１９１、又は、不揮発性メモリ２０１でもよい。
【００６２】
プロセッサ１８は、読み出した現実の上位シリンダ番号に含まれるブロック情報（現実の上位値）と、下位推定誤差修正された推定位置の上位シリンダ番号のうち現実の上位値に対応するブロック情報（下位推定誤差修正された推定上位値）とを比較する（ブロック５２）。すなわち、プロセッサ１８は、読み出されたヘッド９の現実の位置に含まれる現実の上位値ＢＬｘ（Ｒ−ＢＬｘ）（ｘ＝１〜４）と、下位推定誤差修正された推定位置に含まれており現実の上位値に対応する下位推定誤差修正された推定上位値ＢＬｘ（Ｅ−ＢＬｘ）とを比較する。
【００６３】
プロセッサ１８は、現実の上位値と下位推定誤差修正された推定上位値との間で誤差が無ければ状態オフセットが発生していないと判定し、次のシリンダからのサーボ情報の読み出しを続ける（ブロック５３のＹＥＳ）。一方、プロセッサ１８は、誤差があれば状態オフセットが発生していることを検出する（ブロック５３のＮＯ及びブロック５４）。
【００６４】
図６は、シリンダ番号の構成の一例を示す図である。この図６では、説明を簡略化するために、上位シリンダ番号が４つに分割されており、シリンダ番号は下から順にビット0からビット20で表現される場合を例示しているが、シリンダ番号の分割数とシリンダ番号のビット数とは変更可能である。
【００６５】
下位シリンダ番号は、ビット0〜ビット4の値で表され、このビット0〜ビット4で表される値をブロック情報BLK0と表記する。下位シリンダ番号は、サーボ領域SVF1〜SVF4のそれぞれに記憶される。
【００６６】
上位シリンダ番号は、ビット5〜ビット8、ビット9〜ビット12、ビット13〜ビット16、ビット17〜ビット20の４つに分割される。ビット5〜ビット8で表される値をブロック情報BLK1と表記する。ブロック情報BLK1は、サーボ領域SVF4に記憶される。ビット9〜ビット12で表される値をブロック情報BLK2と表記する。ブロック情報BLK2は、サーボ領域SVF3に記憶される。ビット13〜ビット16で表される値をブロック情報BLK3と表記する。ブロック情報BLK3は、サーボ領域SVF2に記憶される。ビット17〜ビット20で表される値をブロック情報BLK4と表記する。ブロック情報BLK4は、サーボ領域SVF1に記憶される。
【００６７】
シリンダ番号がこの図６のような構成を持つ場合の上記図５のブロック５４について説明する。プロセッサ１８は、サーボ領域SVF1〜SVF4を読み出す毎に下位シリンダ番号、すなわちブロック情報BLK0を毎回取得できる。
【００６８】
シリンダ番号を分割する場合には、状態オフセットとして、３２ｎシリンダの位置オフセットと、３２ｍシリンダ／サンプルの速度オフセットが発生する。ここでｎ、ｍは０以外の整数である。状態オフセットが発生すると、サーボ情報を読んで得た現実の上位値と、推定位置生成部２５によって算出された下位推定誤差修正された推定位置の一部であり現実の上位値に対応する下位推定誤差修正された推定上位値とに差が生じる。
【００６９】
そこで、プロセッサ１８は、状態オフセットを検出するため、シーク動作中に読み出したサーボ情報から得た現実の上位値と、現実の上位値に対応する下位推定誤差修正された推定位置内の下位推定誤差修正された推定上位値とをサーボ領域ごと（サンプルごと）に比較する。サーボ領域SVF1ならば、ブロック情報BLK4(bit17〜20)がディスク２から得られる。プロセッサ１８は、得られたブロック情報BLK4と合成位置の対応するブロック情報BLK4とを比較し、ゼロでない場合は状態オフセットが生じていると判断する。
【００７０】
図７は、状態オフセットの修正処理の一例を示すフローチャートである。この図７の処理は、例えば、上記図５の処理で状態オフセットが検出された場合に実行される。この図７の説明では、シリンダ番号が上記図６のような構成を持つ場合を例として説明するが、シリンダ番号の構成は、自由に変更可能である。
【００７１】
プロセッサ１８は、状態オフセット（位置オフセットと速度オフセット）の発生後に、状態オフセットを判別するためのサーボ領域から少なくとも２回分のサーボ情報（サンプル）を読み出す。すなわち、判別対象のサーボ領域が周期的に配置されており、プロセッサ１８は、この周期的に配置されている判断対象のサーボ領域の２カ所以上から、２以上のサーボ情報を読み出す。プロセッサ１８は、２以上のサーボ領域から得られた上位シリンダ番号、下位推定誤差修正された推定位置及び下位推定誤差修正された推定位置の変化量をメモリに記憶する（ブロック６０）。
【００７２】
ここで、判断対象のサーボ領域とは、下位推定誤差修正された推定位置に含まれる下位推定誤差修正された推定上位値とサーボ情報から読み出された現実の上位値との誤差に基づいて、位置オフセットと速度オフセットを区別できるサーボ領域である。具体的には、図６に示すように、判断対象のサーボ領域は、例えば上位シリンダ番号に含まれるブロック情報BLK1を読み出すことができるサーボ領域SVF4である。例えば、ある時点での下位推定誤差修正された推定上位値とサーボ領域から読み出した現実の上位値との誤差をdiff0とし、その４サンプル前（周期的に配置されているサーボ領域SVF1〜SVF4の１周期前）の誤差をdiff4と表記する。すなわち、プロセッサ１８は、判断対象のサーボ領域SVF4の下位推定誤差修正された推定上位値と現実の上位値との現在の誤差diff0及びその４サンプル前（１周期前）の誤差diff4とに基づいて、誤差diff0と誤差diff4の差がゼロならば位置オフセット発生を判断し、ゼロでなければ速度オフセットの発生を判断する（ブロック６１）。
【００７３】
速度オフセットが発生している場合、プロセッサ１８は、速度オフセットの発生後に、特定サーボ領域を２回読むまで待つ。ここで、判断対象のサーボ領域が２回読まれた時点で特定サーボ領域が既に２回読まれている場合は、判断対象のサーボ領域で以下の処理を行う。この処理を行うサーボ領域を処理サーボ領域とする。
【００７４】
ここで、特定サーボ領域とは、発生した可能性のある速度オフセットに基づいて当該速度オフセットを確定するのに評価する必要がある上位シリンダ番号に含まれるブロック情報を読むためのサーボ領域である。具体的には、特定サーボ領域は、例えば、図６に示すように、上位シリンダ番号に含まれているブロック情報BLK2を読み出すことができるサーボ領域SVF3である。例えば、３２シリンダ／サンプルの速度オフセットが発生している場合、ブロック情報BLK1の値は４サンプルで４増加するが、これは−１２減少と区別ができない。つまり、ブロック情報BLK1のみの比較では３２シリンダ／サンプルの速度オフセットと−９６シリンダ／サンプルの速度オフセットの区別がつかない。区別可能とするためには、ブロック情報BLK2を評価する必要があるため、特定サーボ領域としてサーボ領域SVF3が決まる。
【００７５】
プロセッサ１８は、下位推定誤差修正された推定位置の変化量を速度オフセット量による変化分で修正した下位推定誤差修正された推定位置の修正変化量を、可能性のある全ての速度オフセットについて計算する。プロセッサ１８は、上位シリンダ番号のうちの下位側に位置するブロック情報から順に処理サーボ領域で得られるブロック情報まで、各ブロック情報を読み出して得られるシリンダ番号と下位推定誤差修正された推定位置の修正変化量とから現実の上位シリンダ番号に含まれるブロック情報を推定する。さらに、プロセッサ１８は、この推定された現実の位置と下位推定誤差修正された推定位置の修正変化量から１サンプル前の位置を推定する（ブロック６２）。すなわち、プロセッサ１８は、２回目に特定サーボ領域SVF3から上位シリンダ番号に含まれるブロック情報BLK2を読み出した際の位置を推定する。
【００７６】
次に、プロセッサ１８は、上記の２回目に特定サーボ領域を読み出した際の推定位置及び推定位置の修正変化量に基づいて、１回目に特定サーボ領域SVF3から読み出した際の位置を推定し、推定位置と対応する現実の位置とを比較し、この比較結果が等しくなった速度オフセット量を真の速度オフセット推定値として決定する（ブロック６３）。
【００７７】
プロセッサ１８は、位置オフセット量を、真の速度オフセット推定値を使用して推定した位置（現在の位置）と推定位置生成部２５によって算出される下位推定誤差修正された推定位置に基づいて算出する。プロセッサ１８は、特定サーボ領域で得られるブロック情報から最上位のブロック情報まで順に各ブロック情報のサーボ領域から読み出された値と、それより下位の推定されたシリンダ番号と、各ブロックのサーボ領域が読み出されたときから現在までの下位推定誤差修正された推定位置の修正変化量とに基づいて、位置（現在の位置）を推定する（ブロック６４）。プロセッサ１８は、推定した位置と推定位置生成部２５によって算出された下位推定誤差修正された推定位置とに基づいて位置オフセット値を決定する（ブロック６５）。そして、プロセッサ１８は、状態オブザーバ２６の状態（推定位置）に対して、決定した位置オフセット値と速度オフセット推定値とを反映（加算）することにより、推定位置生成部２５によって算出された下位推定誤差修正された推定位置の誤差である状態オフセットを修正する（ブロック６６）。
【００７８】
ただし、位置オフセットの修正については、シークの途中にヘッド９の位置が大幅に変更されると、状態オブザーバ２６の状態やＶＣＭ１１の電流が振動的になりシーク音が大きくなるなどの問題が生じる可能性がある。このため、まずは速度オフセットのみを修正して状態オブザーバ２６の推定位置を目標値まで変化させて、そこから再度目標値までシークを開始させる方法もある。このように、位置オフセットを修正しない場合でも、状態オブザーバ２６による将来状態の推定には位置オフセットの推定値を考慮する必要がある。
【００７９】
また、ディスク２上のゾーンに応じてサーボ情報の記憶周波数を変化させるディスクドライブでは、記憶周波数の切り替えに応じて状態オブザーバ２６によって得られる状態に基づいて早めにＲ／Ｗチャネル１６での切り替えを行なう必要がある。なお、以上の処理を特定サーボ領域で考えられる全ての速度オフセットについて行うとしてもよい。
【００８０】
上述のように、シリンダ番号が分割され、複数のサーボ領域SVF1〜SVFqに記憶される場合には、シーク中の現実の位置又は現実の速度を正しく取得するために、状態オブザーバ２６が用いられる。サーボシステム２２は、状態オブザーバ２６によって得られた推定位置と読み出されたサーボ情報とに基づいて修正された推定位置を生成する。この場合、例えば外部からの振動のような外乱等の要因により、合成位置と現実の位置との誤差、状態オブザーバ２６の推定速度と現実の速度との誤差である状態オフセットが発生する可能性がある。このような状態オフセットが発生している状態では、シーク制御の精度が低下し、ヘッド９が目標位置に到達できない可能性がある。状態オブザーバ２６の推定誤差は、状態オブザーバ２６へフィードバックすることにより状態を修正することが可能である。しかしながら、下位シリンダ番号のみを用いて状態オブザーバ２６が位置、速度を推定する場合には、上位シリンダ番号に発生した状態オフセットを修正することができないため、状態オフセットを推定する機能と、推定された状態オフセットを用いて推定値を修正する機能が必要となる。この修正機能は、例えば、得られたサーボ情報と状態オブザーバ２６の推定した情報を過去の情報を含めて比較することで状態オフセットを検出、修正する。
【００８１】
（２）状態オフセットと分割数との関係の説明
以下で、状態オフセットと分割数との関係について説明する。
【００８２】
上述のように、状態オフセットが発生した場合であっても、状態オブザーバ２６の推定位置及び推定速度を修正することにより、シーク制御の精度を向上させることができる。そして、状態オフセットの推定値を修正可能な範囲は、シリンダ番号などの位置情報がどのように分割されるかに依存する。
【００８３】
そこで、以下においては、状態オブザーバ２６によって生成された推定位置及び推定速度の修正を効果的に行うためのシリンダ番号の分割について説明する。
【００８４】
図８は、本実施形態に係るサーボシステム３０の一例を示すブロック図である。
【００８５】
サーボシステム３０は、例えば、メインコントローラ６とアクチュエータ１４とによって実現される。メインコントローラ６は、第１の誤差演算器２３、フィードバックコントローラ２４、状態オブザーバ２６、位置推定修正部２７、第２の誤差演算器３６、オフセット修正部３８を含む。状態オブザーバ２６は、プラントモデル部３３ｍとオブザーバゲイン部３７とを含む。第１の誤差演算器２３、フィードバックコントローラ２４、状態オブザーバ２６、位置推定修正部２７、第２の誤差演算器３６、オフセット修正部３８は、例えば、プロセッサ１８がファームウェアを実行することで実現してもよく、ハードウェアにより実装されてもよい。
【００８６】
第１の誤差演算器２３は、ヘッド９の目標位置ｄと、位置推定修正部２７によって推定された推定位置ｂとの位置誤差ｅを算出する。
【００８７】
フィードバックコントローラ２４は、例えばプロセッサ１８によって実行されるファームウェアで実現される制御機能である。
【００８８】
プラント２８は、ＶＣＭ１１を含むアクチュエータ１４であり、フィードバックコントローラ２４による制御にしたがってシーク動作を行う。
【００８９】
プラントモデル部３３ｍは、プラント３３の動作を推定する。このプラントモデル部３３ｍとオブザーバゲイン部３７は、状態オブザーバ２６に対応する。プラントモデル部３３ｍは、例えば、オフセット修正部３８からのオフセット修正値、コントローラ３２からの制御値ｕ、オブザーバゲイン部３７からのゲイン値（推定位置と現実の位置との誤差を調整した値）に基づいて、推定状態を算出する。
【００９０】
位置情報分割部２９は、位置情報の分割を表す。この位置情報分割部２９は、以下で説明する本実施形態に係る分割規則自体を表す。
【００９１】
より具体的には、位置情報分割部２９は、上位シリンダ番号に含まれるブロック情報BLK1〜BLKq（以下、上位ブロック情報という）の１ブロックで取り得る値の数と分割数ｑとが互いに素となるように、位置情報、より具体的には上位シリンダ番号を、分割する。この条件を満たす分割数ｑの一例としては、奇数がある。
【００９２】
位置情報に含まれる第１のブロック情報における下位側桁（下位部分）と、この第１の上位ブロック情報より１つ下位側の第２の上位ブロック情報における上位側桁（上位部分）とが重複する場合、上位ブロック情報の１ブロックで取り得る値の数と分割数との最大公約数が、基数の重複桁数乗以下となるように、上位ブロック情報は分割されていてもよい。
【００９３】
第１の上位ブロック情報における下位側ビットと、この第１の上位ブロック情報より１つ下位側の第２の上位ブロック情報における上位側ビットとが重複する場合、分割数と２の上位ブロック情報のビット数乗との最大公約数が２の重複するビット数以下となるように、上位ブロック情報は分割されていてもよい。
【００９４】
位置情報分割部２９で示すように分割されている位置情報を読み出す機能は、Ｒ／Ｗチャネル１６に含まれていてもよく、ＨＤＣ１７に含まれていてもよく、プロセッサ１８に含まれていてもよい。位置情報分割部２９で示すように分割されている位置情報を読み出す機能は、メインコントローラ６に含まれていてもよく、メインコントローラ６外に備えられていてもよい。
【００９５】
位置推定修正部２７は、分割された位置情報と状態オブザーバ２６に含まれるプラントモデル部３３ｍによって得られた推定位置とに基づいて現実の位置を推定（合成）する。
【００９６】
第２の誤差演算器３６は、プラントモデル部３３ｍによって得られた推定位置と、位置推定修正部２７によって推定された現実の位置との誤差を算出する。
【００９７】
オブザーバゲイン部３７は、第２の誤差演算器３６によって算出された誤差を、例えば増幅するなど、調整する。
【００９８】
オフセット修正部３８は、位置情報分割部２９で示すように分割されている位置情報と、位置推定修正部３５によって推定された現実の位置とのオフセットを検出し、オフセットの推定を行い、オフセットの修正を行い、オフセット修正値を求める。このオフセット修正値は、プラントモデル部３３ｍでの処理に用いられる。
【００９９】
上記図８のような構成を用いる場合、修正できる速度オフセットの幅は、位置情報の分割数などの影響を受ける。
【０１００】
本実施形態では、状態オフセットを修正するオフセット修正部３８を、状態オブザーバ２６と別に備え、オフセット修正部３８を用いて状態オフセットを修正する場合において、位置情報を速度オフセットの修正に適した数に分割する。
【０１０１】
本実施形態においては、位置情報がバイナリ形式である場合を例として説明する。しかしながら、位置情報の基数は自由に変更可能であり、位置情報はバイナリ形式に限定されない。
【０１０２】
図９は、本実施形態に係る位置情報の分割の一例を示す概念図である。
【０１０３】
位置情報は、ｂposビットから構成される。位置情報は、複数のブロック情報に分割される。この図９の分割数はｑ＋１である。複数のブロック情報は、下位から順に、BLK0、…、BLKqと表記される。下位シリンダ番号は、BLK0に対応する。上位シリンダ番号は、BLK1〜BLKqに対応する。図９において、ブロック情報BLK0，BLK1〜BLKqに含まれるビットの数は、それぞれ、ｂl，ｂh1〜ｂhqとする。
【０１０４】
下位シリンダ番号を構成するブロック情報BLK0は、サーボ領域SVF1〜SVFqのすべてに含まれる。したがって、メインコントローラ６は、サーボ領域SVF1〜SVFqのいずれかからデータを読み出すごとに、ブロック情報BLK0を取得することができる。
【０１０５】
上位シリンダ番号を構成するブロック情報BLK1〜BLKqのそれぞれは、このブロック情報BLK1〜BLKqに対応するサーボ領域SVF1〜SVFqに含まれる。
【０１０６】
以下においては説明を簡略化するために、上位シリンダ番号を構成するブロック情報BLK1〜BLKqのビット数ｂh1〜ｂhq は、すべてビット数ｂhであるとして説明する。しかしながら、上位シリンダ番号のビット数ｂh1〜ｂhqは、自由に変更可能である。ブロック情報BLK1〜BLKqのそれぞれの最下位ビットを、ｂi：＝ｂl＋（ｉ−１）ｂhとする。
【０１０７】
速度オフセット
【数１】
2018156703.tif 000003
【０１０８】
が発生し、Ｚは整数とする。ここで、便宜的に速度オフセット未発生（ｎ＝０）も速度オフセットに含むものとする。速度オフセットが発生すると状態オブザーバ２６によって推定された推定位置情報に含まれる上位シリンダ番号と現実の位置情報に含まれる上位シリンダ番号とは時間とともに乖離が大きくなる。
【０１０９】
そこで、速度オフセットの検出と修正を実行するために、まず状態オブザーバ２６の推定位置に含まれるブロック情報BLK1と現実の位置情報に含まれるブロック情報BLK1との差を計算し、この差とｑサンプル前に同様に計算した差との時間変化を検討する。
【０１１０】
ここで、ブロック情報BLK1を例に用いて本実施形態において用いられる差の時間変化について説明する。例えば、ｋサンプル目の推定位置情報に含まれるブロック情報BLK1と、現実の位置情報（例えば復調位置、又は、実測位置を示す）に含まれブロック情報BLK1との差を、第１の差とする。ｋ−ｑサンプル目の推定位置情報に含まれブロック情報BLK1と現実の位置情報に含まれブロック情報BLK1との差を、第２の差とする。差の時間変化とは、第１の差から第２の差を引いた値である。
【０１１１】
この差の時間変化の値はｑｎとなるはずだが、ブロック情報BLK1はｂhビットであり、ブロック情報BLK1で表される値の数は
【数２】
2018156703.tif 000004
【０１１２】
となる。したがって、実際には、差の時間変化としては、ｑｎを
【数３】
2018156703.tif 000005
【０１１３】
で割った余りの値しか、取得できない。ブロック情報BLK1の比較によりできる限り広い幅の速度オフセットを検出するには、
【数４】
2018156703.tif 000006
【０１１４】
つまり分割数を奇数にすればよい。
【０１１５】
ここで、
【数５】
2018156703.tif 000007
【０１１６】
すると、
【数６】
2018156703.tif 000008
【０１１７】
となるが、
【数７】
2018156703.tif 000009
【０１１８】
のとき、
【数８】
2018156703.tif 000010
【０１１９】
となり、差の時間変化は、
【数９】
2018156703.tif 000011
【０１２０】
の判別が可能になる。
【数１０】
2018156703.tif 000012
【０１２１】
のときは、
【数１１】
2018156703.tif 000013
【０１２２】
【数１２】
2018156703.tif 000014
【０１２３】
と表すことができ、
【数１３】
2018156703.tif 000015
【０１２４】
【数１４】
2018156703.tif 000016
【０１２５】
となり、差の時間変化は、δ個しか判別できない。
【０１２６】
図１０と図１１とを用いて判別できる範囲の例を説明する。
【０１２７】
図１０は、比較例としての速度オフセットの検出例を示す概念図である。この図１０では、０ビットから２０ビットまでの位置情報を５つのブロック情報に分割した場合を例示している。例えばｋサンプル目に得られた推定位置情報に含まれるブロック情報BLK1から現実の位置情報に含まれるブロック情報BLK1を引いて第１の差を求め、ｋ−４サンプル目に得られた推定位置情報に含まれるブロック情報BLK1から現実の位置情報に含まれるブロック情報BLK1を引いて第２の差を求め、第１の差から第２の差を引いて差の時間変化を求める。
【０１２８】
この図１０の例に示すように、ｑ＝４、ｂh＝４とした場合、ｎ＝０，１，２，３としたときの差の時間変化は０，４，８，１２となり区別できるが、ｎ＝４，５，６，７としたときの差の時間変化も０，４，８，１２となる。この場合、ｎ＝０，１，２，３とｎ＝４，５，６，７との区別がつかない。
【０１２９】
これに対して、図１１は、本実施形態の速度オフセットの検出例を示す概念図である。この図１１では、０ビットから１６ビットまでの位置情報を４つのブロック情報に分割した場合を例示している。この図１１の例に示すように、ｑ＝３、ｂh＝４とした場合は、ｎ＝０，１，２，３，４，５，６，７，８，９，１０，１１，１２，１３，１４，１５としたときの差の時間変化は３，６，９，１２，１５，２，５，８，１１，１４，１，４，７，１０，１３となり、上記図１０のｑ＝４の場合よりも広範囲で区別可能である。
【０１３０】
ブロック情報BLK1の比較まででは、
【数１５】
2018156703.tif 000017
【０１３１】
を法としてｎと合同となる速度オフセットの区別はつかない。
【０１３２】
そこで、次に、ブロック情報BLK1の一つ上位であるブロック情報BLK2の比較を行う。
【０１３３】
まず、上記図１０のように、位置情報に含まれるある部分のデータが複数のブロック情報に重複して含まれない場合（オーバーラップなし）を説明する。
【０１３４】
この場合、ブロック情報BLK2がｋサンプル目に得られたとし、ｘ［ｋ］を位置情報とし、
【数１６】
2018156703.tif 000018
【０１３５】
【数１７】
2018156703.tif 000019
【０１３６】
とする。
【０１３７】
このとき、得られた現実のブロック情報BLK2及びブロック情報BLK0と、推定されたブロック情報BLK1とに基づいて、速度オフセットｌを仮定してｑサンプル前のブロック情報BLK2の値を推定すると、以下の式（１）をｂhで割った余りとなる。ここで
【数１８】
2018156703.tif 000020
【０１３８】
は床関数である。
【数１９】
2018156703.tif 000021
【０１３９】
ｋ−ｑサンプル目の得られた現実のブロック情報BLK2は、以下の式（２）をｂhで割った余りとなる。
【数２０】
2018156703.tif 000022
【０１４０】
【数２１】
2018156703.tif 000023
【０１４１】
と設定したとき、式（１）と式（２）の差は−ｑｍとなり、
【数２２】
2018156703.tif 000024
【０１４２】
から発生している速度オフセットが
【数２３】
2018156703.tif 000025
【０１４３】
の幅である場合（負の速度オフセットが発生する場合は半分）、ｍが一意に決まるためｎを求めることができる。
【０１４４】
一方、
【数２４】
2018156703.tif 000026
【０１４５】
の場合、式(１)の第２項と第３項のｇがかかった項が床関数の外に出ず、床関数の性質
【数２５】
2018156703.tif 000027
【０１４６】
より、
【数２６】
2018156703.tif 000028
【０１４７】
と
【数２７】
2018156703.tif 000029
【０１４８】
とが区別できなくなる場合があるため、検出及び修正可能な速度オフセットの幅が、ブロック情報BLK1で検出が可能なｇまでとなり、狭くなる。
【０１４９】
次に、図１２に示すように、位置情報に含まれるある部分のデータが複数のブロック情報に重複している場合（オーバーラップあり）を説明する。
【０１５０】
上位シリンダ番号に含まれるブロック情報BLKiとブロック情報BLK（i-1）、
【数２８】
2018156703.tif 000030
【０１５１】
のオーバーラップするビット数をｂoi(ただしｂo1＝０)とする。ここで、Ｎは整数である。ブロック情報BLK1まではオーバーラップの有無で差はないのでブロック情報BLK2を考える。
【０１５２】
得られた現実のブロック情報BLK2及びブロック情報BLK0と、推定されたブロック情報BLK1とに基づいて、速度オフセットなしを仮定してｑサンプル前のブロック情報BLK2の値を推定すると、式（３）をｂhで割った余りとなる。
【数２９】
2018156703.tif 000031
【０１５３】
よって、
【数３０】
2018156703.tif 000032
【０１５４】
と設定したとき、式（３）と式（２）との差は
【数３１】
2018156703.tif 000033
【０１５５】
となり、
【数３２】
2018156703.tif 000034
【０１５６】
となるので、発生している速度オフセットが
【数３３】
2018156703.tif 000035
【０１５７】
の幅である場合(負の速度オフセットが発生する場合は半分)、ｍが一意に決まるためｎを求めることができる。一方、
【数３４】
2018156703.tif 000036
【０１５８】
すなわち、
【数３５】
2018156703.tif 000037
【０１５９】
とすることを考える。この場合、
【数３６】
2018156703.tif 000038
【０１６０】
としたときと比例して、ブロック情報BLK1で判別できる速度オフセットの幅が狭まり、ブロック情報BLK2で判別できる速度オフセットの幅が広がり、
【数３７】
2018156703.tif 000039
【０１６１】
としたときと同様に、
【数３８】
2018156703.tif 000040
【０１６２】
まで対応可能である。
【数３９】
2018156703.tif 000041
【０１６３】
と設定した場合には、修正可能な速度オフセットの幅は、オーバーラップなし時と同様に、ブロック情報BLK1で検出が可能なｇまでと狭くなる。
【０１６４】
以上説明した本実施形態において、ディスク記憶装置１は、ディスク２の位置を示す位置情報を複数のブロック情報BLK0〜BLKqに分割し、複数のブロック情報BLK0〜BLKqをディスク２のサーボ領域SVF1〜SVFqに割り当てて記憶する。ディスク記憶装置１は、複数のブロック情報BLK0〜BLKqのうち位置情報の上位部に相当する上位ブロック情報BLK1〜BLKqを、分割数ｑに相当する周期でサーボ領域SVF1〜SVFqに割り当てる。すなわち、ディスク記憶装置１は、位置情報における上位部の桁（例えばビット）の情報を、分割数周期でしか取得できない。また、ディスク記憶装置１は、位置情報の下位部に相当する下位ブロック情報BLK0を、すべてのサーボ領域SVF1〜SVFqに割り当てる。ディスク２に記憶された上位ブロック情報BLK1〜BLKq及び下位ブロック情報BLK0は、ヘッド９によって測定される。
【０１６５】
メインコントローラ６のプロセッサ１８は、ヘッド９の位置を含む状態を推定する状態推定部１８１と、状態推定部１８１によって推定された状態が現実の状態に対してオフセットを持っていることを検出するオフセット検出部１８２と、オフセット検出部１８２によってオフセットが検出された場合に、状態推定部１８１によって推定された状態のオフセット量を推定するオフセット量推定部１８３と、オフセット量推定部１８３によって推定されたオフセット量に基づいて状態推定部１８１によって推定された状態を修正する。
【０１６６】
本実施形態において、上位ブロック情報BLK1〜BLKqの１ブロックで取り得る値の数と分割数ｑとが互いに素となるように、位置情報を分割する。この条件を満たす分割数ｑの一例としては、奇数がある。
【０１６７】
位置情報は、第１の上位ブロック情報における下位側桁と、この第１の上位ブロック情報より１つ下位側の第２の上位ブロック情報における上位側桁とが重複する場合、上位ブロック情報の１ブロックで取り得る値の数と分割数との最大公約数が、基数の重複桁数乗以下となるように、位置情報を分割してもよい。
【０１６８】
また、位置情報は、第１の上位ブロック情報における下位側ビットと、この第１の上位ブロック情報より１つ下位側の第２の上位ブロック情報における上位側ビットとが重複する場合、分割数と２の上位ブロック情報のビット数乗との最大公約数が２の重複するビット数以下となるように分割してもよい。
【０１６９】
以上説明した本実施形態においては、状態推定部１８１によって推定された位置情報を効果的に修正することができ、位置情報を分割してサーボ領域SVF1〜SVFqに記憶することによって制御性能が低下することを抑制することができる。
【０１７０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１７１】
１…ディスク記憶装置、２…ディスク、４…ＨＤＡ、５…ヘッドアンプ集積回路、６…メインコントローラ、７…ドライバＩＣ、８…ＳＰＭ、９…ヘッド、１０…アーム、１１…ＶＣＭ、１４…アクチュエータ、１５…シリンダ、１５Ｓ…サーボ領域、１５Ｄ…データ領域、１６…Ｒ／Ｗチャネル、１７…ＨＤＣ、１８…プロセッサ、１８１…状態推定部、１８２…オフセット検出部、１８３…オフセット量推定部、１８４…状態修正部、１８５…サーボ制御部、２２，３０…サーボシステム、２３…位置誤差演算器、２４…フィードバックコントローラ、２５…推定位置生成部２５、２６…状態オブザーバ、２７…位置推定修正部、２８…プラント、２９…位置情報分割部、３３ｍ…プラントモデル部、３６…第２の誤差演算器、３７…オブザーバゲイン部、３８…オフセット修正部。
【図１】
2018156703.tif 000042
【図２】
2018156703.tif 000043
【図３】
2018156703.tif 000044
【図４】
2018156703.tif 000045
【図５】
2018156703.tif 000046
【図６】
2018156703.tif 000047
【図７】
2018156703.tif 000048
【図８】
2018156703.tif 000049
【図９】
2018156703.tif 000050
【図１０】
2018156703.tif 000051
【図１１】
2018156703.tif 000052
【図１２】
2018156703.tif 000053