(57)【要約】  本開示の課題は、モータの制御を継続させやすくすることにある。モータ制御システム（１０）は、モータ（１）と、モータ制御装置（２）と、を備える。モータ制御装置（２）は、取得部（２０１）と、診断部（２０２）と、制御部（２０４）と、を有する。取得部（２０１）は、制御データ（Ｍ１）を取得する。制御データ（Ｍ１）は、モータ制御装置（２）と通信可能である複数のコントローラ（３）の各々から送信される、モータ（１）に対する指令を含む。診断部（２０２）は、取得部（２０１）で取得した各コントローラ（３）からの複数の制御データ（Ｍ１）を診断する。制御部（２０４）は、複数の制御データ（Ｍ１）のうち、診断部（２０２）の診断結果に基づいて選定される一の制御データ（Ｍ１）を用いて、モータ（１）を制御する。
2020105337.tif 000002
【特許請求の範囲】
【請求項１】
モータと、
前記モータに対応するモータ制御装置と、を備え、
前記モータ制御装置は、
前記モータ制御装置と通信可能である複数のコントローラの各々から送信される、前記モータに対する指令を含む制御データを取得する取得部と、
前記取得部で取得した前記複数のコントローラからの複数の制御データを診断する診断部と、
前記複数の制御データのうち、前記診断部の診断結果に基づいて選定される一の制御データを用いて、前記モータを制御する制御部と、を有する、
モータ制御システム。
【請求項２】
前記モータ制御装置は、他のモータ制御装置の前記診断部による診断結果を取得する、
請求項１記載のモータ制御システム。
【請求項３】
前記モータ制御装置は、前記診断部による診断結果を発信する機能を有する、
請求項１又は２に記載のモータ制御システム。
【請求項４】
前記複数のコントローラの各々は、前記複数のコントローラにそれぞれ対応する複数のセンサのうち、対応するセンサの検知結果を用いて前記制御データを生成する、
請求項１〜３のいずれか１項に記載のモータ制御システム。
【請求項５】
前記複数のコントローラの各々は、自己を診断する自己診断部を有しており、
前記複数の制御データの各々は、対応するコントローラの前記自己診断部による自己診断結果を更に含む、
請求項１〜４のいずれか１項に記載のモータ制御システム。
【請求項６】
前記モータ及び前記モータ制御装置は、それぞれ複数であって、
前記複数のモータ制御装置の各々は、前記複数のモータのうちの対応するモータを制御する、
請求項１〜５のいずれか１項に記載のモータ制御システム。
【請求項７】
前記複数のコントローラの各々は、前記複数のモータ制御装置に対して、前記制御データをブロードキャストする、
請求項６記載のモータ制御システム。
【請求項８】
前記複数のコントローラの各々は、自己を診断する自己診断部を有しており、
前記モータ制御装置は、前記複数のコントローラの各々の前記自己診断部による自己診断結果に基づいて選定される一のコントローラからの前記制御データを用いて、対応するモータを制御する、
請求項１〜７のいずれか１項に記載のモータ制御システム。
【請求項９】
前記モータ制御装置は、前記複数の制御データのうちいずれか１つの制御データが前記診断部にて異常があると診断された場合、前記複数のコントローラとは別のコントローラからの制御データを取得する、
請求項１〜８のいずれか１項に記載のモータ制御システム。
【請求項１０】
それぞれ複数のプロペラを回転させる複数のモータと、
前記複数のモータをそれぞれ制御する複数のモータ制御装置と、
前記複数のモータ制御装置と通信可能であって、前記複数のモータの各々に対する指令を含む制御データを、前記複数のモータに対して送信するコントローラと、を備え、
前記複数のモータは、２以上のモータを１つのモータ群とする複数のモータ群に区分され、
前記複数のモータ制御装置の各々は、自己を診断する自己診断部を有しており、
前記コントローラは、前記自己診断部の自己診断結果に基づいて選定されるモータ制御装置が存在する場合、このモータ制御装置に対応するモータ、及びこのモータと同一のモータ群のモータを停止させる、
無人飛行機。
【請求項１１】
前記コントローラは複数であって、
前記複数のモータ制御装置の各々は、前記複数のコントローラからの複数の制御データを診断する診断部を有しており、
前記複数のコントローラの各々は、前記複数のモータ制御装置のうち１以上のモータ制御装置において、前記診断部により前記複数のコントローラの全ての制御データが異常と診断された場合、診断結果の正否を確認する確認処理を実行する、
請求項１０記載の無人飛行機。
【請求項１２】
前記複数のコントローラの各々は、前記確認処理として、前記診断部により異常と判定したモータ制御装置が１つであれば、当該１つのモータ制御装置に対応するモータ、及びこのモータと同一のモータ群のモータを停止させる、
請求項１１記載の無人飛行機。
【請求項１３】
前記複数のコントローラの各々は、前記確認処理として、前記診断部により異常と判定したモータ制御装置が複数であれば、前記複数のコントローラの各々と通信する外部装置が異常であると判定する、
請求項１１記載の無人飛行機。
【請求項１４】
請求項１〜８のいずれか１項に記載のモータ制御システムと、
前記モータが駆動されることにより移動する移動機構と、を備える、
移動体。
【請求項１５】
複数のコントローラの各々から送信される、モータに対する指令を含む制御データを診断し、
前記複数のコントローラからの複数の制御データのうち、診断結果に基づいて選定される一の制御データを用いて、前記モータを制御する、
モータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にモータ制御システム、無人飛行機、移動体、及びモータ制御方法に関する。
【背景技術】
【０００２】
特許文献１には、無人飛行機が開示されている。この無人飛行機は、モータと、モータにより駆動されるプロペラと、モータの動作を制御する制御信号を生成するフライトコントローラと、制御信号に基づいてモータを駆動する主ＥＳＣ（Electric Speed Controller）及び副ＥＳＣと、を備える。また、この無人飛行機は、主ＥＳＣの異常を検知する故障検知装置を備える。【０００３】
この無人飛行機では、主ＥＳＣの異常を検知したときに、フライトコントローラからの制御信号の入力先を主ＥＳＣから副ＥＳＣに切り替えることにより、副ＥＳＣによりモータを駆動させる。【０００４】
特許文献１に記載の無人飛行機（モータ制御システム）では、フライトコントローラ（コントローラ）に異常が発生した場合に、モータの制御を継続させることが難しい、という問題があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−５０４１９号公報
【発明の概要】
【０００６】
本開示は、モータの制御を継続させやすいモータ制御システム、無人飛行機、移動体、及びモータ制御方法を提供することを目的とする。
【０００７】
本開示の一態様に係るモータ制御システムは、モータと、前記モータに対応するモータ制御装置と、を備える。前記モータ制御装置は、取得部と、診断部と、制御部と、を有する。前記取得部は、制御データを取得する。前記制御データは、前記モータ制御装置と通信可能である複数のコントローラの各々から送信される、前記モータに対する指令を含む。前記診断部は、前記取得部で取得した前記複数のコントローラからの複数の制御データを診断する。前記制御部は、前記複数の制御データのうち、前記診断部の診断結果に基づいて選定される一の制御データを用いて、前記モータを制御する。
【０００８】
本開示の一態様に係る無人飛行機は、複数のモータと、複数のモータ制御装置と、コントローラと、を備える。前記複数のモータは、それぞれ複数のプロペラを回転させる。前記複数のモータ制御装置は、前記複数のモータをそれぞれ制御する。前記コントローラは、前記複数のモータ制御装置と通信可能であって、前記複数のモータの各々に対する指令を含む制御データを、前記複数のモータに対して送信する。前記複数のモータは、２以上のモータを１つのモータ群とする複数のモータ群に区分される。前記複数のモータ制御装置の各々は、自己を診断する自己診断部を有している。前記コントローラは、前記自己診断部の自己診断結果に基づいて選定されるモータ制御装置が存在する場合、このモータ制御装置に対応するモータ、及びこのモータと同一のモータ群のモータを停止させる。
【０００９】
本開示の一態様に係る移動体は、上記のモータ制御システムと、前記モータが駆動されることにより移動する移動機構と、を備える。
【００１０】
本開示の一態様に係るモータ制御方法は、制御データを診断する方法を含む。前記制御データは、複数のコントローラの各々から送信されるモータに対する指令を含む。モータ制御方法は、前記複数のコントローラからの複数の制御データのうち、診断結果に基づいて選定される一の制御データを用いて、前記モータを制御する方法を含む。
【図面の簡単な説明】
【００１１】
【図１】図１は、本開示の一実施形態に係るモータ制御システムの概要を示すブロック図である。
【図２】図２は、同上のモータ制御システムを有する無人飛行機の概略構成を示す図である。
【図３】図３は、同上のモータ制御システムにおいて、コントローラから送信される制御データの内容の説明図である。
【図４】図４は、同上のモータ制御システムにおいて、モータ制御装置から送信される応答データの内容の説明図である。
【図５】図５は、同上のモータ制御システムにおいて、モータ制御装置の動作を説明するためのフローチャートである。
【図６】図６は、同上のモータ制御システムにおいて、コントローラの動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
（１）概要
本実施形態のモータ制御システム１０は、図１に示すように、モータ１と、モータ１に対応するモータ制御装置２と、を備えている。
【００１３】
モータ制御装置２は、図１に示すように、取得部２０１と、診断部２０２と、制御部２０４と、を有する。
【００１４】
取得部２０１は、制御データＭ１を取得する。制御データＭ１は、モータ制御装置２と通信可能である複数（ここでは、２台）のコントローラ３の各々から送信される、モータ１に対する指令Ａ０（図３参照）を含む。以下の説明では、複数のコントローラ３をそれぞれ区別する場合には「コントローラ３１，３２」という。また、以下の説明では、コントローラ３１，３２から送信される制御データＭ１を区別する場合には「制御データＭ１１，Ｍ１２」という。つまり、本実施形態では、コントローラ３１，３２は、それぞれモータ制御装置２に対して、制御データＭ１１，Ｍ１２を送信する。そして、本実施形態では、コントローラ３１，３２の構成は同一であり、したがって、コントローラ３１，３２から送信される制御データＭ１１，Ｍ１２は、特に異常がない限り、同じとなる。ここでいう「同じ」は、完全一致のみならず、データの受け手がいずれのデータを受けても同じ挙動をし得る程度の誤差を含んでいてもよい。
【００１５】
診断部２０２は、取得部２０１で取得した複数のコントローラ３からの複数の制御データＭ１を診断する。本実施形態では、診断部２０２は、コントローラ３１からの制御データＭ１１と、コントローラ３２からの制御データＭ１２と、を診断する。
【００１６】
制御部２０４は、複数の制御データＭ１のうち、診断部２０２の診断結果ＤＣ０（図４参照）に基づいて選定される一の制御データＭ１を用いて、モータ１を制御する。例えば、モータ制御装置２は、コントローラ３１，３２から送信される２つの制御データＭ１１，Ｍ１２のうち、診断部２０２の診断結果ＤＣ０に基づいて異常がないと診断された一の制御データＭ１を用いて、モータ１を制御する。
【００１７】
上述のように、本実施形態では、制御部２０４は、複数の制御データＭ１のうち、診断部２０２の診断結果ＤＣ０に基づいて選定される一の制御データＭ１を用いて、モータ１を制御する。例えば、複数のコントローラ３のうちの一のコントローラ３１から送信される制御データＭ１１に異常があると診断部２０２が判定したと仮定する。この場合、制御部２０４は、異常があると診断された制御データＭ１１の送信元のコントローラ３１とは別のコントローラ３２から送信される制御データＭ１２を用いて、モータ１を制御することが可能である。したがって、本実施形態では、モータ１の制御を継続させやすい、という利点がある。
【００１８】
（２）詳細
以下、本実施形態のモータ制御システム１０について詳細に説明する。本実施形態のモータ制御システム１０は、図１に示すように、複数（ここでは、６つ）のモータ１と、複数のモータ１にそれぞれ対応する複数（ここでは、６台）のモータ制御装置２と、を備えている。つまり、本実施形態では、モータ１及びモータ制御装置２は、それぞれ複数である。複数のモータ制御装置２の各々は、複数のモータ１のうちの対応するモータ１を制御する。
【００１９】
以下の説明では、複数のモータ１をそれぞれ区別する場合には「モータ１１〜１６」という。また、以下の説明では、複数のモータ制御装置２をそれぞれ区別する場合には、「モータ制御装置２１〜２６」という。つまり、本実施形態では、モータ制御装置２１〜２６は、それぞれ対応するモータ１１〜１６を制御する。
【００２０】
本実施形態では、特に断りのない限り、モータ制御システム１０は、図２に示す無人飛行機（ドローン）１００の飛行を制御するために用いられるとして説明する。無人飛行機１００は、機体８の周囲に配置された複数（ここでは、６枚）のプロペラ（ブレード）７が回転することにより、空中を飛行する。無人飛行機１００は、例えば産業用であって、物流、運送、巡回警備、建築物の検査、又は農薬の散布などに用いられる。
【００２１】
無人飛行機１００は、図１及び図２に示すように、複数のモータ１と、複数のモータ制御装置２（図１参照）と、複数のコントローラ３（図１参照）と、を備える。複数のモータ１は、それぞれ複数のプロペラ７（図２参照）を回転させる。複数のモータ制御装置２は、複数のモータ１にそれぞれ対応する。複数のコントローラ３は、それぞれ複数のモータ制御装置２と通信可能であって、複数のモータ１の各々に対する指令Ａ０（図３参照）を含む制御データＭ１を、複数のモータ１に対して送信する。
【００２２】
本実施形態では、図２に示すように、モータ１１とモータ１４、モータ１２とモータ１５、及びモータ１３とモータ１６とは、それぞれ機体８を挟んで対向するように配置されている。つまり、モータ１１とモータ１４、モータ１２とモータ１５、及びモータ１３とモータ１６とは、それぞれ対となっている。言い換えれば、複数（ここでは、６つ）のモータ１は、２以上のモータ１を１つのモータ群とする複数（ここでは、３つ）のモータ群に区分される。
【００２３】
無人飛行機１００は、図１に示すように、コントローラ３１，３２と、２つのＧＰＳ（Global Positioning System）モジュール４１，４２と、無線通信機（受信機５）と、モータ制御装置２１〜２６と、モータ１１〜１６と、プロペラ７（図２参照）と、を有している。そして、無人飛行機１００の機体８（図２参照）にはこれらが搭載されている。なお、コントローラ３１，３２と、２つのＧＰＳモジュール４１，４２と、無線通信機（受信機５）と、モータ制御装置２１〜２６とは、機体８（図２参照）内に収納されている。そして、モータ制御装置２１〜２６と、モータ１１〜１６と、によりモータ制御システム１０が構成されている。本実施形態では、コントローラ３１，３２は、無人飛行機１００の構成要素であって、モータ制御システム１０の構成要素には含まれていないが、含まれていてもよい。
【００２４】
ここで、本実施形態では、モータ制御装置２１〜２６はいずれも同一の構成である。したがって、以下で説明するモータ制御装置２の説明は、特に断りのない限り、モータ制御装置２１〜２６の各々の説明に相当する。同様に、本実施形態では、コントローラ３１，３２はいずれも同一の構成である。したがって、以下で説明するコントローラ３の説明は、特に断りのない限り、コントローラ３１，３２の各々の説明に相当する。
【００２５】
モータ制御装置２は、例えばＥＳＣ（Electric Speed Controller）であって、取得部２０１と、診断部２０２と、自己診断部２０３と、制御部２０４と、を有している。本実施形態では、モータ制御装置２は、ハードウェアとしての１以上のプロセッサ及びメモリを主構成とするコンピュータシステムを含んでいる。そして、メモリに記録されたプログラムを１以上のプロセッサで実行することによって、診断部２０２、自己診断部２０３、及び制御部２０４の各々の機能が実現される。プログラムは、メモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能な光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。また、取得部２０１は、上記のコンピュータシステムの入力インタフェースとして実現される。
【００２６】
取得部２０１は、複数のコントローラ３から送信される制御データＭ１を取得する。本実施形態では、取得部２０１は、コントローラ３１，３２から送信される制御データＭ１１，Ｍ１２を取得する。また、取得部２０１は、他のモータ制御装置２から送信される他の応答データＭ２を取得する。
【００２７】
ここで、本実施形態では、コントローラ３１，３２と、モータ制御装置２１〜２６との間の通信の仕様としては、ＣＡＮ  ＦＤ（CAN with Flexible Data-Rate）通信の仕様が採用されている。そして、コントローラ３１，３２と、モータ制御装置２１〜２６は、バス型のシリアル通信線Ｌ１に接続されている。本実施形態では、コントローラ３１，３２からモータ制御装置２１〜２６への制御データＭ１の送信と、モータ制御装置２１〜２６からコントローラ３１，３２への応答データＭ２の送信と、の双方向の通信がシリアル通信線Ｌ１を介して行われる。以下の説明では、モータ制御装置２１〜２６から送信される応答データＭ２を区別する場合には「応答データＭ２１〜Ｍ２６」という。
【００２８】
制御データＭ１は、図３に示すように、複数のモータ１の各々に対する指令Ａ０（ここでは、指令Ａｍ１，…，Ａｍｎ）と、コントローラ３の自己診断部３０２（後述する）による自己診断結果ＤＦ０（ここでは、自己診断結果ＤＦｍ）と、を含んでいる。本実施形態では、指令Ａ０は、モータ１の目標回転数に相当する。ここで、“ｍ”は自然数であって、最大値はコントローラ３の数に相当する。また、“ｎ”は自然数であって、最大値はモータ１（又はモータ制御装置２）の数に相当する。本実施形態であれば、コントローラ３１から送信される制御データＭ１１は、モータ１１〜１６に対する指令Ａ１１〜Ａ１６と、コントローラ３１の自己診断部３０２による自己診断結果ＤＦ１と、を含むことになる（“ｍ＝１”、“ｎ＝６”）。また、コントローラ３２から送信される制御データＭ１２は、モータ１１〜１６に対する指令Ａ２１〜Ａ２６と、コントローラ３２の自己診断部３０２による自己診断結果ＤＦ２と、を含むことになる（“ｍ＝２”、“ｎ＝６”）。このように、本実施形態では、複数の制御データＭ１の各々は、対応するコントローラ３の自己診断部３０２による自己診断結果ＤＦ０（図３参照）を含んでいる。
【００２９】
応答データＭ２は、制御データＭ１に対する応答である。応答データＭ２は、図４に示すように、計測値Ｂ１，Ｂ２，Ｂ３（ここでは、計測値Ｂｎ１，Ｂｎ２，Ｂｎ３）と、モータ制御装置２の自己診断部２０３による自己診断結果ＤＥ０（ここでは、自己診断結果ＤＥｎ）と、を含んでいる。また、応答データＭ２は、制御データＭ１に対する診断部２０２による診断結果ＤＣ０（ここでは、診断結果ＤＣ１，…，ＤＣｍ）を含んでいる。計測値Ｂ１，Ｂ２，Ｂ３は、それぞれモータ１の回転数の計測値と、モータ１のコイルに流れる電流の計測値と、モータ１の周囲温度の計測値と、を表している。本実施形態であれば、例えばモータ制御装置２１から送信される応答データＭ２１は、計測値Ｂ１１，Ｂ１２，Ｂ１３と、モータ制御装置２１の自己診断部２０３による自己診断結果ＤＥ１と、を含むことになる。また、応答データＭ２１は、制御データＭ１１，Ｍ１２に対する診断部２０２による診断結果ＤＣ１，ＤＣ２を含むことになる。このように、本実施形態では、モータ制御装置２は、診断部２０２による診断結果ＤＣ０を発信する機能を有している。
【００３０】
また、図１に示すように、取得部２０１は、シリアル通信線Ｌ１を介して、他のモータ制御装置２から送信される他の応答データＭ２を取得する。一例として、モータ制御装置２１は、他のモータ制御装置２２〜２６から送信される他の応答データＭ２２〜Ｍ２６を取得する。ここで、他の応答データＭ２には、他のモータ制御装置２の診断部２０２による診断結果ＤＣ０が含まれている。つまり、本実施形態では、モータ制御装置２は、他のモータ制御装置２の診断部２０２による診断結果ＤＣ０（図４参照）を取得することになる。
【００３１】
診断部２０２は、取得部２０１で取得したコントローラ３１，３２からの制御データＭ１１，Ｍ１２、及び他のモータ制御装置２から送信される他の応答データＭ２などを診断する。これによって、診断部２０２は、コントローラ３１，３２及び他のモータ制御装置２などに異常があるか否かを判定する。診断に要する時間は、例えば１〜数十［μｓ］程度である。診断部２０２は、指令（ここでは、目標回転数）Ａ０に関して、例えば瞬時値、単位時間当たりの変化量、平均値、及び分散値などを算出する。次に、診断部２０２は、これらの算出値の各々について、最大値が最大閾値を上回るか否か、及び最小値が最小閾値を下回るか否か、を判定する。最大閾値及び最小閾値は、これらの算出値の各々について、予め設定される。そして、診断部２０２は、これらの算出値のうちのいずれか１以上の値において、最大閾値を上回る（又は最小閾値を下回る）と、指令Ａ０に異常があると判定する。さらに、診断部２０２は、前回の制御データＭ１を取得した後で、所定の時間内に次の制御データＭ１を検知できない場合、この制御データＭ１を出力したコントローラ３に異常があると判定する。また、診断部２０２は、前回の応答データＭ２を取得してから所定の時間内に次の応答データＭ２を取得できない場合、この応答データＭ２を出力したモータ制御装置２に異常があると判定する。
【００３２】
具体的には、本実施形態のように複数のプロペラ７を持つ無人飛行機１００では、空中で停止している場合であっても、各プロペラ７の回転数を微妙に変化させながら、機体８のバランスをとっている。このため、指令Ａ０の単位時間当たりの変化量及び分散値が零になる事態は通常、生じ得ない。したがって、診断部２０２は、算出した単位時間当たりの変化量及び分散値のいずれかが最小閾値を下回れば、異常と判定する。また、無人飛行機１００が急速に上昇、下降、又は旋回する場合であっても、コントローラ３の制御データＭ１を送信する周期は、例えば、１〜数十［ｍｓ］程度であり、極めて高速である。このため、通常、周期ごとに指令Ａ０が大きく変化する事態は生じ得ない。したがって、診断部２０２は、算出した単位時間当たりの変化量が最大閾値を上回れば、異常と判定する。また、無人飛行機１００が重量物を搬送している場合、指令Ａ０の瞬時値及び平均値は、重量物を搬送していない場合と比較して大きくなるため、通常、零になる事態は生じ得ない。したがって、診断部２０２は、算出した瞬時値及び平均値のいずれかが最小閾値を下回れば、異常と判定する。
【００３３】
自己診断部２０３は、自己診断部２０３を有するモータ制御装置２自体（つまり、自己）を診断する。具体的には、自己診断部２０３は、モータ制御装置２に内蔵されているセンサ、マイクロコントローラ、及びモータ１を駆動するためのインバータ回路など（図示せず）の状態を診断する。そして、自己診断部２０３は、これらの状態のうち１以上の状態に異常があれば、モータ制御装置２に異常があると判定する。
【００３４】
制御部２０４は、取得部２０１で取得した複数の制御データＭ１のうち、診断部２０２の診断結果ＤＣ０に基づいて選定される一の制御データＭ１を用いて、対応するモータ１を制御する。本実施形態では、診断部２０２にて制御データＭ１１，Ｍ１２のいずれかに異常があると診断されない限り、制御部２０４は、制御データＭ１１を用いて、対応するモータ１を制御する。そして、制御部２０４は、例えば診断部２０２にて制御データＭ１１に異常があると判定すると、以降、制御データＭ１１の代わりに制御データＭ１２を用いて、対応するモータ１を制御する。
【００３５】
診断部２０２は、例えばノイズなどによって複数の制御データＭ１のうちのいずれかを一時的に異常であると判定する場合もある。このような場合、時間の経過によって制御データＭ１は正常値へ復帰する。また、コントローラ３は、診断部２０２で異常であると判定されても、制御データＭ１の送信を続ける。そこで、診断部２０２にて例えば制御データＭ１１に異常があると判定した後で、制御データＭ１２にも異常があると判定し、かつ制御データＭ１１が正常値に復帰していると判定した場合、制御部２０４は、制御データＭ１２の代わりに再度制御データＭ１１を用いて、対応するモータ１を制御することもできる。なお、この場合、診断部２０２は、制御データＭ１１に異常があると判定した後に、規定時間（あるいは規定回数）以上、制御データＭ１１の正常値が継続されている場合にコントローラ３１が一時的に異常値を出力したと判定することが好ましい。
【００３６】
制御部２０４は、選定された一の制御データＭ１に含まれる、対応するモータ１の目標回転数のデータを参照して、対応するモータ１の回転数が目標回転数に一致するようにモータ１を制御する。例えば、モータ制御装置２１の制御部２０４は、制御データＭ１１に含まれるモータ１１の目標回転数のデータを参照して、モータ１１の回転数が目標回転数に一致するようにモータ１１を制御する。
【００３７】
また、制御部２０４は、モータ制御装置２に内蔵されている各種センサの検知結果に基づいて、計測値Ｂ１，Ｂ２，Ｂ３を取得する。そして、制御部２０４は、計測値Ｂ１，Ｂ２，Ｂ３と、診断部２０２による診断結果ＤＣ０と、自己診断部２０３による自己診断結果ＤＥ０と、を含む応答データＭ２を生成する。制御部２０４は、シリアル通信線Ｌ１を介して、生成した応答データＭ２を複数のコントローラ３に対して定期的に送信する。
【００３８】
コントローラ３は、例えば通信方式としてＰＷＭ（Pulse Width Modulation）方式を用いたフライトコントローラであって、センサ３０１と、自己診断部３０２と、を有している。本実施形態では、コントローラ３は、ハードウェアとしての１以上のプロセッサ及びメモリを主構成とするコンピュータシステムを含んでいる。そして、メモリに記録されたプログラムを１以上のプロセッサで実行することによって、自己診断部３０２の機能が実現される。プログラムは、メモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能な光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。
【００３９】
センサ３０１は、無人飛行機１００の状態を検知する１以上のセンサを含んでいる。センサ３０１に含まれるセンサは、一例として、無人飛行機１００の姿勢を検知するジャイロセンサ、無人飛行機１００の加速度を検知する加速度センサ、及び無人飛行機１００の進行方向を検知する地磁気センサなどである。本実施形態では、コントローラ３１に内蔵されたセンサ３０１と、コントローラ３２に内蔵されたセンサ３０１の構成は同一であり、したがって、これらセンサ３０１の検知結果は、特に異常がない限り、同じとなる。
【００４０】
本実施形態では、後述するＧＰＳモジュール４１（又はＧＰＳモジュール４２）もセンサ３０１の一部である。以下の説明では、特に断りのない限り、コントローラ３１（又はコントローラ３２）に内蔵されたセンサ３０１と、ＧＰＳモジュール４１（又はＧＰＳモジュール４２）と、を併せて「センサ３０１」という。
【００４１】
本実施形態では、コントローラ３１，３２は、センサを共有していない。言い換えれば、コントローラ３１で用いられるセンサ３０１と、コントローラ３２で用いられるセンサ３０１とは、互いに独立している。つまり、複数のコントローラ３の各々は、複数のセンサ３０１のうち、対応するセンサ３０１の検知結果を用いて制御データＭ１を生成する。複数のセンサ３０１は、複数のコントローラ３にそれぞれ対応する。
【００４２】
自己診断部３０２は、自己診断部３０２を有するコントローラ３自体（つまり、自己）を診断する。具体的には、自己診断部３０２は、センサ３０１及び受信機５などの状態を診断する。そして、自己診断部３０２は、これらの状態のうち１以上の状態に異常があれば、コントローラ３に異常があると判定する。なお、コントローラ３は、自己診断部３０２にて自己に対応したセンサ３０１に異常があると判定した場合、以降、他のコントローラ３に対応するセンサ３０１の検知結果を用いてもよい。
【００４３】
コントローラ３は、センサ３０１の検知結果、及び受信機５からの主指令（後述する）に基づいて、複数のモータ１の各々に対する指令Ａ０を生成する。そして、コントローラ３は、指令Ａ０と、自己診断部３０２による自己診断結果ＤＦ０と、を含む制御データＭ１を生成する。コントローラ３は、シリアル通信線Ｌ１を介して、生成した制御データＭ１を複数のモータ制御装置２に対して定期的にブロードキャストする。つまり、複数のコントローラ３の各々は、複数のモータ制御装置２に対して、制御データＭ１をブロードキャストする。
【００４４】
上記の態様によれば、複数のモータ制御装置２の各々は、殆ど同時に、かつ、短時間でコントローラ３からの制御データＭ１（つまり、指令Ａ０）を更新することが可能である。ここで、複数のコントローラ３の各々が、複数のモータ制御装置２に対して、制御データＭ１を順次ユニキャストすると仮定する。この場合、いずれかのモータ制御装置２にて異常が発生すると、異常が発生したモータ制御装置２にて通信の遅延が生じ得る。すると、他のモータ制御装置２での指令Ａ０の更新の遅れが生じ、結果として機体８の姿勢制御の応答性、及び機体８の姿勢の安定性の低下が生じ得る。一方、上記の態様によれば、いずれかのモータ制御装置２にて異常が発生した場合でも、他のモータ制御装置２では指令Ａ０を更新して即座に対処することができるので、機体８の姿勢の安定性の低下を抑制しやすい、という利点がある。
【００４５】
その他、本実施形態では、コントローラ３は、複数のモータ１の動作のバランスを診断するバランス診断機能を有している。バランス診断機能では、コントローラ３は、無人飛行機１００の飛行中において、全てのモータ制御装置２から取得した全てのモータ１の計測値Ｂ１，Ｂ２，Ｂ３について比較的長時間観測し、モータ１ごとに大きな違いが発生しているかどうかを診断する。本実施形態では、コントローラ３は、例えば全てのモータ１の計測値Ｂ１，Ｂ２，Ｂ３の単位時間当たりの変化量、平均値、及び分散値などを算出し、これらの算出値に基づいて、複数のモータ１の動作のバランスに異常があるか否かを診断する。
【００４６】
例えば、あるモータ１の計測値Ｂ２（電流値）だけが、全体の平均値（ここでは、６つのモータ１の電流値の平均値）よりも小さく、かつ、最小閾値以上に小さい場合、プロペラ７の欠損が発生している可能性が高い。この場合、コントローラ３は、モータ１に接続されているプロペラ７に異常があると判定する。また、あるモータ１において、計測値Ｂ１（回転数）が所定の回転数に達するまでは計測値Ｂ２が全体の平均値と同じであるが、それ以上の回転数になると計測値Ｂ２が回転数と共に上がらない場合、このモータ１の空転が発生している可能性が高い。この場合、コントローラ３は、モータ１の空転による異常があると判定する。また、あるモータ１の計測値Ｂ２だけが全体の平均値よりも大きく、かつ、最大閾値以上に大きい場合、プロペラ７若しくはモータ１のシャフトの変形、又はモータ１のベアリングの隙間若しくはロータとステータとの隙間への異物の混入が発生している可能性が高い。この場合、コントローラ３は、プロペラ７若しくはモータ１の一部の変形、又は異物の混入による異常があると判定する。さらに、あるモータ１の計測値Ｂ３（温度）が全体の平均値（ここでは、６つのモータ１の温度の平均値）よりも大きく、かつ最大閾値以上に大きい場合、モータ１のマグネットが減磁している可能性が高い。この場合、コントローラ３は、モータ１のマグネットの減磁による異常があると判定する。
【００４７】
なお、搬送物の重量、プロペラ７の形状、飛行高度、又は天候（気圧など）によりモータ１の負荷が変化する無人飛行機１００では、これらの異常の判定は難しい。そこで、コントローラ３は、上記のように計測値Ｂ２，Ｂ３の平均値だけではなく、単位時間当たりの変化量又は分散値などを用いて、複数のモータ１の動作のバランスに異常があるか否かを診断してもよい。また、コントローラ３は、上記のように全体の平均値だけでなく、片側に配置されたモータ１の平均値を用いて、複数のモータ１の動作のバランスに異常があるか否かを診断してもよい。ここでいう「片側に配置されたモータ」は、一例として、図２において機体８の前側に配置されたモータ１３，１４，１５などである。ここでいう「前」は、無人飛行機１００の進行方向における前方である。なお、図２中の前後方向を示す矢印は説明のために表記しているに過ぎず、実体を伴わない。
【００４８】
さらに、コントローラ３は、応答データＭ２１〜Ｍ２６を参照し、いずれかのモータ制御装置２の自己診断結果ＤＥ０に異常がある場合、このモータ制御装置２が異常であると判定する。また、コントローラ３は、前回の応答データＭ２を取得してから所定の時間内に次の応答データＭ２を取得できない場合、この応答データＭ２を出力したモータ制御装置２に異常があると判定する。
【００４９】
ＧＰＳモジュール４１，４２は、いずれも測位システムとしてＧＰＳを用いて、無人飛行機１００の現在の位置情報（例えば、緯度及び経度）を測定するように構成されている。本実施形態では、ＧＰＳモジュール４１，４２の構成は同一であり、したがって、ＧＰＳモジュール４１，４２の測位結果は、特に異常がない限り、同じとなる。ＧＰＳモジュール４１の測位結果は、コントローラ３１に与えられ、ＧＰＳモジュール４２の測位結果は、コントローラ３２に与えられる。
【００５０】
受信機５は、例えば地上に設置されている無線通信機（送信機６）との間で電波を媒体とする無線通信を行うように構成されている。無線通信にて使用する周波数帯域は、一例として、２．４ＧＨｚ帯などの特定小電力無線局（免許を要しない無線局）に準拠する。受信機５は、送信機６から送信される主指令を受信し、受信した主指令をコントローラ３１，３２へ与える。ここでいう「主指令」は、一例として、無人飛行機１００が到達すべき目標位置、及び目標位置への到達時刻などを含み得る。
【００５１】
（３）動作
以下、本実施形態のモータ制御システム１０及び無人飛行機１００の動作について説明する。以下の説明では、全てのモータ制御装置２の制御部２０４は、コントローラ３１から送信される制御データＭ１１を用いて対応するモータ１を制御している、と仮定する。
【００５２】
（３．１）モータ制御装置の動作
まず、モータ制御装置２の動作について、主として図５を用いて説明する。モータ制御装置２は、まず、自己診断部２０３による診断を実行し、自己診断結果ＤＥ０を取得する（Ｓ１０１）。次に、モータ制御装置２は、コントローラ３１，３２から制御データＭ１１，Ｍ１２を取得する（Ｓ１０２）。そして、モータ制御装置２は、診断部２０２にて制御データＭ１１，Ｍ１２を診断し、診断結果ＤＣ０を取得する（Ｓ１０３）。その後、モータ制御装置２の制御部２０４は、応答データＭ２を生成し、生成した応答データＭ２をコントローラ３１，３２に対して送信する（Ｓ１０４）。このとき、モータ制御装置２は、他のモータ制御装置２から送信される他の応答データＭ２を取得する（Ｓ１０５）。
【００５３】
次に、モータ制御装置２の制御部２０４は、ステップＳ１０６〜Ｓ１０９を実行することにより、対応するモータ１を停止させる（Ｓ１１０）、又は対応するモータ１の制御を実行する（Ｓ１１２）。以下では、制御部２０４がステップＳ１０６，Ｓ１０７，Ｓ１０８，Ｓ１０９をこの順に実行すると仮定して説明するが、ステップＳ１０６〜Ｓ１０９の順番は、この順に限定されない。
【００５４】
制御部２０４は、自己が取得した自己診断結果ＤＥ０に異常があれば（Ｓ１０６：Ｙｅｓ）、対応するモータ１を停止させる（Ｓ１１０）。また、制御部２０４は、他の応答データＭ２２〜Ｍ２６を参照し、対応するモータ１と対となるモータ１を制御するモータ制御装置２の自己診断結果ＤＥ０に異常がある場合も（Ｓ１０７：Ｙｅｓ）、対応するモータ１を停止させる（Ｓ１１０）。ここでいう「対となるモータ」は、対応するモータ１と同一のモータ群に属するモータ１である。一例として、モータ制御装置２１に対応するモータ１１と対となるモータ１は、モータ１４である（図２参照）。
【００５５】
制御部２０４は、制御データＭ１１，Ｍ１２を参照し、コントローラ３１の自己診断結果ＤＦ１に異常があれば（Ｓ１０８：Ｙｅｓ）、対応するモータ１の制御に用いる制御データＭ１１を制御データＭ１２に切り替える（Ｓ１１１）。なお、制御部２０４は、コントローラ３２の自己診断結果ＤＦ２に異常がある場合は、制御データＭ１１を継続して用いる。このように、本実施形態では、モータ制御装置２は、複数のコントローラ３の各々の自己診断部３０２による自己診断結果ＤＦ０に基づいて選定される一のコントローラ３からの制御データＭ１を用いて、モータ１を制御する。
【００５６】
また、制御部２０４は、自己が取得した診断結果ＤＣ０、及び他の応答データＭ２２〜Ｍ２６を参照することで、全てのモータ制御装置２の診断結果ＤＣ０を確認する。そして、制御部２０４は、全てのモータ制御装置２の診断結果ＤＣ０のいずれかで制御データＭ１１に異常がある場合も（Ｓ１０９：Ｙｅｓ）、対応するモータ１の制御に用いる制御データＭ１１を制御データＭ１２に切り替える（Ｓ１１１）。なお、制御部２０４は、制御データＭ１２に異常がある場合は、制御データＭ１１を継続して用いる。
【００５７】
（３．２）コントローラの動作
次に、コントローラ３の動作について、主として図６を用いて説明する。コントローラ３は、まず、自己診断部３０２による診断を実行し、自己診断結果ＤＦ０を取得する（Ｓ２０１）。次に、コントローラ３は、センサ３０１の検知結果、及び受信機５の受信した主指令を取得する（Ｓ２０２）。また、コントローラ３は、モータ制御装置２１〜２６から応答データＭ２１〜Ｍ２６を受信することで、応答データＭ２１〜Ｍ２６を取得する（Ｓ２０３）。
【００５８】
次に、コントローラ３は、ステップＳ２０４〜Ｓ２０６、及びステップＳ２０７，Ｓ２０８を実行した後に、後述する停止指令を含めて、モータ制御装置２１〜２６の各々に対する指令Ａ０を生成する（Ｓ２１１）。そして、コントローラ３は、生成した指令Ａ０と、自己診断結果ＤＦ０と、を含めた制御データＭ１をモータ制御装置２１〜２６に対して送信する（Ｓ２１２）。以下では、コントローラ３がステップＳ２０４〜Ｓ２０７（ステップＳ２０８を含む）をこの順に実行すると仮定して説明するが、ステップＳ２０４〜Ｓ２０７の順番は、この順に限定されない。
【００５９】
コントローラ３は、応答データＭ２１〜Ｍ２６を参照し、いずれかのモータ制御装置２の自己診断結果ＤＥ０に異常がある場合（Ｓ２０４：Ｙｅｓ）、モータ制御装置２にモータ１を停止させるための停止指令を生成する（Ｓ２０９）。ここでは、コントローラ３は、異常のあるモータ制御装置２１に対応するモータ１、及びこのモータ１と同一のモータ群のモータ１の各々について、停止指令を生成する。このように、本実施形態では、コントローラ３は、自己診断部２０３の自己診断結果ＤＥ０に基づいて選定されるモータ制御装置２が存在する場合、このモータ制御装置２に対応するモータ１、及びこのモータ１と同一のモータ群のモータ１を停止させる。
【００６０】
ここで、任意のモータ群に属するモータ１に異常があったとして、このモータ１を停止させると仮定する。この場合、このモータ群に属する他のモータ１が動作を継続すると、無人飛行機１００の姿勢のバランスが失われ、飛行を継続することが困難となり得る。つまり、同一のモータ群に属する２以上のモータ１は、１つでも動作が停止すると無人飛行機１００の姿勢のバランスに影響を及ぼし得るモータ１である。そこで、本実施形態では、同一のモータ群に属する全てのモータ１を停止させることで、無人飛行機１００の姿勢のバランスを維持させる。
【００６１】
コントローラ３は、応答データＭ２１〜Ｍ２６を参照し、診断結果ＤＣ１，ＤＣ２の両方について異常（以下、「全異常」ともいう）を判定したモータ制御装置２が１台以上あれば、診断結果ＤＣ０の正否を確認する確認処理を実行する。言い換えれば、複数のコントローラ３の各々は、複数のモータ制御装置２のうち１以上のモータ制御装置２において、診断部２０２により複数のコントローラ３の全ての制御データＭ１が異常と診断された場合、確認処理を実行する。
【００６２】
そして、コントローラ３は、確認処理において、全異常を判定したモータ制御装置２が１台であれば（Ｓ２０５：Ｙｅｓ）、このモータ制御装置２が異常であると判定する。そして、コントローラ３は、異常のあるモータ制御装置２１に対応するモータ１、及びこのモータ１と同一のモータ群のモータ１の各々について、停止指令を生成する（Ｓ２０９）。言い換えれば、複数のコントローラ３の各々は、確認処理として、診断部２０２により異常と判定したモータ制御装置２が１つであれば、当該１つのモータ制御装置２に対応するモータ１、及びこのモータ１と同一のモータ群のモータ１を停止させる。
【００６３】
一方、コントローラ３は、確認処理において、全異常を判定したモータ制御装置２が複数台あれば（Ｓ２０６：Ｙｅｓ）、外部装置が異常であると判定する。言い換えれば、複数のコントローラ３の各々は、確認処理として、診断部２０２により異常と判定したモータ制御装置２が複数であれば、複数のコントローラ３の各々と通信する外部装置が異常であると判定する。ここでいう「外部装置」は、一例として、受信機５及び送信機６である。そして、コントローラ３は、無人飛行機１００の到達すべき目標位置を、主指令に基づく目標位置から、予め指定された指定位置（言い換えれば、避難位置）へ切り替える（Ｓ２１０）。
【００６４】
コントローラ３は、バランス診断機能により、モータ１１〜１６の動作のバランスを診断する（Ｓ２０７）。そして、コントローラ３は、バランス診断にて異常がある場合（Ｓ２０８：Ｙｅｓ）、バランスの異常に寄与するモータ１、及びこのモータ１と同一のモータ群のモータ１の各々について、停止指令を生成する（Ｓ２０９）。
【００６５】
上述のように、本実施形態では、制御部２０４は、複数の制御データＭ１のうち、診断部２０２の診断結果ＤＣ０に基づいて選定される一の制御データＭ１を用いて、対応するモータ１を制御する。例えば、複数のコントローラ３のうちの一のコントローラ３１から送信される制御データＭ１１に異常があると診断部２０２が判定したと仮定する。この場合、制御部２０４は、異常があると診断された制御データＭ１１の送信元のコントローラ３１とは別のコントローラ３２から送信される制御データＭ１２を用いて、対応するモータ１を制御することが可能である。
【００６６】
ここで、例えばコントローラ３に内蔵されたセンサ３０１又はマイクロコントローラなどにおいて、振動又は熱などの外部要因により半導体部品の突発的な異常が発生することで、コントローラ３の動作に不具合が生じる、つまり異常が発生する可能性がある。このような場合でも、本実施形態では、上述のように、通常用いているコントローラ３とは別のコントローラ３から送信される制御データＭ１を用いることができるので、モータ１の制御を継続させやすい、という利点がある。
【００６７】
また、本実施形態では、コントローラ３を追加すればよいので、コントローラ３と比較して高価で重量のあるモータ制御装置２、又は電源ハーネス、切替回路、若しくはパラシュート等を追加する必要がない。このため、本実施形態では、モータ１の制御の継続性を担保しつつ、無人飛行機１００の重量及びコストの増加を抑制しやすい、という利点がある。
【００６８】
（４）変形例
上述の実施形態は、本開示の様々な実施形態の一つに過ぎない。上述の実施形態は、本開示の目的を達成できれば、設計等に応じて種々の変更が可能である。モータ制御システム１０と同様の機能は、モータ制御方法、コンピュータプログラム、又はコンピュータプログラムを記録した非一時的記録媒体等で具現化されてもよい。
【００６９】
一態様に係るモータ制御方法は、制御データＭ１を診断する方法を含む。制御データＭ１は、複数のコントローラ３の各々から送信される、モータ１に対する指令を含む。モータ制御方法は、複数のコントローラ３からの複数の制御データＭ１のうち、診断結果ＤＣ０に基づいて選定される一の制御データＭ１を用いて、モータ１を制御する方法を含む。
【００７０】
以下、上述の実施形態の変形例を列挙する。以下に説明する変形例は、適宜組み合わせて適用可能である。
【００７１】
本開示におけるモータ制御装置２（又はコントローラ３）は、コンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、本開示におけるモータ制御装置２（又はコントローラ３）としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。コンピュータシステムのプロセッサは、半導体集積回路（ＩＣ）又は大規模集積回路（ＬＳＩ）を含む１ないし複数の電子回路で構成される。ここでいうＩＣ又はＬＳＩ等の集積回路は、集積の度合いによって呼び方が異なっており、システムＬＳＩ、ＶＬＳＩ（Very Large Scale Integration）、又はＵＬＳＩ（Ultra Large Scale Integration）と呼ばれる集積回路を含む。更に、ＬＳＩの製造後にプログラムされる、ＦＰＧＡ、又はＬＳＩ内部の接合関係の再構成若しくはＬＳＩ内部の回路区画の再構成が可能な論理デバイスについても、プロセッサとして採用することができる。複数の電子回路は、１つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、１つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。ここでいうコンピュータシステムは、１以上のプロセッサ及び１以上のメモリを有するマイクロコントローラを含む。したがって、マイクロコントローラについても、半導体集積回路又は大規模集積回路を含む１ないし複数の電子回路で構成される。
【００７２】
また、モータ制御装置２（又はコントローラ３）における複数の機能が、１つの筐体内に集約されていることはモータ制御装置２（又はコントローラ３）に必須の構成ではない。つまり、モータ制御装置２（又はコントローラ３）の構成要素は、複数の筐体に分散して設けられていてもよい。更に、モータ制御装置２（又はコントローラ３）の少なくとも一部の機能がクラウド（クラウドコンピューティング）等によって実現されてもよい。
【００７３】
また、複数のモータ制御装置２の各々において、診断部２０２は、自己に対する制御データＭ１に限らず、他のモータ制御装置２に対する制御データＭ１についても診断してもよい。この場合、一例として、制御データＭ１１に異常があると判定したモータ制御装置２が所定の台数（例えば半数以上）存在する場合に、コントローラ３１が異常であると判定してもよい。一方、一例として、１台のモータ制御装置２だけが制御データＭ１１に異常があると判定し、残りのモータ制御装置２が制御データＭ１１に異常がないと判定した場合、制御データＭ１１に異常があると判定したモータ制御装置２に異常がある、と判定してもよい。
【００７４】
また、通常用いている制御データＭ１１ではなく、コントローラ３２から送信される制御データＭ１２が異常であると判定された場合、コントローラ３１は、上位システムへコントローラ３２に異常が発生した旨を通知してもよい。ここでいう「上位システム」は、一例として、無人飛行機１００を用いたサービスを提供する事業者が運営する管理システムである。
【００７５】
また、無人飛行機１００は、３台以上のコントローラ３を備えていてもよい。この場合、全てのコントローラ３から制御データＭ１を送信してもよいし、上述の実施形態と同様に３台以上のコントローラ３のうちの２台のコントローラ３から制御データＭ１を送信してもよい。後者の場合、２台のコントローラ３が上述の実施形態でいう「複数のコントローラ」に相当し、残りのコントローラ３が「未使用のコントローラ（別のコントローラ）」に相当する。
【００７６】
そして、２台のコントローラ３のうちの１台のコントローラ３が送信する制御データＭ１が異常と診断されると、残り１台のコントローラ３と、未使用のコントローラ３のうちの１台のコントローラ３とから制御データＭ１を送信すればよい。言い換えれば、モータ制御装置２は、複数の制御データＭ１のうちいずれか１つの制御データＭ１が診断部２０２にて異常があると診断された場合、複数のコントローラ３とは別のコントローラ３からの制御データＭ１を取得すればよい。
【００７７】
また、複数のコントローラ３は、各々が独立したパッケージであってもよいし、１つのパッケージに収容されていてもよい。例えば、２台のコントローラ３は、１つのデュアルコアのプロセッサを有するパッケージで実現されてもよい。この場合、２つのコアがそれぞれ２つのコントローラ３に対応することになる。
【００７８】
また、無人飛行機１００は、複数のコントローラ３の代わりに、１台のコントローラ３のみを備えていてもよい。この態様では、複数のモータ制御装置２の各々は、複数のコントローラ３から送信される制御データＭ１から一の制御データＭ１を選定することはできない。一方、この態様でも、コントローラ３は、自己診断部２０３の自己診断結果ＤＦ０に基づいて選定されるモータ制御装置２が存在する場合、このモータ制御装置２に対応するモータ１、及びこのモータ１と同一のモータ群のモータ１を停止させることは可能である。
【００７９】
また、モータ制御システム１０を用いる対象としては、無人飛行機１００に限定されず、例えば電気自動車などの移動体であってもよい。つまり、移動体（一例として、電気自動車）は、モータ制御システム１０と、モータ１が駆動されることにより移動する移動機構（一例として、車輪及びタイヤ）と、を備えていてもよい。
【００８０】
（まとめ）
以上述べたように、第１の態様に係るモータ制御システム（１０）は、モータ（１）と、モータ（１）に対応するモータ制御装置（２）と、を備える。モータ制御装置（２）は、取得部（２０１）と、診断部（２０２）と、制御部（２０４）と、を有する。取得部（２０１）は、制御データ（Ｍ１）を取得する。制御データ（Ｍ１）は、モータ制御装置（２）と通信可能である複数のコントローラ（３）の各々から送信される、モータ（１）に対する指令（Ａ０）を含む。診断部（２０２）は、取得部（２０１）で取得した複数のコントローラ（３）からの複数の制御データ（Ｍ１）を診断する。制御部（２０４）は、複数の制御データ（Ｍ１）のうち、診断部（２０２）の診断結果（ＤＣ０）に基づいて選定される一の制御データ（Ｍ１）を用いて、モータ（１）を制御する。
【００８１】
この態様によれば、モータ（１）の制御を継続させやすい、という利点がある。
【００８２】
第２の態様に係るモータ制御システム（１０）では、第１の態様において、モータ制御装置（２）は、他のモータ制御装置（２）の診断部（２０２）による診断結果（ＤＣ０）を取得する。
【００８３】
この態様によれば、他のモータ制御装置（２）での診断結果（ＤＣ０）に基づいて、全てのモータ制御装置（２）で同じ一の制御データ（Ｍ１）を用いるので、各モータ制御装置（２）の動作を統一させやすい、という利点がある。
【００８４】
第３の態様に係るモータ制御システム（１０）では、第１又は第２の態様において、モータ制御装置（２）は、診断部（２０２）による診断結果（ＤＣ０）を発信する機能を有する。
【００８５】
この態様によれば、例えばコントローラ（３）に診断結果（ＤＣ０）を発信することにより、コントローラ（３）で診断結果（ＤＣ０）を共有することができる、という利点がある。
【００８６】
第４の態様に係るモータ制御システム（１０）では、第１〜第３のいずれかの態様において、複数のコントローラ（３）の各々は、複数のセンサ（３０１）のうち、対応するセンサ（３０１）の検知結果を用いて制御データ（Ｍ１）を生成する。複数のセンサ（３０１）は、複数のコントローラ（３）にそれぞれ対応する。
【００８７】
この態様によれば、いずれかのセンサ（３０１）に異常がある場合にも、正常なセンサ（３０１）を用いるコントローラ（３）からの制御データ（Ｍ１）を用いることで、モータ（１）の制御を継続させやすい、という利点がある。
【００８８】
第５の態様に係るモータ制御システム（１０）では、第１〜第４のいずれかの態様において、複数のコントローラ（３）の各々は、自己を診断する自己診断部（３０２）を有している。複数の制御データ（Ｍ１）の各々は、対応するコントローラ（３）の自己診断部（３０２）による自己診断結果（ＤＦ０）を更に含む。
【００８９】
この態様によれば、複数のコントローラ（３）の各々が制御データ（Ｍ１）とは別に自己診断部（３０２）による自己診断結果（ＤＦ０）を送信する場合と比較して、モータ制御装置（２）との通信に要する時間の短縮を図りやすい、という利点がある。
【００９０】
第６の態様に係るモータ制御システム（１０）では、第１〜第５のいずれかの態様において、モータ（１）及びモータ制御装置（２）は、それぞれ複数である。複数のモータ制御装置（２）の各々は、複数のモータ（１）のうちの対応するモータ（１）を制御する。
【００９１】
この態様によれば、複数のモータ（１）のうちの少なくとも１以上のモータ（１）の制御を継続させやすい、という利点がある。
【００９２】
第７の態様に係るモータ制御システム（１０）では、第６の態様において、複数のコントローラ（３）の各々は、複数のモータ制御装置（２）に対して、制御データ（Ｍ１）をブロードキャストする。
【００９３】
この態様によれば、複数のモータ制御装置（２）ごとに制御データ（Ｍ１）をユニキャストする場合と比較して、複数のモータ制御装置（２）との通信に要する時間の短縮を図りやすい、という利点がある。
【００９４】
第８の態様に係るモータ制御システム（１０）では、第１〜第７のいずれかの態様において、複数のコントローラ（３）の各々は、自己を診断する自己診断部（３０２）を有している。モータ制御装置（２）は、複数のコントローラ（３）の各々の自己診断部（３０２）による自己診断結果（ＤＦ０）に基づいて選定される一のコントローラ（３）からの制御データ（Ｍ１）を用いて、対応するモータ（１）を制御する。
【００９５】
この態様によれば、例えば複数のコントローラ（３）のうちの一のコントローラ（３）に異常がある場合、別のコントローラ（３）からの制御データ（Ｍ１）を用いることで、モータ（１）の制御を継続させやすい、という利点がある。
【００９６】
第９の態様に係るモータ制御システム（１０）では、第１〜第８のいずれかの態様において、モータ制御装置（２）は、以下の処理を実行する。すなわち、モータ制御装置（２）は、複数の制御データ（Ｍ１）のうちいずれか１つの制御データ（Ｍ１）が診断部（２０２）にて異常があると診断された場合、複数のコントローラ（３）とは別のコントローラ（３）からの制御データ（Ｍ１）を取得する。
【００９７】
この態様によれば、例えば３台以上のコントローラ（３）のうちの２台のコントローラ（３）を複数のコントローラ（３）として使用していた場合に、以下のような利点がある。すなわち、２台のコントローラ（３）のうちの１台のコントローラ（３）が使用できなくなっても、これら２台のコントローラ（３）とは別のコントローラ（３）を複数のコントローラ（３）として補填することができる、という利点がある。
【００９８】
第１０の態様に係る無人飛行機（１００）は、複数のモータ（１）と、複数のモータ制御装置（２）と、コントローラ（３）と、を備える。複数のモータ（１）は、それぞれ複数のプロペラ（７）を回転させる。複数のモータ制御装置（２）は、複数のモータ（１）をそれぞれ制御する。コントローラ（３）は、複数のモータ制御装置（２）と通信可能であって、複数のモータ（１）の各々に対する指令（Ａ０）を含む制御データ（Ｍ１）を、複数のモータ（１）に対して送信する。複数のモータ（１）は、２以上のモータ（１）を１つのモータ群とする複数のモータ群に区分される。複数のモータ制御装置（２）の各々は、自己を診断する自己診断部（２０３）を有している。コントローラ（３）は、自己診断部（２０３）の自己診断結果（ＤＥ０）に基づいて選定されるモータ制御装置（２）が存在する場合、このモータ制御装置（２）に対応するモータ（１）、及びこのモータ（１）と同一のモータ群のモータ（１）を停止させる。
【００９９】
この態様によれば、例えば複数のモータ制御装置（２）のうちの一のモータ制御装置（２）に異常があった場合、このモータ制御装置（２）の異常の影響を受けるモータ（１）を停止させる。したがって、この態様によれば、モータ（１）の制御（言い換えれば、無人飛行機（１００）の飛行制御）を継続させやすい、という利点がある。
【０１００】
第１１の態様に係る無人飛行機（１００）では、第１０の態様において、コントローラ（３）は複数である。複数のモータ制御装置（２）の各々は、複数のコントローラ（３）からの複数の制御データ（Ｍ１）を診断する診断部（２０２）を有している。複数のコントローラ（３）の各々は、複数のモータ制御装置（２）のうち１以上のモータ制御装置（２）において、診断部（２０２）により複数のコントローラ（３）の全ての制御データ（Ｍ１）が異常と診断された場合、確認処理を実行する。確認処理は、診断結果（ＤＣ０）の正否を確認する処理である。
【０１０１】
この態様によれば、複数のコントローラ（３）の全ての制御データ（Ｍ１）が異常と診断された場合でも、複数のコントローラ（３）及び１以上のモータ制御装置（２）のいずれが正しいかを確認する。したがって、この態様によれば、モータ（１）の制御（言い換えれば、無人飛行機（１００）の飛行制御）を継続させやすい、という利点がある。
【０１０２】
第１２の態様に係る無人飛行機（１００）では、第１１の態様において、複数のコントローラ（３）の各々は、確認処理として、診断部（２０２）により異常と判定したモータ制御装置（２）が１つであれば、以下の処理を実行する。すなわち、複数のコントローラ（３）の各々は、当該１つのモータ制御装置（２）に対応するモータ（１）、及びこのモータ（１）と同一のモータ群のモータ（１）を停止させる。
【０１０３】
この態様によれば、診断を行ったモータ制御装置（２）に異常があると判断して、このモータ制御装置（２）の異常の影響を受けるモータ（１）を停止させることができる。したがって、この態様によれば、モータ（１）の制御（言い換えれば、無人飛行機（１００）の飛行制御）を継続させやすい、という利点がある。
【０１０４】
第１３の態様に係る無人飛行機（１００）では、第１１の態様において、複数のコントローラ（３）の各々は、確認処理として、診断部（２０２）により異常と判定したモータ制御装置（２）が複数であれば、以下の処理を実行する。すなわち、複数のコントローラ（３）の各々は、複数のコントローラ（３）の各々と通信する外部装置（受信機（５）又は送信機（６））が異常であると判定する。
【０１０５】
この態様によれば、外部装置に異常があると判定することで、例えば外部装置からの指令（Ａ０）に依らず、適切な位置まで無人飛行機（１００）を飛行させやすい、という利点がある。
【０１０６】
第１４の態様に係る移動体（一例として、電気自動車）は、第１〜第８のいずれか１項に記載のモータ制御システム（１０）と、モータ（１）が駆動されることにより移動する移動機構（一例として、車輪及びタイヤ）と、を備える。
【０１０７】
この態様によれば、モータ（１）の制御（言い換えれば、移動体の移動制御）を継続させやすい、という利点がある。
【０１０８】
第１５の態様に係るモータ制御方法は、制御データ（Ｍ１）を診断する方法を含む。制御データ（Ｍ１）は、複数のコントローラ（３）の各々から送信される、モータ（１）に対する指令（Ａ０）を含む。モータ制御方法は、複数のコントローラ（３）からの複数の制御データ（Ｍ１）のうち、診断結果（ＤＣ０）に基づいて選定される一の制御データ（Ｍ１）を用いて、モータ（１）を制御する方法を含む。
【０１０９】
この態様によれば、モータ（１）の制御を継続させやすい、という利点がある。
【０１１０】
第２〜第９の態様に係る構成については、モータ制御システム（１０）に必須の構成ではなく、適宜省略可能である。また、第１１〜第１３の態様に係る構成については、無人飛行機（１００）に必須の構成ではなく、適宜省略可能である。
【符号の説明】
【０１１１】
１，１１〜１６  モータ
２，２１〜２６  モータ制御装置
２０１  取得部
２０２  診断部
２０３  自己診断部
２０４  制御部
３，３１，３２  コントローラ
３０１  センサ
３０２  自己診断部
５  受信機（外部装置）
６  送信機（外部装置）
７  プロペラ
１０  モータ制御システム
１００  無人飛行機
Ａ０，Ａｍ１，…，Ａｍｎ  指令
ＤＣ０，ＤＣ１，…，ＤＣｍ  診断結果
ＤＥ０，ＤＥｎ  自己診断結果
ＤＦ０，ＤＦｍ  自己診断結果
Ｍ１，Ｍ１１，Ｍ１２  制御データ
【図１】
2020105337.tif 000003
【図２】
2020105337.tif 000004
【図３】
2020105337.tif 000005
【図４】
2020105337.tif 000006
【図５】
2020105337.tif 000007
【図６】
2020105337.tif 000008
【国際調査報告】
2020105337.tif 000009
2020105337.tif 000010
2020105337.tif 000011
2020105337.tif 000012