車両走行データの解析作業を 効率化する方法 ホ ワイトペ ー パ ー 車両走行データの解析作業を効率化する方法 自動車メーカーにおいては、従来からある開発時に取り扱う車両データだけでなく、今後は故障予 測や異常検知、性能評価などの観点から、一般ユーザーが使用する車両から取得されるデータに ついても解析を行う必要性が高まることが想定されます。 車両走行データは、フリートデータ、プローブデータ、さらにはテレマティクスデータと呼ばれるこ ともありますが、開発を行う上で非常に重要なデータです。これらは車両の開発が完了した後に得 られるデータであり、それ以外にも開発中に収集される車両走行データもあります。 通常、これらのデータは大小様々で、大きいものでは数GBから数十GBに及び、車両開発の過程で これらのデータを解析することになります。もちろん解析対象車両が1台だけということはなく、少 なくとも数十台、本格的な解析となれば数千台~数万台に上ります。そうなると解析対象のデータ 量は数百GBから数百TBという膨大な量になります。 しかも、データ収集方法によってファイル形式やサンプリング周期が異なることや、欠損値や異常 値が含まれていることも少なくありません。このような車両走行データを効率的に解析する方法 を、CANデータの解析を例にご紹介します。 CANデータの収集からデータ形成における課題 車両走行データは、ナビゲーションシステムや通信モジュールを経由してデータサーバに収集され る場合もあれば、車両上のCAN (Controller Area Network) バスに接続されたデータロガーにより 蓄積・収集される場合もあります。 CANバスに接続したデータロガーによりデータを収集する場合、前処理が必要になり、 • CANのIDごとにデータ長、サンプリング時間、サンプリング周期が異なる • DBCファイルと照合して復号化する作業が必要になる • データロガーに溜め込んでいる限り延々とデータが続いてしまう (必要な箇所のデータを探し出すことが難しい) という課題をまずクリアする必要があります。 データロガーを供給している各社から提供されるアプリケーションを利用して解析を行う場合も 多いと思いますが、 「○月×日の走行に関するエンジン回転数」の波形をグラフにより観察しよう にも、取得開始時期からデータを読み込んでいき、数分経過した後にやっと観察対象の箇所に辿 り着くというケースが多いのではないかと思います。このような状況のため解析、と言ってもグラフ を描いたり、平均や最大・最小値といった記述統計量を算出したりするところで止まっているので はないでしょうか。CANデータについては、送受信タイミングやMessage IDの優先順位によりバラ ツキが生じるケースがあります。例えば、送受信周波数を10Hzに設定しても1秒間に9点または11点 データが取得されているケースがあります。異なるIDの場合この様に送受信タイミングが異なって しまう上に、取得できるデータ点数にバラツキがあるため、図1のように異なるID同士の掛け算を 実施する場合、同期処理に頭を悩ませることになります。 ホ ワイトペ ー パ ー | 2 車両走行データの解析作業を効率化する方法 図1. CANデータが流れてくる様子 電流データと電圧データを使い電力を求めるためにペアリングが必要で、誤差も考慮する必要があるため、同期処理が煩雑 MATLABによるデータ形成 このような特徴を持つCANデータをそのまま扱うことは非効率です。生データを各走行データに 分割し、さらに欠損値の補間、異常値の除去、そして同期処理を施した扱いやすいデータ (中間デ ータ)に変換した方が、後工程である解析作業はスムーズになります(図2)。 図2. 車両データ解析フロー ホ ワイトペ ー パ ー | 3 車両走行データの解析作業を効率化する方法 MATLAB®を利用することにより、先に挙げた課題に対し、 • DBCファイルを含めた様々なファイル形式のインポートと復号化 • インポートしたデータに対する異常値や欠損値の除去および補間(図3) • IGオン/オフや電源ケーブル接続/遮断といったイベントに基づいたデータの分割 といった作業が簡単にでき、 「各トリップまたは各チャージへの分割」や「バイナリ(ヘキサ)データ の復号」、 「時刻の整合性」といった処理が済んだデータを生成できます。 図3. 欠損データを補間した様子 さらに、MATLABは各種データベースやデータウェアハウスに直接アクセスできるため、前処理後 のデータをCSV形式等でファイル保存することなく、シームレスに処理することができます。 また、MATLABで解析する場合、中間データはアスキー形式である必要はなく、バイナリ形式によ ってサイズを圧縮し、規模の大きいデータを効率的に扱うこともできます。 ホ ワイトペ ー パ ー | 4 車両走行データの解析作業を効率化する方法 MATLABによる解析作業の効率化と発展 解析作業にMATLABを活用することにより、 • 最大値・最小値、平均、分散、さらには相関といった記述統計の算出 • GPS(緯度・経度)情報を使った走行データの地図表示(図4)や、故障などのイベント発生地点 の住所を割り出すための逆ジオコーディングサービスへのアクセス • 週報または月報といったレポートの自動生成 といったことを効率的に行えます。 図4. Google Earth™上に走行データを表示した様子 走行開始・終了、最高・最低速度の住所も合わせて表示されている ここまでご紹介した内容は、基本的な統計量や地図表示、レポート作成といった簡易解析が主で すが、データの裏側に潜む、より普遍的な法則を見つけ出すような解析、例えば、 • 機械学習などを応用したデータの異常検出(図5) • 時系列モデルへのフィッティングおよびシミュレーションによる将来予測 • 部品の故障確率や寿命予測といった信頼性解析 ホ ワイトペ ー パ ー | 5 車両走行データの解析作業を効率化する方法 といった発展的な解析が、今後はより必要とされます。MATLAB製品には、 • 決定木やサポートベクターマシン、ディープラーニングといった機械学習による分類または回帰 モデルの構築 • 様々な時系列モデルや確率モデルを利用したフィッティング、およびシミュレーション • データのフィルタリングおよびウェーブレット解析を含めた時間周波数解析 を行う機能もあり、発展的な解析アプリケーションを作成することが可能です。 図5. MATLABで作成した解析アプリケーションの例: 機械学習を応用した異常波形の検出 MATLABアプリケーションの配布 MATLABで作成したアプリケーションを他の人と共有したい方もいるでしょう。もちん、MATLAB ユーザー同士であれば、作成したアプリケーションを簡単に共有できます。 さらに、MATLABを持ってない方に対しても、スタンドアロン再配布機能(MATLAB Compiler™) を使用することで、共有することが可能です(図6)。これを用いることにより、実行形式または Excelアドインとして配布することができ、非MATLABユーザーの方にもMATLABで作成した計算 アルゴリズムを利用していただくことが可能です。 ホ ワイトペ ー パ ー | 6 車両走行データの解析作業を効率化する方法 図6. アプリケーション共有の様子 MATLABライセンスを保有する社内のメンバーであれば、MATLABコードをそのまま利用することができます。MATLABライセンス をお持ちでない他の方々とは、Excelアドイン、実行形式、Webアプリケーションとして共有することが可能です 権限の問題やアプリケーション管理の問題により、各ローカルPCにアプリケーションを配布するこ とが難しい場合は、図7のようにサーバーで一元管理する方法(MATLAB Production Server™)もあ ります。 図7. サーバー管理のシステム構成図 ホ ワイトペ ー パ ー | 7 車両走行データの解析作業を効率化する方法 MATLABアプリケーションの大規模化への対応 取り扱うデータ量の増加に加え、処理内容の高度化・複雑化により、MATLABアプリケーションの 処理が大規模になっていくことが考えられます。 MATLABには大規模並列計算をサポートする機能(Parallel Computing Toolbox™、MATLAB Distributed Computing Server™)が用意されており、データやアプリケーションの規模に対する拡 張性を備えています。 まとめ モデルベース開発の浸透と共に、これを支えるSimulink® は開発現場で広くご利用いただいていま す。また、そのプラットフォームであるMATLABは、強力な数値計算やデータの解析・可視化機能、 カメラを含めた計測機器との連携機能を備えており、車両から取得される大量のデータを容易に 解析できます。同時に、処理を自動化することで、解析作業の工数を低減することもできます。本 格的に解析アプリケーションを開発する余裕はないという場合は、まずはデータの前処理に使って みてはいかがでしょうか?それだけでも、データ解析作業の効率化に繋がるはずです。 車両データ解析の事例 • Daimler AG: 世界各地の燃料電池車から収集したテストデータの解析 • CEESAR: 大規模な走行データの解析をサポートするデータ処理フレームワーク ホ ワイトペ ー パ ー | 8
© Copyright 2024 ExpyDoc