趣味のページ

●雑記のメニューに戻る


■逆襲の電力計 〜PCインターフェース付き電力計の実験 劇場版〜 2011年6月25日

※これは「簡易電力計の自作」の続編です。 いままでのお話はこちらをみてくれ。
※「書いてあることがなんだかよくわからん」という人は真似しないように。
感電とか火事で死ねます。

前回のラクガキに色を塗ってみた


■さて、前回のネタは「簡易電力計」であったわけだ。
どの辺が「簡易」なのかというと、それはもう見るからにガラクタ的だったのだけども、
真面目な話をすると「電圧を無視していた」という点に尽きるわけだ、電力計のくせに。
当たり前だけども
 電力 = 電圧 × 電流
である。
電力計が電圧を見てないのは、それはもう致命的なのだけど、
世間的には「簡易」を名乗れば許されることになっているらしい。エコワットとか。
そんなのが前回の話。

で。

もうお判りだと思うけど、今回は電圧もちゃんと測ってPCに入力しようという話。
名実ともに立派な電力計もどきを目指してみるわけだ。

ちなみにPCに入力するのは簡単で、そもそもライン入力というのはLとRの2チャンネル入力なのだから、
例えば電圧をLへ、電流をRへ繋げば、当然ながら両方の信号を同時にサンプリングできる。
なので入力すること自体は簡単なわけですな。

つまりあとは電圧センサーがあればよいわけだが、今回利用するのはコレ。

 

見ての通りのACアダプターでございます。

たぶんどこの家にでも古めの電子機器用のガラクタとして
1つや2つくらい転がっているんじゃないかと思うので、
ほとんどタダでゲットできるんじゃないだろか。
あ、当然ながら、最近主流のスイッチング電源タイプのACアダプターじゃダメ。
トランスの、いかにも鉄のカタマリ的なヤツね。…って、まぁバラして見れば判るんだけどね。

なお、できれば小さいACアダプターのほうが無用な電力を消費しないので望ましいのだけども、
よほど巨大なアダプターでもなければ気にするほどでも無いと思う。

ちなみに写真のACアダプターは4.5V250mAとか書いてあるヤツで、
秋月で150円で買ってきたものだけど、常備在庫じゃないかもしれん。
ま、いずれにしても廃品とかジャンクを使用するのが前提。
なぜかといえば分解するからさ。

分解してみた

で、分解作業なのだけども、大抵のACアダプターのケースはガッチリと接着されているので
普通のカッターナイフとかでは、まず無理。開かない。
で、登場するのがこの工具。

「アクリルカッター」とか「Pカッター(商品名?)」などというヤツで、一見カッターナイフっぽいんだけども、
こいつは切断ではなく削るための工具だったりする。
うーん、削るというか、溝をツーっと彫る感じ。
つまりACアダプターの接着接合面をコイツで削って溝をつくって分離するわけだ。
この辺は普通のカッターナイフだと絶対無理な芸当なので、
なんつーかシャコシャコと削ってると、不可能が可能になる瞬間を感じるよ。
世界が広がった気分(気のせいです)。
  とは言え、そう頻繁に使うものではないだろうから、もっと安いのでいいかもしれない。写真のは一番デカイやつだと思う。

で、適当に溝が出来たら、マイナスドライバーとかをねじ込んで「えいやっ」でこじ開けるのだけど、
大抵はそんなにキレイに開くわけじゃなく「ペキペキバキバキャ」って感じで
どちらかというと分解というより破壊に近いニュアンスで作業が進行するんじゃないかと思う。
つか、ホントに破壊するかもしれんが、何事も経験だよね!(そっぽ向きながら)

ちなみに分解なんて面倒なことをせずとも、普通に単体のトランスを買ってきて使えばOKなのだけど、
恐れ多くも交流100Vを扱う回路なので、裸のままでその辺にゴロンと放置はさすがに危険。
だからどうしてもケース的な何かが必要となって、ほら、面倒だ。
そんな理由。
ケースを流用できるってのは、結構重要。

で、なんか基板が入っているのだが、
ACアダプターの中身を見る機会なんて意外に少ないので、
せっかくなので大きめサイズで写真撮影。

こいつの回路は、大抵こんなかんじ。

交流を整流して、そんでコンデンサーで直流にしているのだが、
今回は大元の交流そのものが欲しいのだから、基板は不要。
何もいらない。撤去である。

ただし、そのままだと電圧が高すぎるので抵抗で適当に下げる(分圧)必要がある。
どこまで下げるかというと、PCのライン入力側は1Vくらいが限界で、コレを超えると波形がクリップするから、
多少余裕を見て0.7Vとか、それ以下にする必要がある。
なお、あまりに下げすぎると(=信号が小さすぎると)ノイズとかA/Dの分解能の点で精度的によろしくないのだけども
まぁ今回はそんなに神経質になるようなモノでもないので、下限は0.2Vとかくらいでも大丈夫じゃないかなぁ(適当)。

そんな感じ。
簡単には10kΩと1kΩで1/11に分圧しちまえば、大抵OK。

10kΩと1kΩで分圧

今回使用したアダプターは出力4.5Vだったのだけど、この場合の出力電圧は
4.5V×(1kΩ/(1kΩ+10kΩ))≒0.41V
ですな、十分ですな。
ただ、定格出力が7V以上のアダプタだと先の上限0.7Vがヤバくなってくるんで
その場合には20KΩと1KΩの分圧にすればいいさ。
   【詳細】※実際には整流ダイオードを外した分だけ、若干高めの電圧になるはず。

で、実物はこんな感じ。

 回路全景

先にも書いたとおり、基板は不要なので取り外したけど、その辺は適当に自由にやってくり。
例えば写真の基板は2箇所でトランスに半田付けされているので、そのままだと取り外しが大変なのだけども
先にニッパーで基板を2つに割っちまえば楽勝であった。

が、ホントは元の基板を生かした(基板上の部品を取り外して、代わりに分圧抵抗を上手に配置しての)改造の方が良い。
空中配線は危ないからね、電源だけにショートすると結構な電流が流れてヤバい
あとトランスから出てる線(ポリウレタン線?)が細くてもげそう。
基板流用、オススメ。

で、元のケースに戻せばキレイにまとまる。

電圧センサー部は完成。

※なお、ACアダプターによっては、こんな回路かもしれないが↓
トランスからは3本出ているが、この場合はセンター1本と、あとどちらか好きな方1本を使用すれば良い。



で、このACアダプタ(改)の出力をPCのライン入力のLとRへ接続すればよい。
今回は電圧をL(白のケーブル)へ、電流をR(赤のケーブル)へ接続している。
…が、このケーブルの色の「白と赤」は、どうも厳密に決まっているわけでもないようなので、
あまり過信せずちゃんと確認した方がよさげ。

電圧センサー部分(…というのか?)については、以上こんな感じ。


■で、ここからはハナシが見えやすいように
とりあえずお題目として
「家屋(単相3線式)全体の消費電力を最大3000Wまでモニターする」みたいな、
そんな典型例で作ってみるけども、原理は単純なので、どうとでもアレンジすればいいさ。

そんな前提の実体図的なものを。

ハードはこれだけ。
相変わらず人をバカにしたような回路でございます。
あと、前回のこの辺も参照してくれ。

【詳細】今回、電圧センサー(ACアダプタ)が一つなので、
厳密には単相3線式のうち半分(L1かL2のどちらか)の電圧しか見ていないことになるので、
その分誤差が発生します。例えばL1にのみ高負荷をかけるような場合では、ウチの実測値では
最大1.5%程度の電圧のアンバランスが生じたので、そのくらいの誤差が想定されるのですが、
逆に言えば、その程度の誤差で済む問題です。

なお、このACアダプタ部(というかトランス)をPC(のライン入力)に取り付けた場合には
コモンモードノイズへの耐性が低下する可能性もあるので、
ACアダプタはなるべくPCと同じコンセントとかテーブルタップに取り付けたほうが良いかもしれない。

■ソフトウェア
…と言っても、前回とさしたる違いは無い。
サウンド入力を初期化する際に、モノラルじゃなくて2ch入力を指定するとか、
あとサンプリングされたデータは、L,R,L,R,…の順でOSが格納してくれるので、
教科書の「電圧×電流」通りにそのまま素直に掛け算するとか、
変更はそのくらいか。

そんなわけで前回のソースを適当にいじって勝手にやってくれ。以上。
各自の健闘を祈る!


   *   *   *


…と、まぁ、またも投げっぱなしにするつもりだったのだけども、
どうにも誘惑に勝てず。
土日を潰して作っちまった。

一応公開しておくけども、基本的に自分用のオモチャなので、
ノーサポート・ノークレーム・ノーリターンでお願いします(意味不明)。
つか、書けるヤツは自分でコード書いちまえ、うん(やっぱり投げっぱなし)。

なお、ChartControl(Microsoft Chart Controls for Microsoft .NET Framework 3.5)を使用しているんで、
このへんからMSChart.exeをゲットしてインストールする必要がありますぜ。
あと、前回同様、.NET Framework 3.5DirectX9も必要。
くどいようだけども、インストールは自己責任でお願いするんだぜ。
そんなわけで、電力計ソフトウェアはこちら→ 

動作確認はWindows7上にて行った。
あと、Program Filesの下にインストールすると「時刻毎の積算電力」とか保存されないです。


■調整
Windows側の設定は、前回と同じ。詳細はこの辺参照。
要点は
1.Windowsのコントロールパネル→サウンドの「録音」にて、ライン入力を「既定のデバイス」にする。
2.ライン入力のプロパティ「聴く」の「このデバイスを聴く」をOFF。
3.ライン入力のプロパティ「レベル」でミュート(スピーカー禁止アイコン)になっていないことを確認。
4.ライン入力のプロパティ「レベル」のスライダー(レベル)の調整。

一番面倒な4だけど、今回は楽だ。
えーと、楽というか、今回はマイク端子が使えないので(マイク端子はモノラル)、
ライン入力のケースのみ考えればよいわけだ。
自由度が減った分だけ手順が簡単になった、と。

ライン入力端子ならば(マイク入力と違って)1V程度までの信号ならクリップせずに扱える。たぶんね。
一方今回のハードウエア(笑)は、作例通りに製作すれば、信号は1V以下に収まる(はず)。
だから基本的にレベルオーバーによる波形クリップは気にしなくても大丈夫(なはず)。

とは言え、適当な最大電力にした状態で波形を目視で確認するくらいはした方が良い。
アプリのコンテキストメニューで「A/D出力の生データのまま波形表示」をONにすれば簡単に見れる。

簡単なので念のため確認しておいたほうが良い。

 A/Dの生の16bit出力値で表示

もしクリップしていたら、原因を考えて適当に対処すればいい。
  ※なお、通常時(「A/D出力の生…」がOFFの時)に表示しているのは実効値で正規化した波形をなので、レベルは読み取れない。


で、「4」のスライダー(ライン入力の感度)の調整の話に戻る。
感度(レベル)は上げたほうが精度上有利だけども、上げすぎるとレベルオーバーとなってまずい。
なので、一番信号がデカイ状態にして、そこでオーバーしないようにレベルを絞ればいいんだけど、
それってどんな状態?といえば、もちろん電力の全力全開状態を指すわけだ、フルスケールの3000Wだ。
ウチだとアイロンとドライヤーとコーヒーメーカーの抵抗負荷コンボで約3000W状態にして、
そこで「電流」波形の振幅がオーバーしない程度に、…いや、多少余裕を持って3/4程度となるように
レベルを大雑把に調整した。微調整はアプリ側でできるので、ここは大雑把な調整でよい。

勿論3000W状態で振幅3/4に調整するのも、2000W状態で振幅2/4に調整するのも、これは同じことなので
実際には後者で調整した方が楽。というか、ホントに3000Wも流したら、うちだと30Aブレーカーが飛ぶし。

んで、最後に校正。
前回(簡易電力計)は補正値を自力で算出してコマンドラインで指定するという、
まぁサンプルコードとしては極めて分かりやすい方式だったけども、
さすがに面倒だったので変更した。

今回は、正しい値を入力すれば完了する。
コンテキストメニュー「電力値の校正」から校正ダイアログが開くので、ここで
例えば700Wのコーヒーメーカーを負荷につないで、その状態で「700」と覚えさせれば完了。勝手に保存もされる。

電圧も同様。
ただし、テスター持ってなくて電圧が不明ならば、電圧の校正は放置しておいてもよい。
というか、適当に「100(V)」とかセットしておけばいい。

※上記2点の校正項目は、お互いに無関係で独立しているので、校正する順番とかは特に無い。
※電力だけでも校正すれば電力は正しく表示される。また電圧だけでも校正すれば電圧は正しく表示される。
※力率表示は上記2点の校正に無関係。つまり校正不要。

そうそう、積算電力計とか電気料金計のあたりはヘルプの方を見てくり。
つか、見る必要も無いとは思うけど、とりあえずウチでパンを一枚トーストにすると電気代は2円であった。

【よくわからん部分】
実はこの設定項目がよくわからない(汗)。
この「DCオフセット除去」という項目だ。

名称から素直に考えれば、入力に混入した直流成分を除去する機能なので、
今回のように「基本的に直流は混入していない」場合にはONにする必要は無い。
たぶん内部的な処理としては時定数が大きめな微分だと思うので
不用意にONにすると低域が落ちるかもしれんけども、実験する限りあまり違いは無いように見える。

なお、この「DCオフセット」というのがA/Dコンバーター側のオフセットとかそのドリフトとかを指すならば、
それはONにすべきとなるところだけども、そんなデバイス側の問題はデバドラ側で黙って処理するところだろうから
こんなカタギな人の目に触れるようなUIで設定させるはずも無い気がする。

だいたいあれだよ、まず「説明」がヘンだよというか、日本語に訳したヤツ、てめぇ内容理解してないだろ的な。
この説明だと「自動で音量を調整」みたいな意味合いにも読み取れるが、それは「DCオフセット除去」とは全然違う。

んで、結果よくわかんない。とりあえずウチの環境だと、ONでもOFFでも何処が変わったのか
違いが判んない謎設定でございます。

■おまけ機能
ログ機能が無いので、その代わりにサーバーにしてみたけど、ホントにちゃんと動作するかは不明。あくまでおまけ程度。
"http://localhost:5532"にて電力・電圧・皮相電力・力率を返す。
ブラウザから見るとこんな感じ。

 

これでExcelからWebクエリ出来ると思うんだけど、正直あんまりよくわかんないので試してないんだぜ。
※基本localhostにのみ応答だけど、UAC切れば他PCからでも繋がるかもしれん。


■で、晴れて電力計になったわけだが、意味あるのか?
今回電圧センサー(つかACアダプタ改)を追加したのだけども、
電圧を監視することにどれだけの意味があるのか?という話。
ちなみに市販品の民生用電力計でも、「ワットチェッカー」は電圧を見ているが「エコワット」は見ていない。
その分なのか、お値段もかなり違う。

なおコンセントのAC100Vの「電圧」自体は、大抵は結構安定している。
普段は100Vで、これがたまに102Vへ変動するようなことはあるだろうが、
それでも誤差はわずか2%に過ぎない。
その点では、電圧を監視する意味はあまりないし、
今回追加した電圧センサーもあまり役に立たない。

ここで「じゃあ電圧は無視してもいいじゃん!」などと言っていると、
ラスボスの力率が登場してくることになる。

力率だ。

街頭アンケートで100人に聞くと、98人は「聞いたことが無い」と答え、
運よく2人が名前を知っていたものの「効率」と混同していて、
結局、正しく理解している人が見つからなかったといわれている(かもしれない)
不人気アイドルの力率さんだ。

そんな力率に対する誤解と偏見を取り除くべく、
今回のアプリには波形モニターを付けてみたわけだよ。

…ウソです、自分で見たかったから付けただけです。

つーか、電気回路屋でも自宅の力率の状況なんて、知らないものなのよ。

 蛍光灯(誘導負荷)

さて、上の図は「力率が悪い」例。我が家の蛍光灯(銅鉄型安定器のもの)を総動員して撮影。
ちなみに力率=0.63はオレ的に新記録。悪い意味でね。
ご覧の通り、電圧と電流がずれてしまっている。
この状態でワープすると宇宙がタイヘンな事になるとヤマトの真田さんが言ってたような。

ちなみに「力率が良い」例はこんな感じ。

 電熱器(抵抗負荷)

これはオーブントースターなのだけど、要するに純粋な抵抗器なので、ほぼガッコで習った「I=E/R」の通りになる。
電流は素直に電圧に従い、全く一緒に増減する。これが力率=1.0の世界。
んでもって、もう一度蛍光灯を。

 蛍光灯(誘導負荷)

酷いものですな。
白丸の部分などは電圧がマイナスなのに電流はプラス。完全に逆流ですな。
言い換えれば、発電所に向かって電力が流れている状態。
と言っても、当然ながら別にオイラの家が電力を生み出しているわけではなく
多めに注文しちまって余っちゃった電力を返品してるだけ、に近い状態。
返品分を積んだ佐川急便のトラックが無駄に往復してて、そのぶんガソリンも無駄に消費してるのに近い状態。

ここで電力を測定する場合に、単純に佐川のトラックの往復数だけ数えると
返品のぶんだけ大きな値が出てしまう。
「皮相電力」と表示されているのがそれで、ここでは260Wなどという値が出ている(相当いいかげんな説明だけどね)。
しかし、正味の消費電力は165Wに過ぎないので、60%に近い誤差が生じていることになる。
ちょっとシャレにならない気もするけど、たぶんエコワットがこんなノリだ。
  【詳細】ただしエコワットは、電流の「実効値」ではなくて平均値とか尖頭値を元に簡易的に電力を算出していると思われる。価格的にね。
  だとすれば、そのぶんの誤差もさらに上乗せされることになる。
  ここでの蛍光灯の例では60%の誤差が生じているが、だからといって「エコワットでも誤差は60%で済む」と言っているわけではないので注意。

とはいえ、ここまで力率が酷い機器は、実はそれほど多くないので、大雑把な目安にはなるかとは思うが。

ちなみに今回の例では位相が50°くらいズレている(電流が遅れている)のだけども、
このように電流が遅れたり(又は進んだり)してるのが、いわゆる教科書とかの
  力率=COSθ
で説明されている「力率」だ。
例えば今回の位相差50°であれば 力率=COS50°≒0.64 という事になる。


一方、ややこしいのがPCとかインバーター等で謳っている「高力率」というヤツだ。
そもそも「高力率じゃない」PCとかインバーターの波形はどうなのかと言うと

 ありがちな電子機器(「非」高力率タイプ)

先の蛍光灯の「位相がθずれている」「力率はCOSθ」という話とは
かなり様相が異なる。というか、全く別の現象と考えた方がよい。
なので「高調波」などという別称も使われていたりする。

ノートPCとか、それ以下の小型電子機器の類(情報・AV機器)は、たいていこんな感じじゃないだろうか。
もちろんあまり好ましくは無い波形ではあるのだけど、
そもそも小型機器は絶対的な消費電力が小さいわけなので、それ自体はさほど問題にはならない。
また、PFC(力率改善回路)が入っていても、いわゆる待機電力時に力率がガクンと低下する機器も多いが、
これも同じ事で、わりとどうでもよい。
いずれにしても実効電力値と皮相電力値に開きが生じるのだが、
それはCOSθで表現される性質のものではない。

何の話だっけ、そうそう、力率だ。
そんなわけで今回は電圧センサーを追加したわけだけども、
実際には電圧よりも力率の把握という意味合いの方が大きいといえるかもしれないという話。
「かもしれない」というのは、負荷次第でございますというニュアンス。

もっともこれは「測定値が間違ってるかもしれない」というのと同じような意味合いなので、
測定の目的によっては大きな違いでもあるわけだけども。

まぁ、何かと力率というヤツはとっつきづらいんだけども、
それでも波形を見てるとなんとなく親しみが湧くかもしれん。
最後にウチの家屋全体の波形を。

位相遅れと高調波がミックスされてる感じ。
力率は大抵は0.95前後。


■サンプルアプリでは0.1Wの桁まで表示はしているけども
もちろんアテになんかなりませんとも(笑)。

今回の例は、家屋全体の消費電力を測定するために、フルスケールを3000Wとかなり大きくとってあるので
ぶっちゃけ小さな電力の測定には向かない。
というか、0.1Wの桁は流石にフラツキがある(※フラツキ量はPCとか環境にも因る)。

なので、仮に「3000Wの測定なんて必要ないので、もっと小電力を高分解能で測定したい」のならば、
例えばCT側の100Ωの抵抗器を1kΩに変更してフルスケールを300Wとすればよい。
または100V側をCTに何回か巻きつける方法もある。

こんな感じ。写真はAWG22の10回ターン。結構余裕があるのでAWG18でも大丈夫かも(未確認)。
仮に10回巻きならば、CTの穴をくぐっていく電流は10倍になる。
ホントは同じ人が10回通過してるだけなのだけど、そもそも電子ってのは皆そっくりさんだからな、CTにはバレない(笑)。
なのでCTからの見かけ上は10倍の電流が流れたことになる(感度が10倍になる)。面白いな。
  ※いずれの方法でもアプリ側は各自で作ってくれ。


そんなこんなで分解能は上げること自体は簡単だし、
実際に適当な負荷抵抗を繋げてみると、それなりに正しい測定値が表示される。
だがしかし。

   * * *

さて、測定器メーカーのまともな電力計であっても、測定精度は1%くらいが相場じゃないかと思う。
1%というと、なんか大したこと無いようにも思えるかもだけど、
多種多様な負荷と環境に対して精度保証するのは簡単な事ではない。

逆に抵抗負荷(力率=1)という好条件下でテストすると、どんな電力計でも成績は良い。
そもそも普通の家屋ならば電源電圧も波形も、そこそこ安定していて、条件はかなり良いんだ。
条件がよければどんなにへっぽこな電力計でもほどほど成績は良い。

例えば消費電力1000Wの状態で、そこで誤差1%というのは10Wに相当するわけなのだけども、
今回のインチキ電力計も「良い条件」でテストする限りは、概ねその1%の範囲に収まってしまっている。
で、そこだけ見ると「メーカー製の測定器並み」の精度だけど、
もちろんこれは都合の良いベンチマークでしかない。
この点は注意が必要だと思う。


■そんなわけで今回の電力計、所詮はオモチャなのだけど
そんじゃあ具体的にどの辺がオモチャなのか?と聞かれると、
実はそんなに目立って酷い部分も無いというか、
大昔のアナログ乗算器方式なんかよりは随分ましなんじゃないだろか、温度安定性とか。
まぁ、ホントのところはマジな測定器を持ってきて比較しないとよくわからないのでパス。

マジな横河CW120クランプ電力計。10万円くらい?

ちなみにこの「マジな測定器」の中身も「CT + A/D + マイコンで演算」方式みたいですな、
仕様を見るとA/Dコンバータは「電圧・電流入力同時変換・分解能12bit」と書いてあるから
原理的にはたぶん同じ。
つーか、A/DとCPUのスペックはむしろこちらが勝っているくらい。

しかしそれでもやはり測定器は測定器だし、オモチャは所詮オモチャでしかない。

仮に動作原理が同じであっても、そこには越えられない壁がある。
原理というのはスタート地点でしかない。その先がタイヘン。
どうタイヘンなのかは、これがなかなか説明しても理解してもらえるものでもなくて、
もう経験するしかない気もするけど、
「原理レベルでしかないアイディアを製品レベルにまで仕上げる」なんて経験をする機会は
そもそも少ないのかもしれない。

そいえば以前、人を採るときに↑のような経験がある人が欲しい、分野は問わない、とリクルートさんにお願いしたら、
所持資格とか勤務年数とかで分類されてるので、そういう形でリクエストしてくれとか言われた。
そりゃそうだ。
そんな事を思い出した。

なんか関係ない話になってきたので、これでおしまい(汗)。