(57)【要約】【課題】信号の周波数が低い場合でも、正確に実効値又は平均値を求めることができる演算装置を提供する。【解決手段】不定周期的に変動する信号に基づいた入力値を積算して平均化する演算を行なう演算手段を備えた演算装置であって、所定期間毎に信号の周期区切れを検出する検出手段を備え、演算手段は、周期区切れが複数個検出される所定期間について、少なくとも複数個の周期区切れで定められる全周期分の入力値を用いて演算を行ない、周期区切れが１つ検出される所定期間について、１つの周期区切れと、１つの周期区切れの１つ前の周期区切れとで定められる周期分の入力値を用いて演算を行なう。【選択図】図２
2018028493.tif 000002
【特許請求の範囲】
【請求項１】
不定周期的に変動する信号に基づいた入力値を積算して平均化する演算を行なう演算手段を備えた演算装置であって、
所定期間毎に前記信号の周期区切れを検出する検出手段を備え、
前記演算手段は、周期区切れが複数個検出される所定期間について、少なくとも前記複数個の周期区切れで定められる全周期分の入力値を用いて前記演算を行ない、
周期区切れが１つ検出される所定期間について、前記１つの周期区切れと、前記１つの周期区切れの１つ前の周期区切れとで定められる周期分の入力値を用いて前記演算を行なう
ことを特徴とする演算装置。
【請求項２】
前記演算手段は、
周期区切れが複数個検出される所定期間について、前記複数個の周期区切れで定められる全周期分の入力値に加え、最初の周期区切れと、前記最初の周期区切れの１つ前の周期区切れとで定められる周期分の入力値を用いて前記演算を行なう
ことを特徴とする請求項１に記載の演算装置。
【請求項３】
周期区切れが検出されない所定期間が規定回数以上継続したときタイムアウトと判定するタイムアウト判定手段をさらに備え、
前記演算手段は、前記タイムアウトが判定されると、直近の周期区切れから前記タイムアウトと判定された所定期間の終了までの入力値を用いて前記演算を行なう
ことを特徴とする請求項１または２に記載の演算装置。
【請求項４】
前記入力値を加算する加算器と、
前記周期区切れの検出時、及び、前記タイムアウトが判定されるタイミングで前記加算器の加算値をリセットする第１加算器リセット手段と、
前記周期区切れの検出回数をカウントするカウンタと、
前記タイムアウトと判定されたとき前記カウンタを０にリセットし、前記所定期間の終了時に前記カウンタのカウント値が２以上のとき、前記カウンタを１にリセットする第１カウンタリセット手段と、
前記周期区切れの検出時に前記カウンタのカウント値が１のとき前記加算器の加算値をメモリに保存する保存手段と、
前記タイムアウトが判定されるタイミングでフラグをオフし、前記所定期間の終了時に前記カウンタのカウント値が２以上のときに前記フラグをオンする第１フラグ手段と、を備え、
前記演算手段は、前記タイムアウトが判定されるタイミングにおいて、前記カウンタのカウント値が０のとき、前記タイムアウトが判定されるタイミングにおいて、前記カウンタのカウント値が１かつフラグがオンのとき、前記所定期間の終了タイミングにおいて、前記カウンタのカウント値が２以上のとき、前記加算器の加算値に基づいて前演算を行ない、前記タイムアウトが判定されるタイミングにおいて、前記カウント値が１かつ前記フラグがオフのとき、前記加算器の加算値に前記メモリの値を加算した値に基づいて前記演算を行なう第１演算部を有する
ことを特徴とする請求項３に記載の演算装置。
【請求項５】
自動アップデート又は固定アップデートの何れか一方が設定される設定手段と、
前記周期区切れの検出時、及び、前記所定期間の開始タイミングで前記加算器の加算値をリセットする第２加算器リセット手段と、
前記自動アップデートが設定されている場合、前記第１加算器リセット手段に前記加算器のリセットを行わせ、前記固定アップデートが設定されている場合、前記第２加算器リセット手段に前記加算器のリセットを行わせる加算器リセット制御手段と、
前記所定期間の開始タイミング毎に前記カウンタを０リセットする第２カウンタリセット手段と、
前記自動アップデートが設定されている場合、前記第１カウンタリセット手段に前記カウンタのリセットを行なわせ、前記固定アップデートが設定されている場合、前記第２カウンタリセット手段に前記カウンタのリセットを行なわせるカウンタリセット制御手段と、
前記フラグを常時オフにする第２フラグ手段と、
前記自動アップデートが設定されている場合、前記第１フラグ手段により前記フラグをオンオフさせ、前記固定アップデートが設定されている場合、前記第２フラグ手段により前記フラグを常時オフさせるフラグ制御手段と、を備え、
前記演算手段は、前記所定期間の開始タイミングにおいて、前記カウンタのカウント値が０のとき、前記所定期間の開始タイミングにおいて、前記カウンタのカウント値が２以上のとき、前記加算器の加算値に基づいて前記演算を行ない、前記所定期間の開始タイミングにおいて、前記カウンタのカウント値が１であるとき、前記加算器の加算値に前記メモリの値を加算した値に基づいて前記演算を行なう第２演算部をさらに有し、
前記演算手段は、前記自動アップデートが設定されている場合、前記第１演算部による処理を行ない、前記固定アップデートが設定されている場合、前記第２演算部による処理を行なう
ことを特徴とする請求項４に記載の演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置に関し、より具体的には、不定周期的に変動する信号に基づいた入力値を積算して平均化する演算を行なう演算装置に関する。
【背景技術】
【０００２】
従来、上述した演算装置として、交流電圧又は交流電流のゼロクロスを検出する毎に、交流電圧又は交流電流の実効値を求めるものが提案されている（特許文献１）。具体的には、ゼロクロスからゼロクロスまでの交流電圧又は交流電流を積算して実効値を求めている。
【０００３】
しかしながら、上述した従来の演算装置では、交流電流又は交流電圧の周波数が高い場合、頻繁に実効値を演算する必要があり、演算が追い付かない、という問題があった。
【０００４】
そこで、予め定めたｕｐｄａｔｅレート（所定期間）毎に、交流電圧又は交流電流の実効値を求めることが考えられている。しかしながら、この場合、交流電圧又は交流電流の周期がｕｐｄａｔｅレートに比べて長い場合、１周期以上の交流電圧又は交流電流を積算することができず、正確に実効値を求めることができない、という問題があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２３２５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は上記事情に鑑みてなされたものであり、不定周期的に変動する信号に基づいた入力値を積算して平均化する演算を行なう演算装置において、信号の周波数が低い場合でも、演算精度を高めることを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明の演算装置は、不定周期的に変動する信号に基づいた入力値を積算して平均化する演算を行なう演算手段を備えた演算装置であって、所定期間毎に前記信号の周期区切れを検出する検出手段を備え、前記演算手段は、周期区切れが複数個検出される所定期間について、少なくとも前記複数個の周期区切れで定められる全周期分の入力値を用いて前記演算を行ない、周期区切れが１つ検出される所定期間について、前記１つの周期区切れと、前記１つの周期区切れの１つ前の周期区切れとで定められる周期分の入力値を用いて前記演算を行なうことを特徴とする。
ここで、前記演算手段は、周期区切れが複数個検出される所定期間について、前記複数個の周期区切れで定められる全周期分の入力値に加え、最初の周期区切れと、前記最初の周期区切れの１つ前の周期区切れとで定められる周期分の入力値を用いて前記演算を行なうことができる。
また、周期区切れが検出されない所定期間が規定回数以上継続したときタイムアウトと判定するタイムアウト判定手段をさらに備え、前記演算手段は、前記タイムアウトが判定されると、直近の周期区切れから前記タイムアウトと判定された所定期間の終了までの入力値を用いて前記演算を行なうようにしてもよい。
このとき、前記入力値を加算する加算器と、前記周期区切れの検出時、及び、前記タイムアウトが判定されるタイミングで前記加算器の加算値をリセットする第１加算器リセット手段と、前記周期区切れの検出回数をカウントするカウンタと、前記タイムアウトと判定されたとき前記カウンタを０にリセットし、前記所定期間の終了時に前記カウンタのカウント値が２以上のとき、前記カウンタを１にリセットする第１カウンタリセット手段と、前記周期区切れの検出時に前記カウンタのカウント値が１のとき前記加算器の加算値をメモリに保存する保存手段と、前記タイムアウトが判定されるタイミングでフラグをオフし、前記所定期間の終了時に前記カウンタのカウント値が２以上のときに前記フラグをオンする第１フラグ手段と、を備え、前記演算手段は、前記タイムアウトが判定されるタイミングにおいて、前記カウンタのカウント値が０のとき、前記タイムアウトが判定されるタイミングにおいて、前記カウンタのカウント値が１かつフラグがオンのとき、前記所定期間の終了タイミングにおいて、前記カウンタのカウント値が２以上のとき、前記加算器の加算値に基づいて前演算を行ない、前記タイムアウトが判定されるタイミングにおいて、前記カウント値が１かつ前記フラグがオフのとき、前記加算器の加算値に前記メモリの値を加算した値に基づいて前記演算を行なう第１演算部を有するようにしてもよい。
さらに、自動アップデート又は固定アップデートの何れか一方が設定される設定手段と、前記周期区切れの検出時、及び、前記所定期間の開始タイミングで前記加算器の加算値をリセットする第２加算器リセット手段と、前記自動アップデートが設定されている場合、前記第１加算器リセット手段に前記加算器のリセットを行わせ、前記固定アップデートが設定されている場合、前記第２加算器リセット手段に前記加算器のリセットを行わせる加算器リセット制御手段と、前記所定期間の開始タイミング毎に前記カウンタを０リセットする第２カウンタリセット手段と、前記自動アップデートが設定されている場合、前記第１カウンタリセット手段に前記カウンタのリセットを行なわせ、前記固定アップデートが設定されている場合、前記第２カウンタリセット手段に前記カウンタのリセットを行なわせるカウンタリセット制御手段と、前記フラグを常時オフにする第２フラグ手段と、前記自動アップデートが設定されている場合、前記第１フラグ手段により前記フラグをオンオフさせ、前記固定アップデートが設定されている場合、前記第２フラグ手段により前記フラグを常時オフさせるフラグ制御手段と、を備え、前記演算手段は、前記所定期間の開始タイミングにおいて、前記カウンタのカウント値が０のとき、前記所定期間の開始タイミングにおいて、前記カウンタのカウント値が２以上のとき、前記加算器の加算値に基づいて前記演算を行ない、前記所定期間の開始タイミングにおいて、前記カウンタのカウント値が１であるとき、前記加算器の加算値に前記メモリの値を加算した値に基づいて前記演算を行なう第２演算部をさらに有し、前記演算手段は、前記自動アップデートが設定されている場合、前記第１演算部による処理を行ない、前記固定アップデートが設定されている場合、前記第２演算部による処理を行なうようにしてもよい。
【発明の効果】
【０００８】
本発明によれば、不定周期的に変動する信号に基づいた入力値を積算して平均化する演算を行なう演算装置において、信号の周波数が低い場合でも、演算精度を高めることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の演算装置としての電力計の一実施形態を示すブロック図である。
【図２】図１に示すＦＰＧＡの詳細を示すブロック図である。
【図３】図１に示すＦＰＧＡの動作を説明するためのフローチャートである。
【図４】図１に示すＦＰＧＡの動作を説明するためのフローチャートである。
【図５】図１に示すＦＰＧＡの動作を説明するためのフローチャートである。
【図６】固定アップデートモードに設定されているときの図１に示すＦＰＧＡの動作を説明するためのタイムチャートである。
【図７】図１に示すＦＰＧＡの動作を説明するためのタイムチャートである。
【図８】図１に示すＦＰＧＡの動作を説明するためのタイムチャートである。
【図９】図１に示すＦＰＧＡの動作を説明するためのタイムチャートである。
【図１０】図１に示すＦＰＧＡの動作を説明するためのタイムチャートである。
【図１１】図１に示すＦＰＧＡの動作を説明するためのタイムチャートである。
【図１２】他の実施形態を示す電力計である。
【図１３】図１２に示すＦＰＧＡの詳細を示すブロック図である。
【発明を実施するための形態】
【００１０】
本発明の演算装置としての電力計の一実施形態を図面に基づいて説明する。図１に示す電力計は、デジタル演算により交流電圧、交流電流の実効値や交流電力の平均値などを計測するものである。
【００１１】
図１に示す電力計１は、固定アップデートモードと、自動アップデートモードと、の２つの測定モードでの切り替えが可能である。固定アップデートモードは、予め定めたｕｐｄａｔｅレート（所定期間）毎に電圧実効値、電流実効値、電力平均値を演算して表示するモードである。自動アップデートモードは、交流の周期が短いときはｕｐｄａｔｅレート毎に電圧実効値、電流実効値、電力平均値を演算し、交流の周期が長いときは交流の一周期毎に実効値を演算して表示するモードである。これら２つのモードで切り替え可能である。
【００１２】
電力計１は、電圧・電流入力部２と、検出手段、演算手段としてのＦＰＧＡ３と、ＣＰＵ４と、表示器５と、操作部６と、を備えている。
【００１３】
電圧・電流入力部２は、アナログの電圧Ｕ１、電流Ｉ１（信号）を入力して、デジタル信号であるｕ（ｎ）、ｉ（ｎ）に変換してＦＰＧＡ３に対して供給する。電圧・電流入力部２は、電圧入力回路２１と、Ａ／Ｄ変換器２２と、ゼロクロス検出器２３と、電流入力回路２４と、Ａ／Ｄ変換器２５と、ゼロクロス検出器２６と、を備えている。
【００１４】
電圧入力回路２１は、入力された電圧Ｕ１を、演算増幅器により、後段回路の処理に適したレベルに正規化する。Ａ／Ｄ変換器２２は、ＳＭＰＣＫ（サンプリングクロック）のタイミング毎に、電圧入力回路２１により正規化された電圧をデジタル信号であるｕ（ｎ）に変換する。ここで、ｕ（ｎ）はｎ番目のサンプリングの電圧瞬時値の変換データである。
【００１５】
電流入力回路２４は、入力された電流Ｉ１を、シャント抵抗により電圧に変換し、演算増幅器により、後段回路の処理に適したレベルに正規化する。Ａ／Ｄ変換器２５は、ＳＭＰＣＫのタイミング毎に、電流入力回路２４により正規化された電圧をデジタル信号であるｉ（ｎ）に変換する。ここで、ｉ（ｎ）はｎ番目のサンプリングの電流瞬時値の変換データである。
【００１６】
Ａ／Ｄ変換器２２から出力される電圧瞬時値の変換データであるｕ（ｎ）はＦＰＧＡ３に入力される。Ａ／Ｄ変換器２５から出力される電流瞬時値の変換データであるｉ（ｎ）もＦＰＧＡ３に入力される。
【００１７】
ゼロクロス検出器２３は、電圧入力回路２１で正規化された電圧を０レベルと比較し、０レベルより高ければ１を、低ければ０のデジタル値ｚｃｕを出力し、ＦＰＧＡ３に入力する。ゼロクロス検出器２６は、電流入力回路２４で正規化された電圧を０レベルと比較し、０レベルより高ければ１を、低ければ０のデジタル値ｚｃｉを出力し、ＦＰＧＡ３に入力される。
【００１８】
ＦＰＧＡ３は、電圧・電流入力部２によって入力されたｕ（ｎ）、ｉ（ｎ）から電圧実効値、電流実効値、電力平均値などを演算する。演算結果は、ＣＰＵ４を介して表示器に表示される。ＣＰＵ４は、操作部６からの操作入力により固定アップデートモード及び自動アップデートモードと、の一方が選択操作されると、その旨をＦＰＧＡ３に伝える。
【００１９】
次に、ＦＰＧＡ３の詳細な構成について図２を参照して説明する。ＦＰＧＡ３は、ＭＥＳＴ・ＭＥＥＮＤ発生器３０１と、ＡＵＴＯＵＰＤＡＴＥ設定３０２と、サンプリングクロック発生器３０３と、２乗演算器３０４、３０５と、乗算器３０６と、タイミング制御回路３０７と、電圧２乗平均値演算回路３０８と、サンプリング数演算回路３０９と、平方根演算器３１０と、電流２乗平均値演算回路３１１と、平方根演算器３１２と、電力平均値演算回路３１３と、を備えている。
【００２０】
ＭＥＳＴ・ＭＥＥＮＤ発生器３０１は、測定がスタートしたら、ＭＥＳＴを出力し、ｕｐｄａｔｅレート経過後にＭＥＥＮＤを出力する。ＭＥＥＮＤを出力したら、次のサンプリングクロックのタイミングでＭＥＳＴを出力し、これを繰り返す。即ち、図６〜図１１に示すように、ｕｐｄａｔｅレートの開始時にＭＥＳＴが出力され、ｕｐｄａｔｅレートの終了時にＭＥＥＮＤが出力される。
【００２１】
ＡＵＴＯＵＰＤＡＴＥ設定３０２は、ＣＰＵ４により固定アップデートモードが選択されたことが入力されると、ＡＵＴＯＵＰＤＡＴＥを０にして固定アップデートモードに設定する。また、ＡＵＴＯＵＰＤＡＴＥ設定３０２は、ＣＰＵ４により自動アップデートモードが選択されたことが入力されると、ＡＵＴＯＵＰＤＡＴＥを１にして自動アップデートモードに設定する。
【００２２】
サンプリングクロック発生器３０３は、Ａ／Ｄ変換器２２、Ａ／Ｄ変換器２５のサンプリングタイミングであるＳＭＰＣＫを出力する。
【００２３】
２乗演算器３０４、３０５は各々、ｕ（ｎ）、ｉ（ｕ）を２乗した値をｕ＿ｓｑｒ（ｎ）、ｉ＿ｓｑｒ（ｎ）として出力する。乗算器３０６は、ｕ（ｎ）とｉ（ｕ）を乗算した値をｐ（ｎ）として出力する。ｕ＿ｓｑｒ（ｎ）、ｉ＿ｓｑｒ（ｎ）及びｐ（ｎ）が請求項中の「入力値」に相当する。残りの回路３０７〜３０９、３１１、３１３及び演算器３１０、３１２は、ｕ＿ｓｑｒ（ｎ）、ｉ＿ｓｑｒ（ｎ）、ｕ×ｉ（ｎ）を積算してそれぞれ電圧実効値、電流実効値、電力平均値を演算する回路である。
【００２４】
次に、ＦＰＧＡ３の詳細な構成を説明する前に、上記ＦＰＧＡ３の動作について図３及び図４を参照して簡単に説明する。演算開始によってＦＰＧＡ３は、処理を開始する。ＦＰＧＡ３は、ＡＵＴＯＵＰＤＡＴＥ＝０の場合（ステップＳ１でＮｏ）、すなわち固定アップデートモードが選択されている場合、図４のステップＳ３に進む。その後、ＦＰＧＡ３は、ｕｐｄａｔｅレート終了まで待つ（ステップＳ３）。ＦＰＧＡ３は、ｕｐｄａｔｅレートが終了すると（ステップＳ３でＹｅｓ）、そのｕｐｄａｔｅレート内に電圧Ｕ１、電流Ｉ１のうち選択されている一方の完全周期が入力されているか否かを判定する（ステップＳ４）
ここで、完全周期とは、電圧Ｕ１又は電流Ｉ１の負から正に変わる際のゼロクロス点を周期区切れとした場合、周期区切れから次の又は複数回の周期区切れまでを言う。そして、ＦＰＧＡ３は、ｕｐｄａｔｅレート内に電圧Ｕ１又は電流Ｉ１の周期区切れから次のまたは複数回の周期区切れまでが入力されると、完全周期が入力されていると判定する。
【００２５】
完全周期があれば（ステップＳ４でＹｅｓ）、ＦＰＧＡ３は、ｕｐｄａｔｅレート内に入力された全ての完全周期分のｕ＿ｓｑｒ（ｎ）、ｉ＿ｓｑｒ（ｎ）及びｕ×ｉ（ｎ）（以下、単に「データ」と略記）の積算値をサンプリング数で割った値に基づいて電圧実効値、電流実効値、電力平均値を演算した後（ステップＳ５）、ステップＳ１に戻る。
【００２６】
一方、完全周期がなければ（ステップＳ４でＮｏ）、ＦＰＧＡ３は、そのｕｐｄａｔｅレートの開始から終了までのデータの積算値をサンプリング数で割った値に基づいて電圧実効値、電流実効値、電力平均値を演算した後（ステップＳ７）、ステップＳ１に戻る。
【００２７】
上述した固定アップデートモード時（ステップＳ３〜Ｓ６）の動作を図６に基づいて説明する。同図に示すように、最初のｕｐｄａｔｅレートには２周期分の完全周期が入力されている。このとき、ＦＰＧＡ３は、２周期分のデータの積算値（即ち、ｎ＝２〜ｎ＝１３までの積算値）に基づいて実効値などを演算する。２番目のｕｐｄａｔｅレートには１周期分の完全周期が入力されている。このとき、ＦＰＧＡ３は、１周期分のデータの積算値（即ち、ｎ＝２０〜ｎ＝２７までの積算値）に基づいて実効値などを演算する。３番目、４番目のｕｐｄａｔｅレートのように完全周期がなければ、ＦＰＧＡ３は、ｕｐｄａｔｅレートに開始から終了までの全てのデータの積算値（即ち、ｎ＝３５〜ｎ＝５１までの積算値、ｎ＝５２〜ｎ＝６８までの積算値）に基づいて実効値などを演算する。
【００２８】
これに対して、ＦＰＧＡ３は、ＡＵＴＯＵＰＤＡＴＥ＝１の場合、即ち、自動アップデートモードの場合、図３のステップＳ８に進む。その後、ＦＰＧＡ３は、ｕｐｄａｔｅレートが終了すると（ステップＳ８でＹｅｓ）、そのｕｐｄａｔｅレート内に電圧Ｕ１又は電流Ｉ１の周期区切れがあるか否かを判定する（ステップＳ９）。周期区切れがあれば（ステップＳ９でＹｅｓ）、ＦＰＧＡ３は、今回のｕｐｄａｔｅレートよりも前に周期区切れがあるか否かを判定する（ステップＳ１０）。
【００２９】
今回のｕｐｄａｔｅレートよりも前に周期区切れがあれば（ステップＳ１０でＹｅｓ）、ＦＰＧＡ３は、今回のｕｐｄａｔｅレートよりも前の最後の周期区切れ（＝ｕｐｄａｔｅ前周期区切れ）から今回のｕｐｄａｔｅレート内の最後の周期区切れ（＝今回最終周期区切れ）までの積算値をサンプリング数で割った値に基づいて電圧実効値、電流実効値、電力平均値を演算した後（ステップＳ１１）、ステップＳ１に戻る。
【００３０】
一方、今回のｕｐｄａｔｅレートよりも前に周期区切れがなければ（ステップＳ１０でＮｏ）、ＦＰＧＡ３は、今回のｕｐｄａｔｅレート内に完全周期が一周期以上入力されているか否かを判定する（ステップＳ１２）。完全周期があれば（ステップＳ１２でＹｅｓ）、ＦＰＧＡ３は、ｕｐｄａｔｅレート内に入力された全ての完全周期分のデータの積算値をサンプリング数で割った値に基づいて電圧実効値、電流実効値、電力平均値を演算した後（ステップＳ１３）、ステップＳ１に戻る。完全周期がなければ（ステップＳ１２でＮｏ）、ＦＰＧＡ３は、電圧実効値、電流実効値、電力平均値を演算することなく、ステップＳ１に戻る。
【００３１】
上記自動アップデート時で、かつ、後述するタイムアウトする前の動作（ステップＳ１０〜Ｓ１３）を図７、図８に基づいて説明する。図７に示すように、１番目のｕｐｄａｔｅレートには２周期分の完全周期が入力されている。また、ｕｐｄａｔｅレート前周期区切れがない。このとき、ＦＰＧＡ３は、２周期分のデータの積算値（即ち、ｎ＝２〜ｎ＝１３までの積算値）に基づいて実効値などを演算する。
【００３２】
２番目、３番目のｕｐｄａｔｅレートには周期区切れがあり、各ｕｐｄａｔｅレートよりも前に周期区切れがある。このとき、ＦＰＧＡ３は、２番目、３番目のｕｐｄａｔｅレートがそれぞれ終了すると、ｕｐｄａｔｅレート前周期区切れから２番目、３番目のｕｐｄａｔｅレートの最後の周期区切れまでのデータの積算値（即ち、ｎ＝１４〜ｎ＝２７までの積算値、ｎ＝２８〜ｎ＝３９までの積算値）に基づいて実効値などを演算する。
【００３３】
一方、図８に示すように、１番目のｕｐｄａｔｅレートには周期区切れがない。このため、１番目のｕｐｄａｔｅレート終了時には実効値の演算は行われない。２番目のｕｐｄａｔｅレートには周期区切れがあるが、２番目のｕｐｄａｔｅレートよりも前に周期区切れがない。このため、２番目のｕｐｄａｔｅレート終了時にも実効値の演算は行われない。３番目〜５番目のｕｐｄａｔｅレートには周期区切れがない。このため、３番目〜５番目のｕｐｄａｔｅレート終了時には実効値の演算は行われない。６番目のｕｐｄａｔｅレートには周期区切れがあり、６番目のｕｐｄａｔｅレートよりも前に周期区切れがある。このため、６番目のｕｐｄａｔｅレート終了時にはｕｐｄａｔｅレート前周期区切れから６番目のｕｐｄａｔｅレートの最後の周期区切れまでのデータの積算値（即ち、ｎ＝１７〜ｎ＝５８までの積算値）に基づいて実効値などを演算する。
【００３４】
次に、図３のステップＳ１４〜Ｓ１８の動作を説明する前にＦＰＧＡ３のタイムアウトカウンタ機能について図５を参照して説明する。まず、ＦＰＧＡ３は、ＡＵＴＯＵＰＤＡＴＥ＝１のときに（ステップＳ２０でＹｅｓ）、ｕｐｄａｔｅレートが終了する毎に（ステップＳ２１でＹｅｓ）、当該ｕｐｄａｔｅレート内に周期区切れがあるか否かを判定する（ステップＳ２２）。そして、周期区切れがあれば（ステップＳ２２でＹｅｓ）、ＦＰＧＡ３は、タイムアウトカウンタを０リセットして（ステップＳ２３）、ステップＳ２０に戻る。一方、周期区切れがなければ（ステップＳ２２でＮｏ）、ＦＰＧＡ３は、タイムアウトカウンタをカウントアップした後（ステップＳ２４）、ステップＳ２０に戻る。即ち、タイムアウトカウンタは、周期区切れがないと判定され続けるｕｐｄａｔｅレートの回数をカウントする。ただし、周期区切れがある場合であっても（ステップＳ２２でＹｅｓ）、その周期区切れが開始直後あるいはリセット直後の周期区切れの場合は、タイムアウトカウンタを０リセットせずに、カウントアップする。
【００３５】
次に、図３のステップＳ１４〜Ｓ１７の動作について説明する。ＦＰＧＡ３は、ｕｐｄａｔｅレート内に周期区切りがなければ（ステップＳ９でＮｏ）、タイムアウト判定手段として機能し、上記タイムアウトカウンタがタイムアウト回数以上か否かを判定する（ステップＳ１４）。タイムアウト回数未満であり（ステップＳ１４でＮｏ）、タイムアウトでなければ、ＦＰＧＡ３はステップＳ１に戻る。一方、タイムアウト回数（＝規定回数）以上であれば、ＦＰＧＡ３はタイムアウトと判定する（ステップＳ１４でＹｅｓ）。そして、ＦＰＧＡ３は、完全周期がないと判定された最初のｕｐｄａｔｅレートよりも前に周期区切れがあるか否かを判定する（ステップＳ１５）。なお、タイムアウト回数を適切に設定することで長周期や直流信号も測定可能になる。
【００３６】
周期区切れがあれば（ステップＳ１５でＹｅｓ）、完全周期がないと判定された最初のｕｐｄａｔｅレートよりも前の最後の周期区切れ（カウント開始前周期区切れ）からのデータの積算値をサンプリング数で割った値に基づいて電圧実効値、電流実効値、電力平均値を演算した後（ステップＳ１６）、ステップＳ１８に進む。区切れがなければ（ステップＳ１５でＮｏ）、完全周期がないと判定された最初のｕｐｄａｔｅレートの開始からのデータの積算値をサンプリング数で割った値に基づいて電圧実効値、電流実効値、電力平均値を演算した後（ステップＳ１７）、ステップＳ１８に戻る。
【００３７】
ステップＳ１８において、ＦＰＧＡ３は、タイムアップカウンタをリセットするとともに、前の周期区切れもリセットし、ステップＳ１に戻る。
【００３８】
上記自動アップデート時で、かつ、タイムアウト後の動作（ステップＳ１４〜Ｓ１７）を図９〜図１１に基づいて説明する。なお、図９に示す場合は、タイムアウト回数＝２回に設定されている。図９に示すように、１番目のｕｐｄａｔｅレートには２周期分の完全周期が入力されている。また、ｕｐｄａｔｅレート前周期区切れがない。このとき、ＦＰＧＡ３は、２周期分のデータの積算値（即ち、ｎ＝２〜ｎ＝１３までの積算値）に基づいて実効値などを演算する。２番目のｕｐｄａｔｅレートには完全周期がないため、実効値などの演算は行われない。また、２番目のｕｐｄａｔｅレート終了時にタイムアップカウンタがカウントアップされ、カウント値＝１となる。
【００３９】
３番目のｕｐｄａｔｅレートには完全周期がない。３番目のｕｐｄａｔｅレート終了時にタイムアップカウンタがカウントアップされ、カウント値＝２となる。このとき、タイムアウトと判定され、完全周期がないと判定された最初のｕｐｄａｔｅレート（２番目のｕｐｄａｔｅレート）よりも前に周期区切れがあるため、その周期区切れからタイムアウトと判定されたｕｐｄａｔｅレートの終了時までの積算値（即ち、ｎ＝１４〜ｎ＝５１までの積算値）に基づいて実効値などを演算する。
【００４０】
また、図１０、図１１に示す場合は、タイムアウト回数＝３回に設定されている。図１０、図１１に示すように、１、２番目のｕｐｄａｔｅレートには完全周期が入力されていない。このため、実効値などの演算は行われない。そして、１、２番目のｕｐｄａｔｅレートが終了する毎にタイムアップカウンタがカウントアップされる。３番目のｕｐｄａｔｅレートにも完全周期が入力されていないため、３番目のｕｐｄａｔｅレートが終了したときもタイムアップカウンタがカウントアップされ、カウント値＝３となりタイムアウトと判定される。このとき、完全周期がないと判定された最初のｕｐｄａｔｅレート（１番目のｕｐｄａｔｅレート）よりも前に周期区切れがないため、最初のｕｐｄａｔｅレートの開始からタイムアウトが判定されたｕｐｄａｔｅレートの終了時までの積算値（即ち、ｎ＝１〜ｎ＝５１までの積算値）に基づいて実効値などが演算される。
【００４１】
次に、再び図２を参照してＦＰＧＡ３の詳細な構成について説明する。
【００４２】
タイミング制御回路３０７は、ＭＥＳＴ＿１ＳＴ・ＭＥＥＮＤ＿ＬＡＳＴ発生器３０７Ａと、セレクタ３０７Ｂと、検出手段としてのエッジ検出器３０７Ｃと、カウンタ、第１カウンタリセット手段、第１フラグ手段、第２カウンタリセット手段、カウンタリセット制御手段、第２フラグ手段、フラグ制御手段としてのＺＣエッジカウンタ３０７Ｄと、を備えている。
【００４３】
ＭＥＳＴ＿１ＳＴ・ＭＥＥＮＤ＿ＬＡＳＴ発生器３０７Ａは、ＡＵＴＯＵＰＤＡＴＥ＝０のとき、ＭＥＳＴ＿１ＳＴ、ＭＥＥＮＤ＿ＬＡＳＴとも０を出力する。ＡＵＴＯＵＰＤＡＴＥ＝１のとき、ＭＥＳＴ＿１ＳＴ・ＭＥＥＮＤ＿ＬＡＳＴ発生器３０７Ａは、測定開始後、一番最初にＭＥＳＴが出力されるタイミングで、ＭＥＳＴ＿１ＳＴを出力する。また、ＭＥＳＴ＿１ＳＴ・ＭＥＥＮＤ＿ＬＡＳＴ発生器３０７Ａは、後述のＭＥＥＮＤ＿ＬＡＳＴを出力したら、次のＭＥＳＴのとき、それをＭＥＳＴ＿１ＳＴとして出力する。また、ＭＥＳＴ＿１ＳＴ・ＭＥＥＮＤ＿ＬＡＳＴ発生器３０７Ａは、ＡＵＴＯＵＰＤＡＴＥ＝１のとき、ＭＥＳＴ＿１ＳＴを出力する毎にＭＥＥＮＤの数をカウンタで数えて設定したタイムアウト回数に達したら、その回のＭＥＥＮＤをＭＥＥＮＤ＿ＬＡＳＴとして出力する。このＭＥＥＮＤの数を数えるカウンタは、ＭＥＥＮＤ＿ＬＡＳＴ、または、後述するＣＯＵＮＴ＿ＺＣ≧２かつＭＥＥＮＤで０に初期化する。即ち、ＭＥＳＴ＿１ＳＴ・ＭＥＥＮＤ＿ＬＡＳＴ発生器３０７Ａが、上述した図５に示す動作を行う。
【００４４】
セレクタ３０７Ｂは、ゼロクロス検出器２３から出力されるｚｃｕとゼロクロス検出器２６から出力されるｚｃｉのうち１つを選択して、出力ＺＣとする。エッジ検出器３０７Ｃは、ＺＣの立ち上がりエッジを検出し、ＺＣ＿ＥＤＧＥとして出力する。即ち、ゼロクロス検出器２３、２６、セレクタ３０７Ｂ及びエッジ検出器３０７Ｃが、検出手段として機能し、周期区切れの検出タイミングで、ＺＣ＿ＥＤＧＥを出力する。
【００４５】
ＺＣエッジカウンタ３０７Ｄは、ＡＵＴＯＵＰＤＡＴＥ＝０のときは、ＭＥＳＴ・ＭＥＥＮＤ発生器３０１からのＭＥＳＴのタイミングでＣＯＵＮＴ＿ＺＣを０に初期化する。また、フラグとしてのＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲは０に設定する。
【００４６】
電圧２乗平均値演算回路３０８は、第１加算器リセット手段、第２加算器リセット手段、加算器リセット制御手段としての加算器３０８Ａと、保存手段としてのセレクタ３０８Ｂと、メモリ３０８Ｃと、加算器３０８Ｄと、メモリ３０８Ｅと、加算器３０８Ｆと、セレクタ３０８Ｇと、除算器３０８Ｈと、を備える。
【００４７】
加算器３０８Ａは、ｕ＿ｓｑｒ（ｎ）を今までの加算値に加算し、ＳＵＭ＿ＩＮＳＴ＿Ｕとして出力する。加算器３０８Ａは、エッジ検出器３０７Ｃの出力ＺＣ＿ＥＤＧＥのタイミングでも加算値ＳＵＭ＿ＩＮＳＴ＿Ｕを０に初期化する。また、加算器３０８Ａは、ＡＵＴＯＵＰＤＡＴＥ＝０のときは、ＭＥＳＴのタイミングで加算値ＳＵＭ＿ＩＮＳＴ＿Ｕを０に初期化し、ＡＵＴＯＵＰＤＡＴＥ＝１のときは、ＭＥＳＴ＿１ＳＴのタイミングで加算値ＳＵＭ＿ＩＮＳＴ＿Ｕを０に初期化する。
【００４８】
セレクタ３０８Ｂは、ＣＯＵＮＴ＿ＺＣ＝１かつ、ＺＣ＿ＥＤＧＥのとき、ＳＵＭ＿ＩＮＳＴ＿ＵをＳＵＭ＿ＩＮＳＴ＿ＰＲＥＺＣ＿Ｕに出力する。メモリ３０８Ｃは、このタイミングでＳＵＭ＿ＩＮＳＴ＿ＰＲＥＺＣ＿Ｕを保存し、ＳＵＭ＿ＰＲＥＺＣ＿Ｕとして出力する。セレクタ３０８Ｂは、ＣＯＵＮＴ＿ＺＣ≧２かつ、ＺＣ＿ＥＤＧＥのとき、ＳＵＭ＿ＩＮＳＴ＿ＵをＳＵＭ＿ＩＮＳＴ＿ＺＣ＿Ｕに出力する。
【００４９】
加算器３０８Ｄは、このタイミングでＣＯＵＮＴ＿ＺＣ＝２であれば、ＳＵＭ＿ＩＮＳＴ＿ＺＣ＿Ｕをメモリ３０８Ｅに保存する。加算器３０８Ｄは、ＣＯＵＮＴ＿ＺＣ≧３であれば、ＳＵＭ＿ＩＮＳＴ＿ＺＣ＿Ｕとメモリ３０８Ｅの出力ＳＵＭ＿ＺＣ＿Ｕを加算し、メモリ３０８Ｅに保存する。メモリ３０８Ｅは、保存してあるデータをＳＵＭ＿ＺＣ＿Ｕとして出力する。
【００５０】
セレクタ３０８Ｇは、ＡＵＴＯＵＰＤＡＴＥ＝０のときは、ＭＥＥＮＤのタイミングで、ＣＯＵＮＴ＿ＺＣ＝０であれば、ＳＵＭ＿ＩＮＳＴ＿ＵをＳＵＭ＿Ｕとして出力する。セレクタ３０８Ｇは、ＣＯＵＮＴ＿ＺＣ＝１であれば、ＳＵＭ＿ＩＮＳＴ＿ＵとＳＵＭ＿ＰＲＥＺＣ＿Ｕを加算器３０８Ｆで加算した出力ＳＵＭ＿ＡＬＬ＿ＵをＳＵＭ＿Ｕとして出力する。セレクタ３０８Ｇは、ＣＯＵＮＴ＿ＺＣ≧２であれば、ＳＵＭ＿ＺＣ＿ＵをＳＵＭ＿Ｕとして出力する。
【００５１】
セレクタ３０８Ｇは、ＡＵＴＯＵＰＤＡＴＥ＝１のときは、ＭＥＥＮＤ＿ＬＡＳＴのタイミングで、ＣＯＵＮＴ＿ＺＣ＝０であれば、ＳＵＭ＿ＩＮＳＴ＿ＵをＳＵＭ＿Ｕとして出力する。セレクタ３０８Ｇは、ＭＥＥＮＤ＿ＬＡＳＴのタイミングで、ＣＯＵＮＴ＿ＺＣ＝１かつＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ＝０であれば、ＳＵＭ＿ＩＮＳＴ＿ＵとＳＵＭ＿ＰＲＥＺＣ＿Ｕを加算器３０８Ｆで加算した出力ＳＵＭ＿ＡＬＬ＿ＵをＳＵＭ＿Ｕとして出力する。セレクタ３０８Ｇは、ＭＥＥＮＤ＿ＬＡＳＴのタイミングで、ＣＯＵＮＴ＿ＺＣ＝１かつＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ＝１であれば、ＳＵＭ＿ＩＮＳＴ＿ＵをＳＵＭ＿Ｕとして出力する。セレクタ３０８Ｇは、ＭＥＥＮＤのタイミングで、ＣＯＵＮＴ＿ＺＣ≧２であれば、ＳＵＭ＿ＺＣ＿ＵをＳＵＭ＿Ｕとして出力する。除算器３０８Ｈは、ＳＵＭ＿Ｕ／ＣＯＵＮＴ＿ＳＭＰの演算を行い、ＡＶＧ＿Ｕとして出力する。
【００５２】
サンプリング数演算回路３０９は、カウンタ３０９Ａと、セレクタ３０９Ｂと、メモリ３０９Ｃと、加算器３０９Ｄと、メモリ３０９Ｅと、加算器３０９Ｆと、セレクタ３０９Ｇと、を備えている。
【００５３】
カウンタ３０９Ａは、ＳＭＰＣＫの数をカウントし、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴとして出力する。カウンタ３０９Ａは、ＡＵＴＯＵＰＤＡＴＥ＝０のときは、ＭＥＳＴのタイミングで０に初期化し、ＡＵＴＯＵＰＤＡＴＥ＝１のときは、ＭＥＳＴ＿１ＳＴのタイミングで０に初期化する。また、カウンタ３０９Ａは、ＺＣ＿ＥＤＧＥのタイミングでも０に初期化する。
【００５４】
セレクタ３０９Ｂは、ＣＯＵＮＴ＿ＺＣ＝１かつ、ＺＣ＿ＥＤＧＥのとき、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴをＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴ＿ＰＲＥＺＣに出力する。メモリ３０９Ｃは、このタイミングでＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴ＿ＰＲＥＺＣを保存し、ＣＯＵＮＴ＿ＳＭＰ＿ＰＲＥＺＣとして出力する。セレクタ３０９Ｂは、ＣＯＵＮ＿ＺＣ≧２かつ、ＺＣ＿ＥＤＧＥのとき、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴをＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴ＿ＺＣに出力する。加算器３０９Ｄは、このタイミングでＣＯＵＮＴ＿ＺＣ＝２であれば、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴ＿ＺＣをメモリ３０９Ｅに保存する。加算器３０９Ｄは、ＣＯＵＮＴ＿ＺＣ≧３であれば、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴ＿ＺＣとメモリ３０９Ｅの出力ＣＯＵＮＴ＿ＳＭＰ＿ＺＣを加算し、メモリ３０９Ｅに保存する。メモリ３０９Ｅは、保存してあるデータをＣＯＵＮＴ＿ＳＭＰ＿ＺＣとして出力する。
【００５５】
セレクタ３０９Ｇは、ＡＵＴＯＵＰＤＡＴＥ＝０のときは、ＭＥＥＮＤのタイミングで、ＣＯＵＮＴ＿ＺＣ＝０であれば、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴをＣＯＵＮＴ＿ＳＭＰとして出力する。セレクタ３０９Ｇは、ＣＯＵＮＴ＿ＺＣ＝１であれば、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴとＣＯＵＮＴ＿ＳＭＰ＿ＰＲＥＺＣを加算器３０９Ｆで加算した出力ＣＯＵＮＴ＿ＳＭＰ＿ＡＬＬをＣＯＵＮＴ＿ＳＭＰとして出力する。セレクタ３０９Ｇは、ＣＯＵＮＴ＿ＺＣ≧２であれば、ＣＯＵＮＴ＿ＳＭＰ＿ＺＣをＣＯＵＮＴ＿ＳＭＰとして出力する。
【００５６】
ＡＵＴＯＵＰＤＡＴＥ＝１のときは、セレクタ３０９Ｇは、ＭＥＥＮＤ＿ＬＡＳＴのタイミングで、ＣＯＵＮＴ＿ＺＣ＝０であれば、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴをＣＯＵＮＴ＿ＳＭＰとして出力する。セレクタ３０９Ｇは、ＭＥＥＮＤ＿ＬＡＳＴのタイミングで、ＣＯＵＮＴ＿ＺＣ＝１かつＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ＝０であれば、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴとＣＯＵＮＴ＿ＳＭＰ＿ＰＲＥＺＣを加算器３０９Ｆで加算した出力ＣＯＵＮＴ＿ＳＭＰ＿ＡＬＬをＣＯＵＮＴ＿ＳＭＰとして出力する。セレクタ３０９Ｇは、ＭＥＥＮＤ＿ＬＡＳＴのタイミングで、ＣＯＵＮＴ＿ＺＣ＝１かつＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ＝１であれば、ＣＯＵＮＴ＿ＳＭＰ＿ＩＮＳＴをＣＯＵＮＴ＿ＳＭＰとして出力する。セレクタ３０９Ｇは、ＭＥＥＮＤのタイミングで、ＣＯＵＮＴ＿ＺＣ≧２であれば、ＣＯＵＮＴ＿ＳＭＰ＿ＺＣをＣＯＵＮＴ＿ＳＭＰとして出力する。
【００５７】
平方根演算器３１０は、ＡＶＧ＿Ｕの平方根を演算し、ＲＭＳ＿Ｕとして出力し、ＣＰＵ４へ送る。
【００５８】
電流２乗平均値演算回路３１１は、電圧２乗平均値演算回路３０８と同様に、加算器３０８Ａ、セレクタ３０８Ｂ、加算器３０８Ｄ、メモリ３０８Ｃ、３０８Ｅ、加算器３０８Ｆ、セレクタ３０８Ｇ及び除算器３０８Ｈを備えている。電流２乗平均値演算回路３１１は、電圧２乗平均値演算回路３０８と共通のタイミング制御回路３０７からのＭＥＳＴ、ＭＥＳＴ＿１ＳＴ、ＺＣ＿ＥＤＧＥ、ＣＯＵＮＴ＿ＺＣ、ＭＥＥＮＤ、ＭＥＥＮＤ＿ＬＡＳＴ、ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ、サンプリング数演算回路３０９からのＣＯＵＮＴ＿ＳＭＰが供給されている。そして、電流２乗平均値演算回路３１１は、電圧２乗平均値演算回路３０８と同様のタイミングでｉ＿ｓｑｒ（ｎ）を積算したＳＵＭ＿ＵをＣＯＵＮＴ＿ＳＭＰで除した値をＡＶＧ＿Ｉとして出力する。
【００５９】
平方根演算器３１２は、ＡＶＧ＿Ｉの平方根を演算し、ＲＭＳ＿Ｉとして出力し、ＣＰＵ４へ送る。
【００６０】
電力平均値演算回路３１３は、電圧２乗平均値演算回路３０８と同様に、加算器３０８Ａ、セレクタ３０８Ｂ、加算器３０８Ｄ、メモリ３０８Ｃ、３０８Ｅ、加算器３０８Ｆ、セレクタ３０８Ｇ及び除算器３０８Ｈを備えている。電力平均値演算回路３１３も、電圧２乗平均値演算回路３０８と共通のタイミング制御回路３０７からのＭＥＳＴ、ＭＥＳＴ＿１ＳＴ、ＺＣ＿ＥＤＧＥ、ＣＯＵＮＴ＿ＺＣ、ＭＥＥＮＤ、ＭＥＥＮＤ＿ＬＡＳＴ、ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ、サンプリング数演算回路３０９からのＣＯＵＮＴ＿ＳＭＰが供給されている。そして、電力平均値演算回路３１３は、電圧２乗平均値演算回路３０８と同様のタイミングでｐ（ｎ）を積算したＳＵＭ＿ＵをＣＯＵＮＴ＿ＳＭＰで除した値をＡＶＧ＿ＰとしてＣＰＵ４へ出力する。
【００６１】
上述した構成のＦＰＧＡ３の動作を図６〜図１０を参照して説明する。
【００６２】
図６は、固定アップデートモードにおける各処理の出力のタイミングチャートを示したものである。なお、1つのｕｐｄａｔｅレート間のサンプリングクロックＳＭＰＣＫの個数は、実際はもっと多いが、ここでは説明の都合上少なくしている。１つのｕｐｄａｔｅレートは、ＭＥＳＴからＭＥＥＮＤで区切られている。ＭＥＥＮＤのタイミングで、そのｕｐｄａｔｅ間の電圧実効値ＲＭＳ＿Ｕを求めている。ＳＵＭ＿ＩＮＳＴ＿Ｕは、ｕ（ｎ）＾２を加算した値だが、ここでは、その最終値をＳ１、Ｓ２、…として表記している。最終値とは、ＺＣ＿ＥＤＧＥの直前までの加算値、あるいはＭＥＥＮＤまでの加算値である。
【００６３】
ｎ＝１７のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝３なので、ＡＶＧ＿Ｕ＝（Ｓ２＋Ｓ３）／１２となり、このときＲＭＳ＿Ｕ＝√｛（Ｓ２＋Ｓ３）／１２｝となり、ＭＥＳＴ後の最初のＺＣ＿ＥＤＧＥからＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥまでの電圧波形の２周期分の実効値となる。
【００６４】
ｎ＝３４のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝２なので、ＡＶＧ＿Ｕ＝Ｓ６／８となり、このときＲＭＳ＿Ｕ＝√（Ｓ６／８）となり、ＭＥＳＴ後の最初のＺＣ＿ＥＤＧＥからＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥまでの電圧波形の１周期分の実効値となる。
【００６５】
ｎ＝５１のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＡＶＧ＿Ｕ＝（Ｓ８＋Ｓ９）／１７となり、このときＲＭＳ＿Ｕ＝√｛（Ｓ８＋Ｓ９）／１７｝となり、ＭＥＳＴからＭＥＥＮＤまでの電圧波形の周期とは同期していない実効値となる。
【００６６】
ｎ＝６８のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＡＶＧ＿Ｕ＝（Ｓ１０＋Ｓ１１）／１７となり、このときＲＭＳ＿Ｕ＝√｛（Ｓ１０＋Ｓ１１）／１７｝となり、ＭＥＳＴからＭＥＥＮＤまでの電圧波形の周期とは同期していない実効値となる。
【００６７】
図７は、ＡＵＴＯＵＰＤＡＴＥ＝１のときの各処理の出力のタイミングチャートを示したものの例１である。なお、1つのｕｐｄａｔｅレート間のサンプリングクロックＳＭＰＣＫの個数は、実際はもっと多いが、ここでは説明の都合上少なくしている。
【００６８】
１つのｕｐｄａｔｅレートは、ＭＥＳＴからＭＥＥＮＤで区切られている。ＭＥＥＮＤのタイミングで、ＣＯＵＮＴ＿ＺＣ≧２であれば、そのときの最新の電圧実効値ＲＭＳ＿Ｕを求めている。ＭＥＥＮＤのタイミングでＣＯＵＮＴ＿ＺＣ≦１であれば、ＲＭＳ＿Ｕは求めない。
【００６９】
ＳＵＭ＿ＩＮＳＴ＿Ｕは、ｕ（ｎ）＾２を加算した値だが、ここでは、その最終値をＳ１、Ｓ２、…として表記している。最終値とは、ＺＣ＿ＥＤＧＥの直前までの加算値、あるいはＭＥＥＮＤ＿ＬＡＳＴまでの加算値である。
【００７０】
ｎ＝１７のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝３なので、ＡＶＧ＿Ｕ＝（Ｓ２＋Ｓ３）／１２となり、このときＲＭＳ＿Ｕ＝√｛（Ｓ２＋Ｓ３）／１２｝となり、ＭＥＳＴ＿１ＳＴ後の最初のＺＣ＿ＥＤＧＥからＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥまでの電圧波形の２周期分の実効値となる。このとき、ＭＥＥＮＤのタイミングでＣＯＵＮＴ＿ＺＣ≧２なので、ＣＯＵＮＴ＿ＺＣを１に書き換える。また、ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲを１に設定する。
【００７１】
ｎ＝３４のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝３なので、ＡＶＧ＿Ｕ＝（Ｓ４＋Ｓ５）／１４となり、このときＲＭＳ＿Ｕ＝√｛（Ｓ４＋Ｓ５）／１４｝となり、ｎ＝１７のＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥからｎ＝３４のＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥまでの電圧波形の２周期分の実効値となる。
【００７２】
ｎ＝５１のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝２なので、ＡＶＧ＿Ｕ＝Ｓ６／１２となり、このときＲＭＳ＿Ｕ＝√（Ｓ６／１２）となり、ｎ＝３４のＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥからｎ＝５１のＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥまでの電圧波形の１周期分の実効値となる。
【００７３】
ｎ＝６８のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝２なので、ＡＶＧ＿Ｕ＝Ｓ７／１８となり、このときＲＭＳ＿Ｕ＝√（Ｓ７／１８）となり、ｎ＝５１のＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥからｎ＝６８のＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥまでの電圧波形の１周期分の実効値となる。
【００７４】
図８は、ＡＵＴＯＵＰＤＡＴＥ＝１のときの各処理の出力のタイミングチャートを示したものの例２である。
【００７５】
ｎ＝１１のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝０なので、ＲＭＳ＿Ｕは求めない。
【００７６】
ｎ＝２２のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＲＭＳ＿Ｕは求めない。
【００７７】
ｎ＝３３のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＲＭＳ＿Ｕは求めない。
【００７８】
ｎ＝４４のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＲＭＳ＿Ｕは求めない。
【００７９】
ｎ＝５５のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＲＭＳ＿Ｕは求めない。
【００８０】
ｎ＝６６のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝２なので、ＡＶＧ＿Ｕ＝Ｓ２／４２となり、このときＲＭＳ＿Ｕ＝√（Ｓ２／４）となり、ＭＥＳＴ＿１ＳＴ後の最初のＺＣ＿ＥＤＧＥからｎ＝６６のＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥまでの電圧波形の１周期分の実効値となる。このとき、ＭＥＥＮＤのタイミングでＣＯＵＮＴ＿ＺＣ≧２なので、ＣＯＵＮＴ＿ＺＣを１に書き換える。また、ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲを１に設定する。
【００８１】
図９は、ＡＵＴＯＵＰＤＡＴＥ＝１のときの各処理の出力のタイミングチャートを示したものの例３である。タイムアウト時の動作を示すため、タイムアウト回数を２に設定した場合の例である。実際のタイムアウト回数は、例えばｕｐｄａｔｅレート＝５０ｍｓ、タイムアウト時間が１ｓであれば２０となり、タイムアウト時間が２０ｓであれば４００となる。
【００８２】
ｎ＝１７のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝３なので、ＡＶＧ＿Ｕ＝（Ｓ２＋Ｓ３）／１２となり、このときＲＭＳ＿Ｕ＝√｛（Ｓ２＋Ｓ３）／１２｝となり、ＭＥＳＴ＿１ＳＴ後の最初のＺＣ＿ＥＤＧＥからＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥまでの電圧波形の２周期分の実効値となる。このとき、ＭＥＥＮＤのタイミングでＣＯＵＮＴ＿ＺＣ≧２なので、ＣＯＵＮＴ＿ＺＣを１に書き換える。また、ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲを１に設定する。
【００８３】
ｎ＝３４のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＲＭＳ＿Ｕは求めない。
【００８４】
ｎ＝５１のＭＥＥＮＤのタイミングでは、ＭＥＥＮＤのカウント数がタイムアウト回数に達したためＭＥＥＮＤ＿ＬＡＳＴが出ている。このときＣＯＵＮＴ＿ＺＣ＝１かつＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ＝１なので、ＡＶＧ＿Ｕ＝Ｓ４／３８となり、このときＲＭＳ＿Ｕ＝√（Ｓ４／３８）となり、電圧波形の周期とは同期していない実効値となる。このときは、次のＭＥＳＴのタイミングでＭＥＳＴ＿１ＳＴを出し、ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲは０にする。また、ＣＯＵＮＴ＿ＺＣを０に初期化する。
【００８５】
ｎ＝６８のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝２なので、ＡＶＧ＿Ｕ＝Ｓ６／６となり、このときＲＭＳ＿Ｕ＝√（Ｓ６／６）となり、ＭＥＳＴ＿１ＳＴ後の最初のＺＣ＿ＥＤＧＥからＭＥＥＮＤ前の最後のＺＣ＿ＥＤＧＥまでの電圧波形の１周期分の実効値となる。このとき、ＭＥＥＮＤのタイミングでＣＯＵＮＴ＿ＺＣ≧２なので、ＣＯＵＮＴ＿ＺＣを１に書き換える。また、ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲを１に設定する。
【００８６】
図１０は、ＡＵＴＯＵＰＤＡＴＥ＝１のときの各処理の出力のタイミングチャートを示したものの例４である。タイムアウト時の動作を示すため、タイムアウト回数を３に設定した場合の例である。
【００８７】
ｎ＝１７のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝０なので、ＲＭＳ＿Ｕは求めない。
【００８８】
ｎ＝３４のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＲＭＳ＿Ｕは求めない。
【００８９】
ｎ＝５１のＭＥＥＮＤのタイミングでは、ＭＥＥＮＤのカウント数がタイムアウト回数に達したためＭＥＥＮＤ＿ＬＡＳＴが出ている。このときＣＯＵＮＴ＿ＺＣ＝１かつＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ＝０なので、ＡＶＧ＿Ｕ＝（Ｓ１＋Ｓ２）／５１となり、このときＲＭＳ＿Ｕ＝√｛（Ｓ１＋Ｓ２）／５１｝となり、電圧波形の周期とは同期していない実効値となる。このときは、次のＭＥＳＴのタイミングでＭＥＳＴ＿１ＳＴを出し、ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲは０にする。また、ＣＯＵＮＴ＿ＺＣを０に初期化する。
【００９０】
ｎ＝６８のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＲＭＳ＿Ｕは求めない。
【００９１】
図１１は、ＡＵＴＯＵＰＤＡＴＥ＝１のときの各処理の出力のタイミングチャートを示したものの例５である。タイムアウト時の動作を示すため、タイムアウト回数を３に設定した場合の例である。
【００９２】
ｎ＝１７のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝０なので、ＲＭＳ＿Ｕは求めない。
【００９３】
ｎ＝３４のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝０なので、ＲＭＳ＿Ｕは求めない。
【００９４】
ｎ＝５１のＭＥＥＮＤのタイミングでは、ＭＥＥＮＤのカウント数がタイムアウト回数に達したためＭＥＥＮＤ＿ＬＡＳＴが出ている。このときＣＯＵＮＴ＿ＺＣ＝０なので、ＡＶＧ＿Ｕ＝Ｓ１／５１となり、このときＲＭＳ＿Ｕ＝√（Ｓ１／５１）となり、電圧波形の周期とは同期していない実効値となる。このときは、次のＭＥＳＴのタイミングでＭＥＳＴ＿１ＳＴを出し、ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲは０にする。また、ＣＯＵＮＴ＿ＺＣを０に初期化する。
【００９５】
ｎ＝６８のＭＥＥＮＤのタイミングでは、ＣＯＵＮＴ＿ＺＣ＝１なので、ＲＭＳ＿Ｕは求めない。
【００９６】
上述した実施形態によれば、ＦＰＧＡ３が、周期区切れを検出する。そして、ＦＰＧＡ３は、ｕｐｄａｔｅレート内に一周期以上入力されていると判定した場合（即ちｕｐｄａｔｅレート内に複数の周期区切れが検出された場合）、一周期以上検出されるｕｐｄａｔｅレートについて、少なくとも複数個の周期区切れで定められる全周期分のｕ＿ｓｑｒ（ｎ）、ｉ＿ｓｑｒ（ｎ）、ｐ（ｎ）を積算して実効値などを演算する。ＦＰＧＡ３は、周期区切れが１つ検出されるｕｐｄａｔｅレートについて、１つの周期区切れと、１つの周期区切れの１つ前の周期区切れとで定められる一周期分のｕ＿ｓｑｒ（ｎ）、ｉ＿ｓｑｒ（ｎ）、ｐ（ｎ）を積算して実効値などの演算を行なう。
【００９７】
これにより、ｕｐｄａｔｅレート内に電圧Ｕ１又は電流Ｉ１が一周期以上入力されていれば、ｕｐｄａｔｅレート毎に実効値又は平均値が求められ、ｕｐｄａｔｅレート内に電圧Ｕ１又は電流Ｉ１が一周期以上入力されなければ、電圧Ｕ１又は電流Ｉ１の一周期毎に実効値又は平均値が求められる。これにより、電圧Ｕ１又は電流Ｉ１の周波数が低い場合でも、正確に実効値又は平均値を求めることができる。
【００９８】
即ち、ｕｐｄａｔｅレートに対して電圧波形の周波数が低く１周期以上入っていないため、正確に測定ができていないような場合でも、本実施形態によれば、演算区間を複数のｕｐｄａｔｅレートをまたいで処理できるように改良し、周期の整数倍の演算区間とし、正確に測定できるようになった。このとき、従来のように電力計１の使用者が電力計１のｕｐｄａｔｅレートの変更をする必要がなく、自動的に、ｕｐｄａｔｅレートをまたぐ回数が決まる。
【００９９】
従来は、ｕｐｄａｔｅレートを長いままに設定しておくと、低い周波数でも測定できるが時間がかかり、電圧波形の周波数が高い場合は、無駄な待ち時間になってしまったが、本実施形態によれば、ｕｐｄａｔｅレートは最短にしておけるので、周波数が高い場合は、１回のｕｐｄａｔｅレートで測定できるので、無駄な待ち時間は発生しない。
【０１００】
従来は、電圧波形の周波数が変化するような場合、その都度ｕｐｄａｔｅレートを変更するのが煩わしく、また周波数の変化が速い場合、ｕｐｄａｔｅレートの変更が追い付かない場合もあったが、本実施例によれば、周波数に自動的に追従するので、このような場合でも正確に測定できる。
【０１０１】
また、従来は、ｕｐｄａｔｅレート内に電圧Ｕ１又は電流Ｉ１が一周期以上入っている場合、ｕｐｄａｔｅレートとｕｐｄａｔｅレートとの間をまたいで一周期が入力された電圧Ｕ１又は電流Ｉ１については積算の対象外で、その部分は測定することができなかった。
【０１０２】
上述した実施形態によれば、ＦＰＧＡ３は、ｕｐｄａｔｅレート内に電圧Ｕ１又は電流Ｉ１が一周期以上入力され、かつ、前回のｕｐｄａｔｅレートに電圧Ｕ１又は電流Ｉ１の周期区切れがあった場合、当該前回のｕｐｄａｔｅレートの最後の周期区切れから今回のｕｐｄａｔｅレートの最後の周期区切れまでのｕ＿ｓｑｒ（ｎ）、ｉ＿ｓｑｒ（ｎ）、ｐ（ｎ）を積算して実効値又は前記平均値を演算する。
【０１０３】
これにより、ｕｐｄａｔｅレートとｕｐｄａｔｅレートとの間をまたいで一周期が入力された電圧Ｕ１又は電流Ｉ１についても積算区間に含まれるので、演算対象外の部分はほとんどなくすことができた。
【０１０４】
上述した実施形態によれば、ＦＰＧＡ３は、タイムアウトが判定されると、電圧Ｕ１又は電流Ｉ１が一周期以上入力されなくなった最初のｕｐｄａｔｅレートの開始からタイムアウトと判定されたｕｐｄａｔｅレートの終了までのｕ＿ｓｑｒ（ｎ）、ｉ＿ｓｑｒ（ｎ）、ｐ（ｎ）を積算して実効値又は平均値を演算する。
【０１０５】
電圧Ｕ１又は電流Ｉ１がＤＣの場合、上述したタイムアウト判定時に演算された実効値又は平均値が適切な値である。これにより、電圧Ｕ１又は電流Ｉ１がＤＣの場合でも実効値又は平均値を測定することができる。
【０１０６】
上述した実施形態によれば、ＡＵＴＯＵＰＤＡＴＥ＝１の場合、加算器３０８Ａが、周期区切れ検出時（ＺＣ＿ＥＤＧＥのタイミング）、及び、タイムアウトが判定されるタイミング（ＭＥＥＮＤ＿ＬＡＳＴのタイミング）でリセットされる。ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲが、ＭＥＥＮＤ＿ＬＡＳＴのタイミングでオフされ、ｕｐｄａｔｅレートの終了時（ＭＥＥＮＤのタイミング）にＣＯＵＮＴ_ＺＣが２以上のときにオンされる。また、セレクタ３０８Ｇが、タイムアウトが判定されるタイミングにおいて、ＣＯＵＮＴ_ＺＣ＝０のとき、タイムアウトが判定されるタイミングにおいて、ＣＯＵＮＴ_ＺＣ＝１かつＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ＝１のとき、ｕｐｄａｔｅレートの終了タイミングにおいて、ＣＯＵＮＴ_ＺＣが２以上のとき、加算器３０８Ａの加算値に基づいて実効値又は平均値を演算し、タイムアウトが判定されるタイミングにおいて、ＣＯＵＮＴ_ＺＣ＝１かつＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲ＝０のとき、加算器３０８Ａの加算値にメモリ３０８Ｃの値を加算した値に基づいて実効値又は平均値を演算する。
【０１０７】
ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲを設定することにより、例えば、図９に示す場合、タイムアウトした後、ｎ＝１４〜ｎ＝５１の積算値に加えてメモリ３０８Ｃに格納されたｎ＝１の積算値Ｓ１が加算されないようにしている。
【０１０８】
これにより、演算手段としてＣＰＵ等を用いることなく、低コストで積和演算を高速に行うことができるＦＰＧＡを用いることができる。
【０１０９】
また、上述した実施形態によれば、ＡＵＴＯＵＰＤＡＴＥ＝０の場合、加算器３０８Ａは、周期区切れ検出時、及び、ｕｐｄａｔｅレートの開始タイミング（ＭＥＳＴのタイミング）でリセットする。ＦＬＡＧ＿ＰＡＳＴ＿２ＯＶＥＲが常時オフされる。また、ｕｐｄａｔｅレートの開始タイミングにおいて、ＣＯＵＮＴ_ＺＣ＝０のとき、ｕｐｄａｔｅレートの開始タイミングにおいて、ＣＯＵＮＴ_ＺＣ＝２以上のとき、加算器３０８Ａの加算値に基づいて実効値又は平均値を演算し、ｕｐｄａｔｅレートの開始タイミングにおいて、ＣＯＵＮＴ_ＺＣ＝１であるとき、加算器３０８Ａの加算値にメモリ３０８Ｃの値を加算した値に基づいて実効値又は平均値を演算する。
【０１１０】
これにより、ＦＰＧＡ３は、簡単な構成で自動アップデートモードと固定アップデートモードとの２つのモードを切り替えて動作を行うことができる。
【０１１１】
なお、上述した実施形態では、電圧Ｕ１又は電流Ｉ１の立ち上がりエッジを周期区切れとして検出としていたが、これに限ったものではない。エッジ検出器３０７Ｃにより、立ち下がりエッジを検出し、これを周期区切れとしてもよい。
【０１１２】
さらに、立ち上がり、立ち下がりを固定せず、ＭＥＳＴ＿１ＳＴ後の最初のエッジが立ち上がりなら、その後のエッジも立ち上がりエッジを周期区切れとして検出する。ＭＥＳＴ＿１ＳＴ後の最初のエッジが立ち下がりなら、その後のエッジも立ち下がりエッジを周期区切れとして検出するようにしてもよい。
【０１１３】
また、上述した実施形態では、電圧実効値、電流実効値を対象としたが、図２の２乗演算器３０４、３０５を絶対値演算器に変えてＭＥＡＮ（実効値換算平均値）や、２乗演算器３０４、３０５を通さずＤＣ（平均値）とすることも可能である。
【０１１４】
また、上述した実施形態では、ｕｐｄａｔｅレート内に例えば３周期分入力されていれば、３周期分のデータを積算していたが、これに限ったものではない。少なくとも一周期分のデータを積算すればよく、上述したようにｕｐｄａｔｅレート内に３周期分入力されても一周期分のデータのみを積算するようにしてもよい。
【０１１５】
また、上述した実施形態では、タイムアウト機能を有していたが、この機能は必須ではなく、なくてもよい。
【０１１６】
また、上述した実施形態では、電力測定エレメントが1個（入力回路がＵ１、Ｉ１の１組）としたが、例えば、二相交流や三相交流のように２個（入力回路がＵ１、Ｉ１、Ｕ２、Ｉ２の２組）や３個（入力回路がＵ１、Ｉ１、Ｕ２、Ｉ２、Ｕ３、Ｉ３の３組）またはそれ以上にすることも可能。
【０１１７】
例えば３エレメントとした場合、図１２及び図１３に示すように、図２のＭＥＳＴ・ＭＥＥＮＤ発生器３０１、ＡＵＴＯＵＰＤＡＴＥ設定３０２、サンプリングクロック発生器３０３を除く部分を３個ずつ用意することで可能になる。
【０１１８】
この場合、エレメント毎にＺＣのタイミングが異なっていたり、周波数が異なっていても、測定ができる。また、１つのエレメントのみタイムアウトしても、他のエレメントはそれに影響されず、連続した演算区間となる。
【０１１９】
また、セレクタ３０７Ｂを同一のエレメントのｚｃｕ、ｚｃｉのみからの選択ではなく、他のエレメントのｚｃｕ、ｚｃｉからも選択できるようにすることで、３エレメントとも同じＺＣのタイミングでの演算区間とすることも可能になる。
【０１２０】
ＲＭＳ＿Ｕ、ＲＭＳ＿Ｉ、ＡＶＧ＿Ｐは、専用の電圧２乗平均値演算回路３０８、電流２乗平均値演算回路３１１、電力平均値演算回路３１３を設け並列処理しているが、回路３０８、３１１、３１３の処理は共通なので、サンプリング周波数に比べ、システムクロックの周波数が十分高ければ、ｕ＿ｓｑｒ（ｎ）、ｉ＿ｓｑｒ（ｎ）、ｐ（ｎ）を時分割で入力して、回路３０８、３１１、３１３を１つにするようにしてもよい。また、前述の２エレメント以上の場合でも、ｕ１＿ｓｑｒ（ｎ）、ｕ２＿ｓｑｒ（ｎ）、ｕ３＿ｓｑｒ（ｎ）、…、ｉ１＿ｓｑｒ（ｎ）、ｉ２＿ｓｑｒ（ｎ）、ｉ３＿ｓｑｒ（ｎ）、…、ｐ１（ｎ）、ｐ２（ｎ）、ｐ３（ｎ）、…と時分割で入力して、回路３０８〜３１３を１つにすることも可能である。
【０１２１】
また、上述した実施形態では、ゼロクロス検出器２３、２６にアナログの電圧入力回路２１、電流入力回路２４の出力を入力して、ｚｃｕ、ｚｃｉを求めていたが、これに限ったものではない。Ａ／Ｄ変換後のｕ（ｎ）、ｉ（ｎ）のデータが正か負かを判定して、それに応じてｚｃｕ、ｚｃｉを出力するゼロクロス検出器２３、２６を用いてもよい。
【０１２２】
なお、前述した各実施形態は本発明の代表的な形態を示したに過ぎず、本発明は、実施形態に限定されるものではない。即ち、当業者は、従来公知の知見に従い、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。かかる変形によってもなお本発明の給紙装置の構成を具備する限り、勿論、本発明の範疇に含まれるものである。
【符号の説明】
【０１２３】
１  電力計（演算装置）
３  ＦＰＧＡ（演算手段、判定手段、タイムアウト判定手段）
３０２  ＡＵＴＯＵＰＤＡＴＥ設定（設定手段）
３０７Ｃ  エッジ検出器（周期区切れ検出器）
３０７Ｄ  ＺＣエッジカウンタ（カウンタ、第１カウンタリセット手段、第１フラグ手段、第２カウンタリセット手段、カウンタリセット制御手段、第２フラグ手段、フラグ制御手段）
３０８Ａ  加算器（第１加算器リセット手段、第２加算器リセット手段、加算器リセット制御手段）
３０８Ｂ  セレクタ（保存手段）
３０８Ｃ  メモリ
【図１】
2018028493.tif 000003
【図２】
2018028493.tif 000004
【図３】
2018028493.tif 000005
【図４】
2018028493.tif 000006
【図５】
2018028493.tif 000007
【図６】
2018028493.tif 000008
【図７】
2018028493.tif 000009
【図８】
2018028493.tif 000010
【図９】
2018028493.tif 000011
【図１０】
2018028493.tif 000012
【図１１】
2018028493.tif 000013
【図１２】
2018028493.tif 000014
【図１３】
2018028493.tif 000015