« 発光信号:LEDの点滅で状態表示 | トップページ | ダイソーReVOLTES単3 JIS C8708:2019充放電試験(-ΔV検出有)250サイクル目 »

2020年4月10日 (金)

JIS C8708:2019対応ニッケル水素電池充放電実験回路(回路図とプログラム)

JIS C8708:2019対応ニッケル水素電池充放電実験回路、回路図とプログラムをアップしておきます。
Baycyc3a
今、これで「eneloop」の実験を続けています。
http://igarage.cocolog-nifty.com/blog/2020/04/post-85a68d.html
  ※5V3Aくらいの電源を回路のそばに設けるのなら、24Vから5Vを
   作っているDC-DCコンバータは不要でしょう。
   実験ベンチで24V電源があるので、それを利用したかったから。
   24Vで引き回すほうが電流が少なくなるんで電圧ドロップが小さい。

これがスケッチ。
  ダウンロード - batcyc3b.zip
Arduino-UNOから取り外したATmega328P(ブートローダーが書き込まれている)を回路のソケットに実装して配線。
UNO基板とRESET、RXD、TXD、GNDの4線をつないでプログラムをアップロードします。
測定結果はシリアルで出力。

ざっとの調整方法。
ハードウェアの状態(基準電圧値や抵抗の精度、配線の状態)で変化しますんで、調整は必須です。
調整に必要なもの。
・電圧可変できる電源。
   A/D値のスケーリング確認と放電電流の確認用。
   電流1.5Aは必要。
・デジタルテスター
   A/D入力(電池電圧)の確認と充放電電流の確認。

「MUNU」スイッチを押すとこんな画面が出ます。
 -------------
  Menu sel
  1 Stand-by
  2 Parameter setting
  3 PWM Test
 -------------
「3 PWM Test」を選んで(↑↓スイッチで選択)ENT。
すると、電池電圧を入力するA/D値と、充放電電流を設定するPWM値が表示されます。
 -------------
  PWM Test. A/D: 234
  1 Ret Menu 1024mV
  2 Chg : 400 213mA
  3 Dchg:4000 1500mA
 -------------
●電池電圧入力用A/D値の確認
入力電圧によりA/D値が変化します。
電池ボックスに可変電圧電源と電圧レンジにしたテスターをつなぎます。
A/D値は0~1023の10bit。
電圧は「mV」値での表示です。
  (分解能は1~2mVと、1飛びか2飛びに)
パラメータ設定の、
  19 A/Dref 1.0V 117 A/D基準値 1.00V ※2
  20 A/Dref 1.8V 774 A/D基準値 1.80V ※2
で設定された値でスケーリングして「mV」値で表示します。
ですので、この値を調整しなければ正しい電圧が出てきません。
1.0V1.8Vの電圧を与えて、その時のA/D値をメモしておきます。
パラメータ設定に戻った時にそれらを設定します。

●充電電流の確認
いったん電源をはずし、電池ボックスの+/-にテスターを電流レンジにしてつなぎます。
「2 Chg」を選んで「ENT」すると、充電電流制御回路が働きます。
「↑↓」で充電PWM値が変化、12bit(0~4095)の範囲で操作できます。
このとき、
  21 PWM Chg0.1A 257 充電電流PWM 0.1A基準値(0~4095) ※2
  22 PWM Chg1.5A 3962 充電電流PWM 1.5A基準値 ※2
充電電流を0.1Aと1.5Aにした時(テスターの読み)のPWM値をメモします。
「mA」値として表示されているのは、このパラメータでスケーリングした電流値です。
ですので、調整前(パラメータ設定前)はテスターでの読みとは異なります。

●放電電流の確認
1.5V程度に設定した電源と電流レンジしたテスター(直列つなぎ)を電池ボックスにつなぎます。
「3 Dchg」を選んで「ENT」で放電電流制御回路が働きます。
同じように12bitのPWM値で電流を変えることができます。
  23 PWM Dcg0.1A 268 放電電流PWM 0.1A基準値 ※2
  24 PWM Dcg1.5A 4021 放電電流PWM 1.5A基準値 ※2
テスターの読みが0.1Aと1.5AになったときのPWM値をメモしておきます。

この6つの数値をメモして「3 PWM Test」を終わります。

●パラメータの設定
メニューから「2 Parameter setting」を選んで、パラメータの設定を行います。

  0 - Ret Menu -     (Menuへ戻る)
  1 1-49Cg0.5CmA  950 1~49cyc 0.5C 充電電流設定値 ※1
  2 50Cg 0.1CmA  190 50cyc  0.1C 充電電流設定値 ※1
  3 1-48Dc0.5CmA  950 1~48cyc 0.5C 放電電流設定値 ※1
  4 49Dcg 0.5CmA  950 49cyc  0.5C 放電電流設定値 ※1
  5 50Dcg 0.2CmA  380 50cy   0.2C 放電電流設定値 ※1
  6 1-49Chg Time  132 1~48cyc 0.5C 充電時間 (分) 132分:2時間12分
  7 50Chg  Time  960 50cy   0.1C 充電時間 (分) 960分:16時間
  8 1-48Dcg Time  180 1~48cyc 放電時間 (分) 3時間くらい
  9 49Dcg  Time  180 50cy   放電時間 (分) 3時間くらい
 10 1-49Chg Wait   20 1~49cyc 充電後待ち時間 (分) 20~30分
 11 1-49Dcg Wait   10 1~49cyc 放電後待ち時間 (分) 10~90分
 12 50Chg  Wait   60 50cyc  充電後待ち時間 (分) 60~240分
 13 50Dcg  Wait   60 50cyc  放電後待ち時間 (分) 十分な
 14 V-Stop 1-48   100 1~48cyc  放電停止電圧 1.00V
 15 V-Stop 49    100 49cyc   放電停止電圧 1.00V
 16 V-Stop 0,50   100 0cyc,50cyc 放電停止電圧 1.00V
 17 -dV mV      10 -ΔV (mV) 5,10mV
 18 -dV Delay    10 -ΔV 検出開始時間 (分)
 19 A/Dref 1.0V   117 A/D基準値 1.00V ※2
 20 A/Dref 1.8V   774 A/D基準値 1.80V ※2
 21 PWM Chg0.1A   257 充電電流PWM 0.1A基準値(0~4095) ※2
 22 PWM Chg1.5A  3962 充電電流PWM 1.5A基準値 ※2
 23 PWM Dcg0.1A   268 放電電流PWM 0.1A基準値 ※2
 24 PWM Dcg1.5A  4021 放電電流PWM 1.5A基準値 ※2
 25 Data TX 1m    0 1分ごとデータ送出有無 0/1
 26 Data TX D50    0 50cyc放電時電圧送出有無 0/1
 27 TimerSpeedUp  100 タイマー加速データ 通常100
 28 Chk cyc(50)   50 測定最大サイクル 通常50回目で放電記録
 29 End cyc(8)    8 最終測定サイクル 1~8 EEPROMの容量
 30 - Ret Menu -     (Menuへ戻る)

まずは、先ほどの6つの値から。(※2のところ)
「ENT」で項目を選んで、「↑↓」で数値がup/down。
ENTで確定、内蔵EEPROMに記憶されます。
これを設定してから「3 PWM Test」に戻ると正しい電圧値と電流値が表示されるはずです。

※1は調べる電池の定格容量に従って設定します。
0.1C、0.2C、0.5Cの電流値を「mA」単位で設定しておきます。
  (初期値はeneloopスタンダード用)

いろんなパターンで実験できるように充電と放電の設定を分けています。
また、1~48cycでの放電と49cyc目の放電パラメータを分けてみました。
  3 1-48Dc0.5CmA  950 1~48cyc 0.5C 放電電流設定値 ※1
  4 49Dcg 0.5CmA  950 49cyc  0.5C 放電電流設定値 ※1
  8 1-48Dcg Time  180 1~48cyc 放電時間 (分) 3時間くらい
  9 49Dcg  Time  180 50cy   放電時間 (分) 3時間くらい
 14 V-Stop 1-48   100 1~48cyc  放電停止電圧 1.00V
 15 V-Stop 49    100 49cyc   放電停止電圧 1.00V
新JISの試験手順では、1~49cycは0.5Cで1.0Vまでの放電です。
例えば、「8 1-48Dcg Time」の値を「60分」にしておくことで、1~48cycでは「容量の半分まで放電」を続けるような試験が可能になります。
1.0Vまでの100%放電ではなく「ちょっと容量を残して放電するとどうなる」を確かめられるようにしました。
  ※-ΔV検出で充電するので、次サイクルはフルまで充電してくれる。
  ※放電停止電圧では放電深度は分かりません。
   電流で監視すれば、どこまで放電したかがはっきりします。

「4 49Dcg 0.5CmA」は、50cyc目充放電直前の放電を、0.5Cでなく0.2Cのゆっくり放電にして「電池を空っけつ」にしてから50cyc目を迎えられるようにというためのものです。(旧JISの試験手順)
  ※この時は「9 49Dcg  Time」の時間も大きくしなければなりません。

以下のパラメータはデバッグ用。
 25 Data TX 1m    0 1分ごとデータ送出有無 0/1
 26 Data TX D50    0 50cyc放電時電圧送出有無 0/1
 27 TimerSpeedUp  100 タイマー加速データ 通常100
 28 Chk cyc(50)   50 測定最大サイクル 通常50回目で放電記録
 29 End cyc(8)    8 最終測定サイクル 1~8 EEPROMの容量
タイマーの進みを早くしたり、サイクル数を減らしたりして実行状況を見ていました。

必要な設定を終えた後は、電池をセットして「START」。
電池ボックスと電池の接点をIPAなどできれいにしておきましょう。
結果が出るまで何週間もかかります。
400サイクルが終われば自動停止。
「TX」ボタンで結果(50cycごとの放電記録)を出力します。
  ※シリアル出力する途中経過も重要ですんで、
   シリアルデータ記録回路 を作ったという次第です。


※追記
「18 -dV Delay」、(充電開始後に-ΔV検出を始めるまでの遅延時間)この設定、今は10分ですがもうちょい長くしたほうが良いかも。
ReVOLTESの充放電、200サイクルを越えてから充電開始直後に発生する電圧ドロップが目立つようになってきました。
(チャートレコーダーでの電圧変化記録波形を見て)
これが短いと、-ΔV検出をミスするかもです。
(今のところ10分でミスは起きていないけど)
あまり長くすると、劣化が進んだときに-ΔV検出を無視するなんてことになりますし、15分~20分あたりでしょうか。


※参考
電池電圧入力回路の解説
-ΔV検出の様子
定電流回路の電流検出抵抗を試す


|

« 発光信号:LEDの点滅で状態表示 | トップページ | ダイソーReVOLTES単3 JIS C8708:2019充放電試験(-ΔV検出有)250サイクル目 »

電池」カテゴリの記事

電子工作」カテゴリの記事

Arduino」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 発光信号:LEDの点滅で状態表示 | トップページ | ダイソーReVOLTES単3 JIS C8708:2019充放電試験(-ΔV検出有)250サイクル目 »