(57)【要約】【課題】太陽の移動による日射量又は環境温度の変動による出力変動は常時発生し、変動速度も比較的早いために追従が遅い遺伝的アルゴリズム処理では充分対応できない。【解決手段】出力設定値を遺伝子と見なしかつ出力電力値を遺伝子の評価値とする遺伝的アルゴリズムに基づくＧＡ制御器を具備し出力設定範囲から複数個の遺伝子を無作為に抽出して遺伝子集団を形成し、この集団の各遺伝子をＧＡ制御器に入力し選択かつ交叉・突然変異させて新たな遺伝子集団を形成し上記動作の繰り返しによって遺伝子集団を収束させ出力電力が略最大に制御する太陽光発電システムの制御方法において、遺伝子集団の各遺伝子をＧＡ制御器に入力する前の評価値の大きい遺伝子を選択し、この遺伝子の評価値を基準値とし山登り法で出力電力値の大きい遺伝子を抽出しＧＡ制御器に入力する前の評価値の大きい遺伝子と交換することを特徴とする太陽光発電システムの制御方法である。【選択図】図１
2006119696.tif 000002
【特許請求の範囲】
【請求項１】
太陽電池からの出力電圧又は出力電流が予め定めた太陽電池出力設定値と略等しくなるようにインバータを制御し、日射状態の変化に追従して太陽電池からの出力電力値が略最大値になるように前記太陽電池出力設定値を適正値に制御する太陽光発電システムの制御方法であって、前記太陽電池出力設定値を遺伝子と見なしかつ太陽電池からの出力電力値を遺伝子の評価値とする遺伝的アルゴリズムに基づくＧＡ制御器を具備し、前記太陽電池出力設定値の設定範囲から複数個の遺伝子を無作為又は予め定めた条件に基づいて抽出して第１世代の初期集団を形成し、この初期集団の各遺伝子に対応する各太陽電池出力設定値によって前記インバータを順次動作させると共に動作中の太陽電池からの出力電力値を各遺伝子の評価値として記憶し、続いて、前記初期集団の各遺伝子を前記ＧＡ制御器に入力し各遺伝子の評価値によって選択しかつ交叉・突然変異させて所定個数の遺伝子を出力して第２世代集団を形成し、続いて、前記第２世代集団の各遺伝子に対応する各太陽電池出力設定値によって前記インバータを順次動作させると共に動作中の太陽電池からの出力電力値を各遺伝子の評価値として記憶し、続いて、前記第２世代集団の各遺伝子を前記ＧＡ制御器に入力し各遺伝子の評価値によって選択しかつ交叉・突然変異させて所定個数の遺伝子を出力して第３世代集団を形成し、以後、上記動作を繰り返すことによって次々と遺伝子集団の世代を新しくし第ｎ世代集団を形成する遺伝的アルゴリズム工程によって太陽電池からの出力電力値が略最大値となるように制御する太陽光発電システムの制御方法において、前記ｎ世代集団の各遺伝子を前記ＧＡ制御器に入力する前に、前記ｎ世代集団の中で評価値が最も大きい遺伝子を選択し、前記選択した遺伝子に対応した太陽電池出力設定値を基準太陽電池出力設定値とし、前記基準太陽電池出力設定値、前記基準太陽電池出力設定値より所定量大きい値及び所定量小さい値の３つの太陽電池出力設定値を生成し、前記各太陽電池出力設定値によって前記インバータを順次動作させて各出力電力値の相互の大小を比較し、前記最大の出力電力値となる太陽電池出力設定値を選択し、続いて、前記太陽電池出力設定値を次の基準太陽電池出力設定値とし、前記基準太陽電池出力設定値に基づいて３つの太陽電池出力設定値を生成し、前記動作を繰り返すことにより次々と基準太陽電池出力設定値を新しくし、前記新しくなった基準太陽電池出力設定値が所定回数連続して同じ値になったとき、又は前記繰り返し回数が予め定めた基準回数になったときの前記基準太陽電池出力設定値に対応する遺伝子を前記ｎ世代集団の中で評価値が最も大きい遺伝子と交換する山登り処理工程を追加したことを特徴とする太陽光発電システムの制御方法。
【請求項２】
前記ｎ＋１世代集団の各遺伝子に対応する各太陽電池出力設定値によって前記インバータを動作させる前に、前記ｎ＋１世代集団の遺伝子を無作為に１個抽出し、前記ｎ世代の山登り処理工程によって生成された遺伝子と入れ換える又は追加することを特徴とする請求項１記載の太陽光発電システムの制御方法。
【請求項３】
前記山登り処理工程を前記ｎ世代集団が予め定めた間隔ごとの世代集団になったときに行なうことを特徴とする請求項１記載の太陽光発電システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、太陽電池からの出力電力値が略最大値となるように制御する太陽光発電システムに係り、特に太陽電池のパネル面の日射量が不均一によって生じる出力電力の複数の極大値の最大電力を精度良く探索する技術に関するものである。
【背景技術】
【０００２】
図６は、従来技術の太陽光発電システムのブロック図である。同図において、ＳＣ１乃至ＳＣ３は太陽電池で、例えば３枚並列に接続されている。ＰＴは太陽電池の出力電圧を検出する出力電圧検出回路、ＣＴは太陽電池の出力電流を検出する出力電流検出回路、ＣＣはマイクロプロセッサにより遺伝的アルゴリズム制御（ＧＡ）を行なうＭＰＰＴ制御コントローラで、上記マイクロプロセッサＣＣに太陽電池の出力電圧値及び出力電流値を読み込むためのＡＤ変換器が内蔵されている。ＩＮは太陽電池からの直流出力を電圧に変換するＤＣ／ＡＣインバータ回路（又はＤＣ／ＤＣインバータ回路）、ＡＤは負荷、ＳＰは商用の系統電源である。ここで、コントローラＣＣのマイクロプロセッサは、太陽電池ＳＣの出力電圧と出力電流とを乗算することによって上記太陽電池ＳＣからの出力電力を算出し、メモリー内にその電圧、電力値を記憶する。また、コントローラＣＣはパルス幅制御回路ＰＷＭを介してＤＣ／ＡＣインバータ回路ＩＮの出力を制御し、太陽電池ＳＣからの出力電圧を制御することができる。
【０００３】
次に、遺伝的アルゴリズム制御（ＧＡ）について説明する。コントローラＣＣはＧＡ制御器であり、図示省略の太陽電池出力設定値を遺伝子と見なしかつ太陽電池からの出力電力値を遺伝子の評価値として記憶し、太陽電池出力設定値の設定範囲から複数個の遺伝子を無作為又は予め定めた条件に基づき抽出して遺伝子集団を形成し、上記遺伝子を選択しかつ交叉・突然変異させて所定個数の遺伝子を生成して第２世代集団を形成し、上記の遺伝的アルゴリズム動作を繰り返しすことによって、次々と次世代の集団を形成し、上記遺伝子集団の値に基づいて最大電力値を追従する。
【０００４】
図７は、従来技術の動作を説明するフローチャートである。このフローチャートと集団の遺伝子が遺伝的アルゴリズムにより収束し極大値を追従する図８とを参照しながら動作を説明する。
【０００５】
太陽電池出力設定値の設定範囲から複数個（例えば、１０個）の遺伝子を無作為に又は予め定めた条件に基づき抽出する（ステップＴ１）。そして、カウンタｉを１に設定する（ステップＴ２）。
【０００６】
上記複数個の遺伝子のうち所定の遺伝子に対応する太陽電池出力設定値を第１の太陽電池出力設定値とし、上記第１の太陽電池出力設定値によってインバータを動作させて第１の太陽電池出力電圧Ｖ１を設定する（ステップＴ３）。上記第１の太陽電池出力設定値に応じて出力される第１の太陽電池出力電流Ｉ１を測定する（ステップＴ４）。コントローラＣＣのマイクロプロセッサは、上記第１の太陽電池出力電圧Ｖ１と第１の太陽電池出力電流Ｉ１とを乗算して第１の太陽電池出力電力Ｗ１を算出してメモリーに記憶する（ステップＴ５）。そして、カウンタｉに１を加算する。（ステップＴ６）
【０００７】
次に、太陽電池出力設定値ｎ個（例えば、１０個）の出力電力を全て測定したかを判別して、Ｎｏの場合にはステップＴ３に戻り、上記残りの複数個の遺伝子のうち所定の遺伝子に対応する太陽電池出力設定値を第２の太陽電池出力設定値とし、上記第２の太陽電池出力設定値によってインバータを動作させて第２の太陽電池出力電圧Ｖ２を設定とする（ステップＴ３）。上記第２の太陽電池出力設定値に応じて出力される第２の太陽電池出力電流Ｉ２を測定する（ステップＴ４）。コントローラＣＣのマイクロプロセッサは、第２の太陽電池出力電圧Ｖ２と第２の太陽電池出力電流Ｉ２とを乗算して第２の太陽電池出力電力Ｗ２を算出してメモリーに記憶する（ステップＴ４）。続いて、カウンタｉに１を加算する（ステップＴ６）。
【０００８】
以後同様の動作を繰り返し、第ｎの太陽電池出力設定値に応じた第ｎの太陽電池出力電流Ｉｎを測定し、第ｎの太陽電池出力電力Ｗｎを算出してメモリーに記憶し、図９（Ａ）に示す第１世代の初期集団に対する評価値を決定する（ステップＴ７）。
【０００９】
次に、上記初期集団のうち、無作為に遺伝子２個を抽出して評価値（太陽電池出力電力）の大きい方を選択し上記選択を繰り返して２個の遺伝子を選択する（ステップＴ８）。
【００１０】
上記選択した２個の遺伝子を２進数の文字列に変換し、予め定めた確率である任意点で交叉させて新たに２個の遺伝子を生成する（ステップＴ９）。
【００１１】
上記交叉した遺伝子に対して、予め定めた低い確率で意図的に文字列の一部を変化させて突然変異を行なう（ステップＴ１０）。
【００１２】
上記選択と交叉との回数がｎ／２（例えば１０／２）以下のとき、ステップＴ８に戻る（ステップＴ１１）。そして、上記初期集団のうち、再度無作為に遺伝子２個を抽出して評価値（太陽電池出力電力）の大きい方を選択し、上記選択を繰り返して新たに２個の遺伝子を選択する（ステップＴ８）。
【００１３】
上記選択した２個の遺伝子を２進数の文字列に変換し、予め定めた確率である任意点で交叉させて新たに２個の遺伝子を生成する（ステップＴ９）。
【００１４】
上記交叉した遺伝子に対して、予め定めた低い確率で意図的に文字列の一部を変化させて突然変異を行なう（ステップＴ１０）。
【００１５】
上記選択、交叉及び突然変異の回数がｎ／２（例えば１０／２）のとき、ステップ１２に進み、上記生成された遺伝子によって、図８（Ｂ）に示す第２世代集団を形成する。
【００１６】
以後、上記の動作を繰り返すことによって次々と遺伝子集団の世代を新しくして、図８（Ｃ）に第ｎ世代の集団が形成され、この第ｎ世代集団の遺伝子は極大値近傍に収束されている。
【００１７】
上述の遺伝的アルゴリズムを用いて複数の極大値を追従すると、最大電力でない小さい山の極大値を回避し、大きい山の極大値の追従が可能となる。上述の技術を開示した遺伝的アルゴリズム制御の先行文献として、例えば、特許文献１がある。
【００１８】
【特許文献１】特願２００４−２４０２５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
従来技術の遺伝的アルゴリズムでは、太陽電池のパネルの一部に雲がかかり影を生じて日射状態が変化し太陽電池の出力電力に複数の極大値が発生しても、上記遺伝的アルゴリズムによって上記複数の極大値の最大電力の追従が可能となる。
【００２０】
しかし、太陽電池のパネルの一部に雲がかかり影を発生する大きな変動は、日に数回程度である。しかし、太陽の移動による日射量の変動又は環境温度の変動は常時生じる。上記太陽電池に影が発生すると出力電力の複数の極大値（山の形状）は変動するが、変動回数が少ないので、遺伝子アルゴリズムの突然変異の確率を最適な値に設定することにより、上記極大値の形状変化に応じて常に最新の最大電力の追従が可能であるが太陽の移動による日射量の変動によって生じる比較的小さな出力変動又は環境温度の変動によって生じる比較的小さな出力変動は常時発生し、また出力変動の速度も比較的早いために、上記追従速度が比較的遅い遺伝的アルゴリズムでは充分追従しきれない。
【００２１】
また、上記追従速度を改善させるために、上記突然変異の確率を高くして追従速度を早くすることが考えられるが、上記突然変異の確率を高くすると太陽電池出力設定値の変動回数が増加するために、インバータ装置の出力電力の変動も大きくなってしまう。
【００２２】
そこで、本発明は、上記課題を解決することができる太陽光発電システムの制御方法を提供することにある。
【課題を解決するための手段】
【００２３】
上述した課題を解決するために、第１の発明は、太陽電池からの出力電圧又は出力電流が予め定めた太陽電池出力設定値と略等しくなるようにインバータを制御し、日射状態の変化に追従して太陽電池からの出力電力値が略最大値になるように上記太陽電池出力設定値を適正値に制御する太陽光発電システムの制御方法であって、上記太陽電池出力設定値を遺伝子と見なしかつ太陽電池からの出力電力値を遺伝子の評価値とする遺伝的アルゴリズムに基づくＧＡ制御器を具備し、上記太陽電池出力設定値の設定範囲から複数個の遺伝子を無作為又は予め定めた条件に基づいて抽出して第１世代の初期集団を形成し、この初期集団の各遺伝子に対応する各太陽電池出力設定値によって上記インバータを順次動作させると共に動作中の太陽電池からの出力電力値を各遺伝子の評価値として記憶し、続いて、上記初期集団の各遺伝子を上記ＧＡ制御器に入力し各遺伝子の評価値によって選択しかつ交叉・突然変異させて所定個数の遺伝子を出力して第２世代集団を形成し、続いて、上記第２世代集団の各遺伝子に対応する各太陽電池出力設定値によって上記インバータを順次動作させると共に動作中の太陽電池からの出力電力値を各遺伝子の評価値として記憶し、続いて、上記第２世代集団の各遺伝子を上記ＧＡ制御器に入力し各遺伝子の評価値によって選択しかつ交叉・突然変異させて所定個数の遺伝子を出力して第３世代集団を形成し、以後、上記動作を繰り返すことによって次々と遺伝子集団の世代を新しくし第ｎ世代集団を形成する遺伝的アルゴリズム工程によって太陽電池からの出力電力値が略最大値となるように制御する太陽光発電システムの制御方法において、上記ｎ世代集団の各遺伝子を上記ＧＡ制御器に入力する前に、上記ｎ世代集団の中で評価値が最も大きい遺伝子を選択し、上記選択した遺伝子に対応した太陽電池出力設定値を基準太陽電池出力設定値とし、上記基準太陽電池出力設定値、上記基準太陽電池出力設定値より所定量大きい値及び所定量小さい値の３つの太陽電池出力設定値を生成し、上記各太陽電池出力設定値によって上記インバータを順次動作させて各出力電力値の相互の大小を比較し、上記最大の出力電力値となる太陽電池出力設定値を選択し、続いて、上記太陽電池出力設定値を次の基準太陽電池出力設定値とし、上記基準太陽電池出力設定値に基づいて３つの太陽電池出力設定値を生成し、上記動作を繰り返すことにより次々と基準太陽電池出力設定値を新しくし、上記新しくなった基準太陽電池出力設定値が所定回数連続して同じ値になったとき、又は上記繰り返し回数が予め定めた基準回数になったときの上記基準太陽電池出力設定値に対応する遺伝子を上記ｎ世代集団の中で評価値が最も大きい遺伝子と交換する山登り処理工程を追加したことを特徴とする太陽光発電システムの制御方法である。
【００２４】
第２の発明は、上記ｎ＋１世代集団の各遺伝子に対応する各太陽電池出力設定値によって上記インバータを動作させる前に、上記ｎ＋１世代集団の遺伝子を無作為に１個抽出し、上記ｎ世代の山登り処理工程によって生成された遺伝子と入れ換える又は追加することを特徴とする請求項１記載の太陽光発電システムの制御方法である。
【００２５】
第３の発明は、上記山登り処理工程を上記ｎ世代集団が予め定めた間隔ごとの世代集団になったときに行なうことを特徴とする請求項１記載の太陽光発電システムの制御方法である。
【発明の効果】
【００２６】
第１の発明によれば、太陽の移動による日射量の変動又は環境温度の変動によって生じる図５（Ａ）に示す、比較的小さな出力電力変動に対して、図５（Ｂ）に示す太陽電池出力設定値が設定され、インバータを順次動作させて一番大きい出力電力値を検出し、上記検出した出力電力値を基準値として処理速度の速い山登り処理によって出力電力値の最大値近傍を追従する。続いて、上記最大値近傍の値を用いて遺伝的アルゴリズム処理を行ない、図５（Ｃ）に示す各遺伝子を収束して最大電力値を追従すると、山登り処理の追従の速さと遺伝的アルゴリズム処理の最大電力値を追従の精度の良さとの相乗効果によって、上記日射量の変動又は環境温度の変動によって生じる比較的変動速度の速い出力電力変動に対して充分追従が可能となる。
【００２７】
第２の発明によれば、上記遺伝的アルゴリズム処理によって形成された上記ｎ＋１世代集団の遺伝子を１個無作為に抽出し、上記ｎ世代の山登り処理工程によって抽出されたエリート遺伝子と交換して、新たな遺伝子集団を生成すると上記交換したエリート遺伝子の作用により、最大電力の追従精度の改善が期待できる。
【００２８】
第３の発明によれば、上記山登り処理工程による最大出力電力値の追従回数を少なくすることにより、太陽電池出力設定値の変動回数が大幅に減少するので、上記第１の発明のインバータ装置の出力電力変動よりも変動率が小さくなる。
【発明を実施するための最良の形態】
【００２９】
［実施の形態１］
図１は、本発明の実施の形態に係る太陽光発電システムのブロック図である。同図において、図６に示す従来技術の太陽光発電システムのブロック図と同一符号は、同一動作を行なうので説明は省略し符号が相違する構成について説明する。
【００３０】
図１に示す、太陽光発電システムのブロック図において、コントローラＣＣは、遺伝的アルゴリズム制御（ＧＡ）と山登り制御（ＨＣ）とを行なうコントローラであってマイクロプロセッサである。ここで、コントローラＣＣのマイクロプロセッサは、太陽電池ＳＣの出力電圧と出力電流とを乗算することによって太陽電池ＳＣの出力電力を算出し、メモリー内にその出力電圧、出力電力値を記憶する。また、コントローラＣＣはパルス幅制御回路ＰＷＭを介してＤＣ／ＡＣインバータＩＮの出力を制御して、太陽電池ＳＣからの出力電圧を制御する。
【００３１】
次に、コントローラＣＣの遺伝的アルゴリズム制御（ＧＡ）と山登り制御（ＨＣ）とを組み合わせたＧＡ・ＨＣアルゴリズムについて説明する。まず、図示省略の太陽電池出力設定値を遺伝子と見なしかつ太陽電池からの出力電力値を遺伝子の評価値として記憶し、太陽電池出力設定値の設定範囲から複数個の遺伝子を無作為に抽出して第ｎ世代集団を形成する。次に、第ｎ世代集団の中で評価値が最も大きい遺伝子に対応した太陽電池出力設定値を選択して山登り処理工程に進む。上記選択した設定値を第１の基準太陽電池出力設定値としインバータを動作させると共に動作中の太陽電池からの出力電力値を算出して記憶し、次に、上記第１の基準太陽電池出力設定値より所定量大きい第２の太陽電池出力設定値を生成すると共に出力電力値を算出して記憶し、続いて、上記第１の基準太陽電池出力設定値より所定量小さい第３の太陽電池出力設定値を生成すると共に出力電力値を算出して記憶し、上記記憶した各出力電力値の大小を比較して一番大きい出力電力値に対応した太陽電池出力設定値を選択し、続いて、上記太陽電池出力設定値を次の基準太陽電池出力設定値として設定し、以後上記の山登り処理の動作を繰り返すことによって、太陽電池からの出力電力値がもっとも大きくなる基準太陽電池出力設定値を求める。次に、上記求めた基準太陽電池出力電力値に対応とする遺伝子と上記第ｎ世代集団の中で評価値が最も大きい遺伝子とを交換し、上記交換した第ｎ世代集団の遺伝子の評価値によって遺伝的アルゴリズム処理を行ない選択しかつ交叉・突然変異させて所定個数の遺伝子を生成して新たな集団を形成し、上記の動作を繰り返すことによって次々と遺伝子集団の世代を新しくして最大電力値の追従を行なう。
【００３２】
図２は、本発明の実施の形態１の動作を説明するフローチャートである。このフローチャートと図４の極大値を追従する図とを参照しながら動作を説明する。
【００３３】
太陽電池出力設定値の設定範囲からｎ個（例えば、１０個）の遺伝子を無作為に抽出する（ステップＴ１）。そして、カウンタｉに１を加算する（ステップＴ２）。
【００３４】
上記ｎ個の遺伝子のうち、所定の遺伝子に対応する太陽電池出力設定値を第１の太陽電池出力設定値とし、上記第１の太陽電池出力設定値によってインバータを動作させて第１の太陽電池出力電圧Ｖ１を測定する（ステップＴ３）。上記第１の太陽電池出力設定値に応じて出力される第１の太陽電池出力電流Ｉ１を測定する（ステップＴ４）。コントローラＣＣのマイクロプロセッサは、上記第１の太陽電池出力電圧Ｖ１と第１の太陽電池出力電流Ｉ１とを乗算して第１の太陽電池出力電力Ｗ１を算出してメモリーに記憶する（ステップＴ５）。そして、カウンタｉに１を加算する。（ステップＴ６）。
【００３５】
次に、太陽電池出力設定値ｎ個（例えば、１０個）の出力電力を全て測定したかを判別して、Ｎｏの場合にはステップＴ３に戻り、上記残りのｎ−１個の遺伝子のうち所定の遺伝子に対応する太陽電池出力設定値を第２の太陽電池出力設定値とし、上記第２の太陽電池出力設定値によってインバータを動作させて第２の太陽電池出力電圧Ｖ２を測定する（ステップＴ３）。上記第２の第太陽電池出力設定値に応じて出力される第２の太陽電池出力電流Ｉ２を測定する（ステップＴ４）。コントローラＣＣのマイクロプロセッサは、第２の太陽電池出力電圧Ｖ２と第２の太陽電池出力電流Ｉ２とを乗算して第２の太陽電池出力電力Ｗ２を算出してメモリーに記憶する（ステップＴ４）。続いて、カウンタｉに１を加算する（ステップＴ６）。
【００３６】
以後同様の動作を繰り返し、太陽電池出力設定値ｎ個（例えば、１０個）の出力電力を全て測定したときに、上記記憶したｎ個の太陽電池出力電力値に基づいて図４（Ａ）に示す第１世代の初期集団を形成する。（ステップＴ７）。
【００３７】
上記記憶した太陽電池出力電力値のうち、最大値に対応した遺伝子を選択してステップＴ１５にジャンプする（ステップＴ８）。上記選択した遺伝子に対応した太陽電池出力設定値を第１の基準太陽電池出力設定値として設定する（ステップＴ１５）。
【００３８】
上記第１の基準太陽電池出力設定値に応じてインバータを動作させて、図４（Ｂ）に示す、第１の基準太陽電池出力電圧Ｖ１を測定する（ステップＴ１６）。上記第１の基準太陽電池出力設定値に応じて出力される第１の基準太陽電池出力電流Ｉ１を測定する（ステップＴ１７）。コントローラＣＣのマイクロプロセッサは、上記第１の基準太陽電池出力電圧Ｖ１と第１の基準太陽電池出力電流Ｉ１とを乗算して第１の基準太陽電池出力電力Ｗ１を算出し、メモリーに上記第１の基準太陽電池出力電圧Ｖ１と第１の基準太陽電池出力電力Ｗ１との値を記憶する（ステップＴ１８）。
【００３９】
次に、第１の基準太陽電池出力設定値より所定量大きい第２の太陽電池出力設定値を設定してインバータを動作させると、図４（Ｂ）に示す、第１の基準太陽電池出力電圧Ｖ１は第２の太陽電池出力電圧Ｖ２となる（ステップＴ１９）。
【００４０】
上記第２の太陽電池出力設定値に応じて出力される第２の太陽電池出力電圧Ｖ２及び第２の太陽電池出力電流Ｉ２を測定する（ステップＴ２０）。コントローラＣＣのマイクロプロセッサは、上記第２の太陽電池出力電圧Ｖ２と第２の太陽電池出力電流Ｉ２とを乗算して第２の太陽電池出力電力Ｗ２を算出し、メモリーに上記第２の太陽電池出力電圧Ｖ２と第２の太陽電池出力電力Ｗ２との値を記憶する（ステップＴ２１）。
【００４１】
続いて、第１の基準太陽電池出力設定値より所定量小さい第３の太陽電池出力設定値を設定してインバータを動作させると、図４（Ｂ）に示す第１の基準太陽電池出力電圧Ｖ１は第３の太陽電池出力電圧Ｖ３となる（ステップＴ２２）。
【００４２】
上記第３の太陽電池出力設定値に応じて出力される第３の太陽電池出力電圧Ｖ３及び第３の太陽電池出力電流Ｉ３を測定する（ステップＴ２３）。コントローラＣＣのマイクロプロセッサは、上記第３の太陽電池出力電圧Ｖ３と第３の太陽電池出力電流Ｉ３とを乗算して第３の太陽電池出力電力Ｗ３を算出し、メモリーに上記第３の太陽電池出力電圧Ｖ３と第３の太陽電池出力電力Ｗ３との値を記憶する（ステップＴ２４）。
【００４３】
上記より記憶された、図４（Ｂ）に示す第１の基準太陽電池出力電圧Ｖ１、第２の太陽電池出力電圧Ｖ２、第３の太陽電池出力電圧Ｖ３に（Ｖ３＜Ｖ１＜Ｖ２）における出力電力値Ｗ１、Ｗ２、Ｗ３の相互の大小を比較して一番大きい出力電力値に応じた太陽電池出力設定値を選択して次の基準太陽電池出力設定値とする（ステップＴ２５）。
【００４４】
上記基準太陽電池出力設定値が所定回数連続して同じ値であるか、又は、ステップＴ１６からステップＴ２５の動作を繰り返し予め定めた基準回数行なったかを判別し、Ｎｏの場合は、ステップＴ１６に戻る。続いて、ステップＴ１６からステップＴ２５の動作を繰り返して求めた上記基準太陽電池出力設定値が所定回数連続して同じ値であるか又は予め定めた基準回数になったかを判別し、Ｙｅｓの場合、ステップＴ９に進む（ステップＴ６７）。
【００４５】
上記山登り処理から遺伝的アルゴリズム処理に戻り、まず、上記山登り処理によって選択された上記基準太陽電池出力設定値に応じた遺伝子と上記初期集団の中で評価値が最も大きい遺伝子とを交換して、ｎ個の新たな遺伝子集団を生成する（ステップＴ９）。
【００４６】
次に、上記ｎ個の新たな遺伝子集団をＧＡ制御器に入力し、上記ｎ個の遺伝子のうち、無作為に遺伝子２個を抽出して評価値である太陽電池出力電力値の大きい方を選択し上記選択を繰り返して２個の遺伝子を選択する（ステップＴ１０）。
【００４７】
上記選択した２個の遺伝子を２進数の文字列に変換し、予め定めた確率である任意点で交叉させて新たに２個の遺伝子を生成する（ステップＴ１１）。
【００４８】
上記交叉した遺伝子に対して、予め定めた低い確率で意図的に文字列の一部を変化させて突然変異を行なう（ステップＴ１２）。
【００４９】
上記選択と交叉との回数がｎ／２（例えば１０／２）以下のとき、ステップＴ１０に戻る（ステップＴ１３）。上記選択と交叉との回数がｎ／２（例えば１０／２）のときは、ステップ１４に進み、図４（Ｃ）に示す第２世代集団を形成する（ステップＴ１４）。
【００５０】
続いて、ステップＴ２に戻り、上述のステップＴ３からステップＴ７の動作を繰り返して、第２世代集団の各遺伝子に対応する各太陽電池出力設定値によって上記インバータを順次動作させると共に動作中の太陽電池からの出力電力値を各遺伝子の評価値として記憶し、ステップＴ８において、上記記憶した太陽電池出力電力のうち、最大値に対応した遺伝子を選択してステップＴ１５にジャンプする（ステップＴ８）。上記選択した遺伝子に対応した太陽電池出力設定値を第１の基準太陽電池出力設定値として設定する（ステップＴ１５）。以後、上述と同様の山登り処理と遺伝的アルゴリズム処理とを繰り返すことによって次々と遺伝子集団の世代を新しくして、図４（Ｄ）に示す、第ｎ世代集団を形成し太陽電池からの出力電力値が略最大値となるように制御する。
【００５１】
上述の遺伝的アルゴリズム制御（ＧＡ）と山登り制御（ＨＣ）とを組み合わせたＧＡ・ＨＣアルゴリズムを用いると山登り処理の追従の速さと遺伝的アルゴリズム処理の追従精度の良さとを持ち合わせた制御が可能となる。
【００５２】
［実施の形態２］
図３に示すフローチャートを用いて、実施の形態２の動作を説明する。同図において、図２に示す本発明の実施の形態１のフローチャートと同一符号は、同一動作を行なうので説明は省略して相違する動作について説明する。また、本発明と実施の形態２との相違点は、図３に示すフローチャートのステップＴ１４のみである。
【００５３】
ステップＴ２６で山登り処理から遺伝的アルゴリズム処理に戻り、まず、上記山登り処理によって設定された上記基準太陽電池出力電力値に応じた遺伝子と上記初期集団の中で評価値が最も大きい遺伝子とを交換して、ｎ個の遺伝子集団を生成する（ステップＴ９）。
【００５４】
次に、上記ｎ個の新たな遺伝子集団をＧＡ制御器に入力し、上記ｎ個の遺伝子のうち、無作為に遺伝子２個を抽出して評価値である太陽電池出力電力値の大きい方を選択し上記選択を繰り返して２個の遺伝子を選択する（ステップＴ１０）。
【００５５】
上記選択した２個の遺伝子を２進数の文字列に変換し、予め定めた確率である任意点で交叉させて新たに２個の遺伝子を生成する（ステップＴ１１）。
【００５６】
上記交叉した遺伝子に対して、予め定めた低い確率で意図的に文字列の一部を変化させて突然変異を行なう（ステップＴ１２）。
【００５７】
上記選択と交叉との回数がｎ／２（例えば１０／２）以下のとき、ステップＴ１０に戻る（ステップＴ１３）。上記選択と交叉との回数がｎ／２（例えば１０／２）のときは、ステップ１４に進む（ステップＴ１３）。
【００５８】
続いて、上記遺伝的アルゴリズム処理により形成されたｎ＋１世代集団の遺伝子を１個無作為に抽出し、上記ｎ世代の山登り処理によって生成された遺伝子と入れ換える又は追加して、ｎ＋１世代集団を生成して、ステップＴ２に戻り、上述の実施の形態１と同一動作を行なう（ステップ１４）。
【００５９】
［実施の形態３］
図３に示すフローチャートを用いて、実施の形態３の動作を説明する。同図において、図２に示す本発明の実施の形態１のフローチャートと同一符号は、同一動作を行なうので説明は省略して相違する動作について説明する。また、本発明と実施の形態３との相違点は図２のフローチャートのステップＴ８のみである。
【００６０】
ステップＴ７において、太陽電池出力設定値ｎ個（例えば、１０個）の出力電力を全て測定したときに、上記記憶したｎ個の太陽電池出力電力値に基づいて図４（Ａ）に示す第１世代の初期集団を形成する（ステップＴ７）。
【００６１】
遺伝的アルゴリズム工程回数をカウントして、上記遺伝的アルゴリズム工程回数が予め定めた定間隔の所定回数になると、ステップＴ７で記憶した太陽電池出力電力値のうち最大値を選択してステップＴ１５にジャンプして、山登り処理を行なう。また、上記遺伝的アルゴリズム工程回数が予め定めた間隔の所定回数以外のときは、ステップＴ９に進む。続いて、決定したｎ個の遺伝子集団をＧＡ制御器に入力して遺伝的アルゴリズム処理を行なう。（ステップＴ９）。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施形態に係る太陽光発電システムのブロック図である。
【図２】本発明の実施の形態１の動作を説明するフローチャートである。
【図３】本発明の実施の形態２、３の動作を説明するフローチャートである。
【図４】実施の形態１により極大値を追従する図である。
【図５】実施の形態２により極大値を追従する図である。
【図６】従来技術の太陽光発電システムのブロック図である。
【図７】従来技術の動作を説明するフローチャートである。
【図８】従来技術により極大値を追従する図である。
【符号の説明】
【００６３】
ＡＤ          負荷
ＣＣ          コントローラ
ＣＴ          電流検出回路
ＩＮ          インバータ回路
ＰＴ          電圧検出回路
ＰＷＭ        パルス幅制御回路
ＳＰ          系統電源
ＳＣ１        太陽電池
ＳＣ２        太陽電池
ＳＣ３        太陽電池
【図１】
2006119696.tif 000003
【図２】
2006119696.tif 000004
【図３】
2006119696.tif 000005
【図４】
2006119696.tif 000006
【図５】
2006119696.tif 000007
【図６】
2006119696.tif 000008
【図７】
2006119696.tif 000009
【図８】
2006119696.tif 000010