(57)【特許請求の範囲】
【請求項１】
電子機器の発熱体の温度、前記電子機器の消費電力、および前記電子機器の吸気温度を検出する検出部と、
前記電子機器を冷却する冷却装置と、
前記発熱体の温度が目標値に近づくように前記冷却装置の操作量を制御する制御部と、
を有し、
前記制御部は、
前記電子機器の前記消費電力と前記吸気温度の取り得る動作領域を複数の動作範囲に分割し、分割された前記動作範囲ごとに前記冷却装置の前記操作量を制御する複数のコントローラと、
前記複数のコントローラに対応して前記動作範囲ごとに構築され、前記動作範囲の前記消費電力と前記吸気温度の条件下で前記発熱体の将来の温度を予測する複数の予測モデルと、
前記複数の予測モデルのうち前記電子機器の現在の動作条件に最も近い前記消費電力と前記吸気温度の条件下で構築された予測モデルを用いるコントローラを選択するコントローラ切替部と、
を有し、
前記コントローラ切替部は、前記検出部で検出された現在の消費電力と現在の吸気温度とを要素とする第１のベクトルと、前記各予測モデルを構築したときの条件である前記消費電力と前記吸気温度とを要素とする第２のベクトルとの間のベクトル間距離を算出し、前記ベクトル間距離が最短となる予測モデルに対応する前記コントローラを選択し、
前記選択されたコントローラは、対応する予測モデルを用いて前記発熱体の将来の温度を予測し、前記予測された温度に基づいて前記冷却装置の操作量を決定する、
ことを特徴とする電子機器の温度管理システム。
【請求項２】
前記コントローラ切替部は、前記消費電力に対する第１重み係数と、前記吸気温度に対する第２重み係数を用いて、重みつきユークリッドノルムとして前記ベクトル間距離を算出することを特徴とする請求項１に記載の電子機器の温度管理システム。
【請求項３】
前記第１重み係数は、前記発熱体の温度に対する前記消費電力の寄与度に基づいて決定され、前記第２重み係数は、前記発熱体の温度に対する前記吸気温度の寄与度に基づいて決定されることを特徴とする請求項２に記載の電子機器の温度管理システム。
【請求項４】
前記冷却装置が複数の前記電子機器を冷却する場合であって、複数の前記電子機器が異なる許容上限温度を有する場合に、前記制御部は、前記検出部によって検出された複数の発熱体の現在の温度を基準化して、基準化された前記発熱体の温度の中の最大温度を前記発熱体の温度として用いることを特徴とする請求項１〜３のいずれか１項に記載の電子機器の温度管理システム。
【請求項５】
前記冷却装置は冷却ファンであり、選択された前記コントローラは、前記発熱体の温度が目標値に近づくように前記冷却ファンの回転数または送風量を制御することを特徴とする請求項１〜４のいずれか１項に記載の電子機器の温度管理システム。
【請求項６】
電子機器の発熱体の温度、前記電子機器の消費電力、および前記電子機器の吸気温度を検出する工程と、
前記発熱体の温度が目標値に近づくように前記発熱体を冷却する冷却装置の操作量を制御する工程と、
を有し、
前記制御する工程は、
前記電子機器の前記消費電力と前記吸気温度の取り得る動作領域を複数の動作範囲に分割し、
分割された前記動作範囲ごとに前記冷却装置の前記操作量を制御する複数のコントローラを設定し、
前記複数のコントローラに対応して、前記動作範囲ごとに、当該動作範囲の前記消費電力と前記吸気温度の条件下で前記発熱体の将来の温度を予測する複数の予測モデルを構築し、
検出された現在の消費電力と現在の吸気温度を要素とする第１のベクトルと、前記各予測モデルを構築したときの条件である前記消費電力と前記吸気温度とを要素とする第２のベクトルとの間のベクトル間距離を算出し、
前記複数のコントローラの中から、前記ベクトル間距離が最短となる予測モデルに対応する前記コントローラを選択し、
前記選択されたコントローラによって前記発熱体の将来の温度を予測し、前記予測された温度に基づいて前記冷却装置の操作量を決定する、
ことを特徴とする電子機器の温度管理方法。
【請求項７】
以下の処理をコンピュータに実行させる温度管理プログラム：
検出部によって検出された電子機器の発熱体の温度、前記電子機器の消費電力、および前記電子機器の吸気温度を収集する処理；
前記電子機器の前記消費電力と前記吸気温度の取り得る動作領域を複数の動作範囲に分割し、分割された前記動作範囲ごとに冷却装置の操作量を制御する複数のコントローラを設定する処理；
前記複数のコントローラに対応して、前記動作範囲ごとに、当該動作範囲の前記消費電力と前記吸気温度の条件下で前記発熱体の将来の温度を予測する複数の予測モデルを構築する処理；
前記複数の予測モデルのうち前記電子機器の現在の動作条件に最も近い動作範囲で構築された予測モデルを用いるコントローラに切り替える処理であって、現在の消費電力と現在の吸気温度を要素とする第１のベクトルと、前記各予測モデルを構築したときの条件である前記消費電力と前記吸気温度とを要素とする第２のベクトルとの間のベクトル間距離を算出し、前記ベクトル間距離が最短となる予測モデルに対応する前記コントローラに切り替える処理；および、
前記切り替えられたコントローラによって前記発熱体の将来の温度を予測し、前記予測された温度に基づいて前記冷却装置の前記操作量を決定する処理。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器の温度管理システム、温度管理方法、および温度管理プログラムに関する。
【背景技術】
【０００２】
高度情報化社会の到来にともなって計算機で多量のデータが扱われるようになり、データセンタ等の施設において同一室内に多数の計算機を設置して一括管理するケースが増えている。例えば、データセンタの計算機室に多数のラック（サーバラック）を設置して、各ラックにそれぞれ複数の計算機（サーバ）を収納する。計算機の稼動状態に応じて各計算機にジョブを有機的に配分し、大量のジョブを効率的に処理している。
【０００３】
計算機は稼働にともなって多量の熱を発生する。計算機内の温度が高くなると誤動作や故障の原因となるため、冷却ファンを使用してラック内に冷気を取り込み、計算機内で発生した熱をラックの外に排出している。計算機の発熱体（ＣＰＵ等）の温度を目標値以下にするために、ＰＩＤ（Proportional-Integral-Derivative）制御等を用いて冷却ファンの回転数をフィードバック制御している。
【０００４】
他方、将来にわたる操作量を最適化するための制御方法として、モデル予測制御がある。モデル予測制御は、予測モデルを用いて一定の予測区間の被制御量（たとえばＣＰＵ温度）の変化を予測し、被制御量が望ましい形で目標値に到達するように操作量を決定する方法である。制御サイクルごとに評価関数に基づいて操作量を評価し、評価値が最も高い操作量を求めることで走査量が決定される。
【０００５】
予測モデルとは制御対象の動的特性を再現するモデルであり、動的特性とは制御対象に入力される操作量と制御対象から出力される被制御量の時系列変化の関係である。モデル予測制御では、予測モデルによる動的特性の再現性の精度がその制御性能に大きく影響を与える。モデル予測制御で用いられる予測モデルとして非線形モデルを用いる解法も提案されている。しかし、非線形モデルでは予測モデルが大規模あるいは複雑な場合に最適な操作量の解を導出することができない、あるいは計算処理が制御時間内に完了しないといった問題がある。そのため、一般的には線形の予測モデルが用いられており、線形モデルを用いたときのモデル予測制御の解法も確立されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−２５１７７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
線形の予測モデルを用いて、モデル予測制御によって送風量等を制御して発熱体の温度を管理する場合、すべての動作領域の特性を精度よく再現することが難しいことがある。電子機器の吸気温度や使用率（稼働率）等の条件によって、冷却ファンの風量に対するＣＰＵ温度の応答特性が大きく変化するからである。すなわち、実際の計算機の動作条件が予測モデルが表現する動作条件から離れた場合に制御性能が低下することがあり、状況によって制御性能にばらつきが生じる。
【０００８】
そこで、電子機器の動作条件が変化した場合にも制御性能の低下を抑制することのできる温度制御技術を提供することを課題とする。
【課題を解決するための手段】
【０００９】
ひとつの態様では、温度管理システムは、
電子機器の発熱体の温度、前記電子機器の消費電力、および前記電子機器の吸気温度を検出する検出部と、
前記電子機器を冷却する冷却装置と、
前記発熱体の温度が目標値に近づくように前記冷却装置の操作量を制御する制御部と、
を有し、
前記制御部は、
前記電子機器の前記消費電力と前記吸気温度の取り得る動作領域を複数の動作範囲に分割し、分割された前記動作範囲ごとに前記冷却装置の前記操作量を制御する複数のコントローラと、
前記複数のコントローラに対応して前記動作範囲ごとに構築され、前記動作範囲の前記消費電力と前記吸気温度の条件下で前記発熱体の将来の温度を予測する複数の予測モデルと、
前記複数の予測モデルのうち前記電子機器の現在の動作条件に最も近い動作範囲で構築された予測モデルを用いるコントローラを選択するコントローラ切替部と、
を有し、
前記コントローラ切替部は、前記検出部で検出された現在の消費電力と現在の吸気温度とを要素とする第１のベクトルと、前記各予測モデルを構築したときの条件である前記消費電力と前記吸気温度とを要素とする第２のベクトルとの間のベクトル間距離を算出し、前記ベクトル間距離が最短となる予測モデルに対応する前記コントローラを選択し、
前記選択されたコントローラは、対応する予測モデルを用いて前記発熱体の将来の温度を予測し、前記予測された温度に基づいて前記冷却装置の操作量を決定する。
【発明の効果】
【００１０】
電子機器の動作条件が変化した場合でも、電子機器の温度制御における制御性能の低下を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】線形の予測モデルによる計算結果の一例を示す図である。
【図２】線形の予測モデルを用いてモデル予測制御する場合に生じる問題点を説明する図である。
【図３】電子機器の取り得る動作範囲を複数の領域に分割する例を示す図である。
【図４】実施形態の温度制御システムが適用されるデータセンタの一例を示す図である。
【図５】実施形態の温度制御システムの構成例を示す図である。
【図６】温度制御システムの制御部の構成例を示す図である。
【図７】図６の制御部における切替制御部の構成例を示す図である。
【図８】実施形態の温度制御方法のフローチャートである。
【図９】実施形態の制御結果を示す図である。
【図１０】実施形態の温度制御による消費電力量を従来法と比較して示す図である。
【図１１】実施形態の温度制御による効果を示す図である。
【発明を実施するための形態】
【第１の実施形態】
【００１２】
図１及び図２は、一般的なモデル予測制御に生じる技術課題を説明する図である。たとえば伝達関数（動的モデル）を用いて将来の予測区間の被制御量であるＣＰＵ温度の変化を予測し、予測結果に基づいて、望ましい制御結果をもたらす操作量であるファンの吹き出し量（送風量）を設定する。図１の例では、予測モデルに基づいて計算されたＣＰＵ温度（破線）と、実際のＣＰＵ温度（実線）とがほぼ一致し、予測モデルはＣＰＵの温度変化をよく表現している。このときの計算機の動作条件は、たとえば、吸気温度が２０℃、ＣＰＵ使用率５０％であったとする。
【００１３】
発明者らは、計算機の動作条件の範囲によっては、用いられている予測モデルが常に最適なモデルになるとは限らないことを見出した。図２に示すように、計算機のＣＰＵ使用率の条件と吸気温度の条件が変わることによって、ＣＰＵ温度の応答特性が大きく異なる。
【００１４】
図２で、ＣＰＵ使用率５０％、吸気温度２０℃の動作条件（１）では、ＣＰＵ温度とファン風量の動的特性が図１で説明した予測モデルが計算したＣＰＵ温度とファン風量の動的特性と同様の特性であることを示している。しかし、ＣＰＵ使用率５０％、吸気温度が３０℃の動作条件（２）では、ファン風量とＣＰＵ温度の動的特性は、図１で説明した予測モデルが計算したＣＰＵ温度とファン風量の動的特性と異なる。ＣＰＵ使用率１００％、吸気温度が３０℃の動作条件（３）やＣＰＵ使用率１００％、吸気温度が２０℃の動作条件（４）でも、ファン風量とＣＰＵ温度の動的特性は、図１で説明した予測モデルが計算したＣＰＵ温度とファン風量の動的特性と大きく異なる。
【００１５】
発明者らは、利用するモデルが表現できる動作条件（図２の例では動作条件（１））と、実際の電子機器の動作条件の距離が近いときは予測モデルの再現性が高く、その制御性能も高く、遠いときは予測モデルの再現性が低く、その制御性能も低くなるという知見に基づいて、以下の解決法に思い至った。
【００１６】
計算機の動作領域を複数の動作範囲に分割し、それぞれの動作範囲に対応して異なる予測モデルを備えたコントローラを複数用意し、現在の動作条件（環境条件）に近い予測モデルによるコントローラを適応的に選択して切り替える。
【００１７】
予測モデルの選択は、計算機の現在の消費電力と現在の吸気温度を要素とする第１のベクトルと、各予測モデルを構築したときの条件である消費電力と吸気温度を要素とする第２のベクトルの間のベクトル間距離が最も短くなる予測モデルを選択する。これにより、動作条件の変化による制御性能のばらつきを抑制し、ＣＰＵ温度のオーバーシュートを低減する。
【００１８】
図３は、計算機の動作領域を複数の動作範囲に分割する例を示す図である。動作範囲は均等に４つに分割してもよいし、図３のように均等に１６の動作範囲に分割してもよい。また、均等に動作範囲を分割するのではなく、無作為に設定した動作条件下の実験データからそれぞれ予測モデルを構築し、その動作条件下の近傍範囲を各動作範囲として分割することもできる。このとき、動作範囲内における複数の予測モデルの動作条件の分布ばらつきによって分割される各近傍範囲（各動作範囲）も変化し、各動作範囲の大きさも一律に同じではない。ＣＰＵ使用率は計算機の消費電力と相関関係にあるため、ＣＰＵ使用率を消費電力に置き換えてもよい。
【００１９】
図４は、実施形態の温度制御システムが適用されるデータセンタの一例を示す模式図である。図４（Ａ）は上面図、図４（Ｂ）は側面図である。実施形態では、外気を利用して計算機（サーバ）を冷却するモジュラー型データセンタを例として用いる。
【００２０】
図４に示すモジュラー型データセンタは、直方体形状のコンテナ（筐体）１０と、コンテナ１０内に配置された冷却ファンユニット１２と、複数のラック１３とを有する。各ラック１３には、複数の計算機１４が収納されている。
【００２１】
コンテナ１０の相互に対向する２つの面のうちの一方には吸気口１１ａが設けられ、他方には排気口１１ｂが設けられている。また、冷却ファンユニット１２とラック１３との間の空間の上には、仕切り板１５が配置されている。
【００２２】
冷却ファンユニット１２には複数の冷却ファン１２ａが設けられている。図示はしないが、吸気口１１ａと排気口１１ｂには、雨水の侵入を防ぐ雨水侵入防止板や虫等の侵入を防ぐ防虫網が設けられていてもよい。
【００２３】
コンテナ１０内の空間は、冷却ファンユニット１２、ラック１３、及び仕切り板１５によって、外気導入部２１と、コールドアイル２２と、ホットアイル２３と、暖気循環路２４に分割されている。外気導入部２１は吸気口１１ａと冷却ファンユニット１２との間の空間であり、コールドアイル２２は冷却ファンユニット１２とラック１３との間の空間であり、ホットアイル２３はラック１３と排気口１１ｂとの間の空間である。
【００２４】
ラック１３は、コールドアイル２２側の面が吸気面、ホットアイル２３側の面が排気面となるように配置される。
【００２５】
暖気循環路２４は、ラック１３と仕切り板１５の上方の空間であり、ホットアイル２３と外気導入部２１との間を連絡している。暖気循環路２４には、ラックから排気された暖気の循環量を調整するためのダンパー１７が設けられている。
【００２６】
このようなモジュラー型データセンタにおいて、冷却ファンユニット１２の冷却ファン１２ａが回転し、吸気口１１ａを介して外気導入部２１に外気が導入される。図示はしないが、外気導入部２１に、外気温が高いときに水の気化熱を利用して導入された外気の温度を下げる気化式冷却装置を設置してもよい。外気導入部２１内に導入されたエアーは、冷却ファンユニット１２を介してコールドアイル２２に移動し、更にラック１３の吸気面からラック１３内に入って各計算機１４を冷却する。
【００２７】
計算機１４を冷却することにより温度が上昇したエアー（暖気）は、ラック１３の排気面からホットアイル２３に排出され、排気口１１ｂから屋外に排出される。外気温が高いときにはダンパー１７を閉状態とし、ホットアイル２３から外気導入部２１に暖気が移動しないようにする。外気温が更に高いときには気化式冷却装置に水を供給し、気化式冷却装置を介して外気導入部２１内に外気を導入する。外気が気化式冷却装置を通過する際に水が気化して気化熱を奪うため、外気導入部２１には外気温よりも低温のエアーが導入される。
【００２８】
一方、外気温が低く、ラック１３内に導入されるエアーの温度が予め設定された許容下限温度よりも低くなるおそれがあるときにはダンパー１７を開状態とする。これにより、ホットアイル２３から暖気循環路２４を介して外気導入部２１に暖気の一部が戻り、ラック１３内に導入されるエアーの温度が上昇する。
【００２９】
図５は、電子機器の温度制御システム１の構成を表すブロック図である。電子機器の温度制御システム１は、制御部３０、目標値設定部３１、ＣＰＵ温度検出部３２、冷却ファンユニット１２、吸気温度検出部３３、計算機電力検出部３４、及び制御パラメータ設定部３５を含んでいる。計算機１４は電子機器１４の一例であり、ＣＰＵ１４ａは発熱体の一例である。
【００３０】
制御部３０は、冷却ファンユニット１２の各冷却ファン１２ａの回転数を制御する。制御部３０は、たとえばマイクロコンピュータ、ＦＰＧＡ（Field-Programmable Gate Array）、及びプログラマブルロジックコントローラ（ＰＬＣ）としてハードウェアとして構成することができる。あるいは、プログラムとして準備し、汎用コンピュータに前記プログラムをロードしてソフトウェア的に構成することもできる。
【００３１】
目標値設定部３１は、ＣＰＵ温度の目標値を設定する。ＣＰＵ温度検出部３２は、たとえばＣＰＵ１４ａと同一チップ内に搭載される温度センサである。検出されたＣＰＵ温度は、計算機１４内に設けられた図示しない通信器を介して、制御部３０に伝送される。ＣＰＵ温度検出部３２としての温度センサは、ＣＰＵ１４ａと同一チップ内に配置する替わりに、ＣＰＵ１４ａのパッケージに密着して配置されてもよい。
【００３２】
冷却ファンユニット１２は、ＣＰＵ１４aを含む各計算機１４を冷却する冷却装置である。冷却装置は、冷却ファン１２ａのほかに、冷却ファン１２ａと気化式冷却装置の組み合わせや、冷却ファン１２ａとエアコンを用いて構成することもできる。
【００３３】
吸気温度検出部３３は、計算機１４が吸入する空気の温度を測定する。計算機消費電力検出部３４は、計算機１４の電源コンセントが接続された電源タップから計算機の消費電力値を検出する。上述のように、計算機１４の消費電力は、計算機１４の稼働率と相関関係がある。
【００３４】
制御パラメータ設定部３５は、制御部３０で用いられる制御パラメータを設定する。制御部３０と各計算機１４との間の信号の送受信は、たとえばＵＤＰ（User Datagram Protocol）通信を介して行うが、ＵＤＰ通信に限定するものではない。
【００３５】
図６は、制御部３０の機能ブロック図である。制御部３０は、ＣＰＵ温度収集部４２、計算機消費電力収集部３６、最高温度演算部３７、平均温度演算部３８、最高消費電力演算部３９、重みつきベクトル間距離演算部４０、切替制御部４１、及び操作量記憶部４３を有する。
【００３６】
ＣＰＵ温度収集部４２は、ＣＰＵ温度検出部３２で測定されたＣＰＵ温度を収集する。計算機消費電力収集部３６は、計算機消費電力検出部３４で測定された計算機消費電力を収集する。最高温度演算部３７は、ＣＰＵ温度収集部４２が収集したＣＰＵ温度のうち最も高い水準にある最高ＣＰＵ温度を特定し、出力する。
【００３７】
各計算機１４で許容する上限温度が異なる場合は、最高温度演算部３７で基準化を行ってもよい。基準化にはいくつかの方法が考えられる。たとえば、計算機φの基準化した温度ｙnor(φ)は、計算機φの上限温度ｙlim(φ)と計算機φの最小温度ｙmin(φ)とによって、式（１）のように基準化することができる。
【００３８】
【数１】
0006277912.tif 000002
式（１）の意味は、上限温度ｙlim(φ)までの到達率に対して１００を乗算したものであり、その最も高い水準にある最高ＣＰＵ温度ｙcpu_maxは、式（２）で求められる。
【００３９】
【数２】
0006277912.tif 000003
【００４０】
他の基準化の方法として、計算機φの現在のＣＰＵ温度ｙcur(φ)と上限温度ｙlim(φ)の偏差の最大値に１００を加算した式（３）を１００℃以下となるように制御する方法がある。
【００４１】
【数３】
0006277912.tif 000004
平均温度演算部３８は、吸気温度検出部３３で複数箇所の吸気温度を測定している場合に吸気温度を収集し、それらの平均値を計算して出力する。
【００４２】
最高消費電力演算部３９は、計算機消費電力検出部３４が収集した消費電力のうち最も高い水準にある最高消費電力を特定し、出力する。
【００４３】
重みつきベクトル間距離演算部４０は、平均温度演算部３８が出力した現在の吸気温度と、最高消費電力演算部３９が出力した現在の計算機消費電力とを要素とするベクトルと、切替制御部４１が有する各予測モデルの吸気温度と計算機消費電力の条件値を要素とするベクトルの間の重みつきベクトル間距離を計算し、出力する。重みつきベクトル間距離の算出方法については、後述する。
【００４４】
切替制御部４１は、消費電力と吸気温度を条件とする計算機１４の動作領域を複数の動作範囲に分割し、分割した動作範囲ごとに将来のＣＰＵ温度を推定する予測モデルを構築する。切替制御部４１は、各予測モデルに対応して配置される複数のコントローラの中から、最適な予測モデル、すなわち、重みつきベクトル間距離が最も短くなる予測モデルを有するコントローラを選択して切り替える。各コントローラは、予測されるＣＰＵ温度が許容範囲に収まるように冷却ファン１２ａを制御する。
【００４５】
操作量記憶部４３は、各コントローラ５２がＣＰＵ温度の予測値に基づいて決定した冷却ファン１２ａの操作量を記憶する。
【００４６】
図７は、切替制御部４１の機能ブロック図である。切替制御部４１は、分割された動作範囲１〜Ｎに対応するコントローラ５２−１〜５２−Ｎ（適宜、「コントローラ５２」と総称する）と、コントローラ５２−１〜５２−Ｎの間を切り替えるコントローラ切替部５１を有する。コントローラ切替部５１は、重みつきベクトル間距離演算部４０が求めた距離に基づいて、最も距離の短い条件値のＣＰＵ温度予測モデル５３を特定し、そのＣＰＵ温度予測モデル５３を備えたコントローラ５２に切り替えを行う。ここで、最も距離の短い条件値のＣＰＵ温度予測モデル５３が複数存在する場合に備えて、コントローラには優先順位を定義する。最も距離の短い条件値のＣＰＵ温度予測モデル５３が複数存在する場合に、最も距離の短い条件値のＣＰＵ温度予測モデル５３を備えたコントローラ５２から優先順位の高い１つのコントローラを選定し、切り替える。
【００４７】
各コントローラ５２は、それが用いるＣＰＵ温度予測モデル５３と、補正部５４と、評価関数５５と、最適化部５６を有し、ＣＰＵ温度予測モデル５３を用いて計算された将来のＣＰＵ温度変化に基づいて、冷却ファン１２ａの操作量を計算する。
【００４８】
ＣＰＵ予測モデル５３は、最高温度演算部３７の出力、平均温度演算部３８の出力、最高消費電力演算部３９の出力、および操作量記憶部４３から取得した過去の冷却ファン１２ａの操作量と現在の冷却ファン１２ａの操作量から、ＣＰＵ温度の予測値を算出する。補正部５４は、算出された予測値を補正する。
【００４９】
評価関数５５は、補正部５４で補正されたＣＰＵ温度の予測値と、目標値設定部３１で設定された目標値との偏差を重み付けしてコストを算出する。最適化部５６は、現在から将来に向かう一定の予測区間について、予め設定された制約条件を満たし、かつ算出されたコスト（評価値）を最小とするように現在の冷却ファン１２aの操作量を演算する。制約条件については後述する。最適化部５６は、最適化問題を解く計算部であり、必ずしも図７のように動作範囲ごと（コントローラ５２ごと）に分ける必要はなく、複数のコントローラ５２の間で共通化してもよい。
【００５０】
図８は、実施形態の温度制御方法のフローチャートである。制御部３０は、一定時間毎（例えば1秒毎）に図８の処理フローを実行する。
【００５１】
ステップS１１で、制御部３０は、ＣＰＵ温度検出部３２から各計算機１４の現在のＣＰＵ温度を、吸気温度検出部３３から現在の吸気温度を、計算機消費電力検出部３４から計算機１４の現在の消費電力を取得する。
【００５２】
ステップS１２で、制御部３０は、目標値設定部３１で設定されたＣＰＵの温度目標値と、制御パラメータ設定部３５で設定された各種パラメータを取得する。各種パラメータは、コスト関数の目標値に近づける重みの目標値追従パラメータ、コスト関数の操作量の大きさを０に近づける重みの操作量低減パラメータ、および、コスト関数の操作量の変動幅を小さくする重みの操作量変動幅パラメータを含む。ステップＳ１１とＳ１２の実施は順不同である。
【００５３】
ステップS１３で、制御部３０の最高温度演算部３７にて、ＣＰＵ温度収集部４２が収集した各計算機１４のＣＰＵ温度のうち最も高い水準にあるＣＰＵ温度を特定し、出力する。複数の計算機１４間で許容される上限温度が異なる場合は、式（１）及び（２）による基準化や、式（３）による基準化によりＣＰＵ温度を基準化してから、その最大値を用いる。
【００５４】
ステップS１４で、制御部３０の最高消費電力演算部３９にて、計算機消費電力収集部３６が収集した各計算機１４の消費電力のうち最も高い水準にある消費電力を特定し、出力するとともに、平均温度演算部３８にて、各測定点での吸入空気温度の平均値を出力する。ステップＳ１３とＳ１４の実施は順不同である。
【００５５】
ステップＳ１５で、制御部３０の重みつきベクトル間距離演算部４０にて、重みつきのベクトル間距離を計算する。具体的には、式（４）により、最高消費電力演算部３９が出力した計算機消費電力の現在値ｖ1_cを第１要素、平均温度演算部３８が出力した現在の吸気温度ｖ2_cを第２要素とするベクトルｖcと、切替制御部４１が有する予測モデルの集合における予測モデルρの計算機消費電力ｖ1_mを第１要素、吸気温度ｖ2_mを第２要素とするベクトルｖmの重みつきユークリッドノルムｄy(k,ρ)を計算し、出力する。
【００５６】
【数４】
0006277912.tif 000005
ここで、ｗ1は計算機消費電力（第１要素）に対する重み係数であり、ｗ2は吸気温度（第２要素）に対する重み係数である。kは制御周期のサイクル数、ρは切替制御部４１が有する予測モデルの集合における予測モデルのインデックス（要素番号）である。
【００５７】
ｗ1とｗ2はＣＰＵ温度に対する吸気温度や計算機消費電力の寄与率によって決める。寄与率は、ＣＰＵ温度と計算機消費電力の相関係数の絶対値及びＣＰＵ温度と吸気温度の相関係数の絶対値、あるいはt検定によって求まるＦ値を用いることができる。相関係数を用いる場合は、たとえばＣＰＵ温度と吸気温度の相関係数の絶対値が0.5であれば、ｗ1を0.5とし、ＣＰＵ温度と計算機消費電力の相関係数の絶対値が0.9であれば、ｗ2を0.9に設定する。
【００５８】
制御部３０は、切替制御部４１が有するすべての予測モデルについて重みつきベクトル間距離dy(k,ρ)を計算する。
【００５９】
ステップS１６で、切替制御部４１が有する予測モデルρの中で最も距離の短くなる予測モデルρminを式（５）により特定し、ρminを備えたコントローラ５２を選択して切り替える。最も距離の短くなる予測モデルρminが複数存在する場合は、ρminを備えたコントローラ５２について、あらかじめ定義した優先順位の高いものを選択して切り替える。
【００６０】
【数５】
0006277912.tif 000006
【００６１】
ステップS１７で、制御部３０で選択されたコントローラ５２のＣＰＵ温度予測モデル５３にて、操作量である冷却ファン回転数u(k)からＣＰＵ温度を予測するモデルを準備する。モデルは式（６）で表現される。
【００６２】
【数６】
0006277912.tif 000007
ここで、y(k+1)は１周期先の将来のＣＰＵ温度である。
【００６３】
実施形態では、式（７）、（８）で表される状態空間モデルを用いる。
【００６４】
【数７】
0006277912.tif 000008
ここで、x(k)はk時点における状態変数とよばれ、ｎ次元ベクトルである。Ａはｎ×ｎの行列、Ｂuはｎ次元ベクトル、Ｃはｎ次元ベクトルである。Ａ、Ｂu、およびＣは、事前に行った実験データよりシステム同定によって求まる。システム同定の手法としては、予測誤差法や部分空間同定法などがある。また、Ａ、Ｂu、およびＣは、ＣＰＵ温度の動的特性を表現する物理モデルの微分方程式が導出できる場合は、微分方程式の線形化（テーラー展開）を行うことで導出することもできる。ｎはモデルの次数ｎdとむだ時間ｄtで決まり、ｎ=ｎd＋ｄtである。実施形態では、ｄtは冷却ファン１２ａのむだ時間であり、ｄtを１２秒とする。一例として状態空間モデルを用いているが、モデルの表現方法は重回帰式モデルであってもよい。
【００６５】
選択されたコントローラ５２の補正部５４は、式（９）により実測値と予測値の差を補正する。
【００６６】
【数８】
0006277912.tif 000009
ここで、
【００６７】
【数９】
0006277912.tif 000010
は、式（７）と式（８）に基づき、k時点までの利用可能情報に基づいてk+1時点を予測したＣＰＵ温度の予測値、yreal(k)は１周期前の過去の実測値、y(k|k-1)は１周期前の過去の予測値である。
【００６８】
選択されたコントローラ５２の最適化部５６は、現在から将来の一定時間にわたる予測区間Ｐについて、制約条件を満足し、かつ評価関数５５を最小にする現在の操作量を計算する。ここでは、説明を分かりやすくするため、操作量u(k-dt)のむだ時間dtの標記を省略する。将来区間の操作量は操作量の変化量Δuによって１周期先を
【００６９】
【数１０】
0006277912.tif 000011
と表現できる。ｉは予測区間Ｐの時刻を表現するインデックスである。予測区間の予測値ｙを評価するために、予測モデル５３の式（７）と式（８）と、補正部５４の式（９）にインデックスｉを追加すると、式（１１）〜（１３）で表される。
【００７０】
【数１１】
0006277912.tif 000012
式（１１）〜（１３）を用いて、制約条件を満たし、かつコスト関数Ｊを最小とする操作量の変化量Δuを計算する。
【００７１】
制約条件は、たとえば式（１４）で表される。
【００７２】
【数１２】
0006277912.tif 000013
コスト関数Ｊは式（１５）で表される。
【００７３】
【数１３】
0006277912.tif 000014
【００７４】
制約条件を満たし、かつ式（１５）のコスト関数Ｊを最小にする操作量の変化量Δｕの入力列は、式（１６）で表現される。
【００７５】
【数１４】
0006277912.tif 000015
ここで、Ｐは将来の一定時間にわたる予測区間（予測ホライズン）、ｍは操作量の変化を考慮する区間（制御ホライズン）であり、Ｐ≧ｍとする。実施形態ではＰを１００、ｍを１に設定する。Ｑ、ＲΔu、Ｒuは重み行列である。
【００７６】
式（１５）の第一項は、制御量ｙを目標値設定部３１で設定した目標値ｒに近づける操作である。Ｑは制御量を目標値に近づける操作の重みであり、制御パラメータ設定部３５で設定した目標値追従パラメータである。第二項は、操作量の変化量Δuを0に近づける操作である。ＲΔuは操作量の変化量をゼロに近づける操作の重みであり、制御パラメータ設定部３５で設定した操作量低減パラメータである。重みＲΔuが小さいと変化量Δuは大きく、重みＲΔuが大きいと変化量Δuは小さくなる。第三項は、操作量を目標操作量ｕtargetに近づける操作であり、実施形態ではｕtargetは０とする。Ｒuは操作量を目標操作量に近づける操作の重みであり、制御パラメータ設定部３５で設定した操作量変動幅パラメータである。
【００７７】
式（１６）により求まった最適入力列{Δuopt(k|k), …, Δuopt(m-1+k|k)}の先頭要素Δuopt(k|k)を抽出して、現在の操作量u(k)を式（１７）から計算する。
【００７８】
【数１５】
0006277912.tif 000016
【００７９】
コスト関数Ｊを最小にする最適化ソルバーは、遺伝的アルゴリズム（ＧＡ：Genetic Algorithm）や粒子群最適化（ＰＳＯ：Particle Swarm Optimization）などの近似解を探索するメタヒューリスティックな数値解法を用いることもできるが、実施形態では、２次計画問題を解くための逐次２次計画法（ＳＱＰP:Sequential Quadratic Programming）を用いる。
【００８０】
切り替えられたコントローラが計算した式（１７）の現在の操作量ｕ(k)を、すべてのコントローラ５２が備える予測モデルに相当する式（７）と式（８）における式（７）に代入し、さらに式（８）を計算して、各コントローラ５２が備える予測モデルの状態量ｘ(k+1)と予測値
【００８１】
【数１６】
0006277912.tif 000017
を更新する。
【００８２】
このように、実施形態では、計算機の消費電力と吸気温度を要素とする現在値のベクトルと、予測モデルの条件値である消費電力と吸気温度を要素とするベクトルの間の重みつけベクトル間距離に基づいて現在の動作条件に最も近い予測モデルを備えたコントローラを選定する。予測モデルを備えたコントローラを適応的に切り替えることによって、単一の線形の予測モデルでは良好に再現できない動作範囲においても、制御性能を低下させることなく冷却ファンを制御して、計算機の温度管理をすることができる。
【００８３】
図９は、実施形態の手法による制御結果を示す図である。図９（Ａ）は、分割された動作範囲を代表する条件に対応する予測モデルの例を示す。図９（Ｂ）は各予測モデルを備えたコントローラの例を示す。図９（Ｃ）は、実施形態の方法で選択された最適な予測モデルのコントローラ１により制御されたＣＰＵ温度を、現在の動作条件と異なる動作範囲の予測モデルを備えるコントローラ２〜４による温度制御と比較して示す図である。
【００８４】
動作範囲として、吸気温度の動作範囲を2つに分けて、それぞれを20℃と30℃の２つの代表条件で表現し、計算機消費電力の動作範囲を2つに分けて、200Wと320Wの２つの代表条件で表現し、４つの予測モデルを作成する。
(1) 吸気温度20℃と計算機消費電力200Wの条件での予測モデルNo.１
(2) 吸気温度30℃と計算機消費電力320Wの条件での予測モデルNo.２
(3) 吸気温度30℃と計算機消費電力200Wの条件での予測モデルNo.３
(4) 吸気温度20℃と計算機消費電力320Wの条件での予測モデルNo.４
予測モデルNo.１を備えたコントローラをコントローラNo.１、予測モデルNo.２を備えたコントローラをコントローラNo.２、予測モデルNo.３を備えたコントローラをコントローラNo.３、予測モデルNo.４を備えたコントローラをコントローラNo.４とする。
【００８５】
計算機の動作条件を吸気温度２０℃、計算機消費電力２００Wとして、上記４つのコントローラによって制御を行う。計算機消費電力とＣＰＵ温度の相関係数が0.9、吸気温度とＣＰＵ温度の相関係数が0.5なので、式（４）における計算機消費電力（ベクトルの第1要素）に対する重み係数ｗ1を0.9、吸気温度（ベクトルの第２要素）に対する重み係数ｗ2を0.5に設定する。また、ＣＰＵ温度の目標値を６８℃に設定する。
【００８６】
実施形態の方法を用いて、各検出部からの吸気温度と計算機消費電力の現在値を要素とするベクトルと、各コントローラが保有する予測モデルNo.1〜No.4の条件値を要素とするベクトルの間の重みつきベクトル間距離を計算した結果、モデルNo.１が選定された。
【００８７】
図９（Ｂ）において、モデルNo.１を備えたコントローラNo.1によって制御されたＣＰＵ温度の変化を破線で示す。選択されたコントローラNo.１では、現在の条件と予測モデルの条件が一致しているため、ＣＰＵ温度をオーバーシュートさせることなく、高応答で制御できている。すなわち、ＣＰＵ温度を過剰に上昇させることなく、温度管理がなされている。これに対して、コントローラNo.２から４では、予測モデルが表現する動作条件が現在の条件から離れているため、オーバーシュートしている。
【００８８】
実施形態では重みつきベクトル間距離を用いているため、現在の吸気温度が25℃、計算機消費電力260Wなど、分割した動作範囲の境界にある条件であっても、重み係数を導入した式（４）から一意にコントローラを決定することができる。
【００８９】
図１０と図１１は、実施形態の方法による冷却ファン１２ａの消費電力の節減効果を、従来方法と比較して示す図である。計算機１４のＣＰＵ温度が６８℃を超えないように制御する場合を例にとる。
【００９０】
ＣＰＵ温度が目標値を超えないように、オーバーシュート分をあらかじめ考慮して目標値を低めに設定する。実施形態の温度管理方法では、図１０（Ａ）に示すようにオーバーシュートがほとんどないため、目標値を67.95℃に設定すればよい。すなわち、冷却量が少なくなるため、冷却ファン１２ａの送風量を小さくすることができる。このときの冷却ファン１２ａの消費電力量は978Whである。
【００９１】
他方、動作条件が実際の動作条件と異なる予測モデルを有するコントローラNo.４で冷却ファン１２ａを制御すると、オーバーシュートを加味して目標値を67.5℃に設定する必要がある。計算機１４に対する冷却量が多くなり、冷却ファン１２ａの消費電力量は1046Whとなる。
【００９２】
上記の比較結果を、図１１にまとめる。実施形態では、現在の計算機の動作条件に最も近い条件の予測モデルのコンピュータを選択することで、約6.5％の電力を削減することができる。従来法では、オーバーシュートを考慮して目標温度あらかじめ低めに設定していたことに対し、実施形態の方法では、目標値をＣＰＵの許容上限温度の近傍に設定することができるため、冷却ファン１２ａの消費電力を低減することができる。
【００９３】
実施形態の電子機器の温度管理をコンピュータプログラムによって実現してもよい。この場合、制御コンピュータに以下の手順を実行させるプログラムをインストールする。
(a) 検出部によって検出された電子機器の発熱体の温度、前記電子機器の消費電力、および前記電子機器の吸気温度を収集する処理；
(b) 前記電子機器の前記消費電力と前記吸気温度の取り得る動作領域を複数の動作範囲に分割し、分割された前記動作範囲ごとに前記冷却装置の前記操作量を制御する複数のコントローラを設定する処理；
(c) 前記複数のコントローラに対応して、前記動作範囲ごとに、当該動作範囲の前記消費電力と前記吸気温度の条件下で前記発熱体の将来の温度を予測する複数の予測モデルを構築する処理；
(d) 前記複数の予測モデルのうち前記電子機器の現在の動作条件に最も近い動作範囲で構築された予測モデルを用いるコントローラに切り替える処理であって、現在の消費電力と現在の吸気温度を要素とする第１のベクトルと、前記各予測モデルを構築したときの条件である前記消費電力と前記吸気温度とを要素とする第２のベクトルとの間のベクトル間距離を算出し、前記ベクトル間距離が最短となる予測モデルに対応する前記コントローラに切り替える処理；および、
(e) 前記切り替えられたコントローラによって前記発熱体の将来の温度を予測し、前記予測された温度に基づいて前記冷却装置の操作量を決定する処理。
【００９４】
この温度管理プログラムを用いることで、電子機器の動作条件が変化する環境においても、制御性能の低下を抑制することができる。電子機器の温度制御時にオーバーシュートを抑制しつつ、ＣＰＵ温度を目標温度またはその近傍に制御することができる。また、温度制御に用いる冷却装置の消費電力を低減することができる。
【符号の説明】
【００９５】
１  温度管理システム
１２  冷却ファンユニット
１４  計算機（電子機器）
１４ａ  ＣＰＵ（発熱体）
３０  制御部
３２  ＣＰＵ温度検出部
３３  吸気温度検出部
３４  計算機消費電力検出部
３５  制御パラメータ設定部
４０重みつきベクトル間距離演算部
４１  切り替え制御部
５１  コントローラ切替部
５２−１〜５２−Ｎ  コントローラ
５３  ＣＰＵ温度予測モデル
５４  補正部
５５  評価関数
５６  最適化部
【図１】
0006277912.tif 000018
【図２】
0006277912.tif 000019
【図３】
0006277912.tif 000020
【図４】
0006277912.tif 000021
【図５】
0006277912.tif 000022
【図６】
0006277912.tif 000023
【図７】
0006277912.tif 000024
【図８】
0006277912.tif 000025
【図９】
0006277912.tif 000026
【図１０】
0006277912.tif 000027
【図１１】
0006277912.tif 000028