(57)【要約】 【課題】制御指令値と、制御量との偏差を抑制可能な制御装置、制御方法、及びモータ制御システムを提供する。【解決手段】本実施形態によれば、第１操作量と、第２操作量とに基づく操作量に応じて実動する制御対象の制御装置であって、第１制御部と、第２制御部と、出力部と、を備える。第１制御部は、制御指令値と、制御指令値に対して制御対象が実動することにより生じた制御量と、に基づく第１操作量を出力する。第２制御部は、制御指令値と、制御量と、を用いた強化学習により、第２操作量を学習した第２制御部であって、制御指令値、及び制御量を用いて第２操作量を出力する。出力部は、第１操作量と、第２操作量とに基づく操作量を出力する。【選択図】図１
2020187489.tif 000002
【特許請求の範囲】
【請求項１】
第１操作量と、第２操作量とに基づく操作量に応じて実動する制御対象の制御装置であって、
制御指令値と、前記制御指令値に対して前記制御対象が実動することにより生じた制御量と、に基づく前記第１操作量を出力する第１制御部と、
前記制御指令値と、前記制御量と、を用いた強化学習により、前記第２操作量を学習した第２制御部であって、前記制御指令値、及び前記制御量を用いて前記第２操作量を出力する第２制御部と、
前記第１操作量と、前記第２操作量とに基づく前記操作量を出力する出力部と、
を備える制御装置。
【請求項２】
前記第２制御部は、前記制御指令値と、前記制御指令値に対する前記制御量との偏差が小さくなるに従い大きくなる報酬値を算出し、前記報酬値が大きくなるように前記第２操作量を学習する、請求項１に記載の制御装置。
【請求項３】
前記第２制御部は、前記制御量の時間変化量に更に基づき前記報酬値を算出する、請求項２に記載の制御装置。
【請求項４】
前記第１制御部は、前記制御指令値と、前記制御指令値に対する前記制御量と、の偏差に基づき、前記第１操作量を出力し、
前記出力部は、前記第１操作量と前記第２操作量とを加算した前記操作量を出力する、請求項１乃至３のいずれか一項に記載の制御装置。
【請求項５】
前記第２操作量の変動成分を計算する指令値変動成分計算部を更に備え、
前記第１制御部は、前記制御指令値と、前記制御指令値に対する前記制御量の平均値と、の偏差に基づき、前記第１操作量を出力し、
前記出力部は、前記第１操作量と前記第２操作量の前記変動成分とを加算した前記操作量を出力する、請求項１乃至３のいずれか一項に記載の制御装置。
【請求項６】
前記制御対象はモータであり、
前記前記第１操作量を前記操作量として出力する第１モード、前記第２操作量を前記操作量として出力する第２モード、及び、前記第１操作量と前記第２操作量とを加算した前記操作量を出力する第３モードの内の少なくとも前記第１モード及び第３モードのいずれかを選択する、選択部をさらに備える、請求項１乃至５のいずれか一項に記載の制御装置。
【請求項７】
前記制御量は前記モータの回転速度であり、
前記選択部は、前記回転速度が上昇もしくは下降するとき、前記第１モードを選択する、請求項６に記載の制御装置。
【請求項８】
前記制御量は前記モータの回転速度であり、
前記選択部は、前記モータが定速運転をする場合に、前記第３モードを選択する、請求項６に記載の制御装置。
【請求項９】
前記選択部は、前記強化学習が行われる場合に、前記第３モードを選択する、請求項６に記載の制御装置。
【請求項１０】
第１操作量と、第２操作量とに基づく操作量に応じて実動する制御対象の制御の制御方法であって、
制御指令値と、前記制御指令値に対して前記制御対象が実動することにより生じた制御量と、に基づく前記第１操作量を出力する第１制御工程と、
前記制御指令値と、前記制御量と、を用いた強化学習により、前記第２操作量を学習した第２制御部の第２制御工程であって、前記制御指令値、及び前記制御指令値に対する前記制御量を用いて前記第２操作量を出力する第２制御工程と、
前記第１操作量と前記第２操作量とを加算した前記操作量を出力する出力工程と、
を備える制御方法。
【請求項１１】
モータと、
第１操作量と、前記第１操作量を補う第２操作量とを加算した操作量に応じて実動する前記モータの回転速度を制御する制御装置と、を備える、モータ制御システムであって、
前記制御装置は、
制御指令値と、前記制御指令値に対して前記モータが実動することにより生じた制御量と、に基づく前記第１操作量を出力する第１制御部と、
前記制御指令値と、前記制御量と、を用いた強化学習により、前記第２操作量を学習した第２制御部であって、前記制御指令値、及び前記制御量を用いて前記第２操作量を出力する第２制御部と、
前記第１操作量と前記第２操作量とを加算した前記操作量を出力する出力部と、
を有する、モータ制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御装置、制御方法、及びモータ制御システムに関する。
【背景技術】
【０００２】
モータの定負荷状態における回転速度などの基本的な制御ついては一般的な制御方法が確立されている。ところが、負荷変動による脈動を低減する回転速度制御では制御モデルを構築し、制御モデルのパラメータを様々な動作シーケンスを繰り返し実行して、調整する必要がある。このため、モータ種別、使用条件ごとにモータ制御モデルの設計およびパラメータ調整を行う必要がある。さらに、回転速度の脈動となり得る主要因のみを考慮したモータ制御モデルを構築するのが一般的であり、更なる制御精度の向上が望まれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１８／１５１２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
発明が解決しようとする課題は、制御指令値と、制御量との間の非線形に変動する偏差を抑制可能な制御装置、制御方法、及びモータ制御システムを提供することである。
【課題を解決するための手段】
【０００５】
本実施形態によれば、第１操作量と、第２操作量とに基づく操作量に応じて実動する制御対象の制御装置であって、第１制御部と、第２制御部と、出力部と、を備える。第１制御部は、制御指令値と、制御指令値に対して制御対象が実動することにより生じた制御量と、に基づく第１操作量を出力する。第２制御部は、制御指令値と、制御量と、を用いた強化学習により、第２操作量を学習した第２制御部であって、制御指令値、及び制御量を用いて第２操作量を出力する。出力部は、第１操作量と、第２操作量とに基づく操作量を出力する。
【図面の簡単な説明】
【０００６】
【図１】モータ制御システムの構成を示すブロック図。
【図２】制御部の詳細な構成を示したブロック図。
【図３】第２制御部の構成を示したブロック図。
【図４Ａ】第２制御部の処理例を示すフローチャート。
【図４Ｂ】制御装置の処理例を示すフローチャート。
【図５】第２実施形態に係る制御部の詳細な構成を示すブロック図。
【図６】回転速度平均値計算部の詳細な構成を示す図。
【図７】変更選択スイッチが変更する出力値を示す図。
【図８】指令値変動成分計算部の詳細な構成を示す図。
【図９】選択スイッチが変更する出力値を示す図。
【発明を実施するための形態】
【０００７】
以下、本発明の実施形態に係る制御装置、制御方法、及びモータ制御システムについて、図面を参照しながら詳細に説明する。なお、以下に示す実施形態は、本発明の実施形態の一例であって、本発明はこれらの実施形態に限定して解釈されるものではない。また、本実施形態で参照する図面において、同一部分又は同様な機能を有する部分には同一の符号又は類似の符号を付し、その繰り返しの説明は省略する場合がある。また、図面の寸法比率は説明の都合上実際の比率とは異なる場合や、構成の一部が図面から省略される場合がある。
【０００８】
（第１実施形態）
図１は、本発明によるモータ制御システム１の構成を示すブロック図である。図１に示すように、本実施形態に係るモータ制御システム１は、学習機能を有するシステムであり、制御装置１０と、モータ２０とを備えて構成される。図１には更に、モータ２０に機械的に接続される負荷Ｌが図示されている。
【０００９】
制御装置１０は、例えばモータ２０の回転速度を制御する。この制御装置１０は、制御部３０と、電流制御部４０と、駆動回路部５０と、選択部６０とを、有する。
【００１０】
モータ２０は、例えば永久磁石同期モータである。本実施形態に係る負荷Ｌは、例えばコンプレッサである。このため、モータ２０の回転位相に応じて負荷Ｌの大きさが変動する場合がある。これにより、モータ２０の出力を一定にすると、回転速度に脈動が生じてしまう。
【００１１】
制御部３０は、学習機能を有し、モータ２０の回転速度を制御する。制御部３０は、プロセッサを含んで構成されており、必要なプログラムを記憶部３１４（図３）から読み出して実行することで、モータ制御システム１全体の処理を制御する。すなわち、制御部３０が、記憶部３１４に記憶されるプログラムを実行することにより、電流制御部４０、駆動回路部５０、および選択部６０の各処理が実行される。ここで、プロセッサという文言は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、或いは、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：  ＡＳＩＣ）等の回路を意味する。また、本実施形態に係る電流制御部４０、駆動回路部５０、および選択部６０のそれぞれは例えば回路により構成される。
【００１２】
この制御部３０は、回転速度の制御指令値ωｒｅｆと、回転速度の測定値ωｆｂｋに基づき、電流指令値ｉｄｒｅｆと、電流指令値ｉｑｒｅｆとを生成する。ここで、回転速度の制御指令値ωｒｅｆは、モータ２０の回転速度をωｒｅｆに制御する制御指令値である。また、回転速度の測定値ωｆｂｋは、回転速度の制御指令値ωｒｅｆに対して実動しているモータ２０の回転速度の実測値である。このように、回転速度の制御指令値ωｒｅｆに対する回転速度の測定値ωｆｂｋが制御部３０にフィードバックされる。
【００１３】
なお、本実施形態では、制御の対象となる量を制御量と呼ぶこととする。例えば制御対象であるモータ２０の回転速度ωｆｂｋが制御量である。また、制御量の目標値を制御指令値と呼ぶこととする。例えばモータ２０の回転速度の目標値ωｒｅｆが制御指令値である。さらにまた、制御量に影響を与える手段を駆動する量を操作量と呼ぶこととする。例えば、電流制御部４０がモータ２０の制御量に影響を与える手段であり、電流制御部４０の駆動電圧Ｖｄ、Ｖｑを指示する電流指令値ｉｄｒｅｆ、電流指令値ｉｑｒｅｆが操作量に対応する。すなわち、本実施形態に係る回転速度の測定値ωｆｂｋが制御量に対応し、電流指令値ｉｄｒｅｆ、電流指令値ｉｑｒｅｆが操作量に対応する。また、制御部３０の詳細は後述する。
【００１４】
学習・推論選択信号は、制御部３０において操作量を学習する学習モード、又は、学習結果に基づき、操作量を推論する推論モードを選択する信号である。学習・推論選択信号はモータ制御システム１内もしくは図示しない外部装置により生成される。
【００１５】
電流制御部４０は、制御部３０からの電流指令値ｉｄｒｅｆおよびｉｑｒｅｆに基づき、電流ＩｄｒｅｆおよびＩｑｒｅｆに対応する駆動電圧ＶｄおよびＶｑを生成する。ここで、永久磁石同期モータにおいて、回転子の永久磁石の中心軸をｄ軸、永久磁石間の軸をｑ軸とする。すなわち、電流Ｉｄｒｅｆおよび駆動電圧Ｖｄは、それぞれｄ軸の電流値および電圧値を表し、電流Ｉｑｒｅｆ、および駆動電圧Ｖｑは、それぞれｑ軸の電流値および電圧値を表す。
【００１６】
駆動回路部５０は、電流制御部４０から供給される電圧ＶｄおよびＶｑを用いて３相交流電圧Ｖｕ、Ｖｖ、Ｖｗを生成し、モータ２０に供給する。また、モータ２０には速度計が設けられており、回転速度の測定値ωｆｂｋを制御部３０に出力する。さらにまた、モータ２０には電流計が設けられており、駆動回路部５０の電流値ＩｄｆｂｋおよびＩｑｆｂｋを制御部３０に出力する。なお、電流値ＩｄｆｂｋおよびＩｑｆｂｋは、電流指令値ｉｄｒｅｆおよびｉｑｒｅｆに対応する測定値である。
【００１７】
選択部６０は、モータ制御方式選択信号により、制御部３０の動作モードを切り換える。より具体的には、選択部６０は、モータ制御方式選択信号により、比例・積分速度制御モード（第１モード）、強化学習速度制御モード（第２モード）、統合モードのいずれかに制御部３０の動作モードを切り換える。すなわち、モータ制御方式選択信号には、比例・積分速度制御モード、強化学習速度制御モード、統合モードのいずれかを示す情報が含まれている。
【００１８】
例えば、選択部６０は、モータ２０の回転速度が上昇もしくは下降するときには、比例・積分速度制御を選択する。また、選択部６０は、モータ２０が定速運転をする場合に、統合モードを選択する。さらにまた、選択部６０は、強化学習が行われる場合に、統合モードを選択する。なお、モータ制御方式選択信号は、図示しない外部装置から入力してもよい。
【００１９】
図２は制御部３０の詳細な構成を示したブロック図であり、図２に基づき制御部３０について詳細に説明する。制御部３０は、第１制御部３０２と、第２制御部３０４と、出力部３０５とを有する。
【００２０】
ここで、各制御モードについて説明する。比例・積分速度制御モードは、第１制御部３０２の出力のみが電流制御部４０に出力されるモードであり、強化学習速度制御モードは、第２制御部３０４の出力のみが電流制御部４０に出力されるモードであり、統合モードは、第１制御部３０２及び第２制御部３０４の出力が電流制御部４０に出力されるモードである。
【００２１】
第１制御部３０２は、例えば比例・積分速度（ＰＩ）制御器（Ｐｒｏｐｏｒｔｉｏｎａｌ  Ｉｎｔｅｇｒａｌ  Ｃｏｎｔｒｏｌｌｅｒ）であり、主として操作量の内の直流的成分をｄ軸の第１操作量ｉｄｒｅｆｐｉとｑ軸の第１操作ｉｑｒｅｆｐｉとして出力する。この第１制御部３０２は、制御指令値ωｒｅｆと制御量ωｆｂｋと、を用いて電流指令値である第１操作量ｉｄｒｅｆｐｉおよびｉｑｒｅｆｐｉを出力する。
【００２２】
例えば、第１制御部３０２は、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差に比例したＰ値と、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差の累積値に比例したＩ値と、の加算値に基づき、第１操作量ｉｄｒｅｆｐｉおよびｉｑｒｅｆｐｉを出力する。例えばモータ２０が比例制御モードである場合には、第１制御部３０２は、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差に比例したＰ値と、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差の累積値に比例したＩ値と、の加算値に基づき、ｉｄｒｅｆｐｉおよびｉｑｒｅｆｐｉの絶対電流値Ｉｉを出力する。ここで、モータ２０の比例制御モードとは、モータ２０のトルクを主としてｑ軸の電流Ｉｄｒｅｆにより制御するモードを意味する。
【００２３】
そして、第１制御部３０２は、モータ２０の制御モードに応じてｄ軸の第１操作量ｉｄｒｅｆｐｉとｑ軸の第１操作ｉｑｒｅｆｐｉとを演算する。例えば、比例制御モードの場合には、ｄ軸の第１操作量ｉｄｒｅｆｐｉを所定値（例えば０）とし、絶対電流値Ｉｉに基づき、ｑ軸の第１操作ｉｑｒｅｆｐｉを演算して、出力する。例えば、第１操作量ｉｄｒｅｆｐｉが０である場合、第１操作ｉｑｒｅｆｐｉは、絶対電流値Ｉｉと同等の値となる。
【００２４】
なお、本実施形態に係るモータ２０の制御は、ｑ軸の第１操作量ｉｑｒｅｆｐｉにモータ２０のトルクが比例する比例制御の例で説明するが、これに限定されない。例えば、最大トルク制御などを用いても良い。最大トルク制御の場合には、絶対電流値Ｉｉと電流位相角βの一般的な関係式に基づき、ｄ軸の第１操作量ｉｄｒｅｆｐｉとｑ軸の第１操作ｉｑｒｅｆｐｉとを演算する。
【００２５】
第１制御部３０２は、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差が線形的に変動する場合には、制御精度がより高くなる傾向にある。一方で、第１制御部３０２は、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差が非線形的に、例えばサイン波のように変動する場合には、制御精度がより低くなる傾向にある。
【００２６】
第２制御部３０４は、学習時の制御指令値ωｒｅｆと学習時の制御量ωｆｂｋとを用いた強化学習（Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  Ｌｅａｒｎｉｎｇ）により、第１操作量ｉｄｒｅｆｐｉ、およびｉｑｒｅｆｐｉを補う第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌを学習した制御部である。この第２制御部３０４は、制御指令値ωｒｅｆ、及び制御指令値ωｒｅｆに対する制御量ωｆｂｋを用いて第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌを出力する。
【００２７】
第２制御部３０４の出力信号によれば、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差が非線形的に、例えばサイン波のように変動する場合にも、モータ２０の制御精度がより高くなる傾向を示す。一方で、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差が線形的に変動する場合には、オフセット的な定常値のずれが発生する傾向を示す。このため、第２制御部３０４は、第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌを第１制御部３０２の第１操作量ｉｄｒｅｆｐｉ、ｉｑｒｅｆｐｉの補正量として、例えば政策勾配法（ｐｏｌｉｃｙ  ｇｒａｄｉｅｎｔ  ｍｅｔｈｏｄｓ）により学習する。
【００２８】
出力部３０５は、第１操作量ｉｄｒｅｆｐｉと第２操作量ｉｄｒｅｆｒｌとに基づき、操作量ｉｄｒｅｆを出力し、第１操作量ｉｑｒｅｆｐｉと第２操作量ｉｑｒｅｆｒｌに基づき、操作量ｉｑｒｅｆを出力する。より具体的には、出力部３０５は、第１操作量ｉｄｒｅｆｐｉと第２操作量ｉｄｒｅｆｒｌとを加算して、操作量ｉｄｒｅｆを出力し、第１操作量ｉｑｒｅｆｐｉと第２操作量ｉｑｒｅｆｒｌとを加算して、操作量ｉｑｒｅｆを出力する。
【００２９】
図３は、第２制御部３０４の構成を示したブロック図である。第２制御部３０４は、例えば強化学習の一例である政策勾配法により第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌを学習する。第２制御部３０４は、報酬演算部３０６と、遅延器３０８と、減算器３１０と、強化学習部３１２と、記憶部３１４と、選択スイッチ３１６とを有する。
【００３０】
報酬演算部３０６は、例えば、制御指令値ωｒｅｆ、制御量ωｆｂｋ、及び実電流Ｉｄｆｂｋ、Ｉｑｆｂｋに基づき報酬ｒを演算する。例えば報酬演算部３０６は、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差の絶対値が小さくなるに従い大きな値を取る第１項と、実電流Ｉｄｆｂｋ、Ｉｑｆｂｋの絶対値が小さくなるに従い大きな値を取る第２項の加算値である。また、報酬演算部３０６は、制御量ωｆｂｋの時間変化量に更に基づき報酬値を算出してもよい。
【００３１】
遅延器３０８は、制御量ωｆｂｋの出力タイミングを所定時間、例えば１サンプル遅延させる。すなわち、この遅延器３０８は、制御量ωｆｂｋの出力タイミングを１サンプル遅延させた１サンプル前の制御量ωｆｂｋｏを減算器３１０と強化学習部３１２とに出力する。このように、制御量ωｆｂｋｏを用いることにより、制御量ωｆｂｋの時間変動量に関する情報も強化学習部３１２の学習、推論に用いることが可能となり、制御精度がより向上する。
【００３２】
減算器３１０は、現フレームの制御量ωｆｂｋから遅延器３０８が出力する１サンプル前の制御量ωｆｂｋｏを減算し、強化学習部３１２に出力する。すなわち、減算器３１０は、制御量ωｆｂｋの時間変動量を強化学習部３１２に出力する。
【００３３】
学習・推論選択信号が推論選択信号である場合に、強化学習部３１２は、制御指令値ωｒｅｆ、制御量ωｆｂｋ、実電流Ｉｄｆｂｋ、Ｉｑｆｂｋ、及び制御量ωｆｂｋｏ中の少なくとも、制御指令値ωｒｅｆ、制御量ωｆｂｋを含む状態ｓを観測して、行動ａ（すなわち、第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌ）を決定する。以下の説明では、行動ａｔは、ステップｔの第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌを意味する。例えば、強化学習部３１２は、制御指令値ωｒｅｆ、制御量ωｆｂｋ、及び制御量ωｆｂｋｏを含む状態ｓを観測して、行動ａを決定する。
【００３４】
学習・推論選択信号が学習選択信号である場合に、強化学習部３１２は、将来にわたっての報酬ｒの合計が最大になるような行動ａを学習する。例えば、強化学習部３１２は、制御指令値ωｒｅｆ、制御量ωｆｂｋ、及び制御量ωｆｂｋｏを含む状態ｓを観測して、報酬ｒの合計が最大になるような行動ａを学習する。
【００３５】
ここで、強化学習部３１２で用いる政策勾配法による強化学習の一例について説明する。なお、本実施形態に係る第２制御部３０４は、政策勾配法を用いるが、これに限定されず、Ｑ学習などのアルゴリズムを用いても良い。
【００３６】
政策勾配法では、状態空間をＳ、行動空間をＡ、実数の集合をＲと表す。各離散時間ステップｔにおいて、強化学習部３１２は状態ｓｔ∈Ｓを観測して行動ａｔ∈Ａを実行し、状態遷移の結果、報酬ｒｔ∈Ｒを受け取る。一般に報酬と遷移先の状態は確率変数であり、その分布は状態ｓｔと行動ａｔに依存する。行動選択において確率的政策を特徴付ける確率的政策関数π（ａｔ｜ｓｔ）は、状態ｓｔにおいて行動ａｔを選択する確率を表す。すなわち、強化学習部３１２は、状態ｓｔに応じた政策的確率πに従った行動ａｔを実行する。これにより、状態ｓｔから状態ｓｔ＋１に確率的政策関数π（ａｔ｜ｓｔ）に従い遷移する。
【００３７】
報酬ｒｔは遷移先の状態ｓｔ＋１に含まれるステップｔ＋１の制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差ＷＳの絶対値、実電流Ｉｄｆｂｋ、Ｉｑｆｂｋに基づき、報酬演算部３０６により演算される。強化学習部３１２は、政策的確率πについての知識は事前に与えられておらず、強化学習の目的は強化学習部３１２のパフォーマンスを最大化する政策的確率πの学習を行うことである。すなわち、強化学習部３１２は、学習・推論選択信号が学習選択信号である場合においては、（１）式に示す割引報酬合計による評価値を最大化する確率的政策関数πの学習を行う。  
【数１】
2020187489.tif 000003
ここで、割引率０＜γ≦１（本実施形態では、例えば０．９〜０．９９に設定する）は未来の報酬の重要度を示す。また、Ｅ｛・｝は期待値演算を表す。
【００３８】
強化信号として計算されるＴＤ＿ｅｒｒｏｒは状態遷移による評価値Ｖπ（ｓ）の変化を示す。強化学習部３１２の学習において、ＴＤ＿ｅｒｒｏｒを行動評価として確率的政策関数π（ａｔ｜ｓｔ）を改善する。すなわち、強化学習部３１２は、ＴＤ＿ｅｒｒｏｒが正のとき、よい状態に遷移したと考えられるので状態ｓｔにおける行動ａｔの選択確率を増やす。逆に、強化学習部３１２は、ＴＤ＿ｅｒｒｏｒが負のとき、状態ｓｔにおける行動ａｔの選択確率を減らす。
【００３９】
行動選択確率を特徴付ける確率的政策関数π（ａｔ｜ｓｔ）は、政策パラメータベクトルθを用いて表される。すなわち、確率的政策関数π（ａｔ｜ｓｔ）は、政策パラメータベクトルθを含んで表現される。
【００４０】
強化学習部３１２は、政策パラメータベクトルθを調節することで行動選択確率を変化させる。例えば強化学習部３１２は、（２）式で示すように、政策パラメータθを更新する。ただし、απは、学習係数である。
【数２】
2020187489.tif 000004
【００４１】
これにより、強化学習部３１２は、ステップｔの状態情報ｓに対して、ステップｔ＋１のより適した第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌを選択することが可能となる。このように、強化学習部３１２により学習された確率的政策関数π（ａｔ｜ｓｔ）に基づいて、制御量ωｒｅｆと制御量ωｆｂｋとの偏差がより最小に近づく第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌを選択することが可能となる。
【００４２】
記憶部３１４は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ等の半導体メモリ素子、ハードディスク等により実現される。この記憶部３１２は、制御部３０のプログラム、強化学習部３１４により学習された確率的政策関数π（ａｔ｜ｓｔ）などの情報を記憶する。
【００４３】
選択スイッチ３１６は、モータ制御方式選択信号により、出力値を変更する。すなわち、選択スイッチ３１６は、比例・積分速度制御モードが選択された場合には出力を０にする。一方で、選択スイッチ３１６は、強化学習速度制御モード、および統合モードのいずれかが選択された場合には、第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌを出力する。
【００４４】
図４Ａは、第２制御部３０４の処理例を示すフローチャートである。ここでは、説明を簡単にするため、確率的政策πとして（３）式で表される正規分布を用いた例を説明する。また、状態変数ｓを制御指令値ωｒｅｆと、制御量ωｆｂｋとの偏差ＷＳとする。さらにまた、モータ２０の制御を第２操作量ｉｑｒｅｆｒｌによる比例制御モードとする。すなわち、行動ａを第２操作量ｉｑｒｅｆｒｌの選択として説明する。
【数３】
2020187489.tif 000005
ただしμは中心値、σは標準偏差を表す。この正規分布を確率的政策πとして用いる。また、中心値μ、標準偏差σを政策パラメータベクトルとし、（２）式の更新式を（３）式に適用すると、（４）、（５）式を得る。
【数４】
2020187489.tif 000006
【数５】
2020187489.tif 000007
【００４５】
まず、第２制御部３０４は、学習・推論選択信号の内の学習選択信号が入力されているか否かを判定する（ステップＳ１００）。学習選択信号が入力されている場合（ステップＳ１００のＹＥＳ）、強化学習部３１２は、現タイミングにおける制御指令値ωｒｅｆ（ｔ）と、制御指令値ωｒｅｆ（ｔ）に対する制御量ωｆｂｋ（ｔ）、電流Ｉｄｆｂｋ（ｔ）、Ｉｑｆｂｋ（ｔ）、及び制御量ωｆｂｋ（ｔ）の一つ前のタイミングで取得された制御量ωｆｂｋ（ｔ−１）を取得する。そして、制御量ωｒｅｆ（ｔ）、制御量ωｆｂｋ（ｔ）の偏差ＷＳを状態ｓｔとして取得する（ステップＳ１０１）。ここで、標記（ｔ）はステップｔを意味する。
【００４６】
次に、強化学習部３１２は、状態ｓｔに応じてμ＝ｍｕ（ｓｔ）、σ＝ｓｉｇｍａ（ｓｔ）の正規分布に従ったランダムサンプリングによって行動ａｔ、すなわち、第２操作量ｉｑｒｅｆｒｌ（ｔ）を演算する（ステップＳ１０２）。ここで、ｍｕ（ｓｔ）は、ｓｔのサンプリング平均を意味する。ｓｉｇｍａ（ｓｔ）は、サンプリングされたｓｔの標準偏差を意味する。続けて、強化学習部３１２は、演算された第２操作量ｉｑｒｅｆｒｌ（ｔ）により遷移した次のステップの状態ｓｔ＋１を取得する（ステップＳ１０３）。
【００４７】
次に、強化学習部３１２は、状態ｓｔ＋１の報酬ｒｔ＋１を報酬演算部３０６から取得する（ステップＳ１０４）。続けて、強化学習部３１２は、（１）式に従い評価値Ｖπ（ｓ）を報復期待値として演算し（ステップＳ１０５）、報復期待値が増加していればＴＤ＿ｅｒｒｏｒを正とし、減少していればＴＤ＿ｅｒｒｏｒを負とする。
【００４８】
次に、強化学習部３１２は、（４）、（５）式に従い強化学習モデルを更新する（ステップＳ１０６）。ＴＤ＿ｅｒｒｏｒが正なら、中心値ｍｕ（ｓｔ）をａｔの方向へ修正する。また、行動ａｔが±ｓｉｇｍａ（ｓｔ）の内側だったなら、ｓｉｇｍａ（ｓｔ）を小さくする方向へ、外側なら大きくする方向へ修正する。ＴＤ＿ｅｒｒｏｒが負なら逆の操作を行う。
【００４９】
次に、強化学習部３１２は、強化学習モデルを更新後に、状態ｓｔに応じてμ＝ｍｕ（ｓｔ）、σ＝ｓｉｇｍａ（ｓｔ）の正規分布に従ったランダムサンプリングによって行動ａｔ、すなわち、第２操作量ｉｑｒｅｆｒｌ（ｔ）を演算し、次のステップの状態ｓｔ＋１に状態を更新する（ステップＳ１０７）。
【００５０】
次に、強化学習部３１２は、偏差ＷＳが設定値以下か否かを判定する（ステップＳ１０７）。強化学習部３１２は、設定値以下でない場合（ステップＳ１０７のＮＯ）、ステップＳ１０１からの処理を繰り返す。一方で、強化学習部３１２は、設定値以下である場合（ステップＳ１０７のＹＥＳ）、ステップＳ１００からの処理を繰り返す。
【００５１】
一方で、学習選択信号が入力されていない場合（ステップＳ１００のＮＯ）、強化学習部３１２は、現タイミングにおける制御指令値ωｒｅｆ（ｔ）と、制御指令値ωｒｅｆ（ｔ）に対する制御量ωｆｂｋ（ｔ）、実電流Ｉｄｆｂｋ（ｔ）、Ｉｑｆｂｋ（ｔ）、及び制御量ωｆｂｋ（ｔ）の一つ前のタイミングで取得された制御量ωｆｂｋ（ｔ−１）を取得し、制御指令値ωｒｅｆ（ｔ）、制御量ωｆｂｋ（ｔ）の偏差ＷＳを状態ｓｔとして取得する（ステップＳ２０１）。
【００５２】
次に、強化学習部３１２は、状態ｓｔに応じてμ＝ｍｕ（ｓｔ）、σ＝ｓｉｇｍａ（ｓｔ）の正規分布に従ったランダムサンプリングによって行動ａｔ、すなわち、第２操作量ｉｑｒｅｆｒｌ（ｔ）を演算する（ステップＳ２０２）。続けて、
強化学習部３１２は、第２操作量ｉｑｒｅｆｒｌ（ｔ）を出力部３０５に出力する（ステップＳ２０３）。
【００５３】
次に、強化学習部３１２は、全体処理を終了するか否かを判定する（ステップＳ２０４）。強化学習部３１２は、全体処理を終了しない場合（ステップＳ２０４のＮＯ）、ステップＳ１００からの処理を繰り返す。一方で、強化学習部３１２は、全体処理を終了する場合（ステップＳ２０４のＹＥＳ）、全体処理を終了する。
【００５４】
図４Ｂは、学習後の制御装置１０の処理例を示すフローチャートである。  
まず、第１制御部３０２は、制御指令値ωｒｅｆと、制御指令値ωｒｅｆに対して制御対象であるモータ２０が実動することにより生じた制御量ωｆｂｋとの偏差を用いて第１操作量ｉｄｒｅｆｐｉおよびｉｑｒｅｆｐｉを出力する（ステップＳ３０１）。  
【００５５】
次に、制御指令値ωｒｅｆと、制御指令値ωｒｅｆに対する第１操作量ｉｄｒｅｆｐｉおよびｉｑｒｅｆｐｉにより実働するモータ２０の制御量ωｆｂｋと、を用いた強化学習により、第２操作量を学習した第２制御部３０４は、制御指令値ωｒｅｆと、及び制御指令値ωｒｅｆに対する制御量ωｆｂｋを用いて第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌを出力する（ステップＳ３０２）。
【００５６】
次に、出力部３０５は、第１操作量ｉｄｒｅｆｐｉおよびｉｑｒｅｆｐｉと、第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌとのそれぞれを加算した操作量ｉｄｒｅｆおよびｉｑｒｅｆを出力する（ステップＳ３０３）。これにより、モータ２０は操作量ｉｄｒｅｆおよびｉｑｒｅｆに応じたトルクを出力する。  
【００５７】
以上説明したように、本実施形態によれば、第１制御部３０２の出力する第１操作量ｉｄｒｅｆｐｉおよびｉｑｒｅｆｐｉを第２制御部３０４が出力する第２操作量ｉｄｒｅｆｒｌ、およびｉｑｒｅｆｒｌで補うこととした。これにより、第１制御部３０２が回転速度を比例・積分方式で制御することにより、モータ２０における回転速度の直流分をより高精度に制御可能となり、第２制御部３０４がモータ２０における回転速度の変動分の制御を強化学習により学習することにより、回転速度の変動分をより高精度に制御可能となる。このように、本実施形態によれば、モータ２０の回転速度の変動を抑制可能な速度制御が実現できる。これにより、モータ２０の回転位相に応じて負荷Ｌが変動する場合にも、制御指令値ωｒｅｆと制御量ωｆｂｋとの間の非線形に変動する偏差を抑制できる。
【００５８】
また、負荷Ｌを変更した場合においても、第１制御部３０２における利得等のパラメータは変更する必要はなく、強化学習モデルを負荷特性に合わせて学習し変更すればよいため、一度確立した第１制御部３０２における比例・積分制御のパラメータを再利用することができる。
【００５９】
（第２実施形態）
第１実施形態では、第１制御部３０２は、制御指令値ωｒｅｆと制御量ωｆｂｋとの偏差に基づき、制御を行っていたが、第２実施形態では、第１制御部３０２は、制御指令値ωｒｅｆと制御量ωｆｂｋの平均値との偏差に基づき、制御を行う点で相違する。以下では第１実施形態と相違する点に関して説明する。
【００６０】
図１に示すように、本実施形態に係る選択部６０は、制御指令値ωｒｅｆの時間変化に基づき、比例・積分速度制御モード、強化学習速度制御モード、統合モードのいずれかを選択可能である。例えば、選択部６０は、モータ２０の定速回転時は統合モードを選択することにより、より安定的に定速回転制御を行うことができる。
【００６１】
一方で、選択部６０は、モータ２０の加速および減速時は比例・積分モードを選択することでより安定的にモータ２０の加速制御を行うことができる。さらに、接続負荷Ｌが変更となった場合においても、強化学習部で再学習すればよいため、利便性が向上する。
【００６２】
図５は、第２実施形態に係る制御部３０の詳細な構成を示すブロック図である。制御部３０は、回転速度平均値計算部３１８と、指令値変動成分計算部３２０とを、更に備える。
【００６３】
出力部３０５は、第１操作量ｉｄｒｅｆｐｉと第２操作量ｉｄｒｅｆｒｉの変動成分Δｉｄｒｅｆとを加算して、操作量ｉｄｒｅｆを出力し、第１操作量ｉｑｒｅｆｐｉと第２操作量ｉｑｒｅｆｒｉの変動成分Δｉｑｒｅｆとを加算して、操作量ｉｑｒｅｆを出力する。
【００６４】
回転速度平均値計算部３１８は、一定間隔で入力される回転速度ωｆｂｋ（ｔ）の平均値＾ωｆｂｋ（ｔ）を計算する。ここで、（ｔ）はタイミングｔを標記している。また、文章内では回転速度ωｆｂｋ（ｔ）の平均値を＾ωｆｂｋ（ｔ）で標記する。
【００６５】
回転速度平均値計算部３１８は、例えば、（６）式にしたがい回転速度ωｆｂｋ（ｔ）の逐次平均値＾ωｆｂｋ（ｔ）を計算する。
【数６】
2020187489.tif 000008
すなわち、回転速度ωｆｂｋ（ｔ）および逐次平均値＾ωｆｂｋ（ｔ）は、回転速度ωｒｅｆ（０）が設定されてから、ｔ回目のサンプルにおける回転速度測定値および回転速度測定値の逐次平均値である。
【００６６】
第１制御部３０２は、逐次平均値＾ωｆｂｋ（ｔ）と回転速度制御指令値ωｒｅｆ（ｔ）との偏差ＷＳ１（ｔ）に比例したＰ（ｔ）値と、偏差の累積値に比例したＩ（ｔ）値の加算値を直流成分制御量、すなわち第１操作量ｉｄｒｅｆｐｉおよびｉｑｒｅｆｐｉとして出力する。
【００６７】
指令値変動成分計算部３２０は、第２操作量ｉｄｒｅｆｒｉ（ｔ）およびｉｑｒｅｆｒｉ（ｔ）それぞれの平均値に対する変動成分Δｉｄｒｅｆ（ｔ）、Δｉｑｒｅｆ（ｔ）を、例えば、（７）〜（１０）式に基づき計算する。これにより、第２操作量ｉｄｒｅｆｒｉ（ｔ）およびｉｑｒｅｆｒｉ（ｔ）に重畳している直流成分が取り除かれる。
【数７】
2020187489.tif 000009
【数８】
2020187489.tif 000010
【数９】
2020187489.tif 000011
【数１０】
2020187489.tif 000012
図６は回転速度平均値計算部３１８の詳細な構成を示す図である。図７は、モータ制御方式選択信号により、選択スイッチ３１８ｂが変更する出力値を示す図である。
【００６８】
図６に示すように、回転速度平均値計算部３１８は、平均値計算部３１８ａと、選択スイッチ３１８ｂとを有する。  
平均値計算部３１８ａは、モータ制御方式選択信号が、比例・積分速度制御モードのとき、リセット状態となり、制御対象から入力される回転速度ωｆｂｋ（ｔ）をそのまま出力する。また、平均値計算部３１８ａは、モータ制御方式選択信号が統合制御モードのとき、（６）式に基づき、回転速度ωｆｂｋ（ｔ）の平均値＾ωｆｂｋ（ｔ）の計算を開始する。
【００６９】
選択スイッチ３１８ｂは、モータ制御方式選択信号により、出力値を変更する。すなわち、選択スイッチ３１８ｂは、比例・積分速度制御モードが選択された場合、出力を回転速度ωｆｂｋ（ｔ）にする。選択スイッチ３１８ｂは、強化学習速度制御モードが選択された場合、出力を０とする。そして、選択スイッチ３１８ｂは、統合モードが選択された場合、出力を平均値＾ωｆｂｋ（ｔ）を出力する。  
【００７０】
図８は指令値変動成分計算部３２０の詳細な構成を示す図である。図９は、モータ制御方式選択信号により、選択スイッチ３２０ｂが変更する出力値を示す図である。
【００７１】
図８に示すように、指令値変動成分計算部３２０は、変動成分計算部３２０ａと、選択スイッチ３２０ｂとを有する。  
変動成分計算部３２０ａは、第２操作量ｉｄｒｅｆｒｉ（ｔ）およびｉｑｒｅｆｒｉ（ｔ）それぞれの平均値に対する変動成分Δｉｄｒｅｆ（ｔ）、Δｉｑｒｅｆ（ｔ）を、例えば、（７）〜（１０）式に基づき計算する。
【００７２】
選択スイッチ３２０ｂは、モータ制御方式選択信号によって、比例・積分速度制御モードでは（０、０）を出力し、強化学習速度制御モードでは（ｉｄｒｅｆｒｌ、ｉｑｒｅｆｒｌ）を出力し、統合モードでは（Δｉｄｒｅｆ、Δｉｑｒｅｆ）を出力する。
【００７３】
このように、第１制御部３０２は、逐次平均値＾ωｆｂｋ（ｔ）と回転速度制御指令値ωｒｅｆ（ｔ）との偏差ＷＳ１（ｔ）に比例したＰ（ｔ）値と、偏差ＷＳ１（ｔ）の累積値に比例したＩ（ｔ）値の加算値である第１操作量ｉｄｒｅｆｐｉ（ｔ）およびｉｑｒｅｆｐｉ（ｔ）を出力する。また、操作量ｉｄｒｅｆ（ｔ）、ｉｑｒｅｆ（ｔ）の変動分ある第２操作量ｉｄｒｅｆｐｌ（ｔ）、ｉｑｒｅｆｐｌ（ｔ）を強化学習した第２制御３０４の第２操作量ｉｄｒｅｆｐｌ（ｔ）、ｉｑｒｅｆｐｌ（ｔ）の変動分Δｉｄｒｅｆ（ｔ）、Δｉｑｒｅｆ（ｔ）を指令値変動成分計算部３２０が出力する。出力部３０５は、第１操作量ｉｄｒｅｆｐｉ（ｔ）およびｉｑｒｅｆｐｉ（ｔ）と変動分Δｉｄｒｅｆ（ｔ）、Δｉｑｒｅｆ（ｔ）を加算して操作量ｉｄｒｅｆ（ｔ）、ｉｑｒｅｆ（ｔ）として出力する。これにより、操作量ｉｄｒｅｆ（ｔ）、ｉｑｒｅｆ（ｔ）の直流分である第１操作量ｉｄｒｅｆｐｉ（ｔ）およびｉｑｒｅｆｐｉ（ｔ）を第１制御部３０２による比例・積分速度制御で制御し、操作量ｉｄｒｅｆ（ｔ）、ｉｑｒｅｆ（ｔ）の変動分Δｉｄｒｅｆ（ｔ）、Δｉｑｒｅｆ（ｔ）を、第２操作量ｉｄｒｅｆｐｌ（ｔ）、ｉｑｒｅｆｐｌ（ｔ）を強化学習した第２制御部３０４による強化学習制御で制御可能となる。
【００７４】
以上説明したように、本実施形態によれば、操作量ｉｄｒｅｆ（ｔ）、ｉｑｒｅｆ（ｔ）の直流分を第１制御部３０２で制御し、変動分を第２制御３０４で制御することとした。これにより、モータ２０の回転位相に応じて負荷Ｌが変動する場合にも、制御指令値ωｒｅｆ（ｔ）と制御量ωｆｂｋ（ｔ）との間の非線形に変動する偏差をより高精度に抑制できる。
【００７５】
また、第１制御部３０２による比例・積分速度制御と、第２制御部３０４による強化学習速度制御と制御内容を分担することとした。このため、第１制御部３０２による比例・積分速度制御と第２制御部３０４による強化学習速度制御を個別に調整、学習することが可能となる。
【００７６】
さらにまた、速度制御方式選択信号により、比例・積分速度制御モード、強化学習速度制御モード、統合モードのいずれかを選択できるように構成した。これにより、モータ２０の負荷状態により、第１制御部３０２及び第２制御部３０４それぞれの制御を選択でき、より効果的な制御が実行できる。このように、負荷特性に適した安定的な速度制御を実現可能となる。
【００７７】
上述した実施形態で説明した制御装置およびモータ制御システムの少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、制御装置およびモータ制御システムの少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００７８】
また、制御装置およびモータ制御システムの少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００７９】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施することが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形例は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８０】
１：モータ制御システム、１０：制御装置、２０：モータ、６０：選択部、３０２：第１制御部、３０４：第２制御部、３０５：出力部、３２０：指令値変動成分計算部。
【図１】
2020187489.tif 000013
【図２】
2020187489.tif 000014
【図３】
2020187489.tif 000015
【図４Ａ】
2020187489.tif 000016
【図４Ｂ】
2020187489.tif 000017
【図５】
2020187489.tif 000018
【図６】
2020187489.tif 000019
【図７】
2020187489.tif 000020
【図８】
2020187489.tif 000021
【図９】
2020187489.tif 000022