お客様: 電池メーカーの研究開発部門様

ご依頼内容

  • 線形計画法を使って、蓄電池の運用条件を最適化したい。
  • MATLABを使い始めたばかりで、制約条件をコードにする段階で行き詰まっている。
  • 開発を任せきりにせず、自分たちで改良を続けられるよう、技術指導の形で支援してほしい。

課題

  • SOC、充放電量、電池容量といった運用条件を、線形計画法の制約行列として表現すること。
  • 非線形の項を含む劣化予測式を、線形最適化へ組み込める形に整理すること。
  • 再帰的な処理として、1回目の最適化結果から次の制約を作り、運用ルールを満たす計画を求めること。

ソリューション

  • 線形計画法のソルバーである、linprogを用いた運用計画のコードについて、等式・不等式制約と、初期値の組み方を説明した。
  • お客様のご要望である、二次の項を含む劣化予測式を線形化した。
  • 劣化度を目的関数へ組み込んで最適化する、実行モードを追加した。
  • 1回目の結果から制約を作る、2段階の最適化を実装した。
  • 月ごとの積算充電容量の制約と、年度単位の繰り返し計算を追加した。
  • 条件を変えて再計算できるよう、入力の設定と、最適化結果の表示を分離した。
  • 計算の内容は、Web会議と対面の打合せで、その都度説明した。
2段階の最適化の流れと、劣化予測式を線形化する手順の模式図
1回目の計算結果から運用ルールを表す制約を作り、2回目を解く流れ(上段)と、二次の項を含む劣化予測式を線形計画で扱える形に整理する手順(下段)。処理の流れを示すために作図した模式図で、実際の計算結果は含みません。
充放電の計画とSOCの推移を示した運用計画の表示例(サンプルデータ)
最適化した運用計画の表示例。充放電の計画とSOCの推移を、一日分で確認する。放電しない区間と充電の下限は、1回目の結果から生成した制約にあたる。サンプルデータで作成した表示例で、実際の計算結果ではありません。

結果

  • 条件を変えた再計算と、年度単位の繰り返し計算を、お客様側で実行できる状態になった。
  • 約1年半にわたり、お客様が内製するシミュレーションコードを、継続して改良できる状態を保った。
  • 動くコードと技術レクチャーを組み合わせて提供し、お客様側で改良を続けられる形にした。

ひとこと

  • 最適化は、目的関数の作成も重要ですが、実際の運用ルールを制約条件へ落とす作業も、難しい場合があります。
  • 「作ってもらうのではなく、自分たちで育てられるようにしたい」というご相談も承ります。コードを解説し、一緒に動かしながら、条件を一つずつ追加していきます。

お問い合わせ

開発事例にご興味ありましたら、お気軽にお問い合わせ下さい。
下記の、「今すぐお問い合わせ」をクリックして、フォームにご記入下さい。
早急に回答致します。

今すぐお問い合わせ