1. HOME
  2. ブログ
  3. IT技術
  4. 【突入電流測定編】Pythonによるオシロスコープ波形データ解析の秘訣
Python によるオシロスコープ波形データ解析の秘訣(突入電流測定編)

【突入電流測定編】Pythonによるオシロスコープ波形データ解析の秘訣

Pythonで突入電流波形解析してみた!

今回は、オシロスコープで得られた csv の突入電流波形データに対して、Python で自動評価するテクニックを紹介します。

電子部品ヒューズの選定手順に含まれる、I2t-T カーブへの適用確認をジュール積分計算とグラフ描画によって行います。

電源回路の評価で必要不可欠な突入電流波形解析を Python で行います。

記事の最後にコピペで使えるサンプルコードも付属しています!

こちらの記事もオススメ!


突入電流波形について

突入電流とは、電気回路の電源オン時に瞬間的に流れる電流となっており、短い時間で急速に増加したあと急速に減衰し、定常値に収束するような挙動をとります。

主に回路内のコンデンサ部品の合計容量によってその大きさは変わりますが、一般的には机上計算が難しい複雑な振る舞いとなります。

そのため、オシロスコープを使って実測値を測定しなければ評価することはできません。

突入電流を評価する意義

では、突入電流を評価する意義は何なのでしょうか。

最もポピュラーなケースが電子部品ヒューズの選定です。

過電流を検出し、安全のため自動で溶断するヒューズは、瞬間的な突入電流で誤って溶断してしまう可能性があります。

そのリスクを判断するためには突入電流の波形評価が必要不可欠なのです。

突入電流波形の評価方法

評価の具体的な方法としては、各社ヒューズメーカーが詳しい説明資料を用意しています。

ここでは、評価の中でも少々ややこしい I2t-T 特性の評価について簡単に説明していきます。

下図は Python で生成した大雑把な突入電流波形の例です。

Python で生成した大雑把な突入電流波形の例

まず、得られた突入電流波形の始めから時間単位でジュール積分値を計算します。

積分値は各時間ごとに累積させていき、横軸を時間、縦軸を累積積分値としたグラフを描きます。

このグラフは I2t-T 曲線と呼ばれ、この曲線がメーカー側が提示する範囲に収まっていれば合格となります。

各ヒューズのモデルごとに I2t-T 曲線は用意されていますので、エンジニアはヒューズ本来の溶断電流値を満たしつつ、合格範囲内となるモデルを選定していくことになります。

I2t-T 曲線は例えば、下記のメーカーのヒューズモデルのデータシートを閲覧することで確認できます。

SOC 株式会社:DC35V 3216サイズ 速断 表面実装型プロテクター
https://www.socfuse.com/ja/products/detail/dc35vp11cf/

本記事での実施内容

本記事では、上記で述べた I2t-T 特性の評価に注目し、Python で突入電流波形から I2t-T 曲線を描くことを行います。

突入電流波形は今までのように、オシロスコープから Pyvisa などを使って得られたことを想定し、csv 形式のものを用意します。

今回は、Python を使って突入電流を擬似的に再現した波形データを取り扱います。

コード内では、csv の読み出しに始まり、逐次処理方式で突入電流の始まりを自動検出し、ジュール積分値を累積する形で計算します。

最後に matplotlib を使い、グラフを作成する形です。

準備

今回のコード実行に必要な環境は下記になります。

インストールが必要なもの

  1. Python の開発環境(Spyderなど)
  2. Pandas モジュール(波形データ生成に必要)
  3. math モジュール(波形データ生成に必要)
  4. random モジュール(波形データ生成に必要

筆者の実行環境

  1. Python(3.6)
  2. Spyder(3.2.6)

解析する波形データ

波形データは Python で簡単に生成できますので、下記のコードを実行してみてください。

上の方にある突入電流波形の例通りのものが生成されるはずです。

 

コード本文

それでは、解析をスタートしましょう!

今回も波形データに特化した時系列逐次処理で処理を行っていきます。

詳細については前回記事(記事ID26995へのリンク)を参照してみてください。

①モジュールのインポートとcsvデータの読み込み

まずは下記のようにモジュールのインポートと csv の読み込みを行います。

ここは前回記事とほとんど変わりません。

②使用する変数の定義とフラグの初期化

次に変数とフラグを定義して初期化します。

使われ方については後述のコードで説明していきます。

③波形データの時系列逐次処理

前回から使っている時系列逐次処理の部分です。

こちらも従来通りですので、説明は割愛します。

メインは次から説明する while 文の中身です。

④突入電流開始時間の検出

メインの処理の前に突入電流の検出を行います。

あらかじめ設定した閾値を超過した立ち上がりタイミングから検出処理を開始します。

コードを見ていきましょう!

今までと同様に、リングバッファを使って、連続して閾値を超えたタイミングを検出しています。

検出時には StartPnt に開始時のサンプル位置を記録し、グラフ描画のスタート地点としています。

⑤ジュール積分値の計算とグラフ描画用の配列作成

メインとなるジュール積分値の計算です。

基本的には突入電流の検出タイミングから指定したサンプル間隔ごとに計算していく形になります。

コードを見ていきましょう!

グラフを描画するのに必要なリストデータは時間 TimeCnt 積分値 JouleIntg なのでこの2つに要素を追加していく形になります。

まず、

で実時間を検出タイミングを起点に算出します。

ここで、波形データ1点ごとのサンプリング時間 SMP_TIME を正しく把握しておくことが重要です。

次に

前回時間におけるジュール積分値に現在時間における積分値を加算して累積していきます。

積分値の計算は、離散データでは

時間間隔 × 電流値の2乗

で計算ができるため、データのサンプリング時間(SMP_TIME)と処理のサンプリング間隔(DET_SMP_INT)から正しい値を算出しましょう。

上記を繰り返し処理していくことでグラフ描画用のデータが生成されます。

⑥ I2t-t グラフの描画

最後に波形データ処理の結果得られたジュール積分値を時間軸にプロットします。
ポイントとしては、比較するメーカーのグラフと描画方法と範囲を揃えることです。

メーカーのグラフは図データのみになるので、最終的には目視で比較することとなります。

下図のグラフが生成されました。

I2t-t グラフの描画

このグラフとメーカーのグラフを見比べてみましょう。

こちらのリンクの pdf 形式のデータシートからグラフを参照することができます。

プロットしたデータよりマージンがある曲線は3150のようです。

したがって、型番 DC35VP11CF では定格電流3.15A を選べばよいことが分かりました。

サンプルスクリプト

最後に今回紹介した解析コードの全文を下記に記載します。

今までの説明で省かれていた閾値などの設定値も記載しており、解析したい対象に応じて値を変えれば、同様の解析が手持ちの波形データでも行えるはずです。

記事を書いた人

\ 3度のメシより技術が好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
システム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!


書いた人はこんな人

ライトコード社員ブログ
ライトコード社員ブログ
「好きなことを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡本社、東京オフィスの2拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もりは大歓迎!
また、WEBエンジニアとモバイルエンジニアも積極採用中です!

ご応募をお待ちしております!

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア