(実施形態1)
まず、図1を参照して、本発明の実施形態に係る空調制御システム1000について説明する。空調制御システム1000は、空調機300から取得される運転データを学習データとして機械学習することにより制御モデルを生成し、生成した制御モデルを用いて空調機300を制御するシステムである。本実施形態において、制御モデルを生成することは、制御モデルを新規に生成することのみならず、既存の制御モデルを更新することも含む。
図1に示すように、空調制御システム1000は、空調制御装置100と、サーバ200と、を備える。空調制御装置100と少なくとも1つの空調機300とは、空調ネットワーク500を介して相互に接続される。空調制御装置100とサーバ200とは、広域ネットワーク600を介して相互に接続される。
本実施形態では、制御モデルとしてニューラルネットワークを用いる。このニューラルネットワークは、入力層と中間層と出力層とを含む。学習データには、学習対象のデータと学習対象以外のデータとが含まれる。入力層には、学習データに含まれる学習対象以外のデータが入力値として入力される。中間層のユニット数は、予め定められているものとする。出力層からは、学習データに含まれる学習対象のデータとしての出力値が出力される。例えば、以下に示す手順A1から手順A6に従って、複数の学習データを含む学習データセット(以下「学習データ群」という。)を用いて機械学習する。
手順A1:学習データ群から1つの学習データを選択する。手順A2:ニューラルネットワークに、選択された学習データに含まれる学習対象以外のデータを入力する。手順A3:ニューラルネットワークの出力値を計算する。手順A4:選択された学習データに含まれる学習対象のデータを教師信号として、誤差逆伝播法で学習する。手順A5:学習データ群から全ての学習データが選択されるまで、手順A1から手順A4を繰り返す。手順A6:手順A3における出力値と学習データに含まれる学習対象のデータとの誤差の全学習データの平均値が予め定められた閾値以下になるか、手順A5における繰り返し回数が予め定められた閾値に至るまで、手順A5を繰り返す。
運転データには、制御対象のデータと、制御対象以外のデータとが含まれる。運転データに含まれる制御対象のデータは、学習データに含まれる学習対象のデータに対応する。運転データに含まれる制御対象以外のデータは、学習データに含まれる学習対象以外のデータに対応する。制御モデルを用いて制御対象のデータを求める場合、制御モデルを構成するニューラルネットワークに制御対象以外のデータを供給することで、制御対象のデータとしての出力値をニューラルネットワークから取得することができる。本実施形態では、制御対象のデータである学習対象のデータは、空調機300の設定温度であり、制御対象以外のデータである学習対象以外のデータは、空調機300の吸込温度と空調機300の液管温度とを含む各種のデータであるものとする。
ここで、高精度の制御モデルを生成するためには、膨大な量の運転データを学習データとして学習する必要があり、多大な計算資源が必要となる。一方、空調制御装置100に多大な計算資源を持たせるために、空調制御装置100に高性能のプロセッサと大容量のメモリとを設けることは望ましくない場合がある。そこで、本実施形態では、空調制御装置100は、膨大な量の運転データの全てを学習データとして学習するのではなく、膨大な量の運転データから選択された比較的少数の運転データを学習データとして学習する。
本実施形態では、この膨大な量の運転データは、直近の予め定められた期間に空調機300から取得された運転データである。この直近の予め定められた期間は、例えば、直近の1ヶ月間である。この膨大な量の運転データの個数は、例えば、数百個から数万個である。一方、学習データとして選択される運転データの個数は、例えば、数十個から数百個である。
学習データとして選択される運転データは、高精度の制御モデルを生成することができるように、膨大な量の運転データのうちの代表的な運転データであることが望ましい。一方、最適な運転データを選択する処理には、多大な計算資源が必要となる。そこで、本実施形態では、高性能のプロセッサと大容量のメモリとが設けられたサーバ200が、最適な運転データを選択する処理を実行する。
空調制御装置100は、膨大な量の運転データから選択された比較的少数の運転データを学習データとして制御モデルを生成し、この制御モデルを用いて空調機300を制御する。空調制御装置100は、例えば、プロセッサ11と、フラッシュメモリ12と、ユーザインターフェース13と、第1通信インターフェース14と、第2通信インターフェース15と、を備える。
プロセッサ11は、空調制御装置100の全体の動作を制御する。プロセッサ11は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、RTC(Real Time Clock)などを内蔵したCPU(Central Processing Unit)である。なお、CPUは、例えば、ROMに格納されている基本プログラムに従って動作し、RAMをワークエリアとして使用する。フラッシュメモリ12は、各種の情報を記憶する不揮発性メモリである。フラッシュメモリ12は、例えば、プロセッサ11が実行するアプリケーションプログラムと、空調機300から取得された運転データと、を記憶する。
ユーザインターフェース13は、空調制御装置100のユーザインターフェースである。つまり、ユーザインターフェース13は、ユーザによりなされた操作を検知し、検知の結果を示す信号をプロセッサ11に供給する。また、ユーザインターフェース13は、プロセッサ11による制御に従って、ユーザに情報を提示する。ユーザインターフェース13は、例えば、タッチスクリーンである。第1通信インターフェース14は、空調制御装置100を空調ネットワーク500に接続するためのインターフェースである。第2通信インターフェース15は、空調制御装置100を広域ネットワーク600に接続するためのインターフェースである。第2通信インターフェース15は、例えば、NIC(Network Interface Card)などのLAN(Local Area Network)インターフェースを備える。
サーバ200は、膨大な量の運転データから、比較的少数の運転データを学習データとして選択するサーバである。サーバ200は、例えば、制御モデルの生成及び評価により、学習データを選択する。サーバ200は、例えば、プロセッサ21と、ハードディスク22と、通信インターフェース23と、を備える。
プロセッサ21は、サーバ200の全体の動作を制御する。プロセッサ21は、例えば、ROM、RAM、RTCなどを内蔵したCPUである。ハードディスク22は、各種の情報を記憶する不揮発性の記憶装置である。ハードディスク22は、例えば、プロセッサ21が実行するアプリケーションプログラムと、膨大な量の運転データと、を記憶する。通信インターフェース23は、サーバ200を広域ネットワーク600に接続するためのインターフェースである。通信インターフェース23は、例えば、NICなどのLANインターフェースを備える。
空調機300は、空調制御装置100による制御に従って、予め定められた空間の空調を実行する。空調制御装置100により制御される空調機300の個数は、何個でもよい。本実施形態では、1つの空調機300に注目して説明する。空調機300は、例えば、室外機、又は、室内機である。空調機300は、例えば、プロセッサ31と、機器負荷32と、通信インターフェース33と、ユーザインターフェース34とを備える。
プロセッサ31は、空調機300の全体の動作を制御する。プロセッサ31は、例えば、ROM、RAM、RTCなどを内蔵したCPUである。機器負荷32は、空調機300に設けられた負荷である。機器負荷32は、例えば、冷媒回路、ルーバー、ファンである。通信インターフェース33は、空調機300を空調ネットワーク500に接続するためのインターフェースである。ユーザインターフェース34は、空調機300のユーザインターフェースである。つまり、ユーザインターフェース34は、ユーザによりなされた操作を検知したり、ユーザに情報を提示したりする。ユーザインターフェース34は、例えば、タッチスクリーン、又は、リモートコントローラである。
空調ネットワーク500は、空調制御装置100と少なくとも1つの空調機300とを相互に接続するネットワークである。空調ネットワーク500は、例えば、一対の通信線を含むケーブルを備える。広域ネットワーク600は、空調制御装置100とサーバ200とを接続するためのネットワークである。広域ネットワーク600は、例えば、インターネットである。
次に、図2を参照して、空調制御システム1000の機能について説明する。図2に示すように、空調制御装置100は、機能的には、空調通信部110と、運転データ転送部120と、サーバ通信部130と、学習データ管理部140と、モデル生成部150と、空調制御部160と、表示部170と、を備える。空調通信手段は、例えば、空調通信部110に対応する。サーバ通信手段は、例えば、サーバ通信部130に対応する。モデル生成手段は、例えば、モデル生成部150に対応する。空調制御手段は、例えば、空調制御部160に対応する。更新表示手段は、例えば、表示部170に対応する。
空調通信部110は、空調ネットワーク500を介して空調機300と通信する。空調通信部110は、空調機300から運転データを受信する。また、空調通信部110は、空調制御部160から供給された制御信号を空調機300に送信する。空調通信部110の機能は、例えば、第1通信インターフェース14の機能により実現される。運転データ転送部120は、空調通信部110を介して空調機300から収集した運転データを、サーバ通信部130を介してサーバ200に転送する。運転データ転送部120の機能は、例えば、プロセッサ11の機能により実現される。
サーバ通信部130は、広域ネットワーク600を介してサーバ200と通信する。サーバ通信部130は、空調通信部110により受信された運転データをサーバ200に送信する。また、サーバ通信部130は、選定情報をサーバ200から受信する。選定情報は、運転データ記憶部142に蓄積された運転データ群から選定された学習データ群を示す情報である。サーバ通信部130の機能は、例えば、第2通信インターフェース15の機能により実現される。
学習データ管理部140は、運転データ転送部120が収集した運転データを蓄積し、サーバ通信部130を介して得られる選定情報に基づいて運転データを管理する。学習データ管理部140の機能は、例えば、プロセッサ11とフラッシュメモリ12とが協働することにより実現される。
次に、図3を参照して、学習データ管理部140の機能について詳細に説明する。学習データ管理部140は、運転データ追加部141と、運転データ記憶部142と、識別子付与部143と、学習データ出力部144と、を備える。運転データ追加手段は、例えば、運転データ追加部141に対応する。運転データ記憶手段は、例えば、運転データ記憶部142に対応する。識別子付与手段は、例えば、識別子付与部143に対応する。
運転データ追加部141は、運転データ転送部120から新たに収集した運転データを受け取り、新規データとして運転データ記憶部142に記憶させる。なお、新規データは、学習データの候補である。運転データ追加部141の機能は、例えば、プロセッサ11の機能により実現される。運転データ記憶部142は、学習データの候補である運転データを記憶する。つまり、運転データ記憶部142は、空調通信部110により受信された運転データを記憶して蓄積する。運転データ記憶部142に新規データとして記憶された運転データは、識別子付与部143による識別子の付与により、学習データ、予備データ、又は、無効データとして扱われる。
学習データは、制御モデルの生成に用いられる運転データである。予備データは、直ちには制御モデルの生成に用いられないが、将来的に制御モデルの生成に用いられる可能性がある運転データである。無効データは、制御モデルの生成に用いられないデータである。無効データは、新規データに書き換えられる運転データであり、もはや運転データ記憶部142に記憶されていない運転データとも言える。運転データ記憶部142の機能は、例えば、フラッシュメモリ12の機能により実現される。
識別子付与部143は、サーバ通信部130を介してサーバ200から受信した選定情報に基づいて、運転データ記憶部142に記憶されている運転データ群の選定状態を更新する。つまり、識別子付与部143は、サーバ通信部130により選定情報が受信された場合、運転データ記憶部142に記憶された運転データ群に含まれる運転データのそれぞれに、選定情報により示される識別子を付与する。選定情報は、例えば、運転データ記憶部142に記憶された運転データ群に含まれる運転データのそれぞれに付与される、第1の識別子と第2の識別子と第3の識別子とのうちのいずれかの識別子を示す情報である。識別子付与部143の機能は、例えば、プロセッサ11の機能により実現される。
第1の識別子は、例えば、運転データが学習データとして有効であることを示す識別子である。第1の識別子が付与された運転データは、選定状態が有効に設定され、学習データとして扱われる。つまり、学習データ群は、運転データ記憶部142に記憶された運転データ群に含まれる運転データのうち第1の識別子が付与された運転データを含む。第2の識別子は、例えば、運転データが学習データとして無効であることを示す識別子である。第2の識別子が付与された運転データは、選定状態が無効に設定され、無効データとして扱われる。
つまり、運転データ追加部141は、空調通信部110により運転データが受信された場合、空調通信部110により受信された運転データを、運転データ記憶部142に記憶された運転データ群に含まれる運転データのうち第2の識別子が付与された運転データに代えて、運転データ記憶部142に記憶させる。第3の識別子は、例えば、運転データが学習データの予備であることを示す識別子である。第3の識別子が付与された運転データは、選定状態が予備に設定され、予備データとして扱われる。
図4を参照して、運転データ記憶部142に記憶される運転データ群について説明する。運転データ記憶部142は、1つの運転データを1つのレコードとして、運転データ群を記憶する。運転データを構成する1つのレコードは、データIDと、選定状態と、複数のデータ列と、を備える。データ列には、少なくともデータ1とデータ2とが含まれる。運転データ記憶部142に記憶可能なレコードの個数の上限値は、予め定められているものとする。この上限値は、例えば、数十個から数百個である。
データIDは、運転データを識別するためのIDである。例えば、空調制御装置100は、サーバ200に運転データを送信するときに、運転データにデータIDを付与する。なお、選定情報は、例えば、運転データ記憶部142に記憶された運転データ群のそれぞれについて、データIDと上記識別子とを示す情報である。選定状態は、運転データの学習データとしての選定状態である。選定状態は、例えば、有効、無効、予備、新規、無しのいずれかである。運転データ記憶部142に記憶された運転データ群の個数が上記上限値に満たない場合、空きレコードに対応する運転データ、つまり、未だに記憶されていない運転データの選定状態として、無しが設定される。ただし、未だに記憶されていない運転データと無効データとを同様に扱う場合、無効と無しとを統合することができる。
データ1は、吸込温度であり、制御対象以外のデータである。データ2は、設定温度であり、制御対象のデータである。つまり、本実施形態では、制御モデルは、少なくとも吸込温度を含むデータから、設定温度を求める。
学習データ出力部144は、運転データ記憶部142に記憶された運転データ群のそれぞれの選定状態に基づいて、制御モデルの生成に用いる学習データ群を選定する。具体的には、学習データ出力部144は、運転データ記憶部142に記憶された運転データ群に含まれる運転データのうち第1の識別子が付与された運転データを学習データとして選定する。そして、学習データ出力部144は、選定した学習データ群を、モデル生成部150に供給する。学習データ出力部144の機能は、例えば、プロセッサ11の機能により実現される。
モデル生成部150は、サーバ通信部130により選定情報が受信された場合、学習データ管理部140から学習データ群を受け取る。モデル生成部150は、受け取った学習データ群を用いた機械学習により、制御モデルを生成する。モデル生成部150の機能は、例えば、プロセッサ11とフラッシュメモリ12とが協働することにより実現される。
空調制御部160は、モデル生成部150により生成された制御モデルに基づく制御内容で、空調通信部110を介して空調機300を制御する。空調制御部160は、最新の運転データに含まれる制御対象以外のデータを制御モデルに供給し、制御モデルから制御対象のデータに対応する出力値を取得する。空調制御部160は、この出力値に対応する制御信号を、空調通信部110を介して空調機300に送信する。空調制御部160の機能は、例えば、プロセッサ11の機能により実現される。
表示部170は、空調制御装置100の状態と空調機300の状態とを表示する。表示部170は、例えば、モデル生成部150により制御モデルが生成された場合、制御モデルが更新されたことを報知する情報である更新報知情報を表示する。表示部170の機能は、例えば、プロセッサ11とユーザインターフェース13とが協働することにより実現される。
図5に、表示部170により表示される画面400を示す。画面400には、枠410により指定される第1領域と、枠420により指定される第2領域とが含まれる。第1領域には、例えば、空調機300の運転状態を示す画像が表示される。運転状態は、例えば、運転モードである。第2領域には、例えば、学習データとして新たな運転データが有効となり、制御モデルが更新されたことを報知する画像が表示される。第2領域に表示される画像は、上述した更新報知情報に対応する。
サーバ200は、機能的には、通信部210と、運転データ蓄積部220と、学習データ選定部230と、を備える。通信手段は、例えば、通信部210に対応する。運転データ蓄積手段は、例えば、運転データ蓄積部220に対応する。学習データ選定手段は、例えば、学習データ選定部230に対応する。
通信部210は、広域ネットワーク600を介して、空調制御装置100と通信する。通信部210は、サーバ通信部130により送信された運転データを受信する。また、通信部210は、学習データ選定部230により選定された学習データ群を示す情報である選定情報を、空調制御装置100に送信する。通信部210の機能は、例えば、プロセッサ21と通信インターフェース23とが協働することにより実現される。
運転データ蓄積部220は、通信部210により受信された運転データを記憶して蓄積する。運転データ蓄積部220に記憶される運転データ群は、運転データ記憶部142に記憶される運転データ群を含み、運転データ記憶部142に記憶される運転データ群よりも多い。運転データ蓄積部220に記憶される運転データ群に含まれる運転データは、選定状態を含む。運転データ蓄積部220の機能は、例えば、ハードディスク22の機能により実現される。
学習データ選定部230は、通信部210により運転データが受信された場合、運転データ蓄積部220に蓄積された運転データ群に基づいて、運転データ記憶部142に蓄積された運転データ群から、学習データ群を選定する。学習データ選定部230は、選定結果に応じて、運転データに含まれる選定状態を更新する。学習データ選定部230の機能は、例えば、プロセッサ21とハードディスク22とが協働することにより実現される。
ここで、上述の通り、通信部210は、学習データ選定部230により選定された学習データ群を示す情報である選定情報を、空調制御装置100に送信する。この選定情報は、第1の識別子が付与されている運転データに付与される識別子として、第1の識別子と第3の識別子とのうちのいずれかの識別子を示す。また、この選定情報は、第3の識別子が付与されている運転データに付与される識別子として、第1の識別子と第2の識別子とのうちのいずれかの識別子を示す情報である。つまり、直近に学習データとして選定されていた運転データは、学習データとして選択されなかった場合、直ちには無効データには設定されず、予備データに設定される。一方、直近に学習データとして選定されていなかった運転データは、学習データとして選択されなかった場合、予備データには設定されず、直ちに無効データに設定される。
なお、新規データは、学習データとして選定されていた運転データとして扱われてもよいし、学習データとして選定されていなかった運転データとして扱われてもよい。つまり、新規データは、学習データとして選択されない場合、第3の識別子が付与されて予備データとして扱われてもよいし、第2の識別子が付与されて無効データとして扱われてもよい。また、選定情報は、運転データ記憶部142に記憶された全ての運転データについて選定状態を示す情報であってもよいし、運転データ記憶部142に記憶された運転データのうち選定状態が変更される運転データについて選定状態を示す情報であってもよい。選定情報は、例えば、データIDと選定状態との組み合わせを1つ以上含む情報である。
空調機300は、機能的には、通信部310と、機器制御部320と、被制御部330と、操作受付部340と、を備える。通信部310は、空調ネットワーク500を介して、空調制御装置100と通信する。例えば、通信部310は、運転データを空調制御装置100に送信する。また、通信部310は、制御信号を空調制御装置100から受信する。通信部310の機能は、例えば、プロセッサ31と通信インターフェース33とが協働することにより実現される。
機器制御部320は、通信部310から受信した制御信号に従って、被制御部330を制御する。機器制御部320の機能は、例えば、プロセッサ31の機能により実現される。被制御部330は、機器制御部320から供給された制御信号に従って動作する。被制御部330の機能は、例えば、機器負荷32の機能により実現される。操作受付部340は、ユーザから空調機に対する操作を受け付ける。操作受付部340の機能は、例えば、ユーザインターフェース34の機能により実現される。
次に、図6に示すフローチャートを参照して、空調制御装置100が実行する空調制御処理について説明する。空調制御処理は、空調制御装置100の電源が投入されると開始される。なお、空調制御装置100が学習する制御モデルは、空調機300の運転データを入力して、設定温度を自動で制御するための制御モデルである。また、空調機300に対してユーザが手動操作することにより設定温度が変更されたときの運転データが、学習データの候補にされるものとする。
まず、空調通信部110は、空調機300から運転データを収集する(ステップS101)。具体的には、空調通信部110は、データ要求コマンドを空調機300に送信し、空調機300から応答コマンドを受信する。そして、空調通信部110は、応答コマンドに含まれる運転データを取得する。空調通信部110がステップS101の処理を完了すると、学習データ管理部140は、ユーザ操作があったか否かを判別する(ステップS102)。つまり、学習データ管理部140は、直前にステップS111において制御したときの設定温度と、収集された運転データに含まれる設定温度とが一致するか否かを判別する。これらの設定温度が一致しない場合、ユーザ操作、つまり、ユーザによる手動操作があったと判別する。
学習データ管理部140は、ユーザ操作があったと判別すると(ステップS102:YES)、運転データを新規データとして記憶する(ステップS103)。つまり、運転データ追加部141は、運転データ記憶部142に記憶された運転データのうち、選定状態が無効又は無しに設定された運転データに代えて、新たに取得された運転データを記憶させる。この運転データには、選定状態として、新規が付与される。
学習データ管理部140がステップS103の処理を完了すると、運転データ転送部120は、新規データとして記憶された運転データにデータIDを付与し、サーバ200に送信する(ステップS104)。運転データ転送部120がステップS104の処理を完了した後、サーバ通信部130は、選定情報をサーバ200から受信する(ステップS105)。サーバ通信部130がステップS105の処理を完了すると、学習データ管理部140は、選定情報に基づいて、運転データに付与された識別子を更新する(ステップS106)。
学習データ管理部140がステップS106の処理を完了すると、モデル生成部150は、制御モデルを生成する(ステップS107)。つまり、モデル生成部150は、学習データ出力部144が、選定状態が有効である運転データを集めて出力した学習データ群を用いて制御モデルの学習を実行する。具体的には、モデル生成部150は、上記手順A1から手順A6に従って、制御モデルを生成又は更新する。
モデル生成部150がステップS107の処理を完了した場合、表示部170は、更新報知情報を表示する(ステップS108)。例えば、表示部170は、図5に示すように、制御モデルが更新された旨を報知する画面400を表示する。ユーザ操作がないと判別された場合(ステップS102:NO)、又は、表示部170がステップS108の処理を完了した場合、空調制御部160は、ユーザ操作からの経過時間が閾値以上であるか否かを判別する(ステップS109)。例えば、空調制御部160は、ユーザ操作からの経過時間が30分以上であるか否かを判別する。
空調制御部160は、ユーザ操作からの経過時間が閾値以上でないと判別すると(ステップS109:NO)、ステップS101に処理を戻す。つまり、空調制御部160は、この場合、ユーザの意思を尊重して、ユーザ操作に基づく制御状態を維持する。一方、空調制御部160は、ユーザ操作からの経過時間が閾値以上であると判別すると(ステップS109:YES)、制御モデルから制御内容を算出する(ステップS110)。空調制御部160は、例えば、以下に示す手順B1から手順B2までの手順により制御内容である制御値を決定する。
手順B1:ニューラルネットワークに、最新の運転データに含まれる制御対象以外のデータを入力する。制御対象以外のデータは、設定温度以外のデータである。手順B2:ニューラルネットワークの出力を計算し、出力値を制御値とする。この制御値が、設定温度として設定されて、制御内容が決定される。
空調制御部160は、ステップS110の処理を完了すると、算出した制御内容で空調機を制御する(ステップS111)。つまり、空調制御部160は、算出された制御値での制御を示す制御信号を、空調機300に送信する。なお、取得された最新の運転データに含まれる制御対象のデータの制御値と、算出された制御値とが同じである場合、制御信号が送信されなくてもよい。空調制御部160は、ステップS111の処理を完了すると、ステップS101に処理を戻す。
次に、図7を参照して、サーバ200が実行する学習データ選定処理を説明する。学習データ選定処理は、サーバ200の電源が投入されると実行が開始される。
まず、通信部210は、空調制御装置100から運転データを受信したか否かを判別する(ステップS201)。通信部210は、空調制御装置100から運転データを受信していないと判別すると(ステップS201:NO)、ステップS201に処理を戻す。一方、通信部210は、空調制御装置100から運転データを受信したと判別すると(ステップS201:YES)、運転データ蓄積部220に運転データを蓄積する(ステップS202)。
通信部210がステップS202の処理を完了すると、学習データ選定部230は、以下に示すステップS203からステップS208の処理により、運転データ蓄積部220に蓄積された運転データ群に基づいて、空調制御装置100が学習データ群として保持すべき運転データ群を選定する。
まず、学習データ選定部230は、学習データ群の候補となる組み合わせを特定する(ステップS203)。例えば、運転データ記憶部142に記憶された運転データ群のうち、選定状態が、有効、予備、又は、新規となっている運転データ群から抽出可能な、学習データ群の候補を全て特定する。学習データ群の候補は、運転データ記憶部142に記憶可能な運転データの個数の上限値以下の任意の個数の運転データの組み合わせである。例えば、運転データ記憶部142に記憶可能な運転データの個数の上限値が100個であり、選定状態が、有効、予備、又は、新規となっている運転データの個数が80個の場合、この80個の運転データ群から抽出可能な全ての組み合わせが、学習データ群の候補として特定される。学習データ群の候補は、1個から80個の運転データの組み合わせとなる。
学習データ選定部230は、ステップS203の処理を完了すると、特定された全ての組み合わせから組み合わせを1つ選択する(ステップS204)。学習データ選定部230は、ステップS204の処理を完了すると、制御モデルを生成する(ステップS205)。ステップS204では、学習データ選定部230は、ステップS107においてモデル生成部150が実行した手法と同様の手法により、制御モデルを生成する。
学習データ選定部230は、ステップS205の処理を完了すると、生成した制御モデルの評価値を算出する(ステップS206)。例えば、学習データ選定部230は、運転データ蓄積部220に蓄積された全ての運転データを用いて、生成した制御モデルの評価値を算出する。具体的には、以下に示す手順C1から手順C5に従って、生成された評価値を算出する。
手順C1:運転データ蓄積部220に蓄積された運転データ群から1つの運転データを選択する。手順C2:選択された運転データに含まれる制御対象以外のデータを、ニューラルネットワークに入力する。手順C3:ニューラルネットワークの出力値を算出する。手順C4:選択された運転データに含まれる制御対象のデータである制御値と、出力値との誤差を算出する。手順C5:運転データ蓄積部220に蓄積された運転データの全てが選択されるまで、手順C1から手順C4を実行し、誤差の平均値を評価値とする。この評価値が小さい程、良い制御モデルであり、高精度な制御モデルである。
学習データ選定部230は、ステップS206の処理を完了すると、全ての組み合わせを選択済みであるか否かを判別する(ステップS207)。学習データ選定部230は、全ての組み合わせを選択済みでないと判別すると(ステップS207:NO)、ステップS204に処理を戻す。一方、学習データ選定部230は、全ての組み合わせを選択済みであると判別すると(ステップS207:YES)、評価値が最小の組み合わせを特定する(ステップS208)。
学習データ選定部230は、ステップS208の処理を完了すると、特定した組み合わせに基づく選定情報を空調制御装置100に送信する(ステップS209)。例えば、学習データ選定部230は、既存の選定状態と異なる選定状態に設定される運転データについて、データIDと変更後の選定状態に対応する識別子とを示す選定情報を生成し、送信する。
例えば、学習データ群に含まれる運転データのうち、既存の選定状態が有効以外である運転データのデータIDは、有効を付与するための第1の識別子と対応付けられる。また、学習データ群に含まれない運転データのうち、既存の選定状態が有効である運転データのデータIDは、予備を付与するための第3の識別子と対応付けられる。また、学習データ群に含まれない運転データのうち、既存の選定状態が予備である運転データのデータIDは、無効を付与するための第2の識別子と対応付けられる。学習データ選定部230は、ステップS209の処理を完了すると、ステップS201に処理を戻す。
以上説明したように、本実施形態では、空調制御装置100は、計算資源が豊富なサーバ200により選定された学習データ群を用いて、制御モデルを生成する。このため、空調制御装置100に豊富な計算資源を設けずに、空調制御装置100が高精度の制御モデルを生成することが可能となる。特に、制御対象が空調機300である場合、運転データの量が多い。このため、例えば、制御対象が照明装置である場合に比べ、学習データを絞る必要性が高く、得られる効果も大きい。
また、本実施形態では、制御モデルが更新された場合、更新報知情報が表示される。このため、ユーザは、制御の変化点に気づくことができ、動作確認を速やかに実行することができる。特に、運転データの蓄積が進み、制御内容が安定しているときに、例えば、建物内の人員配置変更のように運転データの特性に影響する事象を的確に捉えることにより、制御が切り替わっていること、並びに、制御内容が適切であることを確認することができる。
また、本実施形態では、直ちに学習に用いないが将来的に学習に用いられる可能性が高い運転データが、予備データとして保持される。このため、将来的に利用できそうな運転データを有効に学習に利用することができる。一方、将来的にも学習に用いられる可能性が低い運転データが、無効データに設定される。このため、無駄な運転データの記憶が抑制されて、メモリ使用量を減らすことが可能となる。
(実施形態2)
実施形態2では、空調制御装置100とサーバ200との通信が何らかの原因により途絶した場合においても適切な空調制御を維持することが可能な空調制御システム1000について説明する。図3と図8との比較から分かるように、実施形態2に係る空調制御システム1000と実施形態2に係る空調制御システム1000とでは、主に、学習データ管理部140の処理と表示部170の処理とが異なる。ここで、蓄積状況表示手段と復旧状況表示手段とは、例えば、表示部170に対応する。
まず、運転データ記憶部142には、新規データと予備データと学習データとに加え、退避データが記憶される。この退避データは、空調制御装置100とサーバ200との通信が途絶されている間に、空調通信部110により受信され、運転データ記憶部142に記憶される運転データである。つまり、運転データ追加部141は、空調制御装置100とサーバ200との通信途絶中に取得された運転データを、退避データとして記憶する。そして、図9に示すように、退避データに設定される運転データには、選定状態として、通信途絶中に退避されたことを示す識別子が付与される。
また、図10に示すように、表示部170により表示される画面400には、枠410により指定される第1領域と枠420により指定される第2領域とに加え、枠430により指定される第3領域とが含まれる。第3領域には、例えば、通信正常報知情報、蓄積状況報知情報、復旧状況報知情報のいずれかが表示される。
通信正常報知情報は、空調制御装置100とサーバ200との通信が正常であることを報知する情報である。蓄積状況報知情報は、空調制御装置100とサーバ200との通信が途絶している間に、退避データがどの程度蓄積されているのかを報知する情報である。復旧状況報知情報は、空調制御装置100とサーバ200との通信の途絶が解消した場合に、どの程度、制御モデルの更新に関する復旧処理が進んでいるのか報知する情報である。通信正常報知情報は、例えば、枠431により指定される領域に表示された情報である。蓄積状況報知情報は、例えば、枠432により指定される領域に表示された情報である。復旧状況報知情報は、例えば、枠433により指定される領域に表示された情報である。
識別子付与部143は、サーバ通信部130とサーバ200との通信が途絶している間に空調通信部110により受信された運転データに、第4の識別子を付与する。第4の識別子は、例えば、退避データであることを示す識別子である。モデル生成部150は、サーバ通信部130とサーバ200との通信が途絶している間に空調通信部110により運転データが受信された場合、運転データ群に含まれる運転データのうち、第1の識別子が付与された運転データと第4の識別子が付与された運転データとを含む学習データ群を用いた機械学習により、制御モデルを生成する。つまり、モデル生成部150は、通信途絶中は、有効データのみならず退避データも含めて制御モデルを生成する。
表示部170は、サーバ通信部130とサーバ200との通信が途絶している間、蓄積状況を報知する情報である蓄積状況報知情報を表示する。この蓄積状況は、運転データ記憶部142に蓄積可能な第4の識別子が付与された運転データの個数の上限値と、運転データ記憶部142に蓄積された第4の識別子が付与された運転データの個数と、に基づく蓄積状況である。例えば、蓄積可能な退避データの個数の上限値に対する、蓄積された退避データの個数の割合や、蓄積された退避データの個数が上記上限値に達するまでの予測時間により、蓄積状況が報知される。
また、サーバ通信部130とサーバ200との通信が復旧した場合、第1の処理と、第2の処理と、第3の処理とを、第4の識別子が付与された運転データがなくなるまで繰り返して実行される。第1の処理は、サーバ通信部130が、運転データ群のうち第4の識別子が付与された運転データをサーバ200に送信して選定情報をサーバ200から受信する処理である。第2の処理は、識別子付与部143が、運転データ群に含まれる運転データのそれぞれに選定情報により示される識別子を付与する処理である。第3の処理は、モデル生成部150が、選定情報により示される学習データ群を用いた機械学習により制御モデルを生成する処理である。
また、表示部170は、サーバ通信部130とサーバ200との通信が復旧してから第4の識別子が付与された運転データがなくなるまでの間、復旧状況を報知する情報である復旧状況報知情報を表示する。復旧状況は、例えば、サーバ通信部130とサーバ200との通信が途絶している間に第4の識別子が付与された運転データの個数と、現時点において第4の識別子が付与されている運転データの個数と、に基づく復旧状況である。例えば、退避データとして設定された運転データのうち、退避データ以外の運転データとして設定された運転データの割合や、退避データとして設定された運転データの全てが退避データ以外の運転データとして設定されるまでの予測時間が、復旧状況として報知される。
表示データ出力部145は、表示部170が表示する情報を表示部170に供給する。例えば、表示データ出力部145は、通信正常報知情報を表示すべきと判別した場合、通信正常報知情報を表示部170に供給する。また、表示データ出力部145は、蓄積状況報知情報を表示すべきと判別した場合、蓄積状況報知情報を表示部170に供給する。また、表示データ出力部145は、復旧状況報知情報を表示すべきと判別した場合、復旧状況報知情報を表示部170に供給する。
次に、図11に示すフローチャートを参照して、空調制御装置100が実行する空調制御処理について説明する。空調制御処理は、空調制御装置100の電源が投入されると開始される。
まず、空調通信部110は、空調機300から運転データを収集する(ステップS301)。空調通信部110がステップS301の処理を完了すると、学習データ管理部140は、ユーザ操作があったか否かを判別する(ステップS302)。学習データ管理部140は、ユーザ操作があったと判別すると(ステップS302:YES)、サーバ200と通信可能であるか否か判別する(ステップS303)。学習データ管理部140は、サーバ200と通信可能でないと判別すると(ステップS303:NO)、運転データを退避データとして記憶する(ステップS304)。学習データ管理部140がステップS304の処理を完了すると、モデル生成部150は、退避データ込みで制御モデルを生成する(ステップS305)。つまり、モデル生成部150は、有効データと退避データとを含む運転データ群を学習データ群として、制御モデルを生成する。
一方、学習データ管理部140は、サーバ200と通信可能であると判別すると(ステップS303:YES)、運転データを新規データとして記憶する(ステップS306)。学習データ管理部140がステップS306の処理を完了すると、運転データ転送部120は、退避データ又は新規データとして記憶された運転データにデータIDを付与し、サーバ200に送信する(ステップS307)。なお、退避データ又は新規データである運転データが複数記憶されている場合、例えば、最も早く記憶された運転データが送信される。運転データ転送部120がステップS307の処理を完了した後、サーバ通信部130は、選定情報をサーバ200から受信する(ステップS308)。サーバ通信部130がステップS308の処理を完了すると、学習データ管理部140は、選定情報に基づいて、運転データに付与された識別子を更新する(ステップS309)。
学習データ管理部140は、ステップS309の処理を完了すると、退避データ又は新規データがあるか否かを判別する(ステップS310)。学習データ管理部140は、退避データ又は新規データがあると判別すると(ステップS310:YES)、ステップS307に処理を戻す。一方、学習データ管理部140が退避データ又は新規データがないと判別すると(ステップS310:NO)、モデル生成部150は、制御モデルを生成する(ステップS311)。
モデル生成部150がステップS311の処理を完了した場合、空調制御部160は、ユーザ操作からの経過時間が閾値以上であるか否かを判別する(ステップS312)。空調制御部160は、ユーザ操作からの経過時間が閾値以上でないと判別すると(ステップS312:NO)、ステップS301に処理を戻す。一方、空調制御部160は、ユーザ操作からの経過時間が閾値以上であると判別すると(ステップS312:YES)、制御モデルから制御内容を算出する(ステップS313)。空調制御部160は、ステップS313の処理を完了すると、算出した制御内容で空調機を制御する(ステップS314)。空調制御部160は、ステップS314の処理を完了すると、ステップS301に処理を戻す。
次に、図12に示すフローチャートを参照して、空調制御装置100が実行する表示処理について説明する。表示処理は、空調制御装置100の電源が投入されている間、空調制御処理と並行して実行される。
まず、学習データ管理部140は、制御モデルの生成直後であるか否かを判別する(ステップS401)。学習データ管理部140が制御モデルの生成直後であると判別すると(ステップS401:YES)、表示部170に更新報知情報を表示させる(ステップS402)。学習データ管理部140は、制御モデルの生成直後でないと判別した場合(ステップS401:NO)、又は、ステップS402の処理を完了した場合、サーバ200と通信可能であるか否かを判別する(ステップS403)。
学習データ管理部140は、サーバ200と通信可能でないと判別すると(ステップS403:NO)、退避データの蓄積率を算出する(ステップS404)。学習データ管理部140は、ステップS404の処理を完了すると、表示部170に蓄積状況報知情報を表示させる(ステップS405)。学習データ管理部140は、ステップS405の処理を完了した場合、ステップS401に処理を戻す。一方、学習データ管理部140は、サーバ200と通信可能であると判別すると(ステップS403:YES)、復旧中であるか否かを判別する(ステップS406)。
学習データ管理部140は、復旧中でないと判別すると(ステップS406:NO)、表示部170に通信正常報知情報を表示させる(ステップS407)。学習データ管理部140は、ステップS407の処理を完了すると、ステップS401に処理を戻す。一方、学習データ管理部140は、復旧中であると判別すると(ステップS406:YES)、退避データの復旧率を算出する(ステップS408)。学習データ管理部140は、ステップS408の処理を完了すると、表示部170に復旧状況報知情報を表示させる(ステップS409)。学習データ管理部140は、ステップS409の処理を完了すると、ステップS401に処理を戻す。
以上説明したように、本実施形態によれば、空調制御装置100とサーバ200との通信が途絶された場合にも、学習を進めることができ、適切な空調制御を継続することができる。また、本実施形態では、通信の途絶が解消した場合、蓄積されている退避データは、新規データと同様に扱われ、学習データの選定に用いられる。従って、通信の途絶が解消した後は、サーバ200により適切な学習データ群が選定され、空調制御装置100により高精度の制御モデルが生成されることが期待できる。また、本実施形態によれば、蓄積状況報知情報、復旧状況報知情報、通信正常報知情報などが表示されるため、ユーザに、各種の状況を知らせることができる。
蓄積状況報知情報を表示することにより、データを欠落することなく制御モデルを復旧することが可能な日程の目安をユーザに知らせることができる。また、復旧状況報知情報を表示することにより、正常運転に移行することが可能な日程の目安をユーザに知らせることができる。また、通信正常報知情報を表示することにより、正常に通信がされていることをユーザに知らせることができる。
(変形例)
以上、本発明の実施形態を説明したが、本発明を実施するにあたっては、種々の形態による変形及び応用が可能である。本発明において、上記実施形態において説明した構成、機能、動作のどの部分を採用するのかは任意である。また、本発明において、上述した構成、機能、動作のほか、更なる構成、機能、動作が採用されてもよい。
上記実施形態では、予備データは、学習データとして選定されなかった場合、直ちに、無効データに設定される例について説明した。本発明において、予備データの扱いは、この例に限定されない。例えば、予め定められた回数(例えば、10回)連続して、学習データとして選定されなかった場合、無効データに設定されてもよい。この場合、運転データには、例えば、選定されなかった回数が含まれることが好適である。また、上記実施形態では、運転データに予備データが含まれる例について説明した。本発明において、運転データに予備データが含まれなくてもよい。この場合、例えば、有効データと新規データとを含む運転データ群から、学習データ群が選定される。
上記実施形態では、学習データ群の候補が、運転データ記憶部142に記憶可能な運転データの個数の上限値(例えば、100個)以下の任意の個数の運転データの組み合わせである例について説明した。本発明において、例えば、学習データ群の候補が、上記上限値以下の予め定められた個数(例えば、80個)の運転データの組み合わせであってもよい。かかる構成では、学習データ群の候補の個数を抑制することができ、学習データ群の選定に要する計算機能力を抑えることができる。
上記実施形態では、サーバ200が、学習データ群の候補を用いて作成した制御モデルの評価値に基づいて、学習データ群を選択する例について説明した。サーバ200は、例えば、クラスタリングにより学習データ群を選択してもよい。この場合、例えば、運転データ蓄積部220に蓄積された運転データ群を、クラス内分散に対するクラス外分散の割合が最大になるようにクラスタリングし、各クラスタの平均値を代表値とする。そして、運転データ記憶部142に記憶された運転データ群のうち、有効、予備、又は、新規が付与された運転データ群から、これらの代表値に最も近い運転データ群を抽出し、学習データ群として選択する。かかる構成によれば、学習データ群の選定に要する計算機能力を抑えることができ、安価なサーバ200を採用することが可能となる。
本発明に係る空調制御装置100又はサーバ200の動作を規定する動作プログラムを既存のパーソナルコンピュータや情報端末装置に適用することで、当該パーソナルコンピュータ等を本発明に係る空調制御装置100又はサーバ200として機能させることも可能である。また、このようなプログラムの配布方法は任意であり、例えば、CD-ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。