電磁界解析ソフトウェアEMSolution

EMSOptimizer

電気機器の形状・パラメータ
最適化ツール

トポロジー最適化 × パラメータ最適化
Pythonネイティブ & EMSolution/eMotorSolution連携

アルゴリズムを選び、評価を組み替え、制約を重ねる。
Pythonで作る最適化基盤

EMSOptimizer は、最適化計算の要素(目的・評価関数・制約・探索手法)をクラスとして提供し、Pythonで継承・実装して自由に組み合わせられる最適化基盤です。OSS最適化ライブラリの導入が前提の設計により、最新手法のA/B比較や独自改良をそのまま実務へ。NGnet法の形状最適化と eMotorSolution 連携のパラメータ最適化を同一ワークフローで統合し、研究スピードと実装スピードを両立します。
最適化とPythonの経験を持つ技術者・研究者に、“最新のOSS手法を実機レベルの問題に即投入する” 自由度を提供します。

お客様の課題を解決する 3つの特長

アルゴリズムを選べる自由度 ― OSS直結 × クラス設計

EMSOptimizerは、目的・評価関数・制約・探索手法をクラスとして提供し、Pythonで継承/差し替えできる最適化基盤です。OSS最適化ライブラリの利用を前提に設計しているため、最新アルゴリズムのA/B比較や自社改良をそのまま投入可能。固定実装の“箱”に合わせるのではなく、問題に合わせてエンジン側を組み替える運用ができます。

・主な機能:Optimizer/Evaluator/Analysis Conditioner/Level Set Function クラス、プラグイン読込、乱数シード/設定の保存

・活用例:CMA-ES と差分進化の比較、使用したいScipy/NLopt/PyGMO などのOSSを切替、評価関数に独自ペナルティを追加

・評価観点:外部ライブラリのバージョン固定、ログ/再現性、学習曲線や収束履歴の取得

形状最適化とパラメータ最適化を一体運用 ― NGnet法 × eMotorSolution連携

NGnet法によるトポロジー最適化と、eMotorSolutionと同一データで回せる寸法・巻線パラメータ最適化を、ひとつのフレームワークに統合。EMSolution(pyemsol)直結で物理計算の一貫性を担保しつつ、多目的(例:平均トルク↑・リップル↓)や制約(寸法・材料など)を同時に扱えます。初期設計→多案評価→最適化を止めずに連結できます。
(誘起電圧などの物理量を多目的,制約条件への適用は今後実装予定です。ユーザ自身で実装ももちろん可能です)

・主な機能:NGnet基底関数・正則化、設計変数の上下限、複合目的(加重和/パレート探索)

・活用例:SPM/IPMの磁石配置最適化、ギャップ・スロット・巻線の一括パラメトリック最適化。T–I–θ特性を指標化して最適化(拡張予定)

・評価観点:目的関数のスケーリング、ペナルティの調整

研究速度と運用速度を両立 ― Pythonネイティブの自動化・CI

Pythonネイティブのため、スイープ/バッチ実行やCI(夜間自動実行・レポート配信)への組み込みが容易です。結果はCSV/画像で機械可読に出力、設定・種・バージョンを含む実験ログで再現性を担保。チームで標準テンプレを共有すれば、研究の実験場→本番運用への移行が滑らかです。

・主な機能:CLI/スクリプト実行、結果のCSV/PNG出力、実験ログ

・活用例:夜間に100ケースの最適化→朝にパレート集合をダッシュボードで確認、失敗条件の自動再キュー

・評価観点:再現実験の手順化、ジョブ失敗時のリトライ。外部リソース(HPC/クラウド)への拡張(今後実装予定)

「回したいのに回せない」をなくす —— 実務で使える最適化へ

最適化を“回し切れない”現場の事情
最適化は、試して学び、また試すサイクルを回すほど強くなります。ところが実務では、解析と最適化を往復するコストや時間、既存フローとの整合やデータ受け渡し、社内の標準様式とのレポート整備など、“回す”前に越えるハードルが意外と多く、着手や継続が難しくなりがちです。
始めるとぶつかる“自由度”の壁
最適化に慣れてくると、評価関数に一項目を足したい、制約の書き方を変えたい、新しい探索手法を試したいといったニーズが出てきます。けれど、評価・制約・手法の入れ替えや並び替えを柔軟に行うには、拡張しやすい設計と実装の見通しが必要です。ここが、最初の一歩から次の一歩へ進む際のつまずきポイントになりがちです。
私たちのソリューション —— コアは内製、拡張はオープンに
EMSOptimizer は、寸法最適化とNGnet法による形状最適化のコアを内製しつつ、評価関数・制約・探索手法などはPythonクラスとして公開。継承/差し替えで自由に組み替えられる設計により、OSS最適化ライブラリの導入や新手法のA/B比較を実務のワークフローにそのまま載せられます。
品質の要は“物理の一貫性”
最適化結果の信頼性は、解析の一貫性に依存します。EMSOptimizer はEMSolution(pyemsol)に直結し、電磁界計算の物理的整合と再現性を確保。初期設計 → 多案評価 → 最適化までを同じデータでつなぎ、検討の連続性を保ちます。
NGnet × Pythonクラス設計 —— 回せる・広げられる最適化プラットフォーム
EMSOptimizer は、NGnet法の形状最適化と eMotorSolution 連携による寸法・巻線のパラメータ最適化を同一フレームで運用できます。目的・評価関数・制約・探索手法をクラスとして提供し、Pythonで継承/差し替えするだけで拡張可能。必要に応じてOSS最適化ライブラリを取り込み、研究で得た新手法を実務へそのまま載せられます。
結果はCSV/画像で出力、設定やシードを含むログで再現性を担保。初期設計 → 多案評価 → 形状最適化を同じデータで回し、チームの“回転数”を上げます。

EMSOptimizerの機能

(1)フレームワーク構成(クラスと拡張)

  • クラス提供Optimizer(探索手法)/ Evaluator(評価関数)/ Analysis Conditioner(解析条件)/ Level Set Function(形状関数)

  • 拡張方法:Pythonでクラス継承→ setup_population()evaluate(), condition_analysis_case(), calculate_output() 等を実装

  • プラグイン:外部モジュール読込、設定(YAML)で差し替え

  • 再現性:乱数シード・依存ライブラリのバージョン固定、設定スナップショット

(2)形状最適化(NGnet)/パラメータ最適化

  • NGnet法:基底展開/平滑化・正則化/形状更新

  • パラメトリック:寸法(径・幅・角度…)/巻線(スロット/極/層/結線 など)⇦ eMotorSolutionのテンプレート

  • 同一データ:eMotorSolutionモデルと評価指標を共有 → 入口から出口まで一貫

(3)設計変数

  • :連続,離散(カテゴリ)

  • 境界:上下限/離散集合

(4)制約

  • 性能:トルク、リップル。(誘起電圧、Ld/Lq、効率 などは今後実装予定)

  • 幾何・製造:クリアランス、積厚。(最小厚み、体積・重量などは今後実装予定)

  • 実装:ソフト制約(ペナルティ付与)を選択

(5)目的関数・多目的

  • 単目的:例)平均トルク最大化,トルクリプル最小化

  • 多目的:加重和/パレートフロント出力

  • 整形:正規化・重み・寸法。(波形からの指標化(RMS、max、周波数成分)は今後実装予定)

(6)探索手法(Optimizer)

  • 外部OSSの導入前提(例:CMA-ES、差分進化、勾配なし手法、Bayesian最適化、局所探索 ほか)
    実装済:単目的 CMA-ES,多目的 NSGA-2, MOEA/D

  • 切替:複数アルゴリズムでA/B比較。(ハイブリッド(粗探索→局所)などは今後検討予定)

  • チューニング:最大反復・母集団 等

※プロジェクトに合わせて選定・固定してください

(7)評価計算(Evaluator)とEMSolution連携

  • pyemsol 経由で電磁界計算を一貫(2D初期検討→最適化)

  • バッチ評価:ケース列の一括実行、失敗時の自動リトライ

  • 計測:計算時間・収束履歴・ログ保存

(8)実行・自動化・可視化

  • 実行形態:CLI/Pythonスクリプト。(ジョブスケジューラは今後実装予定)

  • CI/夜間バッチ:定期実行→朝に結果集計(CSV/画像)

  • 出力

    • CSV:設計変数・目的・制約・収束履歴

    • 画像:パレート図、結果形状のスナップショット。(波形・特性などは今後実装予定)

  • 失敗耐性:タイムアウト・例外捕捉・再実行キュー

(9)監査・再現性

  • ログ:設定(CSV)、ライブラリバージョン、乱数シード、日時、実行環境

  • チェックポイント:(途中結果の保存・再開は今後検討予定)

  • トレーサビリティ:(結果から設定へ遡及できるID体系は今後検討予定)

製品構成

EMSOptimizerの製品構成は,プロダクトページをご参照ください。