(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1では、停電の検出基準となる停電検出レベルおよび継続時間は、一度設定されると、停電を検出しない限り、再設定できず、一定値を取り続けることになる。しかし、実際の電源電圧は、日時や、曜日、季節等により、長周期で変動する。そのため、特許文献1の技術では、停電の誤検出が生じるおそれがあった。
【0006】
例えば、通常、電源電圧は、朝は高く、昼間は、低くなる傾向がある。ここで、朝に、停電が発生したとする。特許文献1の制御装置において、この朝の停電のタイミングで学習を行うと、電源電圧が高めであっても停電を検出できるように関数が更新され、停電検出レベルが高め設定される。かかる停電検出レベルを、電源電圧が低い昼間にも適用すると、電源電圧のわずかな変動(低減)を停電と誤検出するおそれがある。この場合、工作機械は、退避動作を実行したうえで、その稼働を停止する。その結果、実際には停電していないにもかかわらず、工作機械を停止することになり、生産性の低下を招く。
【0007】
一方、昼間に、停電が発生した場合を考える。この場合、特許文献1の制御装置は、昼間の停電のタイミングで学習を行い、電源電圧が低めの場合に停電を検出できるように関数を更新するため、停電検出レベルが低め設定される。かかる停電検出レベルを、電源電圧が高い朝にも適用すると、停電に起因して電源電圧が低下しても、停電として検出できない検出スルーが生じるおそれがある。検出スルーが生じると、十分な退避動作ができないため、工具やワークが衝突し、破損する恐れがあった。
【0008】
さらに、特許文献1の技術では、停電が発生しない限り、停電検出レベルおよび継続時間が更新されないため、全体的に、停電の検出精度が低いといえる。
【0009】
そこで、本明細書では、停電をより正確に検出できる制御装置を開示する。
【課題を解決するための手段】
【0010】
本明細書で開示する制御装置は、電源からの電力で駆動する産業機械を制御する制御装置であって、停電の発生を検出した際に、前記産業機械に退避動作を実行させる制御装置であって、少なくとも時間に関連するパラメータを変数として持つ電源電圧予測関数に基づいて、前記電源の予測電圧を予測する電源電圧予測部と、少なくとも、前記予測電圧、前記時間に関連するパラメータ、前回以前の停電発生状況を示すパラメータと、を変数として持つ閾値電圧決定関数に基づいて、前記停電発生の判断基準となる閾値電圧を決定する閾値電圧決定部と、前記電源の実測電圧が、前記閾値電圧決定部で決定された前記閾値電圧以下、または未満の場合に、前記停電が発生したと判断する停電検出部と、前記停電検出部で前記停電が発生したと判断された場合に、前記産業機械に退避動作を指示する退避動作指令部と、を備える、ことを特徴とする。
【0011】
前記電源電圧予測部は、前記停電検出部で前記停電が発生したと判断されたタイミング、または、規定の予測期間が経過したタイミングで、前記電源電圧予測関数を学習により更新してもよい。この場合、前記電源電圧予測部による前記学習では、少なくとも、前記予測電圧と前記実測電圧との差分値である予測誤差に基づいて報酬を決定するとともに、前記報酬が多くなるように前記
電源電圧予測関数を更新してもよい。
【0012】
また、前記閾値電圧決定部は、前記停電検出部で前記停電が発生したと判断されたタイミングで、前記閾値電圧決定関数を学習により更新してもよい。この場合、前記
閾値電圧決定部による前記学習では、少なくとも、前記産業機械に指示した退避量指令量と前記産業機械が実際に移動した退避量実測値との差分値である退避誤差に基づいて報酬を決定するとともに、前記報酬が多くなるように前記閾値電圧決定関数を更新してもよい。
【0013】
また、前記時間に関するパラメータは、時刻、日付、曜日、季節の少なくとも一つを含んでもよい。また、前記停電発生状況を示すパラメータは、少なくとも、停電発生直前における予測電圧と、実測電圧と、を含んでもよい。
【発明の効果】
【0014】
本明細書に開示の制御装置によれば、電源電圧が、時間により長周期で変動する場合であっても、変動に追従して、閾値電圧を適切に設定することができる。結果として、退避動作の実行回数を最小限に抑えつつ、十分な退避量を確保することが可能となる。
【発明を実施するための形態】
【0016】
以下、産業機械の制御装置について説明する。
図1は、制御装置200の機能構成を示すブロック図である。この制御装置200は、産業機械に設けられた1以上の可動部の移動を制御する。産業機械としては、工場や事業所等において外部電源から給電を受けて稼働する機械であればよく、例えば、工作機械や産業用ロボットなどでもよい。工作機械としては、金属、木材、石材、樹脂等に切断、穿孔、研削、研磨、圧延、鍛造、折り曲げ等の加工を施すための機械であればよく、例えば、旋盤やマシニングセンタ等でもよい。以下では、工作機械の制御装置を例に挙げて説明する。
【0017】
工作機械(産業機械)は、1以上の可動部を有しており、各可動部は、1以上の駆動モータ204により駆動される。なお、
図1では、一つの駆動モータ204のみを例示しているが、駆動モータ204は、複数でもよい。
【0018】
駆動モータ204は、交流電源201(例えば商用電源)からの電力で駆動される。具体的には、交流電源201で供給された交流電力は、コンバータ202により直流電力に一旦変換される。その後、直流電力は、さらに、インバータ203で交流電力に変換され、駆動モータ204に供給される。また、交流電源201の電圧は、図示しない電圧センサで検出され、実測電圧Vrとして、後述する制御装置200に入力される。インバータ203は、複数のスイッチング素子を有したインバータ回路と、当該インバータ回路を駆動するドライバと、を有している。ドライバには、駆動モータ204に関するパラメータを記憶するメモリが組み込まれている。
【0019】
駆動モータ204は、可動部を動かすためのモータである。駆動モータ204の回転位置は、位置センサ214により、モータ検出位置Pとして検出される。検出されたモータ検出位置Pは、インバータ203のドライバに設けられたメモリに記憶される。
【0020】
制御装置200は、工作機械の駆動を制御するものである。この制御装置200は、各種演算を行うCPUや、種々の制御パラメータや制御プログラム、関数等を記憶する記憶装置、データの入出力を可能にする通信インターフェース等を備えている。
図1には、この制御装置200の機能構成を示す機能ブロック図を示している。なお、
図1では、主に、停電の発生検知に関する機能のみを図示しているが、制御装置200は、駆動モータ204の位置制御機能等も有している。こうした駆動モータ204の位置制御機能は、公知の従来技術を用いて実現できるため、ここでの詳説は、省略する。
【0021】
図1に示す通り、制御装置200は、交流電源201の停電を検出する停電検出部210と、停電が検出された際に退避動作の実行を指示する退避動作指令部211と、停電検出に必要なパラメータを学習により最適化していく機械学習装置と、を有している。
【0022】
停電検出部210は、工作機械の稼働中、交流電源201の実測電圧Vrと、機械学習装置から出力された閾値電圧Vthとの比較を、規定の制御周期Tcごとに行い、停電が発生するか否かを判断する。比較の結果、実測電圧Vrが、閾値電圧Vth以上の場合には、停電検出部210は、停電は発生しないと判断する。一方、実測電圧Vrが、閾値電圧Vth未満の場合、停電が発生すると判断し、退避動作指令部211および機械学習装置に、停電発生を示す信号、すなわち、停電検出信号を出力する。
【0023】
退避動作指令部211は、停電検出信号を受信した場合、退避指令をインバータ203に出力する。退避指令を受けたインバータ203は、駆動モータ204が予め規定された退避量指令値L*だけ、退避移動するように、駆動モータ204を駆動する。このとき、インバータ203は、退避指令を受けた時点でのモータ検出位置P1と、退避移動後に駆動モータ204が停止した時点でのモータ検出位置P2とを記憶する。
【0024】
機械学習装置は、停電発生の判断基準となる閾値電圧Vthを学習しながら決定するもので、交流電源電圧記録部205と、交流電源電圧予測部206と、閾値電圧決定部209と、予測指令部207と、時計208と、を有している。予測指令部207は、工作機械が起動されたタイミング、または、後述する電源電圧予測関数feが更新されたタイミングで、交流電源電圧予測部206に予測指令を出力する。
【0025】
交流電源電圧予測部206は、交流電源電圧の予測値、すなわち、予測電圧Veを、電源電圧予測関数feに基づいて、予測する。交流電源電圧予測部206は、予測指令を受け取ると、現在から規定の予測期間Te(Te<<Tc)だけ経過した時刻Tまでの予測電圧Veの群を算出する。すなわち、制御周期Tcごとの予測電圧Veの時系列Ve(t)を算出する。
【0026】
電源電圧予測関数feは、少なくとも時間に関連するパラメータを変数として電源電圧を予測する関数である。時間に関するパラメータは、時刻t、日付d、曜日w、季節sの少なくとも一つを含む。このように電源電圧予測関数feが、時間に関するパラメータを変数として持つのは、電源電圧が、日時や、曜日、季節等により、長周期で変動するからである。例えば、電源電圧は、一般的には、深夜よりも朝、朝よりも昼間〜夜間のほうが低くなる傾向がある。また、電源電圧は、平日よりも休日のほうが高くなる傾向がある。また、電源電圧は、空調の需要が高い夏および冬よりも、春および秋のほうが高くなる傾向がある。電源電圧予測関数feは、こうした時間に関するパラメータを変数として持ち、当該変数(時間)に対する電源電圧の変化を模した関数となっている。電源電圧予測関数feに基づいて算出された予測電圧Veは、当該算出に用いた変数(時刻t、日付d、曜日w、季節s等)の値とともに、交流電源電圧記録部205および閾値電圧決定部209に出力される。
【0027】
また、交流電源電圧予測部206は、時刻Tに達したタイミング、または、停電発生が検知されたタイミングで、電源電圧予測関数feを学習して、更新する。電源電圧予測関数feの学習は、電源電圧の予測誤差Err_Vが小さくなるように行う。予測誤差Err_Vは、例えば、各制御周期Tc毎に得られる予測電圧Veと実測電圧Vrとの偏差ΔVから求まる値で、例えば、各制御周期Tc毎に得られる偏差ΔVの二乗平均値等である。
【0028】
学習アルゴリズムとしては、特に限定されないが、例えば、強化学習アルゴリズムを用いる場合について説明する。強化学習は、ある環境内におけるエージェント(行動主体)が、現在の状態を観測し、取るべき行動を決定する、というものである。エージェントは行動を選択することで環境から報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Q学習(Q−learning)やTD学習(TD−learning)が知られている。例えば、Q学習の場合、行動価値関数Q(s,a)の一般的な更新式(行動価値テーブル)は式1で表される。
【数1】
【0029】
式1において、s
tは、時刻tにおける環境を表し、a
tは、時刻tにおける行動を表す。行動a
tにより、環境はs
t+1に変わる。r
t+1は、その環境の変化によってもらえる報酬(reward)を表し、γは、割引率を表し、αは、学習係数を表す。電源電圧の予測に、Q学習を適用した場合、予測電圧Veが行動a
tとなり、電源電圧予測関数feが、環境s
tとなる。また、報酬rは、電源電圧の予測誤差Err_Vが小さいほど高くなる。
【0030】
交流電源電圧記録部205は、電圧センサで検出された実測電圧Vrと、交流電源電圧予測部206から出力された予測電圧Veと、予測電圧Veの算出時に用いられた変数の値(例えば、時間に関するパラメータの値)と、を互いに関連づけて記憶する。なお、電圧センサの検出値に替えて、インターネットを通じて電力会社等から提供される電圧値を、実測電圧Vrとして記憶してもよい。
【0031】
次に、閾値電圧決定部209について説明する。閾値電圧決定部209は、停電発生の判断基準となる閾値電圧Vthを、閾値電圧決定関数fvに基づいて、決定する。具体的には、閾値電圧決定部209は、交流電源電圧予測部206から予測電圧Veの時系列Ve(t)を受け取ると、現在から規定の予測期間Te(Te<<Tc)経過した時刻Tまでの閾値電圧Vthの群を算出する。すなわち、制御周期Tcごとの閾値電圧Vthの時系列Vth(t)を算出する。
【0032】
閾値電圧決定関数fvは、少なくとも、交流電源電圧予測部206で算出された予測電圧Veと、時間に関連するパラメータと、前回以前の停電発生状況を示すパラメータと、を変数として持ち、閾値電圧Vthを予測する関数である。時間に関連するパラメータは、上述した通り、時刻t、日付d、曜日w、季節sの少なくとも一つを含む。停電発生状況を示すパラメータは、少なくとも、停電発生直前(例えば10秒前等)における予測電圧Veおよび実測電圧Vrと、を含む。閾値電圧決定関数fvが、予測電圧Veを変数として持つことで、時間に応じて長周期で変動する電源電圧(予測電圧Ve)に応じた閾値電圧Vthを決定することができる。例えば、予測電圧Veが高いタイミングでは、閾値電圧Vthも高めに算出し、予測電圧Veが低いタイミングでは、閾値電圧も低めに算出することができる。また、時間に関連するパラメータ、および、前回以前の停電発生状況を変数として持つことで、予測電圧Veの信頼度を加味した閾値電圧Vthを算出できる。例えば、電源電圧の変動が大きい時期は、電源電圧の予測精度が低下し、予測電圧Veの信頼性が低いと考えることができる。また、前回の停電発生直前における予測電圧Veと実測電圧Vrとの乖離が大きい場合にも、予測電圧Veの信頼性が低いと考えることができる。したがって、そのような場合には、停電の検知スルーを防止するために、閾値電圧Vthを高めに設定してもよい。閾値電圧決定関数fvに基づいて算出された閾値電圧Vthは、停電検出部210に出力される。
【0033】
また、閾値電圧決定部209は、停電発生が検知されたタイミングで、閾値電圧決定関数fvを学習して、更新する。閾値電圧決定関数fvの学習は、退避誤差Err_Lが小さくなるように行う。退避誤差Err_Lは、規定の退避量指令値L*と、実際の退避量である退避量実測値Lrとの差分値である。そして、退避量実測値Lrは、インバータ203に記憶されている退避動作開始時のモータ検出位置P1と、退避動作終了時のモータ検出位置P2との差分値である。
【0034】
学習アルゴリズムは、電源電圧予測関数feの学習と同様に、特に限定されないが、例えば、Q学習やTD学習等の強化学習を用いることができる。閾値電圧の決定に、Q学習を適用した場合、閾値電圧Vthが行動a
tとなり、閾値電圧決定関数fvが、環境s
tとなる。また、報酬rは、退避誤差Err_Lが小さいほど高くなる。なお、駆動モータ204が複数存在する場合、退避誤差Err_Lも複数得られることになる。この場合には、複数の退避誤差Err_Lの統計値(二乗平均値や最大値、積算値等)が、小さい程、報酬rが高くなるようにすればよい。
【0035】
次に、以上のような制御装置200による停電の発生の検出処理について説明する。
図2は、停電発生の検出処理の流れを示すフローチャートである。なお、フローチャートには記載していないが、交流電源電圧記録部205は、常時、交流電源201の実測電圧Vrと、交流電源電圧予測部206から算出された予測電圧Veの時系列Ve(t)と、その算出に用いられたパラメータの値(時刻t、日付d、曜日w、季節s等)を、記録し続けている。
【0036】
工作機械が起動されれば、予測指令部207は、交流電源電圧予測部206に対して予測指令を出力する(S301)。予測指令を受けた交流電源電圧予測部206は、現時刻から予測期間Te経過後の時刻Tまでの、予測電圧の時系列Ve(t)を算出する(S302)。この算出のために、交流電源電圧予測部206は、時計208を参照して時間に関するパラメータを取得し、当該パラメータを電源電圧予測関数feに適用する。予測電圧の時系列Ve(t)が算出できれば、交流電源電圧予測部206は、算出された時系列Ve(t)を、算出に利用した変数の値とともに、交流電源電圧記録部205および閾値電圧決定部209に出力する。
【0037】
閾値電圧決定部209は、現時刻から予測期間Te経過後の時刻Tまでの、閾値電圧の時系列Vth(t)を算出する(S303)。具体的には、閾値電圧決定部209は、交流電源電圧記録部205を参照して、前回以前の停電発生状況を示すパラメータとして、前回以前の停電直前の予測電圧Veと実測電圧Vrとを取得する。そして、閾値電圧決定部209は、この前回以前の停電発生状況を示すパラメータと、交流電源電圧予測部206から入力された予測電圧Veと、算出に利用した変数の値(時間に関するパラメータの値)と、を電圧決定関数fvに適用し、閾値電圧の時系列Vth(t)を算出する。算出された時系列Vth(t)は、停電検出部210に送られる。
【0038】
停電検出部210は、停電が発生するか否かを監視する(S304)。具体的には、停電検出部210は、現在の閾値電圧Vthと実測電圧Vrと、を比較し、実測電圧Vrが、閾値電圧Vth未満の場合は、停電が発生すると判断する。この場合、ステップS307に進む。一方、実測電圧Vrが、閾値電圧Vth以上の場合、停電検出部210は、停電は、発生しないと判断する。この場合、時刻Tに達するまで、停電の発生の監視を続ける(S306)。
【0039】
停電が発生すると判断された場合(S304でYes)、停電検出部210は、停電検出信号を、退避動作指令部211に出力する。退避動作指令部211は、停電検出信号を受け取ると、インバータ203に対して、退避量指令値L*だけ、退避移動する退避動作の実行を指令する。退避動作指令を受け取ったインバータ203は、退避量指令値L*だけ、退避移動するように、駆動モータ204を駆動する(S307)。また、インバータ203は、退避動作を開始した時点での駆動モータ204の検出位置P1と、退避動作を終了した時点での駆動モータ204の検出位置P2と、を取得し、記憶する。
【0040】
退避動作が終了すれば、続いて、閾値電圧決定部209は、閾値電圧決定関数fvを学習により更新する(S308)。具体的には、閾値電圧決定部209は、インバータ203に記憶されている検出位置P1と検出位置P2とから、退避量実測値L=P1−P2を算出し、さらに、退避量実測値Lと退避量指令値L*との差分値である退避誤差Err_L=|L−L*|を算出する。そして、閾値電圧決定部209は、停電発生時の閾値電圧Vthを行動a
t、閾値電圧Vthの算出に用いた電圧決定関数fvを環境s
tとして、退避誤差Err_Lが小さくなるように(報酬が大きくなるように)、電圧決定関数fvを更新する。
【0041】
電圧決定関数fvが更新(すなわち停電が発生)されたタイミング、または、時刻Tになったタイミングで、交流電源電圧予測部206は、予測関数feを学習により更新する(S309)。具体的には、交流電源電圧予測部206は、交流電源電圧記録部205を参照し、過去の予測電圧Veと、実測電圧Vrとの差分である予測誤差Err_Vを取得する。交流電源電圧予測部206は、予測電圧Veを行動a
t、閾値電圧Vthの算出に用いた電源電圧予測関数feを環境s
tとして、予測誤差Err_Vが小さくなるように(報酬が大きくなるように)、電源電圧予測関数feを更新する。電源電圧予測関数feが更新されれば、ステップS301に戻り、同様の処理を繰り返す。
【0042】
以上の説明から明らかな通り、本明細書で開示する制御装置200では、長周期で変動する電源電圧を予測電圧Veとして予測し、予測電圧Veを参照して、閾値電圧Vthを算出している。この場合、閾値電圧Vthは、停電が発生しなくても、電源電圧に追従するように変動するため、停電の発生をより正確に検出することができる。また、本明細書で開示する制御装置200では、適宜、電源電圧予測関数feおよび電圧決定関数fvを学習により更新している。そのため、予測電圧Veおよび閾値電圧Vthをより適切に決定できる。特に、電源電圧予測関数feは、停電が発生しなくても、所定の予測期間Teがタイムアウトすれば更新する。そのため、停電が長期間、発生しない場合でも、予測電圧Veを正確に予測でき、ひいては、停電の発生をより正確に検出することができる。
【0043】
なお、これまで説明した構成は、一例であり、少なくとも、時間に関するパラメータを変数として持つ電源電圧予測関数feに基づいて、予測電圧Veを算出し、この予測電圧Veに応じて閾値電圧Vthを決定するのであれば、他の構成は、適宜、変更されてよい。例えば、上述の説明では、電源電圧予測関数feは、時間に関するパラメータに加えて、さらに、他のパラメータを変数として持っていてもよい。他のパラメータとしては、例えば、温度に関するパラメータ等が考えられる。また、閾値電圧決定関数fvも、予測電圧Veと、時間に関連するパラメータと、前回以前の停電発生状況を示すパラメータと、に加え、他のパラメータを変数として持っていてもよい。他のパラメータとしては、例えば、産業機械の特性に関連するパラメータ(例えば退避動作実行に必要な時間等)等が考えられる。また、これまでの説明では、予測期間Te分の予測電圧Veおよび閾値電圧Vthを、一括で算出しているが、これらは、随時、算出するのでもよい。