(57)【要約】【課題】強化学習を効率よく実施すること。【解決手段】強化学習装置１００は、風速ごとの風車１１０の風車トルクと風車１１０の回転速度との関係を表す第１のトルク特性に変更を加えた第２のトルク特性を記憶する。第１のトルク特性は、風車１１０の回転速度の微小変化に対し風車１１０の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分１３１を有する。第２のトルク特性は、第１のトルク特性の部分１３１を、風車１１０の回転速度の微小変化に対し風車１１０の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更したトルク特性である。強化学習装置１００は、第２のトルク特性により強化学習を実施する。【選択図】図１
2019146420.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
各風速に対する風車のトルク特性のうち、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分を、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更したトルク特性により、強化学習を実施する、
処理を実行させることを特徴とする強化学習プログラム。
【請求項２】
前記風車の回転速度の微小変化は、前記風車に接続された発電機の負荷トルクの微小変化、または、前記風速の微小変化により発生する、ことを特徴とする請求項１に記載の強化学習プログラム。
【請求項３】
変更した前記トルク特性は、前記風車に接続された発電機の負荷トルクが取りうる最大トルク値以下である前記風車の風車トルク値の範囲において、当該風車トルク値に対応する回転速度が存在するという特性を有する、ことを特徴とする請求項１または２に記載の強化学習プログラム。
【請求項４】
前記コンピュータに、
各風速に対する風車のトルク特性を受け付け、当該トルク特性のうち、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分を、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更する、処理を実行させることを特徴とする請求項１〜３のいずれか一つに記載の強化学習プログラム。
【請求項５】
コンピュータが、
各風速に対する風車のトルク特性のうち、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分を、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更したトルク特性により、強化学習を実施する、
処理を実行することを特徴とする強化学習方法。
【請求項６】
各風速に対する風車のトルク特性のうち、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分を、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更したトルク特性により、強化学習を実施する、
制御部を有することを特徴とする強化学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、強化学習プログラム、強化学習方法、および強化学習装置に関する。
【背景技術】
【０００２】
従来、自然エネルギーを利用した発電システムとして風力発電システムがある。風力発電システムは、風車のピッチの制御、または、発電機の負荷トルクの制御により、風車の回転速度や発電機の発電量を制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−６０２９０号公報
【特許文献２】特開２０１０−２００５３３号公報
【特許文献３】特開２００３−２８４３９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、風力発電システムに強化学習を適用し、発電機の発電量を最適化するように、発電機の負荷トルク値を行動として、風力発電システムを制御する制御モデルを学習しようとしても、強化学習を効率よく実施することが難しい。例えば、風車のトルク特性のうち、一定の風速が吹いている場合に、発電量が最大となる動作点が存在し、かつ、回転速度を安定させやすい有用な範囲について学習するまでに、膨大な行動を試行することになる。
【０００５】
１つの側面では、本発明は、強化学習を効率よく実施することを目的とする。
【課題を解決するための手段】
【０００６】
１つの実施態様によれば、各風速に対する風車のトルク特性のうち、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分を、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を縮小する方向に作用する特性となるように修正したトルク特性により、強化学習を実施する強化学習プログラム、強化学習方法、および強化学習装置が提案される。
【発明の効果】
【０００７】
一態様によれば、強化学習を効率よく実施することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。
【図２】図２は、強化学習装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、風車トルク特性情報３００の記憶内容の一例を示す説明図である。
【図４】図４は、観測履歴４００の記憶内容の一例を示す説明図である。
【図５】図５は、行動価値テーブル５００の記憶内容の一例を示す説明図である。
【図６】図６は、行動履歴６００の記憶内容の一例を示す説明図である。
【図７】図７は、強化学習装置１００の機能的構成例を示すブロック図である。
【図８】図８は、強化学習装置１００の具体的な機能的構成例を示すブロック図である。
【図９】図９は、風車１１０のトルク特性に基づく強化学習の学習指標を示す説明図（その１）である。
【図１０】図１０は、風車１１０のトルク特性に基づく強化学習の学習指標を示す説明図（その２）である。
【図１１】図１１は、風車１１０のトルク特性に基づく強化学習の学習指標を示す説明図（その３）である。
【図１２】図１２は、風車１１０のトルク特性に基づく強化学習の学習指標を示す説明図（その４）である。
【図１３】図１３は、風車１１０のトルク特性の特性曲線を変更する一例を示す説明図（その１）である。
【図１４】図１４は、風車１１０のトルク特性の特性曲線を変更する一例を示す説明図（その２）である。
【図１５】図１５は、風車１１０のトルク特性の特性曲線を変更する一例を示す説明図（その３）である。
【図１６】図１６は、発電機１２０の負荷トルクを制御する動作例を示す説明図（その１）である。
【図１７】図１７は、発電機１２０の負荷トルクを制御する動作例を示す説明図（その２）である。
【図１８】図１８は、発電機１２０の負荷トルクを制御する動作例を示す説明図（その３）である。
【図１９】図１９は、風車１１０のトルク特性を変更する前後での強化学習結果の一例を示す説明図である。
【図２０】図２０は、全体処理手順の一例を示すフローチャートである。
【図２１】図２１は、強化学習処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して、本発明にかかる強化学習プログラム、強化学習方法、および強化学習装置の実施の形態を詳細に説明する。
【００１０】
（実施の形態にかかる強化学習方法の一実施例）
図１は、実施の形態にかかる強化学習方法の一実施例を示す説明図である。強化学習装置１００は、風力発電システム１０１のシミュレータ１０２を利用し、風力発電システム１０１に対して強化学習を実施し、風力発電システム１０１を制御するための制御モデルを学習するコンピュータである。
【００１１】
強化学習装置１００は、例えば、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、マイコン、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）などである。
【００１２】
シミュレータ１０２は、風力発電システム１０１の動作および性質を模倣するソフトウェアである。風力発電システム１０１は、風車１１０と発電機１２０とを有する。風を受けた風車１１０により風力は風車トルクに変換され、発電機１２０の軸に伝達される。風車１１０の受ける風の風速は、時間に応じて変動しうる。なお、風車１１０が受ける風の風力は、風車トルクに変換する際の変換損失を発生させながら、風車トルクに変換される。また、風車１１０は、風車の回転を抑制するブレーキを有する。
【００１３】
発電機１２０は、風車１１０を用いて発電を行う。発電機１２０は、例えば、風車１１０から軸に伝達された風車トルクを用いて発電を行う。すなわち、発電機１２０は、軸に伝達された風車トルクを用いて発電を行うことにより、風力により生じた風車トルクとは逆方向の、負荷トルクを風車にかけることができる。また、発電機１２０を電動機としても機能させることにより負荷トルクを発生することができる。負荷トルクは、例えば、０から負荷トルク上限までの値をとる。
【００１４】
発電機１２０に供給されたエネルギーが余ると、風車１１０の回転速度が増加する。回転速度は、例えば、単位時間当たりの回転角度であり、角速度である。回転速度の単位は、例えば、ｒａｄ／ｓである。発電機１２０に供給されたエネルギーが、発電機１２０で消費されるエネルギーよりも不足すると、風車１１０の回転速度が減少する。
【００１５】
ここで、風力発電システム１０１において、発電機１２０の発電効率を最大化することができる風車１１０の回転速度および風車トルクは、風速などの環境の変化に応じて変化する。このため、風速などの環境の変化に応じて、風力発電システム１０１に対して適切な制御を行うことが望まれる。
【００１６】
これに対し、強化学習を用いて、発電機１２０の発電量を最適化するように、発電機１２０の負荷トルク値を行動として、風力発電システム１０１を制御する制御モデルを学習することが考えられる。制御モデルは、具体的には、発電機１２０の負荷トルクを制御することにより、風車１１０の風車トルクと風車１１０の回転速度との関係を表すトルク特性の特性曲線上の風車１１０の動作点を、発電機１２０の発電効率を最大化する動作点に接近させる。
【００１７】
ここで、トルク特性は、例えば、以下に示すような各種特性を有する。トルク特性が有する各種特性について、具体的には、図９〜図１２を用いて後述する。
【００１８】
第１の特性は、例えば、特性曲線において風車トルクの極大点よりも回転速度が小さい側の領域は、不安定領域になるという特性である。極大点は、風車トルクが極大になる点である。不安定領域では、風車１１０の動作点は、風車トルクと負荷トルクとに差がある場合、風車トルクと負荷トルクとが離れる方向へ移動する傾向がある。このため、不安定領域では、負荷トルクを風車トルクより小さい値に維持しなければ、風車１１０の回転が失速し、風車１１０の回転速度の低下を招く。
【００１９】
第２の特性は、特性曲線において風車トルクの極大点よりも回転速度が大きい側の領域は、安定領域になるという特性である。安定領域では、風車１１０の動作点は、風車トルクと負荷トルクとに差がある場合、風車トルクと負荷トルクとが釣り合う方向へ移動する傾向がある。このため、安定領域では、風車１１０の回転速度が安定しやすい。
【００２０】
第３の特性は、発電機１２０の発電効率を最大化する動作点は、特性曲線において風車トルクの極大点よりも回転速度が大きい側の領域にあるという特性である。以下の説明では、特性曲線において風車トルクの極大点よりも回転速度が大きい側の領域を「山の右側」と表記する場合がある。また、以下の説明では、特性曲線において風車トルクの極大点よりも回転速度が小さい側の領域を「山の左側」と表記する場合がある。
【００２１】
これらの特性から、風力発電システム１０１について強化学習を実施する際、風車１１０の動作点が山の右側にある状態に対する行動を試行し、山の右側での好ましい行動を学習することが望まれる。一方で、発電機１２０の発電効率を最大化する動作点は山の右側にあるため、風車１１０の動作点が山の左側にある状態に対する行動を試行しなくても、強化学習への悪影響は少ないと考えられる。
【００２２】
しかしながら、風力発電システム１０１について強化学習を効率よく実施することは難しい。例えば、発電機１２０の発電量を最適化するように風力発電システム１０１を制御するための制御モデルを学習するまでに、膨大な行動を試行することになり、強化学習にかかる時間の増大化を招く。
【００２３】
具体的には、強化学習は学習段階では、行動をランダムに選択するため、風車１１０の動作点が山の左側にある状態にも関わらず、負荷トルクを風車トルクより小さい値に維持せずに、風車１１０の回転を失速させ、風車１１０の回転速度の低下を招いてしまう。このため、強化学習では、風車１１０の動作点を山の右側に移動させ、風車１１０の動作点が山の右側にある状態に対する行動を試行するまでに、膨大な行動を試行することになり、強化学習にかかる時間の増大化を招いてしまう。
【００２４】
そこで、本実施の形態では、風車１１０のトルク特性の特性曲線の山の左側部分を、山の右側部分と同様の特性を表すように変更したトルク特性により、強化学習を実施する強化学習方法について説明する。これにより、強化学習方法は、発電量が最大となる動作点が存在し、かつ、回転速度を安定させやすい、安定領域について効率よく学習することができる。
【００２５】
図１において、強化学習装置１００は、風速ごとの風車１１０の風車トルクと風車１１０の回転速度との関係を表す第１のトルク特性に変更を加えた第２のトルク特性を記憶する。第１のトルク特性は、上述した第１の特性、第２の特性、第３の特性を有するトルク特性である。第１のトルク特性は、具体的には、第１の特性曲線１３０により表される。第１のトルク特性は、風車１１０の回転速度の微小変化に対し風車１１０の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分１３１を有する。
【００２６】
第２のトルク特性は、第１のトルク特性の部分１３１を、風車１１０の回転速度の微小変化に対し風車１１０の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更したトルク特性である。換言すれば、第２のトルク特性は、不安定領域を安定領域に変更し、上述した第１の特性を有さないトルク特性である。第２のトルク特性は、具体的には、第２の特性曲線１４０により表される。第２のトルク特性は、例えば、利用者によって入力される。
【００２７】
以下の説明では、元々の第１のトルク特性から変更されず、元々の第１のトルク特性の山の右側の安定領域に対応する第２のトルク特性の安定領域を「真の安定領域」と表記する場合がある。また、以下の説明では、元々の第１のトルク特性の山の左側の不安定領域から変更された第２のトルク特性の安定領域を「仮の安定領域」と表記する場合がある。
【００２８】
強化学習装置１００は、第２のトルク特性により強化学習を実施する。強化学習は、例えば、風速、および、風車１１０の回転速度を観測値とし、風車１１０に接続された発電機１２０による発電量を報酬とし、発電機１２０の負荷トルク値を行動とする。強化学習装置１００は、例えば、第２のトルク特性を適用した風力発電システム１０１のシミュレータ１０２に、風速の時間変化を表すデータを与え、発電機１２０の負荷トルク値を行動として強化学習を実施する。
【００２９】
これにより、強化学習装置１００は、強化学習において行動をランダムに選択しても、不安定領域が仮の安定領域に変更されたため、風車１１０の回転を失速しにくくすることができ、風車１１０の回転を停止しにくくすることができる。結果として、強化学習装置１００は、膨大な行動を試行しなくても、強化学習において風車１１０の回転速度が増加しやすくし、風車１１０の動作点が第２のトルク特性の真の安定領域に移動しやすくすることができる。そして、強化学習装置１００は、風車１１０の動作点が第２のトルク特性の真の安定領域にある状態に対する行動を試行することができ、強化学習にかかる時間の低減化を図ることができる。
【００３０】
また、上述したように、第２のトルク特性の真の安定領域は、元々の第１のトルク特性の山の右側の安定領域に対応する。このため、強化学習装置１００は、強化学習により学習される制御モデルを、元々の第１のトルク特性を有する実際の風力発電システム１０１に適用可能にすることができ、実際の風力発電システム１０１を効率的に制御可能にすることができる。
【００３１】
また、上述したように、発電機１２０の発電効率を最大化する動作点は、元々の第１のトルク特性の山の右側の安定領域にあり、元々の第１のトルク特性の山の左側の不安定領域にはない。換言すれば、仮の安定領域に対する行動が、最適な行動になることはない。このため、強化学習装置１００は、強化学習により、風車１１０の動作点が元々の第１のトルク特性の山の左側の不安定領域にある状態に対する行動を試行しなくても、強化学習へ悪影響を与えないようにすることができる。
【００３２】
ここでは、第２のトルク特性が、利用者によって入力される場合について説明したが、これに限らない。例えば、強化学習装置１００が、第１のトルク特性を取得してシミュレータ１０２に入力し、シミュレータ１０２が、入力された第１のトルク特性を第２のトルク特性に変更する場合があってもよい。また、強化学習装置１００が、強化学習装置１００とは異なる装置から第２のトルク特性を受信してシミュレータ１０２に入力する場合があってもよい。
【００３３】
ここでは、強化学習装置１００が、風力発電システム１０１のシミュレータ１０２を有する場合について説明したが、これに限らない。例えば、強化学習装置１００とは異なる装置が、風力発電システム１０１のシミュレータ１０２を有し、強化学習装置１００と通信可能である場合があってもよい。
【００３４】
（強化学習装置１００のハードウェア構成例）
次に、図２を用いて、強化学習装置１００のハードウェア構成例について説明する。
【００３５】
図２は、強化学習装置１００のハードウェア構成例を示すブロック図である。図２において、強化学習装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００３６】
ここで、ＣＰＵ２０１は、強化学習装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。メモリ２０２は、図３〜図６に後述する各種テーブル３００〜６００を記憶してもよい。
【００３７】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３には、例えば、モデムやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタなどを採用することができる。
【００３８】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、強化学習装置１００から着脱可能であってもよい。記録媒体２０５は、メモリ２０２の代わりに、図３〜図６に後述する各種テーブル３００〜６００を記憶してもよい。
【００３９】
強化学習装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、強化学習装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を複数有していてもよい。また、強化学習装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００４０】
（風車トルク特性情報３００の記憶内容）
次に、図３を用いて、風車トルク特性情報３００の記憶内容について説明する。風車トルク特性情報３００は、例えば、図２に示した強化学習装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４１】
図３は、風車トルク特性情報３００の記憶内容の一例を示す説明図である。図３に示すように、風車トルク特性情報３００は、回転速度と、風速ごとの風車トルクとのフィールドを有する。風車トルク特性情報３００は、回転速度ごとに各フィールドに情報を設定することにより、レコードとして記憶される。
【００４２】
風車トルク特性情報３００は、各風速における風車１１０のトルク特性の特性曲線を示す。風速は、例えば、５ｍ／ｓと８ｍ／ｓと１０ｍ／ｓと１３ｍ／ｓとである。回転速度のフィールドには、風車１１０の回転速度が設定される。風速ごとの風車トルクのフィールドには、当該風速における風車１１０のトルク特性の特性曲線上で、風車１１０の回転速度に対応する風車トルクが設定される。
【００４３】
（観測履歴４００の記憶内容）
次に、図４を用いて、観測履歴４００の記憶内容について説明する。観測履歴４００は、例えば、図２に示した強化学習装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４４】
図４は、観測履歴４００の記憶内容の一例を示す説明図である。図４に示すように、観測履歴４００は、計測時刻と、風速と、回転速度と、発電量とのフィールドを有する。観測履歴４００は、計測時刻ごとに各フィールドに情報を設定することにより、履歴情報がレコードとして記憶される。
【００４５】
計測時刻のフィールドには、風車１１０の風速、風車１１０の回転速度、および、発電機１２０の発電量が計測された計測時刻が設定される。計測時刻は、シミュレータ１０２上の時刻であり、実際の時刻でなくてよい。
【００４６】
風速のフィールドには、計測時刻に計測された風車１１０の風速の計測値が設定される。回転速度のフィールドには、計測時刻に計測された風車１１０の回転速度の計測値が設定される。発電量のフィールドには、計測時刻に計測された発電機１２０の発電量の計測値が設定される。発電量は、１つ前の計測時刻から最新の計測時刻までの発電量である。
【００４７】
（行動価値テーブル５００の記憶内容）
次に、図５を用いて、行動価値テーブル５００の記憶内容について説明する。なお、以下の行動価値テーブル５００の説明は、強化学習手法としてＱ学習等の一部の強化学習手法を用いる場合であり、利用する強化学習手法によっては、利用する記憶内容等は異なるものとなる。行動価値テーブル５００は、例えば、図２に示した強化学習装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４８】
図５は、行動価値テーブル５００の記憶内容の一例を示す説明図である。図５に示すように、行動価値テーブル５００は、１以上の風速と、１以上の回転速度と、行動と、Ｑ値とのフィールドを有する。行動価値テーブル５００は、各フィールドに情報を設定することにより、行動価値情報がレコードとして記憶される。
【００４９】
風速のフィールドには、風速に対する条件が設定される。条件は、範囲である。図５の例では、風速１のフィールドには、現在の風速に対する条件が設定される。現在の風速は、例えば、最新の計測時刻での風速である。また、風速２のフィールドには、過去の風速に対する条件が設定される。過去の風速は、例えば、１つ前の計測時刻での風速である。
【００５０】
回転速度のフィールドには、風車１１０の回転速度に対する条件が設定される。図５の例では、回転速度１のフィールドには、現在の風車１１０の回転速度に対する条件が設定される。現在の風車１１０の回転速度は、例えば、最新の計測時刻での風車１１０の回転速度である。また、回転速度２のフィールドには、過去の風車１１０の回転速度に対する条件が設定される。過去の風車１１０の回転速度は、例えば、１つ前の計測時刻での風車１１０の回転速度である。
【００５１】
行動のフィールドには、エージェントにより行動として決定された発電機１２０の負荷トルク値が設定される。Ｑ値のフィールドには、現在および過去の風速および回転速度が、風速および回転速度のフィールドが示す条件に当てはまる場合に、決定された行動を行うと、報酬である発電機１２０の発電量の増加にどの程度寄与するかを示すＱ値が設定される。
【００５２】
（行動履歴６００の記憶内容）
次に、図６を用いて、行動履歴６００の記憶内容について説明する。行動履歴６００は、例えば、図２に示した強化学習装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００５３】
図６は、行動履歴６００の記憶内容の一例を示す説明図である。図６に示すように、行動履歴６００は、計測時刻と、行動とのフィールドを有する。行動履歴６００は、計測時刻ごとに各フィールドに情報を設定することにより、履歴情報がレコードとして記憶される。
【００５４】
計測時刻のフィールドには、風車１１０の風速、風車１１０の回転速度、および、発電機１２０の発電量が計測された計測時刻が設定される。計測時刻は、シミュレータ１０２上の時刻であり、実際の時刻でなくてよい。
【００５５】
行動のフィールドには、計測時刻に計測された風車１１０の風速、風車１１０の回転速度、発電機１２０の発電量に基づいて、エージェントにより行動として決定された発電機１２０の負荷トルク値が設定される。
【００５６】
（強化学習装置１００の機能的構成例）
次に、図７を用いて、強化学習装置１００の機能的構成例について説明する。
【００５７】
図７は、強化学習装置１００の機能的構成例を示すブロック図である。強化学習装置１００は、記憶部７００と、取得部７０１と、シミュレータ７０２と、エージェント７０３と、出力部７０４とを含む。
【００５８】
記憶部７００は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域によって実現される。以下では、記憶部７００が、強化学習装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部７００が、強化学習装置１００とは異なる装置に含まれ、記憶部７００の記憶内容が強化学習装置１００から参照可能である場合があってもよい。
【００５９】
取得部７０１〜出力部７０４は、制御部の一例として機能する。取得部７０１〜出力部７０４は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００６０】
記憶部７００は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部７００は、例えば、風速、風車１１０の風車トルク、風車１１０の回転速度、および、発電機１２０の発電量などを記憶してもよい。風車１１０は、風車１１０のピッチを制御する機能を有さなくてもよい。記憶部７００は、例えば、風車１１０の風車トルクと、風車１１０の回転速度との関係を表す、風車１１０のトルク特性の特性曲線を示す情報を記憶してもよい。記憶部７００は、具体的には、風速ごとの風車１１０の風車トルクと風車１１０の回転速度との関係を表す第１のトルク特性に変更を加えた第２のトルク特性を記憶する。
【００６１】
第１のトルク特性は、上述した第１の特性、第２の特性、第３の特性を有するトルク特性である。第２のトルク特性は、第１のトルク特性の所定の部分を、風車１１０の回転速度の微小変化に対し風車１１０の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更したトルク特性である。所定の部分は、風車１１０の回転速度の微小変化に対し風車１１０の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分である。換言すれば、第２のトルク特性は、不安定領域を安定領域に変更し、上述した第１の特性を有さないトルク特性である。これにより、第２のトルク特性は、風車１１０の回転が失速しにくい特性を表すことができる。
【００６２】
第２のトルク特性は、例えば、風車１１０に接続された発電機１２０の負荷トルクが取りうる最大トルク値以下である風車１１０の風車トルク値の範囲において、当該風車トルク値に対応する回転速度が存在するという特性を有することが好ましい。これにより、第２のトルク特性は、さらに、風車１１０の回転が失速しにくい特性を表すことができる。
【００６３】
記憶部７００は、例えば、強化学習アルゴリズム、および、行動選択アルゴリズムによる処理手順を記憶する。強化学習アルゴリズムは、例えば、Ｑ学習アルゴリズムである。強化学習アルゴリズムは、Ｑ学習アルゴリズム以外であってもよい。行動選択アルゴリズムは、例えば、ε−ｇｒｅｅｄｙアルゴリズムである。記憶部７００は、例えば、強化学習により学習された制御モデル、または、制御モデルにより決定された行動を記憶してもよい。
【００６４】
制御モデルは、例えば、観測値を入力されると行動を出力することができるモデルである。制御モデルは、例えば、観測値に対する条件に、観測値に対する条件を満たす場合にどのような行動を出力するかを対応付けたテーブルである。制御モデルは、例えば、数式モデルや決定木モデルであってもよい。記憶部７００は、具体的には、図３〜図６に示した各種テーブル３００〜６００を記憶する。
【００６５】
取得部７０１は、各機能部の処理に用いられる各種情報を取得し、記憶部７００に格納し、または、各機能部に出力する。取得部７０１は、各機能部の処理に用いられる各種情報を記憶部７００から取得し、各機能部に出力してもよい。取得部７０１は、各機能部の処理に用いられる各種情報をシミュレータ７０２から取得してもよい。取得部７０１は、各機能部の処理に用いられる各種情報を、強化学習装置１００とは異なる装置から取得してもよい。
【００６６】
取得部７０１は、例えば、風速、風車１１０の風車トルク、風車１１０の回転速度、および、発電機１２０の発電量などを取得してもよい。取得部７０１は、具体的には、シミュレータ７０２から、風車１１０の近傍での風速、風車１１０の風車トルク、風車１１０の回転速度、発電機１２０の負荷トルク、および、発電機１２０の累積発電量などの計測値を取得してもよい。取得部７０１は、具体的には、発電機１２０の累積発電量の差分から、一定時間における発電機１２０の発電量を取得してもよい。
【００６７】
取得部７０１は、第１のトルク特性を取得してもよい。取得部７０１は、取得した第１のトルク特性を第２のトルク特性に変更し、記憶部７００に記憶する。取得部７０１は、例えば、取得した第１のトルク特性のうち風車トルクの極大点を特定する。取得部７０１は、特定した風車トルクの極大点よりも回転速度が小さい側にある不安定領域を、風車１１０の回転速度の微小変化に対し風車１１０の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分として特定する。取得部７０１は、特定した部分を、風車１１０の回転速度の微小変化に対し風車１１０の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更する。これにより、取得部７０１は、風車１１０の回転が失速しにくい特性を生成することができる。
【００６８】
シミュレータ７０２は、第２のトルク特性に基づいて風力発電システム１０１の動作および性質を模倣する。シミュレータ７０２は、風速の時間変化を示すデータを参照し、シミュレータ７０２上の計測時点ごとに、エージェント７０３が決定した行動に基づいて、風速、風車１１０の回転速度、および、発電機１２０による発電量を出力する。シミュレータ７０２は、風車１１０の回転速度の微小変化を、風車１１０に接続された発電機１２０の負荷トルクの微小変化、または、風速の微小変化により発生させる。これにより、シミュレータ７０２は、第２のトルク特性に基づく風力発電システム１０１を模倣することができる。
【００６９】
エージェント７０３は、学習時には、第２のトルク特性により、強化学習を実施する。エージェント７０３は、例えば、第２のトルク特性を適用したシミュレータ７０２を利用し、風速、および、風車１１０の回転速度を観測値とし、発電機１２０による発電量を報酬とし、発電機１２０の負荷トルク値を行動とした強化学習を実施する。
【００７０】
エージェント７０３は、具体的には、Ｑ学習アルゴリズムにより、行動価値テーブル５００を用いて、発電機１２０の負荷トルク値を行動として強化学習を実施し、観測値が入力されると行動を出力する制御モデルを生成する。これにより、エージェント７０３は、学習時には、観測値が入力されると行動を出力する制御モデルを、風速の変化傾向などの環境の性質に適合するように学習し、更新することができる。
【００７１】
エージェント７０３は、行動決定の動作時には、風速、および、風車１１０の回転速度を観測値として、発電機１２０の負荷トルク値を行動とした出力を行う。エージェント７０３は、例えば、行動決定の動作時に、発電機１２０による発電量を最大化する観点から好ましいと判断される発電機１２０の負荷トルク値を行動として出力する。これにより、エージェント７０３は、行動決定の動作時には、実際の風速の変化傾向に合わせて、報酬である発電量の最大化を図ることができる行動を決定することができる。
【００７２】
出力部７０４は、各機能部の処理結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶である。これにより、出力部７０４は、各機能部の処理結果を利用者に通知可能にし、強化学習装置１００の管理や運用、例えば、強化学習装置１００の設定値の更新などを支援することができ、強化学習装置１００の利便性の向上を図ることができる。
【００７３】
（強化学習装置１００の具体的な機能的構成例）
次に、図８を用いて、強化学習装置１００の具体的な機能的構成例について説明する。
【００７４】
図８は、強化学習装置１００の具体的な機能的構成例を示すブロック図である。強化学習装置１００は、風力発電システム１０１のシミュレータ７０２と、観測部８１１と、報酬関数部８１２と、状態更新部８１３と、行動決定部８１４とを含む。図１１に示したエージェント７０３は、例えば、観測部８１１と、報酬関数部８１２と、状態更新部８１３と、行動決定部８１４とによって実現される。
【００７５】
シミュレータ７０２は、例えば、風速の時間変化のデータを参照し、風車１１０の第２のトルク特性に基づいて、風車１１０と、発電機１２０と、計測部８０１と、ブレーキ８０２と、稼働・停止部８０３と、電力消費先８０４との動作および性質を模倣する。
【００７６】
風車１１０は、風を受け、風力を風車トルクに変換し、発電機１２０の軸に回転エネルギーとして伝達する。稼働・停止部８０３は、風速の増加に伴い、ブレーキ８０２を制御して、風車１１０を停止させるか、風車１１０を稼働させるかを決定する。ブレーキ８０２は、稼働・停止部８０３の制御に従って、風車１１０を停止する。
【００７７】
発電機１２０は、風車１１０から回転エネルギーとして軸に伝達された風車トルクを用いて発電を行い、電力消費先８０４に供給する。電力消費先８０４は、発電された電力を消費する。計測部８０１は、風速、風車１１０の風車トルク、風車１１０の回転速度、および、発電機１２０の累計発電量を計測し、計測値を出力する。
【００７８】
観測部８１１は、一定時間ごとに、風速、風車１１０の風車トルク、風車１１０の回転速度、および、発電機１２０の累計発電量の計測値を、シミュレータ７０２上の計測部８０１から取得する。観測部８１１は、取得した計測値を、図４に示した観測履歴４００に記憶する。
【００７９】
報酬関数部８１２は、図４に示した観測履歴４００から発電機１２０の累計発電量を取得し、発電機１２０の発電量に対応する報酬値を算出し、状態更新部８１３に出力する。
【００８０】
状態更新部８１３は、強化学習を実行し、図４に示した観測履歴４００から風速および風車１１０の回転速度を取得し、報酬関数部８１２から報酬値を取得し、図６に示した行動履歴６００を取得し、図５に示した行動価値テーブル５００を更新する。
【００８１】
行動決定部８１４は、図５に示した行動価値テーブル５００に基づいて、行動として発電機１２０の負荷トルク値を決定する。行動決定部８１４は、例えば、図５に示した行動価値テーブル５００に基づいて最適と判断される発電機１２０の負荷トルク値に、ランダムな補正量を加えて、探索のための行動を決定する。行動決定部８１４は、決定した行動に基づいて、図６に示した行動履歴６００を更新する。
【００８２】
（風車１１０のトルク特性に基づく強化学習の学習指標）
図９〜図１２を用いて、風車１１０のトルク特性に基づく強化学習の学習指標について説明する。
【００８３】
図９〜図１２は、風車１１０のトルク特性に基づく強化学習の学習指標を示す説明図である。図９の例では、表９００を示し、風速ごとの風車１１０のトルク特性と、風速ごとの発電量特性とを示す。
【００８４】
風速ごとの風車１１０のトルク特性は、曲線９２１〜９２３である。風車１１０のトルク特性は、山なりの特性である。風速ごとの発電量特性は、曲線９１１〜９１３である。発電量特性は、山なりの特性である。一定の風速に対する、発電機１２０の発電量を最大化することができる風車１１０の回転速度および風車１１０の風車トルクの組み合わせを示す最大発電量点は、曲線９０１上にある。
【００８５】
このため、風車１１０の動作点は、一定の風速が継続するような場合には、曲線９０１と曲線９２１〜９２３の交点となる最大発電量点ａ0，ａ1，ａ2に設定することが好ましく、山の右側にすることが好ましい。したがって、強化学習で、動作点が山の右側にある状態で適切と判断される負荷トルクを決定するための制御モデルを学習することが好ましいという学習指標が得られる。
【００８６】
換言すれば、強化学習で、風車１１０の動作点が山の右側にある場合に対する行動を試行することが好ましいという学習指標が得られる。一方で、最大発電点が存在しない風車１１０の動作点が山の左側にある場合に対しては、行動を試行する重要性が低いという学習指標が得られる。次に、図１０の説明に移行する。
【００８７】
図１０の例では、表１０００を示し、風速ごとの風車１１０のトルク特性と、風速ごとの発電量特性とを示す。
【００８８】
風速Ｖ１，Ｖ２の風車１１０のトルク特性は、曲線１０２１，１０２２である。風速Ｖ１＜風速Ｖ２である。風速Ｖ１，Ｖ２の発電量特性は、曲線１０１１，１０１２である。風速の変化に対する、発電機１２０の発電量を最大化することができる風車１１０の回転速度および風車１１０の風車トルクの組み合わせを示す最大発電量点は、曲線１００１上にある。ここで、例えば、風速Ｖ１で動作点ａ1であると、風速がＶ１からＶ２に増加したとき、負荷トルクが一定であれば、風速の増加により動作点がａ1からａ2Bに移動し、最大発電量点ではなくなる。
【００８９】
このため、風速の変化などの環境の変化に応じて負荷トルクを変更することが好ましい。例えば、風速がＶ１からＶ２に増加した場合は、風速Ｖ２の最大発電量点ａ2の風車トルクと釣り合う大きさの負荷トルクを設定し、風車１１０の動作点を最大発電量点ａ2に移動することが好ましい。したがって、強化学習では、風車１１０の動作点が山の右側にある場合に対し、風速の変化などの環境の変化に応じて、どのような行動が適切であるかを学習することが好ましいという学習指標が得られる。次に、図１１の説明に移行する。
【００９０】
図１１の例では、表１１００を示し、風速ごとの風車１１０のトルク特性を示し、風車１１０の動作点が山の右側にある場合について示す。風速Ｖ１，Ｖ２の風車１１０のトルク特性は、曲線１１０１，１１０２である。風速Ｖ１＜風速Ｖ２である。
【００９１】
ここで、山の右側は、安定領域であり、山の右側では、風車１１０の動作点は、風車トルクと負荷トルクとに差がある場合、風車トルクと負荷トルクとが釣り合う方向へ移動するという性質がある。また、風速が増加時は回転速度が増加し、風速が減少時は回転速度が減少するという性質がある。
【００９２】
このため、負荷トルクを設定してから時間が経過しても、風車１１０の動作点は、風車トルクと負荷トルクとが釣り合う点で停止することになる。したがって、強化学習で、負荷トルクがランダムに設定されても風車１１０の回転が失速して停止することがないような、風車１１０の動作点が山の右側にある場合に対して、行動を試行することが好ましいという学習指標が得られる。次に、図１２の説明に移行する。
【００９３】
図１２の例では、表１２００を示し、風速ごとの風車１１０のトルク特性を示し、風車１１０の動作点が山の左側にある場合について示す。風速Ｖ１，Ｖ２の風車１１０のトルク特性は、曲線１２０１，１２０２である。風速Ｖ１＜風速Ｖ２である。
【００９４】
ここで、山の左側は、不安定領域であり、山の左側では、風車１１０の動作点は、風車トルクと負荷トルクとに差がある場合、風車トルクと負荷トルクとが離れる方向へ移動するという性質がある。また、風速が増加時は回転速度が増加し、風速が減少時は回転速度が減少するという性質がある。
【００９５】
このため、負荷トルクを設定してから時間が経過すると、風車１１０の動作点は、風車トルクと負荷トルクとが離れていく方向に移動し、回転速度は加速度的に変化する傾向がある。回転速度が変化する速度は、例えば、下記式（１）に基づいて特定される。
【００９６】
【数１】
2019146420.tif 000003
【００９７】
Ｉは、慣性モーメントである。慣性モーメントは、回転体が同じ回転運動を保ち続けようとする回転の慣性の大きさである。慣性モーメントが小さいほど、定常状態までの回転速度の変化スピードは早くなる。慣性モーメントは、重さや長さが小さいほど小さな値となる。このため、慣性モーメントは、小型風力発電システムでは小さくなりやすい。
【００９８】
ＴUは、風車トルクである。λは、周速比である。Ｕは、風速である。風速が大きいほど、風車トルクの絶対値は大きくなる。ＴLは、負荷トルクである。上記式（１）の右辺が大きいほど、回転速度の変化量ｄω／ｄｔは大きくなるため、風速が上がると、回転速度が変化する速度が上がりやすい。
【００９９】
これにより、負荷トルクが、山の左側の現在の動作点の風車トルクより大きい場合、回転速度が加速度的に減少方向に変化しやすく、風車１１０の回転が失速しやすく停止しやすい。一方で、負荷トルクが、山の左側の現在の動作点の風車トルクより小さく維持された場合、回転速度が増加方向に変化し続け、動作点が山の右側に移動することになる。換言すれば、負荷トルクを、山の左側の現在の動作点の風車トルクより小さく維持しないと、回転速度を増加方向に変化し続けさせ、動作点を山の右側に移動させることは難しい。
【０１００】
このため、強化学習で、負荷トルクがランダムに設定されると、回転速度を増加方向に変化し続けさせることが難しく、風車１１０の回転が失速しやすく停止しやすく、動作点を山の右側に移動させにくい。また、回転速度が低下し、動作点の風車トルクが小さくなるほど、風車トルクより負荷トルクが小さくなる範囲は狭くなるため、負荷トルクをランダムに設定した際に風車トルクより小さくなる確率が低下しやすく、動作点を山の右側に移動させにくくなる。また、同様に、強化学習で、風速が変化した場合に、風車１１０の回転が失速しやすく停止しやすく、動作点を山の右側に移動させにくい。したがって、強化学習で、風車１１０の動作点が山の左側にある場合には行動を試行する重要性が低いにも関わらず、回転速度を増加方向に変化し続けさせることが難しく、動作点を山の右側に移動させにくいという学習指標が得られる。
【０１０１】
以上説明したように、発電機１２０の発電効率を最大化する動作点は山の右側にあるため、強化学習で、動作点が山の右側にある状態で適切と判断される負荷トルクを決定するための制御モデルを学習することが好ましいという学習指標が得られる。換言すれば、強化学習で、風車１１０の動作点を山の右側に移動させるタイミングを早めることが好ましく、風車１１０の動作点が山の右側にある状態で、様々な風速の変化に応じて様々な負荷トルクを設定してみることが好ましいという学習指標が得られる。
【０１０２】
一方で、発電機１２０の発電効率を最大化する動作点は山の右側にあるため、風車１１０の動作点が山の左側にある状態では、様々な負荷トルクを設定してみなくても、強化学習への悪影響は少ないという学習指標が得られる。しかしながら、風車１１０の動作点が山の左側にある状態では、負荷トルクがランダムに設定されると、風車１１０の回転が失速しやすく停止しやすく、回転速度を増加方向に変化し続けさせることが難しく動作点を山の右側に移動させにくい。
【０１０３】
（風車１１０のトルク特性の特性曲線を変更する一例）
そこで、図１３〜図１５を用いて、風車１１０のトルク特性の特性曲線を変更することにより、負荷トルクがランダムに設定されても風車１１０の回転が失速しにくく、動作点を山の右側に移動させるタイミングを早めることができる一例について説明する。
【０１０４】
図１３〜図１５は、風車１１０のトルク特性の特性曲線を変更する一例を示す説明図である。図１３において、強化学習装置１００は、風車トルク特性情報３００を変更し、風車トルク特性情報１３００を生成する。強化学習装置１００は、例えば、風車トルク特性情報３００に基づいて、風速ごとに、風車トルクの極大点を特定する。強化学習装置１００は、風速ごとに、特定した極大点よりも小さい回転速度に対応付けられた風車トルクを、特定した極大点よりも大きくなるように変更する。
【０１０５】
ここで、強化学習装置１００は、例えば、回転速度０に対応する風車トルクが負荷トルク上限以上になり、かつ、回転速度が小さくなるほど風車トルクが大きくなるように、風車トルク特性情報３００を変更することが好ましい。強化学習装置１００は、例えば、回転速度０に対応する風車トルクが負荷トルクの極大値以上になるように、風車トルク特性情報３００を変更してもよい。次に、図１４の説明に移行し、変更後の風車トルク特性情報１３００が示す特性曲線について説明する。
【０１０６】
図１４の例では、表１４００を示し、変更後の風車トルク特性情報１３００が示す風速ごとの風車１１０のトルク特性を示す。
【０１０７】
風速ごとの風車１１０のトルク特性は、曲線１４２１〜１４２３である。風車１１０のトルク特性は、右下がりの特性である。風速の変化に対する、発電機１２０の発電量を最大化することができる風車１１０の回転速度および風車１１０の風車トルクの組み合わせを示す最大発電量点は、曲線１４０１上にある。
【０１０８】
このため、風車１１０の動作点は、曲線１４０１と曲線１４２１〜１４２３の交点となる最大発電量点ａ0，ａ1，ａ2に設定することが好ましい。結果として、風車１１０の動作点を、元々の山の右側に対応する真の安定領域にすることが好ましいという点は、風車１１０のトルク特性を変更する前と変わることがない。
【０１０９】
一方で、風車１１０のトルク特性を変更する前とは異なり、元々の山の左側に対応する仮の安定領域では、負荷トルクがランダムに設定されても、風車１１０の回転が失速しにくく、動作点を山の右側に移動させるタイミングを早めやすくなる。同様に、元々の山の左側に対応する仮の安定領域では、風速が変化しても、風車１１０の回転が失速しにくく、動作点を山の右側に移動させるタイミングを早めやすくなる。次に、図１５の説明に移行し、仮の安定領域について具体的に説明する。
【０１１０】
図１５のように、仮の安定領域では、真の安定領域と同様に、風車１１０の動作点は、風車トルクと負荷トルクとに差がある場合、風車トルクと負荷トルクとが釣り合う方向へ移動するという性質がある。また、風速が増加時は回転速度が増加し、風速が減少時は回転速度が減少するという性質がある。
【０１１１】
このため、仮の安定領域では、真の安定領域と同様に、負荷トルクを設定してから時間が経過しても、風車１１０の動作点は、風車トルクと負荷トルクとが釣り合う点で停止するようになる。これにより、強化学習で、負荷トルクがランダムに設定されても、風車１１０の回転が失速して停止することがなくなる。
【０１１２】
例えば、ランダムに設定される負荷トルクが、風車トルクより小さければ、風車１１０の動作点は、風車トルクと負荷トルクとが釣り合う方向へ移動するため、風車１１０の回転速度が増加し、真の安定領域に移動しやすくなる。一方で、ランダムに設定される負荷トルクが、風車トルクより大きくても、風車１１０の動作点は、風車トルクと負荷トルクとが釣り合う点で停止するため、風車１１０の回転が失速しても、風車１１０の回転が停止してしまうことはない。
【０１１３】
（発電機１２０の負荷トルクを制御する動作例）
次に、図１６〜図１８を用いて、強化学習装置１００が発電機１２０の負荷トルクを制御する動作例について説明する。
【０１１４】
図１６〜図１８は、発電機１２０の負荷トルクを制御する動作例を示す説明図である。図１６〜図１８の例では、風速は、シミュレータ７０２において、例えば、事前に１秒間隔で計測された値が用いられる。また、回転速度は、例えば、シミュレータ７０２において０．０１〜０．１秒で計測される。発電量は、シミュレータ７０２において１秒間隔で積算値の差分が計測される。以下の説明では、風速、回転速度、発電量をまとめて取得した、シミュレータ７０２上の時刻を「計測時刻」と表記する場合がある。
【０１１５】
また、発電電力は、風速６ｍ／ｓで２０Ｗ程度であり、測定値である積算電力値としては５．５ｍＷｈ程度である。強化学習は、風速および回転速度を、それぞれ、１ｍ／ｓ、５０ｒｐｍの幅で離散化し、Ｑ学習により行われる。次に、図１６および図１７の説明に移行する。
【０１１６】
図１６および図１７の例は、風速５ｍ／ｓ〜７ｍ／ｓの範囲での風速の時間変化のデータに基づく強化学習による行動価値の変化を示す。まず、図１６の説明に移行する。図１６の最初の状態は、風速６ｍ／ｓにおいて、風車１１０の動作点が真の安定領域にあり、行動として発電機１２０の負荷トルク３０を設定した状態である。
【０１１７】
（１６−１）強化学習装置１００は、シミュレータ７０２上の計測部から計測値を取得し、観測履歴４００へ追加する。強化学習装置１００は、例えば、新たに風速７ｍ／ｓなどの計測値を取得し、観測履歴４００にレコード１６０１を追加する。発電量は、１つ前の計測時刻での行動の結果である。
【０１１８】
（１６−２）強化学習装置１００は、報酬を算出する。強化学習装置１００は、例えば、直近の発電量５．０３を、報酬として用いる。強化学習装置１００は、１つ前の計測時刻での行動の価値としてＱ値２．５１を算出する。
【０１１９】
強化学習装置１００は、行動価値テーブル５００から、１つ前の計測時刻の風速および回転速度と、２つ前の計測時刻での風速および回転速度とが条件に当てはまり、１つ前の計測時刻での行動を示すレコード１６０２を特定する。強化学習装置１００は、特定したレコード１６０２のＱ値を、算出したＱ値で更新する。次に、図１７の説明に移行する。
【０１２０】
図１７の例は、図１６の例の続きである。図１７の最初の状態は、図１６の最後の状態の次の計測時刻でも風速７ｍ／ｓであり、風車１１０の動作点が真の安定領域にあり、行動として発電機１２０の負荷トルク３５を設定した状態である。
【０１２１】
（１７−１）強化学習装置１００は、シミュレータ７０２上の計測部から計測値を取得し、観測履歴４００へ追加する。強化学習装置１００は、例えば、新たに風速７ｍ／ｓなどの計測値を取得し、観測履歴４００にレコード１７０１を追加する。発電量は、１つ前の計測時刻での行動の結果である。
【０１２２】
（１７−２）強化学習装置１００は、報酬を算出する。強化学習装置１００は、例えば、直近の発電量８．５６を、報酬として用いる。強化学習装置１００は、１つ前の計測時刻での行動の価値としてＱ値４．２８を算出する。
【０１２３】
強化学習装置１００は、行動価値テーブル５００から、１つ前の計測時刻の風速および回転速度と、２つ前の計測時刻での風速および回転速度とが条件に当てはまり、１つ前の計測時刻での行動を示すレコード１７０２を特定する。強化学習装置１００は、特定したレコード１７０２のＱ値を、算出したＱ値で更新する。
【０１２４】
これにより、強化学習装置１００は、様々な環境の変化に対して、発電機１２０の負荷トルクを設定したことが、発電機１２０の発電効率の最大化の観点から、どの程度好ましい行動であったかを示す情報を記憶することができる。次に、図１８の説明に移行する。
【０１２５】
図１８の例は、風速５ｍ／ｓ〜７ｍ／ｓである地域Ａにおける風力発電システム１０１に、強化学習装置１００を適用し、行動価値テーブル５００に基づいて、エージェント７０３により行動を決定する一例を示す。図１８の最初の状態は、風速６ｍ／ｓの状態である。
【０１２６】
（１８−１）強化学習装置１００は、実際の計測部から計測値を取得し、観測履歴４００へ追加する。強化学習装置１００は、例えば、新たに風速６ｍ／ｓなどの計測値を取得し、観測履歴４００にレコード１８０１を追加する。発電量は、１つ前の計測時刻での行動の結果である。
【０１２７】
（１８−２）強化学習装置１００は、行動価値テーブル５００に基づいて、現在の計測時刻の風速および回転速度と、１つ前の計測時刻での風速および回転速度とが条件に当てはまるレコード１８０２，１８０３を特定する。そして、強化学習装置１００は、レコード１８０２，１８０３のうちＱ値が大きい方のレコード１８０２が示す行動を、次の行動に決定する。
【０１２８】
これにより、強化学習装置１００は、地域Ａにおける様々な環境の変化に対して、発電機１２０の発電効率の最大化の観点から好ましい行動を決定することができる。強化学習装置１００は、例えば、地域Ａにおける様々な環境の変化に対して発電機１２０の発電効率を最大化するように、発電機１２０の負荷トルクを決定することができる。
【０１２９】
（風車１１０のトルク特性を変更する前後での強化学習結果の一例）
次に、図１９を用いて、風車１１０のトルク特性を変更する前後での強化学習結果の一例について説明する。
【０１３０】
図１９は、風車１１０のトルク特性を変更する前後での強化学習結果の一例を示す説明図である。図１９の表１９００では、風車１１０のトルク特性を変更する前での強化学習における回転速度の変化を黒丸によって表し、風車１１０のトルク特性を変更した後での強化学習における回転速度の変化を白丸によって表す。
【０１３１】
ここで、風車１１０のトルク特性を変更する前では、強化学習において、動作点が不安定領域にある場合、発電機１２０の負荷トルクがランダムに選択され、現在の動作点に対応する風車１１０の風車トルクより大きくなると、風車１１０の回転が失速してしまう。そして、風車１１０の回転が失速し、風車１１０の回転が停止した後は、発電機１２０の負荷トルクを０にしなければ風車１１０が失速してしまうため、発電機１２０の負荷トルクをランダムに選択すると、風車１１０が停止し続けてしまう傾向がある。
【０１３２】
結果として、膨大な行動を試行し、発電機１２０の負荷トルクを風車１１０の風車トルクより小さい値に維持する行動の価値が高いことを学習しなければ、風車１１０の回転速度を上昇させ、動作点が安定領域にある場合での行動を試行することができない。このため、動作点が安定領域にある場合に、どのような行動が適切であるかを学習するまでにかかる時間の増大化を招き、発電機１２０の発電効率を最大化するための制御モデルを学習するまでにかかる時間の増大化を招く。
【０１３３】
これに対し、風車１１０のトルク特性を変更した後では、強化学習において、動作点が仮の安定領域にある場合、発電機１２０の負荷トルクがランダムに選択され、現在の動作点に対応する風車１１０の風車トルクより大きくなっても、風車１１０が停止しない。そして、風車１１０の回転速度が上昇しやすいため、動作点が真の安定領域にある場合での行動を試行することができ、どのような行動が適切であるかを学習するまでにかかる時間の低減化を図ることができる。
【０１３４】
（全体処理手順）
次に、図２０を用いて、強化学習装置１００が実行する、全体処理手順の一例について説明する。全体処理は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１３５】
図２０は、全体処理手順の一例を示すフローチャートである。図２０において、まず、強化学習装置１００は、シミュレータ７０２により風力発電システム１０１の動作や性質を模倣し、シミュレータ７０２により風速、回転速度、および、発電量を、それぞれに対応するサンプリング間隔で計測する（ステップＳ２００１）。
【０１３６】
次に、強化学習装置１００は、計測値を取得し、観測履歴４００を更新する（ステップＳ２００２）。そして、強化学習装置１００は、図２１に後述する強化学習処理を実行し、発電機１２０の負荷トルクを更新する（ステップＳ２００３）。
【０１３７】
次に、強化学習装置１００は、全体処理を終了するか否かを判定する（ステップＳ２００４）。ここで、全体処理を終了しない場合（ステップＳ２００４：Ｎｏ）、強化学習装置１００は、ステップＳ２００１の処理に移行する。一方で、全体処理を終了する場合（ステップＳ２００４：Ｙｅｓ）、強化学習装置１００は、全体処理を終了する。これにより、強化学習装置１００は、強化学習により風力発電システム１０１を制御することができる。
【０１３８】
（強化学習処理手順）
次に、図２１を用いて、強化学習装置１００が実行する、強化学習処理手順の一例について説明する。強化学習処理手順は、例えば、図２に示したＣＰＵ２０１と、メモリ２０２や記録媒体２０５などの記憶領域と、ネットワークＩ／Ｆ２０３とによって実現される。
【０１３９】
図２１は、強化学習処理手順の一例を示すフローチャートである。図２１において、強化学習装置１００は、観測履歴４００の直近Ｋ個のレコードを取得する（ステップＳ２１０１）。
【０１４０】
次に、強化学習装置１００は、行動履歴６００から１つ前の行動を取得する（ステップＳ２１０２）。そして、強化学習装置１００は、前回の強化学習処理までの累積発電量と今回の強化学習処理までの累積発電量の差分である、直近の発電量を報酬として算出する（ステップＳ２１０３）。
【０１４１】
次に、強化学習装置１００は、Ｋ個の風速および回転速度の組み合わせを状態とし、取得した１つ前の行動と、算出した報酬とに基づいて、強化学習アルゴリズムにより、行動価値テーブル５００を更新する（ステップＳ２１０４）。
【０１４２】
そして、強化学習装置１００は、Ｋ個の風速および回転速度の組み合わせを状態とし、行動価値テーブル５００を参照し、行動選択アルゴリズムにより、発電機１２０の負荷トルク値を行動として決定する（ステップＳ２１０５）。その後、強化学習装置１００は、強化学習処理を終了する。これにより、強化学習装置１００は、適切と判断される行動を決定するための制御モデルとして利用される行動価値テーブル５００を更新することができる。
【０１４３】
ここで、強化学習装置１００は、図２１の一部ステップの処理の順序を入れ替えて実行してもよい。例えば、ステップＳ２１０１〜Ｓ２１０３の処理の順序は入れ替え可能である。
【０１４４】
以上説明したように、強化学習装置１００によれば、第１のトルク特性の不安定領域を仮の安定領域に変更した第２のトルク特性により、強化学習を実施することができる。これにより、強化学習装置１００は、強化学習において行動をランダムに選択しても、不安定領域が仮の安定領域に変更されたため、風車１１０の回転を失速しにくくすることができ、風車１１０の回転を停止しにくくすることができる。
【０１４５】
強化学習装置１００によれば、風車１１０の回転速度の微小変化が、風車１１０に接続された発電機１２０の負荷トルクの微小変化、または、風速の微小変化により発生するようにし、強化学習を実施することができる。これにより、強化学習装置１００は、風速などの様々な環境の変化に対して、発電機１２０の負荷トルクを設定したことが、発電機１２０の発電効率の最大化の観点から、どの程度好ましい行動であるかを学習することができる。
【０１４６】
強化学習装置１００によれば、風車１１０に接続された発電機１２０の負荷トルクが取りうる最大トルク値以下である風車１１０の風車トルク値の範囲において、当該風車トルク値に対応する回転速度が存在するという特性を有する第２のトルク特性を利用することができる。これにより、発電機１２０の負荷トルクが最大トルク以下である範囲において、風車１１０が停止しないようにすることができ、強化学習にとって好ましい特性になるようにすることができる。
【０１４７】
強化学習装置１００によれば、第１のトルク特性を受け付け、第１のトルク特性を第２のトルク特性に変更することができる。これにより、強化学習装置１００は、第２のトルク特性を利用者が生成する作業負担の低減化を図ることができる。
【０１４８】
強化学習装置１００によれば、強化学習を、第２のトルク特性を有するシミュレータ７０２上で実施することができる。これにより、強化学習装置１００は、第２のトルク特性を実現するハードウェアを風力発電システム１０１に導入しなくても、強化学習を実施することができる。
【０１４９】
強化学習装置１００によれば、風速、および、風車１１０の回転速度を観測値とし、風車１１０に接続された発電機１２０による発電量を報酬とし、発電機１２０の負荷トルク値を行動とした強化学習を実施することができる。これにより、強化学習装置１００は、発電効率の観点から適切と判断される発電機１２０の負荷トルクを決定する制御モデルを生成し、発電機１２０の負荷トルクにより風力発電システム１０１を制御可能にすることができる。
【０１５０】
強化学習装置１００によれば、風車１１０がピッチを制御する機能を有さない風力発電システム１０１に適用することができる。これにより、強化学習装置１００は、自装置を適用することができる風力発電システム１０１の種類を増加させることができる。強化学習装置１００は、風力発電システム１０１の製造コストの低減化を図ることができる。
【０１５１】
なお、本実施の形態で説明した強化学習方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した強化学習プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した強化学習プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１５２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１５３】
（付記１）コンピュータに、
各風速に対する風車のトルク特性のうち、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分を、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更したトルク特性により、強化学習を実施する、
処理を実行させることを特徴とする強化学習プログラム。
【０１５４】
（付記２）前記風車の回転速度の微小変化は、前記風車に接続された発電機の負荷トルクの微小変化、または、前記風速の微小変化により発生する、ことを特徴とする付記１に記載の強化学習プログラム。
【０１５５】
（付記３）変更した前記トルク特性は、前記風車に接続された発電機の負荷トルクが取りうる最大トルク値以下である前記風車の風車トルク値の範囲において、当該風車トルク値に対応する回転速度が存在するという特性を有する、ことを特徴とする付記１または２に記載の強化学習プログラム。
【０１５６】
（付記４）前記コンピュータに、
各風速に対する風車のトルク特性を受け付け、当該トルク特性のうち、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分を、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更する、処理を実行させることを特徴とする付記１〜３のいずれか一つに記載の強化学習プログラム。
【０１５７】
（付記５）前記強化学習は、前記トルク特性を有するシミュレータ上で実施される、ことを特徴とする付記１〜４のいずれか一つに記載の強化学習プログラム。
【０１５８】
（付記６）前記強化学習は、前記風速、および、前記風車の回転速度を観測値とし、前記風車に接続された発電機による発電量を報酬とし、前記発電機の負荷トルクを行動とする、ことを特徴とする付記１〜５のいずれか一つに記載の強化学習プログラム。
【０１５９】
（付記７）前記風車は、前記風車のピッチを制御する機能を有さない、ことを特徴とする付記１〜６のいずれか一つに記載の強化学習プログラム。
【０１６０】
（付記８）コンピュータが、
各風速に対する風車のトルク特性のうち、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分を、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更したトルク特性により、強化学習を実施する、
処理を実行することを特徴とする強化学習方法。
【０１６１】
（付記９）各風速に対する風車のトルク特性のうち、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を拡大する方向に作用する特性を有する部分を、前記風車の回転速度の微小変化に対し前記風車の回転速度が当該微小変化を縮小する方向に作用する特性となるように変更したトルク特性により、強化学習を実施する、
制御部を有することを特徴とする強化学習装置。
【符号の説明】
【０１６２】
１００  強化学習装置
１０１  風力発電システム
１０２，７０２  シミュレータ
１１０  風車
１２０  発電機
１３０，１４０  特性曲線
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２１０  ネットワーク
３００，１３００  風車トルク特性情報
４００  観測履歴
５００  行動価値テーブル
６００  行動履歴
７００  記憶部
７０１  取得部
７０３  エージェント
７０４  出力部
８０１  計測部
８０２  ブレーキ
８０３  稼働・停止部
８０４  電力消費先
８１１  観測部
８１２  報酬関数部
８１３  状態更新部
８１４  行動決定部
９００，１０００，１１００，１２００，１４００  表
９０１，９１１〜９１３，９２１〜９２３，１０１１，１０１２，１０２１，１０２２，１１０１，１１０２，１２０１，１２０２，１４０１，１４１１〜１４１３，１４２１〜１４２３  曲線
１６０１，１６０２，１７０１，１７０２，１８０１〜１８０３  レコード
【図１】
2019146420.tif 000004
【図２】
2019146420.tif 000005
【図３】
2019146420.tif 000006
【図４】
2019146420.tif 000007
【図５】
2019146420.tif 000008
【図６】
2019146420.tif 000009
【図７】
2019146420.tif 000010
【図８】
2019146420.tif 000011
【図９】
2019146420.tif 000012
【図１０】
2019146420.tif 000013
【図１１】
2019146420.tif 000014
【図１２】
2019146420.tif 000015
【図１３】
2019146420.tif 000016
【図１４】
2019146420.tif 000017
【図１５】
2019146420.tif 000018
【図１６】
2019146420.tif 000019
【図１７】
2019146420.tif 000020
【図１８】
2019146420.tif 000021
【図１９】
2019146420.tif 000022
【図２０】
2019146420.tif 000023
【図２１】
2019146420.tif 000024