各種メニューMenu

活用例

電気モーターのデジタルツイン

近年、新しい技術や電気自動車の開発が進んでいます。 多くの企業は、信頼性、顧客の自律性、耐久性の面で、自社の電気エンジンが市場で最高のものであることを保証したいと考えています。 そのために、実際の製品にダメージを与えないようにデジタルテストを行い、エンジンが最も効果的に働く最適な温度領域を探索しています。

電気モーターの動作を理解するために、性能最適化のプロセスを応用できます。 この例では、テストベンチに設置した永久磁石同期モーターから収集したセンサーデータの、大規模なデータセットを用意しました。 ロータ(回転子)とステータ(固定子)の温度を強力に推定できるようになったことで、モーターを改良し、電力損失を減らし、最終的には熱の蓄積を減らせるようになりました。

アプリケーションの選択

予測すべき変数が連続的(エンジン温度)なため、この例では近似モデルを選択します。

ここでの基本的な目標は、車の機能や電気モーターの部品の温度に電圧と電流がどのように影響するか突き止めることです。

データセットの設定

最初のステップは、近似モデルの情報源であるデータセットの準備です。 データセットは以下で構成されています。

  • データソース
  • 変数
  • インスタンス

この例では、変数(列)の数は14、インスタンス(行)の数は107となっています。 変数は、以下の通りです。

入力

  • 周囲の温度(ステータ近く)
  • 冷却水温度(モーターは水冷式、測定は出口側で行われる)
  • 電圧のd成分
  • 電圧のq成分
  • 電流のd成分
  • 電流のq成分
  • 電圧のd-q成分からのベクトルモジュール
  • 電流のd-q成分からのベクトルモジュール

ターゲット

  • 車両のモーター速度
  • 電流に誘起されたトルク
  • ステータのヨークの温度
  • ステータのティースの温度
  • ステータの巻線の温度

未使用

  • 各測定セッション固有のID

固有IDは、単に測定セッションを示すだけのインスタンスなので、"未使用"にしておきます。

私たちの主な目的は、オーバーヒートを防ぐため電気モーターの動作を記述することです。 そのため、エンジンの内部部品の温度を示す変数をターゲットに設定しています。

このデータセットをランダムに分割し、それぞれがインスタンス全体の60%、20%、20%を含む、訓練用、検証用、テスト用のサブセットとします。 具体的には、訓練用に65個、検証用に21個、テスト用に21個のインスタンスを使用します。

すべてのデータセット情報が設定されたら、データの品質を確認するためにいくつかの分析を行います。 例えば、データの分布を計算できます。 次の図は、ターゲットの1つであるステータのティースの温度のヒストグラムを示しています。 この図から、ティースの温度が正規分布に従っていることがわかります。

次の図は、入力とターゲットの相関関係を表しています。 これは、それぞれの入力がモーターの温度に与える影響を見るのに役立ちます。 この例では様々なターゲットがあるので、そのうちの1つであるトルクに対する相関図を示します。 上のグラフは、トルクがいくつかの入力と重要な依存関係にあることを示しています。 ご覧のように、トルクと特に高い相関関係にある入力は"i_q: 電圧のq成分"です。

また例えば、周囲の温度とステータの巻線の温度の関係を散布図にすることもできます。 一般的に、周囲の温度が高いほどステーターの巻線の温度も高くなっており、理にかなっています。

ネットワーク構造の設定

ニューラルネットワークは、電流、電圧、冷却水温度、周囲温度の関数として、モーター部品の温度を出力します。 この近似モデルでは、ニューラルネットワークは次のように構成されます。

  • スケーリング層
  • パーセプトロン層
  • アンスケーリング層

スケーリング層

スケーリング層では、元の入力値を正規化した値に変換します。 ここでは、入力値の平均値が0、標準偏差が1になるように、平均値と標準偏差のスケーリング手法を採用します。

パーセプトロン層

この事例では、2つのパーセプトロン層を挿入しています。 ほとんどの近似モデルでは、層の数は2層で十分です。 第1層は8つの入力と3つのニューロンを持ち、第2層は3つの入力と5つのニューロンを持ちます。

アンスケーリング層

アンスケーリング層では、ニューラルネットワークから得られる正規化された値を、ターゲットに合わせて変換します。 スケーリング層と同様、平均値と標準偏差のアンスケーリング手法を使います。

次の図は、この例のニューラルネットワークの構造を示しています。

学習手法の設定

次のステップでは、ニューラルネットワークが何を学習するか規定する、適切な学習手法を選択します。 一般的な学習手法は、次の2つのコンセプトで構成されています。

  • 損失関数
  • 最適化アルゴリズム

損失関数

損失関数としては、L2正則化を用いた正規化二乗誤差を選択します。この損失関数は、近似モデルのデフォルトです。

最適化アルゴリズム

最適化アルゴリズムは、準ニュートン法を採用しています。 この最適化アルゴリズムは、今回のような中規模のアプリケーションではデフォルトとなっています。

学習手法の設定が完了したら、ニューラルネットワークに学習をさせます。 次の図は、学習過程においてエポック数(学習の繰り返し回数)に応じて訓練誤差(青)と検証誤差(オレンジ)が減少していく様子を示しています。 トレーニングの結果で最も重要なのは、最終的な検証誤差です。 これがニューラルネットワークの汎化性能の指標となります。 ここでは、最終的な検証誤差は0.083NSEです。

モデル選択

モデル選択の目的は、最良の汎化性能を持つネットワーク構造を見つけることです。 つまりここでしたいことは、上で得られた最終的な検証誤差(0.083NSE)の改善です。

最適な検証誤差は、入力とターゲットの関係を表すのに最も適した複雑さを持つモデルを使用することによって達成されます。 そのために用いられるニューロン数選択アルゴリズムは、ニューラルネットワーク内のパーセプトロンの最適な数を見つける役割を担います。

最終的な訓練誤差は、ニューロンの数に応じて常に減少します。 しかし最終的な検証誤差は、ある時点で最小値をとります。 この例では、最適なニューロンの数は9で、その際の検証誤差は0.0432NSEです。

次の図は、この例における最適なネットワーク構造を示しています。

テスト分析

テスト分析の目的は、学習したニューラルネットワークの汎化性能を検証することです。 テストでは、ニューラルネットワークから得られた値と実際に観測された値とを比較します。

近似問題における標準的なテスト手法は、学習に使った訓練用インスタンスとは独立なテスト用インスタンスを用いて、予測値と実測値の間で線形回帰分析を行うことです。 次の図は、この例においてテスト分析によって得られた結果を示しています。 上のグラフから、ニューラルネットワークが温度データの全範囲をうまく予測していることがわかります。 また、相関値R2は0.990であり信頼性の高い予測能力を持つモデルであることがわかります。

モデルの利用

このモデルは、学習時と同じデータ範囲において、エンジン部品の温度を満足のいく品質で推定できるようになりました。

Directional outputをプロットして、他のすべての入力値が固定されている場合に、1つの入力値の変化に応じて出力値がどのように変化するかを見ることができます。 上の図は、以下の基準点を通る、電圧のq成分の関数としてのステータのティースの温度の変化を示しています。

  • 周囲の温度: -0.603
  • 冷却水温度: -0.393
  • 電圧のd成分: -0.359
  • 電圧のq成分: -0.235
  • 電流のd成分: 0.0834
  • 電流のq成分: 0.231
  • 電圧のd-q成分からのベクトルモジュール: 1.26
  • 電流のd-q成分からのベクトルモジュール: 1.19

ただし上の値はすべて、平均が0、標準偏差が1となるようにスケールしたものです。

電圧の増加に伴い、ティースの温度も上昇していくことがわかります。