(57)【要約】      （修正有）【課題】全体を管理する管理装置が設けられていない場合に、ネットワークを構成している装置の台数を探索できるシステムを提供する。【解決手段】複数の装置Ａが通信ネットワークを構成しているシステムにおいて、装置Ａは、内部値Ｘiを生成する内部値生成部１と、内部値Ｘiを他の装置Ａに送信し、他の装置Ａが送信した内部値Ｘjを受信する通信部２とを備える。内部値生成部１は、内部値Ｘjから内部値Ｘiをそれぞれ減算して減算結果をすべて加算する演算部１１と、演算結果を積分して内部値Ｘiを算出する積分器１３と、内部値Ｘiの初期値を設定した後、演算部１１、積分器１３および通信部２による処理の繰り返しによって収束した内部値Ｘiに基づいて台数を算出する台数探索部３とを備える。ネットワークを構成している装置Ａの内部値Ｘiの初期値として、いずれか１つには「１」が設定され、その他には「０」が設定される。【選択図】図１
2018121189.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置が通信によるネットワークを構成しているシステムであって、
前記装置は、
内部値を生成する内部値生成手段と、
前記内部値生成手段が生成した内部値を生成内部値として、他の装置の少なくとも１つに送信し、前記他の装置の少なくとも１つが送信した内部値を受信内部値として受信する通信手段と、
を備え、
前記内部値生成手段は、
前記受信内部値から前記生成内部値をそれぞれ減算して減算結果をすべて加算する演算手段と、
前記演算手段が出力する演算結果を積分して、前記内部値を算出する積分手段と、
前記生成内部値の初期値として第１の値または第２の値を設定した後、前記演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信の繰り返しによって収束した生成内部値に基づいて、前記ネットワークを構成している装置の台数を算出する台数探索手段と、
を備えており、
前記ネットワークを構成している装置のうちのいずれか１つの装置において前記生成内部値の初期値として前記第１の値が設定され、その他の装置において前記生成内部値の初期値として前記第２の値が設定される、
ことを特徴とするシステム。
【請求項２】
前記第１の値は「１」であり、
前記第２の値は「０」であり、
前記台数探索手段は、前記収束した生成内部値の逆数に基づいて前記台数を算出する台数算出手段をさらに備えている、
請求項１に記載のシステム。
【請求項３】
前記台数探索手段は、前記生成内部値の変化に基づいて前記生成内部値が収束したことを検出する収束検出手段をさらに備えている、
請求項１または２に記載のシステム。
【請求項４】
前記装置は、
前記受信内部値から前記生成内部値をそれぞれ減算し、減算結果が正の値であるものだけをすべて加算して出力する第２の演算手段と、
前記生成内部値の初期値として乱数を設定し、前記第２の演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信が行われた後、前記生成内部値に基づいて、前記第１の値を設定するか前記第２の値を設定するかを決定する設定値決定手段と、
をさらに備えており、
前記設定値決定手段による決定後、決定された設定値を前記生成内部値の初期値として設定し、前記台数探索手段による処理を行う、
請求項１ないし３のいずれかに記載のシステム。
【請求項５】
前記設定値決定手段は、前記生成内部値が変化しなかった場合には前記第１の値を設定することを決定し、前記生成内部値が変化した場合には前記第２の値を設定することを決定する、
請求項４に記載のシステム。
【請求項６】
内部値を生成する内部値生成手段と、
前記内部値生成手段が生成した内部値を生成内部値として、他の装置の少なくとも１つに送信し、前記他の装置の少なくとも１つが送信した内部値を受信内部値として受信する通信手段と、
を備え、
前記内部値生成手段は、
前記受信内部値から前記生成内部値をそれぞれ減算して減算結果をすべて加算する演算手段と、
前記演算手段が出力する演算結果を積分して、前記内部値を算出する積分手段と、
前記生成内部値の初期値として第１の値または第２の値を設定した後、前記演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信の繰り返しによって収束した生成内部値に基づいて、通信によるネットワークを構成している装置の台数を算出する台数探索手段と、
を備えている、
ことを特徴とする装置。
【請求項７】
前記受信内部値から前記生成内部値をそれぞれ減算し、減算結果が正の値であるものだけをすべて加算して出力する第２の演算手段と、
前記生成内部値の初期値として乱数を設定し、前記第２の演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信が行われた後、前記生成内部値に基づいて、前記第１の値を設定するか前記第２の値を設定するかを決定する設定値決定手段と、
をさらに備えており、
前記設定値決定手段による決定後、決定された設定値を前記生成内部値の初期値として設定し、前記台数探索手段による処理を行う、
請求項６に記載の装置。
【請求項８】
前記設定値決定手段は、前記生成内部値が変化しなかった場合には前記第１の値を設定することを決定し、前記生成内部値が変化した場合には前記第２の値を設定することを決定する、
請求項７に記載の装置。
【請求項９】
内部値を生成する内部値生成手段と、少なくとも１つの他の装置と通信を行う通信手段とを備える装置によって構成された通信によるネットワークにおいて、当該ネットワークを構成している装置の台数を探索する方法であって、
前記内部値生成手段が内部値を生成する内部値生成工程と、
前記内部値生成工程で生成した内部値を生成内部値として、前記他の装置の少なくとも１つに送信する送信工程と、
前記他の装置の少なくとも１つが送信した内部値を受信内部値として受信する受信工程と、
を各装置で行わせるものであり、
前記内部値生成工程は、
前記受信内部値から前記生成内部値をそれぞれ減算して減算結果をすべて加算する演算工程と、
前記演算工程で出力された演算結果を積分して、前記内部値を算出する積分工程と、
を備えており、
前記ネットワークを構成している装置のうちのいずれか１つの装置において前記生成内部値の初期値として第１の値を設定し、その他の装置において前記生成内部値の初期値として第２の値を設定する設定工程と、
前記設定工程の後、前記内部値生成工程、前記送信工程および前記受信工程を繰り返して、収束した生成内部値に基づいて、前記ネットワークを構成している装置の台数を算出する台数算出工程と、
を備えていることを特徴とする方法。
【請求項１０】
前記設定工程は、
前記受信内部値から前記生成内部値をそれぞれ減算し、減算結果が正の値であるものだけをすべて加算して出力する第２の演算工程と、
前記生成内部値の初期値として乱数を設定する乱数設定工程と、
前記乱数設定工程の後、前記第２の演算工程、前記積分工程、前記送信工程および前記受信工程が行われた後、前記生成内部値に基づいて、前記第１の値を設定するか前記第２の値を設定するかを決定する決定工程と、
を備えており、
前記決定工程により決定された設定値を前記生成内部値の初期値として設定する、
請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信機能を備え、他の装置との間で通信を行う装置、および、当該装置を備え通信によるネットワークを構成するシステム、および、当該システムを構成する装置の台数を探索する方法に関する。
【背景技術】
【０００２】
複数の装置の内部値を、これらの装置全体を管理する管理装置が一致させるのではなく、各装置同士が通信によって内部値を送受信することで一致させる方法であるコンセンサス協調制御が開発されている。コンセンサス協調制御は、各装置が内部値を少なくとも１つの他の装置に送受信して、生成した内部値と受信した内部値とに基づく演算結果を用いて内部値を生成するものである。この処理が各装置それぞれで行われることにより、各装置の内部値は同じ値に収束する。この方法を用いた例として、特許文献１にはインバータ装置の内部位相を同期することが記載され、特許文献２には各インバータ装置の補償値を一致させることで、出力有効電力の抑制量を調整することが記載されている。また、特許文献３には各計測装置が計測値に基づく内部平均値を一致させることで、全体の平均値を算出することが記載され、特許文献４には、各計測装置が計測値に基づく内部最大値（内部最小値）を一致させることで、全体の最大値（最小値）を算出することが記載されている。コンセンサス協調制御においては、装置全体を管理する管理装置を設ける必要がない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５‐０２７１５５号公報
【特許文献２】特開２０１５‐０８４６１２号公報
【特許文献３】特開２０１５‐１６６９０１号公報
【特許文献４】特開２０１５‐２１５２０４号公報
【非特許文献】
【０００４】
【非特許文献１】Reza Olfati-Saber, J. Alex Fax, and Richard M. Murray, "Consensus and Cooperation in Networked Multi-Agent Systems", Proceedings of the IEEE, Vol.95, No.1, (2007)
【非特許文献２】Mehran Mesbahi and Magnus Egerstedt, "Graph Theoretic Methods in Multiagent Networks", Princeton (2010)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
コンセンサス協調制御においては、装置全体を管理する管理装置が設けられていないので、制御のネットワークを構成している装置の台数を管理することが困難である。しかし、メンテナンスなどで、ネットワークを構成している装置の台数を把握する必要がある。また、台数に応じた係数を制御に用いる場合もある。
【０００６】
本発明は上述した事情のもとで考え出されたものであって、ネットワークを構成している装置全体を管理する管理装置が設けられていない場合に、ネットワークを構成している装置の台数を探索する方法、当該方法を実行する装置およびシステムを提供することをその目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明では、次の技術的手段を講じている。
【０００８】
本発明の第１の側面によって提供されるシステムは、複数の装置が通信によるネットワークを構成しているシステムであって、前記装置は、内部値を生成する内部値生成手段と、前記内部値生成手段が生成した内部値を生成内部値として、他の装置の少なくとも１つに送信し、前記他の装置の少なくとも１つが送信した内部値を受信内部値として受信する通信手段とを備え、前記内部値生成手段は、前記受信内部値から前記生成内部値をそれぞれ減算して減算結果をすべて加算する演算手段と、前記演算手段が出力する演算結果を積分して、前記内部値を算出する積分手段と、前記生成内部値の初期値として第１の値または第２の値を設定した後、前記演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信の繰り返しによって収束した生成内部値に基づいて、前記ネットワークを構成している装置の台数を算出する台数探索手段とを備えており、前記ネットワークを構成している装置のうちのいずれか１つの装置において前記生成内部値の初期値として前記第１の値が設定され、その他の装置において前記生成内部値の初期値として前記第２の値が設定されることを特徴とする。この構成によると、内部値生成手段は、生成した生成内部値と通信手段が受信した受信内部値とに基づく演算によって、内部値を生成する。ネットワークを構成している各装置の内部値生成手段がこれを行うことで、すべての装置での内部値が相加平均値に収束する。また、ネットワークを構成している装置のうちのいずれか１つの装置において生成内部値の初期値として第１の値が設定され、その他の装置において生成内部値の初期値として第２の値が設定される。したがって、収束した生成内部値は、ネットワークを構成している装置の台数、第１の値および第２の値から算出された値になる。台数探索手段は、収束した生成内部値から、ネットワークを構成している装置の台数を算出する。これにより、ネットワークを構成している装置全体を管理する管理装置が設けられていない場合でも、ネットワークを構成している装置の台数を探索することができる。
【０００９】
本発明の好ましい実施の形態においては、前記第１の値は「１」であり、前記第２の値は「０」であり、前記台数探索手段は、前記収束した生成内部値の逆数に基づいて前記台数を算出する台数算出手段をさらに備えている。この構成によると、台数算出手段での演算を容易にすることができる。
【００１０】
本発明の好ましい実施の形態においては、前記台数探索手段は、前記生成内部値の変化に基づいて前記生成内部値が収束したことを検出する収束検出手段をさらに備えている。この構成によると、生成内部値が収束したことを、適切に検出することができる。
【００１１】
本発明の好ましい実施の形態においては、前記装置は、前記受信内部値から前記生成内部値をそれぞれ減算し、減算結果が正の値であるものだけをすべて加算して出力する第２の演算手段と、前記生成内部値の初期値として乱数を設定し、前記第２の演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信が行われた後、前記生成内部値に基づいて、前記第１の値を設定するか前記第２の値を設定するかを決定する設定値決定手段とをさらに備えており、前記設定値決定手段による決定後、決定された設定値を前記生成内部値の初期値として設定し、前記台数探索手段による処理を行う。この構成によると、生成内部値の初期値として乱数が設定され、生成内部値を最大値に収束させる処理が行われた後、生成内部値に基づいて、第１の値を設定するか第２の値を設定するかが決定される。したがって、第１の値を設定するか第２の値を設定するかを、人の手によらず、自動的に決定することができる。
【００１２】
本発明の好ましい実施の形態においては、前記装置は、前記受信内部値から前記生成内部値をそれぞれ減算し、減算結果が負の値であるものだけをすべて加算して出力する第２の演算手段と、前記生成内部値の初期値として乱数を設定し、前記第２の演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信が行われた後、前記生成内部値に基づいて、前記第１の値を設定するか前記第２の値を設定するかを決定する設定値決定手段とをさらに備えており、前記設定値決定手段による決定後、決定された設定値を前記生成内部値の初期値として設定し、前記台数探索手段による処理を行う。この構成によると、生成内部値の初期値として乱数が設定され、生成内部値を最小値に収束させる処理が行われた後、生成内部値に基づいて、第１の値を設定するか第２の値を設定するかが決定される。したがって、第１の値を設定するか第２の値を設定するかを、人の手によらず、自動的に決定することができる。
【００１３】
本発明の好ましい実施の形態においては、前記設定値決定手段は、前記生成内部値が変化しなかった場合には前記第１の値を設定することを決定し、前記生成内部値が変化した場合には前記第２の値を設定することを決定する。この構成によると、第１の値を設定するか第２の値を設定するかを適切に決定することができる。
【００１４】
本発明の第２の側面によって提供される装置は、内部値を生成する内部値生成手段と、前記内部値生成手段が生成した内部値を生成内部値として、他の装置の少なくとも１つに送信し、前記他の装置の少なくとも１つが送信した内部値を受信内部値として受信する通信手段とを備え、前記内部値生成手段は、前記受信内部値から前記生成内部値をそれぞれ減算して減算結果をすべて加算する演算手段と、前記演算手段が出力する演算結果を積分して、前記内部値を算出する積分手段と、前記生成内部値の初期値として第１の値または第２の値を設定した後、前記演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信の繰り返しによって収束した生成内部値に基づいて、通信によるネットワークを構成している装置の台数を算出する台数探索手段とを備えていることを特徴とする。
この構成によると、ネットワークを構成している装置全体を管理する管理装置が設けられていない場合でも、ネットワークを構成している装置の台数を探索することができる。
【００１５】
本発明の好ましい実施の形態においては、前記装置は、前記受信内部値から前記生成内部値をそれぞれ減算し、減算結果が正の値であるものだけをすべて加算して出力する第２の演算手段と、前記生成内部値の初期値として乱数を設定し、前記第２の演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信が行われた後、前記生成内部値に基づいて、前記第１の値を設定するか前記第２の値を設定するかを決定する設定値決定手段とをさらに備えており、前記設定値決定手段による決定後、決定された設定値を前記生成内部値の初期値として設定し、前記台数探索手段による処理を行う。この構成によると、第１の値を設定するか第２の値を設定するかを、人の手によらず、自動的に決定することができる。
【００１６】
本発明の好ましい実施の形態においては、前記装置は、前記受信内部値から前記生成内部値をそれぞれ減算し、減算結果が負の値であるものだけをすべて加算して出力する第２の演算手段と、前記生成内部値の初期値として乱数を設定し、前記第２の演算手段による演算、前記積分手段による積分、および前記通信手段による内部値の送受信が行われた後、前記生成内部値に基づいて、前記第１の値を設定するか前記第２の値を設定するかを決定する設定値決定手段とをさらに備えており、前記設定値決定手段による決定後、決定された設定値を前記生成内部値の初期値として設定し、前記台数探索手段による処理を行う。この構成によると、第１の値を設定するか第２の値を設定するかを、人の手によらず、自動的に決定することができる。
【００１７】
本発明の好ましい実施の形態においては、前記設定値決定手段は、前記生成内部値が変化しなかった場合には前記第１の値を設定することを決定し、前記生成内部値が変化した場合には前記第２の値を設定することを決定する。この構成によると、第１の値を設定するか第２の値を設定するかを適切に決定することができる。
【００１８】
本発明の第３の側面によって提供される方法は、内部値を生成する内部値生成手段と、少なくとも１つの他の装置と通信を行う通信手段とを備える装置によって構成された通信によるネットワークにおいて、当該ネットワークを構成している装置の台数を探索する方法であって、前記内部値生成手段が内部値を生成する内部値生成工程と、前記内部値生成工程で生成した内部値を生成内部値として、前記他の装置の少なくとも１つに送信する送信工程と、前記他の装置の少なくとも１つが送信した内部値を受信内部値として受信する受信工程とを各装置で行わせるものであり、前記内部値生成工程は、前記受信内部値から前記生成内部値をそれぞれ減算して減算結果をすべて加算する演算工程と、前記演算工程で出力された演算結果を積分して、前記内部値を算出する積分工程とを備えており、前記ネットワークを構成している装置のうちのいずれか１つの装置において前記生成内部値の初期値として第１の値を設定し、その他の装置において前記生成内部値の初期値として第２の値を設定する設定工程と、前記設定工程の後、前記内部値生成工程、前記送信工程および前記受信工程を繰り返して、収束した生成内部値に基づいて、前記ネットワークを構成している装置の台数を算出する台数算出工程とを備えていることを特徴とする。この構成によると、ネットワークを構成している装置全体を管理する管理装置が設けられていない場合でも、ネットワークを構成している装置の台数を探索することができる。
【００１９】
本発明の好ましい実施の形態においては、前記設定工程は、前記受信内部値から前記生成内部値をそれぞれ減算し、減算結果が正の値であるものだけをすべて加算して出力する第２の演算工程と、前記生成内部値の初期値として乱数を設定する乱数設定工程と、前記乱数設定工程の後、前記第２の演算工程、前記積分工程、前記送信工程および前記受信工程が行われた後、前記生成内部値に基づいて、前記第１の値を設定するか前記第２の値を設定するかを決定する決定工程とを備えており、前記決定工程により決定された設定値を前記生成内部値の初期値として設定する。この構成によると、第１の値を設定するか第２の値を設定するかを、人の手によらず、自動的に決定することができる。
【００２０】
本発明の好ましい実施の形態においては、前記設定工程は、前記受信内部値から前記生成内部値をそれぞれ減算し、減算結果が負の値であるものだけをすべて加算して出力する第２の演算工程と、前記生成内部値の初期値として乱数を設定する乱数設定工程と、前記乱数設定工程の後、前記第２の演算工程、前記積分工程、前記送信工程および前記受信工程が行われた後、前記生成内部値に基づいて、前記第１の値を設定するか前記第２の値を設定するかを決定する決定工程とを備えており、前記決定工程により決定された設定値を前記生成内部値の初期値として設定する。この構成によると、第１の値を設定するか第２の値を設定するかを、人の手によらず、自動的に決定することができる。
【発明の効果】
【００２１】
本発明によると、内部値生成手段は、生成した生成内部値と通信手段が受信した受信内部値とに基づく演算によって、内部値を生成する。ネットワークを構成している各装置の内部値生成手段がこれを行うことで、すべての装置での内部値が相加平均値に収束する。また、ネットワークを構成している装置のうちのいずれか１つの装置において生成内部値として第１の値が設定され、その他の装置において生成内部値として第２の値が設定される。したがって、収束した生成内部値は、ネットワークを構成している装置の台数、第１の値および第２の値から算出された値になる。例えば、第１の値が「１」で、第２の値が「０」の場合、収束した生成内部値は、ネットワークを構成している装置の台数の逆数になる。台数探索手段は、収束した生成内部値から、ネットワークを構成している装置の台数を算出する。これにより、ネットワークを構成している装置全体を管理する管理装置が設けられていない場合でも、ネットワークを構成している装置の台数を探索することができる。
【００２２】
本発明のその他の特徴および利点は、添付図面を参照して以下に行う詳細な説明によって、より明らかとなろう。
【図面の簡単な説明】
【００２３】
【図１】第１実施形態に係る装置の内部構成を示す機能ブロック図である。
【図２】第１実施形態に係るシステムにおける、各装置の接続状態を示す図である。
【図３】第１実施形態に係る装置が行う構成台数探索処理を説明するためのフローチャートである。
【図４】図２に示す各装置において、構成台数が探索できることを確認するシミュレーションの結果を示す図である。
【図５】各装置の接続状態の他の実施例を示す図である。
【図６】タイミング生成部の他の実施例の内部構成を示す機能ブロック図である。
【図７】第２実施形態に係る装置の内部構成を示す機能ブロック図である。
【図８】第２実施形態に係る装置が行う構成台数探索処理を説明するためのフローチャートである。
【図９】第２実施形態に係る構成台数探索処理を行ったシミュレーションの結果を示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態を、図面を参照して具体的に説明する。
【００２５】
図１は、第１実施形態に係る装置の内部構成を示す機能ブロック図である。図２は、各装置の接続状態を示す図である。
【００２６】
図１に示すように、装置Ａは、内部値Ｘiを生成する内部値生成部１、他の装置Ａとの間で通信を行う通信部２、および、内部値Ｘiに初期値を設定して、収束した内部値Ｘiからネットワークを構成している装置の台数（以下では、「構成台数」とする）を算出する台数探索部３を備えている。なお、図１においては、構成台数を探索するために必要な構成のみを記載している。実際には、各装置Ａは、その他の構成を備えている。その他の構成は、コンセンサス協調制御を行うための構成（すなわち、内部値生成部１と同様の構成で所定の内部値を生成して制御を行ったり、演算を行ったりするもの）であってもよいし、それ以外の機能を果たすための構成であってもよい。
【００２７】
通信部２は、他の装置Ａとの間で通信を行うものである。通信部２は、内部値生成部１が生成した内部値Ｘiを入力され、他の装置Ａの通信部２に送信する。また、通信部２は、他の装置Ａの通信部２から受信した内部値Ｘjを、内部値生成部１に出力する。なお、通信方法は限定されず、有線通信であってもよいし、無線通信であってもよい。内部値Ｘiが本発明の「生成内部値」に相当し、内部値Ｘjが本発明の「受信内部値」に相当する。
【００２８】
図２（ａ）に示すように、装置Ａは他の装置Ａと通信を行っており、通信を行っている装置Ａ全体でネットワークを構成している。図２（ａ）においては、８つの装置Ａ（Ａ１〜Ａ８）がネットワークを構成している状態を示している。この場合、ネットワークを構成している装置Ａ１〜Ａ８が、本発明の「システム」に相当する。なお、実際のシステムは、より多くの装置Ａで構成されているが、説明の簡略化のために少ないケースを示している。
【００２９】
図２（ａ）に示す実線矢印は、相互通信を行っていることを示している。装置Ａ１は装置Ａ２および装置Ａ８とのみ相互通信を行っており、装置Ａ２は装置Ａ１および装置Ａ３とのみ相互通信を行っている。また、装置Ａ３は装置Ａ２および装置Ａ４とのみ相互通信を行っており、装置Ａ４は装置Ａ３および装置Ａ５とのみ相互通信を行っており、装置Ａ５は装置Ａ４および装置Ａ６とのみ相互通信を行っている。また、装置Ａ６は装置Ａ５および装置Ａ７とのみ相互通信を行っており、装置Ａ７は装置Ａ６および装置Ａ８とのみ相互通信を行っており、装置Ａ８は装置Ａ７および装置Ａ１とのみ相互通信を行っている。このように、装置Ａの通信部２は、ネットワークを構成している装置Ａのうち、少なくとも１つの装置Ａ（例えば、近隣に位置するものや、通信が確立されたもの）の通信部２と通信を行っており、ネットワークを構成している任意の２つの装置Ａに対して通信経路が存在している状態（以下ではこの状態を「連結状態」と言う。）であればよく、ネットワークを構成しているすべての装置Ａの通信部２と通信を行う必要はない。
【００３０】
例えば、装置Ａが装置Ａ２の場合、通信部２は、内部値生成部１が生成した内部値Ｘ2を装置Ａ１およびＡ３の通信部２に送信し、装置Ａ１の通信部２から内部値Ｘ1を受信し、装置Ａ３の通信部２から内部値Ｘ3を受信する。
【００３１】
図１に戻って、内部値生成部１は、例えばマイクロコンピュータなどによって実現されており、生成した内部値Ｘiと、通信部２より入力される、他の装置Ａの内部値Ｘjとを用いて、内部値Ｘiを生成する。内部値Ｘiと内部値Ｘjとが異なっていても、内部値生成部１での演算処理が繰り返されることで、内部値Ｘiと内部値Ｘjとが共通の値に収束する。図１に示すように、内部値生成部１は、演算部１１、乗算器１２および積分器１３を備えている。
【００３２】
演算部１１は、下記（１）式に基づく演算を行う。すなわち、演算部１１は、通信部２から入力される各内部値Ｘjから、内部値生成部１が生成した内部値Ｘiをそれぞれ減算し、減算結果をすべて加算した演算結果ｕiを乗算器１２に出力する。
【数１】
2018121189.tif 000003
【００３３】
例えば、装置Ａが装置Ａ２であり（図２（ａ）参照）、装置Ａ１および装置Ａ３から同時に内部値Ｘjを受信した場合、演算部１１は、下記（２）式の演算を行い、演算結果ｕ2を出力する。
【数２】
2018121189.tif 000004
【００３４】
乗算器１２は、演算部１１から入力される演算結果ｕiに所定の係数εを乗算して積分器１３に出力する。係数εは、０＜ε＜１／ｄmaxを満たす値であり、あらかじめ設定されている。ｄmaxは、通信部２に同時に入力される可能性のある内部値Ｘjの数の最大値である。なお、係数εは、積分器１３への入力が大きく（小さく）なりすぎて、内部値Ｘiの変動が大きくなりすぎることを抑制するために、演算結果ｕiに乗算されるものである。
【００３５】
積分器１３は、乗算器１２から入力される値を積分することで内部値Ｘiを生成して出力する。積分器１３は、前回生成した内部値Ｘiに乗算器１２から入力される値を加算することで内部値Ｘiを生成する。内部値Ｘiは、切替部３１を介して、通信部２および演算部１１に出力される。
【００３６】
本実施形態において、内部値生成部１は、生成した内部値Ｘiと、通信部２より入力される、他の装置Ａの内部値Ｘjとを用いて、内部値Ｘiを生成する。内部値Ｘiが各内部値Ｘjの相加平均値より大きい場合、演算部１１が出力する演算結果ｕiは負の値になる。そうすると、積分器１３には負の値が加算されることで、内部値Ｘiは小さくなる。一方、内部値Ｘiが各内部値Ｘjの相加平均値より小さい場合、演算部１１が出力する演算結果ｕiは正の値になる。そうすると、積分器１３には正の値が加算されることで、内部値Ｘiは大きくなる。つまり、内部値Ｘiは各内部値Ｘjの相加平均値に近づいていく。この処理が各装置Ａそれぞれで行われることにより、各装置Ａの内部値Ｘiは同じ値に収束する。内部値Ｘiが同じ収束値Ｘαに収束することは、数学的にも証明されている（非特許文献１，２参照）。また、収束値Ｘαが、下記（３）式に示すように、各装置Ａの内部値Ｘiの初期値の相加平均値になることも証明されている。ｎはネットワークを構成している装置Ａの数（構成台数）であり、下記（３）式は、装置Ａ１〜Ａｎの内部値Ｘ1〜Ｘnの初期値をすべて加算して構成台数ｎで除算した相加平均値を算出することを示している。
【数３】
2018121189.tif 000005
【００３７】
台数探索部３は、例えばマイクロコンピュータなどによって実現されており、構成台数を探索するためのものである。図１に示すように、台数探索部３は、切替部３１、タイミング生成部３２、収束検出部３３、および、台数算出部３４を備えている。
【００３８】
切替部３１は、内部値Ｘiに初期値を設定する。切替部３１は、積分器１３から内部値Ｘiを入力され、通常時には内部値Ｘiをそのまま演算部１１および通信部２に出力する。しかし、タイミング生成部３２から初期値入力の指示が入力された場合、「０」または「１」を内部値Ｘiの初期値として設定し、演算部１１および通信部２に出力する。初期値は、基本的には「０」が設定されているが、ネットワークを構成している装置Ａのうちのいずれか１つの装置Ａでは、「１」が設定される。なお、初期値として「１」が設定されるのは、いずれの装置Ａであっても構わない。例えば、全ての装置Ａに「０」を設定しておいて、ユーザが一番身近な装置Ａのみ、「１」に変更すればよい。本実施形態においては、「１」が本発明の「第１の値」に相当し、「０」が本発明の「第２の値」に相当する。
【００３９】
タイミング生成部３２は、所定のタイミングで、切替部３１に初期値入力の指示を出力する。所定のタイミングは、構成台数を探索したいタイミングとして、あらかじめ設定されている。例えば、メンテナンスのために構成台数を探索するのであれば、メンテナンスのタイミングに合わせて設定され、構成台数に応じた係数を制御に用いるのであれば、当該制御に必要なタイミングに合わせて設定される。各装置Ａにおいて同じタイミングで初期値を設定する必要があるので、各装置Ａのタイミング生成部３２は、タイミングを一致させるための時刻を共有している。例えば、タイミング生成部３２は、インターネットにアクセスして、定期的に正確な時刻を入手してもよいし、ＧＰＳ（Global Positioning System）を備えている場合は、受信した情報から時刻情報を入手するようにしてもよい。また、タイミング生成部３２は、通信部２に通信を指示するタイミング信号を出力するようにしてもよい。
【００４０】
収束検出部３３は、内部値Ｘiが収束したことを検出して、収束した内部値Ｘiである収束値Ｘαを台数算出部３４に出力する。収束検出部３３は、切替部３１が出力した内部値Ｘiが変化しなくなった場合に、内部値Ｘiが収束したと判断する。具体的には、収束検出部３３は、内部値Ｘiと前回の内部値Ｘiとの差を算出し、当該差が所定の誤差の範囲内にある場合に内部値Ｘiが変化していないと判断する。そして、その状態が所定の時間継続した場合に、収束したと判断する。本実施形態では、所定の時間として、演算部１１での演算の回数を利用している。なお、収束検出部３３の構成は限定されない。収束検出部３３は、収束値Ｘαを出力できればよい。例えば、内部値Ｘiと前回の内部値Ｘiとの差が所定の誤差の範囲内にある場合に収束したと判断するようにしてもよい。ただし、この場合は、所定の誤差の範囲が十分狭い必要がある。また、収束に必要な時間を考慮して、その時間が十分経過したときに、内部値Ｘiが収束したと判断して、このときの内部値Ｘiを収束値Ｘαとして出力するようにしてもよい。ただし、構成台数および各装置Ａの通信接続の具合によって収束にかかる時間は変化する。構成台数が少ない場合や、各装置Ａが多数の装置Ａと通信している場合などには、収束にかかる時間が短くなるが、逆のケースの場合は、収束にかかる時間が長くなる。したがって、構成台数および各装置Ａの通信接続の具合があらかじめ想定でき、収束にかかる時間が想定できる場合は、それに応じた時間を設定すればよい。一方、収束にかかる時間が想定できない場合は、十分長い時間を設定する必要がある。
【００４１】
台数算出部３４は、収束検出部３３より入力される収束値Ｘαに基づいて、構成台数を算出する。上述したように、収束値Ｘαは、各装置Ａの内部値Ｘiの初期値の相加平均値になる（上記（３）式参照）。各装置Ａの内部値Ｘiの初期値は、１つだけ「１」が設定され、それ以外は「０」が設定されている。したがって、初期値の合計値が「１」になるので、構成台数をｎとすると、収束値Ｘαは１／ｎになる。したがって、構成台数ｎは、収束値Ｘαの逆数（ｎ＝１／Ｘα）になる。台数算出部３４は、収束検出部３３より入力される収束値Ｘαの逆数（１／Ｘα）を算出して、構成台数ｎとして出力する。出力された構成台数ｎは、制御のための係数の演算に用いられたり、図示しない表示部に表示されてメンテナンスに利用される。なお、構成台数ｎの使用先は、限定されない。
【００４２】
図３は、装置Ａが行う構成台数ｎを探索するための処理（以下では、「構成台数探索処理」とする）を説明するためのフローチャートである。
【００４３】
まず、初期値入力の指示を示すタイミング入力が有ったか否かが判別される（Ｓ１）。具体的には、タイミング生成部３２から切替部３１に、初期値入力の指示が入力されたか否かが判別される。タイミング入力が無い場合（Ｓ１：ＮＯ）、ステップＳ１に戻って判別が繰り返される。タイミング入力が有った場合（Ｓ１：ＹＥＳ）、ステップＳ２に進む。つまり、タイミング入力を待って、タイミング入力が有った時に、具体的な処理（Ｓ２〜Ｓ７）が開始される。
【００４４】
次に、内部値Ｘiに初期値が入力される（Ｓ２）。具体的には、切替部３１が内部値Ｘiに初期値「０」または「１」を設定する。次に、内部値Ｘiが送信され（Ｓ３）、内部値Ｘjが受信される（Ｓ４）。具体的には、通信部２が、内部値生成部１より入力される内部値Ｘiを他の装置Ａに送信し、また、他の装置Ａから内部値Ｘjを受信する。そして、内部値Ｘiが生成される（Ｓ５）。具体的には、演算部１１が内部値Ｘiおよび内部値Ｘjに基づいて演算を行い、乗算器１２が演算結果ｕiに所定の係数εを乗算して、積分器１３が乗算結果を積分することで、内部値Ｘiを生成する。
【００４５】
次に、内部値Ｘiが収束したか否かが判別される（Ｓ６）。具体的には、収束検出部３３が内部値Ｘiが収束したか否かを判別する。収束していない場合（Ｓ６：ＮＯ）、ステップＳ３に戻って、ステップＳ３〜Ｓ６が繰り返される。収束した場合（Ｓ６：ＹＥＳ）、構成台数が算出され（Ｓ７）、構成台数探索処理は終了する。具体的には、収束検出部３３は、内部値Ｘiが収束したと判断すると、収束値Ｘαを台数算出部３４に出力し、台数算出部３４は収束値Ｘαに基づいて構成台数を算出して出力する。なお、構成台数探索処理は、上述したものに限定されない。
【００４６】
次に、図２に示す各装置Ａ１〜Ａ８において、構成台数が探索できることを確認するシミュレーションについて説明する。
【００４７】
図４は、当該シミュレーションの結果を示す図である。図４（ａ）は、図２（ａ）に示す各装置Ａ１〜Ａ８の内部値Ｘiの時間変化を示している。縦軸は各内部値Ｘiの値を示しており、横軸は演算部１１での演算回数を示している。装置Ａ１の初期値を「１」、装置Ａ２〜Ａ８の初期値を「０」として、シミュレーションを開始した。
【００４８】
図４（ａ）に示すように、演算回数が増加するごとに各装置Ａ１〜Ａ８の内部値Ｘiは同じ値に近づいていき、演算回数が８０回ぐらいでほぼ同じ値に収束している。収束値Ｘαは、０．１２５になっている。よって、構成台数ｎ＝１／Ｘα＝１／０．１２５＝８台と算出される。
【００４９】
図４（ｂ）は、図２（ｂ）に示す各装置Ａ１〜Ａ８の内部値Ｘiの時間変化を示している。図２（ｂ）は、図２（ａ）において、装置Ａ８がネットワークから切断された状態である。すなわち、装置Ａ１は装置Ａ２とのみ相互通信を行っており、装置Ａ２は装置Ａ１および装置Ａ３とのみ相互通信を行っている。また、装置Ａ３は装置Ａ２および装置Ａ４とのみ相互通信を行っており、装置Ａ４は装置Ａ３および装置Ａ５とのみ相互通信を行っており、装置Ａ５は装置Ａ４および装置Ａ６とのみ相互通信を行っている。また、装置Ａ６は装置Ａ５および装置Ａ７とのみ相互通信を行っており、装置Ａ７は装置Ａ６とのみ相互通信を行っている。そして、装置Ａ８はいずれの装置とも通信を行っていない。この場合でも、装置Ａ１〜Ａ７は、連結状態となっている。図４（ａ）におけるシミュレーションと同様、装置Ａ１の初期値を「１」、装置Ａ２〜Ａ８の初期値を「０」として、シミュレーションを開始した。
【００５０】
図４（ｂ）に示すように、演算回数が増加するごとに各装置Ａ１〜Ａ７の内部値Ｘiは同じ値に近づいていくが、装置Ａ８の内部値Ｘiは「０」のままである。そして、各装置Ａ１〜Ａ７の内部値Ｘiは、演算回数が２００回ぐらいでほぼ同じ値に収束している。収束値Ｘαは、０．１４２８５７になっている。よって、各装置Ａ１〜Ａ７では、構成台数ｎ＝１／Ｘα＝１／０．１４２８５７＝７台と算出される。一方、装置Ａ８の内部値Ｘiは「０」のままで、収束値Ｘαは「０」になり、構成台数ｎ＝１／Ｘαは計算できないので、装置Ａ８がネットワークから切り離されていることが判る。
【００５１】
次に、装置Ａの作用効果について説明する。
【００５２】
本実施形態によると、内部値生成部１は、生成した内部値Ｘiと通信部２が受信した内部値Ｘjとに基づく演算によって、内部値Ｘiを生成する。ネットワークを構成している各装置Ａの内部値生成部１がこれを行うことで、すべての装置Ａでの内部値Ｘiが相加平均値に収束する。また、ネットワークを構成している装置Ａのうちのいずれか１つの装置Ａにおいて内部値Ｘiとして「１」が設定され、その他の装置Ａにおいて内部値Ｘiとして「０」が設定されている。したがって、収束した内部値Ｘiである収束値Ｘαは、構成台数ｎの逆数になる。台数算出部３４は、収束値Ｘαから構成台数ｎを算出する。これにより、ネットワークを構成している装置Ａ全体を管理する管理装置が設けられていない場合でも、ネットワークを構成している装置Ａの台数を探索することができる。
【００５３】
また、本実施形態によると、内部値Ｘiの初期値として、１つの装置Ａでは「１」が設定され、その他の装置Ａでは「０」が設定されている。したがって、収束値Ｘαが構成台数ｎの逆数になる。よって、構成台数ｎを容易に算出することができる。
【００５４】
なお、本実施形態においては、各装置Ａが相互通信を行う場合について説明したが、これに限られず、片側通信を行うようにしてもよい。例えば、図５に示すように、装置Ａ１が装置Ａ８から受信のみを行って、装置Ａ２に送信のみを行い、装置Ａ２が装置Ａ１から受信のみを行って、装置Ａ３に送信のみを行い、装置Ａ３が装置Ａ２から受信のみを行って、装置Ａ４に送信のみを行い、装置Ａ４が装置Ａ３から受信のみを行って、装置Ａ５に送信のみを行い、装置Ａ５が装置Ａ４から受信のみを行って、装置Ａ６に送信のみを行い、装置Ａ６が装置Ａ５から受信のみを行って、装置Ａ７に送信のみを行い、装置Ａ７が装置Ａ６から受信のみを行って、装置Ａ８に送信のみを行い、装置Ａ８が装置Ａ７から受信のみを行って、装置Ａ１に送信のみを行う場合でも、内部値Ｘiを相加平均値に収束させることができる。より一般的に言うと、ある装置Ａから送信先をたどっていくと、任意の装置Ａに到達することができる状態（グラフ理論における「全域木を含む」状態）であることが、内部値Ｘiを収束させるための条件であり、さらに、任意の装置Ａから送信先をたどっていくと、任意の装置Ａに到達することができる状態（グラフ理論における「強連結」状態）であり、かつ、すべての装置Ａにおいて、送信先の装置Ａの数と送信元の装置Ａの数が等しい状態（グラフ理論における「平衡グラフ」状態）であることが内部値Ｘiを相加平均値に収束させるための条件である。
【００５５】
また、本実施形態においては、内部値Ｘiの初期値として、１つの装置Ａでは「１」が設定され、その他の装置Ａでは「０」が設定される場合について説明したが、これに限られない。初期値がこれら以外であっても、収束値Ｘαから構成台数ｎを算出することができる。例えば、１つの装置Ａでの初期値を「ａ」とし、その他の装置Ａでの初期値を「ｂ」とすると、構成台数ｎは、ｎ＝（ａ−ｂ）／（Ｘα−ｂ）で演算することができる。なお、ｂ＝０とすることで、ｎ＝ａ／Ｘαとして容易に算出することができ、さらに、ａ＝１とすることで、ｎをＸαの逆数として、より容易に算出することができる。つまり、１つの装置Ａでは「１」を設定し、その他の装置Ａでは「０」を設定することが、台数算出部３４での演算を最も容易にする。なお、１つの装置Ａでは想定される構成台数ｎ’を設定し、その他の装置Ａでは「０」を設定した場合、実際の構成台数ｎが想定される構成台数ｎ’と等しければ、収束値Ｘαは「１」になる。したがって、この場合、収束値Ｘαが「１」であれば、収束値Ｘαに基づく演算をするまでもなく、実際の構成台数が想定される構成台数と等しいと判断することができる。
【００５６】
また、本実施形態においては、タイミング生成部３２が、インターネットなどから入手した時刻情報に基づくタイミングで、切替部３１に初期値入力の指示を出力する場合について説明したが、これに限られない。タイミング生成部３２の他の実施例について、以下に説明する。
【００５７】
図６は、他の実施例であるタイミング生成部３２’の内部構成を示す機能ブロック図である。タイミング生成部３２’は、内部値生成部１と類似した構成で各装置Ａの内部位相θiの同期を行い、当該内部位相θiに基づくタイミングで、切替部３１に初期値入力の指示を出力する。タイミング生成部３２’は、内部位相生成部８およびタイミング出力部９を備えている。また、通信部２は、内部値Ｘiに加えて内部位相θiの送受信も行う。
【００５８】
内部位相生成部８は、切替部３１に初期値入力の指示を出力するタイミングを決定するための内部位相θiを生成するものである。内部位相生成部８は、生成した内部位相θiを通信部２およびタイミング出力部９に出力する。内部位相生成部８は、生成した内部位相θiと、通信部２より入力される、他の装置Ａの内部位相θjとを用いて、内部位相θiを生成する。内部位相θiと内部位相θjとが異なっていても、内部位相生成部８での演算処理が繰り返されることで、内部位相θiと内部位相θjとが共通の内部位相に収束する。図６に示すように、内部位相生成部８は、演算部８１、乗算器８２、加算器８３および積分器８４を備えている。
【００５９】
演算部８１は、下記（４）式に基づく演算を行う。すなわち、演算部８１は、通信部２から入力される各内部位相θjから、内部位相生成部８が生成した内部位相θiをそれぞれ減算し、減算結果をすべて加算した演算結果ｕ’iを乗算器８２に出力する。
【数４】
2018121189.tif 000006
【００６０】
乗算器８２は、演算部８１から入力される演算結果ｕ’iに所定の係数ε’を乗算して加算器８３に出力する。係数ε’は、０＜ε’＜１／ｄ’maxを満たす値であり、あらかじめ設定されている。ｄ’maxは、通信部２に同時に入力される可能性のある内部位相θjの数の最大値である。なお、係数ε’は、積分器８４への入力が大きく（小さく）なりすぎて、内部位相θiの変動が大きくなりすぎることを抑制するために、演算結果ｕ’iに乗算されるものである。したがって、内部位相生成部８での処理が連続時間処理の場合は、乗算器８２を設ける必要はない。
【００６１】
加算器８３は、乗算器８２からの入力と、所定の角周波数ω0および積分器８４のサンプリング周期Ｔに基づく値Ｔω0を加算して、積分器８４に出力する。値Ｔω0は、サンプリング周波数ｆ（＝１/Ｔ）のタイミングで入力され、乗算器８２からは、演算部８１が演算を行ったタイミング（すなわち、内部位相θjを受信したタイミング）で乗算結果が入力される。積分器８４は、加算器８３からの入力を積分することで内部位相θiを生成して出力する。積分器８４は、前回生成した内部位相θiに加算器８３からの入力を加算することで内部位相θiを生成する。また、積分器８４は、内部位相θiが無限に発散してしまうことを防ぐために、所定の閾値Ｓ（２πの倍数）を上限値として、内部位相θiを（０≦θi＜Ｓ）の範囲の値として出力する。つまり、積分器８４は、内部位相θiが範囲の上限値である閾値Ｓに達した場合に、ゼロクリアすることで、内部位相θiを範囲の下限値である「０」にする。内部位相θiは、タイミング出力部９、通信部２および演算部８１に出力される。なお、本実施形態においては、内部位相生成部８が出力する内部位相θiを、タイミング出力部９がそのまま使用できるように、積分器８４のサンプリング周波数ｆを高くして、サンプリング周波数ｆに応じたＴω0を加算するようにしているが、これに限られない。例えば、サンプリング周波数ｆを低くしたり（例えば１Ｈｚ）、より高くしてもよい。この場合は、タイミング出力部９に出力するとき、または、タイミング出力部９内部で、分周するなどして調整すればよい。また、加算する値を角周波数ω0と関係ない値（例えば「１」）としてもよい。
【００６２】
内部位相生成部８は、生成した内部位相θiと、通信部２より入力される、他の装置Ａの内部位相θjとを用いて、内部位相θiを生成する。内部位相θiが各内部位相θjの相加平均値より大きい場合、演算部８１が出力する演算結果ｕ’iは負の値になる。そうすると、積分器８４より出力される内部位相θiは減少されて、内部位相θjに近づく。一方、内部位相θiが内部位相θjより小さい場合、演算部８１が出力する演算結果ｕ’iは正の値になる。そうすると、積分器８４より出力される内部位相θiは増加されて、内部位相θjに近づく。この処理が各装置Ａそれぞれで行われることにより、各装置Ａの内部位相θiは同じ値に収束する。内部位相θiは時間とともに変化するものであり、角周波数ω0に応じて変化する成分と、初期位相のずれを補償するように変化する成分とを合成したものと考えることができる。後者が同じ値θαに収束することで、各装置Ａの内部位相θiも同じ値に収束する。後者が同じ値θαに収束することは、数学的にも証明されている（非特許文献１，２参照）。また、収束値θαが、下記（５）式に示すように、各装置Ａの内部位相θiの初期値の相加平均値になることも証明されている。下記（５）式は、装置Ａ１〜Ａｎの内部位相θ1〜θnの初期値をすべて加算してｎで除算した相加平均値を算出することを示している。
【数５】
2018121189.tif 000007
【００６３】
タイミング出力部９は、内部位相生成部８より入力される内部位相θiに基づいて、切替部３１に初期値入力の指示を出力する。例えば、タイミング出力部９は、内部位相θiが「０」になるタイミングで初期値入力の指示を出力する。なお、初期値入力の指示を出力するタイミングは「０」に限定されない。また、内部位相θiが「０」になった回数が予定の回数になったタイミングで出力するようにしてもよい。また、タイミング出力部９は、通信部２にも、処理周期に応じて分周されたタイミング信号を出力するようにしてもよい。
【００６４】
本実施例に係るタイミング生成部３２’において、各装置Ａの内部位相θiは同じ値に収束することで同期する。したがって、各装置Ａのタイミング生成部３２’は、同じタイミングで、切替部３１に初期値入力の指示を出力することができる。
【００６５】
なお、内部位相θiの初期位相のずれを補償するように変化する成分の収束値θαは、各装置Ａの内部位相θiの初期値の相加平均値でなくてもよく、内部位相θiが同じ値に収束すればよい。したがって、演算部８１に設定する演算式を上記（４）式とは異なる式として、収束値θαが例えば初期値の加重平均値や、相乗平均値（幾何平均値）、調和平均値、Ｐ次平均値になるようにしてもよい。また、後述するアルゴリズムを用いて、収束値θαを初期値の最大値（または最小値）とするようにしてもよい。
【００６６】
上記第１実施形態においては、いずれかの装置Ａにおいて、内部値Ｘiの初期値に「１」を設定する必要がある。この初期値の設定を自動化した場合を、第２実施形態として、以下に説明する。
【００６７】
図７は、第２実施形態に係る装置Ａ’の内部構成を示す機能ブロック図である。同図において、第１実施形態に係る装置Ａ（図１参照）と同一または類似の要素には、同一の符号を付している。第２実施形態に係る装置Ａ’は、演算部１１および切替部３１に代えて演算部１１’および切替部３１’を備えている点と、設定値決定部３５を備えている点とで、第１実施形態に係る装置Ａと異なる。
【００６８】
演算部１１’は、平均合意部１１ａおよび最大合意部１１ｂを備えており、切替部３１’からの指示により、両者を切り替える。平均合意部１１ａは、第１実施形態に係る演算部１１と同じ機能を果たす。したがって、演算部１１’が平均合意部１１ａに切り替えられている場合、内部値生成部１は、内部値Ｘiを、各装置Ａ’の内部値Ｘiの初期値の相加平均値に収束させる。本実施形態においては、平均合意部１１ａが本発明の「演算手段」に相当する。
【００６９】
最大合意部１１ｂは、下記（６）式に基づく演算を行う。αijは、Ｘj＞Ｘiの場合に「１」、Ｘj≦Ｘiの場合に「０」となる関数である。すなわち、最大合意部１１ｂは、通信部２より入力される各内部値Ｘjから、内部値生成部１が生成した内部値Ｘiをそれぞれ減算し、減算結果が正の値であるものだけをすべて加算した演算結果ｕiを乗算器１２に出力する。本実施形態においては、最大合意部１１ｂが本発明の「第２の演算手段」に相当する。
【数６】
2018121189.tif 000008
【００７０】
例えば、装置Ａ’が図２（ａ）に示す装置Ａ２の場合、Ｘ1＞Ｘ2＞Ｘ3であった場合、最大合意部１１ｂは、下記（７）式の演算を行い、演算結果ｕ2を出力する。
【数７】
2018121189.tif 000009
【００７１】
内部値生成部１は、生成した内部値Ｘiと、通信部２より入力される、他の装置Ａ’の内部値Ｘjとを用いて、内部値Ｘiを生成する。演算部１１’が最大合意部１１ｂに切り替えられている間は、内部値Ｘiがいずれかの内部値Ｘjより小さい場合、その差が加算されて、内部値Ｘiは大きくなる。これにより、内部値Ｘiは、内部値Ｘjの最大値に近づいていく。内部値Ｘiが、内部値Ｘjの最大値に一致した場合、演算結果ｕiは「０」になって、演算結果ｕiは変化しなくなる。しかし、この処理が各装置Ａ’それぞれで行われるので、より大きな内部値があると、いずれかの内部値Ｘjがその内部値に一致するように変化して、内部値Ｘiもその内部値Ｘjに一致するようになる。したがって、内部値Ｘiは全体での最大値に収束する。つまり、内部値生成部１は、内部値Ｘiを各装置Ａ’の内部値Ｘiの初期値の最大値に収束させる。
【００７２】
切替部３１’は、タイミング生成部３２から初期値入力の指示が入力された場合、乱数を発生させて、当該乱数を内部値Ｘiの初期値として設定し、演算部１１’および通信部２に出力する。このとき、演算部１１’は、最大合意部１１ｂに切り替えられている。したがって、内部値生成部１は、内部値Ｘiを各装置Ａ’の内部値Ｘiの初期値の最大値に収束させるように機能する。そして、切替部３１’は、設定値決定部３５から設定値を入力された場合、演算部１１’を平均合意部１１ａに切り替え、当該設定値を内部値Ｘiの初期値として設定し、演算部１１’および通信部２に出力する。したがって、内部値生成部１は、内部値Ｘiを各装置Ａ’の内部値Ｘiの初期値の相加平均値に収束させるように機能する。
【００７３】
設定値決定部３５は、切替部３１’が出力した内部値Ｘiに基づいて、切替部３１’に入力する設定値を決定する。設定値決定部３５は、内部値Ｘiの初期値が、各装置Ａ’の内部値Ｘiの初期値の最大値である場合には、設定値「１」を切替部３１’に出力し、それ以外の場合には、設定値「０」を切替部３１’に出力する。最大値は１つなので、いずれか１つの装置Ａ’においてのみ、設定値「１」が切替部３１’に出力され、その他の装置Ａ’においては、設定値「０」が切替部３１’に出力されることになる。演算部１１’が最大合意部１１ｂに切り替えられている内部値生成部１は、内部値Ｘiを各装置Ａ’の内部値Ｘiの初期値の最大値に収束させるように機能するので、内部値Ｘiの初期値が各装置Ａ’の内部値Ｘiの初期値の最大値でない場合、内部値Ｘiは、最大値に収束するように変化する。一方、内部値Ｘiの初期値が各装置Ａ’の内部値Ｘiの初期値の最大値である場合、内部値Ｘiは変化しない。したがって、内部値Ｘiが変化するか否かで、内部値Ｘiの初期値が最大値であるか否かを判断することができる。設定値決定部３５は、切替部３１’が出力した内部値Ｘiの初期値と、所定時間経過後（例えば、演算部１１’での演算が所定回数行われた後）に切替部３１’が出力した内部値Ｘiとを比較して、変化がない場合には、内部値Ｘiが最大値であると判断して、設定値「１」を切替部３１’に出力する。一方、変化があった場合には、内部値Ｘiが最大値ではなかったと判断して、設定値「０」を切替部３１’に出力する。なお、構成台数ｎおよび各装置Ａ’の通信接続の具合によって収束にかかる時間は変化する。構成台数ｎが少ない場合や、各装置Ａ’が多数の装置Ａ’と通信している場合などには、収束にかかる時間が短く、所定時間を短くしても、設定値決定部３５は、最大値であるか否かの判断を適切にすることができる。逆に、収束にかかる時間が長い場合は、所定時間を長くして、設定値決定部３５が適切に判断できるようにする必要がある。なお、設定値決定部３５の構成は限定されない。設定値決定部３５は、内部値Ｘiが最大値であるか否かを判断でき、その判断に応じて設定値を出力できればよい。
【００７４】
図８は、装置Ａ’が行う構成台数探索処理を説明するためのフローチャートである。
【００７５】
まず、初期値入力の指示を示すタイミング入力が有ったか否かが判別される（Ｓ１１）。具体的には、タイミング生成部３２から切替部３１に、初期値入力の指示が入力されたか否かが判別される。タイミング入力が無い場合（Ｓ１１：ＮＯ）、ステップＳ１１に戻って判別が繰り返される。タイミング入力が有った場合（Ｓ１１：ＹＥＳ）、ステップＳ１２に進む。つまり、タイミング入力を待って、タイミング入力が有った時に、具体的な処理（Ｓ１１〜Ｓ１２〜Ｓ２４）が開始される。
【００７６】
次に、内部値Ｘiに乱数が入力される（Ｓ１２）。具体的には、切替部３１’が乱数を発生させて、当該乱数を内部値Ｘiの初期値として設定する。次に、内部値Ｘiが送信され（Ｓ１３）、内部値Ｘjが受信される（Ｓ１４）。具体的には、通信部２が、内部値生成部１より入力される内部値Ｘiを他の装置Ａ’に送信し、また、他の装置Ａ’から内部値Ｘjを受信する。そして、内部値Ｘiが生成される（Ｓ１５）。具体的には、演算部１１’（最大合意部１１ｂ）が内部値Ｘiおよび内部値Ｘjに基づいて演算を行い、乗算器１２が演算結果ｕiに所定の係数εを乗算して、積分器１３が乗算結果を積分することで、内部値Ｘiを生成する。
【００７７】
次に、所定時間が経過したか否かが判別される（Ｓ１６）。所定時間が経過していない場合（Ｓ１６：ＮＯ）、ステップＳ１３に戻って、ステップＳ１３〜Ｓ１６が繰り返される。所定時間が経過した場合（Ｓ１６：ＹＥＳ）、内部値Ｘiが変化したか否かが判別される（Ｓ１７）。具体的には、設定値決定部３５が、内部値Ｘiの初期値と、切替部３１’より入力された内部値Ｘiとを比較して判別する。内部値Ｘiが変化した場合（Ｓ１７：ＹＥＳ）、内部値Ｘiは最大値でなかったと判断されて、内部値Ｘiに設定値「０」が入力される（Ｓ１８）。一方、内部値Ｘiが変化しなかった場合（Ｓ１７：ＮＯ）、内部値Ｘiは最大値であったと判断されて、内部値Ｘiに設定値「１」が入力される（Ｓ１９）。具体的には、設定値決定部３５が判別に応じて設定値「０」または「１」を切替部３１’に出力し、切替部３１’が入力された設定値を、内部値Ｘiに設定する。
【００７８】
ステップＳ２０〜Ｓ２４については、図３に示すフローチャートのステップＳ３〜Ｓ７と同様なので、説明を省略する。なお、構成台数探索処理は、上述したものに限定されない。
【００７９】
次に、第２実施形態に係る構成台数探索処理を行ったシミュレーションについて説明する。
【００８０】
図９は、当該シミュレーションの結果を示す図である。図９（ａ）は、図２（ａ）に示す各装置Ａ１〜Ａ８（内部構成を、第２実施形態に係る装置Ａ’の内部構成（図７参照）としたもの）に対してシミュレーションを行った場合の、各装置Ａ１〜Ａ８の内部値Ｘiの時間変化を示している。縦軸は各内部値Ｘiの値を示しており、横軸は演算部１１’での演算回数を示している。各装置Ａ１〜Ａ８において発生させた乱数を初期値として、シミュレーションを開始した。
【００８１】
図９（ａ）に示すように、内部値Ｘiの初期値が最大値の０．９２である装置Ａ１は当該初期値を継続し、その他の装置Ａ２〜Ａ８の内部値Ｘiは最大値０．９２に近づいている。そして、演算回数が１００回のときに、各装置Ａ１〜Ａ８の設定値決定部３５がそれぞれ設定値を決定し、装置Ａ１の内部値Ｘiには「１」が設定され、装置Ａ２〜Ａ８の内部値Ｘiには「０」が設定されている。なお、今回のシミュレーションでは装置Ａ１で発生させた乱数が最大値になったので、装置Ａ１の内部値Ｘiに「１」が設定されることになったが、いずれの装置Ａ１〜Ａ８で発生させた乱数が最大値になるかによって、内部値Ｘiに「１」が設定されるのがいずれになるか変わってくる。その後、演算回数が増加するごとに各装置Ａ１〜Ａ８の内部値Ｘiは同じ値に近づいていき、演算回数が２００回ぐらいでほぼ同じ値に収束している。収束値Ｘαは、０．１２５になっている。よって、構成台数ｎ＝１／Ｘα＝１／０．１２５＝８台と算出される。
【００８２】
図９（ｂ）は、８台の装置Ａ１〜Ａ８（内部構成を、第２実施形態に係る装置Ａ’の内部構成（図７参照）としたもの）に対してシミュレーションを行った場合の、各装置Ａ１〜Ａ８の内部値Ｘiの時間変化を示している。各装置Ａ１〜Ａ８において発生させた乱数を初期値として、シミュレーションを開始した。
【００８３】
図９（ｂ）に示すように、内部値Ｘiの初期値が最大値の０．７７である装置Ａ６は当該初期値を継続し、装置Ａ７，Ａ８の内部値Ｘiは最大値０．７７に近づいている。また、装置Ａ１の内部値Ｘiは初期値０．２８を継続し、装置Ａ２〜Ａ５の内部値Ｘiは０．２８に近づいている。そして、演算回数が１００回のときに、各装置Ａ１〜Ａ８の設定値決定部３５がそれぞれ設定値を決定し、装置Ａ１，Ａ６の内部値Ｘiには「１」が設定され、装置Ａ２〜Ａ５、Ａ７〜Ａ８の内部値Ｘiには「０」が設定されている。その後、演算回数が増加するごとに各装置Ａ１〜Ａ５の内部値Ｘiは同じ値に近づいていき、演算回数が１４０回ぐらいでほぼ同じ値に収束している。収束値Ｘαは、０．２になっている。よって、構成台数ｎ＝１／Ｘα＝１／０．２＝５台と算出される。また、各装置Ａ６〜Ａ８の内部値Ｘiは同じ値に近づいていき、演算回数が１６０回ぐらいでほぼ同じ値に収束している。収束値Ｘαは、０．３３になっている。よって、構成台数ｎ＝１／Ｘα＝１／０．３３≒３台と算出される。つまり、装置Ａ１〜Ａ５は構成台数５台のネットワークを構成し、装置Ａ６〜Ａ８は構成台数３台のネットワークを構成している状態であることが判る。
【００８４】
次に、装置Ａ’の作用効果について説明する。
【００８５】
第２実施形態によると、切替部３１’は、タイミング生成部３２から初期値入力の指示が入力された場合、乱数を内部値Ｘiの初期値として設定する。そして、内部値生成部１は、演算部１１’が最大合意部１１ｂに切り替えられている状態で、生成した内部値Ｘiと通信部２が受信した内部値Ｘjとに基づく演算によって、内部値Ｘiを生成する。ネットワークを構成している各装置Ａ’の内部値生成部１がこれを行うことで、すべての装置Ａ’での内部値Ｘiが最大値に収束する。設定値決定部３５は、内部値Ｘiの初期値が最大値である場合には設定値「１」を出力し、それ以外の場合には設定値「０」を出力する。これにより、ネットワークを構成している装置Ａ’のうちのいずれか１つの装置Ａ’において内部値Ｘiとして「１」が設定され、その他の装置Ａ’において内部値Ｘiとして「０」が設定される。したがって、人の手によることなく、内部値Ｘiの初期値を自動的に設定することができる。また、その後の処理は第１実施形態に係る装置Ａと同様なので、第２実施形態においても、第１実施形態と同様の効果を奏することができる。
【００８６】
なお、第２実施形態においては、最大合意部１１ｂが上記（６）式に基づく演算を行う場合について説明したが、これに限られない。最大値に収束させることができるのであれば、他の演算式を用いるようにしてもよい。例えば、最大合意部１１ｂが下記（８）式に基づく演算を行うようにしてもよい。βijは、すべてのＸj≦Ｘi（すなわちＸiが最大値）の場合に「０」となり、それ以外の場合に「１」となる関数である。すなわち、演算部１１’は、内部値生成部１が生成した内部値Ｘiが通信部２より入力されるすべての内部値Ｘj以上である場合に、演算結果ｕiとして「０」を出力し、それ以外の場合に、各内部値Ｘjから、内部値Ｘiをそれぞれ減算して減算結果をすべて加算した演算結果ｕiを出力する。この場合でも、内部値Ｘiを最大値に収束させることができる。
【数８】
2018121189.tif 000010
【００８７】
また、第２実施形態においては、内部値Ｘiの初期値が最大値であるか否かで、設定値を「１」とするか「０」とするかを決定しているが、これに限られない。例えば、内部値Ｘiの初期値が最小値であるか否かで、設定値を「１」とするか「０」とするかを決定するようにしてもよい。この場合、上記（６）式に基づく演算を行う最大合意部１１ｂに代えて、下記（９）式に基づく演算を行う最小合意部（図示なし）を備えるようにすればよい。αij’は、Ｘj＜Ｘiの場合に「１」、Ｘj≧Ｘiの場合に「０」となる関数である。すなわち、最小合意部は、通信部２より入力される各内部値Ｘjから、内部値生成部１が生成した内部値Ｘiをそれぞれ減算し、減算結果が負の値であるものだけをすべて加算した演算結果ｕiを乗算器１２に出力する。当該実施例においては、最小合意部が本発明の「第２の演算手段」に相当する。この場合、内部値Ｘiを最小値に収束させることができる。
【数９】
2018121189.tif 000011
【００８８】
なお、最小合意部は、上記（９）式に基づく演算を行う場合に限定されない。最小値に収束させることができるのであれば、他の演算式を用いるようにしてもよい。例えば、最小合意部が下記（１０）式に基づく演算を行うようにしてもよい。βij’は、すべてのＸj≧Ｘi（すなわちＸiが最小値）の場合に「０」となり、それ以外の場合に「１」となる関数である。すなわち、演算部１１’は、内部値生成部１が生成した内部値Ｘiが通信部２より入力されるすべての内部値Ｘj以下である場合に、演算結果ｕiとして「０」を出力し、それ以外の場合に、各内部値Ｘjから、内部値Ｘiをそれぞれ減算して減算結果をすべて加算した演算結果ｕiを出力する。この場合でも、内部値Ｘiを最小値に収束させることができる。
【数１０】
2018121189.tif 000012
【００８９】
本発明は、通信機能を備えて、ネットワークを構成する他の装置との間で通信を行うあらゆる装置において、適用することができる。例えば、電力システムを構成する各インバータ装置が内部位相を同期する場合や、各種タイミングを一致させたり、一致しないようにずらしたりする場合、電力システムを構成する各インバータ装置が内部補償値を一致させることで、出力有効電力や出力無効電力の抑制量を調整する場合、各計測装置が計測値に基づく内部平均値や最大値、最小値を一致させる場合などにも適用することができる。また、コンセンサス協調制御を行う装置以外の装置にも適用することができる。
【００９０】
本発明に係る通信機能を備えた装置、当該装置を備えたシステムおよび台数探索方法は、上述した実施形態に限定されるものではない。本発明に係る通信機能を備えた装置、当該装置を備えたシステムおよび台数探索方法の各部の具体的な構成は、種々に設計変更自在である。
【符号の説明】
【００９１】
Ａ，Ａ１〜Ａ８，Ａ’  装置
１  内部値生成部（内部値生成手段）
１１  演算部（演算手段）
１１’  演算部
１１ａ  平均合意部（演算手段）
１１ｂ  最大合意部（第２の演算手段）
１２  乗算器
１３  積分器
２  通信部
３  台数探索部（内部値生成手段、台数探索手段）
３１，３１’  切替部
３２，３２’  タイミング生成部
８  内部位相生成部
８１  演算部
８２  乗算器
８３  加算器
８４  積分器
９  タイミング出力部
３３  収束検出部
３４  台数算出部
３５  設定値決定部
【図１】
2018121189.tif 000013
【図２】
2018121189.tif 000014
【図３】
2018121189.tif 000015
【図４】
2018121189.tif 000016
【図５】
2018121189.tif 000017
【図６】
2018121189.tif 000018
【図７】
2018121189.tif 000019
【図８】
2018121189.tif 000020
【図９】
2018121189.tif 000021