バッテリー内部抵抗計測キット

この記事は2012/1/29のものです。

記事を書いた当時はキット版の販売もあったのですが、現在は完成版の販売のみになっているようです。

----------------------------------------------------------------------------------------------

 私は単3電池仕様の製品が好きで、デジタルカメラや無線機などなるべく単3電池が使える製品を選んで購入するようにしています。単3電池仕様は突然の電池切れでもコンビニで調達できたり、充電池が共有できるので良いです。更に、これらの充電には太陽電池を使っています。ほんの少しですがクリーンなエネルギーを使っている気持ちになれるところもいい感じです。

 そんな訳で、今では30本以上の単3充電池を使っています。充電も電池にやさしい低速充電で、充電器は秋月のいたわり充電キットの改造版を使っています。

 

■充電池の寿命

 充電池は充放電を繰り返しているうちに寿命を迎え充電できなくなってしまいます。長い間沢山使ってきましたが、電池の寿命を予測する事は難しいです。単3電池でしたら多くの場合、4本や2本のセットで使いますので、電池切れのタイミングで電圧を測り少ない物は劣化が進んできているのかなと思いつつ、なんとなく使いまわしている日々が続いておりました。

 ところで、電気的には寿命を迎えた電池は、内部抵抗が大きくなっていると考えられます。であるならば、電池の内部抵抗が手軽に測定できれば劣化が進行していく過程も把握できるのではないか思われます。

 

■電池の内部抵抗を測定するには

 しかし、電池の内部抵抗を測定する事はめんどくさいのです。一番簡単な方法は、電池の開放電圧と、沢山の電流を流した時の電圧から内部抵抗を求める事です。この方法は内部抵抗の比較的大きな電池の場合は良く測定できそうですが、内部抵抗の小さなものになると大電流を流す必要があり今一つスマートな感じじゃありません。

 その他の方法として、交流電流を電池内に流して内部抵抗を計測する方法が知られています。この方式を使った代表的な計測器はやはりHIOKIのバッテリーハイテスタ 3554と思います。是非とも欲しい計測器ではありますが、最小分解能100μΩの3555でもお値段は8万円ですので趣味のために気軽に購入できる代物ではありません。

 

■電池の内部抵抗を測定するキット

 多分この様な市販の計測器では、正弦波の交流定電流を電池に流して、その電圧を測るのですが、発生する電圧はとても小さいので同期検波を利用した精緻な回路になってます。更に、HIOKIのバッテリーハイテスターは、電池の良否を判断するためのデータやロジックが組み込まれており、その付加価値が価格に反映されているのでしょう。そんな中、東京デバイセズからシンプルな内部抵抗計キットIW7807が出ましたので性能評価を行いました。(半分宣伝っぽいですが…)紹介したいと思います。

f:id:jun930:20190614183056j:plain

 このキットはシンプルな作りでありながら、交流電流による内部抵抗(微小抵抗)の計測ができます。HIOKIのバッテリーハイテスターの様に電池の劣化を判定する機能は無く、単純に内部抵抗と電池の電圧を表示するだけです。

 仕様的には、測定電流は5kHzの矩形波、定電流では無い、抵抗値は平均値表示(値が落ち着くまで数秒要す)、電圧計測は0.35V~、と簡易な仕様になっていますが、4端子法を使っていますのでキットに付属するワニ口クリッププローブでも測定対象とうまく接続できればそこそこの精度が出ます。

 

■性能評価

 会社で使用しているアジレントのLCRメーターU1733Cを使い計測値の比較を行いました。電池は秋月で売られていた歴代の単3ニッケル水素電池から種類別に5本選びました。

f:id:jun930:20190614183112j:plain

f:id:jun930:20190614183126j:plain

f:id:jun930:20190614183140j:plain

f:id:jun930:20190614183156j:plain

f:id:jun930:20190614183209j:plain

f:id:jun930:20190614183226j:plain

f:id:jun930:20190614183238j:plain

f:id:jun930:20190614183250j:plain

f:id:jun930:20190614183300j:plain

f:id:jun930:20190614183311j:plain

 電池フォルダーの脇についている電解コンデンサは、U1733Cの為に付けています。U1733Cは交流計測のLCRメーターで、電池の内部抵抗を測る仕様ではありませんので直流をカットするために接続しました。内部抵抗計キットは電池と直結しています。キットの端子は上から Hc,Hp,Lp,Lc となっているので4端子法の説明図に書いてあるように接続します。

 測定周波数は、キットが5kHz、U1733Cが10kHzです。両者の誤差はReCyko+の例で最大8%ありましたが、プローブの接続具合でも数mΩは動くことがあるので、まぁまぁの精度と思われます。ちなみに、U1733Cの設定を1kHzにした場合も含めた結果は以下の通りです。

  キット(mΩ) U1733C 10kHz(mΩ) U1733C 1kHz(mΩ)
ReCyko+
25.23
24
23.3
GP1800
301.6
301.8
299.6
GP2000
248.5
242.2
239.5
GP2300
371.2
366.1
364.4
GP2600
178.7
176.6
169.4

 

■最後に

 今回は単3電池の内部抵抗を計測しました。測定では、上の写真にも写っていますが、以前秋月で売られていた大電流用の金属製電池フォルダーを使いました。良くあるバネ付きの電池フォルダーを使うと上記の値よりも80~100mΩ以上大きな抵抗値となり安定した計測ができませんでした。安定した計測を行う場合、計測対象に合わせたプローブや電池フォルダーの選択が必要になります。

 また、このキットは電池以外に微小抵抗を測るミリオームメーターとしても使用する事ができます。10μΩの桁まで見えますが、この桁になると電池フォルダーの例の様にプローブの接続状態がものを言ってきますので、一応表示していますがこの桁は信じられないと思います。

 まぁ、ともかくこれで、内部抵抗が気軽に測れるようになりました。身近な電池の劣化具合を把握するために充放電のタイミングで内部抵抗を記録していこうと思います。

PSoC1デジタルLメータのありえない実装

この記事は2008/1/27のものです。

-----------------------------------------------------------------------------------------------

このコンテンツは東京デバイセズさんにプリント基板実装して頂き、
 

tokyodevices.jp

 として発売されました。

2012/4/9

-----------------------------------------------------------------------------------------------

◆意地悪実装

 位相検波はノイズに埋もれがちの小信号を検出する場面で使われます。また、検出端子を4端子にすると試料との接触抵抗の影響を受けにくくなります。 先に製作したPSoC1デジタルLメータは両方の方式で動作しておりますので、どの程度いい加減な実装に耐えるのか気になるところです。

 測定器のブレッドボード実装ってありえないと思うかもしれませんがやってみました。部品点数が比較的少ないのでチャッチャと組みあがります。

f:id:jun930:20190614162933j:plain

◆いけてるんちゃう!?

 ブレッドボードは部品の接触状態が不安定ですから、とんでもない結果になるのではないかと思われますが、やってみると意外にいけちゃっていたりします。(驚)上の写真は10uHのマイクロインダクタを計測しているところです。ユニバーサル基板の実装よりも10%ほど大きめに出ていますが、ブレッドボードの実装で10uHがそれなりに出れば良しにしたいと思います。(恐るべし位相検波&4端子方式)

 ちゃんと調整することはもちろんですが、部品に手を触れなければそれなりの測定ができるようです。(息を吹きかけるのも禁止行為!)ユニバーサル基板の実装と大きく異なる点は位相検波のタイミングでした。

◆実装によって位相差が変わる?

 なぜ実装によって位相差が異なるのか下の図で説明します。

f:id:jun930:20190614162943j:plain

 これは製作したLメータの構成です。PSoCの役割は(1)正弦波の発生と(2)位相検波と(3)AD変換になります。PSoCを出た正弦波はオペアンプのLPF回路に入ります。PSoCで発生する正弦波には内部のスイッチング動作による高周波ノイズが多く含まれています。そのまま使ってしまうと試料に入った正弦波が大きく乱れます。それではマズイのでノイズを除去するアナログのLPFを挿入しています。

 PSoCを出た正弦波はLPFを通過する際に大きな位相差を生じます。ユニバーサル基板との差はこの部分で使っている部品のバラつきやブレッドボードに存在する浮遊容量などが影響しているのではないかと考えられます。

◆ありえない実装も勉強になるなぁ

 位相の調整は実装の状況に応じ細かく調整する必要があることが分かりました。その他にPSoC内部のBPFやオペアンプの応答性能によっても位相差が発生しています。それら全部を加味して位相検波のタイミングを調整する必要があります。位相の調整は思ったよりもセンシティブで、色々と試した結果π/2000(rad)単位に行うようにしました。なかなか奥が深いので勉強になります。

 

微小Lメータの実験

この記事は2008/2/1のものです。

----------------------------------------------------------------------

◆微小Lメータ実験

 製作した実験回路で2ターンの空芯コイルに鉄製のピンセットを通してインダクタンスの変化を観察します。

youtu.be

◆微小なインダクタを測りたい

 Lメータを製作するにあたって、お手軽な自作を目指し

  • 5V単電源
  • 広い測定レンジ
  • 少ない部品(入手しやすい部品)

 を考えました。PSoCオペアンプを単電源で使い広い測定レンジを確保するのはなかなか厄介で、自分の能力では今のところ1μH~100mHがやっとです。微小領域を測るにはアナログスイッチを追加しファームを工夫すればもう少しいけるのかもしれませんが、そこまでするのだったら広い範囲の電源も入れて全体の構成を見直したほうがよいです。しかしそれでは自分の考えるお手軽の範疇を超えてしまいます。ゴテゴテと部品の追加をしたくないので微小機能の合体はあきらめ別物としたいと思います。

◆仕様を見比べる

 測定実験はPSoCLメータと同じ回路構成で微小なインダクタを測ろうとするものです。 PSoCLメータとの仕様を比較表にまとめました。

  PSoCLメータの仕様 実験仕様
測定範囲 1μH~100mH 0.01μH~10μH
最小分解能 0.099μH 0.0066μH
レンジ 100μH、1mH、10mH、100mH 10μH
測定周波数 1kHz 約5kHz
測定電流 約1.6mA,0.4mA,0.1mAの切り替え 約4.8mA
検出端子 4端子方式
測定方式 位相検波方
校正方法 基準抵抗10Ωによる
電源電圧 5V
消費電流 約25mA(LCDバックライト消灯時) 未確認
精度 不明

 実験の理屈は簡単です。測定周波数を1KHz⇒5kHzに、測定電流を1.6mA⇒4.8mAに変更しただけです。両方合わせると分解能が1/15になり、0.0066uHの単位でインダクタンスの検出ができます。

 結果は上の動画のような感じです。空芯コイルを接続してゼロに合わせました。鉄製のピンセットをコイルの中に抜き差しすると0.01uHの桁が増えたり減ったりすることが確認できました。動作と数値が連動していますのでちゃんと検出されていると思われます。

PSoC1で作るデジタルLメータ

この記事は2008/2/11のものです。

これを作った当時、PSoC1の可能性を強く感じた作品でした。

---------------------------------------------------------------------------------------

このコンテンツは東京デバイセズさんにプリント基板実装して頂き、
 

tokyodevices.jp

 として発売されました。

2012/4/9

---------------------------------------------------------------------------------------

Lメータの自作に関するページです。

f:id:jun930:20190614154209j:plain

 

◆位相検波方式のデジタルLメータ

 これはCypress社が販売しているPSoCを使った位相検波方式のデジタルLメータです。上の写真にある28ピンの長細いICがPSoCです。このPSoCオペアンプ(LM324)とLCD(SC1602B等)を追加しデジタルLメータを製作しました。

測定範囲 1μH~100mH
最小分解能 0.099μH
レンジ 100μH、1mH、10mH、100mH
測定周波数 1kHz
測定電流 約1.6mA,0.4mA,0.1mAの切り替え
検出端子 4端子方式
測定方式 位相検波方
校正方法 基準抵抗10Ωによる
電源電圧 5V
消費電流 約25mA(LCDバックライト消灯時)
精度 不明

◆雰囲気だけでも精度が知りたい・・・

 測定器の製作で悩ましいのは校正ですよね。なるべく手軽な方法を考えた結果10Ωの金属皮膜抵抗を基準にする方式にしました。10Ωの抵抗を基準にしてどの程度の精度なのか?しかし、高精度な計測環境がありません。とりあえず手持ちの測定器で比較したいと思います。登場するのは古式ゆかしいブリッジと、ちょっとレトロだけど一流メーカーのLCRメータです。

f:id:jun930:20190614154223j:plain

三田無線研究所のミニブリッジ

f:id:jun930:20190614154237j:plain

HP のLCRメータ

いろいろな値のマイクロインダクタを使って比較します。

 
DELICA MINI-BRIGE M1-D
HP 4332A LCR METER
PSoC デジタルLメータ
1R0
0.74uH
0.9uH
1.0uH(Range=0)
100
9.95uH
9.4uH
10.0uH(Range=0)
330
29.8uH
30uH
31.4uH(Range=0)
101
98.02uH
99uH
102.0uH(Range=0)
331
324uH
310uH
327uH(Range=1)
681
682.8uH
660uH
679uH(Range=1)
102
1.01mH
1.00mH
1006uH(Range=1)
562
5.40mH
5.30mH
5.40mH(Range=2)
822
7.84mH
7.60mH
7.79mH(Range=2)
103
9.83mH
9.80mH
10.08mH(Range=2)

 今のところ絶対的な精度を知ることはできませんが、見比べた感じではまぁまぁな状態になっていると思います。PSoCなかなかやるじゃん!

 

◆位相検波式の計測器に思うこと

 電子工作に手を染めると色々な測定器が欲しくなるわけですが、測定器メーカーの位相検波式のインピーダンスメータは値段が高くてなかなか手が出ません。この方式の測定器はにある種のあこがれがあったりします。Lしか測れないささやかな物ですが、PSoCを使うと少ない部品で実装することができます。日本語で書かれた唯一の本も絶版になってしまいましたが、PSoCはなかなか強力なデバイスです。今後も応用を考えていきたいと思います。

 

◆2号機誕生(2008/1/21)

 ちゃっぴーさんより2号機の写真(調整中の様子)が届きました。おぉー!

f:id:jun930:20190614154247j:plain

 

 

位相検波ってなんだ?

この記事は2008/1/22のものです。

---------------------------------------------------------------------------------------

PSoCデジタルLメータの動作原理

 先に製作したPSoC1デジタルLメータの動作原理は位相検波によるものです。このページではその動作原理をご紹介します。

◆インダクタに生じる位相差について

 インダクタに交流電圧を加えると90°遅れた位相の電流が流れます。Lメータはこの現象を利用しインダクタンスを計測します。電流位相が遅れる現象を回路シミュレータで確認したいと思います。使用する回路を以下に示します。

 

f:id:jun930:20190614140956j:plain

 電流波形を確認するためにL1に電流検出用抵抗R1を接続します。R1の値はL1のリアクタンス(XL=2πfL=6.28Ω)の10%程度に設定します。入力電圧と同位相の波形を見るためにR2とR3を使用します。

 シミュレーションの結果は以下のようになります。A点の電圧(=入力電圧の位相)に対してB点の電圧(=L1に流れる電流の位相)がおおよそ90°遅れていることが分かります。

f:id:jun930:20190614141005g:plain

 シミュレーションの波形を詳細に調べると遅れ時間は236(usec)でした。周波数は1kHzですから約85°の位相差になります。ここで生じた5°の差は電流を観察するために使ったR1の影響により生じたものです。実際のインダクタも内部に抵抗成分を持っており、LとRの直列回路とみなすことができるのです。

 

◆位相検波

 下のグラフはExcelを使って90°位相の異なる波形を合成したものです。多くの場合観測される波形はインダクタ成分と抵抗成分の合成波になります。下のグラフからも合成波はインダクタ成分よりも大きくなっていることが分かります。このように、合成波の大きさを計測しただけでは純粋なインダクタンスを知ることはできません。

f:id:jun930:20190614141014j:plain

灰色のライン=抵抗成分
赤のライン=インダクタ成分
黒のライン=合成成分

 合成波からインダクタンス成分を取り出すために位相検波の登場です。

f:id:jun930:20190614141025j:plain

 インダクタ成分と抵抗成分には90°の位相差があります。そこで、インダクタ成分と同位相の矩形波を作りONを1、OFFを-1と定義してインダクタ成分と抵抗成分に掛け算します。掛け算の結果が以下のグラフです。

f:id:jun930:20190614141034j:plain

ピンクのライン=抵抗成分
青のライン=インダクタ成分

 インダクタ成分は全波整流の波形になります。抵抗成分は積分すると±が相殺される波形になります。掛け算を行うことで抵抗の成分がキャンセルされますので純粋なインダクタ成分の大きさを知ることができます。

 説明の都合で抵抗、インダクタの2成分対してそれぞれ掛け算を行いましたが、実際は合成成分に対してこの掛け算を行います。結果は、上のグラフのピンクと青のラインの合成波になりますので、結果を積分すると青のラインの大きさだけが残ることになります。

◆位相検波後の処理は

 位相検波された信号をローパスフィルタを使って直流にします。その電圧をADコンバータで読んで、XL=2πfLの式を使ってLを計算するわけです。

◆検波するだけでも測定器

 位相検波の機能を持った測定器がロックインアンプです。予め検出したい信号の位相が分かっている場合はこの原理を使って検波することによって小信号を精度良く計測することができます。

 

PSoC遊び(位相検波)

この記事は2007/11/10のものです。

当時使っていたオシロがHPのミックドシグナルオシロスコープ54645Dで、GPIB(HPIB)を経由して画面をキャプチャしていました。古いオシロですがアナログ信号を描画する性能が良く、アナログオシロに引けを取らないなぁと思って使っていました。なにより操作に対する反応が速く、モッサリ感は微塵も感じない使い勝手でお気に入りでした。

---------------------------------------------------------------------------------

◆つづき

 前回の記事の続きです。AN2345の裏技により位相差を作り出すことができるようになりました。今回はPSoCで位相検波を行うための基礎的な方法を検証したいと思います。位相検波は信号に同期したクロックを使い極性を切り替えることで、微小信号を精度良く検出することに利用されます。

◆正弦波を検波する

 前回作った位相信号は矩形波でした。今回は少し進んでBPFを追加し正弦波を検波したいと思います。デジタルブロックは前回と同じなので割愛します。追加したアナログブロックはBPFとスイッチドキャパシタです。以下のように配置しBPFはP2[1]より矩形波を受け取ります。BPFを通った矩形波は正弦波に変換されスイッチドキャパシタに入力されます。

f:id:jun930:20190614131525j:plain

 このスイッチドキャパシタは単なるボルテージフォロアとして設定し、入力部分のアナログモジュレーション機能だけを使用します。アナログブロックの1列目(一番左が0列目)をGOE[0]で変調する場合は、AMD_CR1レジスタの下位3ビットに010を設定します。以上の設定を行うことでGOE[0]に同期した全波整流を行うことができます。

◆BFPで遅れる

 P2[1]を同期信号として検波すると以下のような波形になってしまいました。なんか変ですね。本当は全波整流のような波形になって欲しところです。

f:id:jun930:20190614131546j:plain

原因はBFPで位相の遅れが生じるためです。P2[1]とBPFの出力を確認します。

f:id:jun930:20190614131623j:plain

 矩形波に対して正弦波が遅れていることが分かります。遅れは約40°程度になります。AN2345の裏技を使って位相を調整します。

f:id:jun930:20190614131717j:plain

 目的の波形を得ることができました!この波形を積分回路に通してAD変換すれば小さいけれども立派な計測器になりそうです。

◆参考文献

 アナログモジュレーション機能の使用方法は「はじめてのPSoCマイコン」の111ページを参考にしました。112ページの図7-Bの記述には誤りがあります。正しい仕様はデータシートで確認しましょう。



PSoC遊び(IQ信号発生器)

この記事は2007/10/30のものです。
PSoC3,4,5が存在しない頃の記事なのでPSoC1をPSoCと記述しています。時の流れを感じますね。

---------------------------------------------------------------------------

◆IQ信号と計測器

 趣味で電子工作を行う者にはとても手が出ない高級なLC(やLCR)メータのほとんどは位相差を持った信号を利用しています。安価な計測器はフランクリン回路の実験ページでもご紹介したLCメータのキットのように共振を利用したものが殆どです。今は販売しておりませんが、秋月で以前販売していたLメータキットは位相信号を利用した回路で貴重な存在だったと思います。自力で復刻された方がおります。(リンク切れで見えなくなりました。。)回路を見ると作りたくなる気持ち分かりますねぇ。

PSoCと出会う

 高精度な部品を使わなくてもお手軽に計測できないものかと考えていたところPSoCと出会いました。手始めにIQ信号を作ってみようと自力で作業し始めたのですがなかなかスマートに作ることができません。そんなある日、こんなアプリケーションノート(Simple Method to Generate Digital Signals with Variable Phase Shift Between AN2345)を発見したので動作確認してみることにしました。

◆裏技じゃないの

 このアプリケーションノートでは2つの8ビットカウンターを使って任意の位相差を作っています。

f:id:jun930:20190614121324j:plain

 たったコレだけの定義で任意の位相差ができるってどういうことでしょうか?そのカラクリは8ビットカウンター特有の動作を利用した裏技のようなものでした。両カウンターのEnable端子がRI0[3]に接続されており、GIE3経由でGOE3に接続されています。更に、何もつながっていないRO0[3]がGOE3に接続され、LogicTableSelectorがFALSEに設定されています。この奇妙な接続が位相差を出す工夫です。

 この接続で普通に8ビットカウンターをスタートしても何も出力されません。プログラムを使ってLogicTableSelectorをTRUEにする必要があります。肝心の位相差を生み出す仕掛けは8ビットカウンターの初期化手順にあります。

void Gen_start(BYTE Phase_shift)
{
   
    Counter8_1_Stop(); //Stop counters
    Counter8_2_Stop();   
	
    RDI0LT1&=0x0F; //LUT false, enable to low, counters ctopped
 	
    Counter8_1_WritePeriod(199); //start first counter with Dyty cycle 50%
    Counter8_1_WriteCompareValue(100); 
    
    Counter8_2_WritePeriod(Phase_shift); //start second counter with phase shift value
    
    Counter8_1_Start(); //Enable counters
    Counter8_2_Start();          
             
    Counter8_2_WritePeriod(199); //start second counter with Dyty cycle 50%
    Counter8_2_WriteCompareValue(100); 
    
    RDI0LT1|=0xF0; //LUT true, enable to high, counters start
}

 この関数は8ビットカウンターに位相差を与える初期化関数です。両カウンターをスタートする手前でカウンター2にシフトするカウント値を設定し、スタート後にカウンター1と同じ周期と比較値を設定します。設定後にLogicTableSelectorをTRUEにします。この操作で2つのカウンターに位相差が発生するんです。なんと!

普通じゃ思いつかないよなぁ・・・  ボソッ

◆やってみる

 手持ちのCY8C27443を使ってやってみました。

f:id:jun930:20190614121402j:plain

ちゃんとずれています。すごい!

◆日本のPSoC自作人口

 PICと比較すると日本におけるPSoCの情報は少ないと感じられます。唯一の教本だった「はじめてのPSoCマイコン」は2007/2/8に絶版になってしまいました。作者のHPにCY8C27443の日本語データシートが公開されています。これはありがたい。