デジタル処理を行なう測定装置では、周期的にサンプリングされた瞬時値に基づいて測定値を算出し、ある期間に亘って積算する処理を行なうものがある。例えば、電力計では、サンプリングして得られた電圧瞬時値、電流瞬時値から所定時間毎の電力値を測定し、ある期間に亘って積算することで積算電力(電力量)を測定したり、電流瞬時値から所定時間毎の電流値を測定し、ある期間に亘って積算することで積算電流(電流量)を測定する機能を有するものがある。
積算電力を測定する電力計を例に、従来の積算値測定処理について説明する。図6は、従来の電力計500の内部構成を示すブロック図である。説明を簡単にするために、電力計500は、電力測定エレメントが1個の単相電力測定器であるとする。
本図に示すように電力計500は、信号入力部510、第1演算部520、第2演算部530、発振器540、時計部550、表示部560、操作部570を備えている。
信号入力部510は、電圧U1を入力する電圧入力回路511、第1A/D変換器512、電流I1を入力する電流入力回路513、第2A/D変換器514を備えている。
電圧入力回路511は、入力された電圧U1を、演算増幅器により、後段回路の処理に適したレベルに正規化する。第1A/D変換器512は、後述するSMPCKのタイミング毎に、電圧入力回路511により正規化された電圧をデジタル信号u(n)に変換する。
電流入力回路513は、入力された電流I1を、シャント抵抗により電圧に変換し、演算増幅器により、後段回路の処理に適したレベルに正規化する。第2A/D変換器514は、SMPCKのタイミング毎に、電流入力回路513により正規化された電圧をデジタル信号i(n)に変換する。
第1A/D変換器512から出力される電圧瞬時値の変換データu(n)、および第2A/D変換器514から出力される電流瞬時値の変換データi(n)は第1演算部520に入力される。
第1演算部520には、システムクロックとして、発振器540からクロックCKが供給されている。また、リアルタイムクロックである時計部550から一定時間間隔の割り込みINTを受け取り、電力を算出する期間の単位であるupdateレートの時間を生成する。第1演算部520では、後述する第1演算処理が行なわれ、その結果を第2演算部530に転送する。
第2演算部530では第1演算部520からの演算結果を使って、後述する第2演算処理が行なわれ、その結果を表示部560に表示する。また、第2演算部530は、操作部570からの操作入力により、積算のスタート時刻、ストップ時刻を設定する。
第2演算部530は、時計部550から割り込み信号INTを受け取り、その度に時計部550から時刻データを読み出し、積算のスタート時刻、ストップ時刻になったかどうかの判定をする。
第1演算部520の内部構成を示す図7を参照して、第1演算部520が行なう第1演算処理について説明する。
MEST・MEEND発生器521は、積算スタートを示すSTARTが来たら、MESTを出力し、updateレート時間経過後にMEENDを出力する。MEENDを出力したら、次のサンプリングクロックのタイミングでMESTを出力し、これを繰り返す。積算ストップを示すSTOPが来たら、MEENDを出して停止し、その後MEST、MEENDを出さない。再度、STARTが来たら、MEST、MEENDを出力する。
MEST、MEENDは、時計部550からの割り込み信号INTを元に作られ、時計部550の時刻と同期が取れている。
第1乗算器522は、電圧瞬時値の変換データu(n)と電流瞬時値の変換データi(n)を乗算し、瞬時電力p(n)を求める。演算式は、次の通りである。
p(n)=u(n)×i(n)
ここで、u(n)はn番目のサンプリングの電圧瞬時値の変換データであり、i(n)はn番目のサンプリングの電流瞬時値の変換データである。
第1加算器523は、瞬時電力p(n)を今までの加算値に加算し、SUM_Pとして出力する。また、MEST・MEEND発生器521からのMESTのタイミングで加算値SUM_Pを0に初期化する。
サンプリングクロック発生器524は、第1A/D変換器512、第2A/D変換器514のサンプリングタイミングを定めるサンプリングクロックSMPCKを出力する。このサンプリングクロックSMPCKは、発振器540からのシステムクロックCKを元に作られ、このCKと同期が取れている。
第1カウンタ525は、SMPCKの数をカウントし、COUNT_SMPとして出力する。また、MESTのタイミングでCOUNT_SMPを0に初期化する。
第1演算部520での演算結果であるSUM_P、COUNT_SMPは、updateレート毎のMEENDのタイミングで、第2演算部530に転送される。
第2演算部530の内部構成を示す図8を参照して、第2演算部530が行なう第2演算処理について説明する。
第2乗算器531は、第1演算部520からのMEEND毎のSUM_P(m)と、サンプリングクロックの公称周期DELTA_Tとを乗算して、updateレート毎の電力量を算出し、INTEG(m)として出力する。なお、SUM_P(m)は、m番目のMEENDでの第1演算部520からのSUM_Pである。
第2加算器532は、MEEND毎にINTEG(m)を今までの加算値に加算して、電力量の積算値を算出し、INTEG_TOTALとして出力する。また、STARTのタイミングで加算値INTEG_TOTALを0に初期化する。
第3乗算器533は、第1演算部520からのMEEND毎のCOUNT_SMP(m)と、サンプリングクロックの公称周期DELTA_Tとを乗算して、updateレート毎の測定時間を算出し、TIME(m)として出力する。なお、COUNT_SMP(m)は、m番目のMEENDでの第1演算部520からのCOUNT_SMPである。
第3加算器534は、MEEND毎にTIME(m)を今までの加算値に加算して、測定時間の積算値を算出し、TIME_TOTALとして出力する。また、STARTのタイミングで加算値TIME_TOTALを0に初期化する。
START・STOP発生器535は、時計部550からのINTが来るたびに、時計部550から時刻データを読み出し、時刻データが、あらかじめ設定された積算のスタート時刻になったら、STARTを出力し、時刻データが、あらかじめ設定された積算のストップ時刻になったら、STOPを出力する。
第2演算部530は、MEEND毎に、INTEG_TOTAL、TIME_TOTALを表示部560に表示する。これをSTOPが出力されるまで繰り返す。
図9は、各処理の出力例を示すタイミングチャートである。ここでは、説明を簡単にするために、電圧波形は直流1V、電流波形は直流1Aとしている。実際は、交流波形でも処理可能である。
この例では、updateレート=1s、積算スタート時刻=7時00分00秒、積算ストップ時刻=7時00分10秒、第1演算部520のシステムクロックCK=66MHz(公称値)、サンプリングクロックSMPCK=CK/33=2MHz(公称値)としている。時計部550からの割り込みINTは、1sに1回あるもの(1Hz)とする。
第1演算部520のシステムクロックCKは、発振器540から出力されるが、実際の発振器540は出力周波数に誤差を含んでいて、公称値の66MHzではない。一般的な水晶発振器は±50ppm程度の誤差を持っている。
また、時計部550も誤差を持っているが、ここでは、時計部550の時刻を基準としているので、時計部550に対して、第1演算部520のシステムクロックが+50ppmの誤差を持っているとした場合で説明する。
システムクロックが+50ppmの誤差を持っていると、公称値66MHzのCKは、実際には、66.0033MHzになる。このCKの33個毎に1パルス出力するものをサンプリングクロックSMPCKとすると、公称値2MHzは、実際には、66.0033MHz/33=2.0001MHzになる。
updateレートは、時計部550からのINTから作られるので、正確に1sとなる。一方、SMPCKは、2.0001MHzなので、1つのupdateレート間に、SMPCKは、2000100個存在する。
電力波形は、電圧波形と電流波形を掛けたもので1V×1A=1Wとなる。
時計部550の時刻データが7時00分00秒となって、積算スタート時刻になると、START・STOP発生器535がSTARTを出力し、MEST・MEND発生器521によりMESTが出力され、1s後にMEENDが出力される。
このMEENDのタイミングでのサンプリング数nは、2000100になる。このときの瞬時電力p(n)は、p(2000100)=1Wになり、SUM_Pは、p(1)+p(2)+…+p(2000100)=1W+1W+…+1W=2000100Wとなる。COUNT_SMPは2000100になる。
この値が第2演算部530に転送され、INTEG(1)=SUM_P(1)×DELTA_T=2000100W×(1/2MHz)=1.00005Wsとなり、TIME(1)=COUNT_SMP(1)×DELTA_T=2000100×(1/2MHz)=1.00005sとなる。また、INTEG_TOTAL=INTEG(1)=1.00005Wsとなり、TIME_TOTAL=TIME(1)=1.00005sになる。
n=2000101の2回目のMESTのタイミングで、SUM_P、COUNT_SMPは0にリセットされると同時に、n=2000101のデータが入力されるので、SUM_P=p(2000101)=1W、COUNT_SMP=1となる。
n=4000200の2回目のMEENDのタイミングでは、SUM_Pは、p(2000101)+p(2000102)+…+p(4000200)=1W+1W+…+1W=2000100Wとなる。COUNT_SMPは2000100となる。
この値が第2演算部530に転送され、INTEG(2)=SUM_P(2)×DELTA_T=2000100×(1/2MHz)=1.00005Wsとなり、TIME(2)=COUNT_SMP(2)×DELTA_T=2000100×(1/2MHz)=1.00005sとなる。
また、INTEG_TOTAL=INTEG(1)+INTEG(2)=1.00005Ws+1.00005Ws=2.0001Wsとなり、TIME_TOTAL=TIME(1)+TIME(2)=1.00005s+1.00005s=2.0001sになる。
時計部550の時刻データが7時00分10秒となって、積算ストップ時刻になると、START・STOP発生器535がSTOPを出力する。n=20001000の10回目のMEENDのタイミングでは、SUM_Pは、p(18000901)+p(18000902)+…+p(200001000)=1W+1W+…+1W=2000100Wとなる。COUNT_SMPは、2000100となる。
この値が第2演算部530に転送され、INTEG(10)=SUM_P(10)×DELTA_T=2000100×(1/2MHz)=1.00005Wsとなり、TIME(10)=COUNT_SMP(10)×DELTA_T=2000100×(1/2MHz)=1.00005sとなる。
また、INTEG_TOTAL=INTEG(1)+INTEG(2)+…+INTEG(10)=1.00005Ws+1.00005Ws+…+1.00005Ws=10.0005Wsとなり、TIME_TOTAL=TIME(1)+TIME(2)+…+TIME(10)=1.00005s+1.00005s+…+1.00005s=10.0005sになる。
本発明の実施の形態について図面を参照して説明する。本実施形態は、本発明の測定値積算装置を電力計に適用した場合について説明する。しかしながら、本発明の測定値積算装置は電力計のみならず種々の測定装置に適用することができる。
図1に示すように電力計100は、信号入力部110、第1演算部120、第2演算部130、発振器140、時計部150、表示部160、操作部170を備えている。
信号入力部110は、電圧U1を入力する電圧入力回路111、第1A/D変換器112、電流I1を入力する電流入力回路113、第2A/D変換器114を備えている。
電圧入力回路111は、入力された電圧U1を、演算増幅器により、後段回路の処理に適したレベルに正規化する。第1A/D変換器112は、後述するSMPCKのタイミング毎に、電圧入力回路111により正規化された電圧をデジタル信号u(n)に変換する。
電流入力回路113は、入力された電流I1を、シャント抵抗により電圧に変換し、演算増幅器により、後段回路の処理に適したレベルに正規化する。第2A/D変換器114は、SMPCKのタイミング毎に、電流入力回路113により正規化された電圧をデジタル信号i(n)に変換する。
第1A/D変換器112から出力される電圧瞬時値の変換データu(n)、および第2A/D変換器114から出力される電流瞬時値の変換データi(n)は第1演算部120に入力される。
第1演算部120には、システムクロックとして、発振器140からクロックCKが供給されている。また、リアルタイムクロックである時計部150から一定時間間隔の割り込みINTを受け取り、電力を算出する期間の単位であるupdateレートの時間を生成する。第1演算部120では、後述する第1演算処理が行なわれ、その結果を第2演算部130に転送する。
第2演算部130では第1演算部120からの演算結果を使って、後述する第2演算処理が行なわれ、その結果を表示部160に表示する。また、第2演算部130は、操作部170からの操作入力により、積算のスタート時刻、ストップ時刻を設定する。
第2演算部130は、時計部150から割り込み信号INTを受け取り、その度に時計部150から時刻データを読み出し、積算のスタート時刻、ストップ時刻になったかどうかの判定をする。
第1演算部120の内部構成を示す図2を参照して、第1演算部120が行なう第1演算処理について説明する。
本図に示すように、第1演算部120は、MEST・MEEND発生器121、第1乗算器122、第1加算器123、サンプリングクロック発生器124、第1カウンタ125、第2カウンタ126、メモリ127を備えている。
MEST・MEEND発生器121は、積算スタートを示すSTARTが来たら、MESTを出力し、updateレート時間経過後にMEENDを出力する。MEENDを出力したら、次のサンプリングクロックのタイミングでMESTを出力し、これを繰り返す。積算ストップを示すSTOPが来たら、MEENDを出して停止し、その後MEST、MEENDを出さない。再度、STARTが来たら、MEST、MEENDを出力する。
MEST、MEENDは、時計部150からの割り込み信号INTを元に作られ、時計部150の時刻と同期が取れている。
第1乗算器122は、電圧瞬時値の変換データu(n)と電流瞬時値の変換データi(n)を乗算し、瞬時電力p(n)を求める。演算式は、次の通りである。
p(n)=u(n)×i(n)
ここで、u(n)はn番目のサンプリングの電圧瞬時値の変換データであり、i(n)はn番目のサンプリングの電流瞬時値の変換データである。
第1加算器123は、瞬時電力p(n)を今までの加算値に加算し、SUM_Pとして出力する。また、MEST・MEEND発生器521からのMESTのタイミングで加算値SUM_Pを0に初期化する。
サンプリングクロック発生器124は、第1A/D変換器112、第2A/D変換器114のサンプリングタイミングを定めるサンプリングクロックSMPCKを出力する。このサンプリングクロックSMPCKは、発振器140からのシステムクロックCKを元に作られ、このCKと同期が取れている。
第1カウンタ125は、SMPCKの数をカウントし、COUNT_SMPとして出力する。また、MESTのタイミングでCOUNT_SMPを0に初期化する。
第2カウンタ126は、時計部150からのINTを元にした一定周期の基準期間内に、発振器140が出力するCKの数をカウントする。そして、1回の基準期間が終了する毎に、メモリ127にそのカウント値を書きこみ、カウント値を0にリセットし、また、CKの数のカウントを開始する。
メモリ127は、カウント値が書き込まれる毎にそれをCOUNT_CKとして、第2演算部130に転送する。
一方、SUM_P、COUNT_SMPは、updateレート毎のMEENDのタイミングで、第2演算部130に転送される。
第2演算部130の内部構成を示す図3を参照して、第2演算部130が行なう第2演算処理について説明する。
本図に示すように、第2演算部130は、第2乗算器131、第2加算器132、第3乗算器133、第3加算器134、START・STOP発生器135、第1補正演算部136、第2補正演算部137、補正係数算出部138を備えている。
補正係数算出部138は、第1演算部120からCOUNT_CKが転送される毎に、補正係数Kを算出して出力する。補正係数の算出式は以下の通りである。
K={(発振器の公称周波数)×(基準期間の周期)}/COUNT_CK
第2乗算器131は、第1演算部120からのMEEND毎のSUM_P(m)と、サンプリングクロックの公称周期DELTA_Tとを乗算して、updateレート毎の電力量を算出し、INTEG(m)として出力する。なお、SUM_P(m)は、m番目のMEENDでの第1演算部120からのSUM_Pである。
第1補正演算部136は、INTEG(m)と補正係数Kとを乗算し、その結果をINTEG_K(m)として出力する。
第2加算器132は、MEEND毎にINTEG_K(m)を今までの加算値に加算して、電力量の積算値を算出し、INTEG_TOTALとして出力する。また、STARTのタイミングで加算値INTEG_TOTALを0に初期化する。
第3乗算器133は、第1演算部120からのMEEND毎のCOUNT_SMP(m)と、サンプリングクロックの公称周期DELTA_Tとを乗算して、updateレート毎の測定時間を算出し、TIME(m)として出力する。なお、COUNT_SMP(m)は、m番目のMEENDでの第1演算部520からのCOUNT_SMPである。
第2補正演算部137は、TIME(m)と補正係数Kとを乗算し、その結果をTIME_K(m)として出力する。
第3加算器134は、MEEND毎にTIME_K(m)を今までの加算値に加算して、測定時間の積算値を算出し、TIME_TOTALとして出力する。また、STARTのタイミングで加算値TIME_TOTALを0に初期化する。
START・STOP発生器135は、時計部150からのINTが来るたびに、時計部150から時刻データを読み出し、時刻データが、あらかじめ設定された積算のスタート時刻になったら、STARTを出力し、時刻データが、あらかじめ設定された積算のストップ時刻になったら、STOPを出力する。
第2演算部130は、MEEND毎に、INTEG_TOTAL、TIME_TOTALを表示部160に表示する。これをSTOPが出力されるまで繰り返す。
なお、第1演算部120が行なう第1演算処理と、第2演算部130が行なう第2演算処理との区分けは便宜的なものである。例えば、それぞれの演算部の役割分担を変更したり、1つの演算部が両方の演算処理を行なうようにしてもよいし、3つ以上の演算部で処理を分担してもよい。
図4は、本実施形態における各処理の出力例を示すタイミングチャートである。従来のタイミングチャートと変更になった部分に注目して説明する。
ここでは、基準期間である第2カウンタ126のリセット周期を1sとし、そのタイミングはMESTと同時としているものとする。他の条件は従来のタイミングチャートと同様とする。
第2カウンタ126は、1s間のCK数をカウントするため、発振器140の周波数が66.0033MHzなので、n=2000100のMEENDのタイミングでは、66003300となり、COUNT_CK(1)=66003300となる。
補正係数Kは、K={(発振器の公称周波数)×(基準期間の周期)}/COUNT_CK(1)=(66MHz×1s)/66003300=0.9999500025となる。
INTEG_K(1)は、INTEG(1)×K=1.00005Ws×0.9999500025=1Wsとなり、TIME_K(1)は、TIME(1)×K=1.00005s×0.9999500025=1sとなる。また、INTEG_TOAL=INTEG_K(1)=1Wsとなり、TIME_TOTAL=TIME_K(1)=1sになる。
n=4000200の2回目のMEENDのタイミングでは、COUNT_CK(2)=66003300となる。
補正係数Kは、K={(発振器の公称周波数)×(基準期間の周期)}/COUNT_CK(2)=(66MHz×1s)/66003300=0.9999500025となる。
INTEG_K(2)は、INTEG(2)×K=1.00005Ws×0.9999500025=1Wsとなり、TIME_K(2)は、TIME(2)×K=1.00005s×0.9999500025=1sとなる。また、INTEG_TOTAL=INTEG_K(1)+INTEG_K(2)=1Ws+1Ws=2Wsとなり、TIME_TOTAL=TIME_K(1)+TIME_K(2)=1s+1s=2sになる。
n=20001000の10回目のMEENDのタイミングでは、COUNT_CK(10)=66003300となる。
補正係数Kは、K={(発振器の公称周波数)×(基準期間の周期)}/COUNT_CK(10)=(66MHz×1s)/66003300=0.9999500025となる。
INTEG_K(10)は、INTEG(10)×K=1.00005Ws×0.9999500025=1Wsとなり、TIME_K(10)は、TIME(10)×K=1.00005s×0.9999500025=1sとなる。
また、INTEG_TOTAL=INTEG_K(1)+INTEG_K(2)+…+INTEG_K(10)=1Ws+1Ws+…+1Ws=10Wsとなり、TIME_TOTAL=TIME_K(1)+TIME_K(2)+…+TIME_K(10)=1s+1s+…+1s=10sになる。
このように、本実施形態の電力計100によれば、補正演算をすることで、積算値と積算時間とを理論値と一致させることができるため、高精度の発振器を用いることなく測定精度を高めることができる。
すなわち、従来は、時計部550に対して、発振器540の周波数が公称値からずれている場合、積算値や積算時間の誤差が生じていた。それを簡単な処理を追加することで、補正係数を求め、補正演算を行なうことで、誤差を小さくすることができる。
発振器140は、周囲温度によって発振周波数が変化するが、その場合でも、補正係数が変化して追従し、時計部150とのずれは小さくなる。また、発振器140は、個体のばらつきにより、発振周波数が部品ごとに異なるが、その場合でも、補正係数が個別の部品ごとに変わり、時計部150とのずれは小さくなる。さらに、発振器140の周波数が公称値と一致していても、時計部150が誤差を有している場合があるが、この場合でも、時計部150の時間に合わせて補正することができる。
上述の例では、基準期間である第2カウンタ126のリセット周期を1sとし、MEENDのタイミングでメモリ127を更新し、補正係数を更新するようにしたが、必ずしもこのようにする必要はない。基準期間である第2カウンタ126のリセット周期は、もっと短い時間でも、もっと長い時間でも、MEENDのタイミングでなくても構わない。いずれの場合も、補正演算するときは、直近の補正係数を使うようにすればよい。
上述のように、本実施形態の電力計100は、発振器140の個体のばらつき、温度変化に追従できるので、高精度な発振器を使わず、安価な発振器を使っても、積算値や積算時間を高精度に測定できる。
上述の例では、updateレートを時計部150のINTと同じ周期の1sとしたが、これはどちらも1sである必要はなく、updateレートは、もっと短くても、長くてもよい。また、時計部150からのINTも、もっと短くても、長くてもよい。また、updateレートとINTは同じ周期である必要もない。
上述の例では、説明を簡単にするため、電圧波形、電流波形が常に一定である直流の場合を示したが、これらは変動していても、本発明を適用することができる。また、交流信号でも本発明を適用することができる。
本実施形態では、電力積算の例を示したが、電流積算等でも同様に高精度に測定することができる。
updateレートが固定時間の場合に限らず、図5に示すように、MEST・MEENDを入力信号の1周期毎に出力するように変更してupdateレートを可変にし、入力信号の1周期毎に積算値を更新する場合でも、積算値の補正を行なうことが可能である。
この場合、COUNT_CKは、積算値の更新とは一致せず、基準期間で一定時間毎に更新するので、補正演算するときの補正係数Kは、直近の値を使用すればよい。