[実施の形態1]
外部機器101は、例えばユーザの腕や足に装着し、加速度を検出する装置である。外部機器101のハードウエアは、従来技術による。外部機器101は、例えば簡易時計(クロックカウンタ)、プロセッサ、メモリ及びセンサ等を有する。
図1に、外部機器101におけるシーケンス例を示す。外部機器101は、計測部103、付加部105、ローカル時計107及び送信部109を有する。この例では、ローカル時計107は、安価な基準発振器を使用するために必ずしも精度が高くないものと想定する。例えば水晶発振器の周波数偏差による時刻の進み/遅れが生じ、このような発振器の周波数偏差は、温度や内部電圧の影響を受けて変動する。また、時刻の進み/遅れが累積された時刻誤差や、機器起動時に時刻合わせを行う機能を持たないことによる時刻誤差が生じる。
計測部103が、例えば加速度センサを用いて計測を行う(S121)。付加部105は、計測データを得ると、ローカル時計107から第1時刻(パラメータtlで表す。)を取得する。そして、付加部105は、計測データにタイムスタンプ(第1時刻)を付加する(S123)。上述したように、第1時刻はローカル誤差を含んでいるので、正しい計測時刻を指しているとは限らない。
送信部109は、タイムスタンプ付き計測メッセージをデータ収集装置201へ送信する(S125)。この例では、近距離無線手段を用いてメッセージを送信するものとする。この例で、通信に伴う固定遅延(通信環境や機器の動作状態が理想的であっても生じる最小の遅延)は無視でき、或いは一律に補正できるものとする。また、通信に伴う変動遅延は、後記滞留遅延に含めて扱うことが出来る。
図2に、データ収集装置201におけるシーケンス例を示す。データ収集装置201は、例えばノード型パソコンのようなコンピュータである。データ収集装置201は、スマートフォンなどの携帯型の装置であってもよい。データ収集装置201は、オペレーティングシステム203、アプリケーションプログラム205、受信部207、バッファ209及びシステム時計211を有している。システム時計211は精度が高く、システム時計211が示す第2時刻(パラメータtsで表す。)は絶対時刻と一致するものと想定する。但し、複数の外部機器101のデータを1つのデータ収集装置201で収集し、これらのデータ間の時刻同期のみを目的とする場合は、システム時計211の精度は低くても構わない。
オペレーティングシステム203は、アプリケーションプログラム205に対するCPUリソースの割り当てを解除している(S221)。この状態で受信部207がタイムスタンプ付き計測メッセージを受信すると(S223)、タイムスタンプ付き計測メッセージはバッファ209に格納される。
アプリケーションプログラム205は、CPUリソースが割り当てられていないので、タイムスタンプ付き計測メッセージを読み取れない。その後、オペレーティングシステム203がアプリケーションプログラム205へCPUリソースを割り当てると(S225)、アプリケーションプログラム205は、バッファ209からタイムスタンプ付き計測メッセージを読み取る。アプリケーションプログラム205は、更にシステム時計211から第2時刻を取得して、タイムスタンプ付き計測メッセージに第2時刻を対応付ける(S227)。タイムスタンプ付き計測メッセージがバッファ209に格納されてから、アプリケーションプログラム205によって読み取られ、第2時刻と対応付けられるまでの時間は、滞留遅延に相当する。
滞留遅延について補足する。図3に、タイムスタンプ付き計測メッセージの読み取りに係るタイムチャートを示す。CPUリソースの割り当て(S301)から当該割り当ての解除(S303)までの間にバッファ209に格納されたタイムスタンプ付き計測メッセージは、アプリケーションプログラム205によって即時読み取られる。よって、CPUリソース割当て機会と、タイムスタンプ付き計測メッセージの受信機会が充分に有れば、双方に相関は無いので滞留遅延が充分に小さい機会が得られる。一方、CPUリソースが割り当てられていない状態でバッファ209に格納されたタイムスタンプ付き計測メッセージは、滞留する。そして、アプリケーションプログラム205にCPUリソースが割り当てられた時点で(S305)、一斉に読み取られる。このように、滞留遅延は一律ではない。
本実施の形態では、期間を設定して処理を行う。図4に、期間の例を示す。各期間において少なくとも一度はタイムスタンプ付き計測メッセージを受信した直後にCPUリソースが割り当てられ、かつ外部機器101の温度や内部電圧の変動がその期間内では微小とみなせるように、期間の長さ(パラメータTで表す。)を定める。尚、以降の説明で処理対象となっている期間を現期間といい、記号Cjで表す。また、現期間の直前の期間を前期間といい、記号Cj-1で表す。
図5に、各時刻の関係を示す。左側から順に、第1時刻、推定時刻(パラメータteで表す。)、真の計測時刻(パラメータtで表す。)及び第2時刻を示す。下に向かって時間が経過するものとする。真の計測時刻は、第1時刻に含まれるローカル誤差を解消してデータ収集装置201の基準で改めた時刻である。推定時刻は、アプリケーションプログラム205が第1時刻と第2時刻とに基づいて、真の計測時刻を推定した時刻である。そして、推定時刻と真の計測時刻との差を、推定誤差という。当初の推定時刻は、必ずしも真の計測時刻に近くない。
本実施の形態では、推定時刻を算出するステップを繰り返す過程で、推定誤差が0に近づくようにする。当該ステップにおいて、推定時刻と第2時刻との時刻差(パラメータdtで表す。)を算出する。
図6に、滞留遅延が無い場合の例を示す。滞留遅延が無い場合には、時刻差は、推定誤差に相当する。また、このときの時刻差は、当該期間(この例では、説明の便宜のため前期間Cj-1とする。)において算出される時刻差のうち、最小値を示す。従って、期間内における最小の時刻差(パラメータdtminで表す。)を特定すれば、その瞬間の推定誤差を求めたことになる。
図5及び図6に示した前期間Cj-1から現期間Cjに移ったものとして、図7を用いてずれ時間の補正について説明する。現期間Cjに移った時点で前期間Cj-1の最小の時刻差が特定される。ここで、前期間Cj-1と現期間Cjにおいて、ローカル時計の周波数偏差が0である(またはシステム時計の周波数偏差と等しい)と仮定すると、特定された最小の時刻差は現期間Cjにおけるずれ時間とも等しいため、前期間Cj-1の最小の時刻差を現期間Cjで用いられるずれ時間(パラメータtgjで表す。)に定められる。そして、現期間Cjにおいて推定時刻を算出する場合に、当該ずれ時間を解消するための補正を行う。このようにすれば、前記仮定の下であれば、推定誤差はほぼ0となる。尚、実際にはローカル時計の周波数偏差は0ではないが、後記ローカル誤差の変化率の補正と本過程を繰り返すことで、前記仮定が成り立っていると見做せるようになる。また、図7に示したずれ時間tgjは、負の値であるものとする。
前期間Cj-1において特定された誤差は以上のように解消される。一方、ローカル時計の周波数偏差により、ローカル誤差は、時間経過に従い一定の割合で増加或いは減少することがある。本実施の形態では、このような誤差の変化分についても補正を行う。尚、ローカル時計の周波数偏差、即ちこの誤差の変化分の変化率は外部機器101の温度や内部電圧により変動するが、この変動は緩慢であり、期間の長さTをこの変動率に対し充分に短く定めている為、この過程では影響が微小となる。図8に示すように、i回目の推定時刻は、現期間Cjにおける1回目の推定時刻(パラメータte1で表す。)に現期間Cjにおけるi回目の推定経過時間(パラメータdteiで表す。)を加えることによって求められる。
i回目の推定経過時間は、現期間Cjにおけるi回目の第1時刻と1回目の第1時刻との第1時刻差(パラメータdtlで表す。)を、補正比(1+df)で除することによって求められる。1/(1+df)は、ローカル誤差の変化率であり、dfはローカル時計の周波数偏差である。
図9に、データ収集装置201における動作のステップを示す。第1期間の初期設定ステップでは、暫定的にずれ時間(tg1)及び周波数偏差(df1)を設定する。この例で、第1期間のn1回の時刻推定においてずれ時間(tg1)及び周波数偏差(df1)が用いられる。
第2期間の更新ステップでは、第1期間における算出結果を反映して、ずれ時間(tg2)及び周波数偏差(df2)が更新される。この例で、第2期間のn2回の時刻推定においてずれ時間(tg2)及び周波数偏差(df2)が用いられる。尚、暫定的に設定する第1期間で用いるずれ時間(tg1)及び周波数偏差(df1)の誤差が大きいと見込まれる場合は、第2期間で用いる周波数偏差は第1期間で用いたdf1をそのまま用い、周波数偏差の更新は第3期間から行うようにしても良い。
そして、第3期間以降も、第2期間の場合と同様のステップで動作する。尚、時刻推定の第1ステップと、時刻推定の第2ステップ以降とは処理の内容が、一部異なる。
続いて、各ステップの概要について説明する。便宜上、まず図10を用いて時刻推定の第2ステップ以降の概要を示す。図8を用いて説明したように、i回目の推定経過時間dtei=(i回目の第1時刻tli−1回目の第1時刻tl1)/(1+周波数偏差dfj)の式に従って、i回目の推定経過時間dteiが求められる。
そして、i回目の推定時刻tei=1回目の推定時刻te1+i回目の推定経過時間dtei−ずれ時間tgjの式に従って、i回目の推定時刻teiが求められる。
更に、i回目の推定時刻teiからi回目の第2時刻tsiを引いて、i回目の時刻差dtiを求める。i回目の時刻差dtiは、i−1回目における最小の時刻差の候補と比較され、小さい方の時刻差が最小の時刻差の候補として保持される。つまり、i回目までの時刻差dtのうち、最小の時刻差が保持される。
図11に、更新ステップの概要を示す。破線より上は、前期間Cj-1における算出結果を示している。破線より下は、現期間Cjにおける算出結果を示している。
まず、前期間Cj-1の各ステップ毎に判定され、保持された最小の時刻差の候補を、更新ステップ時に最小の時刻差dtminとして確定する。これは、前期間Cj-1で求めた時刻差dt1〜dtnのうちの最小の時刻差と等しい。そして、当該最小の時刻差dtminを現期間Cjで用いられるずれ時間tgjに設定する。
また、以下の式(1)に従って現期間Cjにおける周波数偏差dfjが求められる。
dfj-1は前期間Cj-1における周波数偏差であり、tgjは現期間Cjで用いられるずれ時間であり、Tは期間の長さである。ここで、最小の時刻差dtminを求めた際の第2時刻を最小時差発生時刻tmin_jとして保持し、現期間Cjにおけるtmin_jと前期間Cj-1におけるtmin_j-1とを用いて、以下の式(2)の値を式(1)のTの代わりに用いても良い。
tmin_j−tmin_j-1 (2)
この式(1)の導出について説明する。ずれ時間tgjは、前期間における周波数偏差dfj-1に含まれる誤差或いは周波数偏差dfが変化したことによって生じたものとする。ずれ時間tgjが、期間の長さTの間に生じたものと看做せば、ローカル時計における計測時間の伸縮率は、(T+tgj)/Tで表される。そして、伸縮率の逆数T/(T+tgj)が周波数の変化率と一致する。ここで、周波数の変化率は周波数偏差を用いて(1+dfj)/(1+dfj-1)と表せる為、等式(1+dfj)/(1+dfj-1)=T/(T+tgj)から上述の式が導かれる。
図12に、時刻推定の第1ステップの概要を示す。破線より上は、前期間Cj-1における算出結果を示している。破線より下は、現期間Cjにおける算出結果を示している。
1回目の推定経過時間dte1=(現期間Cjにおける1回目の第1時刻tl1−前期間Cj-1における1回目の第1時刻tl1)/(1+現期間Cjにおける周波数偏差dfj)の式に従って、1回目の推定経過時間dte1が求められる。ここで、前期間Cj-1における1回目の第1時刻tl1の代わりに、前期間Cj-1における最小の時刻差dtminを求めた際の第1時刻を保持しておき用いても良い。
そして、現期間Cjにおける1回目の推定時刻te1=前期間Cj-1における1回目の推定時刻te1+現期間Cjにおける1回目の推定経過時間dte1−現期間Cjで用いられるずれ時間tgjの式に従って、現期間Cjにおける1回目の推定時刻te1が求められる。ここで、前期間Cj-1における1回目の推定時刻te1の代わりに、前期間Cj-1における最小時差発生時刻tmin_j-1を用いても良い。
更に、現期間Cjにおける1回目の推定時刻te1から同じく1回目の第2時刻ts1を引いて、1回目の時刻差dt1を求める。現期間Cjにおける1回目の第1時刻または最小の時刻差dtminを求めた際の第1時刻と、1回目の推定時刻または最小時差発生時刻は、少なくとも次の期間における更新ステップまで保持される。以上で本実施の形態に係る概要の説明を終える。
図13に、データ収集装置201のモジュール構成例を示す。図2において説明したオペレーティングシステム203、受信部207、バッファ209及びシステム時計211は省略する。
アプリケーションプログラム205は、第1設定部1301、第1取得部1303、第1算出部1305、第2算出部1307、特定部1309及び更新部1311を実現するためのプログラムを含んでいる。図13では、各部を実現するためのプログラムを、各部として表す。各部は、当該部のためのプログラムをプロセッサで実行することによって実現される。データ収集装置201は、更にパラメータ記憶部1321及びテーブル記憶部1323を有する。パラメータ記憶部1321は、上述した各パラメータを記憶する。テーブル記憶部1323は、第1時刻と第2時刻と推定時刻と計測データとを対応付けるテーブルを記憶する。但し、第1時刻と第2時刻とは省いてもよい。
図14に、メイン処理(A)フローを示す。第1設定部1301は、第1初期設定処理を実行する(S1401)。第1初期設定処理は、初期設定ステップに相当する。第1初期設定処理の詳細は、図15を用いて後述する。
第1取得部1303は、取得処理を実行する(S1403)。取得処理では、第1時刻及び第2時刻を取得する。取得処理の詳細は、図16を用いて後述する。
第1算出部1305及び第2算出部1307は、第1算出処理を実行する(S1405)。第1算出処理は、時刻推定の第1ステップに相当する。第1算出処理の詳細は、図17を用いて後述する。
第1取得部1303は、取得処理を実行する(S1407)。S1407における取得処理は、S1403の場合と同様である。
第1算出部1305及び第2算出部1307は、第2算出処理を実行する(S1409)。第2算出処理は、時刻推定の第2ステップ以降に相当する。第2算出処理の詳細は、図18を用いて後述する。
更新部1311は、第2時刻が現期間Cjを経過したか否かを判定する(S1411)。第2時刻が現期間Cjを経過していないと判定した場合には、S1407に示した処理に戻って、上述した処理を繰り返す。ここでS1411の判定において、第2時刻の代わりに推定時刻を用いても良い。
一方、第2時刻が現期間Cjを経過したと判定した場合には、更新部1311は、期間を切り替える(S1413)。そして、特定部1309及び更新部1311は、更新処理を実行する(S1415)。更新処理は、更新ステップに相当する。更新処理の詳細は、図19を用いて後述する。
更新処理を終えると、S1403に示した処理に戻って、上述した処理を繰り返す。
図15に、第1初期設定処理フローを示す。第1設定部1301は、期間の長さTを設定する(S1501)。例えば、期間の長さTは所定の値であってもよいし、ユーザ操作によって設定されるようにしてもよい。
第1設定部1301は、周波数偏差の初期値df1に0を設定する(S1503)。更に、第1設定部1301は、ずれ時間の初期値tg1に0を設定する(S1505)。そして、メイン処理(A)に復帰する。
図16に、取得処理(A)フローを示す。第1取得部1303は、バッファ209からタイムスタンプ付き計測メッセージを取得する(S1601)。第1取得部1303は、システム時計211から第2時刻tsiを取得する(S1603)。更に、第1取得部1303は、計測メッセージから第1時刻tliを読み取る(S1605)。そして、メイン処理(A)に復帰する。
図17に、第1算出処理フローを示す。第1算出部1305は、現期間Cjにおける1回目の第1時刻tl1から前期間Cj-1における1回目の第1時刻tl1を引いて、第1時刻差dtl1を求める(S1701)。第1算出部1305は、第1時刻差dtl1を補正比(1+dfj)で除して、推定経過時間dte1を求める(S1703)。第1算出部1305は、前期間Cj-1における1回目の推定時刻te1に、推定経過時間dte1を加えて、ずれ時間tgjを引いて、現期間Cjにおける1回目の推定時刻te1を求める(S1705)。更に、第2算出部1307は、現期間Cjにおける1回目の推定時刻te1から現期間Cjにおける1回目の第2時刻ts1を引いて、現期間Cjにおける1回目の時刻差dt1を求める(S1707)。そして、メイン処理(A)に復帰する。
図18に、第2算出処理フローを示す。第1算出部1305は、現期間Cjにおける1回目の第1時刻tl1から現期間Cjにおけるi回目の第1時刻tliを引いて、第1時刻差dtliを求める(S1801)。第1算出部1305は、第1時刻差dtliを補正比(1+dfj)で除して、推定経過時間dteiを求める(S1803)。第1算出部1305は、現期間Cjにおける1回目の推定時刻te1に、推定経過時間dteiを加え、現期間Cjで用いられるずれ時間tgjを引いて、現期間Cjにおけるi回目の推定時刻teiを求める(S1805)。第2算出部1307は、現期間Cjにおけるi回目の推定時刻teiから現期間Cjにおけるi回目の第2時刻tsiを引いて、現期間Cjにおけるi回目の時刻差dtiを求める(S1807)。そして、メイン処理(A)に復帰する。
図19に、更新処理フローを示す。特定部1309は、前期間Cj-1における時刻差dtのうち、最小の時刻差dtminを特定する。そして、更新部1311は、最小の時刻差dtminを現期間Cjで用いられるずれ時間tgjに設定する(S1901)。更新部1311は、上述した式(1)に従って、周波数偏差dfjを更新する(S1903)。そして、メイン処理(A)に復帰する。
本実施の形態によれば、外部機器101で付された第1時刻を、より正しく自らのシステム時計基準の時刻に改めることができる。つまり、データ収集装置201における処理遅延の影響を受けずに、ローカル誤差を減ずることができる。
その他の工夫として、最小の時刻差dtminの絶対値が閾値を超えた場合に、前期間における推定時刻の信頼性が低いと判断するようにしてもよい。この場合は、期間内に滞留遅延が0にならなかった恐れがあるからである。
また、過去の最小の時刻差dtminに基づいて、期間の長さTを調整するようにしてもよい。
また、過去の最小の時刻差dtminに基づいて更新処理を行うか否かを決めるようにしてもよい。期間内に滞留遅延が0になるという前提が成立していないことも考えられるからである。
また、外部機器101の温度、内部電圧或いはクロックカウンタの振動数に基づいて、期間の長さTを決めるようにしてもよい。より適正な期間の長さTが設定されると期待できる。
[実施の形態2]
図20乃至図29を用いて実施の形態2の概要について説明する。図20は、第P期間における推定時刻teを破線で示している。実線は、第2時刻tsを示している。横軸は、第1時刻tlを示している。推定時刻teは、te=aP×tl+bPの式に従って算出される。推定パラメータ(aP,bP)は、第P期間における推定時刻teの算出に適用されるものである。
図21は、第P期間における時刻差dtを示している。時刻差dtは、第2時刻tsから推定時刻teを引いた時間である。図20の点2001に示した第2時刻tsにおける時刻差dtは、図21に示すように滞留遅延を含んでいない。この状態については、図6を用いて前述した。本実施の形態においても、時刻差dtが最小になる時点を基準として推定時刻teの算出を行う。
図22は、第P+1期間における推定時刻teを破線で示している。実線は、第P+1期間の推定時刻teを算出する式te=aP+1×tl+bP+1が示す直線を第P期間まで延長したものである。尚、図20で示した第P期間の推定時刻teは、更新されない。推定パラメータ(aP+1,bP+1)は、第P+1期間における推定時刻teの算出に適用されるものである。
図23は、第P+1期間における時刻差dtを示している。第P期に関しても、算出式te=aP+1×tl+bP+1に基づく時刻差dtを示している。図22の点2001に示した第2時刻tsにおける時刻差dtと点2201に示した第2時刻tsにおける時刻差dtとは共に、図23に示すように滞留遅延を含んでいない。本実施の形態では、この2点を結ぶ直線に相当する近似式を用いる。
図24は、第P+2期間における推定時刻teを破線で示している。実線は、第P+2期間の推定時刻teを算出する式te=aP+2×tl+bP+2が示す直線を点2001まで延長したものである。尚、図20で示した第P期間の推定時刻te及び図22で示した第P+1期間の推定時刻teは、更新されない。推定パラメータ(aP+2,bP+2)は、第P+2期間における推定時刻teの算出に適用されるものである。尚、第P+1期間の終了時点で、第P+1期間における推定時刻teの算出に適用された推定パラメータ(aP+1,bP+1)を現推定パラメータという。また、第P+2期間における推定時刻teの算出に適用する推定パラメータ(aP+2,bP+2)を新推定パラメータという。新推定パラメータは、現推定パラメータを補正することによって求められる。
図25を用いて、パラメータの関係を整理する。時刻差dtは、第2時刻tsと推定時刻teに基づいて算出される。本実施の形態では、2つの期間の各々における最小の時刻差dtに着目する。これらの最小の時刻差dt及びその出現時刻に基づいて現推定パラメータを補正することによって、新推定パラメータが算出される。そして、新推定パラメータによって次の期間における第1時刻が推定時刻に変換される。このサイクルが繰り返される。
図26を用いて、期間と各時刻の関係を整理する。図26は、第P+1期間の終了時点で,第P+2期間における推定時刻teの算出に適用される新推定パラメータを算出することを想定している。当該新推定パラメータを算出する場合には、第P期間の時刻データと第P+1期間の時刻データが用いられる。具体的には、第P期間及び第P+1期間の第2時刻tsと、第P期間及び第P+1期間の推定時刻teとが用いられる。但し、第P期間の推定時刻teは、第P+1期間における推定時刻teの算出に適用される現推定パラメータに基づく値である。新推定パラメータは、第P+2期間における第1時刻tlに随時適用されて、即座に推定時刻が求められる。
図27に示すように、図26で説明した期間と各時刻の関係が期間の経過に従って繰り返される。図27は、各推定パラメータが適正であることを想定している。各推定パラメータが適正であれば、各期間の長さは変わらない。
但し、推定パラメータがいつも適正であるとは限らない。或る期間における最小の時刻差dtが滞留遅延に相当する時間を含んでいる場合には、その期間に基づいて算出された推定パラメータは、正しい推定時刻を導かない。本実施の形態では、新推定パラメータが現推定パラメータと同一又は類似である場合に、当該新推定パラメータが適正であると判断する。推定時刻が正しければ、その推定時刻は連続し、その推定時刻の基礎となった推定パラメータも近似するはずである。
図28に示すように、新推定パラメータが現推定パラメータと非類似である場合には、新推定パラメータの基礎となる期間を拡張する。この例では、新推定パラメータの基礎となる第P+1期間と第P+2期間とのうち、後の第P+2期間を拡張する。このように期間を長くすれば、当該期間における最小の時刻差が滞留遅延を含まない可能性が高まる。ここで、現推定パラメータは適正である前提である。
但し、誤差は滞留遅延だけでなく、ローカル時計107における周波数偏差による成分も含んでいる。横軸を第1時刻tlとするグラフに真の計測時刻tを表せば、周波数偏差の変動により曲線を示すこともある。従って、上述した近似式が適用される期間が長すぎるとその期間の一部において推定時刻teと真の計測時刻tとの誤差が拡大する恐れがある。従って、より短期の周波数偏差変動が発生する可能性を考慮すると、一旦長くなった期間がそのままであると支障がある。
図29に示した例で、第Q期間の終了時点で求めた新推定パラメータが適正であった場合に、所定の短縮条件を満たさなければ第Q+1期間の長さは、第Q期間の場合と同一になる。一方、第Q+1期間の終了時点で求めた新推定パラメータが適正であった場合に、所定の短縮条件を満たせば第Q+2期間の長さは、第Q+1期間の場合よりも短くなるようにする。短縮条件については後述するが、例えば適正と判断される可能性が高い場合に、次の期間を短くする。以上で、本実施の形態における概要の説明を終える。
図30に、データ収集装置201のモジュール構成例を示す。アプリケーションプログラム205は、第2設定部3001、制御部3003、第2取得部3005、第3算出部3007、第4算出部3009、第5算出部3010、判定部3011、変更部3013及び短縮部3015を有する。また、データ収集装置201は、パラメータ記憶部3021、時刻テーブル記憶部3023、期間タイプ記憶部3025及び回数記憶部3027を有する。
第2設定部3001は、各種の内部パラメータに初期値を設定する。制御部3003は、アプリケーションプログラム205の動作を制御する。第2取得部3005は、バッファ209からタイムスタンプ付き計測メッセージを取得する。第3算出部3007は、推定時刻teを算出する。第4算出部3009は、推定パラメータを算出する。第5算出部3010は、時刻差dtを算出する。判定部3011は、推定パラメータの適否を判定する。変更部3013は、期間タイプを変更する。具体的には、変更部3013は、当該期間を拡張する。短縮部3015は、次の期間を短縮する。
パラメータ記憶部3021は、各種の内部パラメータを記憶する。時刻テーブル記憶部3023は、時刻テーブルを記憶する。時刻テーブルについては、図31を用いて後述する。期間タイプ記憶部3025は、期間タイプテーブルを記憶する。期間タイプテーブルについては、図32を用いて後述する。回数記憶部3027は、回数テーブルを記憶する。回数テーブルについては、図33を用いて後述する。
上述した第2設定部3001、制御部3003、第2取得部3005、第3算出部3007、第4算出部3009、第5算出部3010、判定部3011、変更部3013及び短縮部3015は、ハードウエア資源(例えば、図56)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述したパラメータ記憶部3021、時刻テーブル記憶部3023、期間タイプ記憶部3025及び回数記憶部3027は、ハードウエア資源(例えば、図56)を用いて実現される。
図31に、時刻テーブルの例を示す。この例における時刻テーブルには、タイムスタンプ付き計測メッセージに対応するレコードが設けられる。時刻テーブルのレコードは、第1時刻が格納されるフィールドと、第2時刻が格納されるフィールドと、推定時刻が格納されるフィールドと、計測データが格納されるフィールドとを有している。
図32に、期間タイプテーブルの例を示す。この例における期間タイプテーブルは、期間タイプに対応するレコードを有している。期間タイプテーブルのレコードは、期間タイプIDが設定されているフィールドと、期間長が設定されているフィールドとを有している。
期間タイプIDは、期間タイプを識別する。期間長は、当該期間タイプにおける期間の長さである。期間タイプテーブルは、メイン処理を開始する時点で既に用意されているものとする。尚、この例では、M個の期間タイプが設定されている。
図33に、回数テーブルの例を示す。この例における回数テーブルは、期間タイプに対応するレコードを有している。回数テーブルのレコードは、期間タイプIDが格納されるフィールドと、適正回数が格納されるフィールドと、不適回数が格納されるフィールドとを有している。
期間タイプIDは、カウント対象の期間タイプを特定する。適正回数は、当該期間タイプの期間に基づく推定パラメータの適否判定において適正と判定された回数である。不適回数は、当該期間タイプの期間に基づく推定パラメータの適否判定において不適と判定された回数である。
本実施の形態では、メイン処理(A)に代えて、メイン処理(B)を実行する。図34に、メイン処理(B)フローを示す。第2設定部3001は、スタート時刻を設定する(S3401)。スタート時刻は、各期間の基準として用いられる。スタート時刻は、例えば現在時刻である。但し、第2設定部3001は、スタート時刻の設定を省くようにしてもよい。
第2設定部3001は、第2初期設定処理を実行する(S3403)。第2初期設定処理では、各パラメータの初期化を行う。この例では、新推定パラメータのanewには1が設定される。新推定パラメータのbnewには0が設定される。現推定パラメータのacurには1が設定される。現推定パラメータのbcurには0が設定される。総合指数e[0]、e[1]及びe[2]には−1が設定される。−1は、後述する図46のS4607において3回目以降であることを判定するために用いられる制御用の値である。各適正回数cl及び各不適回数cuには0が設定される。期間タイプIDのパラメータiには、1が設定される。各パラメータの詳細については、後述する。
制御部3003は、取得処理を起動する(S3405)。取得処理は、バッファ209からタイムスタンプ付き計測メッセージを取得して、時刻テーブルに新たなレコードを設ける。取得処理は、記録時刻の補正結果を確定させるまでの処理遅延短縮を考慮し、メイン処理(B)と並行に動作させる例を示すが、並列に動作させなくても良い。
本実施の形態では、取得処理(B)が起動される。図35に、取得処理(B)フローを示す。第2取得部3005は、バッファ209からタイムスタンプ付き計測メッセージを取得する(S3501)。第2取得部3005は、時刻テーブルに新たなレコードを追加する(S3503)。第2取得部3005は、システム時計211から第2時刻tsを取得し、新たなレコードに格納する(S3505)。第2取得部3005は、計測メッセージから第1時刻tlを読み取り、新たなレコードに格納する(S3507)。第3算出部3007は、現推定パラメータ(acur,bcur)を用いて、推定時刻teを算出し、新たなレコードに格納する(S3509)。第2取得部3005は、計測メッセージから計測データを読み取り、新たなレコードに格納する(S3511)。そして、S3501に示した処理に戻って、上述した処理を繰り返す。
図34の説明に戻る。制御部3003は、初期処理を実行する(S3407)。初期処理では、第1期間乃至第3期間に関する処理を行う。
本実施の形態では、初期処理(A)を実行する。図36に、初期処理(A)フローを示す。制御部3003は、取得処理(B)において時刻テーブルに格納された最新の第1時刻tlが第2期間の終了時刻に至ったか否かを判定する(S3601)。最新の第1時刻tlが第2期間の終了時刻に至っていないと判定した場合には、S3601に示した処理を繰り返す。尚、終了時刻は、開始時刻に期間の長さを加えることによって求められる。
一方、最新の第1時刻tlが第2期間の終了時刻に至ったと判定した場合には、第4算出部3009は、第1期間及び第2期間に係る推定パラメータの算出処理を実行する(S3603)。
本実施の形態では、推定パラメータの算出処理(A)を実行する。図37に、推定パラメータの算出処理(A)フローを示す。第4算出部3009は、現推定パラメータ(acur,bcur)の値を新推定パラメータ(anew,bnew)に設定する(S3701)。このとき設定される値が補正対象となる。
第4算出部3009は、第1時刻tlが対象期間(対象期間は、2つの期間、つまり前期間及び後期間を含んでいる。)に含まれるレコードを1つ特定する(S3703)。例えば、第4算出部3009は、順番に従ってレコードを特定する。
第3算出部3007は、新推定パラメータ(anew,bnew)を用いて推定時刻teを算出する(S3705)。第5算出部3010は、第2時刻tsから推定時刻teを引いて時刻差dtを算出する(S3707)。時刻差dtは、推定パラメータの算出処理(A)を行っている間保持される。第4算出部3009は、未処理のレコードがあるか否かを判定する(S3709)。未処理のレコードがあると判定した場合には、S3703に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のレコードがないと判定した場合には、第4算出部3009は、前期間における最小の時刻差dtmin及び当該最小の時刻差dtminが出現した第1時刻tlAを特定する(S3711)。この最小の時刻差dtminが推定誤差eAであるものとして、以降の処理が行われる。
また、第4算出部3009は、後期間における最小の時刻差dtmin及び当該最小の時刻差dtminが出現した第1時刻tlBを特定する(S3713)。この最小の時刻差dtminが推定誤差eBであるものとして、以降の処理が行われる。
そして、第4算出部3009は、anew=anew+(eB−eA)/(tlB−tlA)の式及びbnew=bnew+eBの式に従って、新推定パラメータ(anew,bnew)を更新する(S3715)。推定パラメータの算出処理(A)を終えると、呼び出し元の処理に復帰する。
図36の説明に戻る。制御部3003は、S3603において算出した値(anew,bnew)を現推定パラメータ(acur,bcur)として記憶する(S3605)。
制御部3003は、取得処理(B)において時刻テーブルに格納された最新の第1時刻tlが第3期間の終了時刻に至ったか否かを判定する(S3607)。最新の第1時刻tlが第3期間の終了時刻に至っていないと判定した場合には、S3607に示した処理を繰り返す。
一方、最新の第1時刻tlが第3期間の終了時刻に至ったと判定した場合には、第4算出部3009は、第2期間及び第3期間に係る推定パラメータの算出処理を実行する(S3609)。第2期間及び第3期間に係る推定パラメータに関しては、S3609の処理を終えた段階で未だ確定していない。端子Aを介して、図38に示したS3801の処理に移る。
判定部3011は、推定パラメータの適否判定処理を実行する(S3801)。推定パラメータの適否判定処理では、新推定パラメータ(初期処理では、第2期間及び第3期間に係る推定パラメータ)が適正であるか否かを判定する。推定パラメータの適否判定処理については、図39乃至図41を用いて後述する。
制御部3003は、第2期間及び第3期間に係る新推定パラメータが適正であるか否かによって処理を分岐させる(S3803)。第2期間及び第3期間に係る新推定パラメータが適正でない場合、つまり当該新推定パラメータが不適である場合には、制御部3003は、第3期間の期間タイプ(期間タイプIDのパラメータ:i)に関する不適回数cu[i]に1を加える(S3805)。
変更部3013は、第1乃至3期間の期間タイプ(期間タイプIDのパラメータ:i)が最長タイプ(期間タイプID:M)であるか否かを判定する(S3807)。
第3期間の期間タイプが最長タイプでないと判定した場合には、変更部3013は、1段階長い期間タイプに変更する(S3809)。つまり、変更部3013は、期間タイプIDのパラメータiに1を加える。そして、端子Bを介して、図36に示したS3603の処理に戻る。
S3807において、第3期間の期間タイプが最長タイプであると判定した場合には、変更部3013は、最長タイプが所定回連続したか否かを判定する(S3811)。最長タイプが所定回連続した場合には、変更部3013は、エラーが発生したと判定する(S3813)。エラーが発生した場合には、初期処理(A)を終え、呼び出し元のメイン処理(B)に復帰する。
最長タイプが未だ所定回連続してない場合には、そのまま端子Bを介して、図36に示したS3603の処理に戻る。
S3803に示した処理の説明に戻る。第2期間及び第3期間に係る新推定パラメータが適正である場合には、制御部3003は、第3期間の期間タイプ(期間タイプIDのパラメータi)に関する適正回数cl[i]に1を加える(S3815)。
更に、制御部3003は、新推定パラメータ(anew,bnew)の値を現推定パラメータ(acur,bcur)に設定する(S3817)。初期処理(A)を終えると、呼び出し元のメイン処理(B)に復帰する。
本実施の形態では、推定パラメータの適否判定処理の例を2つ示す。図39に、推定パラメータの適否判定処理(A)フローを示す。判定部3011は、傾きパラメータの差分の絶対値が閾値raを下回ったか否かを判定する(S3901)。具体的には、判定部3011は、新傾きパラメータanewから、現傾きパラメータacurを引いた値の絶対値が閾値raを下回ったか否かを判定する。当該絶対値が閾値raを下回っていない場合には、判定部3011は、新推定パラメータ(anew,bnew)が不適であると判定する(S3907)。一方、当該絶対値が閾値raを下回った場合には、S3903の処理に移る。
判定部3011は、切片パラメータの差分の絶対値が閾値rbを下回ったか否かを判定する(S3903)。具体的には、判定部3011は、新切片パラメータbnewから、現切片パラメータbcurを引いた値の絶対値が閾値rbを下回ったか否かを判定する。当該絶対値が閾値rbを下回っていない場合には、判定部3011は、新推定パラメータ(anew,bnew)が不適であると判定する(S3907)。一方、当該絶対値が閾値rbを下回った場合には、判定部3011は、新推定パラメータ(anew,bnew)が適正であると判定する(S3905)。推定パラメータの適否判定処理を終えると、呼び出し元の処理に復帰する。
ここでは、傾きパラメータの差分の絶対値及び切片パラメータの差分の絶対値に基づいて適否判定を行う例を示したが、S3901の処理を省いて、切片パラメータの差分の絶対値に基づいて適否判定を行うようにしてもよい。或いは、S3903の処理を省いて、傾きパラメータの差分の絶対値に基づいて適否判定を行うようにしてもよい。
推定パラメータの適否判定処理に関する別の例について説明する。図40に、推定パラメータの適否判定処理(B)フローを示す。判定部3011は、第j−1期間と第j期間との境界時刻tlsを特定する(S4001)。以下、推定パラメータの適否判定処理(B)について図41を用いて補足する。図41に示すように、境界時刻tlsは、第j−1期間の終了時刻に相当するとともに、第j期間の開始時刻に相当する。
判定部3011は、現推定パラメータ(acur,bcur)を用いて、境界時刻tlsに対応する推定時刻tes_curを算出する(S4003)。また、判定部3011は、新推定パラメータ(anew,bnew)を用いて、境界時刻tlsに対応する推定時刻tes_newを算出する(S4005)。
判定部3011は、推定時刻の差分の絶対値が閾値を下回ったか否かを判定する(S4007)。具体的には、判定部3011は、新推定パラメータ(anew,bnew)に基づく推定時刻tes_newから、現推定パラメータ(acur,bcur)に基づく推定時刻tes_curを引いた値の絶対値が閾値rsを下回ったか否かを判定する。
推定時刻の差分の絶対値が閾値を下回ったと判定した場合には、判定部3011は、新推定パラメータ(anew,bnew)が適正であると判定する(S4009)。新推定パラメータが適正であれば、図41に示したように推定時刻tes_newと推定時刻tes_curとは近い値になるはずだからである。
一方、推定時刻の差分の絶対値が閾値を下回っていないと判定した場合には、判定部3011は、新推定パラメータ(anew,bnew)が不適であると判定する(S4011)。推定パラメータの適否判定処理(B)を終えると、呼び出し元の処理に復帰する。
図34の説明に戻る。制御部3003は、S3407の初期処理においてエラーが発生したか否かによって処理を分岐させる(S3409)。初期処理においてエラーが発生した場合には、第2設定部3001は、スタート時刻を設定し直す(S3411)。例えば、現在時刻をスタート時刻に設定する。そして、S3403に示した処理に戻って、上述した処理を繰り返す。尚、取得処理を継続していれば、取得処理の起動は省くようにする。
一方、初期処理においてエラーが発生していない場合には、制御部3003は、継続処理を実行する(S3413)。継続処理では、第4期間以降に関する処理を行う。
本実施の形態では、継続処理(A)を実行する。図42に、継続処理(A)フローを示す。第4期間に関する処理から始まるので、制御部3003は、期間番号のパラメータjに4を設定する(S4201)。
制御部3003は、取得処理(B)において時刻テーブルに格納された最新の第1時刻tlが第j期間の終了時刻に至ったか否かを判定する(S4203)。最新の第1時刻tlが第j期間の終了時刻に至っていないと判定した場合には、S4203に示した処理を繰り返す。
一方、最新の第1時刻tlが第j期間の終了時刻に至ったと判定した場合には、制御部3003は、第j−1期間及び第j期間に係る推定パラメータの算出処理を実行する(S4205)。次に、判定部3011は、推定パラメータの適否判定処理を実行する(S4207)。そして、端子Cを介して、図43に示したS4301の処理に移る。推定パラメータの算出処理及び推定パラメータの適否判定処理は、上述の通りである。
図43の説明に移る。S4301乃至S4315の処理は、図38に示したS3803乃至S3817の処理の場合と同様である。S4315の処理に続いて、短縮部3015は、短縮判定処理を実行する(S4319)。短縮判定処理では、期間長の短縮を行うか否かの判定を行う。
図44に、短縮判定処理フローを示す。短縮部3015は、当該期間タイプID[i]の適正回数cl[i]及び不適回数cu[i]に基づいて適正指数W[i]を算出する(S4401)。具体的には、短縮部3015は、W[i]=(cl[i]+第1定数)/(cu[i]+第2定数)の式に従って適正指数W[i]を算出する。第1定数は、実数である。第2定数も、実数である。尚、期間タイプID[i]は、現在の期間タイプを示す。
短縮部3015は、適正指数W[i]が閾値rwを超えたか否かを判定する(S4403)。適正指数W[i]が閾値rwを超えた場合には、短縮部3015は、期間長を短縮すると判定する(S4405)。一方、適正指数W[i]が閾値rwを超えていない場合には、短縮部3015は、期間長を短縮しないと判定する(S4407)。短縮判定処理を終えると、呼び出し元の処理に復帰する。
図43の説明に戻る。短縮部3015は、期間を短縮すると判定したか否かによって処理を分岐させる(S4321)。期間を短縮すると判定した場合には、短縮部3015は、1段階短い期間タイプに変更する(S4323)。つまり、短縮部3015は、期間タイプIDのパラメータiから1を引く。一方、期間を短縮しないと判定した場合には、そのままS4325の処理に移る。
制御部3003は、終了するか否かを判定する(S4325)。制御部3003は、例えば終了指示があったか否かを判定する。
終了しないと判定した場合には、制御部3003は、期間番号jに1を加える(S4327)。そして、端子Eを介して、図42に示したS4203の処理に戻る。一方、終了すると判定した場合には、継続処理(A)を終え、呼び出し元のメイン処理(B)に復帰する。
図34の説明に戻る。制御部3003は、S3413の継続処理においてエラーが発生したか否かによって処理を分岐させる(S3415)。継続処理においてエラーが発生した場合には、第2設定部3001は、スタート時刻を設定し直す(S3411)。例えば、現在時刻をスタート時刻に設定する。そして、S3403に示した処理に戻って、上述した処理を繰り返す。尚、取得処理を継続していれば、取得処理の起動は省くようにする。
一方、継続処理においてエラーが発生していない場合には、メイン処理(B)を終える。メイン処理(B)を終える前に、制御部3003は取得処理を停止させるようにしてもよい。
本実施の形態によれば、外部機器で付された記録時刻を、より正しく自らの時計基準の推定時刻に改めることができる。
また、新推定パラメータを次の期間に適用するので、早いタイミングで推定時刻を得られる。
また、新推定パラメータが不適である場合に期間を拡張して新推定パラメータを算出し直すので、推定時刻の誤算を補正できる。
また、短縮条件を満たす場合に次の期間を短縮するので、ローカル時計107における周波数偏差の変動による推定誤差を解消し易い。
[実施の形態3]
本実施の形態では、推定パラメータの算出処理においてイテレーションを行う例について説明する。
本実施の形態では、推定パラメータの算出処理(A)に代えて、推定パラメータの算出処理(B)を実行する。図45に、推定パラメータの算出処理(B)フローを示す。S4501乃至S4513の処理は、図37に示したS3701乃至S3713の処理の場合と同様である。
第4算出部3009は、総合指数e[0]=eA 2+eB 2の式に従って、推定誤差の総合指数e[0]を算出する(S4515)。そして、第4算出部3009は、収束判定処理を実行する(S4517)。収束判定処理では、今回の推定誤差の総合指数e[0]、前回の推定誤差の総合指数e[1]及び2回前の推定誤差の総合指数e[2]に基づいて推定パラメータが収束したか否かを判定する。
図46に、収束判定処理フローを示す。第4算出部3009は、今回の総合指数e[0]が0であるか否かを判定する(S4601)。今回の総合指数e[0]が0であると判定した場合には、第4算出部3009は、推定パラメータが収束したと判定する(S4603)。そして、収束判定処理を終え、呼び出し元の推定パラメータの算出処理(B)に復帰する。
一方、今回の総合指数e[0]が0ではないと判定した場合には、第4算出部3009は、今回の総合指数e[0]と前回の総合指数e[1]とが一致するか否かを判定する(S4605)。今回の総合指数e[0]と前回の総合指数e[1]とが一致すると判定した場合には、第4算出部3009は、推定パラメータが収束したと判定する(S4603)。そして、収束判定処理を終え、呼び出し元の推定パラメータの算出処理(B)に復帰する。
一方、今回の総合指数e[0]と前回の総合指数e[1]とが一致しないと判定した場合には、第4算出部3009は、3回目以降に総合指数が減少しなくなったか否かを判定する(S4607)。この例で、第4算出部3009は、(e[2]≦e[1] and e[1]≧e[0] and e[1]≠−1 and e[2]≠−1)の条件式を満たすか否かを判定する。尚、この例においてe[1]及びe[2]の初期値は−1であり、(e[1]≠−1 and e[2]≠−1)の式は、3回目以降であるための条件に相当する。
3回目以降に総合指数が減少しなくなったと判定した場合には、第4算出部3009は、推定パラメータが収束したと判定する(S4603)。そして、収束判定処理を終え、呼び出し元の推定パラメータの算出処理(B)に復帰する。
一方、3回目以降に総合指数が減少しなくなったと判定しない場合には、第4算出部3009は、推定パラメータが収束していないと判定する(S4609)。そして、収束判定処理を終え、呼び出し元の推定パラメータの算出処理(B)に復帰する。
図45の説明に戻る。S4517における収束判定処理を終えると、端子Fを介して、図47に示したS4701の処理に移る。
尚、推定パラメータに関する差分二乗和(anew−acur)2+(bnew−bcur)2を総合指数eとして用いるようにしてもよい。
図47の説明に移る。第4算出部3009は、推定パラメータが収束したと判定したか否かによって処理を分岐させる(S4701)。新推定パラメータが収束していないと判定した場合には、第4算出部3009は、anew=anew+(eB−eA)/(tlB−tlA)の式及びbnew=bnew+eBの式に従って、新推定パラメータ(anew,bnew)を更新する(S4703)。また、第4算出部3009は、前回の総合指数を2回前の総合指数のパラメータに移す(S4705)。更に、第4算出部3009は、今回の総合指数を前回の総合指数のパラメータに移す(S4707)。端子Gを介して、図45に示したS4503の処理に戻る。
一方、新推定パラメータが収束したと判定した場合には、第4算出部3009は、2回前の総合指数及び前回の総合指数を初期化する(S4709)。この例では、e[1]及びe[2]に−1が設定される。
本実施の形態によれば、イテレーションによって推定パラメータの精度が高まる。
[実施の形態4]
上述した実施の形態では、将来の第1時刻tlに新推定パラメータを適用する例を示したが、本実施の形態では、既知の第1時刻tlに新推定パラメータを適用する例について説明する。
図48に示すように、新推定パラメータを算出する基礎となった期間のうち、後方の期間に当該新推定パラメータを適用する。例えば、第P+1期間及び第P+2期間における時刻データに基づいて算出された推定パラメータは、第P+2期間に含まれる第1時刻に遡って適用される。このようにすれば、実施の形態2及び3の場合に比べて推定時刻の精度が高まる。
本実施の形態では、取得処理(B)に代えて、取得処理(C)を実行する。図49に、取得処理(C)フローを示す。取得処理(C)では、推定時刻teの算出を行わない。S4901乃至S4907の処理は、図35に示したS3501乃至S3507の処理の場合と同様である。また、S4909の処理は、図35に示したS3511の処理の場合と同様である。
本実施の形態では、初期処理(A)に代えて、初期処理(B)を実行する。図50に、初期処理(B)フローを示す。S5001乃至S5009の処理は、図36に示したS3601乃至S3609の処理の場合と同様である。S5009の処理を終えると、端子Hを介して、図51に示したS5101の処理に移る。
図51の説明に移る。S5101乃至S5115の処理は、図38に示したS3801乃至S3815の処理の場合と同様である。
第3算出部3007は、現推定パラメータ(acur,bcur)を用いて第1期間及び第2期間における推定時刻teを算出する(S5117)。第3算出部3007は、算出した推定時刻teを時刻テーブルのレコードに格納する。第3算出部3007は、新推定パラメータ(anew,bnew)を用いて第3期間における推定時刻teを算出する(S5119)。第3算出部3007は、算出した推定時刻teを時刻テーブルのレコードに格納する。
S5121の処理は、図38に示したS3817の処理の場合と同様である。初期処理(B)を終えると、呼び出し元のメイン処理(B)に復帰する。
本実施の形態では、継続処理(A)に代えて、継続処理(B)を実行する。図52に、継続処理(B)フローを示す。S5201乃至S5207の処理は、図42に示したS4201乃至S4207の処理の場合と同様である。端子Jを介して、図53に示したS5301の処理に移る。
図53の説明に移る。S5301乃至S5315の処理は、図43に示したS4301乃至S4315の処理の場合と同様である。
第3算出部3007は、新推定パラメータ(anew,bnew)を用いて第j期間における推定時刻teを算出する(S5319)。第3算出部3007は、算出した推定時刻teを時刻テーブルのレコードに格納する。
S5321乃至S5329の処理は、図43に示したS4319乃至S4327の処理の場合と同様である。継続処理(B)を終えると、呼び出し元のメイン処理(B)に復帰する。
本実施の形態によれば、推定時刻の精度がより高まる。
[実施の形態5]
推定パラメータの適否判定処理において、推定パラメータに関する差分二乗和(anew−acur)2+(bnew−bcur)2を算出して、当該値が閾値を下回った場合に、判定部3011は、新推定パラメータ(anew,bnew)が適正であると判定するようにしてもよい。また、当該値が閾値を下回っていない場合に、判定部3011は、新推定パラメータ(anew,bnew)が不適であると判定するようにしてもよい。
[実施の形態6]
上述した実施の形態では、滞留遅延の影響を受けない範囲で短い期間に調整する例を示したが、周波数偏差の影響を受けない範囲で長い期間に調整するようにしてもよい。
この場合には、例えば最長の期間から始めるようにする。そして、推定パラメータが不適である場合に、期間を短くして推定パラメータの計算をし直す。また、推定パラメータが適正である場合に、所定の拡張条件を満たせば次の期間が長くなるように調整する。
[実施の形態7]
上述した実施の形態では、現推定パラメータの基礎となった2期間のうち後方の期間と、新推定パラメータの基礎となった2期間のうち前方の期間が重複する例を示した。但し、現推定パラメータの基礎となった2期間と新推定パラメータの基礎となった2期間とが重複しないようにしてもよい。
図54に示した例では、第P+3期間の終了時点において、現推定パラメータの基礎となった第P期間及び第P+1期間と、新推定パラメータの基礎となった第P+2期間及び第P+3期間とが重複しない。この例で、新推定パラメータは、それ以降の第P+4期間及び第P+5期間において適用される。
図55に示した例では、図54の場合と同様に、第P+3期間の終了時点において、現推定パラメータの基礎となった第P期間及び第P+1期間と、新推定パラメータの基礎となった第P+2期間及び第P+3期間とが重複しない。この例で、新推定パラメータは、既知の第P+2期間及び第P+3期間において適用される。
尚、実施の形態2、実施の形態3及び図54に示した例は、リアルタイム処理に向いている面がある。一方、実施の形態4及び図55に示した例は、バッチ処理に向いている面がある。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
なお、上で述べたデータ収集装置201は、コンピュータ装置であって、図56に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る情報処理装置は、(A)外部機器が送信してから変動遅延を伴って到達する第1時計基準の記録時刻を含むデータの当該記録時刻の各々について、当該記録時刻を第2時計基準で改めた推定時刻を算出する第1算出部と、(B)記録時刻の各々について、当該記録時刻を改めた推定時刻と、当該記録時刻を含むデータが到達した第2時計基準の読取時刻との時刻差を算出する第2算出部と、(C)2以上の期間の各々における最小の時刻差に基づいて、推定時刻の算出に用いられるパラメータを算出する第3算出部とを有する。
このようにすれば、外部機器で付された記録時刻を、より正しく自らの時計基準の推定時刻に改めることができる。
更に、パラメータは、記録時刻に乗ずる係数と、当該記録時刻と当該係数との積に加算する値とを含むようにしてもよい。
このようにすれば、推定時刻の算出における処理負荷が比較的小さい。
更に、第1算出部は、パラメータを当該パラメータの基礎となった2以上の期間より後の記録時刻に適用するようにしてもよい。
このようにすれば、早いタイミングで推定時刻を得られる。
更に、第1算出部は、パラメータを当該パラメータの基礎となった2以上の期間内の記録時刻の少なくとも一部に適用するようにしてもよい。
このようにすれば、推定時刻の精度が高まる。
更に、第1算出部における処理と、第2算出部における処理と、第3算出部における処理とを繰り返す処理を行う制御部を有するようにしてもよい。
このようにすれば、継続的に推定時刻を求めることができる。
更に、前回のパラメータとの比較によって、今回のパラメータの適否を判定する判定部を有するようにしてもよい。
このようにすれば、推定時刻の誤算を防ぐことができる。
更に、今回のパラメータが不適であると判定された場合に、第3算出部は、少なくとも1の期間が拡張された2以上の期間に基づいて、今回のパラメータを算出し直すようにしてもよい。
このようにすれば、推定時刻の誤算を補正できる。
更に、今回のパラメータが適正であると判定され且つ所定条件を満たす場合に、次回の基礎となる2以上の期間のうち少なくとも1の期間を短縮する短縮部を有するようにしてもよい。
このようにすれば、推定時刻の誤差を抑制できる。
更に、第3算出部は、パラメータを算出する過程で、当該パラメータが所定条件を満たすまで当該パラメータの補正を反復するようにしてもよい。
このようにすれば、推定時刻の精度が高まる。
なお、上で述べた情報処理装置の処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
外部機器が送信してから変動遅延を伴って到達する第1時計基準の記録時刻を含むデータの当該記録時刻の各々について、当該記録時刻を第2時計基準で改めた推定時刻を算出する第1算出部と、
前記記録時刻の各々について、当該記録時刻を改めた前記推定時刻と、当該記録時刻を含むデータが到達した前記第2時計基準の読取時刻との時刻差を算出する第2算出部と、
2以上の期間の各々における最小の前記時刻差に基づいて、前記推定時刻の算出に用いられるパラメータを算出する第3算出部と
を有する情報処理装置。
(付記2)
前記パラメータは、前記記録時刻に乗ずる係数と、当該記録時刻と当該係数との積に加算する値とを含む
付記1記載の情報処理装置。
(付記3)
前記第1算出部は、前記パラメータを当該パラメータの基礎となった前記2以上の期間より後の記録時刻に適用する
付記1又は2に記載の情報処理装置。
(付記4)
前記第1算出部は、前記パラメータを当該パラメータの基礎となった前記2以上の期間内の記録時刻の少なくとも一部に適用する
付記1又は2に記載の情報処理装置。
(付記5)
更に、
前記第1算出部における処理と、前記第2算出部における処理と、前記第3算出部における処理とを繰り返す処理を行う制御部
を有する付記1乃至4のいずれか1つ記載の情報処理装置。
(付記6)
更に、
前回の前記パラメータとの比較によって、今回の前記パラメータの適否を判定する判定部
を有する付記5記載の情報処理装置。
(付記7)
前記今回のパラメータが不適であると判定された場合に、前記第3算出部は、少なくとも1の期間が拡張された前記2以上の期間に基づいて、前記今回のパラメータを算出し直す
付記6記載の情報処理装置。
(付記8)
更に、
前記今回のパラメータが適正であると判定され且つ所定条件を満たす場合に、次回の基礎となる前記2以上の期間のうち少なくとも1の期間を短縮する短縮部
を有する付記6又は7記載の情報処理装置。
(付記9)
前記第3算出部は、前記パラメータを算出する過程で、当該パラメータが所定条件を満たすまで当該パラメータの補正を反復する
付記1乃至8のいずれか1つ記載の情報処理装置。
(付記10)
情報処理装置と、
外部機器と
を有し、
前記情報処理装置は、
外部機器が送信してから変動遅延を伴って到達する第1時計基準の記録時刻を含むデータの当該記録時刻の各々について、当該記録時刻を第2時計基準で改めた推定時刻を算出する第1算出部と、
前記記録時刻の各々について、当該記録時刻を改めた前記推定時刻と、当該記録時刻を含むデータが到達した前記第2時計基準の読取時刻との時刻差を算出する第2算出部と、
2以上の期間の各々における最小の前記時刻差に基づいて、前記推定時刻の算出に用いられるパラメータを算出する第3算出部と
を有し、
前記外部機器は、
前記第1時計基準の前記記録時刻を含むデータを送信する
情報処理システム。
(付記11)
外部機器が送信してから変動遅延を伴って到達する第1時計基準の記録時刻を含むデータの当該記録時刻の各々について、当該記録時刻を第2時計基準で改めた推定時刻を算出し、
前記記録時刻の各々について、当該記録時刻を改めた前記推定時刻と、当該記録時刻を含むデータが到達した前記第2時計基準の読取時刻との時刻差を算出し、
2以上の期間の各々における最小の前記時刻差に基づいて、前記推定時刻の算出に用いられるパラメータを算出する
処理を含み、コンピュータにより実行される情報処理方法。