2023年8月31日、東京理科大学 山口研究室 において、Gurobi Optimizerを用いた発電機起動停止計画(Unit Commitment: 以下UC)最適化を実施するためのPythonパッケージ「ucgrb」がGithub上で公開されました。
また、最適化対象となる電力系統の各種パラメータはCSVファイル形式で記述され、特定のディレクトリに配置する必要があります。設定ファイルによってインポート対象のデータディレクトリを指定することができます。
各回の最適化結果はそれぞれXLSXファイル形式で保存されます。設定によっては、全決定変数の最適化結果をJSONファイル形式で出力することができます。
本ブロブの管理者が代表社員を務める合同会社「真鍋ラボ」が本パッケージの開発・運用に携わっています。そこで、本ブログ上で本パッケージを簡単に紹介させてください。
UCとしての特徴
本パッケージは連系線で接続された複数地域の電力系統を対象として、対象期間(受渡日)のUCが確定するように、前日計画と当日計画を連続で実施することができます。たとえば、日本全国の電力系統を対象として、UCを実施することも可能です。本パッケージのUCは混合整数線形計画法(Mixed-integer linear programming: MILP)で定式化されています。詳細な定式化内容はGithub上にあるreadmeにおける「4. 最適化問題の定式化」で確認することができます。主な特徴は以下の通りです。
- 最適化の目的関数は最適化対象期間の全地域の総コスト最小化である。
- 決定変数は電力系統の各構成要素の運用計画である。
- 大規模発電機(火力、原子力、水力)
- エネルギー貯蔵装置(ESS)
- 再生可能エネルギー(太陽光、風力)
- 連系線
- 主な制約条件は以下の通りである。
- 電力系統の各構成要素の運用制約
- 複数地域の需給バランス制約、調整力制約、慣性定数制約
シミュレーションツールとしての特徴
MILPのソルバーとして、Gurobi Optimizerを用いています。大規模な問題を解くためには有償のライセンスが必要となります。Gurobi Optimizerの有償ライセンスがない場合でも、MILPをMPSファイル形式で出力することで、他のソルバーツールでの実施が可能となります。また、最適化対象となる電力系統の各種パラメータはCSVファイル形式で記述され、特定のディレクトリに配置する必要があります。設定ファイルによってインポート対象のデータディレクトリを指定することができます。
各回の最適化結果はそれぞれXLSXファイル形式で保存されます。設定によっては、全決定変数の最適化結果をJSONファイル形式で出力することができます。
最適化を行う際の条件は、設定ファイルの記載を編集することで、簡単に変更することができます。主な設定項目はreadmeにおける「6. 設定値一覧」で確認することができます。
本シミュレーションツールは3つのクラスと2つの関数で構成されています。それらのクラスを参照し、編集、組み合わせることで自由度の高いシミュレーションモデルの構築が可能となります。
本シミュレーションツールは3つのクラスと2つの関数で構成されています。それらのクラスを参照し、編集、組み合わせることで自由度の高いシミュレーションモデルの構築が可能となります。
- クラス「UCData」: 設定ファイルと電力系統モデルを読み込み保存する。
- クラス「UCDicts」: 「UCData」で読み込まれた電力系統モデルを、Gurobiモデルで使用できるように、辞書型に変換し保存する。
- クラス「UCVars」: 最適化の結果を一部保存し、その保存内容を参照して、関数「make_grb_model」で作られたGurobiモデル決定変数の一部を固定する。
- 関数「make_grb_model」: 「UCData」「UCDicts」を元にGurobiモデルを生成する。
- 関数「output_result」: 最適化結果をxlsxファイル等で出力、保存する。
本ブログ右上にある「プロフィール」にお問い合わせメールが表示されていますので、簡単なご質問等でも構いませんので、気兼ねなくご連絡いただければと思います。
コメント
コメントを投稿