(57)【要約】【課題】本発明は、第１プロセッサと、第２プロセッサと、高速キャッシュと、共有メモリ領域とを備える、運動制御とモータ制御を集積するコントローラを提供する。【解決手段】前記第１プロセッサは、オペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置される。前記第２プロセッサは、少なくともモータ制御を執行するとともに、通常の状態においてオペレーティングシステムを実行しないように配置される。前記高速キャッシュは、前記第１プロセッサと前記第２プロセッサに結合する。前記第１プロセッサと前記第２プロセッサは、共有メモリを共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において前記高速キャッシュを通じてデータの交互転送を行う。前記第１プロセッサ、第２プロセッサと前記高速キャッシュは、同一のチップの中に集積される。【選択図】図１
2019192200.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサと、第２プロセッサと、高速キャッシュと、共有メモリ領域とを備え、
前記第１プロセッサは、オペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置され、
前記運動制御は制御対象の各運動対偶の時刻ごとの設定値を計算することを含み、
前記第２プロセッサは、少なくともモータ制御を執行するとともに、通常の状態においてオペレーティングシステムを実行しないように配置され、
前記モータ制御は、前記設定値に従って各モータの回転を制御することを含み、さらに少なくともモータ電流ループ制御、モータ速度ループ制御、位置ループ制御の中の任意の一つ又は幾つかの組み合わせを含み、
前記高速キャッシュは、前記第１プロセッサと前記第２プロセッサに結合し、
前記共有メモリ領域は、前記オペレーティングシステムによって指定された、固定アドレスの専用メモリ空間であり、かつ前記共有メモリ領域はキャッシュ可能であり、
前記共有メモリ領域は、前記高速キャッシュに写像し、
前記第１プロセッサと前記第２プロセッサは、共有メモリを共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において前記高速キャッシュを通じてデータの交互転送を行い、
前記第１プロセッサ、前記第２プロセッサ、及び前記高速キャッシュは、同一のチップの中に集積される、
ことを特徴とする運動制御とモータ制御を集積するコントローラ。
【請求項２】
請求項１に記載のコントローラにおいて、
運動制御とモータ制御を執行する前に、前記コントローラは、
対称型マルチウェープロセッシング方式で第１プロセッサと第２プロセッサを起動させ、
前記第１プロセッサと第２プロセッサで前記オペレーティングシステムを実行し、
前記第２プロセッサの電源を落として前記第１プロセッサ単独で前記オペレーティングシステムを実行し、
前記第２プロセッサを新たに配置してから再び前記第２プロセッサを起動させ、
前記第２プロセッサは、通常の状態においてオペレーティングシステムを実行しないようにする、
ことを特徴とするコントローラ。
【請求項３】
請求項１に記載のコントローラにおいて、
前記第１プロセッサは、運動制御データを前記高速キャッシュに書き込むように配置され、
前記第２プロセッサは、前記高速キャッシュから前記運動制御データを読み取るように配置され、
前記運動制御データは、前記各運動対偶又は前記各モータの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む、
ことを特徴とするコントローラ。
【請求項４】
請求項１に記載のコントローラにおいて、
前記第２プロセッサは、フィードバックデータを前記高速キャッシュに書き込むように配置され、
前記第１プロセッサは、前記高速キャッシュから前記フィードバックデータを読み取るように配置され、
前記フィードバックデータは前記各運動対偶又は前記各モータからの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む、
ことを特徴とするコントローラ。
【請求項５】
請求項２に記載のコントローラにおいて、
前記第１プロセッサは、運動制御データを前記高速キャッシュに書き込むように配置され、
前記第２プロセッサは、前記高速キャッシュから前記運動制御データを読み取るように配置され、
前記運動制御データは、前記各運動対偶又は前記各モータの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む、
ことを特徴とするコントローラ。
【請求項６】
請求項２に記載のコントローラにおいて、
前記第２プロセッサは、フィードバックデータを前記高速キャッシュに書き込むように配置され、
前記第１プロセッサは、前記高速キャッシュから前記フィードバックデータを読み取るように配置され、
前記フィードバックデータは、前記各運動対偶又は前記各モータからの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む、
ことを特徴とするコントローラ。
【請求項７】
第１プロセッサと、第２プロセッサと、高速キャッシュと、共有メモリ領域と、プログラマブルロジックデバイスとを備え、
前記第１プロセッサは、オペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置され、
前記運動制御は、制御対象の各運動対偶の時刻ごとの設定値を計算することを含み、
前記第２プロセッサは、少なくともモータ制御を執行するとともに、通常の状態においてオペレーティングシステムを実行しないように配置され、
前記モータ制御は、前記設定値に従って各モータの回転を制御することを含み、さらに少なくともモータ電流ループ制御、モータ速度ループ制御、位置ループ制御の中の任意の一つ又は幾つかの組み合わせを含み、
前記高速キャッシュは、前記第１プロセッサと前記第２プロセッサに結合し、
前記共有メモリ領域は、前記オペレーティングシステムによって指定された、固定アドレスの専用メモリ空間であり、かつ前記共有メモリ領域は、キャッシュ可能であり、
前記プログラマブルロジックデバイスは、前記第２プロセッサに結合し、前記第２プロセッサと協働してモータ制御を執行するように配置され、
前記共有メモリ領域は、前記高速キャッシュに写像し、
前記第１プロセッサと前記第２プロセッサは、共有メモリを共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において前記高速キャッシュを通じてデータの交互転送を行い、
前記第１プロセッサ、前記第２プロセッサ、及び前記高速キャッシュは、同一のチップの中に集積される、
ことを特徴とする運動制御とモータ制御を集積するコントローラ。
【請求項８】
請求項７に記載のコントローラにおいて、
前記第１プロセッサは、運動制御データを前記高速キャッシュに書き込むように配置され、
前記第２プロセッサは、前記高速キャッシュから前記運動制御データを読み取るように配置され、
前記運動制御データは、前記各運動対偶又は前記各モータの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む、
ことを特徴とするコントローラ。
【請求項９】
請求項８に記載のコントローラにおいて、
前記第２プロセッサは、フィードバックデータを前記高速キャッシュに書き込むように配置され、
前記第１プロセッサは、前記高速キャッシュから前記フィードバックデータを読み取るように配置され、
前記フィードバックデータは、前記各運動対偶又は前記各モータからの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む、
ことを特徴とするコントローラ。
【請求項１０】
請求項８に記載のコントローラにおいて、
前記プログラマブルロジックデバイスと前記第２プロセッサのクロックは、同期されており、
前記第２プロセッサが前記プログラマブルロジックデバイスからデータを読み取るとき又は前記プログラマブルロジックデバイスにデータを書き込むときには、前記プログラマブルロジックデバイスは、読み取られている又は書き込まれているデータをラッチする、
ことを特徴とするコントローラ。
【請求項１１】
請求項９に記載のコントローラにおいて、
前記プログラマブルロジックデバイスと前記第２プロセッサのクロックは、同期されており、
前記第２プロセッサが前記プログラマブルロジックデバイスからデータを読み取るとき又は前記プログラマブルロジックデバイスにデータを書き込むときには、前記プログラマブルロジックデバイスは、読み取られている又は書き込まれているデータをラッチする、
ことを特徴とするコントローラ。
【請求項１２】
請求項７に記載のコントローラにおいて、
運動制御とモータ制御を執行する前に、前記コントローラは、
対称型マルチウェープロセッシング方式で第１プロセッサと第２プロセッサを起動させ、
前記第１プロセッサと第２プロセッサで前記オペレーティングシステムを実行し、
前記第２プロセッサの電源を落として前記第１プロセッサ単独で前記オペレーティングシステムを実行し、
前記第２プロセッサを新たに配置してから再び前記第２プロセッサを起動させ、
前記第２プロセッサは、通常の状態においてオペレーティングシステムを実行しないようにする、
ことを特徴とするコントローラ。
【請求項１３】
第１プロセッサと、第２プロセッサと、高速キャッシュと、共有メモリ領域と、プログラマブルロジックデバイスとを備え、
前記第１プロセッサは、オペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置され、
前記運動制御は、制御対象の各運動対偶の時刻ごとの設定値を計算することを含み、
前記第２プロセッサは、少なくともモータ制御を執行するとともに、通常の状態においてオペレーティングシステムを実行しないように配置され、
前記モータ制御は、前記設定値に従って各モータの回転を制御することを含み、さらに少なくともモータ電流ループ制御、モータ速度ループ制御、位置ループ制御の中の任意の一つ又は幾つかの組み合わせを含み、
前記高速キャッシュは、前記第１プロセッサと前記第２プロセッサに結合し、
前記共有メモリ領域は、前記オペレーティングシステムによって指定された、固定アドレスの専用メモリ空間であり、かつ前記共有メモリ領域は、キャッシュ可能であり、
前記プログラマブルロジックデバイスは、前記第２プロセッサに結合し、前記第２プロセッサと協働してモータ制御を執行するように配置され、
前記共有メモリ領域は、前記高速キャッシュに写像し、
前記第１プロセッサと前記第２プロセッサは共有メモリを共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において前記高速キャッシュを通じてデータの交互転送を行い、
前記第１プロセッサ、前記第２プロセッサ、及び前記高速キャッシュと前記プログラマブルロジックデバイスは、同一のチップの中に集積される、
ことを特徴とする運動制御とモータ制御を集積するコントローラ。
【請求項１４】
請求項１３に記載のコントローラにおいて、
前記第１プロセッサは、運動制御データを前記高速キャッシュに書き込むように配置され、
前記第２プロセッサは、前記高速キャッシュから前記運動制御データを読み取るように配置され、
前記運動制御データは、前記各運動対偶又は前記各モータの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む、
ことを特徴とするコントローラ。
【請求項１５】
請求項１４に記載のコントローラにおいて、
前記第２プロセッサは、フィードバックデータを前記高速キャッシュに書き込むように配置され、
前記第１プロセッサは、前記高速キャッシュから前記フィードバックデータを読み取るように配置され、
前記フィードバックデータは、前記各運動対偶又は前記各モータからの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む、
ことを特徴とするコントローラ。
【請求項１６】
請求項１４に記載のコントローラにおいて、
前記プログラマブルロジックデバイスと前記第２プロセッサのクロックは、同期されており、
前記第２プロセッサが前記プログラマブルロジックデバイスからデータを読み取るとき又は前記プログラマブルロジックデバイスにデータを書き込むときには、前記プログラマブルロジックデバイスは、読み取られている又は書き込まれているデータをラッチする、
ことを特徴とするコントローラ。
【請求項１７】
請求項１５に記載のコントローラにおいて、
前記プログラマブルロジックデバイスと前記第２プロセッサのクロックは、同期されており、
前記第２プロセッサが前記プログラマブルロジックデバイスからデータを読み取るとき又は前記プログラマブルロジックデバイスにデータを書き込むときには、前記プログラマブルロジックデバイスは、読み取られている又は書き込まれているデータをラッチする、
ことを特徴とするコントローラ。
【請求項１８】
請求項１３に記載のコントローラにおいて、
運動制御とモータ制御を執行する前に、前記コントローラは、
対称型マルチウェープロセッシング方式で第１プロセッサと第２プロセッサを起動させ、
前記第１プロセッサと第２プロセッサで前記オペレーティングシステムを実行し、
前記第２プロセッサの電源を落として前記第１プロセッサ単独で前記オペレーティングシステムを実行し、
前記第２プロセッサを新たに配置してから再び前記第２プロセッサを起動させ、
前記第２プロセッサは、通常の状態においてオペレーティングシステムを実行しないようにする、
ことを特徴とするコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラに関し、特に、運動制御とモータ制御を集積するコントローラと制御システムに関するものである。
【背景技術】
【０００２】
運動制御とモータ制御は、工業自動化分野のコア技術である。運動制御を実現する運動コントローラとモータ制御を実現するモータコントローラは、目下の自動化分野においてよく見かける、複雑な仕事を自動的に執行する装置における二つの要の制御部材である。無人航空機のような他の分野においても、運動制御とモータ制御を含むコントローラが使用されている。
【０００３】
伝統的に、大多数の工業自動化システム（例えばロボット、大型工作マシン）は分散制御方式を採用している。分散制御方式は、具体的に、一つの運動コントローラが複数のモータコントローラと連携するものである。運動コントローラとモータコントローラとの間、モータコントローラとモータコントローラとの間は、バス（例えばフィールドバス）により通信が行われている。
【０００４】
この分散式制御方式は、周知のデメリットが沢山ある。例えば、ハードウェア部品が多いため、ハードウェアコストが高く、占めるスペースが大きい。また、例えば、バス通信方式は、妨害を受けやすく、かつデータの転送量と転送スピードにおいてボトルネックが存在する。
【０００５】
そのために、業界では“駆動制御一体化”の発想が提案され、運動コントローラとモータコントローラ等の機能を一体に集積する工業コントローラの実現が期待されている。しかし、既知の“駆動制御一体化”の工業コントローラは、通常、運動コントローラとモータコントローラが簡単に実体において集められているだけであり、両者の連携方式においては、改善が限られている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする技術問題は、運動制御とモータ制御を集積するコントローラを提供することにより、運動制御部分とモータ制御部分の交互転送スピードを信頼可能で安定的に高めることにある。
【課題を解決するための手段】
【０００７】
上述した技術問題を解決するために、本発明は、第１プロセッサ、第２プロセッサ、高速キャッシュ及び共有メモリ領域を備える、運動制御とモータ制御を集積するコントローラを提供する。第１プロセッサは、オペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置され、前記運動制御は制御対象の各運動対偶の時刻ごとの設定値を計算することを含む。第２プロセッサは少なくともモータ制御を執行するとともに、通常の状態においてはオペレーティングシステムを実行しないように配置され、前記モータ制御は前記設定値に従って各モータの回転を制御することを含み、さらに少なくともモータ電流ループ制御、モータ速度ループ制御、位置ループ制御の中の任意の一つ又は幾つかの組み合わせを含む。前記高速キャッシュは前記第１プロセッサと前記第２プロセッサに結合する。前記共有メモリ領域は、前記オペレーティングシステムによって指定された、固定アドレスの専用メモリ空間であり、かつ前記共有メモリ領域はキャッシュ可能である。そのうち、前記共有メモリ領域は前記高速キャッシュに写像し、前記第１プロセッサと前記第２プロセッサは共有メモリを共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において前記高速キャッシュを通じてデータの交互転送を行う。前記第１プロセッサ、第２プロセッサと前記高速キャッシュは同一のチップの中に集積される。
【０００８】
本発明の一つの実施形態においては、運動制御とモータ制御を執行する前に、前記コントローラは以下のように配置され、すなわち、対称型マルチウェープロセッシング方式で第１プロセッサと第２プロセッサを起動させ、前記第１プロセッサと第２プロセッサで前記オペレーティングシステムを実行し、前記第２プロセッサの電源を落として前記第１プロセッサ単独で前記オペレーティングシステムを実行し、前記第２プロセッサを新たに配置してから再び前記第２プロセッサを起動させ、前記第２プロセッサは通常の状態においてはオペレーティングシステムを実行しないようにする。
【０００９】
本発明の一つの実施形態においては、前記第１プロセッサは、運動制御データを前記高速キャッシュに書き込むように配置され、前記第２プロセッサは前記高速キャッシュから前記運動制御データを読み取るように配置され、前記運動制御データは前記各運動対偶又は前記各モータの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む。
【００１０】
本発明の一つの実施形態においては、前記第２プロセッサはフィードバックデータを前記高速キャッシュに書き込むように配置され、前記第１プロセッサは前記高速キャッシュから前記フィードバックデータを読み取るように配置され、前記フィードバックデータは前記各運動対偶又は前記各モータからの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む。
【００１１】
本発明は、第１プロセッサ、第２プロセッサ、高速キャッシュ、共有メモリ領域とプログラマブルロジックデバイスを備える、運動制御とモータ制御を集積するコントローラを更に提供する。第１プロセッサはオペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置され、前記運動制御は制御対象の各運動対偶の時刻ごとの設定値を計算することを含む。第２プロセッサは少なくともモータ制御を執行するとともに、通常の状態においてはオペレーティングシステムを実行しないように配置され、前記モータ制御は前記設定値に従って各モータの回転を制御することを含み、さらに少なくともモータ電流ループ制御、モータ速度ループ制御、位置ループ制御の中の任意の一つ又は幾つかの組み合わせを含む。前記高速キャッシュは前記第１プロセッサと前記第２プロセッサに結合する。前記共有メモリ領域は、前記オペレーティングシステムによって指定された、固定アドレスの専用メモリ空間であり、かつ前記共有メモリ領域はキャッシュ可能である。前記プログラマブルロジックデバイスは前記第２プロセッサに結合し、前記第２プロセッサと協働してモータ制御を執行するように配置される。そのうち、前記共有メモリ領域は前記高速キャッシュに写像し、前記第１プロセッサと前記第２プロセッサは共有メモリを共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において前記高速キャッシュを通じてデータの交互転送を行う。前記第１プロセッサ、第２プロセッサと前記高速キャッシュは同一のチップの中に集積される。
【００１２】
本発明の一つの実施形態においては、前記第１プロセッサは運動制御データを前記高速キャッシュに書き込むように配置され、前記第２プロセッサは前記高速キャッシュから前記運動制御データを読み取るように配置され、前記運動制御データは前記各運動対偶又は前記各モータの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む。
【００１３】
本発明の一つの実施形態においては、前記第２プロセッサはフィードバックデータを前記高速キャッシュに書き込むように配置され、前記第１プロセッサは前記高速キャッシュから前記フィードバックデータを読み取るように配置され、前記フィードバックデータは前記各運動対偶又は前記各モータからの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む。
【００１４】
本発明の一つの実施形態においては、前記プログラマブルロジックデバイスと前記第２プロセッサのクロックは同期されており、かつ前記第２プロセッサが前記プログラマブルロジックデバイスからデータを読み取る時又は前記プログラマブルロジックデバイスにデータを書き込む時には、前記プログラマブルロジックデバイスは読み取られている又は書き込まれているデータをラッチする。
【００１５】
本発明の一つの実施形態においては、運動制御とモータ制御を執行する前に、前記コントローラは以下のように配置される。すなわち、対称型マルチウェープロセッシング方式で第１プロセッサと第２プロセッサを起動させ、前記第１プロセッサと第２プロセッサで前記オペレーティングシステムを実行し、前記第２プロセッサの電源を落として前記第１プロセッサ単独で前記オペレーティングシステムを実行し、前記第２プロセッサを新たに配置してから再び前記第２プロセッサを起動させ、前記第２プロセッサは通常の状態においてはオペレーティングシステムを実行しないようにする。
【００１６】
本発明は、第１プロセッサ、第２プロセッサ、高速キャッシュ、共有メモリ領域とプログラマブルロジックデバイスを備える、運動制御とモータ制御を集積するコントローラを更に提供する。第１プロセッサはオペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置され、前記運動制御は制御対象の各運動対偶の時刻ごとの設定値を計算することを含む。第２プロセッサは少なくともモータ制御を執行するとともに、通常の状態においてはオペレーティングシステムを実行しないように配置され、前記モータ制御は前記設定値に従って各モータの回転を制御することを含み、さらに少なくともモータ電流ループ制御、モータ速度ループ制御、位置ループ制御の中の任意の一つ又は幾つかの組み合わせを含む。前記高速キャッシュは前記第１プロセッサと前記第２プロセッサに結合する。前記共有メモリ領域は、前記オペレーティングシステムによって指定された、固定アドレスの専用メモリ空間であり、かつ前記共有メモリ領域はキャッシュ可能である。前記プログラマブルロジックデバイスは前記第２プロセッサに結合し、前記第２プロセッサと協働してモータ制御を執行するように配置される。そのうち、前記共有メモリ領域は前記高速キャッシュに写像し、前記第１プロセッサと前記第２プロセッサは共有メモリを共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において前記高速キャッシュを通じてデータの交互転送を行う。前記第１プロセッサ、第２プロセッサ、前記高速キャッシュと前記プログラマブルロジックデバイスは同一のチップの中に集積される。
【００１７】
本発明の一つの実施形態においては、前記第１プロセッサは運動制御データを前記高速キャッシュに書き込むように配置され、前記第２プロセッサは前記高速キャッシュから前記運動制御データを読み取るように配置され、前記運動制御データは前記各運動対偶又は前記各モータの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む。
【００１８】
本発明の一つの実施形態においては、前記第２プロセッサはフィードバックデータを前記高速キャッシュに書き込むように配置され、前記第１プロセッサは前記高速キャッシュから前記フィードバックデータを読み取るように配置され、前記フィードバックデータは前記各運動対偶又は前記各モータからの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含む。
【００１９】
本発明の一つの実施形態においては、前記プログラマブルロジックデバイスと前記第２プロセッサのクロックは同期されており、かつ前記第２プロセッサが前記プログラマブルロジックデバイスからデータを読み取る時又は前記プログラマブルロジックデバイスにデータを書き込む時には、前記プログラマブルロジックデバイスは読み取られている又は書き込まれているデータをラッチする。
【００２０】
本発明の一つの実施形態においては、運動制御とモータ制御を執行する前に、前記コントローラは以下のように配置され、すなわち、対称型マルチウェープロセッシング方式で第１プロセッサと第２プロセッサを起動させ、前記第１プロセッサと第２プロセッサで前記オペレーティングシステムを実行し、前記第２プロセッサの電源を落として前記第１プロセッサ単独で前記オペレーティングシステムを実行し、前記第２プロセッサを新たに配置してから再び前記第２プロセッサを起動させ、前記第２プロセッサは通常の状態においてはオペレーティングシステムを実行しないようにする。
【発明の効果】
【００２１】
従来技術に比べ、本発明のコントローラは共有する高速キャッシュと特殊のシステム配置によって、非常に高いリアルタイム性能を保証することができる。また、シングルチップ駆動制御一体化システムの使用により、データの転送はすべてチップ内部で行われ、外部からの妨害を受けにくく、データが正確で信頼できるように転送することを保証する。さらに、駆動制御一体化システムは単結晶SOCチップに必要な周辺回路を加えることによって実現することができ、ハードウェアの体積を小さくすることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一つの実施形態によるコントローラのブロック図である。
【図２】本発明の第１の実施形態によるコントローラの回路図である。
【図３】本発明の第１の実施形態によるコントローラの例示実行プロセスである。
【図４】本発明の第２の実施形態によるコントローラの回路図である。
【図５】本発明の第２の実施形態によるコントローラの例示実行プロセスである。
【図６】本発明の第３の実施形態によるコントローラの回路図である。
【図７】本発明の一つの実施形態による集積されたコントローラにおける運動制御とモータ制御を実行する方法のフローチャート図である。
【図８】本発明の一つの実施形態による第１プロセッサと第２プロセッサがコンピュータコードをロードする模式図である。
【図９】本発明の一つの実施形態によるプロセッサとプログラマブルロジックデバイスのクロックと周期配置の刷新の模式図である。
【図１０】本発明の一つの実施形態によるプログラマブルロジックデバイスのレジスタ配置の模式図である。
【発明を実施するための形態】
【００２３】
以下、本発明の内容をさらに明瞭で分かりやすくするために、明細書の図面を参照しながら、本発明の内容をより詳しく説明する。なお、本発明は以下の実施形態に限られず、当業者がよく知られている一般的な置換も本発明の保護範囲にカバーされる。
【００２４】
以下の説明において、本発明を十分に理解するために具体的な細部が沢山述べられているが、本発明は、ここでの記述と異なるその他の方式で実施することもでき、本発明は、開示する以下の具体的な実施形態に制限されない。
【００２５】
本願と請求の範囲が示すように、上下の文脈で明確的に例外ケースを提示した場合を除き、“一”、“一つ”、“一種類”及び／又は“当”などの言葉は単数を特に指すのではなく、複数を含むこともできる。一般的に、用語“備える”と“含む”は、明確的に表したステップや要素を含有することだけを示し、これらのステップや要素は排他的な羅列を構成するのではなく、方法又は設備はその他のステップや要素を包含する可能性もある。
【００２６】
ユニットやモジュールが他のユニット、モジュール又はブロックと“連結”、“結合”（couple）すると述べられている時は、上下の文で明確にその方式を明示した場合を除き、この記述は直接連結又は結合を指すことができるし、あるいは他のユニット、モジュール又はブロックと通信することを指すこともできるし、あるいは中間のユニット、モジュール又はブロックが存在してもよい。本文章で使用する用語“及び／又は”は、挙げられた項目の一つ又は複数の任意又は全ての組み合わせを含む。
【００２７】
本発明の実施形態は運動制御とモータ制御の機能を含むコントローラについて述べる。図１は本発明の一つの実施形態によるコントローラのロジック構成である。本分野の技術者が理解できたように、運動制御機能は具体的な応用タスクに従って、制御対象の各運動対偶の時間に伴う動作目標を算出することを指す。ここでいう運動対偶とは、例えば関節のような、制御対象の二つの部材が直接的に接触しかつ相対運動が発生できる活動的な連結であることを指す。具体的な応用の違いによって、計算ステップ、計算対象及び計算パラメータも違うものとなりうるが、最終目的はみんな制御対象の各運動対偶の設定値と時間との関係を得ることであり、対応する“各運動対偶の設定値-時間”のデータストリーム（データ情報）を生成することである。運動対偶設定値は、例えば運動対偶の位置、速度、加速度、力又はトルクの中の任意の一つ又は幾つかである。
【００２８】
モータ制御機能は、“各運動対偶の設定値”に従ってモータの回転を制御することができる。本発明の一つの実施形態においては、各運動対偶の設定値は制御対象の各関節のモータのモータ設定値に変換することができ、モータ設定値は例えばモータの回転角位置、回転速度、トルクの中の任意の一つ又は幾つかである。各運動対偶の設定値と各モータ設定値との間の対応変換は運動制御機能によって完成してもよいし、モータ制御機能によって完成してもよく、本発明は特に限定しない。運動対偶設定値は対応する時刻で時間通りにモータ制御機能に送られて執行される。全ての軸が規定の時刻で規定のモータ設定値（角度値であってもよいし、速度あるいはトルクであってもよい）に到達した場合、最終的に終端の執行に反映された合成運動は応用タスクが必要な様子になる。モータ制御機能は高速的に同時に複数の軸を制御でき、多軸執行動作の同期性を保証し、合計動作が変形しないことが期待される。さらにモータ制御機能は比較的に高いデータ刷新と執行の頻度を有し、動作の精度と連続性を満足することが期待される。図１に示すように、本発明の一つの実施形態によるコントローラ１０は運動コントローラ１１とモータコントローラ１２とを備える。運動コントローラ１１は前記運動制御機能を執行でき、モータコントローラ１２は前記モータ制御機能を執行できる。ティーチペンダント（Teach Pendant, TP）は運動コントローラ１１の上位機器であり、運動コントローラ１１に応用タスク指令を発送したり編集したりするために用いられる。運動コントローラ１１はティーチペンダントから命令を受け取り、前記命令に従って運動計画を行い、例えば前記の各軸のモータ設定値のような運動制御データをモータコントローラ１２に送る。モータコントローラ１２はこれに従って駆動制御信号（例えばパルス幅変調PWM信号）を生成してモータ駆動器１３に送り、モータ駆動器１３によってモータの回転を駆動する。
【００２９】
本発明の各実施形態において、コントローラ１０は電動ロボット、NC工作マシン、電動多プロペラ飛行機、電動自動車、機械義肢、機械掌、電動移動乗り物等の場合に応用でき、各種類の多軸的な、軸と軸の間に動作の協調が必要なモータ駆動の設備の運動タスクの計算制御とモータ制御に用いられる。
【００３０】
本発明の各実施形態において、モータの軸の数については限定せず、６軸であってもよく、８軸であってもよく、さらにより少ない数の軸でもよく、又はさらにより多い数の軸でもよい。
【００３１】
目下、通常の多軸自動化システムにおいては、運動コントローラとモータコントローラとの間、モータコントローラとモータコントローラとの間はフィールドバスを使って通信を行う。本発明の実施形態であげたコントローラにおいては、運動コントローラとモータコントローラとの間の通信方式は改善される。
【００３２】
（第１の実施形態）
図２は本発明の第１実施形態によるコントローラの回路ブロック図である。図２が示すように、本実施形態における運動制御とモータ制御を集積するコントローラ２０は、第１プロセッシングコア２１、第２プロセッシングコア２２と高速キャッシュ(cache)２３を備える。第１プロセッシングコア２１はオペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置される。第２プロセッシングコア２２は少なくともモータ制御を執行するとともに、通常の状態においてはオペレーティングシステムを実行しないように配置される。ここでは、通常の状態とは大多数の時間の内の仕事状態のことを指す。高速キャッシュは、本分野の技術者が通常理解するような、主メモリ（memory）とプロセッサの間に存在するメモリであり、その速度は主メモリと比べて非常に高く、プロセッサの速度に接近する。高速キャッシュ２３は例えばプロセッサの中の２次キャッシュ(L2 Cache)であってもよい。理解できるように、高速キャッシュ２３はその他の次数のキャッシュであってもよい。高速キャッシュ２３は第１プロセッシングコア２１と第２プロセッシングコア２２に結合する。共有メモリ領域は、第１プロセッシングコア２１で実行しているオペレーティングシステムが指定した、固定アドレスの、専用的な、キャッシュ可能なメモリ空間である。共有メモリ領域３０は高速キャッシュ２３に写像することができる。第１プロセッシングコア２１と第２プロセッシングコア２２は当該共有メモリ領域３０を共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において高速キャッシュ２３を通じてデータの交互転送を行う。共有メモリ領域３０が高速キャッシュ２３に写像する写像方式は例えばアドレス写像である。共有メモリ領域３０が高速キャッシュ２３に写像されているとき、本当のデータ転送操作は依然として高速キャッシュ２３の中で行われている。こうして物理的なメモリの中でデータ交換をすることに比べて転送速度を8-10倍に高めることができる。
【００３３】
本発明の上下の文脈において、プロセッシングコアは中央処理装置（CPU）である。中央処理装置（CPU）の中に高速キャッシュを含んでもよく、例えば１次キャッシュ（L1 Cache）である。本発明では複数のCPUと結合する２次キャッシュを使用してCUP間の通信を実現してもよい。
【００３４】
目下のプロセッサアーキテクチャにおいて、高速キャッシュを共有する複数のプロセッシングコアは、通常同一のプロセッサチップに集積される。故に一つの実施形態において、第１プロセッシングコア２１、第２プロセッシングコア２２と高速キャッシュ(cache)２３は同一のチップ、例えばプロセッサチップの中に集積される。
【００３５】
この実施形態において、第１プロセッシングコア２１はオペレーティングシステムを実行するとともに、少なくとも運動制御を執行する。オペレーティングシステムはコントローラ全体の実行を管理でき、オペレーティングシステムの上に例えば運動制御タスクのような具体的な応用タスクを実行する。運動制御機タスク能はコントローラの制御対象の全ての運動対偶の時刻ごとの動作目標を算出する。運動制御タスクの実現方式は多種多様であってもよい。例えば応用の要求の違いに従って、異なるパス計画アルゴリズムとタスク分析ソフトウェアを開発し、各種のパス計画と関節の空間変換を行ってもよい。パス計画と関節の空間変換の具体的なアルゴリズムは応用状況の違いによって大きく異なる可能性がある。例えば、工業用ロボットは運動学及びそのバックソリューションアルゴリズムを使用し、無人飛行機は無人飛行機の飛行制御アルゴリズムを使用する。本分野の技術者は完全に具体的応用の要求に従って運動制御機能を設計することができる。
【００３６】
本実施形態において、オペレーティングシステムは例えばLinux(登録商標）システムである。
【００３７】
第１プロセッシングコア２１は運動制御タスクを実行することにより、コントローラ２０の制御対象の各運動対偶が異なる時間における位置の値、速度の値、加速度の値、力又はトルクの値あるいはその組み合わせを運動対偶の設定値として計画して算出する。本実施形態において、第１プロセッシングコア２１はさらに運動対偶の設定値を制御対象の各関節のモータが異なる時間におけるモータ設定値に変換する。モータ設定値は、位置の値、速度の値、加速度の値、力又はトルクの値の中の任意の一つ又は幾つかの組み合わせを含む。第１プロセッシングコア２１は予定の時刻でモータ設定値を第２プロセッシングコア２２に出力して執行する。その他の実施形態においては、第１プロセッシングコア２１は運動対偶の設定値とモータ設定値との変換を行わず、予定の時刻で運動対偶の設定値を直接第２プロセッシングコア２２に出力し、第２プロセッシングコア２２によってモータ設定値に変換してから対応するモータ制御を行ってもよい。
【００３８】
本実施形態において、第２プロセッシングコア２２は通常の状態において第１プロセッシングコア２１と同じオペレーティングシステムを実行せず、あるいは直接オペレーティングシステムを実行せず、モータ制御タスクを執行する。第１プロセッシングコア２１と第２プロセッシングコア２２の配置により、両者は通常の状態において非対称型マルチウェープロセッシング構造（AMP）を形成する。第２プロセッシングコア２２はモータ設定値に従ってモータ駆動器を制御し、モータが素早くかつ安定的にモータ設定値の要求に到達するのを駆動する。モータ制御は電流ループ制御、速度ループ制御、及び／又は位置ループ制御と関わる。モータ設定値の違いに従って、行うべきループ制御も異なる。一般的に、モータ設定値は位置の値である場合は、三つのループ全てを計算する。モータ設定値は速度の値である場合は、電流ループと速度ループを計算する。モータ設定値はトルクである場合は、電流ループを計算する。故に、第２プロセッシングコア２２のモータ制御タスクは、電流ループ制御、又は電流ループ制御と速度ループ制御の組み合わせ、又は電流ループ制御、速度ループ制御と位置ループ制御の組み合わせを選択的に行うことができる。なお、第１プロセッシングコア２１と第２プロセッシングコア２２の間のタスクは各種の可能な配分を行ってもよく、例えば位置ループ制御は第１プロセッシングコア２１で実行し、その他のループ制御は第２プロセッシングコア２２で実行し、あるいは位置ループ制御ちと速度ループ制御はともに第１プロセッシングコア２１で実行し、電流ループ制御は第２プロセッシングコア２２で実行する。これらは主にループ制御の計算速度に対する要求とハードウェアプラットフォームの性能の制限に拠る。
【００３９】
第２プロセッシングコア２２は、モータを駆動して必要なモータ設定値が要求する位置、速度、加速度、力又はトルクに到達するための必要な電流を計算し、計算結果に従ってIGBT又はIPM又はその他の種類のパワー部品に駆動制御信号（例えばPWM信号）を出力することによってモータを駆動する。
【００４０】
一つの実施形態においては、第２プロセッシングコア２２は第１プロセッシングコア２１と異なるもう一つのオペレーティングシステムを実行してもよい。例えば、第２プロセッシングコア２２は、第１プロセッシングコア２１のオペレーティングシステムと比べてさらに簡素化されたオペレーティングシステムを実行してもよい。一つの実施形態においては、第２プロセッシングコア２２はどんなオペレーティングシステムも実行しないようにしてもよい。
【００４１】
幾つかの実施形態においては、第１プロセッシングコア２１と第２プロセッシングコア２２はARMをベースとするコアであってもよい。例示の型番はCortexTM-A9 MPCoreであり、処理性能は 4,000 MIPSを超える。
【００４２】
通常、非対称型マルチウェープロセッシング構造（AMP）において、プロセッシングコアの間には高速キャッシュを共有しない。通常のやり方と異なって、本発明の実施形態では“非対称型マルチウェープロセッシング構造において高速キャッシュを通じてメモリを共有する方法”を提案している。第１プロセッシングコア２１と第２プロセッシングコア２２はAMP方式を使用するが、高速キャッシュ２３を共有することができ、さらに高速キャッシュを通じてメモリを共有する。
【００４３】
その方法は以下の通りである。
【００４４】
運動制御とモータ制御を執行する前に、前記コントローラは以下のように配置される。対称型マルチウェープロセッシング方式でLinuxオペレーティングシステムを起動させ、オペレーティングシステムを第１プロセッサと第２プロセッサで実行し、一つのメモリ領域を共有メモリとして指定し、当該メモリ領域はI/O memoryとして配置される。これによって共有メモリのアドレス領域は保留され、オペレーティングシステムによってプロセスに分配され使用されることがなく、共有メモリのアドレス領域はキャッシュ可能であるように配置される。
【００４５】
オペレーティングシステムを通じて前記第２プロセッサの電源を落とす。
【００４６】
この時第１プロセッサは以下のような状態にある。単独で前記オペレーティングシステムを実行し、２次キャッシュ（L2 cache）を使用してキャッシュ可能（Cacheable）な方式で共有メモリのアドレス領域を訪問できる。
【００４７】
第２プロセッサを再び起動して再配置し、第２プロセッサを通常の状態で前記オペレーティングシステムを実行しないようにし、２次キャッシュ（L2 cache）を使用するように第２プロセッサを配置し、さらにキャッシュ可能（Cacheable）な方式で共有メモリのアドレス領域を訪問できるように第２プロセッサを配置する。
【００４８】
実施形態において、これらの手段により、我々は非対称型マルチウェープロセッシング構造（AMP）の中でプロセッシングコアの間が高速キャッシュを共有できることを実現できた。
【００４９】
これらに基づき、第１プロセッシングコア２１と第２プロセッシングコア２２は、運動制御とモータ制御の期間において高速キャッシュ２３を通じてデータの交互転送を行うように配置される。具体的に、運動制御の期間においては、第１プロセッシングコア２１は運動制御データ（例えば運動対偶の設定値又はモータ設定値）を高速キャッシュ２３に書き込んでもよく、第２プロセッシングコア２２は高速キャッシュ２３から運動制御データを読み取ってもよい。前述の通りに、各実施形態においては、運動制御データは各運動対偶又は各モータの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含み、第１プロセッシングコア２１と第２プロセッシングコア２２の間のタスク配分に従って定まる。相応的に、第２プロセッシングコア２２はフィードバック５データを高速キャッシュ２３に書き込んでもよく、第１プロセッシングコア２１は高速キャッシュ２３からフィードバックデータを読み取ってもよい。フィードバックデータは各運動対偶又は各モータからの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含んでもよい。例えば運動制御データは位置データである場合は、フィードバックデータは一般的に位置データを含み、さらに速度関連のデータ、力データとトルクデータを含んでもよい。運動制御データは速度関連のデータである場合は、フィードバックデータは一般的に速度関連のデータを含み、さらに位置データ、力データとトルクデータを含んでもよい。勿論理解できるように、フィードバックデータは運動制御データと無関係であってもよい。例えば、フィードバックデータは常に位置データ、速度データ、加速度データ、力データとトルクデータの中の任意の一つ又は幾つかである。さらに応用場面によって終端執行器の位置又は姿態データを運動制御プロセッサに直接フィードバックすることも実行可能である（例えば無人飛行機の姿態、速度、あるいは電動自動車の姿態、速度）。
【００５０】
運動軌跡の正確さと平滑さを要求する多軸協調設備の制御システムにとって、運動制御タスクが運動対偶の設定値又はモータ設定値を算出し、規定の時間範囲内で正確にモータ制御タスクに転送する時は、二者間の通信方式は信頼性を持って運動対偶の設定値又はモータ設定値をモータ制御タスクに転送できることが期待され、転送に必要な時間は短ければ短いほど良く、かつ時間の長さが固定的であれば固定的であるほど良い。本実施形態において、非対称型マルチウェープロセッシング構造（AMP）を使用することによって、モータ制御を執行する第２プロセッサに第１プロセッシングシステムとは異なる簡素化されたオペレーティングシステムを実行させ、あるいはオペレーティングシステムを実行しないようにさせ、さらにAMP方式においてコアの間の高速キャッシュの共有を実施し、高いリアルタイム性能を実現した（高いリアルタイム性能＝遅延が小さく、揺れが小さい）。
【００５１】
図３は、本発明の第１の実施形態によるコントローラの例示実行プロセスである。図３が示すように、第１プロセッシングコア２１は運動制御プロセスにおいて運動制御データを生成し、第２プロセッシングコア２２に送る。第２プロセッシングコア２２は運動制御データに従ってモータ制御を行い、駆動制御信号を生成してモータ駆動器３１に送り、モータ駆動器３１は電流を出力してモータ３２の回転を制御する。モータ３２のところから採集された第１フィードバックデータは第２プロセッシングコア２２にフィードバックされる。第２プロセッシングコア２２は第１プロセッシングコア２１に対して第２フィードバックデータをフィードバックする。第１フィードバックデータは各運動対偶又は各モータからの位置データ、速度データ、加速度データ、力データとトルクデータの中の任意の一部分又は全部を含んでもよい。第２フィードバックデータは完全に第１フィードバックデータから由来してもよいし、完全に第１フィードバックデータから由来しなくてもよい。例えば第２フィードバックデータは、第２プロセッシングコア２２が生成したデータを含んでもよい。図３が示す例示において、第１プロセッシングコア２１と第２プロセッシングコア２２との間のデータ通信は、図２に示す高速キャッシュ２３を通じて実現してもよい。応用の要求によっては、第１フィードバックデータ又は第２フィードバックデータは完全になしであってもよく、局部のオープンループ又は全オープンループ制御を形成し、制御システム全体の基本機能の実現とその性能に影響を及ぼさない。
【００５２】
プロセッシングコアが高速キャッシュを訪問する速度は、プロセッサが外部部品を訪問する速度より遥かに速いため、本実施形態は第１プロセッシングコア２１と第２プロセッシングコア２２との間の処理速度を大幅に高めることができる。特に、第１プロセッシングコア２１と第２プロセッシングコア２２は同一のSoC（System on Chip、システムオンチップ）チップに集積されている時、SoCチップの速度は非常に速く、データはSoCチップ内部で比較的に速い速度で転送できる。目下の実施形態のハードウェア条件では（すなわちARM-Cortex A9 800MHz）、コントローラの平均時間遅延は19マイクロ秒であり、最大時間遅延もただ59マイクロ秒である。運動制御部分とモータ制御部分のデータ転送も、1マイクロ秒の内に10Kbのデータ（約8個の軸の制御データ）を転送できる。位置ループは200マイクロ秒ごとに１回刷新され、データ揺れは１マイクロ秒以内であり、すなわち揺れ率は0.5%である。
【００５３】
一つの実施形態においては、コントローラ２０はさらに主メモリを備えてもよく、主メモリは共有メモリ領域３０を有する。
【００５４】
本発明の実施形態はさらに対称型マルチウェープロセッシング構造（SMP）を非対称型マルチウェープロセッシング構造（AMP）に転換する方式を提案し、前文の中の“非対称型マルチウェープロセッシング構造において高速キャッシュを通じてメモリを共有する方法”を実施できるようにした。
【００５５】
この方式によると、第１プロセッシングコア２１と第２プロセッシングコア２２において先に対称型マルチウェープロセッシング構造（SMP）の方式でLinuxオペレーティングシステムを起動し、オペレーティングシステムを第１プロセッシングコア２１と第２プロセッシングコア２２で実行させ、両者が同時にオペレーティングシステムを実行する。この方式は通常の状態ではなく、普通は起動の時に現れる。一つのメモリ領域を共有メモリとして指定し、当該メモリ領域はI/O memoryとして配置される。これによって共有メモリのアドレス領域は保留され、オペレーティングシステムによってプロセスに分配され使用されることがなく、共有メモリのアドレス領域はキャッシュ可能であるように配置される。そしてオペレーティングシステムを通じて一つのプロセッシングコア、例えば第２プロセッシングコア２２の電源を落とす。この時第１プロセッサは以下のような状態にある。単独で前記オペレーティングシステムを実行し、２次キャッシュ（L2 cache）を訪問可能である。さらに第１プロセッサはキャッシュ可能（Cacheable）な方式で共有メモリのアドレス領域を訪問できる。そして、第２プロセッサを再び起動して再配置し、第２プロセッサを通常の状態で前記オペレーティングシステムを実行しないようにし、２次キャッシュ（L2 cache）を使用するように第２プロセッサを配置し、さらにキャッシュ可能（Cacheable）な方式で共有メモリのアドレス領域を訪問できるように第２プロセッサを配置する。この時、第２プロセッシングコア２２は第１プロセッシングコア２１と同じオペレーティングシステムを実行しないように、又はどんなオペレーティングシステムも実行しないように配置する。オペレーティングシステムはこの第２プロセッシングコア２２の起動を知らず、依然としてSMP方式でメモリと高速キャッシュを管理する。こうして、オペレーティングシステムが第１プロセッシングコア２１と第２プロセッシングコア２２に分配したメモリと高速キャッシュは、AMPの方式の下で、第１プロセッシングコア２１と第２プロセッシングコア２２によって共有される。前記操作を実現したコードは非揮発性メモリ（本実施形態においては例えばSDカード、EMMCあるいは各種Flash等）の中に保存してもよく、コントローラ２０の起動に従って第１プロセッシングコア２１と第２プロセッシングコア２２に実行される。
【００５６】
図７は、本発明の一つの実施形態による集積されたコントローラにおける運動制御とモータ制御を実行する方法のフローチャート図である。図７が示すように、この方法は以下のステップを含む。
【００５７】
ステップ７０１において、対称型マルチウェープロセッシング方式でLinuxオペレーティングシステムを起動し、オペレーティングシステムを第１プロセッサと第２プロセッサの上で実行する。本実施形態においては、第１プロセッサと第２プロセッサはそれぞれ第１プロセッシングコア２１と第２プロセッシングコア２２である。そして一つのメモリ領域を共有メモリとして指定し、当該メモリ領域はI/O memoryとして配置され、これによって共有メモリのアドレス領域は保留され、オペレーティングシステムによってプロセスに分配され使用されることがなく、共有メモリのアドレス領域はキャッシュ可能であるように配置される。
【００５８】
ステップ７０２において、オペレーティングシステムを通じて前記第２プロセッサの電源を落とす。この時、第１プロセッサは単独でオペレーティングシステムを実行し、２次キャッシュ（L2 cache）を訪問して、キャッシュ可能（Cacheable）な方式で共有メモリのアドレス領域を訪問できる。
【００５９】
ステップ７０３において、第２プロセッサを再び起動して再配置し、第２プロセッサは通常の状態で第１プロセッサが実行するオペレーティングシステムを実行しないようにする。２次キャッシュ（L2 cache）を使用するように第２プロセッサを配置し、さらにキャッシュ可能（Cacheable）な方式で共有メモリのアドレス領域を訪問できるように第２プロセッサを配置する。この時、システムは非対称型マルチウェープロセッシング方式に変わる。前述の通り、第２プロセッサはこの時もう一つのオペレーティングシステム、例えば第１プロセッサが実行するオペレーティングシステムと比べてさらに簡素化されたオペレーティングシステムを実行してもよい。第２プロセッサはこの時どんなオペレーティングシステムも実行しないようにしてもよい。
【００６０】
ステップ７０４において、第１プロセッサにおいて運動制御を執行し、第２プロセッサにおいてモータ制御を執行し、かつ運動制御とモータ制御の期間において、第１プロセッサと第２プロセッサの間で２次キャッシュ（L2 cache）を通じてデータの交互転送を行う。
【００６１】
図８は、本発明の一つの実施形態による第１プロセッサと第２プロセッサがコンピュータコードをロードする模式図である。図８が示すように、被揮発性メモリ８００の中に第１プロセッサと第２プロセッサ（本実施形態においては第１プロセッシングコア２１と第２プロセッシングコア２２）に実行されるためのコンピュータコードが保存されている。SMP方式において、例えば第１プロセッシングコア２１と第２プロセッシングコア２２はアドレスA1からコンピュータコードをロードする。アドレスA1-A5にオペレーティングシステムと運動制御に対応するコンピュータコードが保存されている。アドレスA1-A5には、さらに第２プロセッシングコア２２を再配置するコンピュータコードと第２プロセッシングコア２２の電源を落とすコンピュータコードを保存してもよい。第１プロセッシングコア２１と第２プロセッシングコア２２はオペレーティングシステムを実行してから、第２プロセッシングコア２２は再び起動してアドレスA6からコンピュータコードをロードするようにコードによって再配置される。これで、第２プロセッシングコア２２は再び起動してから、アドレスA6から必要なコンピュータコードをロードする。アドレスA6-A8には、例えば第２プロセッシングコア２２がモータ制御を行うために必要なコードが保存されている。
【００６２】
モータ回転の平滑さと連続さを保証するために、モータ制御タスクの速度ループ制御と電流ループ制御はともに強いリアルタイム性能を要求する。オペレーティングシステムは時々プログラムに対して割り込みをして異なるタスクを処理するが、この操作は駆動制御プログラムのリアルタイム性能を影響し、その短い時間間隔においてはモータ制御の計算結果のタイムリーで時間通りの出力を保証できない。そのために一つの実施形態においては、速度ループ制御と電流ループ制御はともに第２プロセッシングコア２２の中で行われ、かつ第２プロセッシングコア２２はオペレーティングシステム１５を実行せず、かつ始終に亘って割り込みをブロックせず、すなわち割り込み応答可能／割り込み応答不可能の操作を行わず、プログラムのリアルタイム性能を保証する。
【００６３】
なお、第２プロセッシングコア２２はロックフリー（Lock-free）キューを使用してもよく、故にデータの一致性を保証する。
【００６４】
本実施形態のコントローラは各種の制御システムに用いてもよく、例えば電動ロボット、NC工作マシン、電動多プロペラ飛行機、電動自動車、機械義肢、機械掌、電動移動乗り物等の中の制御システムに用いてもよい。
【００６５】
本実施形態のコントローラは駆動制御一体化システムを使用するため、ハードウェアの冗長を減らした。さらに一歩進んで、駆動制御一体化システムは単結晶SOCチップに必要な周辺回路を加えることによって実現することができ、ハードウェアの体積が小さい。
【００６６】
さらに、シングルチップ駆動制御一体化システムにおいて、データの転送はすべてチップ内部で行われ、外部からの妨害を受けにくく、データが正確で信頼できるように転送することを保証する。
【００６７】
また、シングルチップ駆動制御一体化システムは非常に高いリアルタイム性能を保証できる。SoCチップの速度は非常に速く、第１プロセッサと第２プロセッサの間における高速キャッシュを利用したコア間の通信の速度も非常に高い。シングルチップ駆動制御一体化システムの設計はリアルタイム性能に保障を与え、例えば無人自動車や無人飛行機などのような、さらに複雑で高速な応用場面にも満足できる。
【００６８】
（第２の実施形態）
図４は本発明の第２実施形態によるコントローラの回路ブロック図である。図４が示すように、本実施形態における運動制御とモータ制御を集積するコントローラ４０は、第１プロセッシングコア４１、第２プロセッシングコア４２、高速キャッシュ(cache)４３、プログラマブルロジックデバイス（PLD）４４と共有メモリ領域５０を備える。第１プロセッシングコア２１はオペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置される。第２プロセッシングコア２２は少なくともモータ制御を執行するとともに、通常の状態においてはオペレーティングシステムを実行しないように配置される。高速キャッシュは、本分野の技術者が通常理解するような、主メモリ（memory）とプロセッサの間に存在するメモリであり、その速度は主メモリと比べて非常に高く、プロセッサの速度に接近する。高速キャッシュ４３は例えばプロセッサの中の２次キャッシュ（(L2 Cache)であってもよい。理解できるように、高速キャッシュ４３はその他の次数のキャッシュであってもよい。高速キャッシュ４３は第１プロセッシングコア４１と第２プロセッシングコア４２に結合する。共有メモリ領域は、第１プロセッシングコア４１で実行しているオペレーティングシステムが指定した、固定アドレスの、専用的な、キャッシュ可能なメモリ空間である。共有メモリ領域５０は高速キャッシュ４３に写像することができる。第１プロセッシングコア４１と第２プロセッシングコア４２は当該共有メモリ領域５０を共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において高速キャッシュ４３を通じてデータの交互転送を行う。共有メモリ領域５０が高速キャッシュ４３に写像する写像方式は例えばアドレス写像である。共有メモリ領域５０が高速キャッシュ４３に写像されているとき、本当のデータ転送操作は依然として高速キャッシュ４３の中で行われている。こうして物理的なメモリの中でデータ交換をすることに比べて転送速度を8-10倍に高めることができる。プログラマブルロジックデバイス（PLD）４４は第２プロセッシングコア４２に結合し、第２プロセッシングコア４２と協働してモータ制御を行う。目下のプロセッサアーキテクチャにおいて、高速キャッシュを共有する複数のプロセッシングコアは、通常同一のプロセッサチップに集積される。故に一つの実施形態において、第１プロセッシングコア４１、第２プロセッシングコア４２と共有キャッシュは同一のチップ、例えばプロセッサチップの中に集積される。
【００６９】
この実施形態において、第１プロセッシングコア４１はオペレーティングシステムを実行するとともに、少なくとも運動制御を執行する。オペレーティングシステムはコントローラ全体の実行を管理でき、オペレーティングシステムの上に例えば運動制御タスクのような具体的な応用タスクを実行する。運動制御機タスク能はコントローラの制御対象の全ての運動対偶の時刻ごとの動作目標を算出する。運動制御タスクの実現方式は多種多様であってもよい。例えば応用の要求の違いに従って、異なるパス計画アルゴリズムとタスク分析ソフトウェアを開発し、各種のパス計画と関節の空間変換を行ってもよい。パス計画と関節の空間変換の具体的なアルゴリズムは応用状況の違いによって大きく異なる可能性がある。例えば、工業用ロボットは運動学及びそのバックソリューションアルゴリズムを使用し、無人飛行機は無人飛行機の飛行制御アルゴリズムを使用する。本分野の技術者は完全に具体的応用の要求に従って運動制御機能を設計することができる。
【００７０】
第１プロセッシングコア４１は運動制御タスクを実行することにより、コントローラ４０の制御対象の各運動対偶が異なる時間における位置の値、速度の値、加速度の値、力又はトルクの値あるいはその組み合わせを運動対偶の設定値として計画して算出する。本実施形態において、第１プロセッシングコア４１はさらに運動対偶の設定値を制御対象の各関節のモータが異なる時間におけるモータ設定値に変換する。モータ設定値は、位置の値、速度の値、加速度の値、力又はトルクの値の中の任意の一つ又は幾つかの組み合わせを含む。第１プロセッシングコア４１は予定の時刻でモータ設定値を第２プロセッシングコア４２に出力して執行する。その他の実施形態においては、第１プロセッシングコア４１は運動対偶の設定値とモータ設定値との変換を行わず、予定の時刻で運動対偶の設定値を直接第２プロセッシングコア４２に出力し、第２プロセッシングコア４２によってモータ設定値に変換してから対応するモータ制御を行ってもよい。
【００７１】
前の実施形態と異なるのは、本実施形態はPLD４４を導入した。PLD４４は並列計算が速い特徴があり、故にモータ軸の数が多い時、これは明らかなメリットとなる。PLD44はプロセッシングコア４１，４２と同一のチップに集積してもよい。PLD４４は第２プロセッシングコア４２と結合して協働を実現する。ここで結合方式は、例えばプロセッサとPLDとの間のインターフェース４５によって実現してもよい。一部のSoCチップ、例えばAltera会社のCyclone Vチップはこのようなインターフェースを提供している。各実施形態において、PLD４４の種類はフィールドプログラマブルゲートアレイ（Field Programmable Gate Array, FPGA）であってもよい。
【００７２】
本実施形態において、第２プロセッシングコア４２は通常の状態において第１プロセッシングコア４１と同じオペレーティングシステムを実行せず、PLD４４とモータコントローラを構成し、協働してモータ制御タスクを執行する。第１プロセッシングコア４１と第２プロセッシングコア４２の配置により、両者は通常の状態において非対称型マルチウェープロセッシング構造（AMP）を形成する。モータコントローラはモータ設定値に従ってモータ駆動器を制御し、モータが素早くかつ安定的にモータ設定値の要求に到達するのを駆動する。モータ制御は電流ループ制御、速度ループ制御、及び／又は位置ループ制御と関わる。モータ設定値の違いに従って、行うべきループ制御も異なる。モータ設定値は位置の値である場合は、三つのループ全てを計算する。モータ設定値は速度の値である場合は、電流ループと速度ループを計算する。モータ設定値はトルクである場合は、電流ループを計算する。故に、モータコントローラのモータ制御タスクは、電流ループ制御、又は電流ループ制御と速度ループ制御の組み合わせ、又は電流ループ制御、速度ループ制御と位置ループ制御の組み合わせを選択的に行うことができる。なお、第１プロセッシングコア４１とモータコントローラの間のタスクは各種の可能な配分を行ってもよく、例えば位置ループ制御は第１プロセッシングコア４１で実行し、その他のループ制御はモータコントローラで実行し、あるいは位置ループ制御ちと速度ループ制御はともに第１プロセッシングコア２１で実行し、電流ループ制御はモータコントローラで実行する。これらは主にループ制御の計算速度に対する要求とハードウェアプラットフォームの性能の制限に拠る。
【００７３】
モータコントローラはモータを駆動して必要なモータ設定値が要求する位置、速度、加速度、力又はトルクに到達するための必要な電流を計算し、計算結果に従ってIGBT又はIPM又はその他の種類のパワー部品に駆動制御信号（例えばPWM信号）を出力することによってモータを駆動する。
【００７４】
一つの実施形態においては、第２プロセッシングコア４２は第１プロセッシングコア４１と異なるもう一つのオペレーティングシステムを実行してもよい。例えば、第２プロセッシングコア４２は、第１プロセッシングコア４１のオペレーティングシステムと比べてさらに簡素化されたオペレーティングシステムを実行してもよい。一つの実施形態においては、第２プロセッシングコア４２はどんなオペレーティングシステムも実行しないようにしてもよい。
【００７５】
各実施形態において、モータコントローラとして組み合わせされた第２プロセッシングコア４２とPLD４４の間にモータ制御タスクを配分してもよい。第２プロセッシングコア４２とPLD４４の組み合わせは協働して位置ループ制御、速度ループ制御と電流ループ制御を引く受ける時、モータ制御タスクの配分方式は例えば以下であってもよい。第２プロセッシングコア４２は位置ループ制御を引き受け、PLD４４は速度ループ制御と電流ループ制御を引き受け、又は第２プロセッシングコア４２は位置ループ制御と速度ループ制御を引き受け、PLD４４は電流ループ制御を引き受ける。ひいては、ハードウェア的には実行可能である場合、PLD４４は位置ループ制御、速度ループ制御と電流ループ制御を全て引き受けてもよい。第２プロセッシングコア４２とPLD４４の組み合わせは協働して位置ループ制御、速度ループ制御と電流ループ制御の中の一部分だけを引く受ける時、例えば速度ループ制御と電流ループ制御だけを引き受ける時、第２プロセッシングコア４２とPLD４４の間におけるタスクの配分も相応的に調整されてもよい。例えば第２プロセッシングコア４２は速度ループ制御を引き受け、PLD４４は電流ループ制御を引き受ける。
【００７６】
各軸の動作協調が必要な設備又はシステムにとって、最も理想的なのは、全ての軸を同時で同期的に計算と制御し、各軸が協調して合成できた終端執行器の運動が正確であるようにすることである。そのために、運動制御タスクが運動対偶の設定値又はモータ設定値を算出し、規定の時間範囲内で正確にモータ制御タスクに転送する時は、二者間の通信方式は信頼性を持って運動対偶の設定値又はモータ設定値をモータ制御タスクに転送できることが期待され、転送に必要な時間は短ければ短いほど良く、かつ時間の長さが固定的であれば固定的であるほど良い。
【００７７】
本発明の実施形態では“非対称型マルチウェープロセッシング構造において高速キャッシュを通じてメモリを共有する方法”を提案している。非対称型マルチウェープロセッシング構造（AMP）を使用することによって、モータ制御を執行する第２プロセッサに第１プロセッシングシステムとは異なる簡素化されたオペレーティングシステムを実行させ、あるいはオペレーティングシステムを実行しないようにさせ、さらにAMP方式においてコアの間の高速キャッシュの共有を実施し、高いリアルタイム性能を実現した（高いリアルタイム性能＝遅延が小さく、データの揺れが小さい）。すなわち、第１プロセッシングコア４１と第２プロセッシングコア４２はAMP方式を使用するが、高速キャッシュ４３を共有することができ、さらに高速キャッシュを通じてメモリを共有する。
【００７８】
その方法は以下の通りである。
【００７９】
動制御とモータ制御を執行する前に、前記コントローラは以下のように配置される。対称型マルチウェープロセッシング方式でLinuxオペレーティングシステムを起動させ、オペレーティングシステムを第１プロセッサと第２プロセッサで実行し、一つのメモリ領域を共有メモリとして指定し、当該メモリ領域はI/O memoryとして配置される。これによって共有メモリのアドレス領域は保留され、オペレーティングシステムによってプロセスに分配され使用されることがなく、共有メモリのアドレス領域はキャッシュ可能であるように配置される。
【００８０】
オペレーティングシステムを通じて前記第２プロセッサの電源を落とす。
【００８１】
この時第１プロセッサは以下のような状態にある。単独で前記オペレーティングシステムを実行し、２次キャッシュ（L2 cache）を訪問し、キャッシュ可能（Cacheable）な方式で共有メモリのアドレス領域を訪問できる。第２プロセッサを再び起動して再配置し、第２プロセッサを通常の状態で前記オペレーティングシステムを実行しないようにし、２次キャッシュ（L2 cache）を訪問するように第２プロセッサを配置し、さらにキャッシュ可能（Cacheable）な方式で共有メモリのアドレス領域を訪問できるように第２プロセッサを配置する。
【００８２】
実施形態において、これらの手段により、我々は非対称型マルチウェープロセッシング構造（AMP）の中でプロセッシングコアの間が高速キャッシュを共有できることを実現できた。これらに基づき、第１プロセッシングコア４１と第２プロセッシングコア４２は、運動制御とモータ制御の期間において高速キャッシュ４３を通じてデータの交互転送を行うように配置される。具体的に、運動制御の期間においては、第１プロセッシングコア４１は運動制御データ（例えば運動対偶の設定値又はモータ設定値）を高速キャッシュ４３に書き込んでもよく、第２プロセッシングコア４２は高速キャッシュ４３から運動制御データを読み取ってもよい。前述の通りに、各実施形態においては、運動制御データは各運動対偶又は各モータの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含み、第１プロセッシングコア４１と第２プロセッシングコア４２の間のタスク配分に従って定まる。相応的に、第２プロセッシングコア４２はフィードバックデータを高速キャッシュ４３に書き込んでもよく、第１プロセッシングコア４１は高速キャッシュ４３からフィードバックデータを読み取ってもよい。フィードバックデータは各運動対偶又は各モータからの位置データ、速度データ、加速度データ、力データ及び／又はトルクデータを含んでもよい。例えば、運動制御データは位置データである場合は、フィードバックデータは一般的に位置データを含み、さらに速度関連のデータ、力データとトルクデータを含んでもよい。運動制御データは速度関連のデータである場合は、フィードバックデータは一般的に速度関連のデータを含み、さらに位置データ、力データとトルクデータを含んでもよい。勿論理解できるように、フィードバックデータは運動制御データと無関係であってもよい。例えば、フィードバックデータは常に位置データ、速度データ、加速度データ、力データとトルクデータの中の任意の一つ又は幾つかである。さらに応用場面によって終端執行器の位置又は姿態データを運動制御プロセッサに直接フィードバックすることも実行可能である（例えば無人飛行機の姿態、速度、あるいは電動自動車の姿態、速度）。
【００８３】
図５は、本発明の第１の実施形態によるコントローラの例示実行プロセスである。図５が示すように、第１プロセッシングコア４１は運動制御プロセスにおいて運動制御データを生成し、第２プロセッシングコア４２に送る。第２プロセッシングコア４２とPLD４４は運動制御データに従ってモータ制御を行い、駆動制御信号を生成してモータ駆動器５１に送り、モータ駆動器５１は電流を出力してモータ５２の回転を制御する。ここでは、第２プロセッシングコア４２は位置ループと速度ループ制御を処理し、PLD４４は電流ループ制御を処理すると仮定する。モータ５２のところから採集された第１フィードバックデータは第２プロセッシングコア４２にフィードバックされる。第２プロセッシングコア４２は第１プロセッシングコア４１に対して第２フィードバックデータをフィードバックする。第１フィードバックデータは位置データ、速度データ、加速度データ、力データとトルクデータの中の任意の一部分又は全部を含んでもよい。第２フィードバックデータは完全に第１フィードバックデータから由来してもよいし、完全に第１フィードバックデータから由来しなくてもよい。例えば第２フィードバックデータは、第２プロセッシングコア４２が生成したデータを含んでもよい。図５が示す例示において、第１プロセッシングコア４１と第２プロセッシングコア４２との間のデータ通信は、図４に示す高速キャッシュ４３を通じて実現してもよい。応用の要求によっては、第１フィードバックデータ又は第２フィードバックデータは完全になしであってもよく、局部のオープンループ又は全オープンループ制御を形成し、制御システム全体の基本機能の実現とその性能に影響を及ぼさない。
【００８４】
プロセッシングコアが高速キャッシュを訪問する速度は、プロセッサが外部部品を訪問する速度より遥かに速いため、本実施形態は第１プロセッシングコア４１と第２プロセッシングコア４２との間の処理速度を大幅に高めることができる。特に、第１プロセッシングコア４１と第２プロセッシングコア４２は同一のSoC（System on Chip、システムオンチップ）チップに集積されている時、自身が一つのPLD（例えばよく見かけるのはFPGA）を携帯して同一のチップの中に集積される。各軸の動作協調が必要な設備又はシステムにとって、最も理想的なのは、全ての軸を同時で同期的に計算と制御し、各軸が協調して合成できた終端執行器の運動が正確であるようにすることである。そのため、本実施形態においてモータ制御システムは、CPU（第２プロセッサ）とFPGA（PLD）が協働するのを採用し、８軸モータ制御を実現し、FPGA(PLD)の並列高速計算等のメリットを十分に発揮した。
【００８５】
本発明の実施形態はさらに対称型マルチウェープロセッシング構造（SMP）を非対称型マルチウェープロセッシング構造（AMP）に転換する方式を提案し、前文の中の“非対称型マルチウェープロセッシング構造において高速キャッシュを通じてメモリを共有する方法”を実施できるようにした。
【００８６】
この方式については前実施形態に関する記述と図７の例示を参照し、ここでは展開して説明しない。
【００８７】
幾つかの実施形態においては、PLD４４は第１プロセッシングコア４１と第２プロセッシングコア４２との間にメモリ領域５０を共有してもよい。ここでは展開して説明しない。
【００８８】
本実施形態において、PLD４４が第２プロセッシングコアへフィードバックする速度データと位置データのジャンプはともに速度制御ループの出力電流のホッピングをもたらし、モータ制御の性能を悪化させる。PLD４４とプロセッサシステム（第１と第２のプロセッシングコア４１、４２を含む）は二つの独立的な計算コアに属し、如何にして二つの計算コアの間のデータの同期及びPLD４４が送るフィードバックデータの連続性、完全性をうまく対処するかは全体の制御システムの中の重要な問題である。
【００８９】
一つの実施形態においては、図９が示すように、二つの計算コアすなわちプロセッサシステムとPLD４４は、同一の外部クロックI(水晶振動子)を採用し、両者のクロックが同期であり、同じ時間基準を有することを保証する。このような処理のあと、プロセッサシステムがPLD４４からデータを読み取るために必要な時間が相対的に確定され、PLD４４のデータ刷新周期とプロセッサシステムのデータ刷新周期との間に一定の時間間隔のずれが存在する。これによってFPGAは固定時間におけるデータの刷新を実現し、プロセッサシステムは当該固定時間の後にデータを読み取ることを実現する。
【００９０】
一つの実施形態においては、PLD４４内部の全てのクロック信号は、同一のクロック源から周波数分割（例えば位相同期ループPLL周波数分割）を経て得てもよい。このような方式の処理によって、PLD４４内部のデータは同期転送することができる。さらに一歩進んで、プロセッサ、例えば第２プロセッシングコア４２、バス、PLD４４は同一のクロックを使用する。
【００９１】
一つの実施形態においては、図１０が示すように、PLD４４は双レジスタ１０１と１０２（register）を採用して、第１プロセッシングコア４１又は第２プロセッシングコア４２がデータを読み取る時に目下のデータをラッチ（latch）することを実現し、データが非同期設計の中の不安定状態によって破壊されるのを避ける。これも“シャドーレジスタShadow Register”となる。図１０が示すように、PLD４４は内部で数学計算をしてレジスタ１０２の中に結果データを保存する。さらに一歩進んで、もう一つのレジスタ１０１を通じて結果データを保存する。このようにクロック拍子の方式によって、プロセッサシステムがPLD４４のデータを読み取る時に、一つの完全で正確なデータを読み取れるようにさせることができる（プロセッサシステムがデータを読み取っている時にPLD４４が対応レジスタを更新してしまうことを避ける）。本実施形態で使用するレジスタ１０１、１０２は例えばフリップーフロップであってもよい。
【００９２】
（第３の実施形態）
図６は本発明の第３実施形態によるコントローラの回路ブロック図である。図６が示すように、本実施形態における運動制御とモータ制御を集積するコントローラ６０は、第１プロセッシングコア組み合わせ６１、第２プロセッシングコア組み合わせ６２、PLD６３、高速キャッシュ（図に示さず）と共有メモリ領域（図に示さず）を備える。第１プロセッシングコア組み合わせ６１はオペレーティングシステムを実行するとともに、少なくとも運動制御を執行するように配置される。第２プロセッシングコア組み合わせ６２は少なくともモータ制御を執行するとともに、通常の状態においてはオペレーティングシステムを実行しないように配置される。高速キャッシュは第１プロセッシングコア組み合わせ６１と第２プロセッシングコア組み合わせ６２に結合し、共有メモリ領域は高速キャッシュに写像することができる。第１プロセッシングコア組み合わせ６１と第２プロセッシングコア組み合わせ６２は当該共有メモリ領域を共有するように配置され、かつこれに基づいて運動制御とモータ制御の期間において高速キャッシュを通じてデータの交互転送を行う。前の実施形態と異なるのは、本実施形態において、プロセッシングコア１からN（Nは正の整数）までの第１プロセッシングコア組み合わせ６１は第１プロセッサとなり、プロセッシングコアN+1からN＋K（Kは正の整数）までの第２プロセッシングコア組み合わせ６２は第２プロセッサとなる。
【００９３】
PLD６３は第２プロセッシングコア組み合わせ６２と結合し、第２プロセッシングコア組み合わせ６２と協働してモータ制御を行う。第１の実施形態を参考にして分かるように、PLD６３は省略してもよく、この時は第２プロセッシングコア組み合わせ６２だけによってモータ制御を行う。
【００９４】
第１プロセッシングコア組み合わせ６１にとって、オペレーティングシステムと運動制御タスクは複数のプロセッシングコアの間で配分してもよい。第２プロセッシングコア組み合わせ６２にとって、モータ制御タスクは複数のプロセッシングコアの間で配分してもよい。ここでは展開して説明しない。
【００９５】
本実施形態のその他の細部については第１と第２の実施形態を参考し、ここでは展開して説明しない。
【００９６】
本発明は、上述したように、比較的に望ましい実施形態を用いて開示したが、前記の複数の実施形態は、説明を容易にするために挙げた例であり、本発明を限定するものではない。当業者は、本発明の精神と範囲を逸脱しない限り、若干の変更と潤色をしてもよく、本発明が主張する保護請求の範囲は、特許請求の範囲の記述を基準とすべきである。
【図１】
2019192200.tif 000003
【図２】
2019192200.tif 000004
【図３】
2019192200.tif 000005
【図４】
2019192200.tif 000006
【図５】
2019192200.tif 000007
【図６】
2019192200.tif 000008
【図７】
2019192200.tif 000009
【図８】
2019192200.tif 000010
【図９】
2019192200.tif 000011
【図１０】
2019192200.tif 000012