図を参照しながら、いくつかの実施形態を説明する。図中の類似する符号は、類似する要素を表す。以下の説明における多数の具体的な詳細は、説明を目的とし、この開示を理解するために提供される。しかしながら、実施形態は、これらの具体的な詳細なしに、もしくは、他の方法、要素、材料などを用いて実施可能である。他の例として、構造および装置は、1以上の実施形態の説明を容易にするためにブロック図の形態で示される。
ここで説明されるシステムおよび方法は、制御された機械システムのための慣性および摩擦係数の推定値を生成する技術に関する。ここに開示される1以上の実施形態では、以下に詳細に明らかにされるテストシーケンスを通して機械システムを動作させることにより、これらのパラメータを実質的に自動的に推定することができる。このテストシーケンスの結果は、そのシステムに対して推定される正確な慣性および摩擦係数を生成するために用いることができる。これら推定されたパラメータは、実質的に、簡略化された正確なチューニングおよび動作システムの制御を容易にするために用いることができる。
(慣性および摩擦係数の推定)
図1は、簡略化された閉ループ動作制御の構造を表している。コントローラ102は、機械的負荷106を動かすモータ104を制御するようプログラムされている。コントローラ102、モータ104および負荷106は、例示される動作制御システムの基本的な要素を含む。非限定的に例示される用途では、負荷106は、単軸もしくは多軸ロボットの1つの軸、または、ポジショニングシステムを表す。そのような用途では、コントローラ102は、負荷106を望ましいポジションに望ましいスピードで移動させることをモータ104に命令する制御信号108を送る。制御信号108は、モータ104に直接与えても良いし、モータ104に供給する電力(および、モータのスピードと方向)を制御するモータ駆動部(図示しない)に与えても良い。フィードバック信号110は、モータ104または負荷106、もしくは、その両者の現状態(すなわち、ポジション、速度など)を実質的にリアルタイムで示す。サーボ駆動システムでは、例えば、モータの絶対的または相対的なポジションを追跡する符号化器または解析器(図示しない)によりフィードバック信号110を生成できる。速度センサを欠くセンサ無しのシステムでは、フィードバック信号は、スピードまたはポジション推定器により提供される。移動動作の間、コントローラは、ロード106が正確に目標のポジションに到達するようにフィードバック信号110を監視する。コントローラ102は、フィードバック信号110により示される現実のポジションを目標のポジションと比較し、現実および目標のポジション間の誤差を減少または無くすように制御信号108を調整する。
他の例示的な用途では、負荷106は、モータ104で駆動される回転負荷(例えば、ポンプ、洗浄機、遠心分離器など)を表し、コントローラ102は、負荷の回転速度を制御する。この例では、コントローラ102は、モータ104に(制御信号108を介して)第1速度から第2速度へ移行する命令を与え、フィードバック信号110に基づいて制御信号108に必要な調整を行う。本用途のパラメータの推定技術は、上記の動作制御システムの例示された形式を用いることに限定されるのではなく、いかなる動作制御の用途にも好適に応用できることが認識されるべきである。
望ましいポジションまたは速度と、目標のポジションまたは速度と、の間の誤差(フィードバック信号110により伝えられる)に応答してコントローラ102によって生成される制御信号出力は、制御ループの利得係数に依存する。好適な利得の選定は、制御を受ける機械システムの物理的な特性に依存するため、設計技術者は、しばしば試行錯誤的な手法(すなわち、制御ループのチューニング)を用いて好適な利得係数を明らかにしなければならない。例えば、大きな慣性(加速または減速に対する抵抗)を有する機械システム、特に、目標のポジションまたは速度への速い収束が求められる用途では、新しいポジションまたは速度へ動き出すために比較的大きな初期トルクを必要とするだろう。しかしながら、大きなトルクは、オーバーシュートの可能性を大きくし、システムを目標に戻す逆補正を必要とする。最適な利得設定をしない場合、目標のポジションまたは速度に落ち着く前に、システムは補正のための相互作用を実施するため、望まない機械振動が生じる。そのような振動は、システムを不安定とし、システム遅延を生じさせる。そして、システムを安定させるために求められる付加的な動作の結果として過剰な電力を消費する。機械システムが与えられる制御信号に応答する程度にモータの摩擦も影響し、制御システムをチューニングする場合に考慮すべき因子となる。
機械システムの慣性および摩擦係数の正確な推定値を知れば、制御システムのチューニングは、簡略化できる。これらのパラメータの知識は、動作中のシステムの性能も向上させる。これに応じて、本用途の1以上の実施形態では、制御された機械システムの慣性および摩擦係数を、実質的に自動化された態様で正確に推定することができる。
図2は、機械システムの慣性および摩擦係数の推定値を生成できる非限定的な慣性の推定システムを例示するブロック図である。慣性推定器202は、トルクコマンド生成部204、速度監視部206、慣性演算部208、摩擦係数演算部210、インターフェース部212、1以上のプロセッサ214およびメモリ216を含む。多様な実施形態において、トルクコマンド生成部204、速度監視部206、慣性演算部208、摩擦係数演算部210、インターフェース部212、1以上のプロセッサ214およびメモリ218のうちの1つ以上は、慣性推定器202の1以上の機能を実行するために、相互に電気的もしくは通信可能に結合でき、また、相互に電気的および通信可能に結合できる。
いくつかの実施形態では、トルクコマンド生成部204、速度監視部206、慣性演算部208、摩擦係数演算部210およびインターフェース部212は、メモリ216に記憶され、プロセッサ214により実行されるソフトウェアの命令を含む。慣性推定器202は、図2に表されない他のハードウェアおよびソフトウェア部品とも相互に作用できる。例えば、プロセッサ214は、キーボード、マウス、表示モニター、タッチスクリーン、もしくは、他のインターフェース器機など、1以上の外部ユーザとのインターフェース装置と相互作用する。
インターフェース部212は、ユーザの入力を受け入れ、任意の好適な形式(例えば、視覚、音声、触覚など)によりユーザに出力を提供する。ユーザの入力は、例えば、慣性推定シーケンス(以下に詳細に説明される)を実行する際に慣性推定器で使用されるユーザ入力のパラメータでも良い。トルクコマンド生成部204は、定義されたテストシーケンスにしたがって、時間的に連続して変化するトルク制御命令を出力するように構成できる。速度監視部206は、機械システムの速度データを慣性および摩擦係数の計算に使用するために受信することができる。いくつかの実施形態では、速度監視部206は、トルクコマンド生成部204によって生成されたトルク制御命令が適用され、それに応答したモータの速度を測定し記録する。また、速度監視部206は、別の測定器具から測定された速度データを受信することもできる。慣性演算部208および摩擦係数演算部210は、トルクコマンド生成部204により生成された時間的に変化するトルクコマンド、および、速度監視部206により取得された速度曲線に基づいて、慣性および摩擦係数をそれぞれ計算するように構成される。1以上のプロセッサ214は、開示されたシステムおよび方法、もしくは、そのいずれかを参照して、以下に説明される1つ以上の機能を実施する。メモリ216は、コンピュータが読み取り可能な記憶媒体であれば良く、開示されたシステムおよび方法、もしくは、そのいずれかを参照して、以下に説明される機能を実施するために、コンピュータが実行可能な命令および情報、もしくはそのいずれかを記憶する。
慣性推定器は、テストシーケンスを通してシステムを動作させ、その結果に基づいて推定値を計算することにより機械システムの慣性および摩擦係数に対する推定値を生成する。図3は、慣性推定器302(慣性推定器202に類似)に関連する入出力を表すブロック図である。慣性推定器302は、動作システムを駆動するモータに、与えられたトルクで特定された方向に回転することを命令するトルクコマンド310を生成することができる。一定のトルク値の間の遷移を突発的なステップで生じさせ、結果としてステップ状のトルクを出力させる1つ以上の一定のトルクコマンドを発するよりも、慣性推定器302は、最大および最小のトルク値の間でトルク値が時間に対して連続的に変化するようにトルクコマンド310を制御する。以下により詳細に議論するように、ユーザが定義したパラメータを有するテストシーケンスにしたがって、慣性推定部302は、トルクコマンド310を介して出力されるトルク値を制御する。
動作システムは、慣性推定器から出されたトルクコマンド310にしたがって加速または減速を行い、動作制御システムからの速度帰還304が慣性推定器302に与えられる。速度帰還304は、動作システムの速度を時間に対して表す。例示されたテストシーケンスでは、慣性推定器302は、速度帰還304およびユーザにより定義された1以上の設定点の関数としてトルクコマンド310を制御することができる。ユーザ定義の設定点は、トルクコマンド信号の上限および下限を決める1以上の限界トルク306、および、トリガー速度値を決める1以上の速度検出点308、または、そのいずれかを含む。トリガー速度値は、トルクコマンド310を制御するため、および、推定値を生成するために使用される。
テストシーケンスを完了すると、慣性推定器302は、動作システムの慣性の推定値312および動作システムの摩擦係数の推定値314を生成する。慣性推定器302は、動作システムに出力され、速度帰還304に対応するトルクコマンド310に基づいてこれらの推定値を決定する。1以上の実施形態において、慣性推定器302は、トルク曲線(トルクコマンド310に対応)および速度曲線(速度帰還304に対応)の選択された部分を時間に対して積分し、これら積分の関数として推定慣性312および推定摩擦係数314を計算することができる。
図4は、例示されたテストシーケンスを実行する間の慣性推定器と動作制御システムとの相互作用を表している。この例では、動作システム424は、コントローラ418により与えられる制御信号420に応答するモータ424を含む。モータ424は、ポジション軸、機械の回転部または他のモータ駆動の負荷のような負荷(図示しない)を駆動するために用いられる。コントローラ418は、モータ424のリアルタイムの状態を示すデータ(例えば、ポジション、スピードなど)を与えるフィードバック422を監視する。
図示した例では、慣性推定器402は、コントローラ418から分離した要素として明示されている。このような構成では、慣性推定器402は、コントローラ418または動作システム424の他の要素と、任意の好適な通信手段を介してデータをやりとりすることができる。通信手段は、有線または無線のネットワーク、配線されたデータリンクもしくは他の通信手段を含むが、これらに限定される訳では無い。他の実施形態では、慣性推定器402は、コントローラ418に統合されても良い。例えば、慣性推定器402は、コントローラのオペレーティングシステムの機能部、および、コントローラ418上に存在する1以上のプロセッサにより実行される制御ソフトウェア、もしくは、そのいずれかであっても良い。また、慣性推定器402は、コントローラ418の中で他の機能要素とデータをやり取りする回路基板または集積回路のようなハードウェア部品であっても良い。慣性推定器402の他の好適な実施は、本開示のいくつかの実施形態の範疇にある。
試験の前に、1以上のユーザ定義のパラメータ412が、インターフェース部406(図2に関連して説明したインターフェース部212に類似)を介して慣性推定器402に与えられる。これらのパラメータは、トルクコマンド生成部408(図2のトルクコマンド性西部204に類似)により生成されるトルクコマンドの上限および下限を決める最大トルクumaxおよび最小トルクuminを含む。いくつかの実施形態では、慣性推定器402は、ユーザにより決定される最大トルクumaxのみを必要とし、決定された最大トルクの大きさを進行方向および逆方向の両方に対する限界値として用いる。他の実施形態では、慣性推定器402は、umaxおよびuminの両方の値を受け入れ、進行方向および逆方向のそれぞれに対し、異なるトルク設定点を許容する。umaxおよびuminに対して選択された値は、動作システム424の予定された動作限界に対応し、これにより、システムのトルクプロファイル全体に対する動作システム424の特性に基づいて慣性および摩擦係数を決定することが許容される。以下により詳細に説明するように、ユーザ定義のパラメータ412は、テストシーケンスの段階を定義するために用いられる臨界速度を決める1以上の速度検出点(v1、v2、v3、・・・)も含む。
インターフェース部は、ユーザ定義のパラメータ412をトルクコマンド生成部408に与える。試験を開始したとき、トルクコマンド生成部408は、動作システム424にトルクコマンド414を出力する。トルクコマンド生成部408は、時間に対して連続的にトルクコマンドを変化させるため、トルクコマンド414は、u(t)のように表される。図4に表された構成では、慣性推定器402は、トルクコマンド414をコントローラ418に送り、コントローラ418は、モータ424に指示された方向に、指示されたトルクで回転するように(制御信号420を介して)命令する。モータの回転にしたがい、速度監視部410は、コントローラ418から速度データ416を読み取る。(コントローラ418自身は、フィードバック422を介してモータ424の速度を計測する。)時間に対して測定された速度416は、v(t)のように表される。
試験の進行にしたがい、トルクコマンド生成部408は、予め決定されたテストシーケンスにしたがってトルクコマンド414を変化させ、テストシーケンスの各フェーズは、ユーザ定義のパラメータ412に比較された速度帰還416により開始される。テストシーケンスの例は、トルクコマンドu(t)の例、および、対応する速度帰還v(t)を時間に対するグラフで示した図5を参照して以下に説明される。トルクのグラフ502に示すように、トルクコマンド信号u(t)は、umaxおよびuminにより拘束される。速度グラフ504に示された速度監視点v1、v2およびv3は、テストシーケンスのフェーズの移行を決定する。umax、umin、v1、v2およびv3の値は、(例えば、図4のユーザ定義のパラメータ412のように)試験の前にユーザにより決定される。
時間t=0(ゼロ)において試験を開始したとき、適用されるトルク信号u(t)およびモータ速度v(t)は、共にゼロである。最初に、トルクコマンド生成部は、負のトルク信号を動作システムに送り、動作システムを負の方向に加速する。この試験の第1フェーズでは、トルクコマンド生成部は、モータ速度v(t)がv1に達するか、トルクコマンドu(t)がuminに達するまで、トルクコマンドu(t)を徐々に減少させる。この例では、モータ速度v(t)は、時間t=t1においてv1に達し、試験の第2フェーズを開始させる。グラフ502に示すように、トルクコマンドu(t)は、時間t=0とt=t1との間において、実質的に一定のレートで連続的に減少する。1以上の実施形態において、トルクコマンドが減少または増加するレート(すなわち、u(t)の傾き)は、(例えば、インターフェース部406を介した)慣性推定器402のユーザ定義のパラメータとして構成できる。
試験の第2フェーズ(時間t=t1において開始)に対して、トルクコマンド生成部は、モータ速度v(t)が速度検出点v3に達するか、トルクコマンドu(t)がトルク設定点umaxに達するまで、トルクコマンドu(t)を徐々に増加させる。この例では、トルクコマンドu(t)は、モータ速度v(t)が速度検出点v3に達する前に、上限umaxに達している。モータは、この時点でまだ加速しているため、トルクコマンド生成部は、速度v(t)がv3に達するまで、トルクコマンド信号をumaxに維持する。速度グラフ504に表されるように、モータ速度は、時間t=t4においてv3に達する。速度v(t)が、トルクコマンド信号がumaxに達した後、定義された時間までに速度検出点v3に達しなければ(すなわち、速度検出点v3が何かの理由で動作システムの物理的な限界速度よりも高く設定されたとすれば)、慣性推定器は、好適なタイムアウト処理ルーティンを始めることができる。タイムアウト処理ルーティンは、例えば、テストシーケンスを中断し、インターフェース部406を介してエラーメッセージを表示することを含む。
このフェーズの間、動作システムはv3に向けて加速しているので、速度は、テストシーケンスの加速フェーズを示す速度検出点v2を通過する。以下により詳細に議論するように、速度検出点v2は、ゼロより大きく、v3より小さく設定され、テストシーケンスの加速フェーズの開始と、減速フェーズの終了と、を表すために用いられる。
モータ速度がv3に達したことを検出すれば、トルクコマンド生成部は、時間t=t4においてトルクコマンドu(t)を徐々に減少させることにより、試験の第3フェーズを開始する。トルクコマンドu(t)が減少するにしたがい、モータは、トルクコマンドu(t)の値が動作システムの摩擦力よりも小さくなるまで、しばらくの間、加速を続ける。そして、トルクコマンドu(t)の値が動作システムの摩擦力よりも小さくなった時、モータは減速を開始する。モータは、時間t=t3において速度がv3に達した時、まだ加速しているため、トルクコマンドが減少を始めた後も、いくらかの時間の間、v3を越えた状態を続ける。テストシーケンスの定義にしたがって、トルクコマンド生成部は、モータ速度v(t)が速度検出点v3に戻る(時間t=t6)まで、u(t)を減少させ続ける。その後、モータ速度v(t)が速度検出点v2に戻る(時間t=t7)まで、u(t)を一定に保持する。この時点で、慣性推定器は、機械システムの慣性および摩擦係数の推定を計算するために必要なデータを取得する。トルクコマンド生成器は、トルクコマンド信号u(t)をゼロに戻し(時間t=t8)、グラフ504に表すように、v(t)曲線の端を漸減させることにより、動作システムを惰性で停止させる。
図5に関連して説明した上記のテストシーケンスは、一例を表すことを意図するだけであり、テストシーケンスを限定するものではない。時間に対してトルクコマンドu(t)を連続的に変化させ、動作システムの対応する速度プロファイルv(t)を測定する任意の好適なテストシーケンスは、ここに開示されたいくつかの実施形態の範疇にあることが理解されるべきである。例えば、前述した例では、それぞれの速度検出点に到達した速度v(t)に応答して方向を変化させるトルクコマンドu(t)を説明したが、いくつかのテストシーケンスでは、トルクコマンドの方向は変化させずに、速度検出点に到達した時、トルクコマンドu(t)の増加もしくは減少のレートを変えるだけのフェーズを含んでも良い(すなわち、増加するトルクコマンドは、フェーズ検出点に到達したv(t)に応答し、よりゆっくりしたレートで増加を続けても良い)。
前述したテストシーケンスを実施する場合、慣性推定器402は、トルクコマンド生成部408により生成されたトルクコマンド信号u(t)と、速度監視部410により読み取られた対応するモータ速度v(t)の両方を記録する。これらのトルク曲線および速度曲線は、慣性および摩擦係数の正確な推定値をその曲線に基づいて計算できるように、動作システム424を特徴付ける。1以上の実施形態において、慣性推定器は、u(t)およびv(t)の積分に基づいてこれらの推定値を計算する。次に、動作システムに対する慣性および摩擦係数の推定値を導き出すためにu(t)およびv(t)の積分を活用する非限定的な技術を例示する。
動作システムは、微分方程式で表すことができる。
ここで、Jは慣性であり、Bは摩擦係数である。u(t)はトルクコマンド信号、v(t)は、トルク信号u(t)に応答する動作システムの対応する速度である(例えば、u(t)およびv(t)は、図4および図5に関連して説明されている)。
式(1)の両側を、それぞれ加速および減速段階において積分すると次式を得る。
ここで、uacc(t)およびvacc(t)は、それぞれu(t)およびv(t)の一部であり、テストシーケンスの加速フェーズに対応する。udec(t)およびvdec(t)は、それぞれu(t)およびv(t)の一部であり、テストシーケンスの減速フェーズに対応する。
式(2)および(3)を解いて、慣性Jおよび摩擦係数Bを求めることができる。
図4に表されたトルク曲線および速度曲線の例では、加速フェーズは、速度v(t)が最初に速度検出点v2に達した時(時間t=t3)に始まり、トルク信号u(t)がゼロをよぎった時(時間t=t5)に終わる。この加速フェーズの終点における動作システムの速度は、(グラフ504に示される)v4として記録される。減速フェーズは、トルク信号u(t)がゼロをよぎった時(時間t=t5)に始まり、速度v(t)がv2に戻った時(時間t=t7)に終わる。慣性推定器402は、式(4)および(5)に基づいて推定慣性および推定摩擦係数を導出するために、これらの加速および減速フェーズの描写を認識するように構成できる。加速フェーズおよび減速フェーズを描写するための他の基準も、ここに開示されたいくつかの実施形態の範囲にあることを認識すべきである。
これらの加速フェーズおよび減速フェーズの定義が与えられると、uacc(t)およびudec(t)の積分範囲は、それぞれUaccおよびUdecと表示されたグラフ502の網掛け領域で表され、vacc(t)およびvdec(t)の積分範囲は、それぞれVaccおよびVdecと表示されたグラフ504の網掛け領域で表される。したがって、Uacc、Udec、VaccおよびVdecは、次のように決定される。
式(6)〜(9)を式(4)〜(5)に代入すると、慣性Jおよび摩擦係数Bは、次のように表せる。
ここで、速度変化Δvacc(t)およびΔvdecは、次のように定義される。
式(12)および(13)は例示であり、連続的なトルクおよび速度データに基づいて動作システムの推定慣性および推定摩擦係数を計算するための非限定的な式である。連続的なトルク信号および対応する速度曲線の積分を介してこれらのパラメータを計算するための任意の好適な式は、ここに開示するいくつかの実施形態の範囲内であることが認識されるできである。
図4および図5に関連して上記のテストシーケンスを完了した場合、慣性推定器は、式(12)および(13)(または他の好適な式)を、慣性および摩擦係数の推定量を導出するための試験により得られた連続的なトルクデータu(t)およびモータ速度データv(t)に適用することができる。図6は、ここに開示する1以上の実施形態にしたがった、慣性演算部606と、摩擦係数演算部608と、を有する慣性推定器602を表すブロック図である。慣性推定部602は、慣性演算部606および摩擦係数演算部608の両方を含むように表されているが、慣性推定部602のいくつかの実施形態は、この開示の範囲を逸脱することなく、これらの演算部の1つだけを含むことができる。すなわち、慣性推定器602は、慣性および摩擦係数のいずれか1つ、または、その両方を計算するように構成しても良い。
トルクデータu(t)および速度データv(t)が得られた後、トルクコマンド生成部604(トルクコマンド生成部408および204に類似)は、慣性演算部606および摩擦係数演算部608(図2の慣性演算部208および摩擦係数演算部210にそれぞれ類似)にトルクデータを与える。同様に、速度監視部606は、慣性演算部606および摩擦係数演算部608に得られた速度データv(t)を与える。1以上の実施形態によれば、慣性推定器602は、上記の式(6)〜(9)を用いてUacc、Udec、VaccおよびVdecの値を導出できるように、トルクデータおよび速度データを加速フェーズのデータ(uacc(t)およびvacc(t))と、減速フェーズのデータ(udec(t)およびvdec(t))と、に分離する。
慣性演算部は、uacc(t)、udec(t)、vacc(t)およびvdec(t)を積分し、(例えば、式(12)もしくはその変形に基づいて)積分値の関数として推定慣性J610を計算する。同じように、摩擦係数演算部608は、(例えば、式(13)に基づいて)積分値の関数として推定摩擦係数B616を計算することができる。その結果、慣性推定器が動作する個別の用途の要求にしたがって、慣性推定器602は、推定慣性J610と推定摩擦係数B612とを出力することができる。例えば、慣性推定器602は、慣性J610と摩擦係数B612とを動作制御部614に与え、動作制御部614は、1以上の利得係数のチューニングを容易にするためにJおよびBの値を用いる。慣性推定器602は、JおよびBの推定値を見て別の動作制御もしくはチューニングの用途にマニュアルで入力できるように、(例えば、インターフェース部212を介して)表示装置に出力することもできる。動作システムの慣性J610および摩擦係数B612の正確な推定は、チューニングプロセスを簡略化し、正確なパラメータチューニングを容易にする。この結果、緻密でエネルギー効率の良い機械動作が得られる。さらに、慣性推定器は、(1以上の一定のトルクコマンドに対するシステムの応答に基づいて推定するのではなく)動作システムのトルクプロファイル全体から収集されたデータに基づいて JおよびBの値を計算するので、慣性推定器により導出される慣性および摩擦係数の推定は、動作システムの動作範囲全体において、より正確である。
前述した例では、慣性推定器は、トルクコマンドu(t)を送り、動作制御部(例えば、図4のコントローラ418)を介して速度帰還v(t)を受け取り、コントローラを介して動作する分散した部品、もしくは、コントローラとして集積化された部品のいずれかであるように説明したが、他の構成も、ここに開示するいくつかの実施形態の範囲に含まれる。例えば、図7は、慣性推定器706がコントローラ702から独立した要素として動作する構成を表している。この例では、慣性推定器706は、コントローラ702とは独立した自分のトルクコマンド信号を生成することができる。試験され、制御されるモータ704は、スイッチ712の状態に依存してコントローラ702または慣性推定器706からトルクコマンド信号を受信することができる。モータ704からの速度帰還710は、コントローラ702および慣性推定器706の両方に与えられる。テストシーケンスの間は、スイッチ712は、慣性推定器706からトルクコマンドu(t)が伝達されるようにセットされる。前述の例で説明したように試験が実行され、慣性推定器706は、動作システムの慣性Jおよび摩擦係数Bの推定値を生成する。そして、慣性推定器706は、JおよびBの推定値をコントローラ702に与え、コントローラ706は、好適な制御利得係数または他の制御パラメータを決定するために、その値を用いることができる。一旦、制御パラメータが設定されれば、スイッチ712は、コントローラ702からモータ704へトルクコマンド708を与える位置に切り替えられ、JおよびBに基づいて導出された制御利得係数を用いてモータシステムの通常動作が実行される。
図8は、慣性推定器により生成された推定慣性および推定摩擦係数を用いた動作制御チューニングの適用例を表している。この例では、チューニング部804がコントローラ806のために制御利得を調整し、コントローラ806は、モータ駆動の動作システム(図示しない)の動作を制御する。慣性推定器802は、上記の技術により動作システムの慣性J808および摩擦係数B810の推定値を生成することができる。具体的には、慣性推定器802は、コントローラ806に連続的したトルクコマンドを動作システムのモータに送るよう命令し、トルクコマンドは、予め定められたテストシーケンスにしたがって、時間に対して連続的に変化する。また、慣性推定器802が(図7に表す構成例のように)コントローラ806とは独立に動作する実施形態では、慣性推定器802は、それ自身の連続したトルクコマンドを生成し、動作システムに出力しても良い。テストシーケンスは、加速および減速フェーズを含むことができ、その間、慣性推定器802は、適用されたトルクコマンドに応答する動作システムの速度を監視および記録する。テストシーケンスの結果に対し、時間的に変化するトルクコマンド信号、および、対応して時間的に変化する動作システムの速度の積分(例えば、式(12)および(13))に基づいて、慣性推定器802は、慣性J808および摩擦係数B810の推定値を計算することができる。
慣性推定器802は、慣性J808および摩擦係数B810をチューニング部804に与えることができる。代わりに、慣性推定器802は、JおよびBの値をユーザインターフェースに与え、ユーザがチューニング部804に推定慣性と推定摩擦係数をマニュアルで入力しても良い。JおよびB、もしくは、そのいずれかの知識は、動作システムの機械的特性に基づいてチューニング部804に1以上の制御利得812の好適な推定値を生成させる。チューニング部804は、望ましい動作特性を得るためにインターフェース816を介してユーザによりマニュアルで調整された制御システムのバンド幅814(例えば、重複した周波数)と、慣性Jおよび摩擦係数B810、もしくは、そのいずれかと、の関数として制御利得812の好適な値を生成できる。
通常の用途において、ここに説明される慣性推定器は、通常動作前の動作制御システムを最初に準備する間に、動作システムの慣性Jおよび摩擦係数Bの信頼できる推定値を生成することができる。具体的には、慣性推定器は、制御パラメータ(例えば、制御利得係数)の構成およびチューニングに関連して使用される。一度、設定され、後でシステムを再調整することが決定されなければ、システムが動き出した後もこれらのパラメータは、通常、固定されたままである。しかしながら、いくつかの実施形態では、慣性推定器は、動作時間の間に周期的もしくは連続的にJおよびBの値を自動で再計算するように構成できる。そのような構成を用いれば、JおよびBの推定に基づいた制御パラメータは、通常動作の間に過渡的に調整され、(例えば、機械的摩滅、モニタで見られる負荷の変化などの結果としての)段階的変化に対し、実質的にリアルタイムで、動作システムの機械的特性の補正を行うことができる。
図9および図10は、いくつかの開示された態様にしたがう、いくつかの手順を表している。説明の簡略化のために、手順は一連の行為として示され、説明されるが、開示された態様は、その行為の順に限定されず、いくつかの行為は、ここに示され、説明されたものと異なる順で、他の行為と同時に行われても良いし、そのいずれかであっても良いことを理解し、認識すべきである。例えば、当業者であれば、手順は、状態図のように相互に関連する状態もしくは事象の連続として選択可能に表されることを理解し、認識するであろう。さらに、いくつかの開示された態様にしたがって手順を実行するために、表示された全ての行為が求められる訳ではない。なお、この開示を通じて以下に示される手順は、そのような手順のコンピュータへの転送を容易にする製造物に記憶させることが可能であることを、さらに認識すべきである。
図9は、制御された機械システムの慣性および摩擦係数を推定するための手順例900を表している。ステップ902において、連続したトルクコマンドu(t)は、動作システムのコントローラに送られ、トルクコマンドu(t)は、決められた最大トルクおよび最小トルクの設定点の間で時間と共に変化する。1以上の実施形態において、トルクコマンドu(t)は、出力u(t)がテストシーケンスのフェーズと、1以上のユーザ定義の設定点と比較した機械システムの応答と、に依存するように、定められたテストシーケンスにしたがう。テストシーケンスは、モータスピードの増加および減少にそれぞれ対応する加速フェーズおよび減速フェーズの両方を備える。2方向の試験では、トルクコマンドu(t)は、テストシーケンスの間、正または負のトルク値の間で変化し、その試験の間に、動作システムを両方向に加速する。
ステップ904では、トルクコマンドu(t)に応答した動作システムの速度v(t)が記録される。その結果、テストシーケンスの完了により、時間t=0〜tendに対し、適用されたトルクコマンドu(t)の曲線データ、および、結果として得られる動作システムの速度v(t)の曲線データの両方が得られる。ここで、tendは、テストシーケンスの継続時間である。
ステップ906では、トルク曲線u(t)および速度曲線v(t)の積分に基づいた慣性および摩擦係数の少なくともいずれか1つの推定値が計算される。1以上の実施形態では、u(t)およびv(t)の曲線は、加速フェーズおよび減速フェーズに分割され、加速フェーズおよび減速フェーズのそれぞれの積分に基づいて慣性および摩擦係数を計算することができる。(例えば、式(12)および(13)または他の好適な式を用いる。)ステップ908では、動作システムの1以上のパラメータを、ステップ906で計算された推定慣性および摩擦係数、または、そのいずれかの関数として設定する。非限定的な例として、ステップ902〜906にしたがって計算された推定慣性および推定摩擦係数、もしくは、そのいずれかの基づいて1以上の制御利得係数を設定できる。
図10は、動作制御システムにおいて、慣性および摩擦係数を推定するために実行される手順例1000を表している。ステップ1002では、動作システムに与えられるトルクコマンドは、最大トルクの設定点に達するまで、もしくは、適用されたトルクコマンドに応答して動作システムが第1の速度検出点(例えば、図5の速度検出点v3)に加速されるまで、連続的に増加する。最大トルクの設定点および第1の速度検出点は、動作システムの上方動作限界に対応し、(例えば、動作システムの正常動作における最大トルクおよび速度として)試験の前に設定できる。トルクコマンドの増加レートもユーザが定めることができる。1以上の実施形態において、動作システムの速度が第1の速度監視点に達する前にトルクコマンドが最大トルク値に達した場合、動作システムが第1の速度検出点に加速されるまで、トルクコマンドは最大トルク値に保持される。動作システムの速度が定められたタイムアウト時間内に第1の速度検出点に達しない場合、適当なタイムアウト処理を開始する。
動作システムは、停止状態から第1の速度検出点まで加速されるので、その速度は、第2の速度検出点(例えば、図2の速度検出点v2)を通過するだろう。ここで、第2の速度検出点は、ゼロよりも大きく、第1の速度検出点よりも小さい。試験の加速フェーズは、速度が最初に第2の速度検出点に到達した時に始まる。
動作システムが第1の速度検出点に加速されたことを検出すれば、トルクコマンドは、ステップ904においてトルクコマンドが最初トルクの設定点に到達するまで連続的に減少される。この場合、ステップ1002において第1の速度検出点に達した時、動作システムは加速しているので、ステップ1004においてトルク信号が減少し始めてでも、しばらくの間、その速度は第1の速度検出点を越えて増加する。トルクコマンド信号の減少は、実質的に、動作システムを減速し、第1の速度検出点に戻す。ステップ1002のように、トルクコマンドを減少させるレートは、ユーザ定義のパラメータとして構成できる。この例では、動作システムが第1の速度検出点に戻る前に、トルクコマンドはゼロに減少し、最小トルクの設定点に達するまで、もしくは、第1の速度検出点に減速するまで、負の方向に減少を続ける。すなわち、トルクコマンドは、テストシーケンスのこのフェーズの間にゼロ点を横切る。これは、加速フェーズの終わりと、減速フェーズの始まりを示す。ステップ1002と同じように、動作システムが第1の速度検出点に達する前に、トルクコマンドが最小トルクの設定点まで減少すれば、トルクコマンドは、第1の速度検出点に達するまで、最小トルク値に保持される。
動作システムの速度が第1の速度検出点に戻った時、第1の速度検出点に到達した時点のトルクコマンド値は、動作システムが減速し第2の速度検出点に戻るまで、ステップ1006における一定値として維持される。これは、減速フェーズの終了のトリガとなる。
ステップ1008において、トルクコマンドがステップ1004の間にゼロをよぎる時間が検出される。この時間は、TCROSSOVERとして示され、テストシーケンスの加速フェーズと減速フェーズの境界を決めるために用いられる。(図4に関連した上記の例では、TCROSSOVER=t5である。)ステップ1010では、動作システムのトルクコマンド曲線および対応する速度曲線の加速フェーズの部分において積分が実行される。すなわち、トルクコマンドデータは、時間T0からTCROSSOVERまで積分される。ここで、T0は、加速フェーズの開始時間(速度が第2の速度検出点に最初に交差する時間、例えば、図4の時間t3)である。トルクコマンドの加速フェーズにおける積分の結果は、Uaccとして示される。同様に、適用されたトルクコマンドに応答した動作制御システムから測定された連続した速度データは、加速フェーズにおける速度積分の結果Vaccを得るために時間T0からTCROSSOVERまで積分される。
ステップ1012では、トルクおよび速度データの減速部分に対して同様の積分を実行する。すなわち、トルクおよび速度データは、動作システムがステップ1006において減速し第2の速度検出点に戻る時間に対応する時間TCROSSOVERからTFINALまで積分される。ここで、TFINALは、減速フェーズの終了時間である。(図4に関連した上記の例では、TFINAL=t7である。)トルクおよび速度データの減速フェーズにおけるこれらの積分結果は、それぞれUdecおよびVdecで示される。
ステップ1014では、動作システムの推定慣性および推定摩擦係数、もしくは、そのいずれかが、積分Uacc、Vacc、UdecおよびVdecに基づいて計算される。例えば、推定慣性および推定摩擦係数は、式(12)および(13)もしくはその変形に基づいて計算されるだろう。
[動作プロファイル生成器]
図11は、動作制御システムの2点間移動に対する動作プロファイルを生成することが可能な非限定的な動作プロファイル生成システムを例示するブロック図である。動作プロファイル生成システム1102は、ポジションプロファイル生成部1104、速度プロファイル生成部1106、インターフェース部1108、1以上のプロセッサ1110およびメモリ1112を含む。いくつかの実施例では、ポジションプロファイル生成部1104、速度プロファイル生成部1106、インターフェース部1108、1以上のプロセッサおよびメモリ1112のうちの1つ以上は、動作プロファイル生成システム1102の1以上の機能を実行するために、電気的および通信可能に、もしくは、そのいずれかであるように相互に結合される。いくつかの実施形態では、ポジションプロファイル生成部1104、速度プロファイル生成部1106およびインターフェース部1108は、メモリ112に記憶され、プロセッサ1110により実行されるソフトウェア命令を備える。動作プロファイル生成システム1102は、図11に表されない他のハードウェアおよびソフトウェアと相互作用しても良い。例えば、プロセッサ1110は、キーボード、表示モニタ、タッチスクリーンのようなユーザインターフェース装置と相互作用しても良い。
インターフェース1108は、ユーザ入力を受け取り、任意の好適な形式(例えば、視覚的、聴覚的、触覚的な形態)でユーザに出力を提供する。ユーザ入力は、例えば、ユーザ設定の制約(例えば、最大加速度、最大速度など)であり、動作プロファイル(以下に、詳細に説明される)を計算するために動作プロファイル生成システム1102により使用される。ポジションプロファイル生成部114は、動作システムのために望ましい目標ポジションの命令を受け取り、ユーザ定義の制約を表すパラメータの範囲内で目標ポジションへ移行するための動作プロファイルを計算するように構成される。同じように、速度プロファイル生成部1106は、動作制御システムのための望ましい目標速度の命令を受け取り、定められた制約に適合するように現行の速度から目標速度へ動作システムを移行させるための動作プロファイルを生成することができる。図11は、ポジションプロファイル生成部1104および速度プロファイル生成部1106の両方を含む動作プロファイル生成システムを表しているが、動作プロファイル生成システムのいくつかの実施形態は、この開示の範囲から逸脱することなく、ポジションプロファイル生成部1104または速度プロファイル生成部のいずれかのみを含むことができることが認識されるべきである。1以上のプロセッサ1110は、開示されたシステムおよび方法、もしくは、そのいずれかを参照して、ここに説明した1以上の機能を実行できる。メモリ1112は、開示されたシステムおよび方法、もしくは、そのいずれかを参照して、ここに説明した1以上の機能を実行するためのコンピュータが実行できる命令および情報、もしくは、そのいずれかを記憶するコンピュータが読み取り可能な記憶媒体である。
いくつかの実施形態では、ここに説明するプロファイル生成部は、動作制御部の集積化された部品であっても良い。図12は、この開示の1以上の実施形態にしたがってプロファイル生成部1206を用いる主制御部1202を備えた動作制御システム1200を例示している。主制御部1202は、例えば、1以上の動作デバイスを含むシステム(例えば、工業的処理、自動システム、バッチ処理など)を監視し制御するプログラマブルロジックコントローラ(PLC)、または、そのようなコントローラである。この例では、プロファイル生成部1206は、主制御部1202上に存在する1以上のプロセッサにより実行されるコントローラの動作システムおよび制御ソフトウェア、もしくは、そのいずれかの機能部品であっても良い。プロファイル生成部1206は、コントローラ1208の他の機能要素とデータを交換する回路基板、集積回路など、主制御部1202の内部に存在するハードウェア部品であっても良い。プロファイル生成部1206の他の好適な実施例も、この開示のいくつかの実施形態の範囲内である。例えば、プロファイル生成部1206は、主制御部1202に集積化された要素として図12に表されているが、いくつかの実施形態では、プロファイル生成部1206は、主制御部1202から分離された要素であっても良い。そのような構成では、プロファイル生成部1206は、主制御部1202または動作システムの他の要素と、好適な通信手段を介してデータを交換する。その通信手段は、有線または無線のネットワーク、配線されたデータリンクもしくは、そのような通信手段を含むが、これらに限定される訳ではない 。
例示的な動作制御システム1200は、主制御部1202により与えられる動作プロファイル1212にしたがって、動作デバイス(例えば、図示しないモータ)を制御するための動作制御部1214を含むモータ駆動部1222も備える。動作プロファイル1212は、現在のポジションまたは速度から目標ポジションまたは目標速度へ動作デバイスの移行させるための軌跡を決定する。ここで、軌跡は、ポジションの基準、速度の基準、加速度の基準およびジャークの基準のうちの1つ以上の観点から定められる。主制御部1202から動作プロファイルデータを受信することに応じて、モータ制御部1214は、動作プロファイル1212を制御信号1216に変換し、制御信号1216は、動作デバイスを目標ポジションまたは目標速度へ移行させるために動作デバイスに送られる。モータ制御部1214が閉ループコントローラであれば、制御信号1216を出力している間、モータ制御部1214は、動作デバイスの現実の状態(例えば、リアルタイムのポジション、速度など)を示すフィードバック信号1220も監視する。モータ制御部1214は、フィードバック信号1220に基づいて、動作デバイスが、動作プロファイル1212にしたがい、できるだけ動作プロファイル1212に近接して動くように、制御信号1216を調整する。また、モータ制御部1214が開ループコントローラであれば、モータ制御部1214は、動作プロファイル1212に基づいて制御信号1216を生成し続けるが、その結果として動作デバイスが動作している間、フィードバック信号1220を監視することはない。
この例では、主制御部1202は、主制御部1202に記憶され、実行される制御プログラム1210にしたがってシステムを制御する。動作の間、制御プログラム1210は、動作デバイスが新規のポジションへ動くか、または、新規の速度へ移行することを要求する。目的のポジションおよび速度1208は、プロファイル生成部1206に与えられ、プロファイル生成部1206は、動作プロファイル1212を計算し動きの軌跡を決定する。プロファイル生成部1206は、動作システムの機械的制約、または、動作デバイスの動作に関するユーザの好みを表す1以上の動作の制約条件1204の関数として動作プロファイル1212を計算する。動作定数1204は、動作の前に(例えば、図11のインターフェース部1108を介して)ユーザにより与えられる。いくつかの実施形態では、以下に詳細に説明するように、プロファイル生成部1206は、プロファイルのセグメントがコントローラのサンプル点に一致することを確実にするために、付加的に、主制御部1202のサンプリング時間1218に基づいて動作プロファイル1212を計算することもできる。
以下に、より詳細に説明するように、動作プロファイル1212は、参照ポジションの基準、速度の基準、加速度の基準およびジャークの基準として2点間移動の時間に対する軌跡を決定する。これらの参照値は、動作プロファイル生成部1206により計算された関数を表し、与えられた2点間移動に対する時間の関数として、それぞれの動きの特性がどのように制御されるかを決定する。これらの参照値は、微分係数として数学的な相互関係を有する。すなわち、ジャークは、加速度の微分係数であり、加速度は、速度の微分係数、そして、速度は、ポジションの微分係数である。以下に、詳細に議論するように、プロファイル生成部1206は、軌跡プロファイルのそれぞれの段階に対して、これらの参照値を計算できる。
一旦、移動のための動作プロファイル1212を計算すれば、プロファイル生成部1206は、動作プロファイル1212をモータ制御部1214に与え、モータ制御部1214は、動作プロファイル1212を制御信号1216に変換する。制御信号1216は、動作プロファイル1212にしたがった望ましい2点間移動の実行を動作デバイスに命令する。前述したように、モータ制御部1214が閉ループコントローラであれば、制御信号1216は、動作プロファイル1212の関数であると同時に、動作デバイスの現実の状態をモータ制御部1214にリアルタイムに知らせるフィードバック信号1220の関数でもある。開ループコントローラに対しては、制御信号1216は、動作プロファイル1212だけの関数となる。
図12の表された構成は、プロファイル生成部1206が動作する背景を例示することのみを意図しており、他の動作環境もこの開示に含まれる。例えば、いくつかのシナリオでは、主制御部1202は、モータを制御できる機能を統合したコントローラを包含しても良い。そのような形態では、主制御部1202は、離間したモータ駆動部1222に動作プロファイル1212を与えるよりも、動作プロファイル1212を好適な制御信号316に変換し、制御信号1216を動作デバイスに送る。他の例示的な構造では、プロファイル生成部1206は、モータ駆動部1222に統合されても良い。
プロファイル生成部1206は、ポジションプロファイル生成部および速度プロファイル生成部のいずれか、もしくは、両方であっても良い。これら2つのタイプのプロファイル生成部は、図13および14にそれぞれ表されている。図13に示すように、ポジションプロファイル生成部1302は、入力として、制御されたシステムの機械的制約、または、動作システムの振る舞いに関するユーザの好みを表す制約のセット1304を受信する。これらの制約は、コントローラの制御信号の更新された周期(通常、ミリ秒単位で測定される)を表すサンプリング時間、速度、加速度、減速度およびジャークの上限を含む。いくつかの実施形態では、ポジションプロファイル生成部1302がコントローラのサンプリング時間を自動的に決定するが、これらの制約は、(例えば、図11のインターフェース部1108を介して)ユーザにより設定しても良い。これらの制約1304は、動作制御システムを準備する間に、一度設定しても良いし、動作ごとに再構成しても良い。ポジションプロファイル生成部1302は、非対称の加速および減速を有するプロファイルをそれぞれ提供する構成とするために加速および減速の限界を許容する。以下に、詳細に説明するように、このサンプリング時間は、プロファイル生成部1302により動作プロファイルの精度を向上させるために用いられる。
動作の間、ポジションプロファイル生成部1302は、動作システムに対する新規の目標ポジションを特定するポジションステップコマンド1308を受信する。ポジションステップコマンド1308は、コントローラにより実行される制御プログラム(例えば、図12の制御プログラム)により生成されるか、もしくは、ユーザによりマニュアル入力される動作命令でも良い。ポジションステップコマンド1308に応答して、ポジションプロファイル生成部は、制約に基づく時間的に最適化された動作プロファイル1306を計算する。動作プロファイル1306は、負荷をその現在のポジションからポジションステップコマンド1308により定められた目標ポジションへ移動させるための軌跡を定める。動作プロファイル1306は、ジャーク基準、加速度基準、速度基準およびポジション基準のうちの1以上を含む。これらは、微分係数として数学的な相互関係を有する。ポジションプロファイル生成部1302は、決定される動作プロファイルの段階もしくはセグメントの組み合わせのそれぞれに対し、時間の関数としてこれらの基準を定める。表1は、2点間の動作プロファイルの7つのセグメントをまとめたものである。
初めに、第1段階(ACC_INC)の間、加速度は、ゼロから一定の加速度まで連続的に増加する。いくつかのシナリオでは、この定加速度は、制約条件1304により定められた最大加速度である。しかしながら、比較的短いポジションステップでは、ポジションプロファイル生成部1302は、小さな加速度がより正確な目標ポジションへの移行をもたらすことを明らかにするだろう。第2段階(ACC_HOLD)では、加速度は一定のレートに保持される。システムがポジションプロファイル生成部1302により計算された目標速度に近づいたとき、一定速度に達するまで加速度が徐々に減少する第3段階(ACC_DEC)に入る。一定速度に達すると、システムが目標ポジションに近づくように、第4段階(VEL_HOLD)の間、この一定速度は保持される。システムが目標ポジションに近づくと、軌跡は第5段階に入る。第5段階では、システムは、ゼロから動作プロファイルにより定められた目標減速度へ徐々にレートを増加させながら減速を始める。目標の減速度に達すると、第6段階(DEC_HOLD)の間、この減速度が保持される。最終的に、第7段階(DEC_DEC)の間、減速度はシステムが速度ゼロに達するまで徐々に減少し、動作シーケンスを終了する。
ポジションステップコマンド1308が与えられると、ポジションプロファイル生成部1302は、時間的に最適化された動作プロファイルに対し、これら7つのプロファイルセグメントのうちのどれが必要かを決定し、時間的に変化するジャーク基準、加速度基準、速度基準およびポジション基準のうちの1以上を、動作に必要と思われるそれぞれのセグメントに対して計算する。それぞれの段階に対し計算された基準は、動作プロファイルを完成するために結合される。完結した動作プロファイルは、それにより決定される軌跡を介して動作システムを駆動するために、開ループまたは閉ループの動作コントローラ(例えば、モータ駆動部)で使用することができる。
図14は、1以上の実施形態にしたがう速度プロファイル生成部1402の例を表している。速度プロファイル生成部1402は、ポジションプロファイル生成部1302に類似するが、ポジションの変化よりも速度の望ましい変化に応答する動作プロファイルを計算するために用いられる。すなわち、速度プロファイル生成部1402は、現在の速度から速度設定点1408により特定される目標速度への動作システムの移行に対して、時間的に最適化された動作プロファイル1406を計算する。望ましい速度設定点への移行は、通常、動作システムのポジションに無関係なので、速度プロファイル生成部1402に対して定められる制約条件1404は、ポジションの限界を含まなくても良い。同じように、プロファイル生成部1402により生成される動作プロファイル1406は、ポジション基準を含まなくても良く、時間的に変化するジャークの基準、加速度基準および速度基準のうちの少なくとも1つの観点から排他的に動作プロファイルを決定しても良い。
いくつかの動作制御の用途では、動作コントローラは、台形の動作プロファイル、または、S曲線のプロファイルのいずれか1つを生成する。これらのプロファイルに加えて、または、これらに代えて、この開示に係るプロファイル生成部は、以下、STプロファイルとして言及する第3のタイプのプロファイルを生成できる。図15は、通常の台形およびS曲線プロファイルとST曲線プロファイルの例を比較している。図15に表された時間グラフは、ポジション0(開示ポジション)と、ポジション2.5(図13のポジションステップコマンド1308により決定される目標ポジション)と、の間における与えられた軌跡に対するポジション、速度、加速およびジャークをプロットしたものである。一般的に理解されるように、プロットされた値は、相互に微分係数として数学的に関連する。すなわち、速度は、ポジションの微分(すなわち、ポジション変化のレート)であり、加速度は速度の微分、そして、ジャークは、加速度の微分である。
台形の動作プロファイルは、上記の7つの段階のうちの3つ、一定加速度(第2段階)、一定速度(第4段階)および一定減速度(第6段階)を用いるだけである。この台形の速度プロファイルの結果は、図15中の破線の速度曲線により表される。一定加速度段階もしくは一定減速度段階と、一定速度段階と、の間の急峻な以降は、台形の速度曲線の頂部における鋭いコーナをもたらす。台形プロファイルの加速および減速フェーズは、常に一定であり、このプロファイルに対する加速度曲線は、加速度グラフに破線で表されるように、一定値の間で階段状に変化する。この例では、減速のレートは加速のレートの2倍であり、台形のケースにおける加速度曲線は、加速段階の間、0.5であり、一定速度段階では、0(ゼロ)であり、減速段階では、−1.0である。また、ジャーク曲線(加速および減速の変化のレートを表す)は、移行の間の短時間のパルス(プロットしない)であり、図15のジャークグラフに破線で表すように加速度または減速度が一定の時、ゼロのままである。
台形プロファイルは、段階的な移行なしに、常に、一定速度段階へ一定のレートで加速し、一定速度段階から一定のレートで減速するため、台形曲線プロファイルは、現在のポジションと目標ポジションとの間を比較的早く移動する。しかしながら、加速または減速段階と一定速度段階と、の間の急激な移行は、システムの望ましくない機械的な乱れを生じさせる。さらに、動作システムが目標ポジションに近づくにつれて徐々に減速することがなく、目標ポジションに到達するまで一定の減速度を維持し、急に速度ゼロに移行するので、台形の動作プロファイルは、最初の移行過程の終わりに目標ポジションを通り過ぎる可能性が高く、コントローラは、負荷を目標ポジションに戻す補償制御信号を出力する必要がある。この過程は、システムが目標ポジションに落ち着くまで数回繰り返され、システムの望ましくない振動を生じさせる。
台形プロファイルとは対照的に、S曲線プロファイル(図15のグラフに細い実線で表される)では、7つのプロファイル段階の連続的な加速および減速段階の全てを用いる。これにより、一定(またはゼロ)速度フェーズと、一定加速および減速段階と、の間に段階的な移行が許容される。これらの段階的な加速度の移行は、加速度グラフに明確に表されている。台形プロファイルのように、時間0(ゼロ)から一定の加速度で開始されるのではなく、S曲線プロファイルの加速度は、時間0(ゼロ)から徐々に一定の加速度まで傾斜して増加する。速度が最大(1sと2sとの間)に達した時、加速度は、台形のケースのように急峻にゼロへ減少するのではなく、一定の速度を得るために徐々にゼロまで減少する。加速度の同じような段階的な変化は、S曲線プロファイルの後の減速段階でも見られる。これらの段階的な加速度変化の効果は、速度およびポジションのグラフにそれぞれみられる。具体的には、S曲線の速度プロファイルのコーナが台形カーブに比べて丸められ、加速および減速段階と、一定速度段階と、の間のスムーズな移行を表している。同じように、S曲線のポジションプロファイルは、最初のポジションと、目標ポジションと、の間のスムーズな移行を示しているが、目標に達するための付加的な時間を費やす。
ここに説明されるプロファイル生成部の1以上の実施形態は、S曲線の動作プロファイルの生成をサポートする。通常、S曲線の動作プロファイルを用いる動作制御システムは、対照的な加速および減速をサポートするだけである。すなわち、一定の加速度および一定の減速度の絶対値は等しい。これに対し、ここに説明するプロファイル生成部は、非対称の加速度および減速度を有するS曲線の動作プロファイルをサポートすることができる。これは、図15の加速度グラフに表され、加速度に対する0.5の限界と、減速度に対する−1の限界と、を有するS曲線を表している。そのような非対称な加速度と減速度とを与えるために、プロファイル生成部は、システムの制約条件として、異なる加速度および減速度の限界(例えば、図13の制約条件1304を参照)を許容し、これらの制約条件を考慮して動作プロファイルを計算する。
ジャークのグラフに表されるように、S曲線のケースにおいて、動作プロファイルの第1、第3、第5および第7段階の間、段階加速度が増加し減速度が減少するレートは、常に同じである。すなわち、この例では、動作プロファイルの任意の段階において、ジャークは、1、0もしくは−1のいずれかであり、常に一定値である。これは、加速度グラフに表すように、増加または減少する加速(または減速)段階と、一定の加速段階と、の間における急峻な移行をもたらす。
ポジション間の時間的に最適化された移行を得る通常の動作制御システムの台形およびS曲線プロファイルよりもスムーズな動作を得るために、ここに説明する1以上の実施形態に係るプロファイル生成部は、ST曲線型のプロファイルにしたがった動作プロファイルを計算することができる。ST曲線プロファイルの例は、図15のグラフに太い実線で表されている。台形およびS曲線プロファイルとは対照的に、ST曲線プロファイルでは、加速度および減速度を増加および減少させる段階において、時間に対するジャークの変化が連続的であり段階的である。これにより、図15の加速度グラフにおける加速度の遷移がスムーズになり、これに対応して速度およびポジションのグラフそれぞれ示す速度およびポジション曲線もスムーズになる。
さらに、ST曲線プロファイルは、非対称の加速度および減速度をサポートすることができる。(すなわち、プロファイル生成部は、与えられた動作プロファイルに対して減速のレートと異なる加速レートを有するプロファイルを計算することができる。)時間的に最適化された解を見つけると同時に、時間の関数として数学的な軌跡の表現を導出することは、非対称の加速度および減速度を用いる場合の課題である。これを解決するために、ここに説明されるプロファイル生成部の1以上の実施形態は、加速と減速との関係、および、加速時のジャークと、減速時のジャークと、の関係を活用したアルゴリズムを用い、これらの関係を導出の過程に適用する。これにより、軌跡の解析的な表現の導出が可能となり、時間的に最適化された解を見つけることができる。
ST曲線のポジションプロファイルの例を以下に導出する。ここに説明するプロファイル生成部の1以上の実施形態は、以下の導出過程に基づいて、動作プロファイルの基準を生成することができる。しかしながら、ここに説明するプロファイル生成部は、ST曲線に基づいた動作プロファイルの生成のためのこの技術に限定される訳ではなく、時間の関数として定義される連続したジャーク曲線を得る任意の好適なアルゴリズムは、この開示の範囲に含まれることを理解すべきである。
次の方程式において、θ・・・、θ・・、θ・およびθは、それぞれ、ジャーク、加速度、速度およびポジションであり、t1、t2、t3、t4およびt5は、それぞれ、動作プロファイルのACC_INC、ACC_HOLD、VEL_HOLD、DEC_INCおよびDEC_HOLD段階(表1参照)の継続時間である。この例では、ACC_INCおよびACC_DECの継続時間は等しいと仮定される。すなわち、t1は、ACC_INCおよびACC_DEC段階の両方の継続時間である。同様に、DEC_INCの継続時間は、DEC_DECと同じであり、t4は、DEC_INCおよびDEC_DECの両方の継続時間である。Kは、次の式にしたがって、ジャーク、加速度、速度およびポジションのそれぞれの動作プロファイルにおけるそれぞれの段階に対して定められる利得値である。(ここで、7つのそれぞれの段階に対して、t=0は、それぞれの段階の開始時間を表す。)
これらの関係が与えられれば、最大加速ジャーク、最大減速ジャーク、最大加速度、最大減速度および最大速度をセグメントの継続時間により表すことができる。
ここで、Pはポジションステップ、Jeは最大加速ジャーク、Iは最大減速ジャーク、Aは最大加速度、Dは最大減速度およびVは最大速度である。
P、V、A、D、Je、I、t1、t2、t3、t4およびt5の間の関係は、次のように得られる。
t1、t2、t3、t4およびt5は、全て0(ゼロ)以上であるとして、次の関係を仮定すれば、
次の不等式が成立する。
不等式(33)〜(36)を解くことにより、V、A、D、JeおよびI(速度、加速度、加速ジャークおよび減速ジャークのそれぞれの最大値)の適切な値を得る。
これらの最大値を式(25)〜(29)に代入することにより、t1、t2、t3、t4およびt5の値を得ることができる。上記の式(14)〜(36)により導出されるV、A、D、Je、I、t1、t2、t3、t4およびt5の値は、定められた機械的な制約条件もしくはユーザの要求の範囲内で動作する時間的に最適化されたスムーズな軌跡を与える。
上記の関係に基づいて、プロファイル生成部は、与えられた2点間の移動に対して、好適なST曲線の動作プロファイルを計算することができる。しかしながら、t1、t2、t3、t4およびt5に対して最初に計算される値は、コントローラのサンプリング時間の倍数ではなく、結果として動作コントローラのサンプル点に一致しないであろう。プロファイルセグメントの継続時間がコントローラの2つのサンプル時間の間に収まる場合は、コントローラは、制御信号の望ましい出力と、制御信号の実際の出力と、の間の小さな違いを補正する必要があるだろう。この点を解決するために、ここに説明されるプロファイル生成部の1以上の実施形態は、上記のように、最大値V、A、D、JeおよびIと、セグメントの継続時間t1、t2、t3、t4およびt5と、を導出した後に、付加的な計算を実施する。
具体的には、プロファイル生成部が上記の手順にしたがってt1、t2、t3、t4およびt5を計算した後、それぞれの継続時間を最も近いサンプリング時間に上方修正し、t1New、t2New、t3New、t4Newおよびt5Newを得る。この修正ステップは、制約条件1304または1404の1つとしてプロファイル生成部に与えられたサンプリング時間に基づくことができる。そして、プロファイル生成部は、修正された継続時間t1New、t2New、t3New、t4Newおよびt5Newの値を用いて、V、A、D、JeおよびIの新しい値を計算する。この計算により、サンプリング時間の倍数であるセグメントの継続時間を含む最終的な動作プロファイルが得られ、コントローラから出力される制御信号がコントローラのサンプル点に一致することが保証される。これにより、動作プロファイルの時間が2つのサンプル点の間に収まる場合に生じる小さな違いの補償の必要性を軽減できる。
上記のST曲線の代わりに、または、それに加えて、ここに説明するプロファイル生成部の1以上の実施形態は、非対称の加速度および減速度を有するS曲線プロファイルを生成することが可能である。非対称の加速度および減速度を有するS曲線プロファイルの例は、以下に導出される。ここに説明するプロファイル生成部の1以上の実施形態は、以下の手順またはその変形に基づいて動作プロファイルの基準を生成することができる。
上記のST曲線の方程式と同じように、θ・・・、θ・・、θ・およびθは、それぞれジャーク、加速度、速度およびポジションである。t1、t2、t3、t4およびt5は、動作プロファイルのACC_INC、ACC_HOLD、VEL_HOLD、DEC_HOLD、DEC_INCおよびDEC_HOLDの各段階(表1参照)におけるそれぞれの継続時間である。例示したST曲線と同じように、ACC_INCおよびACC_DECの継続時間は同じであり、t1は、ACC_INCおよびACC_DECの両方の段階における継続時間である。同じように、DEC_INCの継続時間はDEC_DECと同じであり、t4は、DEC_INCおよびDEC_DECの両方の継続時間である。Kは、次の式にしたがって、ジャーク、加速度、速度およびポジションのそれぞれに対する動作プロファイルのそれぞれの段階に対して決定される利得値である。(ここで、7つの段階のそれぞれに対し、t=0は、それぞれの段階の開始時間を表す。)
これらの関係が与えられれば、最大加速ジャーク、最大減速ジャーク、最大加速度、最大減速度および最大速度は、セグメントの継続時間により表される。
ここで、Pはポジションステップ、Jeは最大加速ジャーク、Iは最大減速ジャーク、Aは最大加速度、Dは最大減速度、および、Vは最大速度である。
P、V、A、D、Je、I、t1、t2、t3、t4およびt5の間の関係は、次のように得られる。
t1、t2、t3、t4およびt5は、全て0(ゼロ)以上であるとして、次の関係を仮定すれば、
次の不等式が成立する。
不等式(53)〜(56)を解くことにより、S曲線プロファイルに対するV、A,D、JeおよびI(速度、加速度、現速度、加速ジャークおよび減速ジャークのそれぞれの最大値)の適切な値が得られる。
これらの最大値を式(47)〜(51)に代入することにより、t1、t2、t3、t4およびt5(S曲線動作プロファイルのそれぞれのセグメントの継続時間)の値を得ることができる。上記の式(37)〜(56)にしたがって導出されたV、A、D、Je、I、t1、t2、t3、t4およびt5の値により、非対称の加速度および減速度を有し、定められた機械的制約条件もしくはユーザの要求する範囲内で動作するS曲線プロファイルを創出できる。
いくつかの実施形態では、プロファイル生成部は、ST曲線プロファイルに関連して前述した付加的な計算に類似した方法により、結果的に得られたS曲線動作プロファイルをコントローラのサンプリング時間に適合させる。すなわち、上記の手順にしたがってt1、t2、t3、t4およびt5を計算した後、プロファイル生成部は、それぞれの継続時間を最も近いサンプリング時間に合わせて伸ばし、t1New、t2New、t3New、t4Newおよびt5Newを得る。そして、プロファイル生成部は、修正された継続時間t1New、t2New、t3New、t4Newおよびt5Newの値を用いて、V、A、D、JeおよびIの新しい値を計算する。
動作プロファイルは、通常、表1にリストされた7つの段階を含むが、いくつかの2点間の移動では、7つの全てのセグメントを要求しなくても良い。例えば、動作システムの現在の状態と、目標の状態と、の間の距離が比較的短いとき、その動作システムのVEL_HOLD(一定速度)セグメントを省略しても良い。したがって、ここに説明するプロファイル生成部の1以上の実施形態では、自動的あるいは機能的にセグメントのスキップを行っても良い。すなわち、プロファイルの7つの段階の全てについて計算を行うのではなく、最終的な軌跡において、1以上の段階が用いられないのであれば、ここに説明するプロファイル生成部のいくつかの実施形態では、与えられた2点間の移動に対して、最終的な軌跡に用いられる段階についてのみ計算を行うことができる。
動作プロファイルは、新規の動作コマンドを受けた時、動作プロファイルの計算の間にどのセグメントをスキップできるかを自動的に決定する。いくつかの実施形態では、プロファイル生成部は、現在のポジションと目標ポジションとの間(ポジション変更の場合)もしくは、現在の速度と目標速度との間(速度変更の場合)の全体の差にある程度基づいて、どのセグメントをスキップして良いかを決めることができ、現在の状態と目標状態との間の差が小さいほど、動作プロファイルのセグメントのいくつかを省略することが可能となる。そのような実施形態では、現在の状態と目標状態との間の差は、複数の定められた差のレンジと比較され、それぞれの定められた差のレンジは、対応する動作プロファイルから省かれた1以上のセグメントに関連する。
ここに説明されるプロファイル生成部の1以上の実施形態は、動作データの履歴に基づいて、どのセグメントをスキップできるかを推定しても良い。例えば、プロファイル生成部は、出力された動作コマンドの履歴、および、そのコマンドに応答した動作に対応する軌跡のデータ(例えば、ポジション、速度、加速度およびジャーク、もしくは、そのいずれかの時間に対するデータ)を記録しても良い。プロファイル生成部は、動作の特定のタイプに対し、どのセグメントが省略可能であるかに関して推測を行うためにこの履歴データを解析することができる。したがって、新規の2点間の移動コマンドを受け取った時、その移動に対する動作プロファイルを計算する前に、プロファイル生成部は、類似した特性(例えば、横断すべき距離の類似、動作コマンドを受け取った時の速度の類似など)を有する過去の動作コマンドに応答して実行された軌跡の形状に基づいて、どのセグメントをスキップできるかを推定することができる。
図16〜図19は、例示した7つの段階のポジションプロファイルのセグメントスキップを表している。図16は、7つの全ての段階を用いるS曲線プロファイルの例を表している。図17は、セグメント4(一定速度段階)をスキップしたプロファイルを表している。プロファイル生成部は、横断されるポジションまたは速度ステップが十分小さく、目標ポジションまたは目標速度に達する前に一定速度段階に達しない場合にそのようなプロファイルを計算できる。そのようなポジションステップまたは速度設定点のコマンドを受けた場合、プロファイル生成部は、望ましい動作のためのプロファイル計算を実施する前に、この決定をすることができ、1〜3段階および5〜7段階についての計算だけを実行する。同じように、図18は、セグメント2および6をスキップしたプロファイルの例を表し、図19は、セグメント2、4および6をスキップしたプロファイルの例を表している。
図20〜図22は、いくつかの開示された態様にしたがった手順を表している。説明の簡略化のために、手順は一連の行為として示され、説明されるが、開示された態様は、その行為の順に限定されず、いくつかの行為は、ここに示され、説明されたものと異なる順で、他の行為と同時に行われても良いし、そのいずれかであっても良いことを理解し、認識すべきである。例えば、当業者であれば、手順は、状態図のように相互に関連する状態もしくは事象の連続として選択可能に表されることを理解し、認識するであろう。さらに、いくつかの開示された態様にしたがって手順を実行するために、表示された全ての行為が求められる訳ではない。なお、この開示を通じて以下に示される手順は、そのような手順のコンピュータへの転送を容易にする製造物に記憶させることが可能であることを、さらに認識すべきである。
図20は、動作制御システムにおける2点間の移動に対する動作プロファイルを計算するための手順例2000を表している。ステップ2002では、動作制御システムに対し、動作の制約条件が定められる。これらの制約条件は、動作制御システムにより制御される機械システムの物理的な制約を表し、速度、加速度、減速度およびジャークの限界を含むことができる。制約条件は、機械システムを制御するために用いられる動作コントローラのサンプリング時間の定義を含むことができる。ステップ2002では、制御される機械システムを新規のポジションまたは速度に移行させるコマンドを受信する。このコマンドは、動作コントローラにより実行される動作制御プログラムに起因しても良いし、ユーザにより入力されるマニュアルの動作コマンドであっても良い。そのコマンドは、動作コントローラに関連するプロファイル生成部(例えば、上記のプロファイル生成部1206、1302もしくは1402)が受信しても良い。
ステップ2006では、ステップ2004で受信されたコマンドの受け取りに応答して、現在のポジションまたは速度から、コマンドにより指示された新規のポジションまたは速度へ機械システムを動かすために、動作プロファイルが計算される。プロファイル生成部は、動作プロファイルのセグメントの少なくとも1つに対し、時間の関数として定められる連続的なジャーク基準を含むように、この動作プロファイルを計算できる。いくつかの実施形態では、動作プロファイルは、ST曲線として、式(14)〜(36)に関連した上記の手順にしたがって計算できる。そのような動作プロファイルは、図15に太い実線で表されたジャークグラフにより描かれた一般的な形式を有するジャーク基準を与え、ジャークは、計算されたジャーク関数にしたがって、最大値と最小値の間で時間に対して緩やかに変化する。ステップ2008では、制御される機械システムは、ステップ2006で定められる動作プロファイルにしたがって、現在のポジションまたは速度から新規のポジションまたは速度に移行するよう命令される。これに伴って、例えば、ステップ2006で計算された動作プロファイルがモータ駆動部に与えられ、その動作プロファイル、および、機械システムの状態を表すリアルタイムのデータを与えるフィードバック信号にしたがって機械システムを駆動するモータを制御する。
図21は、動作コントローラのサンプリング時間に同調し、制約条件に基づいた時間的に最適化された動作プロファイルを計算するための手順例2100を表している。ステップ2102では、制御される機械システムに対する制約条件が定められる。前述した例のように、これらは、コントローラのサンプリング時間と、速度、加速度、減速度およびジャークの限界と、を含む。これらの制約条件は、コントローラに関連するプロファイル生成部(例えば、上記のプロファイル生成部1206、1302または1402)に与えることができる。ステップ2104では、機械システムを現在のポジションまたは速度から新規のポジションまたは速度に移行させるコマンドを(例えば、プロファイル生成部が)受信する。ステップ2106では、最大加速ジャーク(Je)、最大減速ジャーク(I)、最大加速度(A)、最大減速度(D)および最大速度(V)の少なくとも1つを動作プロファイルのそれぞれのセグメントに対する時間の関数として計算することにより、そのコマンドに応答して機械システムの軌跡を制御するための動作プロファイルが生成される。(ここで、プロファイルは、表1に定義された7つのセグメントを含むことができる。)さらに、プロファイルのそれぞれのセグメントの継続時間が(例えば、式(14)〜(36)に関連した上記の技術を用いて)計算される。
ステップ2108では、ステップ2106で計算された全てのプロファイルセグメントの継続時間がコントローラのサンプリング時間の倍数であるかどうかを判定する。全てのセグメントにおいて継続時間がサンプリング時間の倍数であれば、ステップ2114に移り、プロファイルセグメントの継続時間およびステップ2106で計算されたJe、I、A、DおよびVの値に基づいて、動作プロファイルを生成する。一方、1以上のプロファイルセグメントがサイクル時間の倍数に等しくなければ、ステップ2110に移り、全てのプロファイルセグメントの継続時間をサンプリング時間の最も近い倍数に上方修正する。ステップ2112では、ステップ2110において修正されたプロファイルセグメントの継続時間に基づいて、Je、I、A、DおよびVのうちの1以上の値が再計算される。ステップ2114では、修正されたプロファイルセグメントの継続時間、および、再計算されたJe、I、A、DおよびV、もしくは、そのいずれかに基づいて、動作プロファイルが生成される。
図22は、2点間の移動に対する動作プロファイルを、セグメントスキップを用いて効果的に計算する手順例2200を表している。ステップ2202では、制御される機械システムを新規のポジションまたは新規の速度に移行させるコマンドを(例えば、プロファイル生成部1206、1302または1402において)受信する。ステップ2204では、要求された2点間の移動を実施するために、動作プロファイルの7つのセグメントのうちのどれが必要とされるかを決定する。この決定は、例えば、現在のポジションと望ましいポジションとの間の移動すべき距離(ポジション変更の場合)、もしくは、現在の速度と望ましい速度との間の差(速度変更の場合)の測定に基づいて、プロファイル生成部により自動的に行われる。
ステップ2206では、ステップ2204の決定に基づいて、望ましい動作を実行するために、7つの全てのセグメントが必要かどうかを判断する。全てのセグメントが求められる場合には、ステップ2210に移動し、7つの全てのセグメントに対してプロファイルの計算を実施することにより、2点間の移動のための動作プロファイルを生成する。一方、ステップ2206において、1以上のプロファイルセグメントが要求されないと判断されれば、ステップ2208に移動し、ステップ2204で決定されたように、必要なセグメントのみについて計算を実施することにより、2点間の移動のための動作プロファイルを生成する。手順例2200にしたがったセグメントスキップは、不必要なプロファイルセグメントの計算に関連した余分な処理を減らすことにより、制約条件に基づいた時間的に最適化された動作プロファイルの計算をより効率的に促進する。
[ネットワーク化および分散化された環境の例]
当業者であれば、ここに説明されたいくつかの実施形態は、コンピュータネットワークの一部、または、分散化された演算環境に配置され、媒体を含む任意のデータ記憶装置に接続された任意のコンピュータ、もしくは、クライアント装置、サーバ装置を用いて実施できることを認識するだろう。これに関し、ここに説明する画像編集システムのいくつかの実施形態は、任意の数のメモリまたは記憶装置(例えば、図2のメモリ216もしくは図11のメモリ1112)、および、任意の数の記憶装置を用いる任意の数のアプリケーションおよびプロセスを有する任意のコンピュータシステムまたはコンピュータ環境で実施できる。これは、ネットワーク環境もしくは分散された演算環境に配置された、リモートもしくはローカルの記憶装置を有するサーバコンピュータおよびクライアントコンピュータを備える環境を含むが、それに限定される訳ではない。例えば、図2を参照すれば、トルクコマンド生成部204、速度監視部206、慣性演算部208、摩擦係数演算部210およびインターフェース部212は、1つのデバイスに関連する1つのメモリ216に記憶することができる。また、多数のデバイスのそれぞれに関連した多数のメモリに分散しても良い。同じように、トルクコマンド生成部204、速度監視部206、慣性演算部208、摩擦係数演算部210およびインターフェース部212は、1つのプロセッサ214で実行しても良いし、多数のデバイスに関連した多数のプロセッサを用いて実行しても良い。
計算の分散化は、演算装置および演算システム間の通信によりコンピュータリソースおよびコンピュータサービスを共有する。これらのリソースおよびサービスは、目的とする情報、キャッシュおよびディスクの記憶の交換を含む。これらのリソースおよびサービスは、負荷のバランス、リソースの拡張、処理の専用化などに対する多数のプロセスユニットの処理能力の共有も含む。計算の分散化は、ネットワークの接続性に利点を有し、企業全体を利するためにクライアントが総体の力を利用することを可能とする。これに関し、いくつかのデバイスは、この開示のいくつかの実施形態に寄与することが可能なアプリケーション、オブジェクト、または、リソースを有する。
図23は、ネットワーク化および分散化された演算環境を例示する模式図である。分散化された演算環境は、演算オブジェクト2310、2312など、および、演算オブジェクトもしくは演算装置2320、2322、2324、2326、2328など、を含み、それぞれは、アプリケーション2330,2332、2334、2336、2338により表されるように、プログラム、方法、データ記憶装置、プログラマブルロジックなどを含む。演算オブジェクト2310、2312など、および、演算オブジェクトもしくは演算装置2320、2322、2324、2326、2328などは、PDA(personal digital assistant)、聴覚および視覚デバイス、携帯電話、MP3プレイヤー、パソコン、ノート型パソコン、タブレットなどを含み、ここに説明する慣性推定器の実施形態は、そのようなデバイスの上に存在し、また、そのようなデバイスと相互に作用する。
演算オブジェクト2310および2312など、および、演算オブジェクトもしくは演算装置2320、2322、2324、2326、2328などのそれぞれは、演算オブジェクト2310および2312など、および、演算オブジェクトもしくは演算装置2320、2322、2324、2326、2328などのうちの他の1以上のデバイスと、通信ネットワーク2340を経由して、直接または間接的に通信することができる。図23には、1つの要素として表されているが、通信ネットワーク2340は、図23のシステムにサービスを提供する他の演算オブジェクトおよび演算装置を含んでも良いし、多重に相互接続された図示しないネットワークであっても良い。演算オブジェクト2310および2312など、および、演算オブジェクトもしくは演算装置2320、2322、2324、2326、2328などのそれぞれは、この開示のいくつかの実施形態との通信、もしくは、その実行に適したAPIもしくは、他の対象物、ソフトウェア、ファームウェアおよびハードウェア、もしくは、そのいずれかを使用する、アプリケーション2330、2332、2334、2336、2338(例えば、慣性推定器202、動作プロファイル生成システム1102もしくはその要素など)のようなアプリケーションプログラムを含むこともできる。
分散化された演算環境をサポートするいくつかのシステム、要素およびネットワークの構成がある。例えば、演算システムは、有線もしくは無線システム、局在するネットワークもしくは広く分散されたネットワークにより一体に結合できる。現在、多くのネットワークは、演算を広く分散化できる社会基盤として提供され、多くの異なるネットワークを包含するインターネットに接続される。そして、いくつかの実施形態において、ここで説明されるように、システムに付随する例示的な通信に、任意の好適なネットワーク基盤を用いることができる。
このように、ネットワークトポロジーおよびネットワーク基盤のホストとして、クライアント/サーバ、P2P(peer-to-peer)またはハイブリッド構造が用いられる。クライアントは、他の階層もしくはグループのサービスを利用する階層もしくはグループのメンバーである。クライアントは、コンピュータの処理、例えば、大まかには、他のプログラムまたは処理により与えられるサービスを求める命令もしくはタスクのセットであっても良い。クライアントの処理は、他のプログラムもしくはサービスそのものについての全てのワークの詳細を知ることなく、要求したサービスを使用する。
クライアント/サーバ構造、特に、ネットワークシステムでは、クライアントは、他のコンピュータ、例えば、サーバにより提供され、共有されるネットワークリソースにアクセスするコンピュータであっても良い。任意のコンピュータは、環境に依存して、クライアント、サーバもしくはその両方と考えることができるが、図23では、非限定的な例として、演算オブジェクトもしくは演算装置2320、2322、2324、2326、2328などは、クライアントと考えることができ、演算オブジェクト2310、2312などは、サーバと考えても良い。ここで、演算オブジェクト2310、2312は、クライアント演算オブジェクトもしくはクライアント演算装置2320、2322、2324、2326、2328などからデータを受信し、データを保存し、データを処理し、クライアント演算オブジェクトもしくはクライアント演算装置2320、2322、2324、2326、2328などにデータを送信するようなデータサービスを提供する。1以上の実施形態に対してここで説明するように、これらの演算装置のいずれもが、データを処理し、システムの技術に関連するトランズアクションサービスまたはタスクを要求しても良い。
サービスは、通常、インターネットまたは無線ネットワークインフラのような、遠隔もしくはローカルネットワークを介してアクセスできるリモートコンピュータシステムである。クライアント処理は、第1のコンピュータシステムにおいて利用可能であり、サーバ処理は、第2のコンピュータシステムにおいて利用可能である。第1のコンピュータシステムおよび第2のコンピュータシステムは、通信媒体を介して相互に通信する。したがって、分散化された機能を提供し、多くのクライアントにサーバの情報収集の能力を利用させることができる。ここに説明する技術に準拠して用いられる任意のソフトウェアは、独立して提供しても良いし、多数の演算装置もしくは演算オブジェクトに分散されても良い。
例えば、通信ネットワーク/バス2340がインターネットであるネットワーク環境では、演算オブジェクト2310、2312などは、ウェブサーバ、ファイルサーバ、メディアサーバなどであっても良く、クライアント演算オブジェクトもしくは演算装置2320、2322、2324、2326、2328などは、HTTP(hypertext transfer protocol)のような既知のプロトコルを介して通信する。演算オブジェクト2310、2312などは、分散化された演算環境を特徴づけるように、クライアント演算オブジェクトもしくはクライアント演算装置2320、2322、2324、2326、2328のように機能しても良い。
[演算装置の例示]
前述したように、ここに説明する技術は、有利に任意の好適なデバイスに適用できる。このため、いくつかの実施形態に関連して、携帯可能な演算装置および他の演算装置、演算オブジェクトなどのすべての種類の使用が期待されることを理解すべきである。したがって、次の図24で説明するコンピュータは、その1例である。さらに、好適なサーバは、メディアサーバもしくは他のメディア管理サーバの要素のような、以下のコンピュータの1以上の態様を含むことができる。
要求されることはないが、実施形態は、装置もしくは器機のサービスの開発者に使用されるために、オペレティングシステムを介して部分的に実行されても良いし、ここに説明されるいくつかの実施形態の1以上の機能的な態様を実施するために動作するアプリケーションソフトウェアの範囲に含まれても良い。ソフトウェアは、プログラムモジュールのように、コンピュータが実行可能な命令の一般的な背景において説明しても良く、クライアントワークステーション、サーバまたは他の装置のような、1以上のコンピュータにより実行される。コンピュータシステムは、様々な構成とデータ通信に用いる様々なプロトコルを有するため、特定の構成およびプロトコルに限定されるべきではないことを、当業者は認識するだろう。
図24は、ここに説明する実施形態の1以上の態様を実施可能な、好適な演算システム環境2400の例を表している。上記のように、演算システム環境2400は、好適な演算環境の1つの例に止まり、使用および機能性の範囲についていかなる限定も意図していない。例示的な演算システム環境2400に表された要素のいずれか、または、その結合に関連するいかなる依存性も、要請も、演算システム環境2400は有しないと解釈される。
図24を参照して、コンピュータ2410の形で1以上の実施形態を実施する例示的な演算装置を説明する。コンピュータ2410の構成要素は、プロセスユニット2420、システムメモリ2430、および、システムメモリを含むいくつかの構成要素をプロセスユニット2420に結合するシステムバス2422を含むが、これに限定される訳ではない。プロセスユニット2420は、例えば、慣性推定器202のプロセッサに関連する機能を実行し、システムメモリ2430は、メモリ216に関連する機能を実行する。
コンピュータ2410は、通常、コンピュータが読み取り可能ないくつかの媒体、すなわち、コンピュータ2410がアクセス可能な任意の利用可能な媒体を含む。システムメモリ2430は、ROM(read only memory)およびRAM(random access memory)のような揮発性および不揮発性メモリ、もしくは、そのいずれかの形のコンピュータ記憶媒体を含むことができる。限定ではなく例示の形で、システムメモリ2430は、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、および、プログラムデータを記憶しても良い。
ユーザは、入力装置2440を介してコンピュータ2410にコマンドおよび情報を入力できる。入力装置2440として、非限定的に、キーボード、キーパッド、ポインティングデバイス、マウス、タッチペン、タッチパッド、タッチスクリーン、トラックボール、モーションディテクタ、カメラ、マイクロフォン、ジョイスティック、ゲームパッド、スキャナー、もしくは、ユーザがコンピュータと相互作用できる任意の装置を含むことができる。モニタまたは他のタイプの表示装置も、出力インターフェース2450のようなインターフェースを介してシステムバス2422に接続される。モニタに加えて、コンピュータは、出力インターフェース2450を介して接続されるスピーカおよびプリンタのような他の周辺出力装置を含むことができる。1以上の実施形態において、入力装置2440は、インターフェース部212にユーザ入力を与え、出力インターフェース2450は、インターフェース部212から慣性推定器202の動作に関係する情報を受信することができる。
コンピュータ2410は、リモートコンピュータ2470のような1以上の遠く離れた他のコンピュータに論理的に結合されるネットワーク化または分散化された環境で動作しても良い。リモートコンピュータ2470は、パーソナルコンピュータ、サーバ、ルータ、ネットワークパソコン(PC)、ピアデバイス(peer device)もしくは他の共通ネットワークノード、または、任意の他のリモートメディアデバイスもしくはリモートメディア伝送デバイスであっても良いし、コンピュータ2410に関連して説明した要素のいずれか、もしくは、全てを含んでも良い。図24に表す論理結合は、LAN(local area network)もしくはWAN(wide area network)のような、ネットワーク2472を含むが、例えば、セルラーネットワークのような、他のネットワーク/バスも含まれる。
上記のように、例示的な実施形態が、いくつかの演算装置およびネットワーク構造に関連して説明されたが、その背景となる概念は、制約の少ない方式で、メディアを出力または利用することが望まれる任意のネットワークシステムおよび任意の演算装置もしくは演算システムに適用できる。
また、同じまたは類似する機能性を実現する多くの方法がある。例えば、適当なAPI(Application Programming Interface)、ツールキット、ドライバコード、オペレーティングシステム、制御ソフトウェア、独立もしくはダウンロードできるソフトウェアなどにより、ここで説明する技術を利用したアプリケーションおよびサービスが可能となる。このように、実施形態では、ソフトウェアまたはハードウェアと同じように、API(もしくは、他の同じ機能のソフトウェア)の観点から、ここに説明した1以上の形態を実行することが期待される。そして、ここに説明するいくつかの実施形態は、全てがハードウェア、一部がハードウェア、および、全てがソフトウェア、一部がソフトウェアの態様であっても良い。
ここで「例示的」という言葉は、例または模式化を意味するために用いられている。疑義を避けるために、ここに開示される態様は、そのような例に限定されない。さらに、例として、ここに説明する任意の態様またはデザインは、他の態様もしくはデザインよりも好ましい、または、有利であると解釈される必要はなく、また、等価な構造および技術を除外するものでもない。さらに、疑義を避けるために「含む」、「有する」および他の類似する語を、詳細な説明、または、請求の範囲のいずれかに使用する限りにおいて、そのような語は、「備える」と類似した用法であって、任意の付加もしくは他の要素を排除しない。
演算装置は、通常、コンピュータが読み取り可能な記憶媒体(例えば、メモリ216もしくは1112)および通信媒体、もしくは、そのいずれかを含むいくつかの媒体を備える。ここで用いられる、これらの2つの語は、次のように相互に異なる。コンピュータが読み取り可能な媒体は、任意の利用可能な媒体であって、コンピュータがアクセス可能で有り、通常、一過性でない性質を有し、揮発性および不揮発性の両方のものと、脱着可能および脱着不可能の両方のものを含む。非限定的な例として、コンピュータが読み取り可能な記憶媒体は、コンピュータが読み取り可能な命令、プログラムモジュール、構造的データもしくは非構造的データのような情報を保存するために、任意の方法もしくは技術に関連して実装される。コンピュータが読み取り可能な記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、DVD(digital versatile disk)もしくは他の光学的記録ディスク、磁気カセット、磁気テープ、磁気記憶ディスクもしくは他の磁気記憶デバイス、望ましい情報を保存するために使用される他の具体的および非一過性の媒体、もしくはそのいずれかを含むが、これらに限定される訳ではない。コンピュータが読み取り可能な記憶媒体は、それに保存された情報に関するいくつかの動作のために、1以上のローカルもしくはリモートの演算装置により、例えば、アクセス要求、検索要求または他のデータ検索プロトコルを介してアクセスされる。
一方、通信媒体は、通常、コンピュータが読み取り可能な命令、データ構造、プログラムモジュールもしくは他の構造データまたは非構造データを、例えば、搬送波もしくは他の輸送手段である変調データ信号のようなデータ信号に一体化し、任意の情報配信または輸送媒体を含む。「変調データ信号」または信号という語は、1以上の信号に情報を符号化する方法により設定もしくは変更された1以上の特性を有する信号に言及する。非限定的な例によれば、通信媒体は、有線ネットワークもしくは直接配線の結合のような有線媒体、および、音波、高周波、赤外および他の無線媒体のような無線媒体を含む。
前述したように、ここに説明されるいくつかの技術は、ハードウェアまたはソフトウェア、もしくは、適宜、その結合に関連して実施される。ここに使用する「要素」、「システム」などの用語は、さらに、ハードウェア、ハードウェアとソフトウェアの結合、ソフトウェア、もしくは、ソフトウェアの実行のいずれかであるコンピュータに関連する要素に言及することを意図している。例えば、要素は、プロセッサで実行される処理、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよびコンピュータ、もしくは、そのいずれかであっても良いが、これらに限定される訳ではない。例として、コンピュータ上で実行されるアプリケーションおよびコンピュータの両方が、要素であっても良い。1以上の要素が、プロセスおよび実行スレッド、もしくは、そのいずれかの中に存在し、要素は、1つのコンピュータに局在しても良いし、2以上のコンピュータに分散されても良い。さらに、「デバイス」は、特別に設計されたハードウェア、また、ハードウェアに特定の機能(例えば、符号化および複合化、もしくはそのいずれか)を実施させるソフトウェアの実行により特化される一般のハードウェアとしてもたらされても良い。
前述したシステムは、いくつかの要素の相互作用に関連して説明される。そのようなシステムおよび要素は、これらの要素もしくは特定された準要素、特定された要素または準要素のいくつか、および、付加的な要素、もしくは、そのいずれかを含み、前述のいくつかの置き換えおよび結合にしたがうことを認識すべきである。準要素は、親要素の内部(階層構造)に含まれるのではなく、他の要素と通信可能に結合された要素として実装されても良い。さらに、1以上の要素は、集約された機能性を与える単一の要素に結合されても良いし、いくつかの離間した準要素に分割されても良いこと、また、マネージメント層のような任意の1以上の中間層が、集積化された機能性を与えるために、そのような準要素に通信可能に結合されても良いことに留意すべきである。ここに説明する任意の要素は、ここに具体的に説明されないが、当業者に一般的に知られた1以上の他の要素と相互に作用しても良い。
ここに説明した多くのインターフェース(例えば、音響セグメント)を提供または役立たせるために、ここに説明する要素は、アクセスが承認されたデータの全体もしくはそのサブセットを試験し、事象およびデータ、もしくはそのいずれかを介して捉えられた観察結果から、システム、環境などの状態を論証もしくは推定することができる。推定は、具体的な背景または動作を決定するために用いられ、例えば、状態の確率分布を生成することができる。推定は確率的、すなわち、データおよび事象の考察に基づいて対象の状態の確率分布の計算であっても良い。推定は、事象およびデータ、もしくは、そのいずれかから、より高度の事象を構成するために用いる技術に言及することもできる。
そのような推定は、観測された事象および保存された事象のデータのセット、および、事象が一時的な近接状態において相関するかどうか、また、事象およびデータが、1またはいくつかの事象およびデータソースから生じたかどうか、から新規の事象または動作を構成することができる。いくつかの(明示的および黙示的に備えられた、もしくは、そのいずれかである)分類スキームおよびシステム、もしくは、そのいずれか(例えば、サポートベクトルマシン(support vector machine)、ニューラルネットワーク(neural network)、エキスパートシステム(expert system)、簡易ベースネットワーク(Bayesian belief network)、ファジーロジック(fuzzy logic)、データフージョンエンジン(data fusion engine)など)は、クレームされた主題に関連した自動化および推定された動作を実施に用いることができる。
分類器は、入力の属性ベクトル、x=(x1、x2、x3、x4・・xn)を、関数f(x)によりマップし、その入力が1つのクラスに属することを確定させる。そのような分類には、ユーザが自動的に実行されることを望む動作を予知もしくは推定するために、確率的および統計に基づいた解析(例えば、解析設備および解析コストへの組み込み)を用いる。サポートベクトルマシン(support vector machine:SVM)は、用いることが可能な分類器の1例である。SVMは、可能な入力空間におけるハイパーサーフェース(hyper-surface)を見つけることにより動作する。ここで、ハイパーサーフェースは、非誘因事象からの誘因基準を分割する。直感的に、これは、訓練データに近いが同一でないテストデータに対して、分類を修正する。分類のための他の直接的および間接的なモデルとして、ナイーブベイズ(naive Bayes)、ベイジアンネットワーク(Bayesian network)、ディシジョンツリー(decision tree)、ニューラルネットワーク、ファジーロジックモデル(fuzzy logic model)、および、独立性の異なるパターンを与える確率分類モデルを用いることができる。ここで用いられる分類は、モデルの優先度の解明に用いられる統計的な不具合も内包する。
上記の例示的なシステムの視点において、説明された主題にしたがって実行される手順は、いくつかのフローチャート(例えば、図9、10および20〜22)参照して良く認識できるであろう。説明の簡略化の観点から、手順は、連続したブロックとして示され、説明されるが、クレームされた主題は、ブロックの順序により限定されることはなく、いくつかのブロックは、ここに表され説明されたものと異なる順序であっても良いし、他のブロックと同時に実行されても良いことを理解し、認識すべきである。逐次的でない分岐したフローがフローチャートに表されているが、いくつかの他の分岐、フローパスおよびブロックの順序が実行され、同じ、または、類似した結果が得られることが認識できる。さらに、以下に説明する手順の実施では、すべてのブロックが必要とされないであろう。
ここに説明されたいくつかの実施形態に加えて、他の類似した実施形態を用いることができ、対応する実施形態の同じもしくは類似した機能を実施するために、上記の実施形態から逸脱することなく、その変形および付加が可能である。さらに、多数のプロセスチップまたは多数のデバイスは、ここに説明する1以上の機能を協働して実行することができ、複数のデバイスにまたがった保存も、同じように可能である。したがって、本発明は、いかなる実施形態にも限定されず、添付されたクレームの広さ、精神および範囲を解釈することができる。
1以上の実施形態を基本的に理解するために、以下に概要を提示する。この概要は、すべての考慮された実施形態の全容を表すものではなく、全ての実施形態の鍵となる、または、不可欠な要素を認識させるものではなく、任意の、もしくは、全ての実施形態を説明するものでもない。その目的は、後に提示されるより詳細な説明への導入として、簡略化された形態の1以上の実施形態の概要を提示することである。
図2は、機械システムの慣性および摩擦係数の推定値を生成できる非限定的な慣性の推定システムを例示するブロック図である。慣性推定器202は、トルクコマンド生成部204、速度監視部206、慣性演算部208、摩擦係数演算部210、インターフェース部212、1以上のプロセッサ214およびメモリ216を含む。多様な実施形態において、トルクコマンド生成部204、速度監視部206、慣性演算部208、摩擦係数演算部210、インターフェース部212、1以上のプロセッサ214およびメモリ216のうちの1つ以上は、慣性推定器202の1以上の機能を実行するために、相互に電気的もしくは通信可能に結合でき、また、相互に電気的および通信可能に結合できる。
図4は、例示されたテストシーケンスを実行する間の慣性推定器と動作制御システムとの相互作用を表している。この例では、動作システム424は、コントローラ418により与えられる制御信号420に応答するモータ426を含む。モータ426は、ポジション軸、機械の回転部または他のモータ駆動の負荷のような負荷(図示しない)を駆動するために用いられる。コントローラ418は、モータ426のリアルタイムの状態を示すデータ(例えば、ポジション、スピードなど)を与えるフィードバック422を監視する。
試験の前に、1以上のユーザ定義のパラメータ412が、インターフェース部406(図2に関連して説明したインターフェース部212に類似)を介して慣性推定器402に与えられる。これらのパラメータは、トルクコマンド生成部408(図2のトルクコマンド生成部204に類似)により生成されるトルクコマンドの上限および下限を決める最大トルクumaxおよび最小トルクuminを含む。いくつかの実施形態では、慣性推定器402は、ユーザにより決定される最大トルクumaxのみを必要とし、決定された最大トルクの大きさを進行方向および逆方向の両方に対する限界値として用いる。他の実施形態では、慣性推定器402は、umaxおよびuminの両方の値を受け入れ、進行方向および逆方向のそれぞれに対し、異なるトルク設定点を許容する。umaxおよびuminに対して選択された値は、動作システム424の予定された動作限界に対応し、これにより、システムのトルクプロファイル全体に対する動作システム424の特性に基づいて慣性および摩擦係数を決定することが許容される。以下により詳細に説明するように、ユーザ定義のパラメータ412は、テストシーケンスの段階を定義するために用いられる臨界速度を決める1以上の速度検出点(v1、v2、v3、・・・)も含む。
インターフェース部は、ユーザ定義のパラメータ412をトルクコマンド生成部408に与える。試験を開始したとき、トルクコマンド生成部408は、動作システム424にトルクコマンド414を出力する。トルクコマンド生成部408は、時間に対して連続的にトルクコマンドを変化させるため、トルクコマンド414は、u(t)のように表される。図4に表された構成では、慣性推定器402は、トルクコマンド414をコントローラ418に送り、コントローラ418は、モータ426に指示された方向に、指示されたトルクで回転するように(制御信号420を介して)命令する。モータの回転にしたがい、速度監視部410は、コントローラ418から速度データ416を読み取る。(コントローラ418自身は、フィードバック422を介してモータ426の速度を計測する。)時間に対して測定された速度416は、v(t)のように表される。
前述した例では、慣性推定器は、トルクコマンドu(t)を送り、動作制御部(例えば、図4のコントローラ418)を介して速度帰還v(t)を受け取り、コントローラを介して動作する分散した部品、もしくは、コントローラとして集積化された部品のいずれかであるように説明したが、他の構成も、ここに開示するいくつかの実施形態の範囲に含まれる。例えば、図7は、慣性推定器706がコントローラ702から独立した要素として動作する構成を表している。この例では、慣性推定器706は、コントローラ702とは独立した自分のトルクコマンド信号を生成することができる。試験され、制御されるモータ704は、スイッチ712の状態に依存してコントローラ702または慣性推定器706からトルクコマンド信号を受信することができる。モータ704からの速度帰還710は、コントローラ702および慣性推定器706の両方に与えられる。テストシーケンスの間は、スイッチ712は、慣性推定器706からトルクコマンドu(t)が伝達されるようにセットされる。前述の例で説明したように試験が実行され、慣性推定器706は、動作システムの慣性Jおよび摩擦係数Bの推定値を生成する。そして、慣性推定器706は、JおよびBの推定値をコントローラ702に与え、コントローラ702は、好適な制御利得係数または他の制御パラメータを決定するために、その値を用いることができる。一旦、制御パラメータが設定されれば、スイッチ712は、コントローラ702からモータ704へトルクコマンド708を与える位置に切り替えられ、JおよびBに基づいて導出された制御利得係数を用いてモータシステムの通常動作が実行される。
図8は、慣性推定器により生成された推定慣性および推定摩擦係数を用いた動作制御チューニングの適用例を表している。この例では、チューニング部804がコントローラ806のために制御利得を調整し、コントローラ806は、モータ駆動の動作システム(図示しない)の動作を制御する。慣性推定器802は、上記の技術により動作システムの慣性J808および摩擦係数B810の推定値を生成することができる。具体的には、慣性推定器802は、コントローラ806に連続的したトルクコマンドを動作システムのモータに送るよう命令し、トルクコマンドは、予め定められたテストシーケンスにしたがって、時間に対して連続的に変化する。また、(図7に表す構成例のように)慣性推定器がコントローラとは独立に動作する実施形態では、慣性推定器802は、それ自身の連続したトルクコマンドを生成し、動作システムに出力しても良い。テストシーケンスは、加速および減速フェーズを含むことができ、その間、慣性推定器802は、適用されたトルクコマンドに応答する動作システムの速度を監視および記録する。テストシーケンスの結果に対し、時間的に変化するトルクコマンド信号、および、対応して時間的に変化する動作システムの速度の積分(例えば、式(12)および(13))に基づいて、慣性推定器802は、慣性J808および摩擦係数B810の推定値を計算することができる。
慣性推定器802は、慣性J808および摩擦係数B810をチューニング部804に与えることができる。代わりに、慣性推定器802は、JおよびBの値をユーザインターフェースに与え、ユーザがチューニング部804に推定慣性と推定摩擦係数をマニュアルで入力しても良い。JおよびB、もしくは、そのいずれかの知識は、動作システムの機械的特性に基づいてチューニング部804に1以上の制御利得812の好適な推定値を生成させる。チューニング部804は、望ましい動作特性を得るためにインターフェース816を介してユーザによりマニュアルで調整された制御システムのバンド幅814(例えば、重複した周波数)と、慣性J808および摩擦係数B810、もしくは、そのいずれかと、の関数として制御利得812の好適な値を生成できる。
ステップ1012では、トルクおよび速度データの減速部分に対して同様の積分を実行する。すなわち、トルクおよび速度データは、動作システムがステップ1006において減速し第2の速度検出点に戻る時間に対応する時間TCROSSOVERからTFINALまで積分される。ここで、TFINALは、減速フェーズの終了時間である。(図5に関連した上記の例では、TFINAL=t7である。)トルクおよび速度データの減速フェーズにおけるこれらの積分結果は、それぞれUdecおよびVdecで示される。
いくつかの実施形態では、ここに説明するプロファイル生成部は、動作制御部の集積化された部品であっても良い。図12は、この開示の1以上の実施形態にしたがってプロファイル生成部1206を用いる主制御部1202を備えた動作制御システム1200を例示している。主制御部1202は、例えば、1以上の動作デバイスを含むシステム(例えば、工業的処理、自動システム、バッチ処理など)を監視し制御するプログラマブルロジックコントローラ(PLC)、または、そのようなコントローラである。この例では、プロファイル生成部1206は、主制御部1202上に存在する1以上のプロセッサにより実行されるコントローラの動作システムおよび制御ソフトウェア、もしくは、そのいずれかの機能部品であっても良い。プロファイル生成部1206は、主制御部1202の他の機能要素とデータを交換する回路基板、集積回路など、主制御部1202の内部に存在するハードウェア部品であっても良い。プロファイル生成部1206の他の好適な実施例も、この開示のいくつかの実施形態の範囲内である。例えば、プロファイル生成部1206は、主制御部1202に集積化された要素として図12に表されているが、いくつかの実施形態では、プロファイル生成部1206は、コントローラ1202から分離された要素であっても良い。そのような構成では、プロファイル生成部1206は、主制御部1202または動作システムの他の要素と、好適な通信手段を介してデータを交換する。その通信手段は、有線または無線のネットワーク、配線されたデータリンクもしくは、そのような通信手段を含むが、これらに限定される訳ではない 。
図20は、動作制御システムにおける2点間の移動に対する動作プロファイルを計算するための手順例2000を表している。ステップ2002では、動作制御システムに対し、動作の制約条件が定められる。これらの制約条件は、動作制御システムにより制御される機械システムの物理的な制約を表し、速度、加速度、減速度およびジャークの限界を含むことができる。制約条件は、機械システムを制御するために用いられる動作コントローラのサンプリング時間の定義を含むことができる。ステップ2004では、制御される機械システムを新規のポジションまたは速度に移行させるコマンドを受信する。このコマンドは、動作コントローラにより実行される動作制御プログラムに起因しても良いし、ユーザにより入力されるマニュアルの動作コマンドであっても良い。そのコマンドは、動作コントローラに関連するプロファイル生成部(例えば、上記のプロファイル生成部1206、1302もしくは1402)が受信しても良い。
コンピュータ2410は、リモートコンピュータ2470のような1以上の遠く離れた他のコンピュータに論理的に結合されるネットワーク化または分散化された環境で動作しても良い。リモートコンピュータ2470は、パーソナルコンピュータ(PC)、サーバ、ルータ、ネットワークパソコン、ピアデバイス(peer device)もしくは他の共通ネットワークノード、または、任意の他のリモートメディアデバイスもしくはリモートメディア伝送デバイスであっても良いし、コンピュータ2410に関連して説明した要素のいずれか、もしくは、全てを含んでも良い。図24に表す論理結合は、LAN(local area network)もしくはWAN(wide area network)のような、ネットワーク2472を含むが、例えば、セルラーネットワークのような、他のネットワーク/バスも含まれる。