(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】平均値逐次計算装置
(51)【国際特許分類】
H03H 17/04 20060101AFI20231212BHJP
【FI】
H03H17/04 635Z
H03H17/04 655Z
(21)【出願番号】P 2019105639
(22)【出願日】2019-06-05
【審査請求日】2022-04-08
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】小松 孝彰
【審査官】志津木 康
(56)【参考文献】
【文献】特開2001-111385(JP,A)
【文献】特開2017-122908(JP,A)
【文献】特開2011-023927(JP,A)
【文献】特開2008-022335(JP,A)
【文献】特開2008-128998(JP,A)
【文献】米国特許出願公開第2015/0236669(US,A1)
【文献】米国特許出願公開第2011/0131265(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01R23/00-23/20
H03H17/00-17/08
(57)【特許請求の範囲】
【請求項1】
乗除算をシフト演算で代用し、逐次入力される入力値の平均値を出力する可変Infinite Impulse Response (IIR)ローパスフィルタと、
前記ローパスフィルタへの入力回数をカウントし、当該入力回数に基づいて前記シフト演算のビット数を設定することにより、前記ローパスフィルタの遮断周波数を制御する設定部と、を備える平均値逐次計算装置。
【請求項2】
前記ローパスフィルタは、
算術右シフト演算を実行可能なシフタを備え、
入力値から1サイクル前の出力値を減じた値を、前記設定部により設定されたビット数だけ前記シフタで算術右シフトした値に、前記1サイクル前の出力値を加えた値を出力値とし、
前記設定部は、前記入力回数の対数に基づいて前記算術右シフト演算のビット数を設定する請求項1に記載の平均値逐次計算装置。
【請求項3】
前記ローパスフィルタは、
算術右シフト演算を実行可能な第1シフタと、
左シフト演算を実行可能な第2シフタと、を備え、
入力値に、1サイクル前の入力値を加えると共に、1サイクル前の出力値を前記第2シフタで1ビット左シフトした値を減じた値を、前記設定部により設定されたビット数だけ前記第1シフタで算術右シフトした値に、前記1サイクル前の出力値を加えた値を出力値とし、
前記設定部は、前記入力回数の対数に基づいて前記算術右シフト演算のビット数を設定する請求項1に記載の平均値逐次計算装置。
【請求項4】
前記算術右シフト演算は所定の最大ビット数を上限とし、
前記設定部は、前記入力回数の対数と前記最大ビット数とのいずれか小さい方を、前記算術右シフト演算のビット数として設定する請求項2又は請求項3に記載の平均値逐次計算装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、時系列データの平均値を計算する装置に関する。
【背景技術】
【0002】
従来、時系列データを平滑化する際に、短期間の移動平均ではなく、長期間の平均値を逐次計算することが必要となる場合がある。
例えば、特許文献1には、ローパスフィルタを用いて観測値の平均化を行う技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般に、乗除算、特に除算をソフトウェアで実現すると計算時間が長く、ハードウェアで実現すると回路規模が大きくなることが知られている。
条件によっては乗除算を用いない平均化手法も提案されているが、平均値に収束するまでに時間が掛かり過ぎていた。また、収束の早い平均化手法では、除算が必要なため、計算の負荷が大きくなっていた。
そこで、時系列データの平均値逐次計算を、高速かつ小規模な電子回路で実現できる装置が望まれている。
【課題を解決するための手段】
【0005】
本開示の一態様である平均値逐次計算装置は、乗除算をシフト演算で代用し、逐次入力される入力値の平均値を出力する可変Infinite Impulse Response (IIR)ローパスフィルタと、前記ローパスフィルタへの入力回数をカウントし、当該入力回数に基づいて前記シフト演算のビット数を設定することにより、前記ローパスフィルタの遮断周波数を制御する設定部と、を備える。
【発明の効果】
【0006】
一態様によれば、時系列データの平均値逐次計算が、高速かつ小規模な電子回路で実現される。
【図面の簡単な説明】
【0007】
【
図1】従来技術による平均値逐次計算の第1の方法を示す図である。
【
図2】従来技術による平均値逐次計算の第2の方法を示す図である。
【
図3】従来技術による平均値逐次計算の第2の方法を実施するための計算装置の回路構成を示すブロック図である。
【
図4】本開示における平均値逐次計算装置の全体構成を示すブロック図である。
【
図5】第1実施形態における平均値逐次計算装置の回路構成を示すブロック図である。
【
図6】第1実施形態における平均値逐次計算装置による平均値の計算方法を示す図である。
【
図7】第1実施形態における天井関数の出力を例示する図である。
【
図8】第2実施形態における平均値逐次計算装置の回路構成を示すブロック図である。
【
図9】第2実施形態における平均値逐次計算装置による平均値の計算方法を示す図である。
【
図10】平均値逐次計算結果を比較して示すグラフである。
【
図11】平均値逐次計算結果の初期段階を描画したグラフである。
【
図12】第3実施形態における制御装置の機能構成を示すブロック図である。
【
図13】第4実施形態における制御周期信号の生成方法を例示する図である。
【
図14】第4実施形態における制御装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【0008】
本開示では、まず、比較のため従来の平均値計算の方法を説明し、実施形態である平均値逐次計算装置の構成例及び計算方法を示す。さらに、平均値逐次計算装置の適用例として、産業機械等における制御装置に対して、性能指標を測定する機能、及び他の制御装置との間で制御周期信号を同期させる機能を実装する場合を示す。
【0009】
図1は、従来技術による平均値逐次計算の第1の方法を示す図である。
第1の方法では、定数α(0<α<1)を用いて、n番目の入力値x
nに対して、出力値y
n=α(x
n-y
n-1)+y
n-1が逐次に出力される。出力値y
nは、x
1~x
nのそれぞれに重み付けした平均値となっている。
ここで、α=2
-Nの場合、乗算はシフト演算で実行可能なため、計算の負荷は小さくなるが、平均値への収束が遅い。
【0010】
図2は、従来技術による平均値逐次計算の第2の方法を示す図である。
第2の方法では、時系列データの入力回数nと上限値Nとを用いて、n番目の入力値x
nに対して、出力値y
n=(x
n-y
n-1)/k+y
n-1が逐次に出力される。出力値y
nは、k=min{N,n}個の入力値を平均した値となっている。
【0011】
図3は、従来技術による平均値逐次計算の第2の方法を実施するための計算装置100の回路構成を示すブロック図である。
計算装置100は、除算器(Divider)110と、1サイクルの遅れ要素(Delay element)120と、時系列データ(サンプル値)の入力回数をカウントするカウンタ130と、減算器140と、加算器150とを備える。
【0012】
除算器110には、入力値xから1サイクル前の出力値を減じた値(A)と、サンプル値の入力回数(B)とが入力される。続いて、除算の結果A/Bに1サイクル前の出力値が加算されて出力値yとなる。
なお、カウンタ130は、入力回数(B)を所定の上限値Nで飽和させてよい。
【0013】
このように、第2の方法では、除算に伴い回路規模が大きくなる。また、ソフトウェアで構成されたとしても、除算に伴う処理負荷が大きくなる。
そこで、本開示では、乗除算をシフト演算で代用することにより、乗算器及び除算器を用いない平均値逐次計算装置1を提案する。
【0014】
図4は、平均値逐次計算装置1の全体構成を示すブロック図である。
平均値逐次計算装置1は、逐次入力される入力値の平均値を出力する可変Infinite Impulse Response (IIR)ローパスフィルタ10と、ローパスフィルタ10の可変パラメータを設定する設定部15とを備える。
【0015】
設定部15は、ローパスフィルタ10へのサンプル値の入力回数をカウントし、この入力回数に基づいてシフト演算のビット数を設定することにより、ローパスフィルタ10の遮断周波数を制御する。
なお、入力回数は、シフト演算可能なビット数の上限に応じて、所定の値で飽和させてよい。
【0016】
平均値逐次計算装置1は、乗除算をシフト演算で代用した乗除算器フリーなローパスフィルタ10を用いることで、計算の負荷を低減し、高速かつ小規模な電子回路で時系列データの平均値を逐次計算できる。
以下、平均値逐次計算装置1の具体的な構成例として、ローパスフィルタ10の構成が異なる第1実施形態及び第2実施形態を示す。
【0017】
[第1実施形態]
図5は、第1実施形態における平均値逐次計算装置1aの回路構成を示すブロック図である。
平均値逐次計算装置1aは、ローパスフィルタ10aと、設定部15とを備える。
【0018】
ローパスフィルタ10aは、算術右シフト演算を実行可能なシフタ11と、1サイクル前の出力値を得るための遅れ要素12と、減算器16と、加算器17とを備える。ローパスフィルタ10aは、入力値xから1サイクル前の出力値を減じた値を、設定部15により設定されたビット数だけシフタ11で算術右シフトした値に、1サイクル前の出力値を加えた値を出力値yとする。
設定部15は、入力回数nの対数(log2n)に基づいて算術右シフト演算のビット数を設定する。
【0019】
図6は、第1実施形態における平均値逐次計算装置1aによる平均値の計算方法を示す図である。
【0020】
平均値逐次計算装置1aは、時系列データの入力回数nと、シフト演算の上限ビット数Kとを用いて、n番目の入力値xnに対して、出力値yn=(xn-yn-1)/2k+yn-1を逐次に出力する。出力値ynは、x1~xnのそれぞれに対して、k=min{K,ceiling(log2n)}に応じた重み付けした平均値となっている。
ここで、関数ceiling(p)は、p以上の最小の整数である。
【0021】
図7は、第1実施形態における天井関数の出力を例示する図である。
x
nが入力される直前の入力回数のカウンタにおいて、値が1となっている最上位ビットの番号が関数値として出力される。入力回数カウンタに値が1となっているビットが存在しない場合は、0が関数値として出力される。
例えば、直前のカウンタの下から5ビット目が1であり、それより上のビットに1がない場合、1~4ビット目の値に関わらず、ceiling(log
2n)=5となる。また、1回目の入力の場合(n=1)、直前の入力回数カウンタの値が0であり、値が1となっているビットが存在しないので、ceiling(log
2n)=0である。
【0022】
[第2実施形態]
図8は、第2実施形態における平均値逐次計算装置1bの回路構成を示すブロック図である。
平均値逐次計算装置1bは、ローパスフィルタ10bと、設定部15とを備える。
【0023】
ローパスフィルタ10bは、第1実施形態と同様に、算術右シフト演算を実行可能なシフタ11(第1シフタ)と、1サイクル前の出力値を得るための遅れ要素12と、加減算器18と、加算器17とを備え、さらに、算術左シフト演算を実行可能なシフタ13(第2シフタ)と、1サイクル前の入力値を得るための遅れ要素14とを備える。
【0024】
ローパスフィルタ10bは、入力値xに、1サイクル前の入力値を加えると共に、1サイクル前の出力値をシフタ13で1ビット算術左シフト(2倍)した値を減じた値を、設定部15により設定されたビット数だけシフタ11で算術右シフトした値に、1サイクル前の出力値を加えた値を出力値yとする。ここで、入力値xが非負である場合(符号なし数である場合)、出力値yも非負(符号なし数)と見なせるので、算術左シフトは論理左シフトでかまわない。
設定部15は、入力回数nの対数(log2n)に基づいてシフタ11による算術右シフト演算のビット数を設定する。
【0025】
図9は、第2実施形態における平均値逐次計算装置1bによる平均値の計算方法を示す図である。
【0026】
平均値逐次計算装置1bは、時系列データの入力回数nと、シフト演算の上限ビット数Kとを用いて、n番目の入力値xnに対して、出力値yn=(xn+xn-1-2yn-1)/2k+yn-1を逐次に出力する。出力値ynは、x1~xnのそれぞれに対して、k=min{K,ceiling(log2n)}に応じた重み付けした平均値となっている。
【0027】
図10は、従来技術による第1の方法及び第2の方法、並びに第1実施形態の計算方法及び第2実施形態の計算方法のそれぞれを用いた場合の、平均値逐次計算結果を比較して示すグラフである。
【0028】
高周波の入力波形に対して、従来技術による第1の方法では、平均値への収束に長時間を要しているが、従来技術による第2の方法では、計算結果は短時間で平均値に収束し、入力波形が平滑化されている。
これに対して、第1実施形態及び第2実施形態の計算方法によれば、従来技術による第2の方法と同等の計算結果が得られ、図中では従来技術による第2の方法と重なって描画されている。
【0029】
図11は、
図10のグラフにおける時間軸を拡大して、平均値逐次計算結果の初期段階を描画したグラフである。
第1実施形態及び第2実施形態の計算結果は、初期段階から速やかに平均値に収束し、従来技術による第2の方法と同等の結果が得られている。
【0030】
第1実施形態又は第2実施形態によれば、例えば、以下の作用効果(A1)~(A3)が得られる。
【0031】
(A1) 平均値逐次計算装置1は、乗除算をシフト演算で代用し、逐次入力される入力値の平均値を出力する可変IIRローパスフィルタ10と、ローパスフィルタ10への入力回数をカウントし、入力回数に基づいてシフト演算のビット数を設定することにより、ローパスフィルタ10の遮断周波数を制御する設定部15と、を備える。
【0032】
これにより、平均値逐次計算装置1(1a又は1b)は、乗除算をシフト演算で代用した乗除算器フリーなローパスフィルタ10(10a又は10b)を用いることで、計算の負荷を低減し、高速かつ小規模な電子回路で時系列データの平均値を逐次計算できる。
【0033】
(A2) (A1)に記載の平均値逐次計算装置1において、ローパスフィルタ10は、算術右シフト演算を実行可能なシフタ11を備え、入力値から1サイクル前の出力値を減じた値を、設定部15により設定されたビット数だけシフタ11で算術右シフトした値に、1サイクル前の出力値を加えた値を出力値とし、設定部15は、入力回数の対数に基づいて算術右シフト演算のビット数を設定してもよい。
【0034】
これにより、平均値逐次計算装置1aは、除算をシフタ11で代用し、サンプル値の入力回数の対数に基づいてシフト演算のビット数を制御することで、平均値の計算負荷を低減し、高速かつ小規模な電子回路を実現できる。
【0035】
(A3) (A1)に記載の平均値逐次計算装置1において、ローパスフィルタ10は、算術右シフト演算を実行可能なシフタ11と、左シフト演算を実行可能なシフタ13と、を備え、入力値に、1サイクル前の入力値を加えると共に、1サイクル前の出力値をシフタ13で1ビット左シフトした値を減じた値を、設定部15により設定されたビット数だけシフタ11で算術右シフトした値に、1サイクル前の出力値を加えた値を出力値とし、設定部15は、入力回数の対数に基づいて算術右シフト演算のビット数を設定してもよい。
【0036】
これにより、平均値逐次計算装置1bは、除算をシフタ11で、乗算をシフタ13でそれぞれ代用し、サンプル値の入力回数の対数に基づいて右シフト演算のビット数を制御することで、平均値の計算負荷を低減し、高速かつ小規模な電子回路を実現できる。
なお、シフタ13によるシフト演算は、算術左シフトであってよいが、これには限られない。入力値が非負である場合(符号なし数である場合)、出力値も非負(符号なし数)と見なせるので、シフタ13によるシフト演算は、論理左シフトでかまわない。
【0037】
(A4) (A2)又は(A3)に記載の平均値逐次計算装置において、算術右シフト演算は所定の最大ビット数を上限とし、設定部15は、入力回数の対数と最大ビット数とのいずれか小さい方を、算術右シフト演算のビット数として設定してもよい。
【0038】
これにより、平均値逐次計算装置1(1a又は1b)は、運用上必要な範囲でローパスフィルタ10の遮断周波数を限定することで、シフト演算に関する回路規模を限定した小規模な電子回路を実現できる。
【0039】
次に、平均値逐次計算装置1(1a又は1b)を、産業機械の制御装置に対して適用した例として、第3実施形態及び第4実施形態を示す。
【0040】
[第3実施形態]
第3実施形態の制御装置2は、処理性能を判定、動作プログラムのデバッグ、又は動作の異常検知等のために、性能指標を測定し出力する。
【0041】
図12は、第3実施形態における制御装置2の機能構成を示すブロック図である。
制御装置2は、性能指標を測定する測定部21と、性能指標の平均値を逐次計算する計算部22とを備える。
【0042】
測定部21は、次の複数の性能指標のうち、少なくとも一つを測定する。
・所定の制御周期毎の必須処理所要時間
・所定の制御周期毎の特定の割り込みの発生回数
・所定の制御周期毎のシングルリード回数
・所定の制御周期毎のシングルライト回数
・所定の制御周期毎のバーストリード回数
・所定の制御周期毎のバーストライト回数
・所定の制御周期毎のリードバイト数
・所定の制御周期毎のライトバイト数
・所定の制御周期毎のバスアイドル時間
・所定の制御周期毎のバスオーバラップ時間
・所定の制御周期毎の指定条件ヒット回数
・シングルリードのレイテンシ
・シングルライトのレイテンシ
・バーストリードのレイテンシ
・バーストライトのレイテンシ
【0043】
ここで、バスアイドル時間とは、バスのアウトスタンディング数(未完了トランザクションの数)が0である状態のクロックサイクル数をカウントしたものとする。また、バスオーバラップ時間とは、バスのアウトスタンディング数が2以上である状態のクロックサイクル数をカウントしたものとする。なお、測定部21は、これらの代わりに、バスのアウトスタンディング数が1の状態であるクロックサイクル数、バスのアウトスタンディング数が2の状態であるクロックサイクル数、バスのアウトスタンディング数が3以上の状態であるクロックサイクル数等を測定する構成であってもよい。
また、シングルリード及びシングルライトのレイテンシは、アクセスサイズ又はアクセス先アドレスでフィルタリングして測定されてもよい。例えば、1バイトアクセスと2バイトアクセスと4バイトアクセスと8バイトアクセスとを分けて測定されてもよい。バーストリード及びバーストライトのレイテンシは、バースト長又はアクセス先アドレスでフィルタリングして測定されてもよい。例えば、最大バースト長のバストランザクションに限定してレイテンシが測定されてもよい。
【0044】
上記の性能指標の測定ポイントは、制御装置2内に複数あってもよい。例えば、制御装置2内の各CPUのバスのマスタポートとスレーブポート、バスブリッジのマスタポートとスレーブポート、DMAコントローラのマスタポート、メモリコントローラのスレーブポート等に上記の性能指標の測定ポイントがあってよい。
【0045】
計算部22は、測定部21により測定された性能指標の最小値、最大値の他、平均値を逐次計算する。
ここで、計算部22は、前述の第1実施形態又は第2実施形態の平均値逐次計算装置1(1a又は1b)を含んで構成されてよい。すなわち、計算部22は、乗除算をシフト演算で代用し、逐次入力される性能指標の平均値を出力する可変IIRローパスフィルタ10(10a又は10b)を備える。さらに、計算部22は、ローパスフィルタ10への入力回数をカウントし、入力回数に基づいてシフト演算のビット数を設定することにより、ローパスフィルタの遮断周波数を制御する設定部15を備える。
【0046】
なお、計算部22は、制御装置2の一部として構成されてもよいが、制御装置2と通信接続された外付けの情報処理装置であってもよい。
【0047】
第3実施形態によれば、例えば、次の作用効果(B1)~(B2)が得られる。
【0048】
(B1) 制御装置2は、制御周期毎の必須処理所要時間、制御周期毎の特定の割り込みの発生回数、制御周期毎のシングルリード回数、制御周期毎のシングルライト回数、制御周期毎のバーストリード回数、制御周期毎のバーストライト回数、制御周期毎のリードバイト数、制御周期毎のライトバイト数、制御周期毎のバスアイドル時間、制御周期毎のバスオーバラップ時間、制御周期毎の指定条件ヒット回数、シングルリードのレイテンシ、シングルライトのレイテンシ、バーストリードのレイテンシ、又はバーストライトのレイテンシの少なくとも一つを含む性能指標を測定する測定部21と、性能指標の平均値を逐次計算する計算部22と、を備える。
【0049】
これにより、制御装置2は、制御周期毎に測定される性能指標の長期間にわたる傾向として平均値を逐次に出力し、処理性能の判定、動作プログラムのデバッグ、又は動作の異常検知等のために適時に提供できる。
【0050】
(B2) (B1)に記載の制御装置2において、計算部22は、乗除算をシフト演算で代用し、逐次入力される性能指標の平均値を出力する可変IIRローパスフィルタ10と、ローパスフィルタ10への入力回数をカウントし、入力回数に基づいてシフト演算のビット数を設定することにより、ローパスフィルタ10の遮断周波数を制御する設定部15と、を備えてもよい。
【0051】
これにより、制御装置2は、回路規模が小さく高速な平均値逐次計算を実現し、性能指標の平均値を容易に提供できる。
【0052】
[第4実施形態]
第4実施形態では、複数の制御装置3が互いに通信路を介して接続され、各制御装置3は、時刻同期した制御周期信号を生成する。
【0053】
図13は、第4実施形態における制御周期信号の生成方法を例示する図である。
複数の制御装置3は、マスタとスレーブとの間でローカルエリアネットワーク(LAN)のPrecision Time Protocol (PTP)、又はPCI ExpressのPrecision Time Measurement (PTM)による時刻同期を行う。
【0054】
同期された各制御装置3は、Pulse Per Second (PPS)信号を発生させ、このPPS信号の周期TPPSをm/M倍した制御周期TITPを示すInterpolation Timing Pulse (ITP)信号を生成する。
すなわち、kM+m番目のITP信号の時刻ITPkM+mは、k番目及びk+1番目のPPS信号の時刻PPSk及びPPSk+1に基づいて、次のように定義される。
ITPkM+m=PPSk+1+(PPSk+1-PPSk)・m/M
(m=0,1,・・・,M-1)
【0055】
図14は、第4実施形態における制御装置3の機能構成を示すブロック図である。
制御装置3は、同期部31と、PPS信号発生部32と、周期測定器33(測定部)と、ジッタ除去フィルタ34(計算部)と、ITP信号生成部35(制御周期信号生成部)とを備える。
【0056】
同期部31は、制御装置3の内蔵時計を、通信路を介してマスタの制御装置3と同期させる。
PPS信号発生部32は、同期された内蔵時計に基づいて、PPS信号を発生させる。
なお、同期部31及びPPS信号発生部32は、PTP対応のイーサネット(登録商標)コントローラ、又はPTM対応のPCI Expressコア等、時刻同期可能な通信コントローラであってよい。
【0057】
周期測定器33は、PPS信号よりも十分に速い周波数の基準クロックにより、PPS信号の周期、すなわちパルス間の時間(クロックサイクル数)を測定する。
このとき、周期測定器33は、測定結果を所定倍(N倍)した値を出力してもよい。
【0058】
ジッタ除去フィルタ34は、周期測定器33により測定された周期の平均値を逐次計算することで、PPS信号のジッタ、すなわち周期の揺らぎを除去する。
ここで、ジッタ除去フィルタ34は、前述の第1実施形態又は第2実施形態の平均値逐次計算装置1(1a又は1b)を含んで構成されてよい。すなわち、ジッタ除去フィルタ34は、乗除算をシフト演算で代用し、逐次入力される周期の平均値を出力する可変IIRローパスフィルタ10と、ローパスフィルタ10への入力回数をカウントし、入力回数に基づいてシフト演算のビット数を設定することにより、ローパスフィルタ10の遮断周波数を制御する設定部15と、を備える。
【0059】
ITP信号生成部35は、周期測定器33により測定され、ジッタ除去フィルタ34により平滑化された周期の平均値に基づいて、PPS信号のパルス数を逓倍して制御周期を示すITP信号を生成する。
【0060】
具体的には、まず、逓倍数設定レジスタ351により逓倍数Mが設定され、除算器352によりM00・・・0(Lビットの0)をPPS周期(クロックサイクル数)で割った結果がLビット累算器353に入力される。Lビット累算器353において、入力がPPS周期(クロックサイクル数)の数だけ加算されると、M回の桁あふれ(キャリー)が発生する。この結果、キャリー信号は、PPS信号のM逓倍となる。
このキャリー信号をインクリメンタ354がカウントし、カウント数が比較器355によりMと比較される。M回カウントされるとカウント数はリセットされる。そして、ITP信号生成部35は、このカウント数が0のときPPS信号を、0以外のときキャリー信号をITP信号として出力する。
【0061】
ここでは、PPS信号をM逓倍したITP信号を生成する場合を示したが、ITP信号の周期はこれに限られない。例えば、周期測定器33がPPS信号の周期のN倍を出力すると、ITP信号生成部35は、N倍された周期をM分割したパルスを生成する。このため、PPS信号をM/N逓倍したITP信号が出力される。
【0062】
第4実施形態によれば、例えば、次の作用効果(C1)~(C4)が得られる。
【0063】
(C1) 複数の制御装置3は、通信路を介して互いに接続され、各制御装置3は、内蔵時計を、通信路を介して同期させる同期部31と、内蔵時計に基づいて、PPS信号を発生させるPPS信号発生部32と、PPS信号の周期を測定する周期測定器33と、周期測定器33により測定された周期に基づいて、制御周期を示すITP信号を生成するITP信号生成部35と、を備える。
【0064】
これにより、制御装置3は、時刻同期されたPPS信号の周期を測定することにより、PPS信号と位相を一致させたITP信号を、適切に生成することができる。この結果、複数の制御装置3で制御周期を同期させることができる。
このとき、制御装置3は、PPS信号の周期を予め知る必要はなく、周期を測定後にITP信号の生成が開始された時点で、複数の制御装置3の間でITP信号の同期が完了する。
【0065】
(C2) (C1)に記載の制御装置3において、周期測定器33は、測定された周期を所定倍した値を出力してもよい。
【0066】
これにより、制御装置3は、PPS信号の周期をN倍した後にM分割したパルスを生成するため、PPS信号をM/N逓倍したITP信号を出力できる。
【0067】
(C3) (C1)又は(C2)に記載の制御装置3は、周期測定器33により測定された周期の平均値を逐次計算するジッタ除去フィルタ34を備え、ITP信号生成部35は、平均値に基づいて、ITP信号を生成してもよい。
【0068】
これにより、制御装置3は、周期の測定結果を平滑化し、PPS信号に存在するジッタの影響を低減できる。この結果、ITP信号の周期の揺らぎを低減することができる。また、制御装置3は、PPS周期が緩やかに変動してもITP信号を追従させることができる。
【0069】
(C4) (C3)に記載の制御装置3において、ジッタ除去フィルタ34は、乗除算をシフト演算で代用し、逐次入力される周期の平均値を出力する可変IIRローパスフィルタ10と、ローパスフィルタ10への入力回数をカウントし、入力回数に基づいてシフト演算のビット数を設定することにより、ローパスフィルタ10の遮断周波数を制御する設定部15と、を備えてもよい。
【0070】
これにより、制御装置3は、回路規模が小さく高速な平均値逐次計算を実現し、PPS信号の周期の平均値を容易に提供できる。
【0071】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。例えば、第1実施形態と第2実施形態とは、一次の可変IIRローパスフィルタを用いたが、二次以上の可変IIRローパスフィルタを用いてもよい。例えば、一次の可変IIRローパスフィルタをN個縦続接続することにより、N次の可変IIRローパスフィルタが実現されてもよい。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【0072】
平均値逐次計算装置1による平均値逐次計算方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータにインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。
【符号の説明】
【0073】
1、1a、1b 平均値逐次計算装置
2 制御装置
3 制御装置
10、10a、10b ローパスフィルタ
11 シフタ(第1シフタ)
13 シフタ(第2シフタ)
15 設定部
21 測定部
22 計算部
31 同期部
32 PPS信号発生部
33 周期測定器(測定部)
34 ジッタ除去フィルタ(計算部)
35 ITP信号生成部(制御周期信号生成部)