(57)【要約】【課題】風力発電システムに対して適切な制御を行うこと。【解決手段】強化学習装置１００は、強化学習を実施する。強化学習装置１００は、例えば、強化学習において、風車１１０を用いた発電機１２０からの出力電力、および、風速を観測する。ここで、強化学習装置１００は、例えば、観測した出力電力が定格出力電力を超える場合は、定格出力電力から観測した出力電力を減算した差分に対応する報酬を用いて第１の学習を行う。一方で、強化学習装置１００は、例えば、観測した出力電力が定格出力電力を超えない場合は、観測した出力電力から、特性関数に基づいて、観測した風速から特定される予定出力電力を減算した差分に対応する報酬を用いて第２の学習を行う。【選択図】図１
2020092490.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
風車を用いた発電機からの出力電力、および、風速を観測し、
観測した前記出力電力が定格出力電力を超える場合は、前記定格出力電力から観測した前記出力電力を減算した差分に対応する報酬を用いて第１の学習を行い、
観測した前記出力電力が前記定格出力電力を超えない場合は、観測した前記出力電力から、風速と出力電力との関係を示す特性関数に基づいて、観測した前記風速から特定される出力電力を減算した差分に対応する報酬を用いて第２の学習を行う、
処理を実行させることを特徴とする強化学習プログラム。
【請求項２】
コンピュータに、
前記第１の学習においては、前記定格出力電力から観測した前記出力電力を減算した差分に、重み関数が示す値を乗算した結果に対応する報酬を用いて学習を行い、
前記第２の学習においては、観測した前記出力電力から、風速と出力電力との関係を示す特性関数に基づいて、観測した前記風速から特定される出力電力を減算した差分に、前記重み関数が示す値を乗算した結果に対応する報酬を用いて学習を行う、
処理を実行させることを特徴とする請求項１に記載の強化学習プログラム。
【請求項３】
前記重み関数は、観測した前記出力電力が前記定格出力電力に近いほど、値が小さくなる関数である、ことを特徴とする請求項２に記載の強化学習プログラム。
【請求項４】
前記重み関数は、観測した前記出力電力が前記定格出力電力より一定以上大きい場合、観測した前記出力電力が前記定格出力電力より大きいほど、値が大きくなる関数である、ことを特徴とする請求項２または３に記載の強化学習プログラム。
【請求項５】
前記コンピュータに、
観測した前記出力電力、および、観測した前記風速に基づいて、前記特性関数を更新する、処理を実行させることを特徴とする請求項１〜４のいずれか一つに記載の強化学習プログラム。
【請求項６】
前記更新する処理は、観測した前記風速が定格風速を超えない場合に、観測した前記風速に、所定期間に観測した前記出力電力の統計値および前記定格出力電力のうち小さい方の電力を対応付けて示すように、前記特性関数を更新する、ことを特徴とする請求項５に記載の強化学習プログラム。
【請求項７】
前記コンピュータに、
前記定格出力電力および定格風速を取得し、取得した前記定格出力電力および定格風速に基づいて、前記特性関数を生成する、処理を実行させることを特徴とする請求項１〜６のいずれか一つに記載の強化学習プログラム。
【請求項８】
前記風車は、前記風車の受風性能を制御する機能を有する、ことを特徴とする請求項１〜７のいずれか一つに記載の強化学習プログラム。
【請求項９】
コンピュータが、
風車を用いた発電機からの出力電力、および、風速を観測し、
観測した前記出力電力が定格出力電力を超える場合は、前記定格出力電力から観測した前記出力電力を減算した差分に対応する報酬を用いて第１の学習を行い、
観測した前記出力電力が前記定格出力電力を超えない場合は、観測した前記出力電力から、風速と出力電力との関係を示す特性関数に基づいて、観測した前記風速から特定される出力電力を減算した差分に対応する報酬を用いて第２の学習を行う、
処理を実行することを特徴とする強化学習方法。
【請求項１０】
風車を用いた発電機からの出力電力、および、風速を観測し、
観測した前記出力電力が定格出力電力を超える場合は、前記定格出力電力から観測した前記出力電力を減算した差分に対応する報酬を用いて第１の学習を行い、
観測した前記出力電力が前記定格出力電力を超えない場合は、観測した前記出力電力から、風速と出力電力との関係を示す特性関数に基づいて、観測した前記風速から特定される出力電力を減算した差分に対応する報酬を用いて第２の学習を行う、
制御部を有することを特徴とする強化学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、強化学習プログラム、強化学習方法、および強化学習装置に関する。
【背景技術】
【０００２】
従来、自然エネルギーを利用した発電システムとして風力発電システムがある。風力発電システムは、例えば、風車のピッチ角、および、風車を用いる発電機の負荷トルク値の少なくともいずれかの制御により、風車の回転速度や発電機の発電量を制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１４９７９２号公報
【特許文献２】特開２００４−３０１１１６号公報
【特許文献３】特開２０１１−６０２９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、風力発電システムに対して適切な制御を行うことが難しい。例えば、強化学習により、発電機の出力電力を報酬とする学習を行い、風力発電システムを制御する場合、発電機の出力電力が発電機の定格出力電力を超えやすくなり、風力発電システムの安全性や安定性が損なわれる。
【０００５】
１つの側面では、本発明は、風力発電システムに対して適切な制御を行うことを目的とする。
【課題を解決するための手段】
【０００６】
１つの実施態様によれば、風車を用いた発電機からの出力電力、および、風速を観測し、観測した前記出力電力が定格出力電力を超える場合は、前記定格出力電力から観測した前記出力電力を減算した差分に対応する報酬を用いて第１の学習を行い、観測した前記出力電力が前記定格出力電力を超えない場合は、観測した前記出力電力から、風速と出力電力との関係を示す特性関数に基づいて、観測した前記風速から特定される出力電力を減算した差分に対応する報酬を用いて第２の学習を行う強化学習プログラム、強化学習方法、および強化学習装置が提案される。
【発明の効果】
【０００７】
一態様によれば、風力発電システムに対して適切な制御を行うことが可能になる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。
【図２】図２は、風力発電システム１０１の一例を示す説明図である。
【図３】図３は、強化学習装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、強化学習装置１００の機能的構成例を示すブロック図である。
【図５】図５は、風力発電システム１０１の具体的な機能的構成例を示すブロック図である。
【図６】図６は、閾値テーブル６００の記憶内容の一例を示す説明図である。
【図７】図７は、特性関数テーブル７００を生成する一例を示す説明図である。
【図８】図８は、報酬を算出する方針の一例を示す説明図である。
【図９】図９は、報酬算出手法を比較した一例を示す説明図である。
【図１０】図１０は、制御結果ごとの累計報酬の一例を示す説明図である。
【図１１】図１１は、重み関数を利用する一例を示す説明図（その１）である。
【図１２】図１２は、重み関数を利用する一例を示す説明図（その２）である。
【図１３】図１３は、報酬計算処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して、本発明にかかる強化学習プログラム、強化学習方法、および強化学習装置の実施の形態を詳細に説明する。
【００１０】
（実施の形態にかかる強化学習方法の一実施例）
図１は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。図１において、強化学習装置１００は、風力発電システム１０１に強化学習を適用し、風力発電システム１０１を制御するコンピュータである。
【００１１】
風力発電システム１０１は、風車１１０と発電機１２０とを有する。風車１１０は、風を受ける。風を受けた風車１１０により、風車１１０が受ける風の風力は、風車トルクに変換され、発電機１２０の軸に伝達される。風車１１０が受ける風の風速は、時間に応じて変動しうる。風車１１０が受ける風の風力は、風車トルクに変換する際、変換損失を発生させながら、風車トルクに変換される。また、風車１１０は、風車１１０の回転を抑制するブレーキを有する。また、風車１１０は、受風性能を制御する機能を有し、風速が変わらなくても、風車１１０が受ける風力を変更することができる。風車１１０は、例えば、ピッチを制御する機能を有する。
【００１２】
発電機１２０は、風車１１０を用いて発電を行う。発電機１２０は、例えば、風車１１０から軸に伝達された風車トルクを用いて発電を行う。発電機１２０は、例えば、軸に伝達された風車トルクを用いて発電を行うことにより、風力により生じた風車トルクとは逆方向の、負荷トルクを風車１１０にかけることができる。また、発電機１２０を電動機としても機能させることにより、発電機１２０は、負荷トルクを発生することができる。負荷トルク値は、例えば、０から負荷トルク上限までの値をとることができる。
【００１３】
発電機１２０は、発電した電力を電力消費先に出力する。発電機１２０が出力する電力は「出力電力」と呼ばれる。発電機１２０は、出力電力が定格出力電力を超えると、発電機１２０の動作が不安定になり、発電機１２０に負担がかかり、発電機１２０の故障や劣化を招く。定格出力電力は、発電機１２０が所定の条件下で安全に出力可能な出力電力である。定格出力電力は単に「定格出力」と呼ばれる。発電機１２０の出力電力が定格出力に到達する風速の目安は「定格風速」と呼ばれる。
【００１４】
発電機１２０に供給されたエネルギーが余ると、風車１１０の回転速度が増加する。回転速度は、例えば、単位時間当たりの回転角度であり、角速度である。回転速度の単位は、例えば、ｒａｄ／ｓである。これにより、風車１１０の回転速度が、回転速度上限に達すると、ブレーキにより風車１１０の回転が抑制される。回転速度上限は、風車１１０が安全に回転可能な回転速度の上限である。例えば、風速がカットアウト風速を超えると、風車１１０の回転速度が、回転速度上限に達する可能性が高くなるため、ブレーキにより風車１１０の回転が抑制される。発電機１２０に供給されたエネルギーが、発電機１２０で消費されるエネルギーよりも不足すると、風車１１０の回転速度が減少する。
【００１５】
ここで、風力発電システム１０１では、以上に示した風車１１０や発電機１２０の性質から、風速と予定出力電力との関係を示す特性関数が考えられる。特性関数は、例えば、風速が定格風速以下での予定出力電力の変化を示す。特性関数は、例えば、風速が定格風速を超えれば、予定出力電力として定格出力を示す。特性関数は、例えば、風速がカットアウト風速を超えれば、予定出力電力として０を示し、発電を行わないことを示す。特性関数は、例えば、発電機１２０の製造者によって決定される。
【００１６】
そして、風力発電システム１０１では、以上に示した特性関数に基づいて、以下に示すような各種制御目標が考えられる。制御目標の一つは、風速が定格風速以下であれば、発電機１２０の出力電力を、定格出力を超えない範囲で増大させることである。また、制御目標の一つは、風速が定格風速以下であれば、発電機１２０の出力電力を、予定出力電力を超えるようにすることである。また、制御目標の一つは、風速が定格風速を超えて、かつ、カットアウト風速以下であれば、発電機１２０の出力電力を、定格出力と一致するように保つことである。また、制御目標の一つは、風速がカットアウト風速を超えれば、ブレーキにより風車１１０の回転を抑制し、発電を行わないようにすることである。
【００１７】
このため、風力発電システム１０１に対して、各種制御目標に沿った適切な制御を行うことが望まれる。制御は、例えば、風車１１０のピッチ角、および、風車１１０を用いる発電機１２０の負荷トルク値の少なくともいずれかの制御である。しかしながら、風力発電システム１０１では、風速などの環境の変化、および、風車１１０や発電機１２０の経年劣化や個体差による特性関数の誤差などを、予め特定することが難しい。結果として、風力発電システム１０１を、どのように制御すればよいかを予め決定することが難しい。
【００１８】
これに対し、強化学習を用いて、環境の変化および特性関数の誤差などを考慮して、風力発電システム１０１に対して、各種制御目標に沿った適切な制御を行うことを可能にしようとすることが考えられる。例えば、以下に示すような第１の技術、第２の技術、および、第３の技術が考えられる。
【００１９】
第１の技術は、強化学習において、発電機１２０の出力電力が増加すれば＋１を報酬とし、発電機１２０の出力電力が減少すれば−１を報酬として、風力発電システム１０１を制御する方策を生成する技術である。学習は、何らかの行動を試行し、試行した行動について行動価値を推定することである。行動価値は、報酬の増加にどの程度寄与するかを示す値である。しかしながら、第１の技術では、発電機１２０の出力電力が定格出力を超えやすく、発電機１２０の動作が不安定になりやすい。第１の技術については、例えば、下記参考文献１を参照することができる。
【００２０】
参考文献１：Ｃ  Ｗｅｉ，  Ｚ  Ｚｈａｎｇ，  Ｗ  Ｑｉａｏ，  Ｌ  Ｑｕ，  “Ｒｅｉｎｆｏｒｃｅｍｅｎｔ−Ｌｅａｒｎｉｎｇ−Ｂａｓｅｄ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ｍａｘｉｍｕｍ  Ｐｏｗｅｒ  Ｐｏｉｎｔ  Ｔｒａｃｋｉｎｇ  Ｃｏｎｔｒｏｌ  ｆｏｒ  Ｗｉｎｄ  Ｅｎｅｒｇｙ  Ｃｏｎｖｅｒｓｉｏｎ  Ｓｙｓｔｅｍｓ”，  ＩＥＥＥ  Ｔｒａｎｓ．  Ｉｎｄ．  Ｅｌｅｃｔｒｏｎ．，  ６２  （１０），  ６３６０−６３７０，  ２０１５．
【００２１】
第２の技術は、強化学習において、予定出力電力−出力電力の絶対値を負の報酬として、風力発電システム１０１を制御する方策を生成する技術である。しかしながら、第２の技術では、風速が定格風速以下で、発電機１２０の出力電力が、予定出力電力を下回らず、かつ、超えないようにするため、発電機１２０の発電効率の悪化を招きやすい。第２の技術については、例えば、下記参考文献２を参照することができる。
【００２２】
参考文献２：Ｈ．  Ｂｅｖｒａｎｉ，  Ｆ．  Ｄａｎｅｓｈｆａｒ，  ａｎｄ  Ｒ．Ｐ．  Ｄａｎｅｓｈｍａｎｄ，  “Ｉｎｔｅｌｌｉｇｅｎｔ  ｐｏｗｅｒ  ｓｙｓｔｅｍ  ｆｒｅｑｕｅｎｃｙ  ｒｅｇｕｌａｔｉｏｎｓ  ｃｏｎｃｅｒｎｉｎｇ  ｔｈｅ  ｉｎｔｅｇｒａｔｉｏｎ  ｏｆ  ｗｉｎｄ  ｐｏｗｅｒ  ｕｎｉｔｓ”，  Ｗｉｎｄ  Ｐｏｗｅｒ  Ｓｙｓｔｅｍｓ，  ｐｐ．  ４０７−４３７，  ２０１０，  Ｓｐｒｉｎｇｅｒ．
【００２３】
第３の技術は、第１の技術と第２の技術を組み合わせた技術である。第３の技術は、風速が定格風速を超えない範囲では、発電機１２０の出力電力が増加すれば＋１を報酬とし、発電機１２０の出力電力が減少すれば−１を報酬とする。一方で、第３の技術は、風速が定格風速を超える範囲では、予定出力電力−出力電力の絶対値を負の報酬とする。しかしながら、第３の技術では、風速が定格風速を超える範囲と超えない範囲とで報酬の評価尺度が異なるため、学習効率の低下を招き、適切な制御を行うまでにかかる時間の増大化を招く。
【００２４】
そこで、本実施の形態では、強化学習において、観測した出力電力が定格出力を超えるか否かに応じて異なる算出方法で算出した報酬を用いて学習を行うようにする強化学習方法について説明する。かかる強化学習方法によれば、観測した出力電力が定格出力を超える場合と超えない場合とで報酬の評価尺度を合わせることができ、学習効率を向上することができ、風力発電システム１０１に対して適切な制御を行いやすくすることができる。
【００２５】
図１において、強化学習装置１００は、強化学習を実施する。強化学習は、複数の学習を含み、複数の学習により推定された行動価値に基づく方策を生成する。学習は、何らかの行動を試行し、試行した行動について行動価値を推定することである。行動は、風車１１０の受風性能に関する指令値、および、発電機１２０の負荷トルク値の少なくともいずれかである。受風性能に関する指令値は、例えば、ピッチ角である。
【００２６】
強化学習装置１００は、例えば、風車１１０を用いた発電機１２０からの出力電力、および、風速を観測する。ここで、強化学習装置１００は、例えば、観測した出力電力が定格出力電力を超える場合は、定格出力電力から観測した出力電力を減算した差分に対応する報酬を用いて第１の学習を行う。一方で、強化学習装置１００は、例えば、観測した出力電力が定格出力電力を超えない場合は、観測した出力電力から、特性関数に基づいて、観測した風速から特定される予定出力電力を減算した差分に対応する報酬を用いて第２の学習を行う。
【００２７】
これにより、強化学習装置１００は、風力発電システム１０１に対して適切な制御を行うことができる。強化学習装置１００は、例えば、発電機１２０の出力電力が定格出力を超えず、発電機１２０の動作が不安定にならないように、風力発電システム１０１を制御しやすくすることができる。強化学習装置１００は、具体的には、強化学習により、発電機１２０の出力電力が定格出力を超えないように、風車１１０のピッチ角および発電機１２０の負荷トルク値を決定するための方策を生成することができる。
【００２８】
強化学習装置１００は、例えば、風速が定格風速以下で、発電機１２０の出力電力が、定格出力を超えず、かつ、予定出力電力を超えるように、風力発電システム１０１を制御しやすくすることができる。強化学習装置１００は、具体的には、強化学習により、発電機１２０の出力電力が予定出力電力を超えるように、風車１１０のピッチ角および発電機１２０の負荷トルク値を決定するための方策を生成することができる。
【００２９】
強化学習装置１００は、例えば、風速が定格風速を超える範囲と超えない範囲とで、報酬の評価尺度を統一することができ、学習効率の低下を抑制することができる。このため、強化学習装置１００は、強化学習により、発電機１２０の出力電力が予定出力電力を超え、かつ、定格出力を超えないようにする方策を生成する際にかかる所要時間の低減化を図ることができる。
【００３０】
（風力発電システム１０１の一例）
次に、図２を用いて、図１に示した強化学習装置１００を適用した、風力発電システム１０１の一例について説明する。
【００３１】
図２は、風力発電システム１０１の一例を示す説明図である。図２において、風力発電システム１０１は、強化学習装置１００と風車１１０と発電機１２０とを含む。
【００３２】
風力発電システム１０１において、強化学習装置１００と風車１１０と発電機１２０とは、直接接続される。強化学習装置１００と風車１１０と発電機１２０とは、有線または無線のネットワークを介して接続されてもよい。ネットワークは、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００３３】
風車１１０は、風を受け、風力を風車トルクに変換し、発電機１２０の軸に伝達する物体である。風車１１０は、風車１１０の回転を停止するためのブレーキが設けられる。風車１１０は、受風性能に関する指令値を受信し、受風性能を制御する機能を有する。受風性能を制御する機能は、例えば、風車１１０のピッチ角を制御する機能である。受風性能に関する指令値は、風車１１０のピッチ角である。風車１１０は、風車１１０の近傍での風速、風車１１０の風車トルク値、および、風車１１０の回転速度などを計測するための計測機が設けられる。風車１１０に設けられた計測機は、例えば、センサ装置を有する。センサ装置は、加速度センサ、地磁気センサ、光センサ、振動センサなどの少なくともいずれかを有してもよい。
【００３４】
発電機１２０は、風車１１０を用いて発電を行う機械である。発電機１２０は、例えば、風車１１０から軸に伝達された風車トルクを用いて発電を行う。発電機１２０は、軸に伝達された風車トルクの逆方向に、負荷トルクをかけることができる。発電機１２０は、発電機１２０の負荷トルク値および発電機１２０の出力電力などを計測するための計測機が設けられる。発電機１２０に設けられた計測機は、例えば、センサ装置を有する。センサ装置は、加速度センサ、地磁気センサ、光センサ、振動センサ、電力センサ、電圧センサ、電流センサなどの少なくともいずれかを有してもよい。
【００３５】
強化学習装置１００は、風力発電システム１０１を制御する。強化学習装置１００は、例えば、風車１１０に設けられた計測機から、風車１１０の近傍での風速、風車１１０の風車トルク値、および、風車１１０の回転速度などの計測値を取得する。強化学習装置１００は、例えば、発電機１２０に設けられた計測機から、発電機１２０の負荷トルク値および発電機１２０の出力電力などの計測値を取得する。強化学習装置１００は、例えば、風車１１０の受風性能に関する指令値、および、発電機１２０の負荷トルク値を制御することにより、風車１１０の回転速度を制御する。強化学習装置１００は、例えば、風車１１０に設けられたブレーキを制御し、風車１１０の回転を制御する。強化学習装置１００は、例えば、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、マイコン、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）などである。
【００３６】
ここでは、強化学習装置１００が、風車１１０のピッチ角および発電機１２０の負荷トルク値を制御する場合について説明したが、これに限らない。例えば、風車１１０のピッチ角を制御する装置と、発電機１２０の負荷トルク値を制御する装置とが異なる装置であり、それぞれの装置が協働する場合があってもよい。
【００３７】
ここでは、風車１１０に設けられた計測機と、発電機１２０に設けられた計測機とが別の装置である場合について説明したが、これに限らない。例えば、風車１１０に設けられた計測機と、発電機１２０に設けられた計測機とが同じ装置である場合があってもよい。
【００３８】
（強化学習装置１００のハードウェア構成例）
次に、図３を用いて、強化学習装置１００のハードウェア構成例について説明する。
【００３９】
図３は、強化学習装置１００のハードウェア構成例を示すブロック図である。図３において、強化学習装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、記録媒体Ｉ／Ｆ３０４と、記録媒体３０５とを有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４０】
ここで、ＣＰＵ３０１は、強化学習装置１００の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４１】
通信Ｉ／Ｆ３０３は、通信回線を通じてネットワークに接続され、ネットワークを介して他のコンピュータに接続される。通信Ｉ／Ｆ３０３は、例えば、ネットワークを介して風車１１０や発電機１２０などに接続される。そして、通信Ｉ／Ｆ３０３は、ネットワークと内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。通信Ｉ／Ｆ３０３は、例えば、モデムやＬＡＮアダプタなどにより実現される。
【００４２】
記録媒体Ｉ／Ｆ３０４は、ＣＰＵ３０１の制御にしたがって記録媒体３０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ３０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体３０５は、記録媒体Ｉ／Ｆ３０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体３０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体３０５は、強化学習装置１００から着脱可能であってもよい。
【００４３】
強化学習装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、強化学習装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を複数有していてもよい。また、強化学習装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を有していなくてもよい。
【００４４】
（強化学習装置１００の機能的構成例）
次に、図４を用いて、強化学習装置１００の機能的構成例について説明する。
【００４５】
図４は、強化学習装置１００の機能的構成例を示すブロック図である。強化学習装置１００は、記憶部４００と、取得部４０１と、エージェント４０２と、出力部４０３とを含む。
【００４６】
記憶部４００は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域によって実現される。以下では、記憶部４００が、強化学習装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部４００が、強化学習装置１００とは異なる装置に含まれ、記憶部４００の記憶内容が強化学習装置１００から参照可能である場合があってもよい。
【００４７】
取得部４０１〜出力部４０３は、制御部の一例として機能する。取得部４０１〜出力部４０３は、具体的には、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、通信Ｉ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶される。
【００４８】
記憶部４００は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部４００は、例えば、風速、風車１１０の受風性能に関する指令値、風車１１０の風車トルク値、風車１１０の回転速度、および、発電機１２０の出力電力などを記憶してもよい。風車１１０は、風車１１０の受風性能を制御する機能を有する。風車１１０は、例えば、風車１１０の羽の角度であるピッチ角を制御する機能を有する。風車１１０は、例えば、風車１１０の羽に設けられた孔の大きさを調整する機能を有する。受風性能に関する指令値は、例えば、風車１１０のピッチ角である。受風性能に関する指令値は、例えば、風車１１０の羽に設けられた孔の大きさであってもよい。記憶部４００は、例えば、風速と、発電機１２０の予定出力電力との関係を表す特性関数を記憶してもよい。
【００４９】
記憶部４００は、例えば、強化学習アルゴリズム、および、行動選択アルゴリズムによる処理手順を記憶する。強化学習アルゴリズムは、例えば、Ｑ学習アルゴリズムである。強化学習アルゴリズムは、Ｑ学習アルゴリズム以外であってもよい。行動選択アルゴリズムは、例えば、ε−ｇｒｅｅｄｙアルゴリズムである。記憶部４００は、例えば、強化学習により学習された方策、または、方策により決定された行動を記憶してもよい。方策は、例えば、観測値が入力されると行動を出力することができる制御モデルである。方策は、例えば、行動価値を記憶するテーブルを有し、行動価値が高い行動を決定する。方策は、例えば、数式モデルや決定木モデルであってもよい。
【００５０】
取得部４０１は、各機能部の処理に用いられる記憶部４００から取得し、各機能部に出力する。取得部４０１は、例えば、各機能部の処理に用いられる各種情報を記憶部４００から取得し、各機能部に出力してもよい。取得部４０１は、例えば、各機能部の処理に用いられる各種情報を、強化学習装置１００とは異なる装置から取得し、各機能部に出力してもよい。
【００５１】
取得部４０１は、例えば、風速、風車１１０の風車トルク値、風車１１０の回転速度、発電機１２０の負荷トルク値、および、発電機１２０の出力電力などを取得してもよい。取得部４０１は、具体的には、風車１１０に設けられた計測機から、風車１１０の近傍での風速、風車１１０の風車トルク値、および、風車１１０の回転速度などの計測値を取得してもよい。取得部４０１は、具体的には、発電機１２０に設けられた計測機から、発電機１２０の負荷トルク値および発電機１２０の出力電力などの計測値を取得してもよい。
【００５２】
取得部４０１は、例えば、特性関数を表す情報を取得してもよい。特性関数を表す情報は、例えば、特性関数の曲線を表す複数点の座標である。特性関数を表す情報は、例えば、特性関数を表す数式である。取得部４０１は、特性関数に関する閾値を取得し、特性関数を表す情報を生成してもよい。特性関数に関する閾値は、少なくとも定格風速と定格出力とである。特性関数に関する閾値は、さらに、カットイン風速とカットアウト風速とであってもよい。
【００５３】
取得部４０１は、例えば、定格風速、定格出力、カットイン風速、および、カットアウト風速などを取得し、特性関数を表す情報を生成する。取得部４０１は、具体的には、風速が、カットイン風速を超え、かつ、定格風速以下になる領域における、風速と予定出力電力との関係を３次曲線で近似し、特性関数の曲線を表す点の座標を生成する。取得部４０１は、具体的には、風速が定格風速を超える領域における、風速と予定出力電力との関係を、予定出力電力が定格出力になり一定である関係として、特性関数の曲線を表す点の座標を生成する。
【００５４】
取得部４０１は、取得した出力電力、および、取得した風速に基づいて、特性関数を更新してもよい。取得部４０１は、例えば、特性関数の曲線を表す複数点の座標を、取得した出力電力、および、取得した風速に基づいて更新する。取得部４０１は、具体的には、取得した出力電力および風速を、記憶部４００に蓄積しておく。取得部４０１は、取得した風速が定格風速を超えない場合に、取得した風速に、所定期間に取得した出力電力の統計値および定格出力のうち小さい方の電力を対応付けて示すように、特性関数を更新する。統計値には、例えば、記憶部４００に蓄積した出力電力および風速から、風速が同じレコードを選択し、選択したレコードの出力電力の平均値や中央値などを取って用いることができる。
【００５５】
エージェント４０２は、風速、および、風車１１０の回転速度を観測値とし、風車１１０の受風性能に関する指令値、および、発電機１２０の負荷トルク値を行動とする強化学習を実施し、方策を生成する。強化学習は、複数の学習を含み、複数の学習により推定された行動価値に基づいて方策を生成する。
【００５６】
学習は、何らかの行動を試行し、試行した行動について行動価値を推定することである。行動は、風車１１０の受風性能に関する指令値、および、発電機１２０の負荷トルク値の少なくともいずれかである。受風性能に関する指令値は、例えば、ピッチ角である。行動の試行は、風車１１０の受風性能に関する指令値を風車１１０に出力し、および、発電機１２０の負荷トルク値を発電機１２０に出力することである。行動価値の推定は、発電機１２０の出力電力に基づいて算出される報酬に基づいて行われる。
【００５７】
エージェント４０２は、行動選択アルゴリズムにしたがって行動を試行し、強化学習アルゴリズムにしたがって行動価値を推定する。エージェント４０２は、現状最適と判断される行動、または、ランダムに選択される行動を試行する学習を行い、発電機１２０の出力電力に基づく報酬から行動価値を推定する。現状最適と判断される行動は、例えば、学習中の方策により最適と判断される行動である。エージェント４０２は、例えば、以下に示すような学習を行う。
【００５８】
エージェント４０２は、例えば、取得した出力電力が定格出力を超える場合は、定格出力から取得した出力電力を減算した差分に対応する報酬を用いて第１の学習を行う。これにより、エージェント４０２は、発電機１２０の出力電力が定格出力を超えないようにする行動の行動価値が高いと推定することができる。このため、エージェント４０２は、発電機１２０の出力電力が定格出力を超えないように行動を決定することができる方策を効率よく生成することができ、発電機１２０の安定性を確保しやすくすることができる。
【００５９】
エージェント４０２は、例えば、第１の学習においては、定格出力から取得した出力電力を減算した差分に、重み関数が示す値を乗算した結果に対応する報酬を用いて学習を行ってもよい。これにより、エージェント４０２は、重み関数により、学習時に発電機１２０を不安定にする行動が試行されにくくすることができる。
【００６０】
エージェント４０２は、具体的には、重み関数として、取得した出力電力が定格出力に近いほど、値が小さくなる関数を用いる。これにより、エージェント４０２は、重み関数により、出力電力が定格出力に近くなる行動が試行されやすくし、学習時に発電機１２０を不安定にする行動が試行されにくくすることができる。
【００６１】
エージェント４０２は、具体的には、重み関数として、取得した出力電力が定格出力より一定以上大きい場合、取得した出力電力が定格出力より大きいほど、値が大きくなる関数を用いる。これにより、エージェント４０２は、重み関数により、出力電力が定格出力より大きくなる行動が試行されにくくし、学習時に発電機１２０を不安定にする行動が試行されにくくすることができる。
【００６２】
エージェント４０２は、例えば、取得した出力電力が定格出力を超えない場合は、取得した出力電力から、風速と出力電力との関係を示す特性関数に基づいて、取得した風速から特定される予定出力電力を減算した差分に対応する報酬を用いて第２の学習を行う。これにより、エージェント４０２は、発電機１２０の出力電力が予定出力電力を超えるようにする行動の行動価値が高いと推定することができる。このため、エージェント４０２は、発電機１２０の出力電力が予定出力電力を超えるように行動を決定することができる方策を効率よく生成することができ、発電機１２０の発電効率の低下を抑制しやすくすることができる。
【００６３】
エージェント４０２は、例えば、第２の学習においては、取得した出力電力から、特性関数に基づいて、取得した風速から特定される出力電力を減算した差分に、重み関数が示す値を乗算した結果に対応する報酬を用いて学習を行ってもよい。これにより、エージェント４０２は、重み関数により、学習効率の向上を図ることができ、または、学習時に発電機１２０を不安定にする行動が試行されにくくすることができる。
【００６４】
エージェント４０２は、具体的には、重み関数として、取得した出力電力が定格出力に近いほど、値が小さくなる関数を用いる。これにより、エージェント４０２は、重み関数により、出力電力が定格出力に近くなる行動が試行されやすくし、学習時に発電機１２０を不安定にする行動が試行されにくくすることができる。
【００６５】
エージェント４０２は、具体的には、重み関数として、取得した出力電力が定格出力より一定以上大きい場合、取得した出力電力が定格出力より大きいほど、値が大きくなる関数を用いる。これにより、エージェント４０２は、重み関数により、出力電力が定格出力より大きくなる行動が試行されにくくし、学習時に発電機１２０を不安定にする行動が試行されにくくすることができる。
【００６６】
出力部４０３は、各機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、通信Ｉ／Ｆ３０３による外部装置への送信、または、メモリ３０２や記録媒体３０５などの記憶領域への記憶である。これにより、出力部４０３は、各機能部の処理結果を利用者に通知可能にし、強化学習装置１００の管理や運用、例えば、強化学習装置１００の設定値の更新などを支援することができ、強化学習装置１００の利便性の向上を図ることができる。
【００６７】
（強化学習装置１００を含む風力発電システム１０１の具体的な機能的構成例）
次に、図５を用いて、強化学習装置１００を含む風力発電システム１０１の具体的な機能的構成例について説明する。
【００６８】
図５は、風力発電システム１０１の具体的な機能的構成例を示すブロック図である。風力発電システム１０１は、風車１１０と、発電機１２０と、風速計５０１と、強化学習装置１００とを含む。強化学習装置１００は、状態取得部５０２と、報酬計算部５０３と、制御指令部５０４とを含む。強化学習装置１００は、運動特性ＤＢ５１０を有する。
【００６９】
風車１１０は、風を受け、風力を風車トルクに変換し、発電機１２０の軸に回転エネルギーとして伝達する。風車１１０は、風速の増加に伴い、ブレーキを制御して、風車１１０の回転を停止させるか否かを決定する。風車１１０は、計測機が設けられ、計測機により、風車１１０の風車トルク値、および、風車１１０の回転速度などを計測し、強化学習装置１００に送信する。
【００７０】
発電機１２０は、風車１１０から回転エネルギーとして軸に伝達された風車トルクを用いて発電を行い、電力消費先に供給する。発電機１２０は、計測機が設けられ、計測機により、発電機１２０の負荷トルク値、および、発電機１２０の出力電力などを計測し、強化学習装置１００に送信する。風速計５０１は、風速を計測し、状態取得部５０２に送信する。
【００７１】
状態取得部５０２は、一定時間ごとに、風速、風車１１０の風車トルク値、風車１１０の回転速度、発電機１２０の負荷トルク値、発電機１２０の出力電力などの状態値を取得し、報酬計算部５０３および制御指令部５０４に出力する。報酬計算部５０３は、発電機１２０の出力電力に基づいて報酬を算出し、制御指令部５０４に出力する。報酬を算出する一例は、図８を用いて後述する。報酬計算部５０３は、運動特性ＤＢ５１０に、風速と、発電機１２０の出力電力とを対応付けて蓄積する。報酬計算部５０３は、運動特性ＤＢ５１０に基づいて、特性関数を更新する。
【００７２】
制御指令部５０４は、強化学習を実施する。制御指令部５０４は、例えば、状態値および報酬値に基づいて方策を生成する。制御指令部５０４は、何らかの状態に対し、現状最適と判断される行動、または、ランダムに選択される行動を試行し、行動を試行した一定時間後の報酬に基づいて、状態に対する行動の行動価値を推定し、方策を生成する。行動は、風車１１０の羽のピッチ角、および、発電機１２０の負荷トルク値や回転速度などである。
【００７３】
（閾値テーブル６００の記憶内容）
次に、図６を用いて、強化学習装置１００に入力される閾値テーブル６００の記憶内容の一例について説明する。閾値テーブル６００は、例えば、図３に示した強化学習装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００７４】
図６は、閾値テーブル６００の記憶内容の一例を示す説明図である。図６に示すように、閾値テーブル６００は、カットイン風速と、定格風速と、カットアウト風速と、定格出力とのフィールドを有する。閾値テーブル６００は、例えば、発電機１２０の製造者によって決定される。
【００７５】
カットイン風速のフィールドには、風車１１０が回転し始め、発電機１２０が発電し始める風速であるカットイン風速が設定される。定格風速のフィールドには、発電機１２０の予定出力電力が定格出力になる風速である定格風速が設定される。カットアウト風速のフィールドには、発電機１２０が発電を停止する風速であるカットアウト風速が設定される。定格出力のフィールドには、発電機１２０が安定して発電可能な出力電力である定格出力が設定される。
【００７６】
（特性関数テーブル７００を生成する一例）
次に、図７を用いて、強化学習装置１００が閾値テーブル６００に基づいて特性関数テーブル７００を生成する一例について説明する。特性関数テーブル７００は、例えば、図３に示した強化学習装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００７７】
図７は、特性関数テーブル７００を生成する一例を示す説明図である。図７に示すように、特性関数テーブル７００は、風速と出力とのフィールドを有する。特性関数テーブル７００は、風速ごとに各フィールドに情報を設定することにより、図７のグラフ７１０に示す特性関数上の座標情報がレコードとして記憶される。
【００７８】
風速のフィールドには、図７のグラフ７１０に示す特性関数上のいずれかの座標に対応する風速が設定される。風速の単位は、例えば、ｍ／ｓである。出力のフィールドには、グラフ７１０に示す特性関数上のいずれかの座標に対応する予定出力電力が設定される。予定出力電力の単位は、例えば、ｋＷである。
【００７９】
強化学習装置１００は、例えば、閾値テーブル６００に基づいて、カットイン風速以下の風速に、予定出力電力０を対応付けて表す座標情報を示すレコードを、特性関数テーブル７００に記憶する。強化学習装置１００は、例えば、カットイン風速を超えて定格風速以下である風速と、予定出力電力との関係を、３次曲線で近似し、座標情報を示すレコードを、特性関数テーブル７００に記憶する。強化学習装置１００は、具体的には、Ｐ＝０．２９６Ｖ＾３で、風速と予定出力電力との関係を近似する。ここで、Ｐは、予定出力電力である。Ｖは、風速である。強化学習装置１００は、定格風速を超えてカットアウト風速以下である風速に、定格出力を対応付けて表す座標情報を示すレコードを、特性関数テーブル７００に記憶する。これにより、強化学習装置１００は、閾値テーブル６００に基づいて、図７に示す特性関数テーブル７００を生成することができる。
【００８０】
ここでは、強化学習装置１００が、閾値テーブル６００に基づいて特性関数テーブル７００を生成する場合について説明したが、これに限らない。例えば、強化学習装置１００の利用者が、閾値テーブル６００に基づいて特性関数テーブル７００を生成し、強化学習装置１００に入力する場合があってもよい。
【００８１】
（報酬を算出する方針の一例）
次に、図８を用いて、生成または入力された特性関数テーブル７００が示す特性関数８１１に基づいて、報酬を算出する方針の一例について説明する。
【００８２】
図８は、報酬を算出する方針の一例を示す説明図である。現在の風速と出力電力との組み合わせが、特性関数８１１と定格出力の直線８１２と定格風速の直線８１３とで分割される図８のグラフ８１０の領域のいずれに存在するかに基づいて、報酬を算出する方針が異なる。具体的には、図８のグラフ８１０は、領域ａと領域ｂと領域ｃと領域ｄと領域ｅとに分割される。
【００８３】
領域ａは、風速が定格風速以下、かつ、出力電力が特性関数８１１の予定出力電力以下になる領域である。領域ｂは、風速が定格風速以下、かつ、出力電力が特性関数８１１の予定出力電力を超えて定格出力以下になる領域である。領域ｃは、風速が定格風速以下、かつ、出力電力が定格出力を超える領域である。領域ｄは、風速が定格風速を超えて、かつ、出力電力が定格出力以下になる領域である。領域ｅは、風速が定格風速を超えて、かつ、出力電力が定格出力を超える領域である。
【００８４】
ここで、現在の風速と出力電力との組み合わせが領域ａに存在する場合、出力電力を向上させ、予定出力電力を超えさせることが好ましい。このため、強化学習装置１００は、出力電力が、予定出力電力に不足するほど、負の報酬の絶対値が大きくなるようにする方針を用いることが好ましい。また、現在の風速と出力電力との組み合わせが領域ｂに存在する場合、定格出力を超えない範囲で、出力電力を向上させることが好ましい。このため、強化学習装置１００は、出力電力が、予定出力電力より大きいほど、正の報酬が大きくなるようにする方針を用いることが好ましい。また、現在の風速と出力電力との組み合わせが領域ｃに存在する場合、出力電力を定格出力以下に抑制することが好ましい。このため、強化学習装置１００は、出力電力が、定格出力より大きいほど、負の報酬の絶対値が大きくなるようにする方針を用いることが好ましい。
【００８５】
また、現在の風速と出力電力との組み合わせが領域ｄに存在する場合、出力電力を向上させ、定格出力に近づけることが好ましい。このため、強化学習装置１００は、出力電力が、定格出力に不足するほど、負の報酬の絶対値が大きくなるようにする方針を用いることが好ましい。また、現在の風速と出力電力との組み合わせが領域ｅに存在する場合、出力電力を定格出力以下に抑制することが好ましい。このため、強化学習装置１００は、出力電力が、定格出力より大きいほど、負の報酬の絶対値が大きくなるようにする方針を用いることが好ましい。強化学習装置１００は、これらの方針にしたがって報酬を算出する。強化学習装置１００は、例えば、下記式（１）および下記式（２）に示すような報酬関数を用いて報酬を算出する。
【００８６】
報酬＝定格出力−出力電力，  出力電力＞定格出力                  ・・・（１）
【００８７】
報酬＝出力電力−特性関数が示す予定出力電力，  出力電力≦定格出力・・・（２）
【００８８】
これにより、強化学習装置１００は、領域ａと領域ｂと領域ｃと領域ｄと領域ｅとについて、報酬の評価尺度を合わせることができる。強化学習装置１００は、例えば、上記式（１）および上記式（２）によれば、いずれの領域についても、現在の出力電力に対してどの程度調整すればよいかを示すように報酬を算出することができ、統一的な評価尺度で報酬を算出することができる。
【００８９】
（報酬算出手法を比較した一例）
次に、図９を用いて、かかる今回の報酬算出手法について、上述した第１の技術と、第２の技術と、第３の技術と比較した結果について説明する。
【００９０】
図９は、報酬算出手法を比較した一例を示す説明図である。図９の表９００は、上述した第１の技術と第２の技術と第３の技術と強化学習装置１００の今回の報酬算出手法とを比較した結果を示す。図９の表９００は、風速と出力電力との組み合わせに応じて場合分けし、場合ごとに第１の技術と第２の技術と第３の技術と今回の報酬算出手法とに問題が生じるか否かを示す。
【００９１】
図９の表９００は、例えば、風速が定格風速を超えない部分負荷の領域と、定格風速を超える定格出力の領域とで場合分けする。さらに、図９の表９００は、出力電力が予定出力電力を超える領域と超えない領域と、または、出力電力が定格出力を超えない領域と超える領域とで場合分けする。換言すれば、図９の表９００は、領域ａと領域ｂと領域ｃと領域ｄと領域ｅとで場合分けする。
【００９２】
第１の技術では、現在の風速と出力電力との組み合わせが領域ｃまたは領域ｅに存在する場合、出力電力が定格出力を超えることが好ましいという報酬を算出してしまう。このため、表９００に示すように、第１の技術では、現在の風速と出力電力との組み合わせが領域ｃまたは領域ｅに存在する場合、出力電力が定格出力を超えやすく、発電機１２０の動作が不安定になりやすいという問題がある。第２の技術では、現在の風速と出力電力との組み合わせが領域ｂに存在する場合、出力電力が予定出力電力以下であることが好ましいという報酬を算出してしまう。このため、表９００に示すように、第２の技術では、現在の風速と出力電力との組み合わせが領域ｂに存在する場合、発電機１２０の発電効率の悪化を招きやすいという問題がある。
【００９３】
第３の技術では、風速が定格風速を超えない部分負荷の領域と、風速が定格風速を超える定格出力の領域とで、報酬の評価尺度が異なるため、学習効率の低下を招き、適切な制御を行うまでにかかる時間の増大化を招く。これらに対し、今回の報酬算出手法では、統一的な評価尺度で報酬を算出することができ、学習効率の低下を抑制することができる。また、今回の報酬算出手法では、出力電力が定格出力を超えず、発電機１２０の動作が不安定にならないようにすることができる。また、今回の報酬算出手法では、出力電力が、定格出力を超えず、かつ、予定出力電力を超えるように、発電機１２０の発電効率の向上を図ることができる。
【００９４】
（制御結果ごとの累計報酬の一例）
次に、図１０を用いて、今回の報酬算出手法によって算出される、制御結果ごとの累計報酬の一例について説明し、学習効率の低下を抑制することについて説明する。
【００９５】
図１０は、制御結果ごとの累計報酬の一例を示す説明図である。強化学習では、強化学習装置１００は、様々な行動を試行して風力発電システム１０１を制御した、様々な制御結果について得られた累積報酬に基づいて、最適と判断される方策を生成することになる。
【００９６】
図１０には、時刻ごとに試行した様々な行動に応じた出力電力の変化を表す制御結果１０１０を示す。制御結果１０１０のうち、領域１０１１は、風速が定格風速を超えない部分負荷の領域にあった時刻に対応し、領域１０１２は、風速が定格風速を超える定格出力の領域にあった時刻に対応する。ここで、領域１０１１では出力電力が予定出力電力を超えやすい傾向があり、領域１０１２では出力電力が定格出力を超えてしまう傾向がある。定格出力は、１０００ｋＷである。強化学習装置１００は、領域１０１２で出力電力が定格出力を超えたため、領域１０１２についての累積報酬として、比較的絶対値が大きい負の値を算出することになる。強化学習装置１００は、例えば、全体の累積報酬として「−３９７４」を算出する。
【００９７】
図１０には、時刻ごとに試行した様々な行動に応じた出力電力の変化を表す制御結果１０２０を示す。制御結果１０２０のうち、領域１０２１は、風速が定格風速を超えない部分負荷の領域にあった時刻に対応し、領域１０２２は、風速が定格風速を超える定格出力の領域にあった時刻に対応する。ここで、領域１０２１では出力電力が予定出力電力を超えやすい傾向があり、領域１０２２では出力電力が定格出力を超えにくい傾向がある。強化学習装置１００は、出力電力が予定出力電力を超えやすく、出力電力が定格出力を超えにくいため、全体の累積報酬として、絶対値が比較的小さい負の値を算出することになる。強化学習装置１００は、例えば、全体の累積報酬として「−２８６５」を算出する。
【００９８】
図１０には、時刻ごとに試行した様々な行動に応じた出力電力の変化を表す制御結果１０３０を示す。制御結果１０３０のうち、領域１０３１は、風速が定格風速を超えない部分負荷の領域にあった時刻に対応し、領域１０３２は、風速が定格風速を超える定格出力の領域にあった時刻に対応する。ここで、領域１０３１では出力電力が予定出力電力を超えにくい傾向があり、領域１０３２では出力電力が定格出力を超えにくい傾向がある。強化学習装置１００は、領域１０３１で出力電力が予定出力電力を超えにくいため、領域１０３１についての累積報酬として、比較的絶対値が大きい負の値を算出することになる。強化学習装置１００は、例えば、全体の累積報酬として「−３５１６」を算出する。
【００９９】
このように、強化学習装置１００は、出力電力が予定出力電力を超えやすい傾向があり、かつ、出力電力が定格出力を超えにくい傾向がある制御が行われた場合に、適切な制御が行われたと判断することができる。このため、強化学習装置１００は、適切な制御を行うことができる方策を生成しやすくすることができる。
【０１００】
これに対し、第３の技術では、出力電力が予定出力電力を超えないことによる報酬の減少量が、出力電力が定格出力を超えることによる報酬の減少量に比べて小さくなる。このため、第３の技術では、制御結果１０２０よりも制御結果１０３０の方が適切な制御であると判断してしまう確率が比較的大きく、適切な制御を行うことができる方策を生成しにくくなる。
【０１０１】
（重み関数を利用する一例）
次に、図１１および図１２を用いて、強化学習装置１００が報酬を算出する際に重み関数を利用する一例について説明する。
【０１０２】
図１１および図１２は、重み関数を利用する一例を示す説明図である。まず、図１１の説明に移行する。
【０１０３】
図１１において、強化学習装置１００は、強化学習における学習回数が比較的少ない初期段階では、定格出力の付近で出力電力を過剰に増加または減少させる行動を試行してしまう可能性を考慮して、重み関数を利用する。定格出力の付近で出力電力を過剰に増加または減少させる行動を試行してしまう原因は、例えば、デジタル制御に関する制御の遅れ、または、低速域で運動特性関数が不正確なための報酬の誤りなどである。
【０１０４】
強化学習装置１００は、例えば、出力電力が定格出力に近いほど、報酬の絶対値が小さくなるように、重み関数を利用し、例えば、下記式（３）および下記式（４）に示すような報酬関数を用いて報酬を算出する。
【０１０５】
報酬＝重み関数＊（定格出力−出力電力），  出力電力＞定格出力                                                                                    ・・・（３）
【０１０６】
報酬＝重み関数＊（出力電力−特性関数が示す予定出力電力），  出力電力≦定格出力                                                                  ・・・（４）
【０１０７】
重み関数は、具体的には、下記式（５）または下記式（６）である。下記式（５）の重み関数は、例えば、グラフ１１１０に示すような関数である。下記式（６）の重み関数は、例えば、グラフ１１２０に示すような関数である。ここで、ΔＰは、出力電力と定格出力との差分である。εは、閾値である。
【０１０８】
ｗ（ΔＰ）＝ｍｉｎ｛１，（ΔＰ）＾２｝                          ・・・（５）
【０１０９】
ｗ（ΔＰ）＝ｍｉｎ｛１，ｍａｘ｛０，ΔＰ−ε｝｝                ・・・（６）
【０１１０】
これにより、強化学習装置１００は、初期段階で、定格出力の付近で出力電力を過剰に増加または減少させる行動を試行してしまう可能性を低減させ、風力発電システム１０１の安定化を図ることができる。次に、図１２の説明に移行する。
【０１１１】
図１２において、強化学習装置１００は、強化学習における学習回数が比較的少ない初期段階では、定格出力より出力電力を過剰に大きくし、発電機１２０にダメージを与えるような行動を試行してしまう可能性を考慮して、重み関数を利用する。
【０１１２】
強化学習装置１００は、例えば、出力電力が定格出力より大きいほど、負の報酬の絶対値が大きくなるように、重み関数を利用し、例えば、上記式（３）および上記式（４）と同様の報酬関数を用いて報酬を算出する。重み関数は、具体的には、下記式（７）または下記式（８）である。下記式（７）の重み関数は、例えば、グラフ１２００に示すような関数である。ここで、ΔＰは、出力電力と定格出力との差分である。εは、閾値である。
【０１１３】
ｗ（ΔＰ）＝ｍａｘ｛１，ｅ＾（ΔＰ＋ε）｝                      ・・・（７）
【０１１４】
ｗ（ΔＰ）＝ｍａｘ｛１，ΔＰ−ε＋１｝                          ・・・（８）
【０１１５】
これにより、強化学習装置１００は、初期段階で、定格出力より出力電力を過剰に大きくし、発電機１２０にダメージを与えるような行動を試行してしまう可能性を低減させ、風力発電システム１０１の安定化を図ることができる。
【０１１６】
（特性関数テーブル７００を更新する一例）
強化学習装置１００は、観測した風速および出力電力に基づいて、特性関数テーブル７００を更新してもよい。強化学習装置１００は、観測した風速および出力電力を対応付けて、運動特性ＤＢ５１０に蓄積する。
【０１１７】
強化学習装置１００は、直近で観測した風速が定格風速以下の場合、直近で観測した風速に、定格出力と直近の一定期間に観測した出力電力の平均値との小さい方の値を対応付けて、特性関数テーブル７００を更新する。一方で、強化学習装置１００は、直近で観測した風速が定格風速を超える場合、直近で観測した風速に、定格出力を対応付けて、特性関数テーブル７００を更新する。
【０１１８】
これにより、強化学習装置１００は、風車１１０や発電機１２０の経年劣化や個体差による特性関数の誤差などを補正することができる。このため、強化学習装置１００は、報酬を算出する精度の向上を図ることができる。
【０１１９】
以上により、強化学習装置１００は、出力電力を最大化する制御を行うための方策を生成するまでの所要時間の低減化を図ることができる。また、強化学習装置１００は、風車１１０や発電機１２０の経年劣化や個体差に依存する、風速による場合分けを用いずに報酬を算出することができ、風力発電システム１０１に適用しやすくすることができる。
【０１２０】
（報酬計算処理手順）
次に、図１３を用いて、強化学習装置１００が実行する、報酬計算処理手順の一例について説明する。報酬計算処理は、例えば、図３に示したＣＰＵ３０１と、メモリ３０２や記録媒体３０５などの記憶領域と、通信Ｉ／Ｆ３０３とによって実現される。
【０１２１】
図１３は、報酬計算処理手順の一例を示すフローチャートである。図１３において、強化学習装置１００は、風速と出力電力値とを取得する（ステップＳ１３０１）。次に、強化学習装置１００は、運動特性ＤＢ５１０を更新する（ステップＳ１３０２）。そして、強化学習装置１００は、特性関数を更新する（ステップＳ１３０３）。
【０１２２】
次に、強化学習装置１００は、出力電力値が定格出力値よりも大きいか否かを判定する（ステップＳ１３０４）。ここで、出力電力値が定格出力値よりも大きい場合（ステップＳ１３０４：Ｙｅｓ）、強化学習装置１００は、ステップＳ１３０５の処理に移行する。一方で、出力電力値が定格出力値以下である場合（ステップＳ１３０４：Ｎｏ）、強化学習装置１００は、ステップＳ１３０６の処理に移行する。
【０１２３】
ステップＳ１３０５では、強化学習装置１００は、報酬＝（取得した出力電力値）−（定格出力値）を算出する（ステップＳ１３０５）。そして、強化学習装置１００は、ステップＳ１３０７の処理に移行する。
【０１２４】
ステップＳ１３０６では、強化学習装置１００は、報酬＝（特性関数に基づいて、取得した風速から特定される出力電力値）−（取得した出力電力値）を算出する（ステップＳ１３０６）。そして、強化学習装置１００は、ステップＳ１３０７の処理に移行する。
【０１２５】
ステップＳ１３０７では、強化学習装置１００は、報酬を出力する（ステップＳ１３０７）。そして、強化学習装置１００は、報酬計算処理を終了する。これにより、強化学習装置１００は、統一的な評価尺度で報酬を算出することができる。ここで、強化学習装置１００は、図１３の一部ステップの処理を省略してもよい。例えば、ステップＳ１３０２やステップＳ１３０３の処理は省略可能である。
【０１２６】
以上説明したように、強化学習装置１００によれば、風車１１０を用いた発電機１２０からの出力電力、および、風速を観測することができる。強化学習装置１００によれば、観測した出力電力が定格出力電力を超える場合は、定格出力電力から観測した出力電力を減算した差分に対応する報酬を用いて第１の学習を行うことができる。強化学習装置１００によれば、観測した出力電力が定格出力電力を超えない場合は、観測した出力電力から、特性関数に基づいて、観測した風速から特定される出力電力を減算した差分に対応する報酬を用いて第２の学習を行うことができる。これにより、強化学習装置１００は、風力発電システム１０１に対して適切な制御を行うことができる。
【０１２７】
強化学習装置１００によれば、第１の学習においては、定格出力電力から観測した出力電力を減算した差分に、重み関数が示す値を乗算した結果に対応する報酬を用いて学習を行うことができる。強化学習装置１００によれば、第２の学習においては、観測した出力電力から、特性関数に基づいて風速から特定される出力電力を減算した差分に、重み関数が示す値を乗算した結果に対応する報酬を用いて学習を行うことができる。これにより、強化学習装置１００は、学習時に発電機１２０を不安定にする行動が試行されにくくすることができる。
【０１２８】
強化学習装置１００によれば、重み関数として、観測した出力電力が定格出力電力に近いほど、値が小さくなる関数を用いることができる。これにより、強化学習装置１００は、重み関数により、出力電力が定格出力に近くなる行動が試行されやすくし、学習時に発電機１２０を不安定にする行動が試行されにくくすることができる。
【０１２９】
強化学習装置１００によれば、重み関数として、観測した出力電力が定格出力電力より一定以上大きい場合、観測した出力電力が定格出力電力より大きいほど、値が大きくなる関数を用いることができる。これにより、強化学習装置１００は、重み関数により、出力電力が定格出力より大きくなる行動が試行されにくくし、学習時に発電機１２０を不安定にする行動が試行されにくくすることができる。
【０１３０】
強化学習装置１００によれば、観測した出力電力、および、観測した風速に基づいて、特性関数を更新することができる。これにより、強化学習装置１００は、風車１１０や発電機１２０の経年劣化や個体差による特性関数の誤差などを補正することができる。このため、強化学習装置１００は、報酬を算出する精度の向上を図ることができる。
【０１３１】
強化学習装置１００によれば、観測した風速が定格風速を超えない場合に、観測した風速に、所定期間に観測した出力電力の統計値および定格出力電力のうち小さい方の電力を対応付けて示すように、特性関数を更新することができる。これにより、強化学習装置１００は、特性関数により、予定出力電力を低く見積もり過ぎないようにすることができる。
【０１３２】
強化学習装置１００によれば、風車１１０の受風性能を制御する機能を有する風車１１０を含む風力発電システム１０１に適用することができる。これにより、強化学習装置１００は、出力電力を定格出力に近づけやすい風力発電システム１０１に適用することができる。
【０１３３】
強化学習装置１００によれば、風速、および、風車１１０の回転速度を観測値とし、風車１１０の受風性能、および、発電機１２０の負荷トルク値を行動とする強化学習における学習を行うことができる。これにより、強化学習装置１００は、風車１１０の受風性能、および、発電機１２０の負荷トルク値を行動として試行することができる。
【０１３４】
なお、本実施の形態で説明した強化学習方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した強化学習プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した強化学習プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１３５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３６】
（付記１）コンピュータに、
風車を用いた発電機からの出力電力、および、風速を観測し、
観測した前記出力電力が定格出力電力を超える場合は、前記定格出力電力から観測した前記出力電力を減算した差分に対応する報酬を用いて第１の学習を行い、
観測した前記出力電力が前記定格出力電力を超えない場合は、観測した前記出力電力から、風速と出力電力との関係を示す特性関数に基づいて、観測した前記風速から特定される出力電力を減算した差分に対応する報酬を用いて第２の学習を行う、
処理を実行させることを特徴とする強化学習プログラム。
【０１３７】
（付記２）コンピュータに、
前記第１の学習においては、前記定格出力電力から観測した前記出力電力を減算した差分に、重み関数が示す値を乗算した結果に対応する報酬を用いて学習を行い、
前記第２の学習においては、観測した前記出力電力から、風速と出力電力との関係を示す特性関数に基づいて、観測した前記風速から特定される出力電力を減算した差分に、前記重み関数が示す値を乗算した結果に対応する報酬を用いて学習を行う、
処理を実行させることを特徴とする付記１に記載の強化学習プログラム。
【０１３８】
（付記３）前記重み関数は、観測した前記出力電力が前記定格出力電力に近いほど、値が小さくなる関数である、ことを特徴とする付記２に記載の強化学習プログラム。
【０１３９】
（付記４）前記重み関数は、観測した前記出力電力が前記定格出力電力より一定以上大きい場合、観測した前記出力電力が前記定格出力電力より大きいほど、値が大きくなる関数である、ことを特徴とする付記２または３に記載の強化学習プログラム。
【０１４０】
（付記５）前記コンピュータに、
観測した前記出力電力、および、観測した前記風速に基づいて、前記特性関数を更新する、処理を実行させることを特徴とする付記１〜４のいずれか一つに記載の強化学習プログラム。
【０１４１】
（付記６）前記更新する処理は、観測した前記風速が定格風速を超えない場合に、観測した前記風速に、所定期間に観測した前記出力電力の統計値および前記定格出力電力のうち小さい方の電力を対応付けて示すように、前記特性関数を更新する、ことを特徴とする付記５に記載の強化学習プログラム。
【０１４２】
（付記７）前記コンピュータに、
前記定格出力電力および定格風速を取得し、取得した前記定格出力電力および定格風速に基づいて、前記特性関数を生成する、処理を実行させることを特徴とする付記１〜６のいずれか一つに記載の強化学習プログラム。
【０１４３】
（付記８）前記風車は、前記風車の受風性能を制御する機能を有する、ことを特徴とする付記１〜７のいずれか一つに記載の強化学習プログラム。
【０１４４】
（付記９）前記学習は、前記風速、および、前記風車の回転速度を観測値とし、前記風車の受風性能、および、前記発電機の負荷トルク値を行動とする強化学習における学習である、ことを特徴とする付記１〜８のいずれか一つに記載の強化学習プログラム。
【０１４５】
（付記１０）コンピュータが、
風車を用いた発電機からの出力電力、および、風速を観測し、
観測した前記出力電力が定格出力電力を超える場合は、前記定格出力電力から観測した前記出力電力を減算した差分に対応する報酬を用いて第１の学習を行い、
観測した前記出力電力が前記定格出力電力を超えない場合は、観測した前記出力電力から、風速と出力電力との関係を示す特性関数に基づいて、観測した前記風速から特定される出力電力を減算した差分に対応する報酬を用いて第２の学習を行う、
処理を実行することを特徴とする強化学習方法。
【０１４６】
（付記１１）風車を用いた発電機からの出力電力、および、風速を観測し、
観測した前記出力電力が定格出力電力を超える場合は、前記定格出力電力から観測した前記出力電力を減算した差分に対応する報酬を用いて第１の学習を行い、
観測した前記出力電力が前記定格出力電力を超えない場合は、観測した前記出力電力から、風速と出力電力との関係を示す特性関数に基づいて、観測した前記風速から特定される出力電力を減算した差分に対応する報酬を用いて第２の学習を行う、
制御部を有することを特徴とする強化学習装置。
【符号の説明】
【０１４７】
１００  強化学習装置
１０１  風力発電システム
１１０  風車
１２０  発電機
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  通信Ｉ／Ｆ
３０４  記録媒体Ｉ／Ｆ
３０５  記録媒体
４００  記憶部
４０１  取得部
４０２  エージェント
４０３  出力部
５０１  風速計
５０２  状態取得部
５０３  報酬計算部
５０４  制御指令部
５１０  運動特性ＤＢ
６００  閾値テーブル
７００  特性関数テーブル
７１０，８１０，１１１０，１１２０，１２００  グラフ
８１１  特性関数
８１２，８１３  直線
９００  表
１０１０，１０２０，１０３０  制御結果
１０１１，１０１２，１０２１，１０２２，１０３１，１０３２  領域
【図１】
2020092490.tif 000003
【図２】
2020092490.tif 000004
【図３】
2020092490.tif 000005
【図４】
2020092490.tif 000006
【図５】
2020092490.tif 000007
【図６】
2020092490.tif 000008
【図７】
2020092490.tif 000009
【図８】
2020092490.tif 000010
【図９】
2020092490.tif 000011
【図１０】
2020092490.tif 000012
【図１１】
2020092490.tif 000013
【図１２】
2020092490.tif 000014
【図１３】
2020092490.tif 000015