ポータブル機器を設計する上では、使用する電池の特性、特に容量と電圧の変動を知っておく必要があります。しかし、必要なデータが公開されていない場合は実際に測定してみるしかありません。電池の放電特性の測定では一回あたり数十分から数時間もかかるため、テスト・ベンチに貼り付いて記録するのは非現実的です。何らかの方法で測定値を自動記録する必要が出てきます。そこで、小型電池向けに放電特性測定器を製作してみました。
右の図に電池放電特性の測定システムを示します。基本的には電池に負荷をつないて、電圧の変化を記録するだけという簡単なもので、原理も何もありません。この程度なら汎用測定器の組み合わせで十分ですが、放電特性の測定に限るなら専用測定器を作ってしまった方が便利です。せっかく作るのだから、あると便利な機能は全部盛り込んでおくことにしましょう。今回付ける機能を次に示します。
定電流・定電力・抵抗の3モードに対応します。定電流モードはリニア電源、定電力モードはスイッチ・モード電源の負荷をシミュレートし、抵抗モードはランプやヒータをシミュレートできます。単に電池の特性を測るだけであれば定電流モードで測定します。
測定データはPCに転送・記録できるようにします。
オマケ的な機能ですが、ピーク電流の大きい用途では電池の内部抵抗も重要なので、これも測定できるようにします。
右に製作した電池放電特性測定器の基板と回路図を示します。制御および測定データの記録のためPCのシリアル・ポートに接続して使用します。コントローラの電源はシリアル・ポートの信号線から取るので、外部電源は不要です。
回路図から分かるように負荷回路は定電流制御となっていて、電流はマイコンから制御されるようになっています。定電力・抵抗負荷モードではそれらが一定に見えるようにマイコンで電流を制御することになります。電流制御は広い範囲で設定分解能を確保するため、3レンジ切り換えとしています。Q1はダミー負荷としてある程度の電力を消費するため、放熱器が必要です。写真に示すサイズの放熱器の場合、自然空冷で4~5W程度まで使用できます。それ以上の発熱になる場合は、大きなものを使うか強制空冷するなどの考慮が必要になります。使用電圧範囲は、上は4.5V、下は0.8V程度、設定電流は最大3Aとしました。Li-Ionなら単セル、Ni-MHやアルカリ電池なら単セルから3セル直列まで測定が可能です。
電圧の測定については、配線や端子の接触抵抗による誤差を避けるため、4線式接続に対応しています。特に低電圧・大電流で測定するNi-MH電池の測定ではこの接続方法が不可欠です。なお、個人的には電池・電源ハーネスに日圧の2ピンコネクタEHR-2を標準として使用しているので、それらを直接接続できるように2ピン端子B2B-EHも設けています。
RS-232クロス・ケーブルでPCと接続し、適当なターミナル・ソフトでポートを開くと電源が入ります。すぐにVccの電圧が5V±0.1Vになっていることを確認して、もし電圧が出ていないときは、ポート番号が合っているかチェックしてください。そして次にファームウェアを書き込みます。このとき、ターゲットから電源を取るタイプのプログラマを使用すると、ポートからの電源供給が不足して書き込みに失敗するかも知れません。そのような場合は、書き込みの時だけ3端子レギュレータの入力に外部から5Vを接続します。
ターミナル・ソフトのポート設定は、N81, 38400bpsとします。最初に電源ONしたときは補正値が壊れている旨のメッセージが出るので、まず最初に校正を行います。右の図に示すようにメータ(DMM)を接続し、ターミナルからcコマンド(校正の実行)を与えると数値の入力を求められるので、以下の例のようにメータの示している値を入力します。電源は電池(3~4Vで2A以上流せるもの)でもかまいません。
>c Voltage[mV]=3792 Current1[mA]=64 Current2[mA]=312 Current3[mA]=1505 >
測定する電池を接続したらターミナルから測定開始コマンドを与えます。コマンドのフォーマットは次に示すとおりです。
m <負荷モード> <負荷レベル> <記録モード> <記録間隔> <終了電圧>
記録を開始すると設定された間隔毎に測定値が出力されます。これをファイルに落とせばそのままスプレッド・シートに読み込めます。測定の終了は電圧低下のほか、Escキーの入力、電流制御が設定可能範囲を超えたとき(定電力・抵抗モード)です。以下に測定コマンドの使用例を示します。
>m c 680 t 10 3000 Load current[mA] = 680 Ending voltage[mV] = 3000 Interval[sec] = 10 Time,mV,mA,mAh,mW,J 0:00:00,4147,680,0,2819,2 0:00:10,3988,680,2,2711,30 0:00:20,3968,680,3,2698,57 0:00:30,3953,680,5,2688,83 0:00:40,3943,680,7,2681,110 0:00:50,3934,680,9,2675,137 0:01:00,3924,680,11,2668,164 0:01:10,3914,680,13,2661,190 0:01:20,3909,680,15,2658,217 ...
>m c 680 c 10 3000 Load current[mA] = 680 Ending voltage[mV] = 3000 Interval[mAh] = 10 mAh,mV,mW,J 0,4072,2768,2 10,3884,2641,140 20,3859,2624,280 30,3834,2607,418 ...
rコマンドで指定された2つの異なる負荷電流を流してみて、ΔIとΔVの関係から内部抵抗を算出・表示します。電池の内部抵抗はインピーダンス・メータで測るのが正式です。このように直流で測った場合は分極の影響により高めの値が出ますが、むしろこの方が実際の使用形態に合っていると言えるでしょう。
>r 0 1000 Rs[mOhm] = 30 >
