以下に、図面を参照して、本発明にかかる風車制御プログラム、風車制御方法、および風車制御装置の実施の形態を詳細に説明する。
(実施の形態にかかる風車制御方法の一実施例)
図1は、実施の形態にかかる風車制御方法の一実施例を示す説明図である。図1において、風車制御装置100は、風力発電システム101を制御するコンピュータである。
風力発電システム101は、風車110と発電機120とを有する。風車110は、風を受け、風力を風車トルクに変換し、発電機120の軸に伝達する。風は、風速が変動しうる。風力は、風車トルクに変換される際、損失が発生する。風車110は、ブレーキを有する。
発電機120は、風車110を用いて発電を行う。発電機120は、例えば、風車110から軸に伝達された風車トルクを用いて発電を行う。発電機120は、軸に伝達された風車トルクの逆方向に、負荷トルクをかけることができる。負荷トルクは、例えば、発電機120を電動機としても機能させることにより発生することができる。負荷トルクは、負荷トルク上限がある。発電機120に供給されたエネルギーが余ると、風車110の回転数が増加する。発電機120に供給されたエネルギーが、発電機120で消費されるエネルギーに不足すると、風車110の回転数が減少する。
ここで、風力発電システム101では、風速などの環境が変化すると、発電機120の発電効率を最大化することができる風車110の回転数および風車トルクも変化するという性質がある。このため、風速などの環境の変化に応じて、風力発電システム101に対して適切な制御を行うことが望まれる。
しかしながら、風速などの環境の変化に合わせて、風力発電システム101に対して適切な制御を行うことは難しい。例えば、下記に示す第1の技術、第2の技術、第3の技術、および、第4の技術などが考えられるが、風速などの環境の変化に合わせて、風力発電システム101に対して適切な制御を行うことは難しい。
第1の技術として、例えば、風車110のピッチを制御することにより、風車110の風車トルクおよび風車110の回転数を制御する技術が考えられる。ピッチは、風車110が風から受ける力の大きさを制御する要素である。ピッチは、例えば、風車110の羽の角度である。ピッチの制御は、例えば、強化学習を用いて行われる。
しかしながら、ピッチを制御する構造を設けると、風力発電システム101の製造コストの増大化を招いてしまう。また、小型風力発電システム101では、風車110のサイズが小さいほど、風速の変化に応じて風車110の回転数が変化する応答時間が短くなる傾向がある。また、強化学習を用いてピッチを制御する場合、ピッチを変更する間隔が長くなる傾向がある。このため、ピッチを変更してから、次にピッチを変更し直すまでの間、風速の変化に応じた風車110の回転数の変化に対応することができず、発電機120の発電効率の低下を招きうる。
第2の技術として、例えば、発電機120の負荷トルクを制御することにより、風車110の風車トルクおよび風車110の回転数を制御する技術が考えられる。具体的には、発電機120の負荷トルクを制御することにより、風車110の風車トルクと風車110の回転数との関係を表す特性曲線上の風車110の動作点を、発電機120の発電効率を最大化する動作点に移動させる技術が考えられる。
発電機120の発電効率を最大化する動作点は、特性曲線において風車トルクの極大点よりも回転数が大きい側の領域にある。以下の説明では、特性曲線において風車トルクの極大点よりも回転数が大きい側の領域を「山の右側」と表記する場合がある。また、以下の説明では、特性曲線において風車トルクの極大点よりも回転数が小さい側の領域を「山の左側」と表記する場合がある。
しかしながら、特性曲線の山の右側では、風速が増加すると回転数が増加する性質があり、回転数が回転数上限に達しやすいという性質がある。また、風速が増加すると、負荷トルクを負荷トルク上限まで増加させても、回転数を減少させることが難しくなる場合がある。このため、風車110の破損を防止するために、ブレーキにより風車110の回転が停止され、発電機120の発電も停止され、発電機120の長期的な発電効率の低下を招きうる。
第3の技術として、例えば、風速が一定以上になったことに応じてブレーキにより風車110の回転が停止されないように、発電機120の負荷トルクを制御することにより、特性曲線上の風車110の動作点を特性曲線の山の左側に移動させる技術が考えられる。
しかしながら、風速が一定以上になっても、ブレーキにより風車110の回転が停止されるとは限らない。このため、風車110の動作点を、特性曲線の山の右側にした方が、発電機120の長期的な発電効率がよくても、風車110の動作点を、特性曲線の山の左側に移動してしまい、発電機120の長期的な発電効率の低下を招きうる。
第4の技術として、例えば、強化学習を用いて発電機120の負荷トルクを制御することにより、風車110の風車トルクおよび風車110の回転数を制御する技術が考えられる。
しかしながら、第1の技術と同様に、強化学習を用いて発電機120の負荷トルクを制御する場合、発電機120の負荷トルクを変更する間隔が長くなる傾向がある。このため、発電機120の負荷トルクを変更してから、次に発電機120の負荷トルクを変更し直すまでの間、風速の変化に応じた風車110の回転数の変化に対応することができない。
結果として、風車110の動作点が、特性曲線の山の左側にある場合、風速が急に減少すると、風車110の回転が停止してしまうことがある。また、この場合、風速が急に増加すると、風車110の動作点が、意図せず特性曲線の山の右側に移動してしまうことがある。また、風車110の動作点が、特性曲線の山の右側にある場合、風速が急に増加すると、回転数が回転数上限に達してしまうことがある。
そこで、本実施の形態では、発電機120の負荷トルクを制御中に、強化学習を行うエージェントにより風車110の動作点を特性曲線の山の左側に移動させるタイミングを決定する風車制御方法について説明する。これにより、風車制御方法は、環境の変化に合わせて発電機120の負荷トルクを制御する。
(1−1)風車制御装置100は、風速、および、風車110の回転数に基づいて、発電機120の負荷トルクを制御する。これにより、風車制御装置100は、エージェントの行動決定の実行間隔に関わらず、風速の変化に応じて発電機120の負荷トルクを制御する速度の低下を抑制することができ、風車110の動作点が意図せず移動してしまうことを防止することができる。
(1−2)風車制御装置100は、風速、および、風車110の回転数を観測値とし、発電機120による発電量を報酬とし、特性曲線上の風車110の動作点を、特性曲線の山の左側に移動させるか否かを行動とした強化学習を、エージェントに実行させる。これにより、風車制御装置100は、風速などの環境を考慮して、発電機120の長期的な発電効率を向上させる行動を決定するための制御モデルを、エージェントに学習させることができる。
制御モデルは、例えば、観測値を入力されると行動を出力することができるモデルである。制御モデルは、例えば、観測値に対する条件に、観測値に対する条件を満たす場合にどのような行動を出力するかを対応付けたテーブルである。制御モデルは、例えば、数式モデルであってもよい。制御モデルは、例えば、決定木モデルであってもよい。
(1−3)風車制御装置100は、風速、および、風車110の回転数が入力されたエージェントが、動作点を特性曲線の山の左側に移動させる出力を行った場合、発電機120の負荷トルクを制御することにより、動作点を特性曲線の山の左側に移動させる。これにより、風車制御装置100は、発電機120の長期的な発電効率を向上可能な場合に、特性曲線上の風車110の動作点を、特性曲線の山の左側に移動させることができる。
このように、風車制御装置100は、風速などの環境の変化に合わせて、風力発電システム101に対して適切な制御を行うことができ、発電機120の長期的な発電効率の低下を招くことを回避することができる。
風車制御装置100は、例えば、風速の変化に応じて発電機120の負荷トルクを制御する速度の低下を抑制することができ、風車110の動作点が意図せず移動してしまうことを防止することができる。風車制御装置100は、具体的には、風車110の動作点が、特性曲線の山の右側にある場合、風速が急に増加しても、回転数が回転数上限に達してしまうことを防止することができる。このため、風車制御装置100は、発電機120の発電効率の低下を防止することができる。
一方で、風車制御装置100は、具体的には、風車110の動作点が、特性曲線の山の左側にある場合、風速が急に減少しても、風車110の回転が停止してしまうことを防止することができる。また、風車制御装置100は、具体的には、風車110の動作点が、特性曲線の山の左側にある場合、風速が急に増加しても、風車110の動作点が、意図せず特性曲線の山の右側に移動してしまうことを防止することができる。このため、風車制御装置100は、発電機120の発電効率の低下を防止することができる。
また、風車制御装置100は、例えば、風速が一定以上であっても、ブレーキにより風車110の回転が停止されないような環境であれば、風車110の動作点を、発電機120の発電効率を最大化する動作点に移動させることができる。このため、風車制御装置100は、発電機120の長期的な発電効率の向上を図ることができる。
一方で、風車制御装置100は、例えば、ブレーキにより風車110の回転が停止されうる環境であれば、風車110の動作点を、特性曲線の山の左側に移動させることができる。このため、風車制御装置100は、ブレーキにより風車110の回転が停止され、発電機120の発電も停止されてしまうことを防止することができ、発電機120の長期的な発電効率の向上を図ることができる。
また、風車制御装置100は、例えば、風車110のピッチを制御しなくても、風車110の風車トルクおよび風車110の回転数を制御することができるため、風車110のピッチを制御する構造を有さない風力発電システム101にも適用することができる。また、風車制御装置100は、風力発電システム101の製造の際、風車110のピッチを制御する構造を設けなくてもよくすることができ、風力発電システム101の製造コストの増大化を抑制することができる。
(風力発電システム101の一例)
次に、図2を用いて、図1に示した風車制御装置100を適用した、風力発電システム101の一例について説明する。
図2は、風力発電システム101の一例を示す説明図である。図2において、風力発電システム101は、風車制御装置100と風車110と発電機120とを含む。
風力発電システム101において、風車制御装置100と風車110と発電機120とは、直接接続される。風車制御装置100と風車110と発電機120とは、有線または無線のネットワークを介して接続されてもよい。ネットワークは、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
風車110は、風を受け、風力を風車トルクに変換し、発電機120の軸に伝達する物体である。風車110は、風車110の回転を停止するためのブレーキが設けられる。風車110は、風車110の近傍での風速、風車110の風車トルク、および、風車110の回転数などを計測するための計測機が設けられる。風車110に設けられた計測機は、例えば、センサ装置を有する。センサ装置は、加速度センサ、地磁気センサ、光センサ、振動センサなどの少なくともいずれかを有してもよい。
発電機120は、風車110を用いて発電を行う機械である。発電機120は、例えば、風車110から軸に伝達された風車トルクを用いて発電を行う。発電機120は、軸に伝達された風車トルクの逆方向に、負荷トルクをかけることができる。発電機120は、発電機120の負荷トルクおよび発電機120の累積発電量などを計測するための計測機が設けられる。発電機120に設けられた計測機は、例えば、センサ装置を有する。センサ装置は、加速度センサ、地磁気センサ、光センサ、振動センサ、電力センサ、電圧センサ、電流センサなどの少なくともいずれかを有してもよい。
風車制御装置100は、風力発電システム101を制御する。風車制御装置100は、例えば、風車110に設けられた計測機から、風車110の近傍での風速、風車110の風車トルク、および、風車110の回転数などの計測値を取得する。風車制御装置100は、例えば、発電機120に設けられた計測機から、発電機120の負荷トルクおよび発電機120の累積発電量などの計測値を取得する。
風車制御装置100は、例えば、発電機120の負荷トルクを制御することにより、風車110の回転数を制御する。風車制御装置100は、例えば、風車110の動作点を、特性曲線の山の左側に移動させるか否かを決定する。風車制御装置100は、例えば、風車110に設けられたブレーキを制御し、風車110の回転を制御する。風車制御装置100は、例えば、サーバ、PC(Personal Computer)、マイコン、PLC(Programmable Logic Controller)などである。
ここでは、風車制御装置100が、発電機120の負荷トルクの制御と、風車110の動作点を特性曲線の山の左側に移動させるか否かの決定とを行う場合について説明したが、これに限らない。例えば、発電機120の負荷トルクの制御を行う装置と、風車110の動作点を特性曲線の山の左側に移動させるか否かの決定を行う装置とが異なる装置であり、それぞれの装置が協働する場合があってもよい。
ここでは、風車110に設けられた計測機と、発電機120に設けられた計測機とが別の装置である場合について説明したが、これに限らない。例えば、風車110に設けられた計測機と、発電機120に設けられた計測機とが同じ装置である場合があってもよい。
(風車制御装置100のハードウェア構成例)
次に、図3を用いて、風車制御装置100のハードウェア構成例について説明する。
図3は、風車制御装置100のハードウェア構成例を示すブロック図である。図3において、風車制御装置100は、CPU(Central Processing Unit)301と、メモリ302と、通信I/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、風車制御装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。メモリ302は、図4〜図10に後述する各種テーブル400〜1000を記憶してもよい。
通信I/F303は、通信回線を通じてネットワークに接続され、ネットワークを介して他のコンピュータに接続される。そして、通信I/F303は、ネットワークと内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。通信I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、風車制御装置100から着脱可能であってもよい。記録媒体305は、メモリ302の代わりに、図4〜図10に後述する各種テーブル400〜1000を記憶してもよい。
風車制御装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、風車制御装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、風車制御装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
(直近計測値情報400の記憶内容)
次に、図4を用いて直近計測値情報400の記憶内容について説明する。直近計測値情報400は、例えば、図3に示した風車制御装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図4は、直近計測値情報400の記憶内容の一例を示す説明図である。図4に示すように、直近計測値情報400は、計測時刻と、風速と、回転数と、発電量とのフィールドを有する。直近計測値情報400は、計測時刻に対応付けて各フィールドに情報を設定することにより、レコードとして記憶される。
計測時刻のフィールドには、風車110の風速、風車110の回転数、および、発電機120の発電量が計測された計測時刻が設定される。風車110の風速、風車110の回転数、および、発電機120の発電量のサンプリング間隔が異なる場合がある。この場合、計測時刻のフィールドには、風車110の風速、風車110の回転数、および、発電機120の発電量が取得された取得時刻が、計測時刻の代わりに設定されてもよい。
風速のフィールドには、計測時刻に計測された風車110の風速の計測値が設定される。回転数のフィールドには、計測時刻に計測された風車110の回転数の計測値が設定される。発電量のフィールドには、計測時刻に計測された発電機120の発電量の計測値が設定される。発電量は、1つ前の計測時刻から最新の計測時刻までの発電量である。
(風車トルク特性情報500の記憶内容)
次に、図5を用いて風車トルク特性情報500の記憶内容について説明する。風車トルク特性情報500は、例えば、図3に示した風車制御装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図5は、風車トルク特性情報500の記憶内容の一例を示す説明図である。図5に示すように、風車トルク特性情報500は、回転数と、風車トルクとのフィールドを有する。風車トルク特性情報500は、回転数ごとに各フィールドに情報を設定することにより、レコードとして記憶される。
風車トルク特性情報500は、基準風速における風車トルクの特性曲線を示す。基準風速は、例えば、5m/sである。回転数のフィールドには、風車110の回転数が設定される。風車トルクのフィールドには、基準風速における風車トルクの特性曲線上で、風車110の回転数に対応する風車トルクが設定される。
基準風速とは異なる風速における風車トルクの特性曲線は、基準風速における風車トルクの特性曲線から特定可能である。このため、風車トルク特性情報500は、基準風速とは異なる風速における風車トルクの特性曲線を示さなくてもよい。
(比率情報600の記憶内容)
次に、図6を用いて比率情報600の記憶内容について説明する。比率情報600は、例えば、図3に示した風車制御装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図6は、比率情報600の記憶内容の一例を示す説明図である。図6に示すように、比率情報600は、最大トルクに対する最大発電トルクの比率のフィールドを有する。比率情報600は、フィールドに情報を設定することにより、レコードとして記憶される。
最大トルクに対する最大発電トルクの比率のフィールドには、風車110の風車トルクの最大値である最大トルクに対する、発電機120の発電効率を最大化する風車110の風車トルクである最大発電トルクの比率が設定される。
(移動フラグ情報700の記憶内容)
次に、図7を用いて移動フラグ情報700の記憶内容について説明する。移動フラグ情報700は、例えば、図3に示した風車制御装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図7は、移動フラグ情報700の記憶内容の一例を示す説明図である。図7に示すように、移動フラグ情報700は、左への移動有無のフラグのフィールドを有する。移動フラグ情報700は、フィールドに情報を設定することにより、レコードとして記憶される。
左への移動有無のフラグのフィールドには、風車110の動作点を、特性曲線の山の左側に移動させるか否かを示すフラグが設定される。フラグは、1であれば、風車110の動作点を、特性曲線の山の左側に移動させることを示し、0であれば、風車110の動作点を、特性曲線の山の左側に移動させないことを示す。
(観測履歴800の記憶内容)
次に、図8を用いて観測履歴800の記憶内容について説明する。観測履歴800は、例えば、図3に示した風車制御装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図8は、観測履歴800の記憶内容の一例を示す説明図である。図8に示すように、観測履歴800は、計測時刻と、風速と、回転数と、発電量とのフィールドを有する。観測履歴800は、計測時刻ごとに各フィールドに情報を設定することにより、履歴情報がレコードとして記憶される。
計測時刻のフィールドには、風車110の風速、風車110の回転数、および、発電機120の発電量が計測された計測時刻が設定される。風車110の風速、風車110の回転数、および、発電機120の発電量のサンプリング間隔が異なる場合がある。この場合、計測時刻のフィールドには、風車110の風速、風車110の回転数、および、発電機120の発電量が取得された取得時刻が、計測時刻の代わりに設定されてもよい。
風速のフィールドには、計測時刻に計測された風車110の風速の計測値が設定される。回転数のフィールドには、計測時刻に計測された風車110の回転数の計測値が設定される。発電量のフィールドには、計測時刻に計測された発電機120の発電量の計測値が設定される。発電量は、1つ前の計測時刻から最新の計測時刻までの発電量である。
(行動価値テーブル900の記憶内容)
次に、図9を用いて行動価値テーブル900の記憶内容について説明する。行動価値テーブル900は、例えば、図3に示した風車制御装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図9は、行動価値テーブル900の記憶内容の一例を示す説明図である。図9に示すように、行動価値テーブル900は、1以上の風速と、1以上の回転数と、行動と、Q値とのフィールドを有する。行動価値テーブル900は、強化学習ごとに各フィールドに情報を設定することにより、行動価値情報がレコードとして記憶される。
風速のフィールドには、風速に対する条件が設定される。条件は、範囲である。図9の例では、風速1のフィールドには、現在の風速に対する条件が設定される。また、風速2のフィールドには、過去の風速に対する条件が設定される。回転数のフィールドには、風車110の回転数に対する条件が設定される。図9の例では、回転数1のフィールドには、現在の風車110の回転数に対する条件が設定される。また、回転数2のフィールドには、過去の風車110の回転数に対する条件が設定される。
行動のフィールドには、エージェントにより行動として決定された左への移動有無のフラグが設定される。Q値のフィールドには、現在および過去の風速および回転数が、風速および回転数のフィールドが示す条件に当てはまる場合に、決定された行動を行うと、報酬である発電機120の発電量の増加にどの程度寄与するかを示すQ値が設定される。
(行動履歴1000の記憶内容)
次に、図10を用いて行動履歴1000の記憶内容について説明する。行動履歴1000は、例えば、図3に示した風車制御装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図10は、行動履歴1000の記憶内容の一例を示す説明図である。図10に示すように、行動履歴1000は、計測時刻と、左への移動有無のフラグとのフィールドを有する。行動履歴1000は、計測時刻ごとに各フィールドに情報を設定することにより、履歴情報がレコードとして記憶される。
計測時刻のフィールドには、風車110の風速、風車110の回転数、および、発電機120の発電量が計測された計測時刻が設定される。風車110の風速、風車110の回転数、および、発電機120の発電量のサンプリング間隔が異なる場合がある。この場合、計測時刻のフィールドには、風車110の風速、風車110の回転数、および、発電機120の発電量が取得された取得時刻が、計測時刻の代わりに設定されてもよい。左への移動有無のフラグのフィールドには、計測時刻に計測された風車110の風速、風車110の回転数、発電機120の発電量に基づいて、エージェントにより決定された、左への移動有無のフラグが設定される。
(風車制御装置100の機能的構成例)
次に、図11を用いて、風車制御装置100の機能的構成例について説明する。
図11は、風車制御装置100の機能的構成例を示すブロック図である。風車制御装置100は、記憶部1100と、取得部1101と、負荷トルク制御部1102と、エージェント1103と、出力部1104とを含む。
記憶部1100は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部1100が、風車制御装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部1100が、風車制御装置100とは異なる装置に含まれ、記憶部1100の記憶内容が風車制御装置100から参照可能である場合があってもよい。
取得部1101〜出力部1104は、制御部となる機能である。取得部1101〜出力部1104は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
記憶部1100は、各機能部の処理に用いられる各種情報を記憶する。記憶部1100は、例えば、風速、風車110の風車トルク、風車110の回転数、および、発電機120の発電量などを記憶してもよい。記憶部1100は、例えば、風車110の風車トルクと、風車110の回転数との関係を表す特性曲線を示す情報を記憶してもよい。
記憶部1100は、例えば、強化学習アルゴリズム、および、行動選択アルゴリズムを記憶する。強化学習アルゴリズムは、例えば、Q−Learningアルゴリズムである。記憶部1100は、例えば、強化学習により学習された制御モデル、または、制御モデルにより決定された行動を記憶してもよい。
制御モデルは、例えば、観測値を入力されると行動を出力することができるモデルである。制御モデルは、例えば、観測値に対する条件に、観測値に対する条件を満たす場合にどのような行動を出力するかを対応付けたテーブルである。制御モデルは、例えば、数式モデルや決定木モデルであってもよい。記憶部1100は、具体的には、図4〜図10に示した各種テーブル400〜1000を記憶する。
取得部1101は、各機能部の処理に用いられる各種情報を記憶部1100から取得し、各機能部に出力する。取得部1101は、例えば、風速、風車110の風車トルク、風車110の回転数、および、発電機120の発電量などを取得してもよい。
取得部1101は、具体的には、風車110に設けられた計測機から、風車110の近傍での風速、風車110の風車トルク、および、風車110の回転数などの計測値を取得してもよい。取得部1101は、具体的には、発電機120に設けられた計測機から、発電機120の負荷トルクおよび発電機120の累積発電量などの計測値を取得してもよい。取得部1101は、具体的には、発電機120の累積発電量の差分から、一定時間における発電機120の発電量を取得してもよい。
負荷トルク制御部1102は、風速、および、風車110の回転数に基づいて、発電機120の負荷トルクを制御する。風車110は、風車110のピッチを制御する機能を有さなくてもよい。これにより、負荷トルク制御部1102は、エージェント1103の行動決定の実行間隔に関わらず、風速の変化に応じて発電機120の負荷トルクを制御する速度の低下を抑制することができ、動作点が意図せず移動してしまうことを防止することができる。
負荷トルク制御部1102は、例えば、風速、風車110の回転数、および、特性曲線上の現在の動作点に基づいて、発電機120の負荷トルクを制御する。これにより、負荷トルク制御部1102は、現在の動作点に合わせて負荷トルクを設定することができ、現在の動作点を維持しやすくすることができる。
具体的には、特性曲線上の現在の動作点が、極大点よりも風車110の回転数が小さい側の領域にある場合がある。極大点は、風車110の負荷トルクが極大になる点である。極大点よりも風車110の回転数が小さい側の領域は、山の左側の領域である。この場合、負荷トルク制御部1102は、発電機120の負荷トルクを、動作点の風車トルクより大きい値と、動作点の風車トルクより小さい値とに、交互に設定することにより、動作点を山の左側の領域で維持する。
ここで、動作点の風車トルクより大きい値は、例えば、負荷トルク上限である。また、動作点の風車トルクより大きい値は、負荷トルク上限よりも小さく、動作点の風車トルクに近い値であり、負荷トルクに負荷トルク上限を設定した場合に比べて、動作点が移動する速度を抑制することができる値であってもよい。
動作点の風車トルクより小さい値は、例えば、零である。また、動作点の風車トルクより小さい値は、零よりも大きく、動作点の風車トルクに近い値であり、負荷トルクに零を設定した場合に比べて、動作点が移動する速度を抑制することができる値であってもよい。これにより、負荷トルク制御部1102は、動作点を一定範囲に維持することができ、回転数の変動を抑制し、風車110にかかる負荷を抑制することができる。
また、具体的には、特性曲線上の現在の動作点が、極大点よりも風車110の回転数が大きい側の領域にある場合がある。極大点よりも風車110の回転数が大きい側の領域は、山の右側の領域である。この場合、負荷トルク制御部1102は、発電機120の負荷トルクを、発電機120の発電効率を最大化する最大発電トルクに設定することにより、動作点を山の右側の領域で維持する。また、負荷トルク制御部1102は、最大発電トルクが負荷トルク上限より大きければ、発電機120の負荷トルクを、負荷トルク上限に設定してもよい。これにより、負荷トルク制御部1102は、発電機120の発電効率の最大化を図ることができる。
負荷トルク制御部1102は、風速、風車110の回転数、および、発電機120による発電量に基づいて、発電機120の負荷トルクを制御してもよい。これにより、負荷トルク制御部1102は、最大トルクに対する最大発電トルクの比率を設定されなくても、発電機120による発電量が増大するように、負荷トルクの制御により動作点を制御することができる。
負荷トルク制御部1102は、エージェント1103より出力される行動が、動作点を山の左側の領域に移動させる行動である場合、発電機120の負荷トルクを制御することにより、動作点を山の左側の領域に移動させる。これにより、負荷トルク制御部1102は、ブレーキによる風車110が停止しないようにすることができ、長期的な発電効率の向上を図ることができる。
負荷トルク制御部1102は、例えば、発電機120の負荷トルクを、極大点の風車トルクより大きい値に設定することにより、動作点を山の左側の領域に移動させる。これにより、負荷トルク制御部1102は、動作点を山の左側に移動させる速度の向上を図ることができ、風速が変化する速度が大きい場合に対応しやすくすることができる。
エージェント1103は、学習時には、風速、および、風車110の回転数を観測値とし、発電機120による発電量を報酬とし、動作点を、山の左側の領域に移動させるか否かを行動とした強化学習を実行する。また、エージェント1103は、行動決定の動作時には、風速、および、風車110の回転数を観測値として、動作点を、山の左側の領域に移動させるか否かを行動とした出力を行う。エージェント1103は、例えば、Q−Learningアルゴリズムにより、動作点を、山の左側の領域に移動させるか否かを、強化学習し、また、行動決定の動作時に行動として出力する。
これにより、エージェント1103は、学習時には、観測値を入力されると行動を出力する制御モデルを、風速の変化傾向などの環境の性質に適合するように学習し、更新することができる。また、エージェント1103は、行動決定の動作時には、実際の風速の変化傾向に合わせて、報酬である発電量の最大化を図ることができる行動を決定することができる。ここで、エージェント1103が行動決定する間隔は、負荷トルク制御部1102が発電機120の負荷トルクを制御する間隔よりも長くてもよい。
出力部1104は、各機能部の処理結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、通信I/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部1104は、各機能部の処理結果を利用者に通知可能にし、風車制御装置100の管理や運用、例えば、風車制御装置100の設定値の更新などを支援することができ、風車制御装置100の利便性の向上を図ることができる。
(風力発電システム101の具体的な機能的構成例)
次に、図12を用いて、風力発電システム101の具体的な機能的構成例について説明する。
図12は、風力発電システム101の具体的な機能的構成例を示すブロック図である。風力発電システム101は、風車110と、発電機120と、計測部1201と、ブレーキ1202と、稼働・停止部1203と、電力消費先1204と、風車制御装置100とを含む。
風車110は、風を受け、風力を風車トルクに変換し、発電機120の軸に回転エネルギーとして伝達する。稼働・停止部1203は、風速の増加に伴い、ブレーキ1202を制御して、風車110を停止させるか、風車110を稼働させるかを決定する。ブレーキ1202は、稼働・停止部1203の制御に従って、風車110を停止する。稼働・停止部1203は、風車制御装置100が有してもよい。
発電機120は、風車110から回転エネルギーとして軸に伝達された風車トルクを用いて発電を行い、電力消費先1204に供給する。電力消費先1204は、発電された電力を消費する。計測部1201は、風速、風車110の風車トルク、風車110の回転数、および、発電機120の累計発電量を計測し、計測値を出力する。
風車制御装置100は、計測値取得部1211と、左右指定部1212と、左側維持部1213と、追随制御部1214と、負荷トルク設定部1215とを含む。図11に示した負荷トルク制御部1102は、例えば、計測値取得部1211と、左右指定部1212と、左側維持部1213と、追随制御部1214と、負荷トルク設定部1215とによって実現される。
計測値取得部1211は、一定時間ごとに、風速、風車110の風車トルク、風車110の回転数、および、発電機120の累計発電量の計測値を、計測部1201から取得する。計測値取得部1211は、取得した計測値に基づいて、図4に示した直近計測値情報400を更新する。
左右指定部1212は、一定時間ごとに、左側維持部1213または追随制御部1214に、制御指示を出力する。制御指示は、例えば、図4に示した直近計測値情報400と、図5に示した風車トルク特性情報500と、図6に示した比率情報600とに基づいて生成される。左右指定部1212は、例えば、図7に示した移動フラグ情報700が動作点を山の左側に移動させることを示せば、左側維持部1213に、制御指示を出力する。一方で、左右指定部1212は、例えば、図7に示した移動フラグ情報700が動作点を山の左側に移動させないことを示せば、追随制御部1214に、制御指示を出力する。
左側維持部1213は、負荷トルク設定部1215を介して発電機120の負荷トルクを制御することにより、風車110の動作点を特性曲線の山の左側に維持する。左側維持部1213は、負荷トルク設定部1215に、発電機120の負荷トルクを、現在の風車110の動作点の風車トルクより大きい値と小さい値とに交互に設定させることにより、風車110の動作点を特性曲線の山の左側に維持する。
追随制御部1214は、負荷トルク設定部1215を介して発電機120の負荷トルクを制御することにより、風車110の動作点を特性曲線の山の右側に維持する。追随制御部1214は、負荷トルク設定部1215に、発電機120の負荷トルクを、発電機120の発電効率を最大化する最大発電トルクに設定させることにより、動作点を山の右側の領域で維持し、発電機120の発電効率の最大化を図る。
負荷トルク設定部1215は、左側維持部1213または追随制御部1214の制御に従って、発電機120の負荷トルクを設定する。
また、風車制御装置100は、観測部1221と、報酬関数部1222と、状態更新部1223と、行動決定部1224とを含む。図11に示したエージェント1103は、例えば、観測部1221と、報酬関数部1222と、状態更新部1223と、行動決定部1224とによって実現される。
観測部1221は、一定時間ごとに、風速、風車110の風車トルク、風車110の回転数、および、発電機120の累計発電量の計測値を、計測部1201から取得する。観測部1221は、取得した計測値を、図8に示した観測履歴800に記憶する。
報酬関数部1222は、図8に示した観測履歴800から発電機120の発電量を取得し、発電機120の発電量に対応する報酬値を算出し、状態更新部1223に出力する。
状態更新部1223は、強化学習を実行し、図8に示した観測履歴800から風速および風車110の回転数を取得し、報酬関数部1222から報酬値を取得し、図10に示した行動履歴1000を取得し、図9に示した行動価値テーブル900を更新する。
行動決定部1224は、図9に示した行動価値テーブル900に基づいて、風車110の動作点を、特性曲線の山の左側に移動させるか否かを、行動として決定する。行動決定部1224は、決定した行動に基づいて、図7に示した移動フラグ情報700を更新し、図10に示した行動履歴1000を更新する。
(風車トルク特性に基づく発電機120の負荷トルクの制御指標)
図13〜図19を用いて、風車トルク特性に基づく発電機120の負荷トルクの制御指標について説明する。
図13〜図19は、風車トルク特性に基づく発電機120の負荷トルクの制御指標を示す説明図である。図13の例では、表1300を示し、風速ごとの風車トルク特性と、風速ごとの発電量特性とを示す。風速ごとの風車トルク特性は、曲線1321〜1323である。風車トルク特性は、山なりの特性である。風速ごとの発電量特性は、曲線1311〜1313である。発電量特性は、山なりの特性である。風速の変化に対する、発電機120の発電量を最大化することができる風車110の回転数および風車110の風車トルクの組み合わせを示す最大発電量点は、曲線1301上にある。
このため、風車110の動作点は、曲線1301と曲線1321〜1323の交点となる最大発電量点a0,a1,a2に設定することが好ましく、山の右側にすることが好ましいという制御指標が得られる。次に、図14の説明に移行する。
図14の例では、表1400を示し、風速ごとの風車トルク特性と、風速ごとの発電量特性とを示す。風速V1,V2の風車トルク特性は、曲線1421,1422である。風速V1<風速V2である。風速V1,V2の発電量特性は、曲線1411,1412である。風速の変化に対する、発電機120の発電量を最大化することができる風車110の回転数および風車110の風車トルクの組み合わせを示す最大発電量点は、曲線1401上にある。
風速V1で動作点a1であると、風速がV1からV2に増加したとき、負荷トルクが一定であれば、風速の増加により動作点がa1からa2Bに移動する。このため、風速がV1からV2に増加した場合は、風速V2の最大発電量点a2の風車トルクと釣り合う大きさの負荷トルクを設定し、風車110の動作点を最大発電量点a2に移動することが好ましいという制御指標が得られる。次に、図15の説明に移行する。
図15の例では、表1500を示し、風速ごとの風車トルク特性と、風速ごとの発電量特性とを示し、風車110が破損する恐れがある回転数上限を示す。また、負荷トルクに設定可能な負荷トルク上限がある。風速V2,V3,V4の風車トルク特性は、曲線1511,1512,1513である。風速V2<風速V3<風速V4である。風速V2,V3,V4の発電量特性は、曲線1511,1512,1513である。風速の変化に対する、発電機120の発電量を最大化することができる風車110の回転数および風車110の風車トルクの組み合わせを示す最大発電量点は、曲線1501上にある。
ここで、風速V3では、発電機120の負荷トルクを負荷トルク上限に設定しても、風車110の動作点を、最大発電量点a3にすることができない。また、風車110の回転数が、回転数上限を超えると、ブレーキ1202が作動し、風車110の回転が停止され、発電機120による発電が停止される。このため、風速V3から風速V4に増加すると、風車110の動作点がa4に移動し、風車110の回転数が回転数上限を超えてしまい、ブレーキ1202が作動し、風車110の回転が停止される。風車110の回転が一度停止すると、風車110の再稼働に時間がかかり、長期的な発電効率の低下を招く。次に、図16の説明に移行する。
図16の例では、表1600を示す。表1600は、表1500と同様である。図15に示したように、風速V4になると、風車110の動作点がa4に移動し、風車110の回転数が回転数上限を超えてしまい、ブレーキ1202が作動してしまう。
このため、風速V4の場合、風車110の動作点を、特性曲線の山の左側の点a4Lにすることが好ましいという制御指標を得ることができる。しかしながら、風速V2を超えた場合、負荷トルクを負荷トルク上限に設定しても、風車110の動作点を山の右側から左側に移動することができないため、風速V2を超える前に移動させることが好ましいという制御指標を得ることができる。一方で、風速V4に達せず、風速V3付近で風速が変動する場合、可能であれば風車110の動作点を、山の右側にすることが好ましいという制御指標を得ることができる。次に、図17の説明に移行する。
図17の例では、表1700を示し、風速ごとの風車トルク特性を示し、風車110の動作点を山の右側に維持する場合について示す。風速V1,V2の風車トルク特性は、曲線1701,1702である。風速V1<風速V2である。
ここで、山の右側では、風車110の動作点は、風車トルクと負荷トルクとに差がある場合、風車トルクと負荷トルクとが釣り合う方向へ移動するという性質がある。また、風速が増加時は回転数が増加し、風速が減少時は回転数が減少するという性質がある。
このため、負荷トルクを設定してから時間が経過しても、風車110の動作点は、風車トルクと負荷トルクとが釣り合う点で停止するので、負荷トルクを制御する時間間隔は比較的長くてもよいという制御指標が得られる。次に、図18の説明に移行する。
図18の例では、表1800を示し、風速ごとの風車トルク特性を示し、風車110の動作点を山の左側に維持する場合について示す。風速V1,V2の風車トルク特性は、曲線1801,1802である。風速V1<風速V2である。
ここで、山の左側は、不安定領域であり、山の左側では、風車110の動作点は、風車トルクと負荷トルクとに差がある場合、風車トルクと負荷トルクとが離れる方向へ移動するという性質がある。また、風速が増加時は回転数が増加し、風速が減少時は回転数が減少するという性質がある。
このため、負荷トルクを設定してから時間が経過すると、風車110の動作点は、風車トルクと負荷トルクとが離れていき、回転数は加速度的に変化する傾向があり、負荷トルクを制御する時間間隔は比較的短くすることが好ましいという制御指標が得られる。回転数が変化する速度は、例えば、下記式(1)に基づいて特定される。
Iは、慣性モーメントである。慣性モーメントは、回転体が同じ回転運動を保ち続けようとする回転の慣性の大きさである。慣性モーメントが小さいほど、定常状態までの回転数の変化スピードは早くなる。慣性モーメントは、重さや長さが小さいほど小さな値となる。このため、慣性モーメントは、小型風力発電システム101では小さくなりやすい。
TUは、風車トルクである。λは、周速比である。Uは、風速である。風速が大きいほど、風車トルクの絶対値は大きくなる。TLは、負荷トルクである。上記式(1)の右辺が大きいほど、回転数の変化量dw/dtは大きくなるため、風速が上がると、回転数が変化する速度が上がりやすい。次に、図19の説明に移行する。
図19の例では、表1900を示し、風速ごとの風車トルク特性を示し、風車110の動作点を山の左側に維持する場合についてさらに示す。風車トルク特性は、曲線1901である。山の左側では、風車110の動作点は、風車トルクと負荷トルクとに差がある場合、風車トルクと負荷トルクとが離れる方向へ移動するという性質がある。
このため、回転数を減少方向に動かすための負荷トルクと、回転数を増加方向に動かすための負荷トルクとを交互に設定することにより、風車110の動作点を、零にせず、一定範囲内に収めることが好ましいという制御指標が得られる。回転数を減少方向に動かすための負荷トルクは、山の左側の現在の動作点の風車トルクより大きい。回転数を増加方向に動かすための負荷トルクは、山の左側の現在の動作点の風車トルクより小さい。ここで、風車110の動作点を収める範囲を徐々に狭めることが好ましい。
(発電機120の負荷トルクを制御する流れ)
次に、図20を用いて、図13〜図19に示した制御指標を考慮して、風車制御装置100が発電機120の負荷トルクを制御する流れについて説明する。
図20は、発電機120の負荷トルクを制御する流れを示す説明図である。図20において、風車制御装置100は、風車110の動作点が、山の右側になるように、負荷トルクを制御する。風車制御装置100は、エージェント1103により、風車110の動作点を、山の左側へ移動させるタイミングが決定されると、風車110の動作点を、山の左側に移動させ、風車110の動作点が、山の左側で維持されるように、負荷トルクを制御する。負荷トルクを制御する間隔は、エージェント1103による行動決定にかかる時間より短くなるように設定することが好ましい。
表2010は、風車110の動作点が、山の右側になるように、負荷トルクを制御する場合に対応する。風車トルク特性は、曲線2011である。発電機120の発電量を最大化することができる風車110の回転数および風車110の風車トルクの組み合わせを示す最大発電量点は、曲線2012上にある。風車制御装置100は、例えば、計測機から風速を取得し、最大発電点の負荷トルクを算出して、発電機120に設定する。
また、風車制御装置100は、例えば、回転数が、極大点の回転数、または、極大点の回転数+マージンまで下がれば、負荷トルクを下げるように制御する。風車制御装置100は、具体的には、負荷トルクを、動作点を最大発電点に近づける値として、負荷トルク0、または、直前の設定値の80%などに設定する。
また、風車制御装置100は、例えば、回転数が、回転数上限、または、回転数上限−マージンまで上がれば、負荷トルクを上げるように制御する。風車制御装置100は、具体的には、負荷トルクを、風速増加による回転エネルギーを吸収する値として、負荷トルク上限、または、直前の設定値の120%などに設定する。
表2020は、風車110の動作点が、山の左側になるように、負荷トルクを制御する場合に対応する。風車トルク特性は、曲線2021である。風車制御装置100は、例えば、計測機から風速を取得し、現在の風車トルクを算出する。
風車制御装置100は、例えば、算出した風車トルクが目標トルクより大きければ、同じ回転数で風速120%の風車トルクを、負荷トルクに設定する。目標トルクは、例えば、負荷トルク上限−マージンである。そして、風車制御装置100は、風速が上がっても、風速120%までは許容し、回転数と風車トルクとを減少方向に変化させる。
風車制御装置100は、例えば、算出した風車トルクが目標トルクより小さければ、同じ回転数で風速80%の風車トルクを、負荷トルクに設定する。そして、風車制御装置100は、風速が下がっても、風速80%までは許容し、回転数と風車トルクとを増加方向に変化させる。
風車制御装置100は、例えば、動作点が山の右側の場合、負荷トルク上限を、負荷トルクに設定する。そして、風車制御装置100は、回転数を減少方向に変化させる。これにより、風車制御装置100は、エージェント1103の行動決定にかかる時間に関わらず、負荷トルクの制御により風車トルクと回転数を安定して制御することができ、発電効率の最大化を図ることができる。
(発電機120の負荷トルクを制御する動作例)
次に、図21〜図30を用いて、風車制御装置100が発電機120の負荷トルクを制御する動作例について説明する。
図21〜図30は、発電機120の負荷トルクを制御する動作例を示す説明図である。図21〜図30の例では、風速は、1秒間隔で計測される。また、回転数は、負荷トルクの制御間隔に合わせて計測される。制御間隔は、例えば、0.01〜0.1秒である。発電量は、1秒間隔で積算値の差分が計測される。以下の説明では、風速、回転数、発電量をまとめて取得した時刻を「計測時刻」と表記する場合がある。
また、風速6m/s超の場合、風車トルクは、負荷トルク上限を超える。また、風速8m/s以上の場合、負荷トルクを負荷トルク上限に設定しても、回転数は、回転数上限500rpmを超過する。また、発電電力は、風速6m/sで20W程度であり、測定値である積算電力値としては5.5mWh程度である。強化学習は、風速および回転数を、それぞれ、1m/s、50rpmの幅で離散化し、Q−Learningにより行われる。次に、図21および図22の説明に移行する。
図21および図22の例は、風速5m/s〜7m/sである地域Aにおいて、風車110の動作点を山の右側にした場合の、強化学習による行動価値の変化を示す。まず、図21の説明に移行する。
図21の最初の状態は、風速6m/sにおいて、左への移動有無のフラグ=0であり、風車制御装置100が風車110の動作点を山の右側で制御している状態である。
(21−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速7m/sなどの計測値を取得し、観測履歴800にレコード2101を追加する。発電量は、1つ前の計測時刻での行動の結果である。
(21−2)風車制御装置100は、報酬を算出する。風車制御装置100は、例えば、直近の発電量5.03を、報酬として用いる。風車制御装置100は、1つ前の計測時刻での行動の価値としてQ値2.51を算出する。
風車制御装置100は、行動価値テーブル900から、1つ前の計測時刻の風速および回転数と、2つ前の計測時刻での風速および回転数とが条件に当てはまり、1つ前の計測時刻での行動を示すレコード2102を特定する。風車制御装置100は、特定したレコード2102のQ値を、算出したQ値で更新する。
これにより、風車制御装置100は、様々な環境の変化に対して、風車110の動作点を山の右側にしたことが、発電機120の発電効率の最大化の観点から、どの程度好ましい行動であったかを示す情報を記憶することができる。次に、図22の説明に移行する。
図22の例は、図21の例の続きである。図22の最初の状態は、図21の最後の状態の次の計測時刻でも風速7m/sであり、風車制御装置100が風車110の動作点を山の右側で制御している状態である。
(22−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速7m/sなどの計測値を取得し、観測履歴800にレコード2201を追加する。発電量は、1つ前の計測時刻での行動の結果である。
(22−2)風車制御装置100は、報酬を算出する。風車制御装置100は、例えば、直近の発電量8.56を、報酬として用いる。風車制御装置100は、1つ前の計測時刻での行動の価値としてQ値4.28を算出する。
風車制御装置100は、行動価値テーブル900から、1つ前の計測時刻の風速および回転数と、2つ前の計測時刻での風速および回転数とが条件に当てはまり、1つ前の計測時刻での行動を示すレコード2202を特定する。風車制御装置100は、特定したレコード2202のQ値を、算出したQ値で更新する。
これにより、風車制御装置100は、様々な環境の変化に対して、風車110の動作点を山の右側にしたことが、発電機120の発電効率の最大化の観点から、どの程度好ましい行動であったかを示す情報を記憶することができる。次に、図23および図24の説明に移行する。
図23および図24の例は、図21および図22と同じく風速5m/s〜7m/sである地域Aにおいて、図21および図22とは異なり風車110の動作点を山の左側にした場合の、強化学習による行動価値の変化を示す。まず、図23の説明に移行する。
図23の最初の状態は、風速6m/sにおいて、左への移動有無のフラグ=1であり、風車制御装置100が風車110の動作点を山の左側で制御している状態である。
(23−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速7m/sなどの計測値を取得し、観測履歴800にレコード2301を追加する。発電量は、1つ前の計測時刻での行動の結果である。
(23−2)風車制御装置100は、報酬を算出する。風車制御装置100は、例えば、直近の発電量4.75を、報酬として用いる。風車制御装置100は、1つ前の計測時刻での行動の価値としてQ値2.37を算出する。
風車制御装置100は、行動価値テーブル900から、1つ前の計測時刻の風速および回転数と、2つ前の計測時刻での風速および回転数とが条件に当てはまり、1つ前の計測時刻での行動を示すレコード2302を特定する。風車制御装置100は、特定したレコード2302のQ値を、算出したQ値で更新する。
これにより、風車制御装置100は、様々な環境の変化に対して、風車110の動作点を山の左側にしたことが、発電機120の発電効率の最大化の観点から、どの程度好ましい行動であったかを示す情報を記憶することができる。風車制御装置100は、例えば、レコード2102と、レコード2302のように、風速および回転数の条件が同じ、かつ、行動が異なるレコードを記憶することができる。
このため、風車制御装置100は、現在および過去の風速および回転数が、風速および回転数の条件に当てはまる場合、いずれの行動を行った方が、Q値が大きいかを特定可能にすることができる。Q値が大きい行動の方が、発電機120の発電効率の最大化の観点から好ましい行動である。次に、図24の説明に移行する。
図24の例は、図23の例の続きである。図24の最初の状態は、図23の最後の状態の次の計測時刻でも風速7m/sであり、風車制御装置100が風車110の動作点を山の左側で制御している状態である。
(24−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速7m/sなどの計測値を取得し、観測履歴800にレコード2401を追加する。発電量は、1つ前の計測時刻での行動の結果である。
(24−2)風車制御装置100は、報酬を算出する。風車制御装置100は、例えば、直近の発電量3.31を、報酬として用いる。風車制御装置100は、1つ前の計測時刻での行動の価値としてQ値1.65を算出する。
風車制御装置100は、行動価値テーブル900から、現在の計測時刻の風速および回転数と、1つ前の計測時刻での風速および回転数とが条件に当てはまり、1つ前の計測時刻での行動を示すレコード2402を特定する。風車制御装置100は、特定したレコード2402のQ値を、算出したQ値で更新する。
これにより、風車制御装置100は、様々な環境の変化に対して、風車110の動作点を山の左側にしたことが、発電機120の発電効率の最大化の観点から、どの程度好ましい行動であったかを示す情報を記憶することができる。風車制御装置100は、例えば、レコード2202と、レコード2402のように、風速および回転数の条件が同じ、かつ、行動が異なるレコードを記憶することができる。
このため、風車制御装置100は、現在および過去の風速および回転数が、風速および回転数の条件に当てはまる場合、いずれの行動を行った方が、Q値が大きいかを特定可能にすることができる。Q値が大きい行動の方が、発電機120の発電効率の最大化の観点から好ましい行動である。次に、図25および図26の説明に移行する。
図25および図26の例は、風速5m/s〜8m/sである地域Bにおいて、風車110の動作点を山の右側にした場合の、強化学習による行動価値の変化を示す。まず、図25の説明に移行する。
図25の最初の状態は、風速6m/sにおいて、左への移動有無のフラグ=0であり、風車制御装置100が風車110の動作点を山の右側で制御している状態である。
(25−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速7m/sなどの計測値を取得し、観測履歴800にレコード2501を追加する。発電量は、1つ前の計測時刻での行動の結果である。
(25−2)風車制御装置100は、報酬を算出する。風車制御装置100は、例えば、直近の発電量5.03を、報酬として用いる。風車制御装置100は、1つ前の計測時刻での行動の価値としてQ値2.51を算出する。
風車制御装置100は、行動価値テーブル900から、1つ前の計測時刻の風速および回転数と、2つ前の計測時刻での風速および回転数とが条件に当てはまり、1つ前の計測時刻での行動を示すレコード2502を特定する。風車制御装置100は、特定したレコード2502のQ値を、算出したQ値で更新する。
これにより、風車制御装置100は、様々な環境の変化に対して、風車110の動作点を山の右側にしたことが、発電機120の発電効率の最大化の観点から、どの程度好ましい行動であったかを示す情報を記憶することができる。次に、図26の説明に移行する。
図26の例は、図25の例の続きである。図26の最初の状態は、図25の最後の状態の次の計測時刻でも風速7m/sであり、風車制御装置100が風車110の動作点を山の右側で制御した後の状態である。図26の最初の状態は、さらに次の計測時刻で風速8m/sであり、風車110の動作点を山の右側で制御している状態である。
(26−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速8m/sなどの計測値を取得し、観測履歴800にレコード2601を追加する。発電量は、1つ前の計測時刻での行動の結果である。ここで、風速8m/sのため、ブレーキにより風車110の回転が停止され、発電量が小さくなってしまう。
(26−2)風車制御装置100は、報酬を算出する。風車制御装置100は、例えば、直近の発電量0.85を、報酬として用いる。風車制御装置100は、1つ前の計測時刻での行動の価値としてQ値0.42を算出する。
風車制御装置100は、行動価値テーブル900から、1つ前の計測時刻の風速および回転数と、2つ前の計測時刻での風速および回転数とが条件に当てはまり、1つ前の計測時刻での行動を示すレコード2602を特定する。風車制御装置100は、特定したレコード2602のQ値を、算出したQ値で更新する。
これにより、風車制御装置100は、様々な環境の変化に対して、風車110の動作点を山の右側にしたことが、発電機120の発電効率の最大化の観点から、どの程度好ましい行動であったかを示す情報を記憶することができる。また、風車制御装置100は、地域Aの風力発電システムと地域Bの風力発電システムとで、異なる行動価値テーブル900を生成可能にすることができる。次に、図27および図28の説明に移行する。
図27および図28の例は、図25および図26と同じく風速5m/s〜8m/sである地域Bにおいて、図25および図26とは異なり風車110の動作点を山の左側にした場合の、強化学習による行動価値の変化を示す。まず、図27の説明に移行する。
図27の最初の状態は、風速6m/sにおいて、左への移動有無のフラグ=1であり、風車制御装置100が風車110の動作点を山の左側で制御している状態である。
(27−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速7m/sなどの計測値を取得し、観測履歴800にレコード2701を追加する。発電量は、1つ前の計測時刻での行動の結果である。
(27−2)風車制御装置100は、報酬を算出する。風車制御装置100は、例えば、直近の発電量4.75を、報酬として用いる。風車制御装置100は、1つ前の計測時刻での行動の価値としてQ値2.37を算出する。
風車制御装置100は、行動価値テーブル900から、1つ前の計測時刻の風速および回転数と、2つ前の計測時刻での風速および回転数とが条件に当てはまり、1つ前の計測時刻での行動を示すレコード2702を特定する。風車制御装置100は、特定したレコード2702のQ値を、算出したQ値で更新する。
これにより、風車制御装置100は、様々な環境の変化に対して、風車110の動作点を山の左側にしたことが、発電機120の発電効率の最大化の観点から、どの程度好ましい行動であったかを示す情報を記憶することができる。風車制御装置100は、例えば、レコード2502と、レコード2702のように、風速および回転数の条件が同じ、かつ、行動が異なるレコードを記憶することができる。
このため、風車制御装置100は、現在および過去の風速および回転数が、風速および回転数の条件に当てはまる場合、いずれの行動を行った方が、Q値が大きいかを特定可能にすることができる。Q値が大きい行動の方が、発電機120の発電効率の最大化の観点から好ましい行動である。次に、図28の説明に移行する。
図28の例は、図27の例の続きである。図28の最初の状態は、図27の最後の状態の次の計測時刻でも風速7m/sであり、風車制御装置100が風車110の動作点を山の左側で制御した後の状態である。図28の最初の状態は、さらに次の計測時刻で風速8m/sであり、風車制御装置100が風車110の動作点を山の左側で制御している状態である。
(28−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速7m/sなどの計測値を取得し、観測履歴800にレコード2801を追加する。発電量は、1つ前の計測時刻での行動の結果である。ここで、風車110の動作点を山の左側で制御したため、ブレーキにより風車110の回転が停止されず、回転が停止した場合に比べて発電量が大きくなっている。
(28−2)風車制御装置100は、報酬を算出する。風車制御装置100は、例えば、直近の発電量3.27を、報酬として用いる。風車制御装置100は、1つ前の計測時刻での行動の価値としてQ値1.63を算出する。
風車制御装置100は、行動価値テーブル900から、現在の計測時刻の風速および回転数と、1つ前の計測時刻での風速および回転数とが条件に当てはまり、1つ前の計測時刻での行動を示すレコード2802を特定する。風車制御装置100は、特定したレコード2802のQ値を、算出したQ値で更新する。
これにより、風車制御装置100は、様々な環境の変化に対して、風車110の動作点を山の左側にしたことが、発電機120の発電効率の最大化の観点から、どの程度好ましい行動であったかを示す情報を記憶することができる。風車制御装置100は、例えば、レコード2602と、レコード2802のように、風速および回転数の条件が同じ、かつ、行動が異なるレコードを記憶することができる。
このため、風車制御装置100は、現在および過去の風速および回転数が、風速および回転数の条件に当てはまる場合、いずれの行動を行った方が、Q値が大きいかを特定可能にすることができる。Q値が大きい行動の方が、発電機120の発電効率の最大化の観点から好ましい行動である。風車制御装置100は、具体的には、風車110の動作点を山の左側で制御する行動の方が、ブレーキにより風車110の回転が停止されないため好ましいことを特定可能にすることができる。また、風車制御装置100は、地域Aの風力発電システムと地域Bの風力発電システムとで、異なる行動価値テーブル900を生成可能にすることができる。次に、図29の説明に移行する。
図29の例は、風速5m/s〜7m/sである地域Aにおいて、風車制御装置100が、行動価値テーブル900に基づいて、エージェント1103により行動を決定する一例を示す。図29の最初の状態は、風速6m/sの状態である。
(29−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速6m/sなどの計測値を取得し、観測履歴800にレコード2901を追加する。発電量は、1つ前の計測時刻での行動の結果である。
(29−2)風車制御装置100は、行動価値テーブル900に基づいて、現在の計測時刻の風速および回転数と、1つ前の計測時刻での風速および回転数とが条件に当てはまるレコード2902,2903を特定する。そして、風車制御装置100は、レコード2902,2903のうちQ値が大きい方のレコード2902が示す行動を、次の行動に決定する。
これにより、風車制御装置100は、地域Aにおける様々な環境の変化に対して、発電機120の発電効率の最大化の観点から好ましい行動を決定することができる。風車制御装置100は、例えば、地域Aにおける様々な環境の変化に対して発電機120の発電効率の最大化するように、風車110の動作点を山の左側に移動させるか否かを決定することができる。次に、図30の説明に移行する。
図30の例は、風速5m/s〜8m/sである地域Bにおいて、風車制御装置100が、行動価値テーブル900に基づいて、エージェント1103により行動を決定する一例を示す。図30の最初の状態は、風速6m/sの状態である。
(30−1)風車制御装置100は、計測部から計測値を取得し、観測履歴800へ追加する。風車制御装置100は、例えば、新たに風速6m/sなどの計測値を取得し、観測履歴800にレコード3001を追加する。発電量は、1つ前の計測時刻での行動の結果である。
(30−2)風車制御装置100は、行動価値テーブル900に基づいて、現在の計測時刻の風速および回転数と、1つ前の計測時刻での風速および回転数とが条件に当てはまるレコード3002,3003を特定する。そして、風車制御装置100は、レコード3002,3003のうちQ値が大きい方のレコード3003が示す行動を、次の行動に決定する。
これにより、風車制御装置100は、地域Aにおける様々な環境の変化に対して、発電機120の発電効率の最大化の観点から好ましい行動を決定することができる。風車制御装置100は、例えば、地域Aにおける様々な環境の変化に対して発電機120の発電効率を最大化するように、風車110の動作点を山の左側に移動させるか否かを決定することができる。
(全体処理手順)
次に、図31を用いて、風車制御装置100が実行する、全体処理手順の一例について説明する。全体処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図31は、全体処理手順の一例を示すフローチャートである。図31において、まず、風車制御装置100は、風速、回転数、および、発電量を、それぞれに対応するサンプリング間隔で計測する(ステップS3101)。次に、風車制御装置100は、計測値を取得し、直近の計測値を更新する(ステップS3102)。そして、風車制御装置100は、計測値を取得し、観測履歴800を更新する(ステップS3103)。
次に、風車制御装置100は、風速および回転数の計測値に基づいて、図32に後述する稼働・停止処理を実行する(ステップS3104)。そして、風車制御装置100は、図33に後述する強化学習処理を実行し、左への移動有無フラグを更新する(ステップS3105)。その後、風車制御装置100は、図34に後述する負荷トルク制御処理を実行し、発電機120の負荷トルクを設定する(ステップS3106)。
次に、風車制御装置100は、全体処理を終了するか否かを判定する(ステップS3107)。ここで、全体処理を終了しない場合(ステップS3107:No)、風車制御装置100は、ステップS3101の処理に移行する。一方で、全体処理を終了する場合(ステップS3107:Yes)、風車制御装置100は、全体処理を終了する。
(稼働・停止処理手順)
次に、図32を用いて、風車制御装置100が実行する、稼働・停止処理手順の一例について説明する。稼働・停止処理手順は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図32は、稼働・停止処理手順の一例を示すフローチャートである。図32において、風車制御装置100は、最新の風速および回転数を取得する(ステップS3201)。
次に、風車制御装置100は、取得した風速がカットオフ風速以上であるか否かを判定する(ステップS3202)。ここで、カットオフ風速以上である場合(ステップS3202:Yes)、風車制御装置100は、ステップS3205の処理に移行する。一方で、カットオフ風速未満である場合(ステップS3202:No)、風車制御装置100は、ステップS3203の処理に移行する。
ステップS3203では、風車制御装置100は、取得した風速がカットイン風速未満であるか否かを判定する(ステップS3203)。ここで、カットイン風速未満である場合(ステップS3203:Yes)、風車制御装置100は、ステップS3205の処理に移行する。一方で、カットイン風速以上である場合(ステップS3203:No)、風車制御装置100は、ステップS3204の処理に移行する。
ステップS3204では、風車制御装置100は、取得した回転数が、回転数上限に関する閾値以上であるか否かを判定する(ステップS3204)。ここで、回転数上限に関する閾値以上である場合(ステップS3204:Yes)、風車制御装置100は、ステップS3205の処理に移行する。一方で、回転数上限に関する閾値未満である場合(ステップS3204:No)、風車制御装置100は、ステップS3206の処理に移行する。
ステップS3205では、風車制御装置100は、ブレーキにより風車110を停止する(ステップS3205)。そして、風車制御装置100は、稼働・停止処理を終了する。
ステップS3206では、風車制御装置100は、ブレーキによる風車110の停止を解除する(ステップS3206)。そして、風車制御装置100は、稼働・停止処理を終了する。
(強化学習処理手順)
次に、図33を用いて、風車制御装置100が実行する、強化学習処理手順の一例について説明する。強化学習処理手順は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図33は、強化学習処理手順の一例を示すフローチャートである。図33において、風車制御装置100は、観測履歴800の直近K個のレコードを取得する(ステップS3301)。
次に、風車制御装置100は、行動履歴から1つ前の行動を取得する(ステップS3302)。そして、風車制御装置100は、前回の強化学習処理までの累積発電量と今回の強化学習処理までの累積発電量の差分である、直近の発電量を報酬として算出する(ステップS3303)。
次に、風車制御装置100は、K個の風速および回転数の組み合わせを状態とし、取得した1つ前の行動と、算出した報酬とに基づいて、強化学習アルゴリズムにより、行動価値テーブル900を更新する(ステップS3304)。
そして、風車制御装置100は、K個の風速および回転数の組み合わせを状態とし、行動価値テーブル900を参照し、行動選択アルゴリズムにより、左への移動有無を行動として決定し、左への移動有無フラグを更新する(ステップS3305)。その後、風車制御装置100は、強化学習処理を終了する。
(負荷トルク制御処理手順)
次に、図34を用いて、風車制御装置100が実行する、負荷トルク制御処理手順の一例について説明する。負荷トルク制御処理手順は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図34は、負荷トルク制御処理手順の一例を示すフローチャートである。図34において、風車制御装置100は、直近の計測値から、最新の風速、回転数、および、発電量を取得する(ステップS3401)。
次に、風車制御装置100は、左への移動有無のフラグを取得する(ステップS3402)。そして、風車制御装置100は、風車トルク特性を取得する(ステップS3403)。
次に、風車制御装置100は、風車110の動作点を山の左側に移動させるか否かを判定する(ステップS3404)。ここで、山の左側に移動させる場合(ステップS3404:Yes)、風車制御装置100は、ステップS3405の処理に移行する。一方で、山の左側に移動させない場合(ステップS3404:No)、風車制御装置100は、ステップS3406の処理に移行する。
ステップS3405では、風車制御装置100は、図35に後述する左側制御処理を実行し、発電機120の負荷トルクの設定値を決定する(ステップS3405)。そして、風車制御装置100は、ステップS3407の処理に移行する。
ステップS3406では、風車制御装置100は、図36に後述する右側制御処理を実行し、発電機120の負荷トルクの設定値を決定する(ステップS3406)。そして、風車制御装置100は、ステップS3407の処理に移行する。
ステップS3407では、風車制御装置100は、決定した発電機120の負荷トルクの設定値を、発電機120に設定する(ステップS3407)。そして、風車制御装置100は、負荷トルク制御処理を終了する。
(左側制御処理手順)
次に、図35を用いて、風車制御装置100が実行する、左側制御処理手順の一例について説明する。左側制御処理手順は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図35は、左側制御処理手順の一例を示すフローチャートである。図35において、風車制御装置100は、最新の風速および回転数と、風車トルク特性とに基づいて、現在の風車トルクを算出する(ステップS3501)。
次に、風車制御装置100は、算出した風車トルクが山の左側における基準トルク以上であるか否かを判定する(ステップS3502)。ここで、基準トルク以上である場合(ステップS3502:Yes)、風車制御装置100は、ステップS3503の処理に移行する。一方で、基準トルク未満である場合(ステップS3502:No)、風車制御装置100は、ステップS3504の処理に移行する。
ステップS3503では、風車制御装置100は、最新の回転数と同じ回転数において最新の風速よりも増加方向に調整した風速に対応する風車トルクを算出し、発電機120の負荷トルクの設定値に決定する(ステップS3503)。そして、風車制御装置100は、ステップS3505の処理に移行する。
ステップS3504では、風車制御装置100は、最新の回転数と同じ回転数において最新の風速よりも減少方向に調整した風速に対応する風車トルクを算出し、発電機120の負荷トルクの設定値に決定する(ステップS3504)。そして、風車制御装置100は、ステップS3505の処理に移行する。
ステップS3505では、風車制御装置100は、最新の回転数が、山の左側における回転数上限に関する閾値以上であるか否かを判定する(ステップS3505)。ここで、回転数上限に関する閾値以上である場合(ステップS3505:Yes)、風車制御装置100は、ステップS3506の処理に移行する。一方で、回転数上限に関する閾値未満である場合(ステップS3505:No)、風車制御装置100は、左側制御処理を終了する。
ステップS3506では、風車制御装置100は、発電機120の負荷トルクの設定値を、山の左側における回転数上限に関する閾値に到達時の設定値に変更する(ステップS3506)。そして、風車制御装置100は、左側制御処理を終了する。
(右側制御処理手順)
次に、図36を用いて、風車制御装置100が実行する、右側制御処理手順の一例について説明する。右側制御処理手順は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、通信I/F303とによって実現される。
図36は、右側制御処理手順の一例を示すフローチャートである。図36において、風車制御装置100は、最新の風速および回転数と、風車トルク特性と、最大トルクに対する最大発電トルクの比率とに基づいて、最大発電点の負荷トルクを算出し、発電機120の負荷トルクの設定値に決定する(ステップS3601)。
次に、風車制御装置100は、最新の回転数が、回転数上限に関する閾値以上であるか否かを判定する(ステップS3602)。ここで、回転数上限に関する閾値以上である場合(ステップS3602:Yes)、風車制御装置100は、ステップS3603の処理に移行する。一方で、回転数上限に関する閾値未満である場合(ステップS3602:No)、風車制御装置100は、ステップS3604の処理に移行する。
ステップS3603では、風車制御装置100は、発電機120の負荷トルクの設定値を、回転数上限に関する閾値に到達時の設定値に変更する(ステップS3603)。そして、風車制御装置100は、右側制御処理を終了する。
ステップS3604では、風車制御装置100は、最新の回転数が回転数下限に関する閾値以下であるか否かを判定する(ステップS3604)。ここで、回転数下限に関する閾値以下である場合(ステップS3604:Yes)、風車制御装置100は、ステップS3605の処理に移行する。一方で、回転数下限に関する閾値より大きい場合(ステップS3604:No)、風車制御装置100は、右側制御処理を終了する。
ステップS3605では、風車制御装置100は、発電機120の負荷トルクの設定値を、回転数下限に関する閾値に到達時の設定値に変更する(ステップS3605)。そして、風車制御装置100は、右側制御処理を終了する。
以上説明したように、風車制御装置100によれば、風速、および、風車110の回転数に基づいて、風車110を用いた発電機120の負荷トルクを制御することができる。風車制御装置100によれば、風速、および、風車110の回転数を観測値とし、発電機120による発電量を報酬とし、風車110の動作点を山の左側に移動させるか否かを行動とした強化学習をエージェント1103に実行させることができる。風車制御装置100によれば、風速、および、風車の回転数が入力されたエージェント1103が、動作点を山の左側に移動させる出力を行った場合、発電機120の負荷トルクを制御することにより、動作点を山の左側に移動させることができる。これにより、風車制御装置100は、風速などの環境の変化に合わせて、風力発電システム101に対して適切な制御を行うことができ、発電機120の長期的な発電効率の低下を招くことを回避することができる。
風車制御装置100によれば、風車110のピッチを制御する機能を風車110が有さなくても、風力発電システム101を制御することができる。これにより、風車制御装置100は、自装置を適用することができる風力発電システム101の種類を増加させることができる。風車制御装置100は、風力発電システム101の製造コストの低減化を図ることができる。
風車制御装置100によれば、風速、風車110の回転数、および、特性曲線上の現在の動作点に基づいて、発電機120の負荷トルクを制御することができる。これにより、風車制御装置100は、現在の動作点に合わせて負荷トルクを設定することができ、現在の動作点を維持しやすくすることができる。
風車制御装置100によれば、発電機120の負荷トルクを制御する間隔が、エージェント1103が行動を出力する間隔よりも短くても、風力発電システム101を制御することができる。これにより、風車制御装置100は、エージェント1103の行動決定の実行間隔に関わらず、風速の変化に応じて発電機120の負荷トルクを制御する速度の低下を抑制することができる。
風車制御装置100によれば、発電機120の負荷トルクを、極大点の風車トルクより大きい値に設定することにより、動作点を山の左側に移動させることができる。これにより、風車制御装置100は、動作点を山の左側に移動させる速度の向上を図ることができ、風速が変化する速度が大きい場合に対応しやすくすることができる。
風車制御装置100によれば、特性曲線上の現在の動作点が山の左側にある場合、発電機120の負荷トルクを、動作点の風車トルクより大きい値と、動作点の風車トルクより小さい値とに、交互に設定することができる。これにより、風車制御装置100は、動作点を一定範囲に維持することができ、回転数の変動を抑制し、風車110にかかる負荷を抑制することができる。
風車制御装置100によれば、風速、風車110の回転数、および、発電機120による発電量に基づいて、発電機120の負荷トルクを制御することができる。これにより、風車制御装置100は、最大トルクに対する最大発電トルクの比率を設定されなくても、負荷トルクの制御により動作点を制御することができる。
なお、本実施の形態で説明した風車制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した風車制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した風車制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
風速、および、風車の回転数に基づいて、前記風車を用いた発電機の負荷トルクを制御し、
風速、および、前記風車の回転数を観測値とし、前記発電機による発電量を報酬とし、前記風車の回転数と前記風車の風車トルクとの関係を表す特性曲線上の動作点を、極大点よりも前記風車の回転数が小さい側の領域に移動させるか否かを行動とした強化学習をエージェントに実行させ、
風速、および、前記風車の回転数が入力された前記エージェントが、前記動作点を前記領域に移動させる出力を行った場合、前記発電機の負荷トルクを制御することにより、前記動作点を前記領域に移動させる、
処理を実行させることを特徴とする風車制御プログラム。
(付記2)前記風車は、前記風車のピッチを制御する機能を有さない、ことを特徴とする付記1に記載の風車制御プログラム。
(付記3)前記制御する処理は、風速、前記風車の回転数、および、前記特性曲線上の現在の動作点に基づいて、前記発電機の負荷トルクを制御する、ことを特徴とする付記1または2に記載の風車制御プログラム。
(付記4)前記発電機の負荷トルクを制御する間隔は、前記エージェントが行動を出力する間隔よりも短い、ことを特徴とする付記1〜3のいずれか一つに記載の風車制御プログラム。
(付記5)前記移動させる処理は、前記発電機の負荷トルクを、前記極大点の風車トルクより大きい値に設定することにより、前記動作点を前記領域に移動させる、ことを特徴とする付記1〜4のいずれか一つに記載の風車制御プログラム。
(付記6)前記制御する処理は、前記特性曲線上の現在の動作点が前記領域にある場合、前記発電機の負荷トルクを、前記動作点の風車トルクより大きい値と、前記動作点の風車トルクより小さい値とに、交互に設定することにより、前記動作点を前記領域で維持する、ことを特徴とする付記3に記載の風車制御プログラム。
(付記7)前記制御する処理は、風速、前記風車の回転数、および、前記発電機による発電量に基づいて、前記発電機の負荷トルクを制御する、ことを特徴とする付記1〜6のいずれか一つに記載の風車制御プログラム。
(付記8)コンピュータが、
風速、および、風車の回転数に基づいて、前記風車を用いた発電機の負荷トルクを制御し、
風速、および、前記風車の回転数を観測値とし、前記発電機による発電量を報酬とし、前記風車の回転数と前記風車の風車トルクとの関係を表す特性曲線上の動作点を、極大点よりも前記風車の回転数が小さい側の領域に移動させるか否かを行動とした強化学習をエージェントに実行させ、
風速、および、前記風車の回転数が入力された前記エージェントが、前記動作点を前記領域に移動させる出力を行った場合、前記発電機の負荷トルクを制御することにより、前記動作点を前記領域に移動させる、
処理を実行することを特徴とする風車制御方法。
(付記9)風速、および、風車の回転数に基づいて、前記風車を用いた発電機の負荷トルクを制御する制御部と、
風速、および、前記風車の回転数を観測値とし、前記発電機による発電量を報酬とし、前記風車の回転数と前記風車の風車トルクとの関係を表す特性曲線上の動作点を、極大点よりも前記風車の回転数が小さい側の領域に移動させるか否かを行動とした強化学習を実行するエージェントと、を有し、
前記制御部は、風速、および、前記風車の回転数が入力された前記エージェントが、前記動作点を前記領域に移動させる出力を行った場合、前記発電機の負荷トルクを制御することにより、前記動作点を前記領域に移動させる、ことを特徴とする風車制御装置。