(57)【要約】【課題】より簡単な演算で、迅速に、予測真値を予測することができるようにする。【解決手段】ｎ個のデータ列｛ｙ0，ｙ1，・・・，ｙn-1｝を構成するデータｙ0乃至ｙn-1が予測装置１００に順次供給され、メモリ１３１−０乃至１３１−（ｎ−１）に記憶される。乗算回路１１３−ｉ（ｉ＝０乃至ｎ−１）は、データｙiと順番号ｉとの乗算を計算する。予測真値演算回路１１４は、データｙiと順番号ｉとの乗算結果と、係数値メモリテーブル１１５に記憶されている所定の係数とを乗算することにより、データ列｛ｙ0，ｙ1，・・・，ｙn-1｝のうちの現時点に直近のデータｙn-1の誤差成分を除去した真のデータ（予測真値）ｙ0’を求め、データ線１２５を介して出力する。本発明は、例えば、予測装置に適用できる。【選択図】図２６
2008090815.tif 000002
【特許請求の範囲】
【請求項１】
一定の時間間隔ごとに時系列に観測されるｎ個のデータから、Ｎ次の回帰式を最小二乗法を用いて求めることにより、現時点に直近の前記データの予測真値を演算する時系列データ予測装置において、
前記ｎ個のデータを記憶するデータ列記憶手段と、
前記ｎ個のデータのそれぞれについて、前記データと、０から始まる、前記データの新しさの順番を表す順番号とを乗算する順番号乗算手段と、
前記回帰式の次数Ｎおよび前記データの個数ｎに対応する係数を記憶する係数記憶手段と、
前記順番号乗算手段による順番号乗算結果と前記係数とを乗算することにより、現時点に直近の前記データの予測真値を演算する予測演算手段と
を備える時系列データ予測装置。
【請求項２】
前記順番号乗算手段は、前記ｎ個のデータのそれぞれについて、
前記順番号をＮ乗までべき乗したべき乗結果を記憶するべき乗結果記憶手段と、
前記べき乗結果と、前記データとを乗算するべき乗結果乗算手段と
を有する
請求項１に記載の時系列データ予測装置。
【請求項３】
前記係数記憶手段は、前記順番号のべき乗次数にも対応して前記係数を記憶しており、
前記予測演算手段は、
前記べき乗結果乗算手段の乗算結果である前記順番号乗算結果を、前記順番号のべき乗次数ごとに加算するべき乗データ加算手段と、
前記順番号のべき乗次数ごとに、前記べき乗データ加算手段の加算結果と、前記係数とを乗算する係数乗算手段と、
前記順番号のべき乗次数ごとの前記係数乗算手段による乗算結果を加算するべき乗次数データ総和手段と
を有する
請求項２に記載の時系列データ予測装置。
【請求項４】
前記係数は分数で表すことができ、
前記係数記憶手段は、さらに前記順番号のべき乗次数にも対応して前記係数を記憶するとともに、前記係数の分母および分子を整数として別々に記憶し、
前記予測演算手段は、
前記べき乗結果乗算手段の乗算結果である前記順番号乗算結果を、前記順番号のべき乗次数ごとに加算するべき乗データ加算手段と、
前記順番号のべき乗次数ごとに、前記べき乗データ加算手段の加算結果と、前記係数の分子とを乗算する係数乗算手段と、
前記順番号のべき乗次数ごとの前記係数乗算手段による乗算結果を加算するべき乗次数データ総和手段と、
前記べき乗次数データ総和手段による総和を前記係数の分母で除算する除算手段と
を有する
請求項２に記載の時系列データ予測装置。
【請求項５】
前記予測演算手段は、
前記係数の分母の半分の値を演算する半値演算手段をさらに有し、
前記べき乗次数データ総和手段は、前記係数の分母の半分の値も加算する
請求項４に記載の時系列データ予測装置。
【請求項６】
一定の時間間隔ごとに時系列に観測されるｎ個のデータから、Ｎ次の回帰式を最小二乗法を用いて求めることにより、現時点に直近の前記データの予測真値を演算する時系列データ予測装置の時系列データ予測方法において、
前記ｎ個のデータのそれぞれについて、前記データと、０から始まる、前記データの新しさの順番を表す順番号とを乗算し、
前記データと前記順番号とを乗算した順番号乗算結果と、前記回帰式の次数Ｎおよび前記データの個数ｎに対応した係数とを乗算することにより、現時点に直近の前記データの予測真値を演算する
ステップを含む時系列データ予測方法。
【請求項７】
一定の時間間隔ごとに時系列に観測されるｎ個のデータから、Ｎ次の回帰式を最小二乗法を用いて求めることにより、現時点に直近の前記データの予測真値を演算する時系列データ予測処理を、コンピュータに実行させるプログラムにおいて、
前記ｎ個のデータのそれぞれについて、前記データと、０から始まる、前記データの新しさの順番を表す順番号とを乗算し、
前記データと前記順番号とを乗算した順番号乗算結果と、前記回帰式の次数Ｎおよび前記データの個数ｎに対応した係数とを乗算することにより、現時点に直近の前記データの予測真値を演算する
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時系列データ予測装置、時系列データ予測方法、およびプログラムに関し、特に、より簡単な演算で、迅速に、予測真値を予測することができるようにする時系列データ予測装置、時系列データ予測方法、およびプログラムに関する。
【背景技術】
【０００２】
バッテリは、その残容量が少なくなると、それを装着した電子機器が使用できなくなる。そこで、残容量を検出し、その検出された値が基準値以下になったときは、充電要求のメッセージを出力する構成が採用される。残容量を検出するには、電圧を所定のタイミングで観測し、観測値を基準値と比較する必要がある。
【０００３】
しかし、観測された電圧値は、一般的に誤差を含んでいる。そこで、観測された電圧値をそのまま使用するのではなく、何らかの計算により電圧値に含まれる誤差を除去（低減）してから使用する必要がある。
【０００４】
電圧値のデータの誤差を除去する最も簡単な手法は、単純に、観測されたｎ個のデータの平均値を計算する手法である。この場合、観測されたｎ個のデータの平均値を求め、得られた平均値が、観測されたデータの誤差成分を除去した真のデータとして出力される。
【０００５】
平均値を求めることにより誤差を除去する手法は、計算が簡単なため高速に演算が可能であるが、時系列に観測されたデータに上昇、下降、振動（正弦波のような一定周期の繰り返し）などの傾向がある場合には、得られた真のデータが実際のデータの傾向と乖離したデータとなることが起こり得る。
【０００６】
時系列に観測されたデータに上昇、下降、振動などの傾向がある場合には、観測されたデータの誤差成分を最小とする回帰式を求めることが有用である。回帰式の算出には、最小二乗法が用いられる。即ち、最小二乗法を用いて回帰式を求め、得られた回帰式に値を代入することにより、観測されたデータの誤差成分を除去した真のデータを算出することができる。
【０００７】
観測されたデータを１次の回帰式（回帰直線）で近似する例で、一般的な最小二乗法について簡単に説明する。
【０００８】
いま、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝が観測されたときの観測点を、それぞれ、ｘ0，ｘ1，・・・，ｘi，・・・，ｘn-1とする。この場合、観測点ｘ0，ｘ1，・・・，ｘi，・・・，ｘn-1とデータｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1との関係を、図１に示されるように２次元座標系上に表すことができる。
【０００９】
ここで、データｙ0乃至ｙn-1の得られた時刻の順番がｙ0→ｙ1→・・・→ｙi→・・・→ｙn-1である場合を、データが正順であると称し、データｙ0乃至ｙn-1の得られた時刻の順番がｙn-1→ｙn-2→・・・→ｙi→・・・→ｙ1→ｙ0である場合を、データが逆順であると称する。
【００１０】
１次の回帰式をｙ＝ａｘ＋ｂと表すと、観測点ｘiにおいて誤差が除去された真のデータ（以下、予測真値と称する）ｙi’は、ａｘi＋ｂとなるので、観測点ｘiにおいて、観測値ｙiと予測真値ｙi’との誤差ｅiは、図１に示すように、ｙi’−ｙi＝ａｘi＋ｂ−ｙiである。
【００１１】
最小二乗法では、次式（１）で表される、ｉ＝０乃至ｎ−１のすべての観測点ｘiにおける二乗誤差ｅi2の総和ｅを最小とするような係数ａおよびｂを決定する。
【００１２】
【数１】
2008090815.tif 000003
【００１３】
総和ｅを最小とするような係数ａおよびｂは、式（１）を変数ａおよびｂでそれぞれ偏微分して得られる式（２）の正規方程式を解くことにより、求めることができる。
【００１４】
【数２】
2008090815.tif 000004
【００１５】
式（２）は、
【数３】
2008090815.tif 000005
のように変換することができ、さらに、式（３）のｘiとｙiには、例えば、３．２や１．７３といった具体的な観測されたデータ（数値）が代入されるので、式（３）を分かり易く変形すると、式（４）のように表すことができる。
【００１６】
【数４】
2008090815.tif 000006
【００１７】
従って、式（４）の連立方程式を解くことで、係数ａおよびｂを求めることができ、回帰式が得られることが分かる。
【００１８】
そして、データが正順である場合には、観測点ｘn-1の予測真値ｙn-1’を回帰式ｙ＝ａｘ＋ｂから求め、データが逆順である場合には、観測点ｘ0の予測真値ｙ0’を回帰式ｙ＝ａｘ＋ｂから求めることで、現時点に最も近い、直近の時刻における誤差を除去したデータを求めることができる。
【００１９】
具体的な数値例を挙げてさらに説明する。
【００２０】
図２に示されるように、データ列の個数が４個（ｎ＝４）で、観測点ｘ0＝１，ｘ1＝２，ｘ2＝３、およびｘ3＝４において、データｙ0＝８０，ｙ1＝９０，ｙ2＝９５、およびｙ3＝１１０がそれぞれ観測されたとすると、上述した式（４）に、ｘ0＝１，ｘ1＝２，ｘ2＝３、およびｘ3＝４、並びに、ｙ0＝８０，ｙ1＝９０，ｙ2＝９５、およびｙ3＝１１０を代入すると、
【数５】
2008090815.tif 000007
なので、
【数６】
2008090815.tif 000008
となる。そして、式（６）の連立方程式を解くと、ａ＝９．５，ｂ＝７０が得られる。
【００２１】
従って、回帰式は、ｙ＝９．５ｘ＋７０と表すことができ、データが正順であるとすると、直近の時刻における誤差を除去したデータ（予測真値）は、ｙ＝９．５×４＋７０＝１０８と求めることができる。
【００２２】
次に、図３のフローチャートを参照して、過去に観測されたデータ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝から、直近の予測真値を求める、予測装置のデータ予測処理について説明する。
【００２３】
初めに、ステップＳ１において、予測装置は、過去に観測されたデータ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝を取得する。ここで、データｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1が観測されたときの観測点を、それぞれ、ｘ0，ｘ1，・・・，ｘi，・・・，ｘn-1とする。
【００２４】
ステップＳ２において、予測装置は、二乗誤差ｅi2の総和ｅを最小とする式（４）の連立方程式を立てる。ステップＳ３において、予測装置は、式（４）の連立方程式を解くことにより、係数ａおよびｂを求める。
【００２５】
ステップＳ４において、予測装置は、求められた係数ａおよびｂを用いて、直近の予測真値を計算する。
【００２６】
以上のようにして、過去に観測されたデータ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝から、直近の予測真値を求めることができる。
【００２７】
上述した例では、回帰式として１次式を仮定した例について説明したが、回帰式として２次式を仮定する場合には、ｙ＝ａｘ2＋ｂｘ＋ｃが採用され、回帰式として３次式を仮定する場合には、ｙ＝ａｘ3＋ｂｘ2＋ｃｘ＋ｄが採用される。
【００２８】
また、コンピュータなどの計算機によって式（４）などの連立方程式を解く場合には、ガウスの掃き出し法などが用いられる。
【００２９】
このような最小二乗法の演算のために、様々な方法が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００５−６３１７号公報
【発明の開示】
【発明が解決しようとする課題】
【００３０】
しかしながら、従来の方法は、図３に示したように、演算の工程が多かったり、変数として浮動小数点を用いる必要があったため、処理が複雑であり、特に演算速度が遅く、逐次入力される観測値からリアルタイムで迅速に予測真値を求めることは困難であった。
【００３１】
本発明は、このような状況に鑑みてなされたものであり、より簡単な演算で、迅速に予測真値を予測し、もって迅速に警告等のメッセージを出力することができるようにするものである。
【課題を解決するための手段】
【００３２】
本発明の一側面の時系列データ予測装置は、一定の時間間隔ごとに時系列に観測されるｎ個のデータから、Ｎ次の回帰式を最小二乗法を用いて求めることにより、現時点に直近の前記データの予測真値を演算する時系列データ予測装置において、前記ｎ個のデータを記憶するデータ列記憶手段と、前記ｎ個のデータのそれぞれについて、前記データと、０から始まる、前記データの新しさの順番を表す順番号とを乗算する順番号乗算手段と、前記回帰式の次数Ｎおよび前記データの個数ｎに対応する係数を記憶する係数記憶手段と、前記順番号乗算手段による順番号乗算結果と前記係数とを乗算することにより、現時点に直近の前記データの予測真値を演算する予測演算手段とを備える。
【００３３】
前記順番号乗算手段には、前記ｎ個のデータのそれぞれについて、前記順番号をＮ乗までべき乗したべき乗結果を記憶するべき乗結果記憶手段と、前記べき乗結果と、前記データとを乗算するべき乗結果乗算手段とを有するようにさせることができる。
【００３４】
前記係数記憶手段は、前記順番号のべき乗次数にも対応して前記係数を記憶しており、前記予測演算手段には、前記べき乗結果乗算手段の乗算結果である前記順番号乗算結果を、前記順番号のべき乗次数ごとに加算するべき乗データ加算手段と、前記順番号のべき乗次数ごとに、前記べき乗データ加算手段の加算結果と、前記係数とを乗算する係数乗算手段と、前記順番号のべき乗次数ごとの前記係数乗算手段による乗算結果を加算するべき乗次数データ総和手段とを有するようにさせることができる。
【００３５】
前記係数は分数で表すことができ、前記係数記憶手段は、さらに前記順番号のべき乗次数にも対応して前記係数を記憶するとともに、前記係数の分母および分子を整数として別々に記憶し、前記予測演算手段には、前記べき乗結果乗算手段の乗算結果である前記順番号乗算結果をべき乗次数ごとに加算するべき乗データ加算手段と、べき乗次数ごとに、前記べき乗データ加算手段の加算結果と、前記係数の分子とを乗算する係数乗算手段と、べき乗次数ごとの前記係数乗算手段による乗算結果を加算するべき乗次数データ総和手段と、前記べき乗次数データ総和手段による総和を前記係数の分母で除算する除算手段とを有するようにさせることができる。
【００３６】
前記予測演算手段は、前記係数の分母の半分の値を演算する半値演算手段をさらに有し、前記べき乗次数データ総和手段には、前記係数の分母の半分の値も加算させることができる。
【００３７】
本発明の一側面の時系列データ予測方法は、一定の時間間隔ごとに時系列に観測されるｎ個のデータから、Ｎ次の回帰式を最小二乗法を用いて求めることにより、現時点に直近の前記データの予測真値を演算する時系列データ予測装置の時系列データ予測方法において、前記ｎ個のデータのそれぞれについて、前記データと、０から始まる、前記データの新しさの順番を表す順番号とを乗算し、前記データと前記順番号とを乗算した順番号乗算結果と、前記回帰式の次数Ｎおよび前記データの個数ｎに対応した係数とを乗算することにより、現時点に直近の前記データの予測真値を演算するステップを含む。
【００３８】
本発明の一側面のプログラムは、一定の時間間隔ごとに時系列に観測されるｎ個のデータから、Ｎ次の回帰式を最小二乗法を用いて求めることにより、現時点に直近の前記データの予測真値を演算する時系列データ予測処理を、コンピュータに実行させるプログラムにおいて、前記ｎ個のデータのそれぞれについて、前記データと、０から始まる、前記データの新しさの順番を表す順番号とを乗算し、前記データと前記順番号とを乗算した順番号乗算結果と、前記回帰式の次数Ｎおよび前記データの個数ｎに対応した係数とを乗算することにより、現時点に直近の前記データの予測真値を演算するステップを含む。
【００３９】
本発明の一側面においては、ｎ個のデータのそれぞれについて、データと、０から始まる、データの新しさの順番を表す順番号とが乗算され、その結果である順番号乗算結果と、回帰式の次数Ｎおよびデータの個数ｎに対応した係数とを乗算することにより、現時点に直近のデータの予測真値が演算される。
【発明の効果】
【００４０】
本発明の一側面によれば、より簡単な演算で、迅速に、予測真値を予測することができる。
【発明を実施するための最良の形態】
【００４１】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００４２】
本発明の一側面の予測装置は、一定の時間間隔ごとに観測されるｎ個のデータから、Ｎ次の回帰式を最小二乗法を用いて求めることにより、現時点に直近の前記データの予測真値を演算する時系列データ予測装置（例えば、図２６の予測装置１００）において、前記ｎ個のデータを記憶するデータ列記憶手段（例えば、図２６のデータ列メモリ１１２）と、前記ｎ個のデータのそれぞれについて、前記データと、０から始まる、前記データの新しさの順番を表す順番号とを乗算する順番号乗算手段（例えば、図２６の乗算回路１１３−０乃至１１３−（ｎ−１））と、前記回帰式の次数Ｎおよび前記データの個数ｎに対応する係数を記憶する係数記憶手段（例えば、図２６の係数値メモリテーブル１１５）と、前記順番号乗算手段による順番号乗算結果と前記係数とを乗算することにより、現時点に直近の前記データの予測真値を演算する予測演算手段（例えば、図２６の予測真値演算回路１１４）とを備える。
【００４３】
本発明の一側面の時系列データ予測装置の前記順番号乗算手段は、前記ｎ個のデータのそれぞれについて、前記順番号をＮ乗までべき乗したべき乗結果を記憶するべき乗結果記憶手段（例えば、図２７のメモリ２００−ｉ乃至２０２−ｉ）と、前記べき乗結果と、前記データとを乗算するべき乗結果乗算手段（例えば、図２７の乗算器２１０−ｉ乃至２１２−ｉ）とを有する。
【００４４】
本発明の一側面の時系列データ予測装置の前記係数記憶手段は、前記順番号のべき乗次数にも対応して前記係数を記憶しており、前記予測演算手段は、前記べき乗結果乗算手段の乗算結果である前記順番号乗算結果を、前記順番号のべき乗次数ごとに加算するべき乗データ加算手段（例えば、図３０の加算器２３１ａ乃至２３１ｄ）と、前記順番号のべき乗次数ごとに、前記べき乗データ加算手段の加算結果と、前記係数とを乗算する係数乗算手段（例えば、図３０の乗算器２３６ａ乃至２３６ｄ）と、前記順番号のべき乗次数ごとの前記係数乗算手段による乗算結果を加算するべき乗次数データ総和手段（例えば、図３０の加算器２３８）とを有する。
【００４５】
本発明の一側面の時系列データ予測装置の前記係数は分数で表すことができ、前記係数記憶手段は、さらに前記順番号のべき乗次数にも対応して前記係数を記憶するとともに、前記係数の分母および分子を整数として別々に記憶し、前記予測演算手段は、前記べき乗結果乗算手段の乗算結果である前記順番号乗算結果を、前記順番号のべき乗次数ごとに加算するべき乗データ加算手段（例えば、図３８の加算器２３１ａ乃至２３１ｄ）と、前記順番号のべき乗次数ごとに、前記べき乗データ加算手段の加算結果と、前記係数の分子とを乗算する係数乗算手段（例えば、図３８の乗算器２３６ａ乃至２３６ｄ）と、前記順番号のべき乗次数ごとの前記係数乗算手段による乗算結果を加算するべき乗次数データ総和手段（例えば、図３８の加算器２３８）と、前記べき乗次数データ総和手段による総和を前記係数の分母で除算する除算手段（例えば、図３８の除算器２５１）とを有する。
【００４６】
本発明の一側面の時系列データ予測装置の前記予測演算手段は、前記係数の分母の半分の値を演算する半値演算手段（例えば、図３９の半値回路２６１）をさらに有し、前記べき乗次数データ総和手段は、前記係数の分母の半分の値も加算する。
【００４７】
本発明の一側面の時系列データ予測方法またはプログラムは、一定の時間間隔ごとに観測されるｎ個のデータから、Ｎ次の回帰式を最小二乗法を用いて求めることにより、現時点に直近の前記データの予測真値を演算する時系列データ予測装置の時系列データ予測方法、または、前記予測真値を演算する時系列データ予測処理をコンピュータに実行させるプログラムにおいて、前記ｎ個のデータのそれぞれについて、前記データと、０から始まる、前記データの新しさの順番を表す順番号とを乗算し（例えば、図１４のステップＳ２４）、前記データと前記順番号とを乗算した順番号乗算結果と、前記回帰式の次数Ｎおよび前記データの個数ｎに対応した係数とを乗算することにより、現時点に直近の前記データの予測真値を演算する（例えば、図１４のステップＳ２６）ステップを含む。
【００４８】
以下、図を参照して、本発明の実施の形態について説明する。
【００４９】
最初に、図４を参照して、ハードディスクにデータを記録するデータ記録装置（不図示）に内蔵されるバッテリ残容量計測装置でバッテリ残容量を計測する実施の形態について説明する。
【００５０】
図４のバッテリ残容量計測装置３０１は、バッテリ３０２から供給されるバッテリ残容量から、誤差成分を除去した真のバッテリ残容量を予測することにより、正確なバッテリ残容量を計測し、所定のバッテリ残容量となったと推測された時点で、警告信号または制御信号をデータ記録装置の制御回路３０３に出力する。
【００５１】
バッテリ残容量計測装置３０１は、予測装置１００、A/D（Analog to Digital）変換回路３３１、Max値演算回路３３２、制限値テーブル３３３、および比較回路３３４により構成される。
【００５２】
バッテリの残容量を表すアナログの電圧値が、常時バッテリ３０２からA/D変換回路３３１に供給される。A/D変換回路３３１は、例えば、１msecなど一定の間隔でバッテリ３０２から供給されるアナログの電圧値をディジタルの電圧値に変換し、Max値演算回路３３２に供給する。
【００５３】
図５は、バッテリ３０２を満充電にした状態を初期状態として、バッテリ３０２からA/D変換回路３３１に供給されるアナログの電圧値の推移を示す図である。図５の横軸は、バッテリ３０２を満充電にして、ハードディスクにアクセスを開始した時刻からの時間を表し、縦軸は、バッテリ３０２からA/D変換回路３３１に供給されるアナログの電圧値を表す。
【００５４】
図５において円で囲まれた部分を拡大した拡大図に示される、極めて短い時間内での電圧値の変動は、ハードディスクのアクセスの状態によるものである。従って、ハードディスクのアクセス状態によって電圧値は変動するが、電圧値の最大値のみに注目すると滑らかに電圧値が変化していると捉えることができるので、電圧値の一定の間隔内の最大値を時系列的に追跡することにより、正確にバッテリの残容量を計測することができると考えられる。これに対し、例えば、平均値でバッテリの残容量を計測すると、電圧値の変動の影響を受け、正確なバッテリの残容量を計測することができない。
【００５５】
そこで、図４のMax値演算回路３３２は、A/D変換回路３３１から供給されるディジタルの電圧値を、所定の時間（例えば、１０msec）だけ集計し、その集計した中の最大の電圧値を予測装置１００に供給する。この場合、Max値演算回路３３２は、A/D変換回路３３１から時系列に供給される１０点の電圧値のなかの最大値を予測装置１００に供給することになる。
【００５６】
従って、予測装置１００には、バッテリの残容量を表す電圧値が、１０msecごとに１回の割合で、定期的に、データが欠落することなく、供給される。予測装置１００は、後述する予測演算処理により、ｎ個のデータを用いて、直近に得られた電圧値から誤差成分を除去した真の電圧値（予測真値）を求め、比較回路３３４に供給する。
【００５７】
制限値テーブル３３３は、制御回路３０３に警告信号を出力する電圧値である警告残容量レベルLAと、制御回路３０３にデータ記録装置を強制終了させる強制シャットダウン制御信号を出力する電圧値である強制終了残容量レベルLBとを記憶する。
【００５８】
比較回路３３４は、予測装置１００から供給される真の電圧値と、制限値テーブル３３３に記憶されている警告残容量レベルLAおよび強制終了残容量レベルLBとを比較して、真の電圧値が警告残容量レベルLAのみを下回っている場合には、警告信号を制御回路３０３に出力し、真の電圧値が警告残容量レベルLAと強制終了残容量レベルLBの両方を下回っている場合には、強制シャットダウン制御信号を制御回路３０３に出力する。
【００５９】
図６は、本発明を適用した他の実施の形態を表す。
【００６０】
即ち、図６は、風速センサ３５１が検出した風速値の誤差成分を除去した真の風速値を求め、所定以上の風速値が検出された場合に警告信号を制御回路３５３に出力する風速警告装置３５２の例である。これは、例えば、強風によって装置の転倒のおそれがあるクレーンのような高身長の装置に搭載される。
【００６１】
風速センサ３５１は、例えば、クレーンの先端部に取り付けられ、風によって回転した回転板の回転数や超音波の伝達速度から計算された風速値（ディジタル値）を、シリアル通信等により風速警告装置３５２に供給する。
【００６２】
風速警告装置３５２は、予測装置１００、制限値テーブル３６１、および比較回路３６２により構成される。
【００６３】
予測装置１００には、所定の時間間隔で風速値が風速センサ３５１から供給される。データが欠落することはない。予測装置１００は、風速センサ３５１から供給される風速値を用いて、後述する予測演算処理により、直近に得られた風速値から誤差成分を除去した真の風速値を求め、比較回路３６２に供給する。風速値は、時々刻々と増減するので、平均値を用いるのは適当ではない。
【００６４】
制限値テーブル３６１には、制御回路３５３に警告信号を出力する風速値である警告レベルLCが記憶されている。比較回路３６２は、予測装置１００から供給される真の風速値と、制限値テーブル３６１の警告レベルLCとを比較して、真の風速値が警告レベルLCを上回っている場合に、警告信号を制御回路３５３に出力する。制御回路３５３は、警告信号を受信した場合、警告音を出力してクレーンの操作者に報知する。
【００６５】
次に、上述した予測装置１００で実行される、時系列データの予測真値を求める予測演算処理の原理について説明する。
【００６６】
予測装置１００で実行される予測演算処理では、従来例で上述したのと同様に、過去に観測されたデータ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝から、直近の予測真値を求める。即ち、データが正順である場合には、観測されたデータｙn-1の誤差成分を除去した予測真値ｙn-1’を求め、データが逆順である場合には、観測されたデータｙ0の誤差成分を除去した予測真値ｙ0’を求める。
【００６７】
従来例と同様に１次の回帰式を仮定した場合、上述した式（４）を、行列を用いて表すと式（７）のように表すことができる。
【００６８】
【数７】
2008090815.tif 000009
【００６９】
ここで、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝が、一定の時間間隔で、欠落することなく順番に１データずつ得られてなるものであるという制約条件の下で、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝が観測されたときの観測点ｘ0，ｘ1，・・・，ｘi，・・・，ｘn-1を、０，１，２，・・・，ｉ，・・・，ｎ−１と、０からの番号に置き換えて簡略化する。即ち、ｘ0＝０，ｘ1，＝１・・・，ｘi＝ｉ，・・・，ｘn-1＝ｎ−１である。
【００７０】
この場合、式（７）のなかの、Σｘi2，Σｘi，Σ１は、
【数８】
2008090815.tif 000010
【数９】
2008090815.tif 000011
【数１０】
2008090815.tif 000012
となるので、式（７）は、式（１１）のように表すことができる。なお、本明細書において、Σ（サメーション）は、変数ｉを０乃至ｎ−１としたときの総和を表す。
【００７１】
【数１１】
2008090815.tif 000013
【００７２】
式（１１）を、左辺が係数aおよびｂだけになるように変形すると、
【数１２】
2008090815.tif 000014
となるので、結局、回帰式は、次式（１３）で表すことができる。
【００７３】
【数１３】
2008090815.tif 000015
【００７４】
従って、データが正順である場合には、式（１３）のｘに（ｎ−１）を代入することにより、直近のデータｙn-1の予測真値ｙn-1’は、
【数１４】
2008090815.tif 000016
となり、さらに式（１４）を整理すると、予測真値ｙn-1’は、式（１５）と表すことができる。
【００７５】
【数１５】
2008090815.tif 000017
【００７６】
ここで、Σｙiｉを積和Ｔ，Σｙiを総和Ｒと置き、さらに、積和Ｔの係数をβ、総和Ｒの係数をαと置くと、式（１５）は、
ｙn-1’＝β・Ｔ＋α・Ｒ    ・・・・・・・・・・・・・・（１６）
と表すことができる。係数αとβは、観測されるデータ列の個数ｎが決まれば、予め計算することができ、ｎ＝３乃至１０のそれぞれに対して、係数αとβを計算したときの計算結果を図７に示す。
【００７７】
なお、図７に示されるように、ｎ＝３乃至１０のそれぞれにおいて、ｎを代入し、係数αとβの分母が同一となるように約分した後の、係数αの分子を係数Ａ、係数βの分子を係数Ｂ、および、係数αおよびβの分母を係数Ｅと表す。
【００７８】
一方、データが逆順である場合には、式（１３）のｘに０を代入することにより、直近のデータｙ0の予測真値ｙ0’を式（１７）で表すことができる。
【００７９】
【数１６】
2008090815.tif 000018
【００８０】
データが逆順である場合にも、Σｙiｉを積和Ｔ，Σｙiを総和Ｒ、積和Ｔの係数をβ、および、総和Ｒの係数をαと置き、ｎ＝３乃至１０のそれぞれに対して、係数αとβを計算すると、計算結果は図８に示すようになる。
【００８１】
従って、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝が与えられると、個数ｎが決定するので、係数αおよびβが確定し、総和Ｒおよび積和Ｔも計算することができるので、式（４）のような連立方程式を解くことなく、式（１５）または式（１７）による簡単な計算によって、予測真値を求めることができる。
【００８２】
次に、２次の回帰式を仮定した場合の予測演算処理について説明する。
【００８３】
２次の回帰式ｙ＝ａｘ2＋ｂｘ＋ｃを仮定した場合、その回帰式を変数ａ、ｂ、およびｃでそれぞれ偏微分することにより、式（１８）の正規方程式を得ることができる。
【００８４】
【数１７】
2008090815.tif 000019
【００８５】
そして、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝は、一定の時間間隔で、欠落することなく順番に１データずつ得られてなるものであるという制約条件の下で、ｘ0＝０，ｘ1，＝１・・・，ｘi＝ｉ，・・・，ｘn-1＝ｎ−１と簡略化すると、式（１８）は、
【数１８】
2008090815.tif 000020
となり、さらに式（１９）を変形すると、
【数１９】
2008090815.tif 000021
と表すことができるので、結局、回帰式は、次式（２１）で表すことができる。
【００８６】
【数２０】
2008090815.tif 000022
【００８７】
従って、データが正順である場合、式（２１）のｘに（ｎ−１）を代入して、整理することにより、直近のデータｙn-1の予測真値ｙn-1’は、
【数２１】
2008090815.tif 000023
となる。
【００８８】
ここで、Σｙiｉを積和Ｔ，Σｙiを総和Ｒ、積和Ｔの係数をβ、および、総和Ｒの係数をαとした以外に、Σｙiｉ2を積和Ｑ、積和Ｑの係数をγと置くと、式（２２）は、
ｙn-1’＝γ・Ｑ＋β・Ｔ＋α・Ｒ    ・・・・・・・・・・・・・・（２３）
と表すことができる。
【００８９】
ｎ＝４乃至１０のそれぞれに対して、係数α，β、およびγを計算したときの計算結果を図９に示す。また、ｎ＝４乃至１０のそれぞれにおいて、ｎを代入し、係数α、β、およびγの分母が同一となるように約分した後の、係数γの分子を係数Ｃと表す。計算後の係数γの分母は、係数αおよびβの分母と同様の係数Ｅで表される。
【００９０】
一方、データが逆順である場合には、式（２１）のｘに０を代入することにより、直近のデータｙ0の予測真値ｙ0’は、式（２４）で表すことができる。
【００９１】
【数２２】
2008090815.tif 000024
【００９２】
この場合、ｎ＝４乃至１０のそれぞれに対して、係数α、β、およびγを計算すると、計算結果は図１０に示すようになる。
【００９３】
従って、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝が与えられると、個数ｎが決定するので、係数α、β、およびγが確定し、総和Ｒ、積和Ｔ、および積和Ｑも計算することができるので、式（４）のような連立方程式を解くことなく、式（２２）または式（２４）による簡単な計算によって、予測真値を求めることができる。
【００９４】
次に、３次の回帰式を仮定した場合の予測演算処理について説明する。
【００９５】
３次の回帰式ｙ＝ａｘ3＋ｂｘ2＋ｃｘ＋ｄを仮定した場合、その回帰式を変数ａ，ｂ，ｃ、およびｄでそれぞれ偏微分することにより、式（２５）の正規方程式を得ることができる。
【００９６】
【数２３】
2008090815.tif 000025
【００９７】
そして、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝は、一定の時間間隔で、欠落することなく順番に１データずつ得られてなるものであるという制約条件の下で、ｘ0＝０，ｘ1，＝１・・・，ｘi＝ｉ，・・・，ｘn-1＝ｎ−１と簡略化すると、式（２５）は、
【数２４】
2008090815.tif 000026
となる。ここで、Ａ00乃至Ａ33は、
【数２５】
2008090815.tif 000027
である。
【００９８】
式（２６）を、左辺が係数ａ，ｂ，ｃ、およびｄだけとなるように変形すると、
【数２６】
2008090815.tif 000028
となり、結局、回帰式は、次式（２９）で表すことができる。
【００９９】
【数２７】
2008090815.tif 000029
【０１００】
ここで、Ｂ00乃至Ｂ33は、
【数２８】
2008090815.tif 000030
である。
【０１０１】
従って、データが正順である場合、式（２９）のｘに（ｎ−１）を代入して、整理することにより、直近のデータｙn-1の予測真値ｙn-1’は、
【数２９】
2008090815.tif 000031
となる。
【０１０２】
ここで、Σｙiｉ2を積和Ｑ、Σｙiｉを積和Ｔ，Σｙiを総和Ｒ、積和Ｑの係数をγ、積和Ｔの係数をβ、および、総和Ｒの係数をαとした以外に、Σｙiｉ3を積和Ｕ、積和Ｕの係数をδと置くと、式（３１）は、
ｙn-1’＝δ・Ｕ＋γ・Ｑ＋β・Ｔ＋α・Ｒ    ・・・・・・・・・・・（３２）
と表すことができる。
【０１０３】
ｎ＝５乃至１０のそれぞれに対して、係数α，β、γ、およびδを計算したときの計算結果を図１１に示す。また、ｎ＝５乃至１０のそれぞれにおいて、ｎを代入し、係数α、β、γ、およびδの分母が同一となるように約分した後の係数δの分子を係数Ｄと表す。計算後の係数δの分母は、係数α、β、およびγの分母と同様の係数Ｅで表される。
【０１０４】
一方、データが逆順である場合、式（２９）のｘに０を代入することにより、直近のデータｙ0の予測真値ｙ0’は、式（３３）で表すことができる。
【０１０５】
【数３０】
2008090815.tif 000032
【０１０６】
この場合、ｎ＝５乃至１０のそれぞれに対して、係数α、β、γ、およびδを計算すると、計算結果は図１２に示すようになる。
【０１０７】
従って、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝が与えられると、個数ｎが決定するので、係数α、β、γ、およびδが確定し、総和Ｒ、積和Ｔ、積和Ｑおよび積和Ｕも計算することができるので、式（４）のような連立方程式を解くことなく、式（３１）または式（３３）による簡単な計算によって、予測真値を求めることができる。
【０１０８】
上述した時系列データとしてのデータ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝の予測真値を求める予測演算処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１０９】
図１３は、上述した予測演算処理をプログラムにより実行する予測装置１００の構成例を示すブロック図である。即ち、図１３では、予測装置１００はコンピュータで構成されている。
【０１１０】
CPU（Central Processing Unit）１１は、ROM（Read Only Memory）１２、または記憶部１８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）１３には、CPU１１が実行するプログラムやデータなどが適宜記憶される。例えば、記憶部１８に記憶されている予測演算処理のプログラムがRAM１３にロードされ、CPU１１により実行される。このプログラムについては、図１４乃至図２５を参照して後述する。CPU１１、ROM１２、およびRAM１３は、バス１４により相互に接続されている。
【０１１１】
CPU１１にはまた、バス１４を介して入出力インタフェース１５が接続されている。入出力インタフェース１５には、キーボード、マウス、マイクロホンなどよりなる入力部１６、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、スピーカなどよりなる出力部１７が接続されている。CPU１１は、入力部１６から入力される指令に対応して各種の処理を実行する。そして、CPU１１は、処理の結果（例えば、計算された予測真値）を出力部１７に出力する。
【０１１２】
入出力インタフェース１５に接続されている記憶部１８は、例えばハードディスクからなり、CPU１１が実行するプログラムや各種のデータを記憶する。通信部１９は、例えば、LAN（Local Area Network）アダプタやIEEE(The Institute of Electrical and Electronic Engineers)1394インタフェースなどからなり、インターネットやローカルエリアネットワークなどのネットワークを介して、または直接に接続された外部の装置と通信する。なお、通信部１９は、無線または有線による通信を行うものでもよいし、無線と有線の両方の通信が可能なものでもよい。例えば、無線の場合、IEEE802.11a，802.11b、または802.11gに準じた通信方式の無線LANが利用可能である。
【０１１３】
入出力インタフェース１５に接続されているドライブ２０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア２１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部１８に転送され、記憶される。また、プログラムやデータは、通信部１９を介して取得され、記憶部１８に記憶されてもよい。
【０１１４】
次に、図１４乃至図２５を参照して、１次の回帰式ｙ＝ａｘ＋ｂを用いた場合、２次の回帰式ｙ＝ａｘ2＋ｂｘ＋ｃを用いた場合、および、３次の回帰式ｙ＝ａｘ3＋ｂｘ2＋ｃｘ＋ｄを用いた場合の、直近のデータの予測真値を求める予測演算処理のフローチャートとプログラムについて、データが正順である場合と逆順である場合の両方について説明する。
【０１１５】
なお、図１４乃至図２５においては、観測されたデータ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝の個数ｎは１０個（ｎ＝１０）とし、その１０個の各データｙ0乃至ｙ9は、配列data［10］に既に格納されているものとする。また、各データｙ0乃至ｙ9が取り得る値の範囲は、０乃至２５５である。
【０１１６】
図１４は、データが正順であって、１次の回帰式ｙ＝ａｘ＋ｂを用いた場合の、直近のデータｙn-1の予測真値ｙn-1’を求める予測演算処理のフローチャートである。
【０１１７】
初めに、ステップＳ２１において、予測装置１００のCPU１１は、データの個数をカウントする変数ｊに０を代入する。
【０１１８】
ステップＳ２２において、CPU１１は、式（１６）の積和Ｔに対応する変数sum1と、式（１６）の総和Ｒに対応する変数sum2とに０を代入する。ステップＳ２１およびＳ２２の処理は、変数ｊ，sum1、およびsum2を初期化する処理である。
【０１１９】
ステップＳ２３において、CPU１１は、変数ｊが１０より小さいか否かを判定する。ステップＳ２３で、変数ｊが１０より小さいと判定された場合、ステップＳ２４において、CPU１１は、配列data[j]と変数ｊを乗算した結果（data[j]×ｊ）に変数sum1を加算した値を変数sum1とするとともに、配列data[j]に変数sum2を加算した値を変数sum2とする。
【０１２０】
ステップＳ２５において、CPU１１は、変数ｊを１だけインクリメントする。その後、処理は、ステップＳ２３に戻る。
【０１２１】
一方、ステップＳ２３において、変数ｊが１０以上であると判定された場合、ステップＳ２６において、CPU１１は、予測真値ｙn-1’に対応する変数ipvを求める演算を行い、処理を終了する。即ち、図７を参照して説明したように、データが正順で、ｎ＝１０の場合の積和Ｔの係数βは３／５５であり、総和Ｒの係数αは−８／５５であるので、（sum1×３−sum2×８）／５５の演算結果を変数ipvに格納して、処理を終了する。
【０１２２】
図１５は、図１４のフローチャートに対応するプログラム例を示している。
【０１２３】
図１５において、一番下の行の行頭にあるスラッシュ（／／）は、コメント処理を表し、CPU１１は、その行を実行しない。コメント処理されている行は、（sum1×３−sum2×８）／５５の演算結果に２７／５５（５５の１／２の値）を加算することにより、（sum1×３−sum2×８）／５５の演算結果を四捨五入して変数ipvに格納する場合のコードを示している。
【０１２４】
図１５のプログラムを実行した場合、CPU１１は、コメント処理された行の１行上までを実行し、（sum1×３−sum2×８）／５５の演算結果に小数点以下の端数が生じた場合、その端数を切り捨てて、変数ipvに格納する。一方、（sum1×３−sum2×８）／５５の演算結果を四捨五入した値を予測真値ｙn-1’としたい場合には、コメント処理されている行が有効になされ、その行の１行上の行がコメント処理される。これにより、変数ipvに格納される予測真値ｙn-1’は、（sum1×３−sum2×８）／５５の演算結果を四捨五入した値となる。
【０１２５】
図１６は、データが逆順であって、１次の回帰式ｙ＝ａｘ＋ｂを用いた場合の、直近のデータｙ0の予測真値ｙ0’を求める予測演算処理のフローチャートである。
【０１２６】
ステップＳ４１乃至Ｓ４５の処理は、図１４を参照して説明したステップＳ２１乃至Ｓ２５の処理とそれぞれ同様であるので、その説明は省略する。
【０１２７】
ステップＳ４３で、変数ｊが１０以上であると判定された場合、ステップＳ４６において、CPU１１は、予測真値ｙ0’に対応する変数ipvを求める演算を行い、処理を終了する。即ち、図８を参照して説明したように、データが逆順で、ｎ＝１０の場合の積和Ｔの係数βは−３／５５であり、総和Ｒの係数αは１９／５５であるので、（−sum1×３＋sum2×１９）／５５の演算結果を変数ipvに格納して、処理を終了する。
【０１２８】
図１７は、図１６のフローチャートに対応するプログラム例を示している。
【０１２９】
図１７においても、コメント処理されている一番下の行は、（−sum1×３＋sum2×１９）／５５の演算結果に小数点以下の端数が生じたとき、その演算結果を四捨五入して変数ipvに格納する場合のコードを示しており、１行上の（−sum1×３＋sum2×１９）／５５の演算結果を切り捨てて変数ipvに格納する場合に代えて採用することができる。
【０１３０】
図１８は、データが正順であって、２次の回帰式ｙ＝ａｘ2＋ｂｘ＋ｃを用いた場合の、直近のデータｙn-1の予測真値ｙn-1’を求める予測演算処理のフローチャートである。
【０１３１】
初めに、ステップＳ６１において、予測装置１００のCPU１１は、データの個数をカウントする変数ｊに０を代入する。
【０１３２】
ステップＳ６２において、CPU１１は、式（２３）の積和Ｑに対応する変数sum1、式（２３）の積和Ｔに対応する変数sum2、および、式（２３）の総和Ｒに対応する変数sum3に０を代入する。ステップＳ６１およびＳ６２の処理は、変数ｊ，sum1，sum2、およびsum3を初期化する処理である。
【０１３３】
ステップＳ６３において、CPU１１は、変数ｊが１０より小さいか否かを判定する。ステップＳ６３で、変数ｊが１０より小さいと判定された場合、ステップＳ６４において、CPU１１は、配列data[j]と変数ｊの２乗を乗算した結果（data[j]×ｊ×ｊ）に変数sum1を加算した値を変数sum1とし、配列data[j]と変数ｊを乗算した結果（data[j]×ｊ）に変数sum2を加算した値を変数sum2とするとともに、配列data[j]に変数sum3を加算した値を変数sum3とする。
【０１３４】
ステップＳ６５において、CPU１１は、変数ｊを１だけインクリメントする。その後、処理は、ステップＳ６３に戻る。
【０１３５】
一方、ステップＳ６３において、変数ｊが１０以上であると判定された場合、ステップＳ６６において、CPU１１は、予測真値ｙn-1’に対応する変数ipvを求める演算を行い、処理を終了する。即ち、図９を参照して説明したように、データが正順で、ｎ＝１０の場合の積和Ｑの係数γは５／２２０であり、積和Ｔの係数βは−３３／２２０であり、総和Ｒの係数αは２８／２２０であるので、（sum1×５−sum2×３３＋sum3×２８）／２２０の演算結果を変数ipvに格納して、処理を終了する。
【０１３６】
図１９は、図１８のフローチャートに対応するプログラム例を示している。
【０１３７】
図１９のプログラムを実行した場合、CPU１１は、コメント処理された行の１行上までを実行し、（sum1×５−sum2×３３＋sum3×２８）／２２０の演算結果に小数点以下の端数が生じた場合、その端数を切り捨てて、変数ipvに格納する。一方、（sum1×５−sum2×３３＋sum3×２８）／２２０を四捨五入した値を予測真値ｙn-1’としたい場合には、ユーザは、（sum1×５−sum2×３３＋sum3×２８）／２２０の演算結果に１１０／２２０（２２０の１／２の値）が加算されている、コメント処理されている行を、その１行上の行の代わりに実行させるようにする。
【０１３８】
図２０は、データが逆順であって、２次の回帰式ｙ＝ａｘ2＋ｂｘ＋ｃを用いた場合の、直近のデータｙ0の予測真値ｙ0’を求める予測演算処理のフローチャートである。
【０１３９】
ステップＳ８１乃至Ｓ８５の処理は、図１８を参照して説明したステップＳ６１乃至Ｓ６５の処理とそれぞれ同様であるので、その説明は省略する。
【０１４０】
ステップＳ８３で、変数ｊが１０以上であると判定された場合、ステップＳ８６において、CPU１１は、予測真値ｙ0’に対応する変数ipvを求める演算を行い、処理を終了する。即ち、図１０を参照して説明したように、データが逆順で、ｎ＝１０の場合の積和Ｑの係数γは５／２２０であり、積和Ｔの係数βは−５７／２２０であり、総和Ｒの係数αは１３６／２２０であるので、（sum1×５−sum2×５７＋sum3×１３６）／２２０の演算結果を変数ipvに格納して、処理を終了する。
【０１４１】
図２１は、図２０のフローチャートに対応するプログラム例を示している。
【０１４２】
図２１のプログラムを実行した場合、CPU１１は、コメント処理された行の１行上までを実行し、（sum1×５−sum2×５７＋sum3×１３６）／２２０の演算結果に小数点以下の端数が生じた場合、その端数を切り捨てて、変数ipvに格納する。一方、（sum1×５−sum2×５７＋sum3×１３６）／２２０を四捨五入した値を予測真値ｙn-1’としたい場合には、ユーザは、（sum1×５−sum2×５７＋sum3×１３６）／２２０の演算結果に１１０／２２０（２２０の１／２の値）が加算されている、コメント処理されている行を、その１行上の行の代わりに実行させるようにする。
【０１４３】
図２２は、データが正順であって、３次の回帰式ｙ＝ａｘ3＋ｂｘ2＋ｃｘ＋ｄを用いた場合の、直近のデータｙn-1の予測真値ｙn-1’を求める予測演算処理のフローチャートである。
【０１４４】
初めに、ステップＳ１０１において、予測装置１００のCPU１１は、データの個数をカウントする変数ｊに０を代入する。
【０１４５】
ステップＳ１０２において、CPU１１は、式（３２）の積和Ｕに対応する変数sum1、式（３２）の積和Ｑに対応する変数sum2、式（３２）の積和Ｔに対応する変数sum3、式（３２）の総和Ｒに対応する変数sum4とに０を代入する。ステップＳ１０１およびＳ１０２の処理は、変数ｊ，sum1，sum2，sum3、およびsum4を初期化する処理である。
【０１４６】
ステップＳ１０３において、CPU１１は、変数ｊが１０より小さいか否かを判定する。ステップＳ１０３で、変数ｊが１０より小さいと判定された場合、ステップＳ１０４において、CPU１１は、配列data[j]と変数ｊの３乗を乗算した結果（data[j]×ｊ×ｊ×ｊ）に変数sum1を加算した値を変数sum1とし、配列data[j]と変数ｊの２乗を乗算した結果（data[j]×ｊ×ｊ）に変数sum2を加算した値を変数sum2とし、配列data[j]と変数ｊを乗算した結果（data[j]×ｊ）に変数sum3を加算した値を変数sum3とするとともに、配列data[j]に変数sum4を加算した値を変数sum4とする。
【０１４７】
ステップＳ１０５において、CPU１１は、変数ｊを１だけインクリメントする。その後、処理は、ステップＳ１０３に戻る。
【０１４８】
一方、ステップＳ１０３において、変数ｊが１０以上であると判定された場合、ステップＳ１０６において、CPU１１は、予測真値ｙn-1’に対応する変数ipvを求める演算を行い、処理を終了する。即ち、図１１を参照して説明したように、データが正順で、ｎ＝１０の場合の積和Ｕの係数δは３５／４２９０であり、積和Ｑの係数γは−３７５／４２９０であり、積和Ｔの係数βは９７０／４２９０であり、総和Ｒの係数αは−３３６／４２９０であるので、（sum1×３５−sum2×３７５＋sum3×９７０−sum4×３３６）／４２９０の演算結果を変数ipvに格納して、処理を終了する。
【０１４９】
図２３は、図２２のフローチャートに対応するプログラム例を示している。
【０１５０】
図２３のプログラムを実行した場合、CPU１１は、コメント処理された行の１行上までを実行し、（sum1×３５−sum2×３７５＋sum3×９７０−sum4×３３６）／４２９０の演算結果に小数点以下の端数が生じた場合、その端数を切り捨てて、変数ipvに格納する。一方、（sum1×３５−sum2×３７５＋sum3×９７０−sum4×３３６）／４２９０を四捨五入した値を予測真値ｙn-1’としたい場合には、ユーザは、（sum1×３５−sum2×３７５＋sum3×９７０−sum4×３３６）／４２９０の演算結果に２１４５／２１４５（２１４５の１／２の値）が加算されている、コメント処理されている行を、その１行上の行の代わりに実行させるようにする。
【０１５１】
図２４は、データが逆順であって、３次の回帰式ｙ＝ａｘ3＋ｂｘ2＋ｃｘ＋ｄを用いた場合の、直近のデータｙ0の予測真値ｙ0’を求める予測演算処理のフローチャートである。
【０１５２】
ステップＳ１２１乃至Ｓ１２５の処理は、図２２を参照して説明したステップＳ１０１乃至Ｓ１０５の処理とそれぞれ同様であるので、その説明は省略する。
【０１５３】
ステップＳ１２３で、変数ｊが１０以上であると判定された場合、ステップＳ１２６において、CPU１１は、予測真値ｙ0’に対応する変数ipvを求める演算を行い、処理を終了する。即ち、図１２を参照して説明したように、データが逆順で、ｎ＝１０の場合の積和Ｕの係数δは−３５／４２９０であり、積和Ｑの係数γは５７０／４２９０であり、積和Ｔの係数βは−２７２５／４２９０であり、総和Ｒの係数αは３５３４／４２９０であるので、（−sum1×３５＋sum2×５７０−sum3×２７２５＋sum4×３５３４）／４２９０の演算結果を変数ipvに格納して、処理を終了する。
【０１５４】
図２５は、図２４のフローチャートに対応するプログラム例を示している。
【０１５５】
図２５のプログラムを実行した場合、CPU１１は、コメント処理された行の１行上までを実行し、（−sum1×３５＋sum2×５７０−sum3×２７２５＋sum4×３５３４）／４２９０の演算結果に小数点以下の端数が生じた場合、その端数を切り捨てて、変数ipvに格納する。一方、（−sum1×３５＋sum2×５７０−sum3×２７２５＋sum4×３５３４）／４２９０を四捨五入した値を予測真値ｙn-1’としたい場合には、ユーザは、（−sum1×３５＋sum2×５７０−sum3×２７２５＋sum4×３５３４）／４２９０の演算結果に２１４５／４２９０（４２９０の１／２の値）が加算されている、コメント処理されている行を、その１行上の行の代わりに実行させるようにする。
【０１５６】
次に、上述した時系列データとしてのデータ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝の予測真値を求める予測演算処理を、ハードウエアにより実行させる例について説明する。
【０１５７】
図２６は、予測演算処理をハードウエアにより実行させる場合の予測装置の構成例を示すブロック図である。即ち、図２６は、本発明を適用した予測装置の他の実施の形態の構成例を示している。
【０１５８】
図２６において、予測装置１００は、個数計数回路１１１、データ列メモリ１１２、乗算回路１１３−０乃至１１３−（ｎ−１）、予測真値演算回路１１４、および係数値メモリテーブル１１５と、これらの間でデータ（に対応する信号）を伝送するデータ線１１６−０乃至１１６−（ｎ−１），１１７−０乃至１１７−（ｎ−１），１１８，１１９，１２０−０乃至１２０−（ｎ−１），１２１−０乃至１２１−（ｎ−１），１２２−０乃至１２２−（ｎ−１），１２３−０乃至１２３−（ｎ−１），１２４、および１２５とにより構成される。また、データ列メモリ１１２は、ｎ個のメモリ１３１−０乃至１３１−（ｎ−１）により構成されている。
【０１５９】
データ列メモリ１１２には、データ線１１６−０を介して、ｎ個のデータ列｛ｙ0，ｙ1，・・・，ｙn-1｝を構成するデータｙ0乃至ｙn-1が順次供給される。メモリ１３１−ｉ（ｉ＝０乃至ｎ−１）は、自身に次のデータ（次データ）が供給されると、いま記憶しているデータ（現データ）を、データ線１１６−（ｉ＋１）を介して後段のメモリ１３１−（ｉ＋１）に供給した後、現データに次データを上書き記憶するとともに、次データをデータ線１１７−ｉを介して乗算回路１１３−ｉに供給する。なお、メモリ１３１−（ｎ−１）は、後段のメモリに現データを供給することはせず、単に現データに次データを上書きして、次データを乗算回路１１３−（ｎ−１）に供給する。
【０１６０】
従って、メモリ１３１−０乃至１３１−（ｎ−１）に記憶されているデータのうち、最も新しいデータがメモリ１３１−０に記憶されているデータで、最も古い（過去の）データがメモリ１３１−（ｎ−１）に記憶されているデータとなる。この場合、ｎ個のデータ列｛ｙ0，ｙ1，・・・，ｙn-1｝を構成するデータｙ0乃至ｙn-1は、逆順で供給されるものとすると、データｙ0乃至ｙn-1の下付き文字と、メモリ１３１−０乃至１３１−（ｎ−１）の枝番号が一致し、理解が容易となるので、データｙ0乃至ｙn-1は、逆順で供給されるものとして説明する。なお、本予測装置１００が、データが正順である場合においても計算可能であることは言うまでもない。また以下では、変数ｉ（ｉ＝０乃至ｎ−１）は、データの新しさの順番を表しているということができるので、変数ｉを順番号ｉとも称する。
【０１６１】
データ線１１６−０を介して供給されるデータは、個数計数回路１１１にも供給される。個数計数回路１１１は、データ線１１６−０を介して供給されるデータの個数を計数するカウンタを有し、その計数結果をデータ線１１８を介して係数値メモリテーブル１１５に供給する。なお、個数計数回路１１１は、装置起動直後にカウンタを０にリセットする。また、カウンタの最大値は、データ列メモリ１１２を構成するメモリ１３１−１乃至１３１−（ｎ−１）の個数であるｎ個である。
【０１６２】
乗算回路１１３−ｉは、上述した式（１６）（回帰式が１次式である場合）、式（２３）（回帰式が２次式である場合）、または式（３２）（回帰式が３次式である場合）の係数Ｒ，Ｔ，Ｑ、およびＵを計算するための、データｙiと順番号ｉとの乗算、及びデータｙiとＮ乗までの順番号ｉのべき乗との乗算を計算する。
【０１６３】
より具体的には、乗算回路１１３−ｉは、データ線１１７−ｉを介してメモリ１３１−ｉから供給されたデータｙiをデータ線１２０−ｉを介して予測真値演算回路１１４に供給する。このデータｙiは、係数Ｒの計算に利用される。また、乗算回路１１３−ｉは、係数Ｔの計算に利用される、メモリ１３１−ｉから供給されたデータｙiに順番号ｉを乗算した乗算結果をデータ線１２１−ｉを介して予測真値演算回路１１４に供給するとともに、係数Ｑの計算に利用される、メモリ１３１−ｉから供給されたデータｙiに順番号ｉの２乗を乗算した乗算結果をデータ線１２２−ｉを介して予測真値演算回路１１４に供給する。さらに、乗算回路１１３−ｉは、係数Ｕの計算に利用される、メモリ１３１−ｉから供給されたデータｙiに順番号ｉの３乗を乗算した乗算結果をデータ線１２３−ｉを介して予測真値演算回路１１４に供給する。
【０１６４】
予測真値演算回路１１４は、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝のうちの直近のデータｙ0の予測真値ｙ0’を求め、データ線１２５を介して出力する。即ち、予測真値演算回路１１４は、データ線１２０−０乃至１２０−（ｎ−１）を介して供給されるデータｙ0乃至ｙn-1を加算して係数Ｒを計算し、データ線１２１−０乃至１２１−（ｎ−１）を介して供給されるデータｙ0・０乃至ｙn-1・（ｎ−１）を加算して係数Ｔを計算する。また、予測真値演算回路１１４は、データ線１２２−０乃至１２２−（ｎ−１）を介して供給されるデータｙ0・０2乃至ｙn-1・（ｎ−１）2を加算して係数Ｑを計算し、データ線１２３−０乃至１２３−（ｎ−１）を介して供給されるデータｙ0・０3乃至ｙn-1・（ｎ−１）3を加算して係数Ｕを計算する。
【０１６５】
さらに、予測真値演算回路１１４は、計算結果である係数Ｒ，Ｓ，Ｔ、およびＵと、係数値メモリテーブル１１５から供給される係数α，β，γ、およびδとを、式（１６）、（２３）、または式（３２）に従い演算し、その演算結果を、予測真値ｙ0’として出力する。
【０１６６】
係数値メモリテーブル１１５には、個数計数回路１１１からデータ列メモリ１１２に記憶されているデータの個数が供給されるとともに、データ線１１９を介して、回帰式の次数（１次、２次、または３次）を指定する情報が供給される。係数値メモリテーブル１１５は、回帰式が１次乃至３次で、データが正順および逆順に供給された場合に対応する係数α，β，γ、およびδを記憶している。即ち、図７乃至図１２に示したような係数α，β，γ、およびδが係数値メモリテーブル１１５に記憶されている。
【０１６７】
係数値メモリテーブル１１５は、データ線１１９を介して供給される回帰式の次数と、個数計数回路１１１から供給されるデータの個数とに対応する係数α，β，γ、およびδを予測真値演算回路１１４に供給する。
【０１６８】
図２７は、乗算回路１１３−ｉの詳細な構成例を示すブロック図である。
【０１６９】
乗算回路１１３−ｉは、順番号ｉをべき乗したべき乗結果を記憶するメモリ２００−ｉ乃至２０２−ｉと、乗算器２１０−ｉ乃至２１２−ｉにより構成される。
【０１７０】
データ線１１７−ｉを介して、メモリ１３１−ｉ（図２６）から供給されたデータｙiは、乗算器２１０−ｉ乃至２１２−ｉそれぞれに供給されるとともに、データｙiそのものが、データ線１２０−ｉを介して予測真値演算回路１１４に供給される。
【０１７１】
メモリ２００−ｉには、順番号ｉが記憶されており、乗算器２１０−ｉは、メモリ１３１−ｉから供給されたデータｙiと順番号ｉとを乗算し、その乗算結果（順番号乗算結果）をデータ線１２１−ｉを介して予測真値演算回路１１４に供給する。
【０１７２】
メモリ２０１−ｉには、順番号ｉの２乗が記憶されており、乗算器２１１−ｉは、メモリ１３１−ｉから供給されたデータｙiに順番号ｉの２乗を乗算し、その乗算結果（順番号乗算結果）をデータ線１２２−ｉを介して予測真値演算回路１１４に供給する。
【０１７３】
メモリ２０２−ｉには、順番号ｉの３乗が記憶されており、乗算器２１２−ｉは、メモリ１３１−ｉから供給されたデータｙiに順番号ｉの３乗を乗算し、その乗算結果（順番号乗算結果）をデータ線１２３−ｉを介して予測真値演算回路１１４に供給する。
【０１７４】
図２８は、乗算回路１１３−ｉの一例としての乗算回路１１３−２の構成例を示すブロック図である。
【０１７５】
データ線１１７−２を介して、メモリ１３１−２から供給されたデータｙ2は、乗算器２１０−２乃至２１２−２それぞれに供給されるとともに、データｙ2そのものが、データ線１２０−２を介して予測真値演算回路１１４に供給される。
【０１７６】
メモリ２００−２には、順番号２が記憶されており、乗算器２１０−２は、メモリ１３１−２から供給されたデータｙ2と順番号２とを乗算し、その乗算結果をデータ線１２１−２を介して予測真値演算回路１１４に供給する。
【０１７７】
メモリ２０１−２には、順番号２の２乗（すなわち４）が記憶されており、乗算器２１１−２は、メモリ１３１−２から供給されたデータｙ2に順番号２の２乗を乗算し、その乗算結果をデータ線１２２−２を介して予測真値演算回路１１４に供給する。
【０１７８】
メモリ２０２−２には、順番号２の３乗（すなわち８）が記憶されており、乗算器２１２−２は、メモリ１３１−２から供給されたデータｙ2に順番号２の３乗を乗算し、その乗算結果をデータ線１２３−２を介して予測真値演算回路１１４に供給する。
【０１７９】
図２９は、係数値メモリテーブル１１５に記憶されている係数α，β，γ、およびδの例を示している。なお、図２９は、データが逆順に供給された場合の例である。
【０１８０】
図２９の係数値メモリテーブル１１５では、図８、図１０、および図１２に示した、係数Ａ／Ｅで表された係数α、係数Ｂ／Ｅで表された係数β、係数Ｃ／Ｅで表された係数γ、および係数Ｄ／Ｅで表された係数δが、１次、２次、および３次の回帰式それぞれについて記憶されている。
【０１８１】
図３０は、予測真値演算回路１１４の詳細な構成例を示すブロック図である。
【０１８２】
予測真値演算回路１１４は、加算器２３１ａ乃至２３１ｄ、データ線２３２ａ乃至２３２ｄ、メモリ２３３ａ乃至２３３ｄ、データ線２３４ａ乃至２３４ｄおよび２３５a乃至２３５ｄ、乗算器２３６ａ乃至２３６ｄ、データ線２３７ａ乃至２３７ｄ、および加算器２３８により構成される。
【０１８３】
加算器２３１aは、データ線１２０−０乃至１２０−（ｎ−１）を介して供給されるデータｙ0乃至ｙn-1を加算して得られる係数Ｒを、データ線２３２ａを介して乗算器２３６ａに供給する。なお、データ線１２０−０乃至１２０−（ｎ−１）は、それぞれが加算器２３１ａに直接接続されず、相互に接続されてから１本の線として加算器２３１ａに接続されているが、これは図が煩雑になり、見難くなるのを防ぐためである。他の加算器においても同様である。
【０１８４】
加算器２３１ｂは、データ線１２１−０乃至１２１−（ｎ−１）を介して供給されるデータｙ0・０乃至ｙn-1・（ｎ−１）を加算して得られる係数Ｔを、データ線２３２ｂを介して乗算器２３６ｂに供給する。
【０１８５】
加算器２３１ｃは、データ線１２２−０乃至１２２−（ｎ−１）を介して供給されるデータｙ0・０2乃至ｙn-1・（ｎ−１）2を加算して得られる係数Ｑを、データ線２３２ｃを介して乗算器２３６ｃに供給する。
【０１８６】
加算器２３１ｄは、データ線１２３−０乃至１２３−（ｎ−１）を介して供給されるデータｙ0・０3乃至ｙn-1・（ｎ−１）3を加算して得られる係数Ｕを、データ線２３２ｄを介して乗算器２３６ｄに供給する。
【０１８７】
メモリ２３３ａは、データ線２３４ａを介して係数値メモリテーブル１１５から供給される、回帰式の次数とデータの個数とに対応する係数Ａ／Ｅで表された係数αを記憶するとともに、それを必要に応じて乗算器２３６ａにデータ線２３５ａを介して供給する。
【０１８８】
メモリ２３３ｂは、データ線２３４ｂを介して係数値メモリテーブル１１５から供給される、回帰式の次数とデータの個数とに対応する係数Ｂ／Ｅで表された係数βを記憶するとともに、それを必要に応じて乗算器２３６ｂにデータ線２３５ｂを介して供給する。
【０１８９】
メモリ２３３ｃは、データ線２３４ｃを介して係数値メモリテーブル１１５から供給される、回帰式の次数とデータの個数とに対応する係数Ｃ／Ｅで表された係数γを記憶するとともに、それを必要に応じて乗算器２３６ｃにデータ線２３５ｃを介して供給する。
【０１９０】
メモリ２３３ｄは、データ線２３４ｄを介して係数値メモリテーブル１１５から供給される、回帰式の次数とデータの個数とに対応する係数Ｄ／Ｅで表された係数δを記憶するとともに、それを必要に応じて乗算器２３６ｄにデータ線２３５ｄを介して供給する。
【０１９１】
乗算器２３６ａは、加算器２３１ａからの係数Ｒと、メモリ２３３ａからの係数αとを乗算し、その乗算結果をデータ線２３７ａを介して加算器２３８に供給する。乗算器２３６ｂは、加算器２３１ｂからの係数Ｔと、メモリ２３３ｂからの係数βとを乗算し、その乗算結果をデータ線２３７ｂを介して加算器２３８に供給する。乗算器２３６ｃは、加算器２３１ｃからの係数Ｑと、メモリ２３３ｃからの係数γとを乗算し、その乗算結果をデータ線２３７ｃを介して加算器２３８に供給する。乗算器２３６ｄは、加算器２３１ｄからの係数Ｕと、メモリ２３３ｄからの係数δとを乗算し、その乗算結果をデータ線２３７ｄを介して加算器２３８に供給する。
【０１９２】
加算器２３８は、乗算器２３６ａからデータ線２３７ａを介して供給される係数α・Ｒ、乗算器２３６ｂからデータ線２３７ｂを介して供給される係数β・Ｔ、乗算器２３６ｃからデータ線２３７ｃを介して供給される係数γ・Ｑ、および、乗算器２３６ｄからデータ線２３７ｄを介して供給される係数δ・Ｕを加算し、その加算結果を、予測真値ｙ0’としてデータ線１２５を介して出力する。
【０１９３】
上述した例では、１次乃至３次のいずれかの回帰式を仮定したときの、データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝のうちの直近のデータｙ0の予測真値ｙ0’を求める予測装置１００の構成について説明したが、１次かまたは２次の回帰式のみを仮定する場合には、予測装置１００において３次の回帰式を仮定する場合にのみ必要な構成を省略することが可能である。
【０１９４】
図３１は、回帰式の次数を１次かまたは２次に限定した場合の予測装置１００の構成例を示すブロック図である。
【０１９５】
図３１の予測装置１００は、図２６の予測装置１００と比較して、乗算回路１１３−０乃至１１３−（ｎ−１）と予測真値演算回路１１４との間のデータ線１２３−０乃至１２３−（ｎ−１）が省略されている点のみが異なり、それ以外は、図２６の予測装置１００と同様に構成されている。
【０１９６】
回帰式の次数を１次かまたは２次に限定した場合には、式（１６）および式（２３）と、式（３２）とを比較して分かるように、係数δ・Ｕを計算する必要がないため、乗算回路１１３−ｉにおいて、係数Ｕの計算に利用される、データｙiに順番号ｉの３乗を乗算した乗算結果を予測真値演算回路１１４に供給するためのデータ線１２３−ｉが省略されている。
【０１９７】
図３２は、図３１の予測装置１００の乗算回路１１３−ｉの構成例を示すブロック図である。
【０１９８】
図３１の予測装置１００では、上述したようにデータ線１２３−ｉが省略されているので、図３２の乗算回路１１３−ｉは、データ線１２３−ｉを介して出力する、データｙiと順番号ｉの３乗の乗算結果を求めるために設けられていた図２７のメモリ２０２−ｉと乗算器２１２−ｉが省略されており、それ以外は、図２７の乗算回路１１３−ｉと同様に構成されている。
【０１９９】
図３３は、図３１の予測装置１００の予測真値演算回路１１４の構成例を示すブロック図である。
【０２００】
図３１の予測装置１００では、乗算回路１１３−０乃至１１３−（ｎ−１）と接続されるデータ線１２３−０乃至１２３−（ｎ−１）が省略されており、図３３の予測真値演算回路１１４は、データ線１２３−０乃至１２３−（ｎ−１）を介して供給されるデータｙ0・０3乃至ｙn-1・（ｎ−１）3を加算して係数Ｕを計算する必要がないので、係数Ｕの計算のために設けられていた、図３０の加算器２３１ｄ、データ線２３２ｄ、メモリ２３３ｄ、データ線２３４ｄおよび２３５ｄ、並びに乗算器２３６ｄが省略されており、それ以外は、図３０の予測真値演算回路１１４と同様に構成されている。
【０２０１】
さらに、回帰式の次数を１次のみに限定する場合には、回帰式の次数を２次および３次に仮定した場合にのみ必要な構成を省略して、予測装置１００を構成することが可能である。
【０２０２】
図３４は、回帰式の次数を１次のみに限定した場合の予測装置１００の構成例を示すブロック図である。
【０２０３】
図３４の予測装置１００は、図３１の予測装置１００と比較して、乗算回路１１３−０乃至１１３−（ｎ−１）と予測真値演算回路１１４との間のデータ線１２２−０乃至１２２−（ｎ−１）が省略されている点のみが異なり、それ以外は、図３１の予測装置１００と同様に構成されている。
【０２０４】
回帰式の次数を１次のみに限定した場合には、式（１６）と式（２３）とを比較して分かるように、係数γ・Ｑを計算する必要がさらにないため、乗算回路１１３−ｉにおいて、係数Ｑの計算に利用される、データｙiに順番号ｉの２乗を乗算した乗算結果を予測真値演算回路１１４に供給するためのデータ線１２２−ｉが省略されている。
【０２０５】
図３５は、図３４の予測装置１００の乗算回路１１３−ｉの構成例を示すブロック図である。
【０２０６】
図３４の予測装置１００では、上述したようにデータ線１２２−ｉが省略されているので、図３５の乗算回路１１３−ｉは、データ線１２２−ｉを介して出力する、データｙiと順番号ｉの２乗の乗算結果を求めるために設けられていた図３２のメモリ２０１−ｉと乗算器２１１−ｉが省略されており、それ以外は、図３２の乗算回路１１３−ｉと同様に構成されている。
【０２０７】
図３６は、図３４の予測装置１００の予測真値演算回路１１４の構成例を示すブロック図である。
【０２０８】
図３４の予測装置１００では、乗算回路１１３−０乃至１１３−（ｎ−１）と接続されるデータ線１２２−０乃至１２２−（ｎ−１）が省略されており、図３６の予測真値演算回路１１４は、データ線１２２−０乃至１２２−（ｎ−１）を介して供給されるデータｙ0・０2乃至ｙn-1・（ｎ−１）2を加算して係数Ｑを計算する必要がないので、係数Ｑの計算のために設けられていた、図３３の加算器２３１ｃ、データ線２３２ｃ、メモリ２３３ｃ、データ線２３４ｃおよび２３５ｃ、並びに乗算器２３６ｃが省略されており、それ以外は、図３３の予測真値演算回路１１４と同様に構成されている。
【０２０９】
図３１乃至図３６を参照して説明したように、回帰式の次数を１次だけ、または、１次および２次に限定した場合には、予測装置１００の構成をより簡単にすることができる。
【０２１０】
ところで、図２６の係数値メモリテーブル１１５には、図２９を参照して説明したように、係数α、β、γ、およびδが、それぞれ、係数Ａ／Ｅ、係数Ｂ／Ｅ、係数Ｃ／Ｅ、および係数Ｄ／Ｅの分数の形式で記憶されていたが、図３７に示すように、係数Ａ，Ｂ，Ｃ，Ｄ、およびＥを別々に整数として記憶させ、整数だけの演算によって、予測真値を求めるようにすることも可能である。
【０２１１】
図３８は、図２６の係数値メモリテーブル１１５が、図３７に示されるように、係数Ａ，Ｂ，Ｃ，Ｄ、およびＥの整数として記憶されている場合の、予測真値演算回路１１４の構成例を示すブロック図である。
【０２１２】
図３８において、図３０と対応する部分については同一の符号を付してあり、その説明は適宜省略する。
【０２１３】
図３８の予測真値演算回路１１４では、図３０の予測真値演算回路１１４と比較して、データ線２３４ｅおよび２３５ｅ、メモリ２３３ｅ、並びに除算器２５１が新たに設けられている。
【０２１４】
メモリ２３３ａは、データ線２３４ａを介して係数値メモリテーブル１１５から供給される、回帰式の次数とデータの個数とに対応する係数Ａを記憶するとともに、それを必要に応じて乗算器２３６ａにデータ線２３５ａを介して供給する。
【０２１５】
メモリ２３３ｂは、データ線２３４ｂを介して係数値メモリテーブル１１５から供給される、回帰式の次数とデータの個数とに対応する係数Ｂを記憶するとともに、それを必要に応じて乗算器２３６ｂにデータ線２３５ｂを介して供給する。
【０２１６】
メモリ２３３ｃは、データ線２３４ｃを介して係数値メモリテーブル１１５から供給される、回帰式の次数とデータの個数とに対応する係数Ｃを記憶するとともに、それを必要に応じて乗算器２３６ｃにデータ線２３５ｃを介して供給する。
【０２１７】
メモリ２３３ｄは、データ線２３４ｄを介して係数値メモリテーブル１１５から供給される、回帰式の次数とデータの個数とに対応する係数Ｄを記憶するとともに、それを必要に応じて乗算器２３６ｄにデータ線２３５ｄを介して供給する。
【０２１８】
メモリ２３３ｅは、データ線２３４ｅを介して係数値メモリテーブル１１５から供給される、回帰式の次数とデータの個数とに対応する係数Ｅを記憶するとともに、それを必要に応じて除算器２５１にデータ線２３５ｅを介して供給する。
【０２１９】
乗算器２３６ａは、加算器２３１ａからの係数Ｒと、メモリ２３３ａからの係数Ａとを乗算し、その乗算結果をデータ線２３７ａを介して加算器２３８に供給する。乗算器２３６ｂは、加算器２３１ｂからの係数Ｔと、メモリ２３３ｂからの係数Ｂとを乗算し、その乗算結果をデータ線２３７ｂを介して加算器２３８に供給する。乗算器２３６ｃは、加算器２３１ｃからの係数Ｑと、メモリ２３３ｃからの係数Ｃとを乗算し、その乗算結果をデータ線２３７ｃを介して加算器２３８に供給する。乗算器２３６ｄは、加算器２３１ｄからの係数Ｕと、メモリ２３３ｄからの係数Ｄとを乗算し、その乗算結果をデータ線２３７ｄを介して加算器２３８に供給する。
【０２２０】
加算器２３８は、乗算器２３６ａからデータ線２３７ａを介して供給される係数Ａ・Ｒ、乗算器２３６ｂからデータ線２３７ｂを介して供給される係数Ｂ・Ｔ、乗算器２３６ｃからデータ線２３７ｃを介して供給される係数Ｃ・Ｑ、および、乗算器２３６ｄからデータ線２３７ｄを介して供給される係数Ｄ・Ｕを加算し、その加算結果を除算器２５１に供給する。
【０２２１】
除算器２５１は、加算器２３８からの加算結果（係数Ａ・Ｒ＋係数Ｂ・Ｔ＋係数Ｃ・Ｑ＋係数Ｄ・Ｕ）をメモリ２３３ｅからの係数Ｅで除算し、その除算結果を、予測真値ｙ0’としてデータ線１２５を介して出力する。
【０２２２】
また、図１５、図１７、図１９、図２１、図２３、および図２５に示したプログラムを参照して説明したように、予測真値を求める演算を切捨てではなく、四捨五入によって演算精度を向上させるためには、予測真値演算回路１１４を図３９に示すように構成すればよい。
【０２２３】
即ち、図３９の予測真値演算回路１１４は、図３８の予測真値演算回路１１４と比較して、メモリ２３３ｅと加算器２３８との間に、半値回路２６１とデータ線２６２ａおよび２６２ｂが設けられている。
【０２２４】
半値回路２６１は、データ線２６２ａを介してメモリ２３３ｅから供給される係数Ｅの半分の値を演算して、その演算結果をデータ線２６２ｂを介して加算器２３８に供給する。この場合、図３９の予測真値演算回路１１４が、図１５、図１７、図１９、図２１、図２３、および図２５に示したプログラムのコメント処理された行を実行することと等価となり、式（１６）、式（２３）、式（３２）の演算結果を四捨五入した値を予測真値ｙ0’として出力することになる。
【０２２５】
さて、図２を参照して説明した数値例を図２６の予測装置１００で具体的に計算してみる。
【０２２６】
図２を参照して説明した例では、データ列｛ｙ0，ｙ1，ｙ2、ｙ3｝が｛８０，９０，９５，１１０｝である。従って、ｎ＝４である。データｙ0＝８０，ｙ1＝９０，ｙ2＝９５、およびｙ3＝１１０が、その順番でそれぞれ観測されたとすると、データ列メモリ１１２のメモリ１３１−０乃至１３１−３には、それぞれ、１１０、９５、９０、および８０が記憶される。
【０２２７】
図２６において、乗算回路１１３−０は、１１０、１１０×０＝０、１１０×０2＝０、および１１０×０3＝０を演算し、その演算結果をデータ線１２０−０乃至１２３−０を介して予測真値演算回路１１４に供給する。乗算回路１１３−１は、９５、９５×１＝９５、９５×１2＝９５、および９５×１3＝９５を演算し、その演算結果をデータ線１２０−１乃至１２３−１を介して予測真値演算回路１１４に供給する。乗算回路１１３−２は、９０、９０×２＝１８０、９０×２2＝３６０、および９０×２3＝７２０を演算し、その演算結果をデータ線１２０−２乃至１２３−２を介して予測真値演算回路１１４に供給する。乗算回路１１３−３は、８０、８０×３＝２４０、８０×３2＝７２０、および８０×３3＝２１６０を演算し、その演算結果をデータ線１２０−３乃至１２３−３を介して予測真値演算回路１１４に供給する。
【０２２８】
図３０において、予測真値演算回路１１４の加算器２３１aは、データ線１２０−０乃至１２０−３を介して供給される、１１０、９５、９０、および８０を加算した結果である３７５（＝１１０＋９５＋９０＋８０）を係数Ｒとして乗算器２３６ａに供給する。
【０２２９】
加算器２３１ｂは、データ線１２１−０乃至１２１−３を介して供給される、０、９５、１８０、および２４０を加算した結果である５１５（＝０＋９５＋１８０＋２４０）を係数Ｔとして乗算器２３６ｂに供給する。
【０２３０】
加算器２３１ｃは、データ線１２２−０乃至１２２−３を介して供給される、０、９５、３６０、および７２０を加算した結果である１１７５（＝０＋９５＋３６０＋７２０）を係数Ｑとして乗算器２３６ｃに供給する。
【０２３１】
加算器２３１ｄは、データ線１２２−０乃至１２２−３を介して供給される、０、９５、７２０、および２１６０を加算した結果である２９７５（＝０＋９５＋７２０＋２１６０）を係数Ｕとして乗算器２３６ｄに供給する。
【０２３２】
メモリ２３３ａは、係数値メモリテーブル１１５から供給される係数αとしての係数Ａ／Ｅ＝７／１０（図２９参照）を乗算器２３６ａに供給する。メモリ２３３ｂは、係数値メモリテーブル１１５から供給される係数βとしての係数Ｂ／Ｅ＝−３／１０（図２９参照）を乗算器２３６ｂに供給する。
【０２３３】
メモリ２３３ｃは、係数値メモリテーブル１１５から供給される係数γとしての係数Ｃ／Ｅ＝０（図２９参照）を乗算器２３６ｃに供給する。メモリ２３３ｄは、係数値メモリテーブル１１５から供給される係数δとしての係数Ｄ／Ｅ＝０（図２９参照）を乗算器２３６ｄに供給する。
【０２３４】
乗算器２３６ａは、加算器２３１ａからの係数Ｒ＝３７５と、メモリ２３３ａからの係数α＝７／１０とを乗算し、その乗算結果α・Ｒを加算器２３８に供給する。乗算器２３６ｂは、加算器２３１ｂからの係数Ｔ＝５１５と、メモリ２３３ｂからの係数β＝−３／１０とを乗算し、その乗算結果β・Ｔを加算器２３８に供給する。
【０２３５】
乗算器２３６ｃは、加算器２３１ｃからの係数Ｑ＝１１７５と、メモリ２３３ｃからの係数γ＝０とを乗算し、その乗算結果γ・Ｑを加算器２３８に供給する。乗算器２３６ｄは、加算器２３１ｄからの係数Ｕ＝２９７５と、メモリ２３３ｄからの係数δ＝０とを乗算し、その乗算結果δ・Ｕを加算器２３８に供給する。
【０２３６】
加算器２３８は、乗算器２３６ａ乃至２３６ｄからそれぞれ供給されたα・Ｒ、β・Ｔ、γ・Ｑ、およびδ・Ｕを加算し、すなわち、α・Ｒ＋β・Ｔ＋γ・Ｑ＋δ・Ｕ＝３７５×７／１０＋５１５×（−３／１０）＋１１７５×０＋２９７５×０を計算し、その計算結果を予測真値ｙ0’として出力する。いまの場合、３７５×７／１０＋５１５×（−３／１０）＋１１７５×０＋２９７５×０の計算結果は、１０８となり、従来例において、式（６）の連立方程式を解いて求めた予測真値と一致する。
【０２３７】
従って、図２６の予測装置１００によれば、簡単な演算で、時系列データの誤差成分を除去した真のデータを予測することができる。
【０２３８】
以上のように、予測装置１００は、様々な時系列データの誤差成分を除去した値を予測するのに利用することができる。
【０２３９】
なお、上述した例では、１次乃至３次の回帰式を仮定した場合の例について説明したが、４次以降の回帰式を採用することも可能である。
【０２４０】
ところで、これまで上述した例は、過去に観測されたデータ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝のうちの直近のデータの予測真値を求めるものであった。即ち、データが正順である場合には、直近のデータｙn-1の予測真値ｙn-1’を求め、データが逆順である場合には、直近のデータｙ0の予測真値ｙ0’を求めるものであった。
【０２４１】
この考えを、時間軸を表す変数を未来方向に発展させることにより、未来観測されるであろうデータの予測値を求めることが可能である。回帰式として１次式を仮定し、データが逆順である場合を例に説明する。
【０２４２】
１次の回帰式を仮定した場合には、回帰式は、式（１３）で表すことができることは上述した通りである。また、データが逆順である場合、ｘ＝０に対応するデータが観測された直近のデータである。
【０２４３】
従って、時系列に未来方向のｘの値は、−１，−２，−３，・・・となる。そこで、求めたい（予測したい）未来の時刻に対応するｘを−λ（λは正の整数）で表す。λは、未来の程度を表し、λが大となるほど、遠い未来の予測値を予測することになる。
【０２４４】
式（１３）のｘに−λを代入すると、未来の予測値ｙ-λ’は、次式（３４）で表すことができる
【０２４５】
【数３１】
2008090815.tif 000033
【０２４６】
式（３４）を整理すると、式（３５）となる。
【０２４７】
【数３２】
2008090815.tif 000034
【０２４８】
式（３５）は、上述した式（１６）の形式であり、Σｙiの係数
【数３３】
2008090815.tif 000035
がαに、Σｙiｉの係数
【数３４】
2008090815.tif 000036
がβに対応する。従って、予測したい未来の程度λを決定し、決定されたλに応じたαおよびβを計算した結果を、図８の計算結果に加えて係数値メモリテーブル１１５（図２６）に記憶させておくことで、過去に観測されたデータ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝から未来の予測値ｙ-λ’を求めることができる。即ち、未来のデータを予測することができる。
【０２４９】
なお、αおよびβの値をλの関数として係数値メモリテーブル１１５に記憶させておき、任意の未来の時刻について予測することができるようにすることも可能である。
【０２５０】
従って、例えば、この予測方式を、図６に示した風速センサ３５１から得られる風速値を用いた風速警告装置３５２の実施の形態に採用した場合、風速警告装置３５２は、これからどの程度の風速値となるかを予測することができる。
【０２５１】
以上では、回帰式として１次式を仮定し、データが逆順である場合を例に説明したが、データが正順である場合、または、回帰式を２次以上の式で仮定した場合についても同様に未来のデータを予測することができることは勿論である。
【０２５２】
本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２５３】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２５４】
【図１】データ列｛ｙ0，ｙ1，・・・，ｙi，・・・，ｙn-1｝について説明する図である。
【図２】従来の最小二乗法を説明するための具体的な数値例を示す図である。
【図３】従来の最小二乗法を用いたデータ予測処理を説明するフローチャートである。
【図４】本発明を適用した実施の形態であるバッテリ残容量計測装置について説明する図である。
【図５】バッテリの残容量の推移について説明する図である。
【図６】本発明を適用した他の実施の形態である風速警告装置について説明する図である。
【図７】データが正順であって１次の回帰式を用いた予測演算処理の係数αおよびβについて示す図である。
【図８】データが逆順であって１次の回帰式を用いた予測演算処理の係数αおよびβについて示す図である。
【図９】データが正順であって２次の回帰式を用いた予測演算処理の係数α、β、およびγについて示す図である。
【図１０】データが逆順であって２次の回帰式を用いた予測演算処理の係数α、β、およびγについて示す図である。
【図１１】データが正順であって３次の回帰式を用いた予測演算処理の係数α、β、γ、およびδについて示す図である。
【図１２】データが逆順であって３次の回帰式を用いた予測演算処理の係数α、β、γ、およびδについて示す図である。
【図１３】予測装置の構成例を示すブロック図である。
【図１４】データが正順であって１次の回帰式を用いた場合の予測演算処理を説明するフローチャートである。
【図１５】図１４のフローチャートに対応するプログラム例を示す図である。
【図１６】データが逆順であって１次の回帰式を用いた場合の予測演算処理を説明するフローチャートである。
【図１７】図１６のフローチャートに対応するプログラム例を示す図である。
【図１８】データが正順であって２次の回帰式を用いた場合の予測演算処理を説明するフローチャートである。
【図１９】図１８のフローチャートに対応するプログラム例を示す図である。
【図２０】データが逆順であって２次の回帰式を用いた場合の予測演算処理を説明するフローチャートである。
【図２１】図２０のフローチャートに対応するプログラム例を示す図である。
【図２２】データが正順であって３次の回帰式を用いた場合の予測演算処理を説明するフローチャートである。
【図２３】図２２のフローチャートに対応するプログラム例を示す図である。
【図２４】データが逆順であって３次の回帰式を用いた場合の予測演算処理を説明するフローチャートである。
【図２５】図２４のフローチャートに対応するプログラム例を示す図である。
【図２６】予測装置の他の実施の形態の構成例を示すブロック図である。
【図２７】乗算回路の詳細な構成例を示すブロック図である。
【図２８】乗算回路の詳細な構成例を示すブロック図である。
【図２９】係数値メモリテーブルに記憶されている係数α，β，γ、およびδの例を示す図である。
【図３０】予測真値演算回路の詳細な構成例を示すブロック図である。
【図３１】１次または２次の回帰式に限定した場合の予測装置の構成例を示すブロック図である。
【図３２】１次または２次の回帰式に限定した場合の乗算回路の詳細な構成例を示すブロック図である。
【図３３】１次または２次の回帰式に限定した場合の予測真値演算回路の詳細な構成例を示すブロック図である。
【図３４】１次の回帰式に限定した場合の予測装置の構成例を示すブロック図である。
【図３５】１次の回帰式に限定した場合の乗算回路の詳細な構成例を示すブロック図である。
【図３６】１次の回帰式に限定した場合の予測真値演算回路の詳細な構成例を示すブロック図である。
【図３７】係数Ａ，Ｂ，Ｃ，Ｄ、およびＥを別々に整数として記憶させた係数値メモリテーブルの例を示す図である。
【図３８】整数だけの演算によって予測真値を求める予測真値演算回路の構成例を示すブロック図である。
【図３９】図３８の予測真値演算回路よりも演算精度を向上させた予測真値演算回路の構成例を示すブロック図である。
【符号の説明】
【０２５５】
１１  CPU
１３  RAM
１００  予測装置
１１２  データ列メモリ
１１３−０乃至１１３−（ｎ−１）  乗算回路
１１４  予測真値演算回路
１１５  係数値メモリテーブル
１３１−０乃至１３１−（ｎ−１）  メモリ
２１０−ｉ乃至２１２−ｉ  乗算器
２００−ｉ乃至２０２−ｉ  メモリ
２３１ａ乃至２３１ｄ  加算器
２３６ａ乃至２３６ｄ  乗算器
２３８  加算器
２５１  除算器
２６１  半値回路
【図１】
2008090815.tif 000037
【図２】
2008090815.tif 000038
【図３】
2008090815.tif 000039
【図４】
2008090815.tif 000040
【図５】
2008090815.tif 000041
【図６】
2008090815.tif 000042
【図７】
2008090815.tif 000043
【図８】
2008090815.tif 000044
【図９】
2008090815.tif 000045
【図１０】
2008090815.tif 000046
【図１１】
2008090815.tif 000047
【図１２】
2008090815.tif 000048
【図１３】
2008090815.tif 000049
【図１４】
2008090815.tif 000050
【図１５】
2008090815.tif 000051
【図１６】
2008090815.tif 000052
【図１７】
2008090815.tif 000053
【図１８】
2008090815.tif 000054
【図１９】
2008090815.tif 000055
【図２０】
2008090815.tif 000056
【図２１】
2008090815.tif 000057
【図２２】
2008090815.tif 000058
【図２３】
2008090815.tif 000059
【図２４】
2008090815.tif 000060
【図２５】
2008090815.tif 000061
【図２６】
2008090815.tif 000062
【図２７】
2008090815.tif 000063
【図２８】
2008090815.tif 000064
【図２９】
2008090815.tif 000065
【図３０】
2008090815.tif 000066
【図３１】
2008090815.tif 000067
【図３２】
2008090815.tif 000068
【図３３】
2008090815.tif 000069
【図３４】
2008090815.tif 000070
【図３５】
2008090815.tif 000071
【図３６】
2008090815.tif 000072
【図３７】
2008090815.tif 000073
【図３８】
2008090815.tif 000074
【図３９】
2008090815.tif 000075