(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023152029
(43)【公開日】2023-10-16
(54)【発明の名称】制御システム、制御装置、制御方法及び制御プログラム
(51)【国際特許分類】
G05B 19/042 20060101AFI20231005BHJP
【FI】
G05B19/042
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022061952
(22)【出願日】2022-04-01
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【弁理士】
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】浪江 正樹
【テーマコード(参考)】
5H220
【Fターム(参考)】
5H220BB09
5H220CC09
5H220CX01
5H220CX05
5H220HH01
5H220HH04
5H220HH08
5H220JJ12
5H220JJ22
5H220JJ26
5H220LL01
5H220LL03
(57)【要約】
【課題】制御周期が通信周期よりも短い制御系において制御応答性を向上させる制御システム、制御装置、制御方法及び制御プログラムを提供すること。
【解決手段】制御システム100は、制御信号を受信し、対象装置20に制御信号を出力するモータドライバ25と、制御信号に基づいて制御される対象装置20の物理量を測定するセンサ30と、物理量を送信するセンサドライバ35と、制御信号を対象装置20に送信し、フィードバック制御を行う制御装置10と、を備え、制御装置10は、制御信号を含む、第1のデータ数のデータを第1の通信周期で送信する送信部12と、物理量を含む、第2のデータ数のデータを第2の通信周期で受信する受信部13と、第1通信周期及び第2通信周期よりも短い所定の制御周期Tsで制御対象20を制御する制御部11と、を備え、第1のデータ数は、所定の制御周期Tsと第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
制御信号を受信し、対象装置に前記制御信号を出力するモータドライバと、
前記制御信号に基づいて制御される前記対象装置の物理量を測定するセンサと、
前記物理量を送信するセンサドライバと、
前記物理量及び指令値に基づいて生成された前記制御信号を前記対象装置に送信し、フィードバック制御を行う制御装置と、を備え、
前記制御装置は、
生成された前記制御信号を含む、第1のデータ数のデータを第1の通信周期で前記モータドライバに送信する送信部と、
前記物理量を含む、第2のデータ数のデータを第2の通信周期で前記センサドライバから受信する受信部と、
前記第1通信周期及び前記第2通信周期よりも短い所定の制御周期で前記制御対象を制御する制御部と、
を備え、
前記第1のデータ数は、前記所定の制御周期と前記第1の通信周期とに基づいて設定され、
前記第2のデータ数は、前記所定の制御周期と前記第2の通信周期とに基づいて設定される、
制御システム。
【請求項2】
前記第1の通信周期及び前記第2の通信周期は、前記所定の制御周期の自然数倍である、
請求項1に記載の制御システム。
【請求項3】
前記第1の通信周期及び前記第2の通信周期が同一である場合、前記第1のデータ数及び前記第2のデータ数は同一である、
請求項1に記載の制御システム。
【請求項4】
前記第1の通信周期及び前記第2の通信周期が異なる場合、前記第1のデータ数及び前記第2のデータ数は異なる、
請求項1に記載の制御システム。
【請求項5】
前記モータドライバは、前記制御信号を所定の出力周期で前記対象装置に出力し、
前記所定の出力周期は、前記所定の制御周期と同一、又は、前記所定の制御周期よりも短くなるように設定される、
請求項1に記載の制御システム。
【請求項6】
前記センサドライバは、前記物理量を所定の入力周期で前記センサから入力し、
前記所定の入力周期は、前記所定の制御周期と同一、又は、前記所定の制御周期よりも短くなるように設定される、
請求項1から5のいずれか一項に記載の制御システム。
【請求項7】
センサにより測定される対象装置の物理量及び指令値に基づいて生成された前記制御信号を前記対象装置に送信し、フィードバック制御を行う制御装置であって、
生成された前記制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部と、
前記物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部と、
前記第1通信周期及び前記第2通信周期よりも短い所定の制御周期で前記制御対象を制御する制御部と、
を備え、
前記第1のデータ数は、前記所定の制御周期と前記第1の通信周期とに基づいて設定され、
前記第2のデータ数は、前記所定の制御周期と前記第2の通信周期とに基づいて設定される、
制御装置。
【請求項8】
センサにより測定される対象装置の物理量及び指令値に基づいて生成された前記制御信号を前記対象装置に送信し、フィードバック制御を行う制御装置で実行される制御方法であって、
生成された前記制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信することと、
前記物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信することと、
前記第1通信周期及び前記第2通信周期よりも短い所定の制御周期で前記制御対象を制御することと、
を含み、
前記第1のデータ数は、前記所定の制御周期と前記第1の通信周期とに基づいて設定され、
前記第2のデータ数は、前記所定の制御周期と前記第2の通信周期とに基づいて設定される、
制御方法。
【請求項9】
センサにより測定される対象装置の物理量及び指令値に基づいて生成された前記制御信号を前記対象装置に送信し、フィードバック制御を行う制御装置を、
生成された前記制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部、
前記物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部、
前記第1通信周期及び前記第2通信周期よりも短い所定の制御周期で前記制御対象を制御する制御部、
として機能させ、
前記第1のデータ数は、前記所定の制御周期と前記第1の通信周期とに基づいて設定され、
前記第2のデータ数は、前記所定の制御周期と前記第2の通信周期とに基づいて設定される、
制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御システム、制御装置、制御方法及び制御プログラムに関する。
【背景技術】
【0002】
特許文献1には、通信周期が制御周期の自然数倍でない場合でも、複数のスレーブ制御部同士を確実に同期させることが可能な同期制御システムが記載されている。この同期制御システムは、マスタ制御部と、マスタ制御部の通信周期と同期する同期クロックに基づいて制御される複数のスレーブ制御部と、を備える。複数のスレーブ制御部の各々は、共通の時間情報に基づいて、通信周期ごとに発生する同期クロックのうちの互いに共通のタイミングの同期クロックに制御周期の位相を合わせる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の同期制御システムは、マスタと複数スレーブ間の制御周期の位相ずれをなくすこと、つまり、マスタと複数スレーブ間の同期を維持することを目的としている。つまり、特許文献1に記載の同期制御システムは、マスタとスレーブ間における制御応答性を高めることを全く考慮していない。
【0005】
本発明は、このような事情に鑑みてなされたものであり、制御周期が通信周期よりも短い制御系において制御応答性を向上させる制御システム、制御装置、制御方法及び制御プログラムを提供することを目的の1つとする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る制御システムは、制御信号を受信し、対象装置に制御信号を出力するモータドライバと、制御信号に基づいて制御される対象装置の物理量を測定するセンサと、物理量を送信するセンサドライバと、物理量及び指令値に基づいて生成された制御信号を対象装置に送信し、フィードバック制御を行う制御装置と、を備え、制御装置は、生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部と、物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部と、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御する制御部と、を備え、第1のデータ数は、所定の制御周期と第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される。
【0007】
この態様によれば、制御装置は、生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部と、物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部と、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御する制御部と、を備える。第1のデータ数は、所定の制御周期と第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される。したがって、フィードバック制御ゲインの制御(例えば高ゲイン化)が可能となるから、対象装置に関する制御応答性を向上させる。
【0008】
上記態様において、第1の通信周期及び第2の通信周期は、所定の制御周期の自然数倍であってもよい。
【0009】
上記態様において、第1の通信周期及び第2の通信周期が同一である場合、第1のデータ数及び第2のデータ数は同一であってもよい。
【0010】
上記態様において、第1の通信周期及び第2の通信周期が異なる場合、第1のデータ数及び第2のデータ数は異なってもよい。
【0011】
上記態様において、モータドライバは、制御信号を所定の出力周期で対象装置に出力し、所定の出力周期は、所定の制御周期と同一、又は、所定の制御周期よりも短くなるように設定されてもよい。
【0012】
上記態様において、センサドライバは、物理量を所定の入力周期でセンサから入力し、所定の入力周期は、所定の制御周期と同一、又は、所定の制御周期よりも短くなるように設定されてもよい。
【0013】
本発明の他の態様に係る制御装置は、センサにより測定される対象装置の物理量及び指令値に基づいて生成された制御信号を対象装置に送信し、フィードバック制御を行う制御装置であって、生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部と、物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部と、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御する制御部と、を備え、第1のデータ数は、所定の制御周期と第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される。
【0014】
この態様によれば、制御装置は、生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部と、物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部と、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御する制御部と、を備える。第1のデータ数は、所定の制御周期と第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される。したがって、フィードバック制御ゲインの制御が可能となるから、対象装置に関する制御応答性を向上させる。
【0015】
本発明の他の態様に係る制御方法は、センサにより測定される対象装置の物理量及び指令値に基づいて生成された制御信号を対象装置に送信し、フィードバック制御を行う制御装置で実行される制御方法であって、生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信することと、物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信することと、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御することと、を含み、第1のデータ数は、所定の制御周期と第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される。
【0016】
この態様によれば、制御装置は、生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信し、物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信し、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御する。第1のデータ数は、所定の制御周期と第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される。したがって、フィードバック制御ゲインの制御が可能となるから、対象装置に関する制御応答性を向上させる。
【0017】
本発明の他の態様に係る制御プログラムは、センサにより測定される対象装置の物理量及び指令値に基づいて生成された制御信号を対象装置に送信し、フィードバック制御を行う制御装置を、生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部、物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御する制御部、として機能させ、第1のデータ数は、所定の制御周期と第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される、制御プログラム。
【0018】
この態様によれば、制御装置を、生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部、物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御する制御部、として機能させる。第1のデータ数は、所定の制御周期と第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される。したがって、フィードバック制御ゲインの制御が可能となるから、対象装置に関する制御応答性を向上させる。
【発明の効果】
【0019】
本発明によれば、制御周期が通信周期よりも短い制御系において制御応答性を向上可能である。
【図面の簡単な説明】
【0020】
【
図1】本発明の実施形態に係る制御システムのネットワーク構成を示す図である。
【
図2】第1実施形態に係る制御システムの制御ブロック図である。
【
図3】第1実施形態に係る制御装置の物理的な構成を示す図である。
【
図4】第1実施形態に係る制御システムの制御装置により実行される制御処理のフローチャートである。
【
図5】第1実施形態に係る制御システムのモータドライバにより実行される制御処理のフローチャートである。
【
図6】第1実施形態に係る制御システムのセンサドライバにより実行される制御処理のフローチャートである。
【
図7】第1実施形態において比較例に係る制御システムの制御ブロック図の例を示す図である。
【
図8a】第1シミュレーション例の指令位置を示す図である。
【
図8b】第1シミュレーション例の指令速度を示す図である。
【
図9a】第1シミュレーション例において本実施形態に係る制御装置により制御された対象装置の位置を示す図である。
【
図9b】第1シミュレーション例において本実施形態に係る制御装置により制御された位置と指令位置との誤差を示す図である。
【
図9c】第1シミュレーション例において本実施形態に係る制御装置により制御された推力を示す図である。
【
図10a】第1シミュレーション例において比較例に係る制御装置により制御された対象装置の位置を示す図である。
【
図10b】第1シミュレーション例において比較例に係る制御装置により制御された位置と指令位置との誤差を示す図である。
【
図10c】第1シミュレーション例において比較例に係る制御装置により制御された推力を示す図である。
【
図11】第2実施形態に係る制御システムの制御ブロック図である。
【
図12】第2実施形態に係る制御システムの制御装置により実行される制御処理のフローチャートである。
【
図13】第2実施形態に係る制御システムのモータドライバにより実行される制御処理のフローチャートである。
【
図14】第2実施形態に係る制御システムのセンサドライバにより実行される制御処理のフローチャートである。
【
図15a】第2シミュレーション例において本実施形態に係る制御装置により制御された対象装置の位置を示す図である。
【
図15b】第2シミュレーション例において本実施形態に係る制御装置により制御された位置と指令位置との誤差を示す図である。
【
図15c】第2シミュレーション例において本実施形態に係る制御装置により制御された推力を示す図である。
【発明を実施するための形態】
【0021】
添付図面を参照して、本発明の好適な実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0022】
図1は、本発明の実施形態に係る制御システム100のネットワーク構成を示す図である。制御システム100は、制御信号に基づいて制御される対象装置20と、対象装置20の物理量を測定するセンサ30と、センサ30により測定された物理量及び指令値に基づいて生成された制御信号を対象装置20に送信し、フィードバック制御を行う制御装置10と、を含んで構成される。
【0023】
対象装置20は、制御信号に基づいて制御される装置であればどのようなものであってもよい。以下では、説明を具体的にするため、対象装置20として、可動部の位置をサーボモータによって制御する装置を仮定する。この場合、後述するとおり、対象装置20への制御が制御周期Ts毎に繰り返されることによって、物理量である位置yが指令値rに追従するように制御される。その結果、指令値rが目標値に収束する。また、制御信号はサーボモータの推力(トルク)である。
【0024】
センサ30は、対象装置20に関する任意の物理量を測定するものであってよい。例えば、対象装置20が可動部の位置を制御する装置である場合、センサ30は、当該可動部の位置を測定するものであればよい。
【0025】
制御装置10、対象装置20、及び、センサ30は、通信ネットワークNによって互いに通信可能に接続される。通信ネットワークNは、有線通信又は無線通信のネットワークであってよく、例えばEtherNet/IPやEtherCAT(登録商標)等の規格に従う通信ネットワークであってもよいし、ローカル5Gを用いる通信ネットワークであってもよい。
【0026】
制御システム100は、モータドライバ25及びセンサドライバ35をさらに含む。モータドライバ25は、対象装置20を制御するためのデバイスドライバである。例えば、モータドライバ25は、制御装置10から制御信号を受信し、対象装置20に制御信号を出力する。センサドライバ35は、センサ30を制御するためのデバイスドライバである。例えば、センサドライバ35は、センサ30によって測定された物理量を制御装置10に送信する。モータドライバ25及びセンサドライバ35は、対象装置20及びセンサ30と別体の構成として設けてもよいし、対象装置20及びセンサ30にインストールしてもよい。
【0027】
制御装置10は、機能的な構成として、例えば、制御部11、送信部12及び受信部13を有する。
【0028】
送信部12は、制御部11により生成された制御信号を、モータドライバ25を介して、対象装置20に送信する。例えば、送信部12は、制御部11により生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバ25に送信する。「第1のデータ数」及び「第1の通信周期」については、
図2を参照して説明する。
【0029】
受信部13は、対象装置20に関する物理量のデータを受信する。例えば、受信部13は、対象装置20に関する物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバ35から受信する。「第2のデータ数」及び「第2の通信周期」については、
図2を参照して説明する。
【0030】
制御部11は、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御する。「所定の制御周期」については、
図2を参照して説明する。
【0031】
制御部11は、指令値に対する物理量のずれが小さくなるように制御信号を生成する。制御装置10の制御対象が対象装置20の可動部の位置である場合、目標値及び指令値は位置に関する値となる。
【0032】
制御部11は、センサ30により測定された対象装置20の物理量、及び指令値に基づいて、対象装置20を制御するための制御信号を生成する。例えば、対象装置20が、可動部の位置をサーボモータによって制御する装置である場合、制御信号は、サーボモータの推力(トルク)を制御する信号となる。
【0033】
<第1実施形態>
図2は、第1実施形態に係る制御システム100の制御ブロック図である。以下では、制御装置10によって対象装置20の可動部の位置を制御する場合について説明する。第1実施形態に係る制御システム100では、制御装置10の所定の制御周期Tsは、制御装置10とモータドライバ25との通信周期Tc(第1の通信周期)、及び、制御装置10とセンサドライバ35との通信周期Tc(第2の通信周期)よりも短く、かつ、第1の通信周期Tcと第2の通信周期Tcは同一となるように設定される。
【0034】
最初に、制御装置10は、指令値rを生成する(S1)。本例の場合、指令値rは位置に関する値である。制御装置10は、生成された指令値rに基づいて、推力を表す制御信号uを生成し、制御信号uを出力する(S2)。なお、同図ではフィードフォワード制御ブロックを省略しているが、制御ブロックとしてフィードフォワード制御ブロックを含んでもよく、例えば、モデル追従型2自由度制御を適用してもよい。
【0035】
制御装置10は、制御装置10とモータドライバ25との通信周期Tc(第1の通信周期)、及び、制御装置10とセンサドライバ35との通信周期Tc(第2の通信周期)よりも短い制御周期Ts(所定の制御周期)で制御対象20を制御する。例えば、制御装置10は、第1の通信周期及び第2の通信周期が、制御周期Tsの自然数(n)倍となるように、この自然数nを決定する。例えば、制御周期Tsは、0.1msであり、通信周期Tcは、1msである場合、自然数nは、10である。
【0036】
ここで、自然数nは、制御装置10からモータドライバ25に一括で送信されるデータ数(第1のデータ数)に対応し、制御装置10がセンサドライバ35から一括で受信するデータ数(第2のデータ数)に対応する。このように、第1のデータ数は、制御周期Tsと第1の通信周期とに基づいて設定され、第2のデータ数は、制御周期Tsと第2の通信周期とに基づいて設定される。また、本第1実施形態に係る制御システム100では、第1の通信周期及び第2の通信周期が同一であり、第1のデータ数及び第2のデータ数も「n」となり同一である。
【0037】
制御装置10は、生成された制御信号uを含む、第1のデータ数(n)のデータを通信周期Tcでモータドライバ25に送信する(S3)。
【0038】
モータドライバ25は、制御装置10から制御信号uを受信する(S4)。モータドライバ25は、制御信号uを制御対象20に出力する(S5)。例えば、モータドライバ25は、制御信号uを出力周期Tout(所定の出力周期)で対象装置20に出力する。
図2に示すように、出力周期Toutは、制御周期Tsと同一となるように設定されることが好ましいが、これに限られない。例えば、出力周期Toutは、制御周期Tsよりも短くなるように設定されてもよい。
【0039】
制御対象20のサーボモータは、制御信号uである推力により制御される(S6)。ここで、制御対象20は、制御対象20の一部(例えば可動部)又は全部であってよい。続いて、制御対象20の物理量の一例である位置yがセンサ30により読み取られる(S7)。
【0040】
センサ30により読み取られた物理量である位置yがセンサドライバ35に入力される(S8)。センサドライバ35は、位置yを入力周期Tin(所定の入力周期)でセンサ30から入力する。
図2に示すように、入力周期Tinは、制御周期Tsと同一となるように設定されることが好ましいが、これに限られない。例えば、入力周期Tinは、制御周期Tsよりも短くなるように設定されてもよい。
【0041】
センサドライバ35は、位置yを制御装置10に送信する(S9)。制御装置10は、位置yを含む、第2のデータ数(n)のデータを通信周期Tcでセンサドライバ35から受信する(S10)。
【0042】
なお、制御装置10から制御信号uが送信され、当該制御信号uに対応する物理量である位置yを制御装置10が受信するまでの時間が、通信によるむだ時間Lである。したがって、往復の通信時間に対応するむだ時間Lは、2Tcとなり、離散化した制御アルゴリズムにおけるむだ時間周期数dは、2nとなる。このような制御ループ内におけるむだ時間については、所定のスミス補償処理やMPC(Model Predictive Control)等のむだ時間を陽に扱うことが可能な制御方式を適用して対処可能である。なお、後述する第2実施形態におけるむだ時間の対処についても同様に対応可能である。
【0043】
制御装置10は、センサドライバ35から受信した位置yを制御演算処理に対してフィードバックする(S2)。
【0044】
制御装置10は、このような制御を制御周期Ts毎に繰り返すことで、物理量である位置yが指令値rに追従するように制御を行う。その結果、指令値rが目標値に収束することになる。
【0045】
図3は、第1実施形態に係る制御装置10の物理的な構成を例示する図である。制御装置10は、演算部に相当するCPU(Central Processing Unit)10aと、記憶部に相当するRAM(Random Access Memory)10bと、記憶部に相当するROM(Read Only Memory)10cと、通信部10dと、入力部10eと、表示部10fと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。なお、本例では制御装置10が一台のコンピュータで構成される場合について説明するが、制御装置10は、複数のコンピュータが組み合わされて実現されてもよい。また、
図3に示す構成は一例であり、制御装置10はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
【0046】
CPU10aは、RAM10b又はROM10cに記憶されたプログラムを実行し、各種の制御やデータの演算及び加工を行う制御部として機能する。例えば、CPU10aは、対象装置20を制御するためのプログラム(制御プログラム)を実行する。また、CPU10aは、入力部10eや通信部10dから種々のデータを受け取り、データの演算結果を表示部10fに表示したり、RAM10bに格納したりする。
【0047】
RAM10bは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記憶素子で構成されてよい。RAM10bは、例えばCPU10aが実行するプログラム、そのプログラムで用いるデータを記憶してよい。なお、これらは例示であって、RAM10bには、これら以外のデータが記憶されてもよいし、これらの一部が記憶されなくてもよい。
【0048】
ROM10cは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記憶素子で構成されてよい。ROM10cは、例えば制御プログラムや、書き換えが行われないデータを記憶してよい。
【0049】
通信部10dは、制御装置10を他の機器に接続するインターフェースである。通信部10dは、LAN等の通信ネットワークに接続されてよい。
【0050】
入力部10eは、ユーザからデータの入力を受け付けるものであり、例えば、キーボード及びタッチパネルを含んでよい。
【0051】
表示部10fは、CPU10aによる演算結果を視覚的に表示するものであり、例えば、LCD(Liquid Crystal Display)により構成されてよい。表示部10fは、例えば、制御信号や物理量を時系列で表示してよい。
【0052】
制御プログラムは、RAM10bやROM10c等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信部10dにより接続される通信ネットワークを介して提供されてもよい。制御装置10では、CPU10aが制御プログラムを実行することにより、上記で説明した様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、制御装置10は、CPU10aとRAM10bやROM10cが一体化したLSI(Large-Scale Integration)を備えてもよい。
【0053】
図4から
図6を参照して、第1実施形態に係る制御システム100の制御装置10、モータドライバ25及びセンサドライバ35により実行される制御処理の一例について説明する。
【0054】
まず
図4を参照して、第1実施形態に係る制御システム100の制御装置10により実行される制御処理の一例について説明する。
【0055】
最初に、制御装置10は、初期処理を実行する(ステップS11)。初期処理には、例えば、通信周期Tcと制御周期Tsに基づいて一括伝送データ数n(n=Tc/Ts)を決定すること、時間管理タイマを初期化(t=0)すること、及び、受信バッファでデータ数nのデータを受信できるまで待機すること等が含まれる。
【0056】
制御装置10は、通信ループ処理を開始する。通信ループ処理は、通信周期毎に繰り返し実行される処理である(後述するステップS12からステップS20までの処理)。制御装置10は、
図1及び2に示すセンサドライバ35から物理量を含むデータ数nのデータを一括で受信する(S12)。
【0057】
制御装置10は、制御ループ処理を開始する。制御ループ処理は、所定の制御周期毎に繰り返し実行される処理である(後述するステップS13からステップS17までの処理)。
【0058】
制御ループ処理において、最初に、制御装置10は、データ数nのデータのうち一のデータについて処理を実行する。制御装置10は、フィードバック(FB)データの取り出しを実行する(S13)。
【0059】
制御装置10は、FBデータに含まれる物理量と指令値に基づいて制御演算を実行して制御信号を生成する(S14)。
【0060】
制御装置10は、制御演算によって生成された推力データを格納する(S15)。例えば、制御装置10は、送信バッファの今制御周期における位置に推力データを格納する。
【0061】
制御装置10は、時間管理タイマを(t=t+Ts)に更新する(S16)。次に、制御装置10は、制御ループ処理を終了するか否か判定する。例えば、制御装置10は、更新された時間管理タイマ(t=t+Ts)が通信周期Tc以上であるか否かを判定する(S17)。ステップS17においてNoの場合は、ステップS13に戻り、ステップS17においてYesの場合は、制御ループ処理を抜けてステップS18に進む。
【0062】
制御装置10は、時間管理タイマを「0」(ゼロ)に戻し(S18)、データ数nのデータを一括して、
図1及び2に示すモータドライバ25に送信する(S19)。
【0063】
制御装置10は、通信ループ処理を終了するか否か判定する(S20)。この判定がNoである場合には、ステップS12に戻る。他方で、この判定がYesである場合に、通信ループ処理を抜けて本処理が終了する。
【0064】
次に、
図5を参照して、第1実施形態に係る制御システム100のモータドライバ25により実行される制御処理の一例について説明する。
【0065】
最初に、モータドライバ25は、初期処理を実行する(ステップS31)。初期処理には、例えば、通信周期Tcと出力周期Toutに基づいて一括伝送データ数n(n=Tc/Tout)を決定すること、時間管理タイマを初期化(t=0)すること、及び、受信バッファでデータ数nのデータを受信できるまで待機すること等が含まれる。
【0066】
モータドライバ25は、通信ループ処理を開始する。通信ループ処理は、通信周期毎に繰り返し実行される処理である(後述するステップS32からステップS38までの処理)。モータドライバ25は、
図1及び2に示す制御装置10から制御信号を含むデータ数nのデータを一括で受信する(S32)。
【0067】
モータドライバ25は、出力ループ処理を開始する。出力ループ処理は、出力周期Tout毎に繰り返し実行される処理である(後述するステップS33からステップS36までの処理)。
【0068】
出力ループ処理において、最初に、モータドライバ25は、データ数nのデータのうち一のデータについて処理を実行する。モータドライバ25は、推力データの取り出しを実行する(S33)。例えば、モータドライバ25は、受信バッファのデータ数nのデータから今出力周期用のデータを取り出す。
【0069】
モータドライバ25は、取り出した推力データを制御対象20に出力する(S34)。
【0070】
モータドライバ25は、時間管理タイマを(t=t+Ts)に更新する(S35)。次に、モータドライバ25は、出力ループ処理を終了するか否か判定する。例えば、制御装置10は、更新された時間管理タイマ(t=t+Ts)が通信周期Tc以上であるか否かを判定する(S36)。ステップS36においてNoの場合は、ステップS33に戻り、ステップS36においてYesの場合は、出力ループ処理を抜けてステップS37に進む。
【0071】
モータドライバ25は、時間管理タイマを「0」(ゼロ)に戻す(S37)。
【0072】
モータドライバ25は、通信ループ処理を終了するか否か判定する(S38)。この判定がNoである場合には、ステップS32に戻る。他方で、この判定がYesである場合に、通信ループ処理を抜けて本処理が終了する。
【0073】
図6を参照して、第1実施形態に係る制御システム100のセンサドライバ35により実行される制御処理の一例について説明する。
【0074】
最初に、センサドライバ35は、初期処理を実行する(ステップS41)。初期処理には、例えば、通信周期Tcと入力周期Tinに基づいて一括伝送データ数n(n=Tc/Tin)を決定すること、及び、時間管理タイマを初期化(t=0)すること等が含まれる。
【0075】
センサドライバ35は、通信ループ処理を開始する。通信ループ処理は、通信周期毎に繰り返し実行される処理である(後述するステップS42からステップS48までの処理)。また、センサドライバ35は、入力ループ処理を開始する。入力ループ処理は、入力周期Tin毎に繰り返し実行される処理である(後述するステップS42からステップS45までの処理)。
【0076】
入力ループ処理において、最初に、センサドライバ35は、データ数nのデータのうち一のデータについて処理を実行する。センサドライバ35は、センサ30で測定された物理量の入力処理を実行する(S42)。
【0077】
センサドライバ35は、物理量を測定データとして格納する(S43)。例えば、センサドライバ35は、送信バッファの今入力周期における位置に計測データを格納する。
【0078】
センサドライバ35は、時間管理タイマを(t=t+Ts)に更新する(S44)。次に、センサドライバ35は、入力ループ処理を終了するか否か判定する。例えば、センサドライバ35は、更新された時間管理タイマ(t=t+Ts)が通信周期Tc以上であるか否かを判定する(S45)。ステップS45においてNoの場合は、ステップS42に戻り、ステップS45においてYesの場合は、入力ループ処理を抜けてステップS46に進む。
【0079】
センサドライバ35は、時間管理タイマを「0」(ゼロ)に戻し(S46)、データ数nのデータを一括して、
図1から
図3に示す制御装置10に送信する(S47)。
【0080】
センサドライバ35は、通信ループ処理を終了するか否か判定する(S48)。この判定がNoである場合には、ステップS42に戻る。他方で、この判定がYesである場合に、通信ループ処理を抜けて本処理が終了する。
【0081】
ここで、
図7を参照して、第1実施形態において比較例に係る制御システム100Aの制御ブロック図の例を説明する。この比較例は、後述するシミュレーション結果における「比較例」である。
【0082】
比較例に係る制御システム100Aでは、制御装置10の所定の制御周期Tsは、制御装置10とモータドライバ25との通信周期Tc(第1の通信周期)、及び、制御装置10とセンサドライバ35との通信周期Tc(第2の通信周期)と同一、かつ、第1の通信周期Tcと第2の通信周期Tcは同一となるように設定される。
【0083】
このようなフィードバック制御系においては、以下の理由(1)及び(2)によって、通常、制御周期Tsは通信周期Tcと同一となるように設定される場合がある。
【0084】
(1)もし仮に、制御周期Tsが通信周期Tcよりも長い場合は、フィードバック位置のきめ細かな情報を無駄にすることになり、フィードバック制御系における制御性能が低下する。
【0085】
(2)他方で、もし仮に、制御周期Tsが通信周期Tcよりも短い場合は、同一データのフィードバック位置を使用して、複数回の制御演算を実行することになるため、問題が発生する。より具体的には、フィードバック制御系における制御演算部では、制御周期時間が経過しても、フィードバック位置が同一値だと、制御対象の位置が停止していると誤認識する可能性がある。そして、指令位置の変化方向に動かす力を不必要に大きく計算する(例えば過大な推力を算出する)おそれがあり、結果として振動的になる。
【0086】
以下では、
図7に示す、比較例に係る制御システム100Aを具体的に説明する。
図2に示す第1実施形態に係る制御システム100のブロック図と異なる点について特に説明し、共通する点については省略する。例えば、ステップS1,S6,S7の処理に関する説明は省略する。
【0087】
図7に示すように、例えば、制御装置10は、制御周期Tsが、制御装置10とモータドライバ25との通信周期Tc(第1の通信周期)、及び、制御装置10とセンサドライバ35との通信周期Tc(第2の通信周期)と同一となるように設定する(S2a)。
【0088】
制御装置10は、生成された制御信号uを含むデータを制御周期Tsと同一の通信周期Tcでモータドライバ25に送信する(S3a)。
【0089】
モータドライバ25は、制御装置10から制御信号uを受信する(S4a)。モータドライバ25は、制御信号uを制御対象20に出力する(S5a)。例えば、モータドライバ25は、制御信号uを所定の出力周期で対象装置20に出力する。所定の出力周期は、制御周期Tsと同一となるように設定されることが好ましいが、これに限られない。例えば、所定の出力周期は、制御周期Tsよりも短くなるように設定されてもよい。
【0090】
センサ30により読み取られた物理量である位置yがセンサドライバ35に入力される(S8a)。センサドライバ35は、位置yを所定の入力周期でセンサ30から入力する。所定の入力周期は、制御周期Tsと同一となるように設定されることが好ましいが、これに限られない。例えば、所定の入力周期は、制御周期Tsよりも短くなるように設定されてもよい。
【0091】
センサドライバ35は、位置yを制御装置10に送信する(S9a)。制御装置10は、位置yを含むデータを通信周期Tcでセンサドライバ35から受信する(S10a)。
【0092】
なお、上記のとおり、制御装置10から制御信号uが送信され、当該制御信号uに対応する物理量である位置yを制御装置10が受信するまでの時間が、通信によるむだ時間Lである。。したがって、比較例に係る制御システム100Aにおいて、往復の通信時間に対応するむだ時間Lは、2Tcとなり、離散化した制御アルゴリズムにおけるむだ時間周期数dは、2となる。
【0093】
[第1シミュレーション結果]
第1実施形態に係る制御システム100の効果を検証するために行った第1シミュレーションの結果について以下に説明する。
【0094】
図8aは、第1シミュレーション例の指令位置を示す図である。
図8bは、第1シミュレーション例の指令速度を示す図である。特に、
図8bに示す第1シミュレーション例の指令速度は、
図8aに示す第1シミュレーション例の指令位置について微分処理を実行したものである。本シミュレーション例において、指令位置の軌道に関しては、時刻10[ms]より開始し、振幅20[mm]、周波数4[Hz]の正弦波である。
【0095】
第1シミュレーション例のその他の条件は以下のとおりである。慣性質量Jは10kg、粘性摩擦係数Cは0[Ns/m]、むだ時間周期数dは20(第1実施形態に係る制御システム100の例)と、2(比較例)である。また、通信周期Tcは1[ms]であり、制御周期Tsは0.1[ms](第1実施形態に係る制御システム100の例)と1[ms](比較例)である。本シミュレーション例においてモデル誤差及び外乱は生じていないとする。
【0096】
図9aから
図9cに、第1実施形態に係る制御システム100の制御装置に対するシミュレーション結果を示し、
図10aから
図10cに、比較例に係る制御システム100Aの制御装置に対するシミュレーション結果を示す。
【0097】
図9aは、第1実施形態に係る制御システム100の制御装置10により制御された対象装置20の位置yを示す図である。同図では、対象装置20の位置yを実線で示し、指令値rを破線で示している。
図9bは、第1実施形態に係る制御装置10により制御された位置yと指令値rとの誤差(偏差)を示す図である。
図9cは、第1実施形態に係る制御装置10により制御された推力を示す図である。推力は、制御装置10から対象装置20に送信される制御信号である。
【0098】
図10aは、比較例に係る制御システム100Aの制御装置により制御された対象装置の位置yを示す図である。同図では、対象装置20の位置yを実線で示し、指令値rを破線で示している。
図10bは、比較例に係る制御装置により制御された位置yと指令値rとの誤差(偏差)を示す図である。
図10cは、比較例に係る制御装置により制御された推力を示す図である。
【0099】
まず、比較例に係る制御システム100Aでは、第1実施形態に係る制御システム100と比べて制御周期が長いために、フィードバック制御の制御ゲインを増加することは容易ではない。これは、制御周期が長い場合には、制御ゲインを増加すると発振する可能性があるためである。
【0100】
ここで第1実施形態と比較例とを比較すると、
図10bに示すように、比較例におけるピーク偏差P2は1.814[mm]である一方で、
図9bに示すように、第1実施形態におけるピーク偏差P1は1.115[mm]である。つまり、第1実施形態におけるピーク偏差P1は、比較例よりもおよそ40%減少している。ここで、むだ時間の2[ms]分は指令値を先行して与えるなどの対応で削減が可能である。第1シミュレーション例の位置軌道における最大速度は500[mm/s]であるため、むだ時間2[ms]に起因する位置偏差は1[mm]となる。よって、この位置偏差1[mm]を除く場合のピーク偏差P2は0.814[mm]である一方で、第1実施形態における、位置偏差1[mm]を除く場合のピーク偏差P1は0.115[mm]である。したがって、位置偏差1[mm]を除く場合のピーク偏差P1は、比較例のピーク偏差よりもおよそ86%減少している。
【0101】
なお、第1実施形態に係る制御システム100、及び、比較例に係る制御システム100Aでは、モデル追従型2自由度制御を適用している。また第1実施形態に係る制御システム100、及び、比較例に係る制御システム100Aとも、速度比例ゲインを基準として、他のゲインは同一比率で設定している。なお、第1実施形態に係る制御システム100では、比較例に係る制御システム100Aに対して、約8倍の高ゲインを設定した。例えば、速度比例ゲインについては、比較例の60[Hz]に対して第1実施形態では、500[Hz]である。
【0102】
上述したように、第1実施形態に係る制御システム100によれば、制御装置10は、生成された制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信し、物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信し、第1通信周期及び第2通信周期よりも短い所定の制御周期で制御対象を制御する。また、第1のデータ数は、所定の制御周期と第1の通信周期とに基づいて設定され、第2のデータ数は、所定の制御周期と第2の通信周期とに基づいて設定される。第1実施形態では、特に、制御装置10の所定の制御周期Tsは、制御装置10とモータドライバ25との通信周期Tc(第1の通信周期)、及び、制御装置10とセンサドライバ35との通信周期Tc(第2の通信周期)よりも短く、かつ、第1の通信周期Tcと第2の通信周期Tcは同一となるように設定される。第1実施形態に係る制御システム100では、例えば、第1の通信周期及び第2の通信周期は、制御周期Tsの自然数倍である。上記のとおり、位置誤差に関するピーク偏差が減少していることからも明らかなとおり、対象装置に関するフィードバック制御の応答性が向上する(例えば、高ゲイン化を実現可能である。)。
【0103】
<第2実施形態>
図11は、第2実施形態に係る制御システム100Bの制御ブロック図である。以下では、
図2に示す第1実施形態に係る制御システム100の制御ブロック図と同様に、制御装置10によって対象装置20の可動部の位置を制御する場合について説明する。
【0104】
第2実施形態に係る制御システム100Bでは、制御装置10の所定の制御周期Tsは、制御装置10とモータドライバ25との通信周期Tc1(第1の通信周期)、及び、制御装置10とセンサドライバ35との通信周期Tc2(第2の通信周期)よりも短く、かつ、第1の通信周期Tcと第2の通信周期Tcが異なるように設定される。つまり、第2実施形態に係る制御システム100Bの制御装置10におけるデータ送信、及び、データ受信は異なる通信周期である。
【0105】
以下では、
図2に示す第1実施形態に係る制御システム100の制御ブロック図と異なる点について特に説明し、共通する点については説明を省略する。例えば、ステップS1,S6,S7の処理に関する説明は省略する。
【0106】
図11に示すステップS2bにおいて、例えば、制御装置10は、制御装置10とモータドライバ25との通信周期Tc1が制御周期Tsの自然数(m)倍となるように、この自然数mを決定する。また、制御装置10は、制御装置10とセンサドライバ35との通信周期Tc2が、制御周期Tsの自然数(n)倍となるように、この自然数nを決定する。例えば、制御周期Tsが0.1msであり、通信周期Tc1が1msである場合、自然数mは10である。また、制御周期Tsが0.1msであり、通信周期Tc2が0.5msである場合、自然数nは5である。
【0107】
ここで、自然数mは、制御装置10からモータドライバ25に一括で送信されるデータ数(第1のデータ数)に対応し、自然数nは、制御装置10がセンサドライバ35から一括で受信するデータ数(第2のデータ数)に対応する。
【0108】
制御装置10は、生成された制御信号uを含む、第1のデータ数(m)のデータを通信周期Tcでモータドライバ25に送信する(S3b)。
【0109】
モータドライバ25は、制御装置10から制御信号uを含む、第1のデータ数(m)のデータを受信する(S4b)。モータドライバ25は、制御信号uを制御対象20に出力する(S5b)。例えば、モータドライバ25は、制御信号uを出力周期Toutで対象装置20に出力する。
【0110】
センサ30により読み取られた物理量である位置yがセンサドライバ35に入力される(S8b)。センサドライバ35は、位置yを入力周期Tinでセンサ30から入力する。センサドライバ35は、位置yを制御装置10に送信する(S9b)。制御装置10は、位置yを含む、第2のデータ数(n)のデータを通信周期Tc2でセンサドライバ35から受信する(S10b)。
【0111】
なお、上記のとおり、制御装置10から制御信号uが送信され、当該制御信号uに対応する物理量である位置yを制御装置10が受信するまでの時間が、通信によるむだ時間Lである。したがって、第2実施形態に係る制御システム100Bにおいて、往復の通信時間に対応するむだ時間Lは、Tc1+Tc2となり、離散化した制御アルゴリズムにおけるむだ時間周期数dは、m+nとなる。
【0112】
図12から
図14を参照して、第2実施形態に係る制御システム100Bの制御装置10、モータドライバ25及びセンサドライバ35により実行される制御処理の一例について説明する。
【0113】
まず
図12を参照して、第2実施形態に係る制御システム100Bの制御装置10により実行される制御処理の一例について説明する。
【0114】
最初に、制御装置10は、初期処理を実行する(ステップS51)。初期処理には、例えば、通信周期Tc1及び通信周期Tc2と制御周期Tsに基づいて一括伝送データ数m(m=Tc1/Ts)及びn(n=Tc2/Ts)を決定すること、時間管理タイマを初期化(t1=0,t2=0)すること、及び、受信バッファでデータ数nのデータを受信できるまで待機して待機後受信すること等が含まれる。
【0115】
制御装置10は、第1の通信ループ処理を開始する。例えば、第1の通信ループ処理は、通信周期Tc2毎に繰り返し実行される処理である(後述するステップS52からステップ62までの処理)。制御装置10は、
図11に示すセンサドライバ35から物理量を含むデータ数nのデータを一括で受信する(S52)。
【0116】
制御装置10は、制御ループ処理を開始する。制御ループ処理は、所定の制御周期毎に繰り返し実行される処理である(後述するステップS53からステップS60までの処理)。
【0117】
制御ループ処理において、最初に、制御装置10は、データ数nのデータのうち一のデータについて処理を実行する。制御装置10は、フィードバック(FB)データの取り出しを実行する(S53)。制御装置10は、FBデータに含まれる物理量と指令値に基づいて制御演算を実行して制御信号を生成する(S54)。制御装置10は、制御演算によって生成された推力データを格納する(S55)。
【0118】
制御装置10は、各時間管理タイマを(t1=t1+Ts)及び(t2=t2+Ts)に更新する(S56)。
【0119】
制御装置10は、第2の通信ループ処理を開始する。例えば、第2の通信ループ処理は、通信周期Tc1毎に繰り返し実行される処理である(後述するステップS57からステップ59までの処理)。制御装置10は、第2の通信ループ処理を終了するか否か判定する。例えば、制御装置10は、更新された時間管理タイマ(t1)が通信周期Tc1以上であるか否かを判定する(S57)。ステップS57においてNoの場合は、ステップS60に進み、ステップS57においてYesの場合は、ステップS58に進む。
【0120】
制御装置10は、データ数mのデータを一括で
図1及び2に示すモータドライバ25に送信し(S58)、時間管理タイマ(t1)を「0」(ゼロ)に戻す(S59)。
【0121】
制御装置10は、制御ループ処理を終了するか否か判定する(S60)。例えば、制御装置10は、更新された時間管理タイマ(t2)が通信周期Tc2以上であるか否かを判定する。ステップS60においてNoの場合は、ステップS53に戻り、ステップS60においてYesの場合は、制御ループ処理を抜けてステップS61に進む。制御装置10は、時間管理タイマt2を「0」(ゼロ)に戻す(S61)。
【0122】
制御装置10は、第1の通信ループ処理を終了するか否か判定する(S62)。この判定がNoである場合には、ステップS52に戻る。他方で、この判定がYesである場合に、第1の通信ループ処理を抜けて本処理が終了する。
【0123】
次に、
図13を参照して、第2実施形態に係る制御システム100Bのモータドライバ25により実行される制御処理の一例について説明する。
【0124】
最初に、モータドライバ25は、初期処理を実行する(ステップS71)。初期処理には、例えば、通信周期Tc1と出力周期Toutに基づいて一括伝送データ数m(m=Tc1/Tout)を決定すること、時間管理タイマを初期化(t=0)すること、及び、受信バッファでデータ数mのデータを受信できるまで待機すること等が含まれる。
【0125】
モータドライバ25は、通信ループ処理を開始する。通信ループ処理は、通信周期毎に繰り返し実行される処理である(後述するステップS72からステップS78までの処理)。モータドライバ25は、
図11に示す制御装置10から制御信号を含むデータ数mのデータを一括で受信する(S72)。
【0126】
モータドライバ25は、出力ループ処理を開始する。出力ループ処理は、出力周期Tout毎に繰り返し実行される処理である(後述するステップS73からステップS76までの処理)。
【0127】
出力ループ処理において、最初に、モータドライバ25は、データ数mのデータのうち一のデータについて処理を実行する。モータドライバ25は、推力データの取り出しを実行する(S73)。例えば、モータドライバ25は、受信バッファのデータ数mのデータから今入力周期用のデータを取り出す。モータドライバ25は、取り出した推力データを制御対象20に出力する(S74)。
【0128】
モータドライバ25は、時間管理タイマを(t=t+Ts)に更新する(S75)。次に、モータドライバ25は、出力ループ処理を終了するか否か判定する。例えば、制御装置10は、更新された時間管理タイマ(t=t+Ts)が通信周期Tc1以上であるか否かを判定する(S76)。ステップS76においてNoの場合は、ステップS73に戻り、ステップS76においてYesの場合は、出力ループ処理を抜けてステップS77に進む。モータドライバ25は、時間管理タイマtを「0」(ゼロ)に戻す(S77)。
【0129】
モータドライバ25は、通信ループ処理を終了するか否か判定する(S78)。この判定がNoである場合には、ステップS72に戻る。他方で、この判定がYesである場合に、通信ループ処理を抜けて本処理が終了する。
【0130】
図14を参照して、第2実施形態に係る制御システム100Bのセンサドライバ35により実行される制御処理の一例について説明する。
【0131】
最初に、センサドライバ35は、初期処理を実行する(ステップS81)。初期処理には、例えば、通信周期Tc2と入力周期Tinに基づいて一括伝送データ数n(n=Tc2/Tin)を決定すること、及び、時間管理タイマを初期化(t=0)すること等が含まれる。
【0132】
センサドライバ35は、通信ループ処理を開始する。通信ループ処理は、通信周期毎に繰り返し実行される処理である(後述するステップS82からステップS88までの処理)。また、センサドライバ35は、入力ループ処理を開始する。入力ループ処理は、入力周期Tin毎に繰り返し実行される処理である(後述するステップS82からステップS85までの処理)。
【0133】
入力ループ処理において、最初に、センサドライバ35は、データ数nのデータのうち一のデータについて処理を実行する。センサドライバ35は、センサ30で測定された物理量の入力処理を実行する(S82)。
【0134】
センサドライバ35は、物理量を測定データとして格納する(S83)。例えば、センサドライバ35は、送信バッファの今入力周期における位置に計測データを格納する。
【0135】
センサドライバ35は、時間管理タイマを(t=t+Ts)に更新する(S84)。次に、センサドライバ35は、入力ループ処理を終了するか否か判定する。例えば、センサドライバ35は、更新された時間管理タイマ(t=t+Ts)が通信周期Tc2以上であるか否かを判定する(S85)。ステップS85においてNoの場合は、ステップS82に戻り、ステップS85においてYesの場合は、入力ループ処理を抜けてステップS86に進む。
【0136】
センサドライバ35は、時間管理タイマを「0」(ゼロ)に戻し(S86)、データ数nのデータを一括して、
図11に示す制御装置10に送信する(S87)。
【0137】
センサドライバ35は、通信ループ処理を終了するか否か判定する(S88)。この判定がNoである場合には、ステップS82に戻る。他方で、この判定がYesである場合に、通信ループ処理を抜けて本処理が終了する。
【0138】
[第2シミュレーション結果]
第2実施形態に係る制御システム100Bの効果を検証するために行った第2シミュレーションの結果について以下に説明する。
【0139】
図15aから
図15cに、第2実施形態に係る制御システム100Bの制御装置に対する第2シミュレーション結果を示す。第1シミュレーション例と、第2シミュレーション例とは、以下の点を除き、シミュレーションの条件は共通する。第2シミュレーション例では、例えば、むだ時間周期数dは14(1.4[ms])(第2実施形態に係る制御システム100Bの例)である。また、通信周期Tc1は0.4[ms]、通信周期Tc2は1[ms]であり、制御周期Tsは0.1[ms]である。つまり、第1のデータ数(m)は4であり、第2のデータ数(n)は10である。
【0140】
図15aは、第2実施形態に係る制御システム100Bの制御装置10により制御された対象装置20の位置yを示す図である。同図では、対象装置20の位置yを実線で示し、指令値rを破線で示している。
図15bは、第2実施形態に係る制御装置10により制御された位置yと指令値rとの誤差(偏差)を示す図である。
図15cは、第2実施形態に係る制御装置10により制御された推力を示す図である。
【0141】
ここで第2実施形態と第1実施形態を比較すると、
図9bに示すように、第1実施形態におけるピーク偏差P1は1.115[mm]である一方で、
図15bに示すように、第2実施形態におけるピーク偏差P3は0.813[mm]である。第2実施形態におけるピーク偏差P3が第1実施形態におけるピーク偏差P1よりもさらに減少している理由の一つは、むだ時間に関して、第1実施形態では2[ms]であったのに対して、第2実施形態では1.4msに減少しているためである。
【0142】
上述したように、第2実施形態に係る制御システム100Bによれば、制御装置10は、制御装置10の所定の制御周期Tsは、制御装置10とモータドライバ25との通信周期Tc1(第1の通信周期)、及び、制御装置10とセンサドライバ35との通信周期Tc2(第2の通信周期)よりも短く、かつ、第1の通信周期Tcと第2の通信周期Tcが異なるように設定される。第2実施形態に係る制御システム100Bでは、フィードバック制御ゲインの制御(例えば高ゲイン化)が可能となり、第1実施形態に係る制御システム100と比べて、位置誤差に関するピーク偏差が減少していることからも明らかなとおり、対象装置に関するフィードバック制御の応答性が向上する(例えば、高ゲイン化を実現可能である。)。
【0143】
以上説明した実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。また、上述した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。
【0144】
[付記]
本実施形態における態様は、以下のような開示を含む。
【0145】
(付記1)
制御信号を受信し、対象装置(20)に前記制御信号を出力するモータドライバ(25)と、
前記制御信号に基づいて制御される前記対象装置(20)の物理量を測定するセンサ(30)と、
前記物理量を送信するセンサドライバ(35)と、
前記物理量及び指令値に基づいて生成された前記制御信号を前記対象装置(20)に送信し、フィードバック制御を行う制御装置(10)と、を備え、
前記制御装置(10)は、
生成された前記制御信号を含む、第1のデータ数のデータを第1の通信周期で前記モータドライバに送信する送信部(12)と、
前記物理量を含む、第2のデータ数のデータを第2の通信周期で前記センサドライバから受信する受信部(13)と、
前記第1通信周期及び前記第2通信周期よりも短い所定の制御周期で前記制御対象を制御する制御部(11)と、
を備え、
前記第1のデータ数は、前記所定の制御周期と前記第1の通信周期とに基づいて設定され、
前記第2のデータ数は、前記所定の制御周期と前記第2の通信周期とに基づいて設定される、
制御システム(100)。
(付記2)
センサ(30)により測定される対象装置(20)の物理量及び指令値に基づいて生成された前記制御信号を前記対象装置(20)に送信し、フィードバック制御を行う制御装置(10)であって、
生成された前記制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部(12)と、
前記物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部(13)と、
前記第1通信周期及び前記第2通信周期よりも短い所定の制御周期で前記制御対象を制御する制御部(11)と、
を備え、
前記第1のデータ数は、前記所定の制御周期と前記第1の通信周期とに基づいて設定され、
前記第2のデータ数は、前記所定の制御周期と前記第2の通信周期とに基づいて設定される、
制御装置(10)。
(付記3)
センサ(30)により測定される対象装置(20)の物理量及び指令値に基づいて生成された前記制御信号を前記対象装置(20)に送信し、フィードバック制御を行う制御装置(10)で実行される制御方法であって、
生成された前記制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信することと、
前記物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信することと、
前記第1通信周期及び前記第2通信周期よりも短い所定の制御周期で前記制御対象を制御することと、
を含み、
前記第1のデータ数は、前記所定の制御周期と前記第1の通信周期とに基づいて設定され、
前記第2のデータ数は、前記所定の制御周期と前記第2の通信周期とに基づいて設定される、
制御方法。
(付記4)
センサ(30)により測定される対象装置(20)の物理量及び指令値に基づいて生成された前記制御信号を前記対象装置(20)に送信し、フィードバック制御を行う制御装置(10)を、
生成された前記制御信号を含む、第1のデータ数のデータを第1の通信周期でモータドライバに送信する送信部(12)、
前記物理量を含む、第2のデータ数のデータを第2の通信周期でセンサドライバから受信する受信部(13)、
前記第1通信周期及び前記第2通信周期よりも短い所定の制御周期で前記制御対象を制御する制御部(11)、
として機能させ、
前記第1のデータ数は、前記所定の制御周期と前記第1の通信周期とに基づいて設定され、
前記第2のデータ数は、前記所定の制御周期と前記第2の通信周期とに基づいて設定される、
制御プログラム。
【符号の説明】
【0146】
10…制御装置、10a…CPU、10b…RAM、10c…ROM、10d…通信部、10e…入力部、10f…表示部、11…制御部、12…送信部、13…受信部、14…バッファ部、20…対象装置、25…モータドライバ、30…センサ、35…センサドライバ、100,100A,100B…制御システム