JP7031624B2 - 制御装置および制御プログラム - Google Patents
制御装置および制御プログラム Download PDFInfo
- Publication number
- JP7031624B2 JP7031624B2 JP2019021907A JP2019021907A JP7031624B2 JP 7031624 B2 JP7031624 B2 JP 7031624B2 JP 2019021907 A JP2019021907 A JP 2019021907A JP 2019021907 A JP2019021907 A JP 2019021907A JP 7031624 B2 JP7031624 B2 JP 7031624B2
- Authority
- JP
- Japan
- Prior art keywords
- control
- correction
- target
- correction coefficient
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P4/00—Arrangements specially adapted for regulating or controlling the speed or torque of electric motors that can be connected to two or more different electric power supplies
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Feedback Control In General (AREA)
- Control Of Electric Motors In General (AREA)
Description
本技術は、制御装置および制御プログラムに関する。
特開2014-7900号公報(特許文献1)は、動作目標値に制御対象の動作を追従させるために必要なモデルトルクを生成する制御部を有し、モデルトルクに基づいて制御対象を動作させるトルク指令を発生するモータ制御装置を開示している。制御部は、動作目標値を入力し、モデルゲインから決定した遮断周波数以上の高周波成分と所定の周波数成分とを減衰させるフィルタ演算によりモデルトルクを演算する。フィルタ演算の状態変数とモデルトルクとからトルク指令予測値を計算し、トルク指令予測値もしくはトルク指令予測値の絶対値と所定の閾値との比較に基づき、飽和予測信号を出力する。制御部は、動作目標値、飽和予測信号、状態変数に基づき、モデルトルクの絶対値の増加が抑えられるようにモデルゲインを計算する。これにより、トルクピークが低減され、トルク飽和が回避される。
特許文献1に開示のモータ制御装置では、トルク飽和を回避するために、モデルトルクの演算、トルク指定予測値の計算、飽和予測およびモデルゲインの計算を含む複雑な処理が行なわれる。その結果、トルク飽和の回避のための演算負荷が増大している。
本発明は、上記の問題に鑑みてなされたものであり、その目的は、演算負荷の増大を抑制しつつトルクピークを低減できる制御装置および制御プログラムを提供することである。
本開示の一例によれば、制御装置は、制御対象に接続されたモータを駆動するドライブ装置に操作量を出力して、停止している制御対象を指定位置に移動させる移動制御を行なう。制御装置は、制御対象が目標軌道に追従するように、目標軌道から生成される目標値を用いて操作量を生成する生成部と、移動制御の開始から予め定められた補正時間経過するまでの補正期間において、操作量または操作量の生成に用いる目標値に対して補正係数を乗じる補正部とを備える。補正係数は、補正期間において、時間経過とともに単調増加する。補正期間の終点における補正係数は1である。
この開示によれば、移動制御の開始からの補正期間において、操作量が緩やかに増大し、移動制御の開始直後におけるトルクピークを低減できる。トルクピークが低減されることにより、トルク飽和を回避できる。また、トルクピークが低減されることにより、小型のモータが利用可能となり、コストを低減できる。さらに、補正係数を乗じる演算が特許文献1のトルク飽和の回避のための演算と比べて簡易であり、演算負荷が抑制される。このように、演算負荷の増大を抑制しつつトルクピークを低減できる。
上述の開示において、補正係数は、移動制御の開始からの経過時間に比例して増加する。この開示によれば、補正係数を決定するための演算負荷を低減できる。
上述の開示において、補正係数は、移動制御の開始からの経過時間を説明変数とし、補正係数を目的変数とする関数に従って決定される。関数における補正期間の終点の微分値は0である。この開示によれば、制御対象の滑らかな移動を実現することができる。
上述の開示において、補正期間は、2つの区間に分割される。補正係数は、移動制御の開始からの経過時間を説明変数とし、補正係数を目的変数とする関数に従って決定される。関数は、2つの区間のうち先の区間において1次関数である。関数は、2つの区間のうち後の区間において、後の区間の始点の傾きが1次関数の傾きと一致し、後の区間の終点の2回微分値が0となる5次関数である。
この開示によれば、制御対象の滑らかな移動を実現することができるとともに、移動制御の開始直後における目標値への追従性の低下を抑制できる。
上述の開示において、移動制御は、制御対象を指定位置まで指定時間で移動させる制御である。予め定められた補正時間は、指定時間の1/2以下である。この開示によれば、整定時間が指定時間よりも増加することを抑制できる。
上述の開示において、生成部は、モデル予測制御を用いて操作量を生成する。モデル予測制御では、移動制御の開始時点からすぐに目標値への追従を目指すため、ドライブ装置に出力される操作量が大きくなり、ドライブ装置から出力されるトルク値が過大になりやすい。しかしながら、上記のようにトルクピークを低減できるため、モデル予測制御の適用により、目標値が移動先である指定位置へ到達する時点には、良好に追従した状態で制御対象の位置を整定させることができる。
本開示の一例によれば、制御対象に接続されたモータを駆動するドライブ装置に操作量を出力して、停止している制御対象を指定位置に移動させる移動制御を行なう制御装置を実現するための制御プログラムは、コンピュータに、以下の第1および第2のステップを実行させる。第1のステップは、制御対象が目標軌道に追従するように、目標軌道から生成される目標値を用いて操作量を生成するステップである。第2のステップは、移動制御の開始から予め定められた補正時間経過するまでの補正期間において、操作量または操作量の生成に用いる目標値に対して補正係数を乗じるステップである。補正係数は、補正期間において、時間経過とともに単調増加する。補正期間の終点における補正係数は1である。この開示によっても、演算負荷の増大を抑制しつつトルク飽和を抑制できる。
本発明によれば、演算負荷の増大を抑制しつつトルク飽和を抑制できる。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
§1 適用例
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に従う制御装置が適用される制御システムの構成例を示す模式図である。図1に示す例の制御システム1は、負荷となる制御対象2と、1または複数のサーボドライバと、1または複数のサーボモータと、制御装置100とを含む。
まず、図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に従う制御装置が適用される制御システムの構成例を示す模式図である。図1に示す例の制御システム1は、負荷となる制御対象2と、1または複数のサーボドライバと、1または複数のサーボモータと、制御装置100とを含む。
図1に示す例の制御対象2は、ワークが置載されるワーキングプレート3を互いに直交する二方向にそれぞれ移動させることができるXYステージである。なお、制御対象2は、XYステージに限定されるものではなく、指定位置に移動して位置決めされる装置であればよい。
ワーキングプレート3の位置(以下、「負荷位置」とも称する。)は、計測センサ20によって計測されてもよい。図1に示す例では、計測センサ20は、2つの計測センサ20X,20Yを含む。計測センサ20X,20Yは、例えばレーザ変位計などの変位センサによって構成される。計測センサ20Xは、ワーキングプレート3におけるX方向の位置を計測する。具体的には、計測センサ20Xは、ワーキングプレート3におけるX方向に直交する端面の変位を計測する。計測センサ20Yは、ワーキングプレート3におけるY方向の位置を計測する。具体的には、計測センサ20Xは、ワーキングプレート3におけるY方向に直交する端面の変位を計測する。
1または複数のサーボモータは、制御対象2のワーキングプレート3を移動させるためのモータであり、図1に示す例では、2つのサーボモータ300X,300Y(以下、「サーボモータ300」とも称する。)を含む。
制御対象2は、ワーキングプレート3の他に、第1ベースプレート4と、第2ベースプレート7とを有する。
第1ベースプレート4には、ワーキングプレート3をX方向に沿って任意に移動させるボールネジ6が配置されている。ボールネジ6は、ワーキングプレート3に含まれるナットと係合されている。ボールネジ6の一端に連結されたサーボモータ300Xが回転駆動することで、ワーキングプレート3に含まれるナットとボールネジ6とが相対回転し、その結果、ワーキングプレート3がX方向に沿って移動することになる。
さらに、第2ベースプレート7は、ワーキングプレート3および第1ベースプレート4をY方向に沿って任意に移動させるボールネジ9が配置されている。ボールネジ9は、第1ベースプレート4に含まれるナットと係合されている。ボールネジ9の一端に連結されたサーボモータ300Yが回転駆動することで、第1ベースプレート4に含まれるナットとボールネジ9とが相対回転し、その結果、ワーキングプレート3および第1ベースプレート4がY方向に沿って移動することになる。
1または複数のサーボドライバは、サーボモータを駆動するドライブ装置である。図1に示す例では、2つのサーボドライバ200X,200Y(以下、「サーボドライバ200」とも称する。)は、サーボモータ300X,300Yをそれぞれ駆動する。
サーボドライバ200は、制御装置100からの指令値(指令位置または指令速度)と、対応するサーボモータ300からのフィードバック値とに基づいて、対応するサーボモータ300に対する駆動信号を生成する。駆動信号は例えばトルク指令を示す。サーボドライバ200は、生成した駆動信号をサーボモータ300に出力することにより、サーボモータ300を駆動する。
例えば、サーボドライバ200は、対応するサーボモータ300の回転軸に結合されたエンコーダからの出力信号をフィードバック値として受ける。フィードバック値により、サーボモータ300の位置、回転位相、回転速度、累積回転数などを検出できる。
制御装置100は、サーボドライバ200に操作量を出力して、停止している制御対象2を指定位置に移動させる移動制御を行なう。制御装置100とサーボドライバ200との間では、操作量を含むデータの遣り取りが可能になっている。
図1には、制御装置100とサーボドライバ200との間がフィールドバス101を介して接続されている構成例を示す。但し、このような構成例に限らず、任意の通信手段を採用することができる。あるいは、制御装置100とサーボドライバ200との間を直接信号線で接続するようにしてもよい。さらに、制御装置100とサーボドライバ200とを一体化した構成を採用してもよい。以下に説明するような、アルゴリズムが実現されるものであれば、どのような実装形態を採用してもよい。
制御装置100は、制御対象2が目標軌道に追従するように、制御周期毎に、目標軌道から生成される目標値を用いて、サーボドライバ200に出力する操作量を生成する。制御装置100は、生成した操作量を指令値(指定位置または指令速度)としてサーボドライバ200に出力する。目標軌道は、移動制御ごとに予め作成される。具体的には、目標軌道は、停止状態にある初期位置から指定位置まで指定時間で移動し、当該指定位置で再び停止するように予め作成される。
停止している制御対象2に対して移動制御を開始すると、移動制御の開始直後において、サーボドライバ200から出力されるトルク値が大きくなる。特に、短い指定時間(移動時間)で振動を抑制したい場合に、制御対象2の固有振動周波数が低ければ、サーボドライバ200から出力されるトルク値が過大になりやすい。
さらに、例えばモデル予測制御のような目標値に対する追従性能の高い制御が制御装置100で実行される場合にも、サーボドライバ200から出力されるトルク値が過大になりやすい。これは、早期に目標値に追従させるような制御がなされるためである。
サーボドライバ200から出力されるトルク値が最大トルク値に達するトルク飽和が発生すると、目標値に対する追従性能が低下する。最大トルク値は、サーボモータ300の容量に応じて予め定められる。特に、制御装置100がモデル予測制御に従って操作量(すなわち、指令値)を生成する場合、モデル出力の予測誤差が大きくなり、追従性能がさらに低下しやすい。高容量のサーボモータを用いることによりトルク飽和を回避することが可能であるが、コストが高くなる。
このような問題を解決するため、本実施の形態に係る制御装置100は、移動制御の開始から予め定められた補正時間経過するまでの補正期間において、操作量に対して補正係数を乗じる。補正係数は、補正期間において時間経過に従って単調増加するように設定され、補正期間の終点において1である。これにより、移動制御の開始からの補正期間において、操作量(すなわち、指令値)が緩やかに増大し、移動制御の開始直後におけるトルクピークを低減できる。さらに、補正係数を乗じる演算が特許文献1のトルク飽和の回避のための演算と比べて簡易であり、演算負荷が抑制される。
§2 具体例
次に、本実施の形態に係る制御装置100の具体例について説明する。
次に、本実施の形態に係る制御装置100の具体例について説明する。
<A.制御装置のハードウェア構成例>
本実施の形態に従う制御装置100は、一例として、PLC(プログラマブルコントローラ)を用いて実装されてもよい。制御装置100は、予め格納された制御プログラム(後述するような、システムプログラムおよびユーザプログラムを含む)をプロセッサが実行することで、後述するような処理が実現されてもよい。
本実施の形態に従う制御装置100は、一例として、PLC(プログラマブルコントローラ)を用いて実装されてもよい。制御装置100は、予め格納された制御プログラム(後述するような、システムプログラムおよびユーザプログラムを含む)をプロセッサが実行することで、後述するような処理が実現されてもよい。
図2は、本実施の形態に従う制御装置100のハードウェア構成の一例を示す模式図である。図2に示されるように、制御装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メインメモリ106と、フラッシュメモリ108と、外部ネットワークコントローラ116と、メモリカードインターフェイス118と、内部バスコントローラ122と、フィールドバスコントローラ124と、外部ネットワークコントローラ116と、メモリカードインターフェイス118とを含む。
プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110およびユーザプログラム112を読み出して、メインメモリ106に展開して実行することで、制御対象に対する任意の制御を実現する。プロセッサ102がシステムプログラム110およびユーザプログラム112を実行することで、後述するような、サーボドライバ200への操作量の出力、フィールドバスを介したデータ通信に係る処理などを実行する。
システムプログラム110は、データの入出力処理や実行タイミング制御などの、制御装置100の基本的な機能を提供するための命令コードを含む。ユーザプログラム112は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム112Aおよびモーション制御を実行するためのモーションプログラム112Bを含む。ユーザプログラム112において、ファンクションブロックが定義されることで、本実施の形態に従う処理および機能が実現される。ファンクションブロックは、制御装置100で実行されるプログラムのコンポーネントであり、複数回使用するプログラムエレメントをモジュール化したものを意味する。
チップセット104は、各コンポーネントを制御することで、制御装置100全体としての処理を実現する。
内部バスコントローラ122は、制御装置100と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、I/Oユニット126が接続されている。
フィールドバスコントローラ124は、制御装置100とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ200が接続されている。
内部バスコントローラ122およびフィールドバスコントローラ124は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータ(計測値を含む)を取得することができる。また、内部バスコントローラ122および/またはフィールドバスコントローラ124は、サーボドライバ200との間でデータを遣り取りするためのインターフェイスとしても機能する。
外部ネットワークコントローラ116は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。
<B.サーボドライバ>
本実施の形態に従う制御装置100に接続されるサーボドライバ200の動作について説明する。サーボドライバ200は、制御装置100からの操作量を指令値(指令位置または指令速度)として受けるとともに、サーボモータ300に結合されたエンコーダからの出力信号をフィードバック値として受ける。サーボドライバ200は、指令値およびフィードバック値を用いて、例えばモデル追従制御系の制御ループに従う制御演算を実行する。
本実施の形態に従う制御装置100に接続されるサーボドライバ200の動作について説明する。サーボドライバ200は、制御装置100からの操作量を指令値(指令位置または指令速度)として受けるとともに、サーボモータ300に結合されたエンコーダからの出力信号をフィードバック値として受ける。サーボドライバ200は、指令値およびフィードバック値を用いて、例えばモデル追従制御系の制御ループに従う制御演算を実行する。
サーボドライバ200は、指令値として指令位置を受ける場合、位置制御ループおよび速度制御ループに従う制御演算を実行する。サーボドライバ200は、指令値として指令速度を受ける場合、速度制御ループに従う制御演算を実行する。
サーボドライバ200は、位置制御ループに従う制御演算を実行することにより、フィードバック値により得られるサーボモータ300の計測位置と制御装置100から与えられる指令位置との位置偏差に応じた指令速度を演算する。
サーボドライバ200は、速度制御ループに従う制御演算を実行することにより、指令速度とフィードバック値から得られるサーボモータ300の計測速度との速度偏差に応じたトルク値を演算する。サーボドライバ200は、演算されたトルク値のトルクをサーボモータ300に発生させるための電流指令をサーボモータ300に出力する。
<C.制御装置の機能構成例>
図3は、本実施の形態に係る制御装置の機能構成の一例を示す模式図である。図3に示されるように、制御装置100は、モデル作成モジュール130と、軌道生成モジュール140と、モデル予測制御モジュール150とからなる制御ユニット160を備える。図中においては、モデル予測制御を「MPC(Model Predictive Control)」と記す。なお、制御装置100は、サーボドライバ200X,200Yにそれぞれ対応する2つの制御ユニット160を備えている。ただし、図3には簡略化のため2つの制御ユニット160のうち一方のみが描かれている。
図3は、本実施の形態に係る制御装置の機能構成の一例を示す模式図である。図3に示されるように、制御装置100は、モデル作成モジュール130と、軌道生成モジュール140と、モデル予測制御モジュール150とからなる制御ユニット160を備える。図中においては、モデル予測制御を「MPC(Model Predictive Control)」と記す。なお、制御装置100は、サーボドライバ200X,200Yにそれぞれ対応する2つの制御ユニット160を備えている。ただし、図3には簡略化のため2つの制御ユニット160のうち一方のみが描かれている。
モデル作成モジュール130は、典型的には、ユーザプログラム112において、モデル作成ファンクションブロックが規定されることにより実現される。すなわち、モデル作成モジュール130は、ユーザプログラム112に規定されるモデル作成ファンクションブロックによって機能化される。
モデル作成モジュール130は、サーボドライバ200、サーボモータ300および制御対象2からなるモデル対象400の動特性を示す動特性モデルを作成する。動特性モデルは、操作量とワーキングプレート3の位置(負荷位置)との関係を示す伝達関数によって規定される。モデル作成モジュール130は、作成した動特性モデルを規定するパラメータをモデル予測制御モジュール150へ与える。
軌道生成モジュール140は、予め作成された目標軌道に沿って、ワーキングプレート3の目標位置を示す目標値SPの時系列データを生成し、各制御周期に対応する目標値SPを当該時系列データから順次読出し、モデル予測制御モジュール150へ入力する。具体的には、軌道生成モジュール140は、目標値SPの時系列データから、現時刻から将来の一定期間である予測ホライズン終了までの複数の目標値SPを抽出し、モデル予測制御モジュール150へ入力する。
なお、制御装置100は、目標軌道を規定する目標値SPの時系列データを予め記憶しておいてもよい。この場合には、軌道生成モジュール140は、予め記憶された目標値SPの時系列データへアクセスする。このように、目標軌道を規定する制御周期毎の目標値SPは、時系列データの形で予め格納されていてもよいし、予め定められた計算式に従って各制御周期についての目標値SPを逐次計算するようにしてもよい。
モデル予測制御モジュール150は、典型的には、ユーザプログラム112において、モデル予測制御ファンクションブロックが規定されることにより実現される。すなわち、モデル予測制御モジュール150は、ユーザプログラム112に規定されるモデル予測制御ファンクションブロックによって機能化される。モデル予測制御モジュール150は、生成部151と補正部152とを含む。
生成部151は、動特性モデルを用いたモデル予測制御を実行することにより、負荷位置と目標値で示される目標位置との偏差が最小となるように、操作量MVを生成する。生成部151は、モデル予測制御の方法として、公知の方法を採用すればよい。
補正部152は、移動制御の開始から予め定められた補正時間T経過するまでの補正期間において、生成部151によって生成された操作量MVに対して補正係数を乗じ、当該操作量MVを補正する。補正部152は、補正後の操作量MVを指令値(指令位置または指令速度)としてサーボドライバ200に出力する。
上述したように、補正係数は、時間経過に従って単調増加するように設定され、補正期間の終点において1である。これにより、移動制御の開始からの補正期間において、操作量が緩やかに増大し、移動制御の開始直後におけるトルク飽和を抑制できる。
<D.動特性モデル>
動特性モデルは、事前のチューニングにより作成される。図1に示すように計測センサ20が設置されている場合には、チューニングにおいて得られた入力値(操作量)と出力値(負荷位置の計測値)とに基づいて動特性モデルが作成される。動特性モデルは、例えば以下の関数P(z-1)で示される。関数P(z-1)は、むだ時間要素と、n次遅れ要素とを組み合わせた離散時間伝達関数である。関数P(z-1)で示される動特性モデルにおいては、むだ時間要素のむだ時間dならびにn次遅れ要素の変数a1~anおよび変数b1~bmがモデルパラメータとして決定される。むだ時間とは、入力値が与えられてから、それに応じた出力が現れるまでの時間(つまり、入力から出力までの遅れ時間)である。なお、次数nおよび次数mについても最適な値が決定されてもよい。
動特性モデルは、事前のチューニングにより作成される。図1に示すように計測センサ20が設置されている場合には、チューニングにおいて得られた入力値(操作量)と出力値(負荷位置の計測値)とに基づいて動特性モデルが作成される。動特性モデルは、例えば以下の関数P(z-1)で示される。関数P(z-1)は、むだ時間要素と、n次遅れ要素とを組み合わせた離散時間伝達関数である。関数P(z-1)で示される動特性モデルにおいては、むだ時間要素のむだ時間dならびにn次遅れ要素の変数a1~anおよび変数b1~bmがモデルパラメータとして決定される。むだ時間とは、入力値が与えられてから、それに応じた出力が現れるまでの時間(つまり、入力から出力までの遅れ時間)である。なお、次数nおよび次数mについても最適な値が決定されてもよい。
このようなモデルパラメータの作成処理(すなわち、システム同定)は、最小二乗法などにより実行されてもよい。
具体的には、y=P(z-1)*uの変数uに操作量を与えたときの出力yが、負荷位置の計測値と一致するように(すなわち、誤差が最小になるように)、モデルパラメータの各々の値が決定される。
もしくは、動特性モデルは、操作量とサーボモータ300の位置(以下、「モータ位置」と称する。)との関係を示す第1動特性モデルPCMと、モータ位置と負荷位置との関係を示す第2動特性モデルPMLとを組み合わせることにより作成されてもよい。すなわち、動特性モデルは、PCM*PMLで示される。
第1動特性モデルPCMは、サーボドライバ200およびサーボモータ300のモデルであり、入力値である操作量と出力値であるモータ位置との関係を表す伝達関数によって規定される。通常、サーボモータ300にはエンコーダが設置され、エンコーダからのフィードバック値によりモータ位置が連続かつ高精度に計測される。そのため、モータ位置の計測値に基づいて第1動特性モデルPCMが作成される。
第1動特性モデルPCMは、例えば以下の関数PCM(z-1)で示される。関数PCM(z-1)は、むだ時間要素と、n次遅れ要素とを組み合わせた離散時間伝達関数である。関数PCM(z-1)で示される第1動特性モデルにおいては、むだ時間要素のむだ時間dならびにn次遅れ要素の変数aCM1~aCMnおよび変数bCM1~bCMmがモデルパラメータとして決定される。なお、次数nおよび次数mについても最適な値が決定されてもよい。
第2動特性モデルPMLは、制御対象2のモデルであり、入力値であるモータ位置と出力値である負荷位置との関係を表す伝達関数によって規定される。モータ位置と負荷位置との関係は、制御対象2の振動に依存する。そのため、第2動特性モデルPMLは、制御対象2の振動波形から抽出された波形パラメータを用いて作成されてもよい。波形パラメータは、例えば、制御対象2の振動周波数f0(典型的には固有振動周波数)および振動波形において連続する2つの波の振幅比Adrを含む。制御対象2の振動波形は、計測センサ20の計測結果から容易に得られる。
第2動特性モデルPMLは、例えば以下の[数3]に示すいずれかの関数PML(s)で示される。関数PML(s)において、ω0は、制御対象2の振動角周波数であり、ω0=2πf0で示される。ζは振動の減衰比を示す。ζは、対数減衰率δを用いて、ζ=δ/(δ2+4π2)1/2で示される。対数減衰率δは、振動波形において連続する2つの波の振幅比Adrと自然対数lnとを用いて、δ=ln(1/Adr)で示される。
<E.操作量MVの生成>
生成部151は、例えば以下のようなモデル予測制御により、制御周期毎に操作量MVを生成する。
生成部151は、例えば以下のようなモデル予測制御により、制御周期毎に操作量MVを生成する。
生成部151は、モデル作成モジュール130によって動特性モデルが作成されると、ステップ応答計算とランプ応答計算とを事前準備として行なう。
ステップ応答計算とは、出力が0である初期状態において最大の入力(ステップ入力)を継続したときの動特性モデルの出力Ysを求める計算である。以下の説明では、ステップ入力の入力開始からの経過時間i(>むだ時間d)における出力YsをYs(i)とする。
ランプ応答計算とは、出力が0である初期状態において制御周期毎に1段階ずつ増加させた入力(ランプ入力)を行なったときの動特性モデルの出力Yrを求める計算である。以下の説明では、ランプ入力の入力開始からの経過時間i(>むだ時間d)における出力YrをYr(i)とする。
生成部151は、移動制御中の各制御周期において、以下の処理を行なう。
生成部151は、今回の制御周期kまでに生成した操作量MVを入力することにより、制御周期k+d+1における負荷位置(以下、「予測負荷位置YLk+d+1」という)を演算する。制御周期k+d+1は、今回の制御周期kの終了時から動特性モデルに規定されるむだ時間d+1だけ経過した制御周期である。
生成部151は、今回の制御周期kまでに生成した操作量MVを入力することにより、制御周期k+d+1における負荷位置(以下、「予測負荷位置YLk+d+1」という)を演算する。制御周期k+d+1は、今回の制御周期kの終了時から動特性モデルに規定されるむだ時間d+1だけ経過した制御周期である。
動特性モデルが第1動特性モデルPCMと第2動特性モデルPMLとから構成される場合には、生成部151は、次のようにして、予測負荷位置YLk+d+1を演算してもよい。すなわち、生成部151は、第1動特性モデルPCMに、今回の制御周期kまでに生成した操作量MVを入力することにより、制御周期k+d+1におけるモータ位置(以下、「予測モータ位置YMk+d+1」という)を演算する。生成部151は、予測モータ位置YMk+d+1を第2動特性モデルPMLに入力することにより、制御周期k+d+1における予測負荷位置YLk+d+1を演算する。
上記のようにして求められた予測負荷位置YLk+d+1は、次回の制御周期における操作量MVを生成するために使用される。このとき、次回の制御周期に備えて、演算されたデータが1制御周期分だけシフトされる。例えば、上記のようにして求められた予測負荷位置YLk+d+1は、次回の制御周期において予測負荷位置YLk+dとして使用される。言い換えると、今回の制御周期kでは、前回の制御周期において演算された予測負荷位置YLk+d+1が予測負荷位置YLk+dとして使用される。
生成部151は、予測負荷位置YLk+dを指定状態とした自由応答計算を行なう。自由応答計算とは、制御周期k+dにおいて指定状態にある動特性モデルにおいて、今回の制御周期k以降の入力を0としたときの、制御周期k+dより後の制御周期k+d+Hにおける動特性モデルの出力Yf(k+d+H)を求める計算である。
生成部151は、ステップ出力およびランプ出力の大きさをそれぞれksおよびkrとして、制御周期k+dより予測ホライズン後の制御周期k+d+Hにおける動特性モデルの出力MHk+d+Hを以下の式(1)に従って演算する。
MHk+d+H=ks*Ys(H)+kr*Yr(H)+Yf(k+d+H) …式(1)
MHk+d+H=ks*Ys(H)+kr*Yr(H)+Yf(k+d+H) …式(1)
生成部151は、MHk+d+Hと予測負荷位置YLk+dとの差分ΔMHと、制御周期k+d+Hにおける参照軌道上の位置RHk+d+Hと予測負荷位置YLk+dとの差分ΔPHとが一致するように、ksおよびkrを求める。
参照軌道は、制御周期k+d+Hにおける目標値SPk+d+Hと予め定められる参照軌道時定数Trとによって特定される。制御周期k+d+Hにおける参照軌道上の位置RHk+d+Hは、例えば以下の式で表される。
RHk+d+H=SPk+d+H-exp(-Ts/Tr)H*(SPk+d-YLk+d) …式(2)
RHk+d+H=SPk+d+H-exp(-Ts/Tr)H*(SPk+d-YLk+d) …式(2)
2つの変数ksおよびkrを求めるため、Hとして2つの値H1,H2が設定される。H1,H2は、制御対象2の振動周期よりも短い時間であり、例えばそれぞれ振動周期の1/8および振動周期の1/4である。そして、2つの値H1,H2のそれぞれの式からなる連立方程式を解くことにより、変数ks,krが演算される。
生成部151は、上記のようにして求めたksとステップ入力との積を、今回の制御周期kの操作量MVkとして生成すればよい。
<F.補正係数>
以下、図4~図6を参照して、補正係数f(t)の具体例について説明する。図4は、補正係数f(t)の第1の例を示す図である。図5は、補正係数f(t)の第2の例を示す図である。図6は、補正係数f(t)の第3の例を示す図である。
以下、図4~図6を参照して、補正係数f(t)の具体例について説明する。図4は、補正係数f(t)の第1の例を示す図である。図5は、補正係数f(t)の第2の例を示す図である。図6は、補正係数f(t)の第3の例を示す図である。
図4に示されるように、第1の例の補正係数f(t)は、移動制御の開始からの経過時間tに比例して増加する。具体的には、第1の例の補正係数f(t)は、経過時間tを説明変数とする1次関数
f(t)=t/T
に従って決定される。Tは、補正期間の時間長さ(補正時間)である。
f(t)=t/T
に従って決定される。Tは、補正期間の時間長さ(補正時間)である。
第1の例の補正係数f(t)は、簡易な1次関数に従って決定される。そのため、補正係数f(t)を決定する演算負荷を低減できる。ただし、補正期間の終点(t=T)において、サーボドライバ200に出力される操作量(すなわち指令値)の変化が大きくなり、制御対象2の滑らかな移動が困難になる可能性がある。例えば、指令値が位置指令を示す場合、サーボドライバ200から出力されるトルク値がマイナス方向に急減することがある。
第2の例の補正係数f(t)は、第1の例の補正係数f(t)の問題点を解決でき、補正期間の終点(t=T)の微分値が0となる関数に従って決定される。図5には、補正期間の起点(t=0)および終点(t=T)の2回微分値が0となる5次関数
f(t)=(t/T)3×{6×(t/T)2-15×(t/T)+10}
に従って決定される補正係数が示される。しかしながら、第2の例の補正係数f(t)は、図5に示す5次関数ではなく、補正期間の終点(t=T)の微分値が0となる3次関数に従って決定されてもよい。
f(t)=(t/T)3×{6×(t/T)2-15×(t/T)+10}
に従って決定される補正係数が示される。しかしながら、第2の例の補正係数f(t)は、図5に示す5次関数ではなく、補正期間の終点(t=T)の微分値が0となる3次関数に従って決定されてもよい。
第2の例の補正係数f(t)を用いることにより、制御対象2の滑らかな移動を実現することができるが、移動制御の開始直後の補正係数f(t)の増加速度が遅いために、目標値への追従性が大きく低下しやすい。
第3の例の補正係数f(t)は、第2の例の補正係数f(t)の問題点を解決できる。図6の上段には、第3の例の補正係数f(t)を決定するための関数が示される。図示されるように、t=0~Tの補正期間は、2つの区間Ta,Tbに分割される。先の区間Taにおいて,補正係数f(t)は、1次関数
f(t)=t/T
に従って決定される。後の区間Tbにおいて、補正係数f(t)は、区間Tbの始点の傾きが区間Tbにおける1次関数の傾きと一致し、区間Tbの終点の2回微分値が0となる5次関数
f(t)=(t/T)3×{6×(t/T)2-15×(t/T)+10}
に従って決定される。
f(t)=t/T
に従って決定される。後の区間Tbにおいて、補正係数f(t)は、区間Tbの始点の傾きが区間Tbにおける1次関数の傾きと一致し、区間Tbの終点の2回微分値が0となる5次関数
f(t)=(t/T)3×{6×(t/T)2-15×(t/T)+10}
に従って決定される。
第3の例の補正係数f(t)を用いることにより、制御対象2の滑らかな移動を実現することができるとともに、移動制御の開始直後における目標値への追従性の低下を抑制できる。
図6の下段には、補正係数f(t)を決定するための関数を作成する方法が示される。図示されるように、t=0~T5の期間の起点(t=0)および終点(t=T5)の2回微分値が0となる5次関数
g(t)=(t/T5)3×{6×(t/T5)2-15×(t/T5)+10}
が設定される。当該5次関数で示される曲線の中間点(t=T5/2)から時間軸に達し、かつ、5次関数の中間点における微分値(=(15/8)×(1/T5))と一致する傾きを有する線分が引かれる。当該線分は、1次関数g(t)=(15/8)×(t/T5)-7/16で表され、時間軸とt=(7/30)T5の点で交わる。
g(t)=(t/T5)3×{6×(t/T5)2-15×(t/T5)+10}
が設定される。当該5次関数で示される曲線の中間点(t=T5/2)から時間軸に達し、かつ、5次関数の中間点における微分値(=(15/8)×(1/T5))と一致する傾きを有する線分が引かれる。当該線分は、1次関数g(t)=(15/8)×(t/T5)-7/16で表され、時間軸とt=(7/30)T5の点で交わる。
(7/30)T5≦t≦T5/2のときに
g(t)=(15/8)×(t/T5)-7/16
で表され、T5/2<t≦T5のときに
g(t)=(t/T5)3×{6×(t/T5)2-15×(t/T5)+10}
で表される関数g(t)の時間幅(7/30)T5~T5を0~Tに変換することにより,図6の上段に示される関数が作成される。
g(t)=(15/8)×(t/T5)-7/16
で表され、T5/2<t≦T5のときに
g(t)=(t/T5)3×{6×(t/T5)2-15×(t/T5)+10}
で表される関数g(t)の時間幅(7/30)T5~T5を0~Tに変換することにより,図6の上段に示される関数が作成される。
<G.処理手順>
次に、本実施の形態に従う制御装置100によるモータ制御の処理手順の概要について説明する。図7は、本実施の形態に従う制御システムによるモータ制御の処理手順を示すフローチャートである。図7に示すステップは、制御装置100のプロセッサ102が制御プログラム(図2に示すシステムプログラム110およびユーザプログラム112を含む)を実行することで実現されてもよい。
次に、本実施の形態に従う制御装置100によるモータ制御の処理手順の概要について説明する。図7は、本実施の形態に従う制御システムによるモータ制御の処理手順を示すフローチャートである。図7に示すステップは、制御装置100のプロセッサ102が制御プログラム(図2に示すシステムプログラム110およびユーザプログラム112を含む)を実行することで実現されてもよい。
まず、制御装置100は、補正時間Tを設定する(ステップS1)。例えば、制御装置100は、制御対象2を指定位置まで指定時間かけて移動させる場合に、当該指定時間に予め定められた割合(例えば1/2)を乗じた時間を補正時間Tとして設定する。
次に、制御装置100は、制御開始からの経過時間tを0に設定する(ステップS2)。その後、制御装置100は、移動制御を開始するか否かを判断する(ステップS3)。例えば、制御装置100は、サーボドライバ200、サーボモータ300、制御対象2および他の機器の状態を確認し、各機器から準備完了の通知を受けたことにより、移動制御を開始すると判断すればよい。移動制御を開始しないと判断した場合(ステップS3でNO)、モータ制御の処理はステップS3に戻される。
移動制御を開始すると判断した場合(ステップS3でYES)、制御装置100は、制御開始からの経過時間tに制御周期Tsを加算する(ステップS4)。制御装置100は、負荷位置と目標値SPで示される目標位置との偏差が最小となるように、動特性モデルを用いたモデル予測制御を実行して、今回の制御周期に対応する操作量MVを生成する(ステップS5)。ステップS5における操作量MVの生成は、例えば<E.操作量MVの生成>に記載した方法によって行なわれる。
次に、制御装置100は、制御開始からの経過時間tが補正時間T以下であるか否かを判断する(ステップS6)。t≦Tである場合(ステップS6でYES)、制御装置100は、補正係数を決定するための関数に制御開始からの経過時間tを代入することにより、今回の制御周期における補正係数f(t)を演算する(ステップS7)。制御装置100は、補正係数f(t)を操作量MVに乗じることにより操作量MVを補正し、補正後の操作量MVをサーボドライバ200に出力する(ステップS8)。
ステップS8の後、または、t>Tである場合(ステップS6でNo)、制御装置100は、移動制御を終了すべきか否かを判断する(ステップS9)。制御装置100は、負荷位置が目標軌道の終点に到達して整定した場合に、移動制御を終了すると判断すればよい。移動制御を終了しないと判断した場合(ステップS9においてNO)、モータ制御の処理は、ステップS4に戻される。これにより、ステップS4~S8が繰り返される。なお、ステップS4~S8は、制御周期毎に繰り返される。
移動制御を終了すると判断した場合(ステップS9においてYES)、モータ制御の処理は終了する。以上のような処理手順によって、本実施の形態に従う制御装置100のモータ制御が実現される。なお、ステップS1~S10の処理は、指定されたサーボドライバ200の各々について実施される。そのため、複数のサーボドライバ200のそれぞれについてのステップS1~S10の処理が並列的に実行されることもある。
<H.プログラミング例>
本実施の形態に従う制御装置100による制御処理は、制御装置100で実行されるユーザプログラム112において命令を記述することで実行され得る。以下、本実施の形態に従う制御装置100のプログラミングの一例について説明する。
本実施の形態に従う制御装置100による制御処理は、制御装置100で実行されるユーザプログラム112において命令を記述することで実行され得る。以下、本実施の形態に従う制御装置100のプログラミングの一例について説明する。
図8は、本実施の形態に従う制御装置で実行される命令コードの一例を示す図である。図8には、ユーザプログラム112に含まれるモデル予測制御ファンクションブロック115が示される。モデル予測制御ファンクションブロック115(以下、「モデル予測制御FB115」という)は、モデル予測制御の実行を規定するためのファンクションブロックである。上記のモデル予測制御モジュール150は、モデル予測制御FB115によって実現される。
モデル予測制御FB115は、入力項目として、開始指示115Aと、サンプリング周期115Bと、目標値115Cと、モデルパラメータ115Dと、制御パラメータ115Eと、振動周波数115Fと、振幅比115Gと、制御開始時補正時間115Hとを含む。モデル予測制御FB115は、出力項目として、ステータス115Iと、操作量115Jとを含む。
開始指示115Aには、例えば、モデル予測制御を開始するための条件が設定される。サンプリング周期115Bには、モデル予測制御による演算を実行する制御周期Tsが設定される。
目標値115Cには、予め定められた制御対象2の目標軌道を規定する複数の目標値SPのデータ配列が設定される。
モデルパラメータ115Dには、モデル作成モジュール130によって作成された第1動特性モデルPCMを規定するためのモデルパラメータ(d,acm1~acmn,bcm1~bcmm)が入力される。
制御パラメータ115Eには、モデル予測制御で用いる予測ホライズンの値H1,H2および参照軌道時定数Trが入力される。
振動周波数115Fには、第2動特性モデルPMLを規定するための振動周波数f0が入力される。振幅比115Gには、第2動特性モデルPMLを規定するための振幅比Adrが入力される。制御開始時補正時間115Hには、補正時間Tが入力される。
また、ステータス115Iからは、モデル予測制御FB115による処理の実行状態を示す値が出力される。
操作量115Jから、操作量MVが指令値としてサーボドライバに出力される。なお、移動制御の開始から補正時間Tが経過するまでの補正期間では、モデル予測制御の実行によって生成された操作量MVに補正係数f(t)を乗じることによって補正された操作量MVが出力される。補正期間後には、モデル予測制御の実行によって生成された操作量MVが出力される。
<I.シミュレーション結果>
本実施の形態に係る制御装置100の効果を検証するためにシミュレーションを行なった。
本実施の形態に係る制御装置100の効果を検証するためにシミュレーションを行なった。
図9は、補正係数f(t)による操作量MVの補正を行なわないときのシミュレーション結果の例を示す図である。図10は、補正係数f(t)による操作量MVの補正を行なったときのシミュレーション結果の例を示す図である。補正係数f(t)として、図6に示す第3の例の補正係数f(t)を用いた。
図9および図10には、以下の条件下でのシミュレーション結果が示される。
制御対象:2慣性系、
制御対象の振動周波数:9.2Hz
制御周期Ts:1ms
むだ時間d:2ms
予測ホライズン:H1=10制御周期、H2=18制御周期
移動制御:指定時間200msで制御対象を25mm離れた指定位置まで移動させる。
制御対象:2慣性系、
制御対象の振動周波数:9.2Hz
制御周期Ts:1ms
むだ時間d:2ms
予測ホライズン:H1=10制御周期、H2=18制御周期
移動制御:指定時間200msで制御対象を25mm離れた指定位置まで移動させる。
図10において、最左列の(a)には、補正時間Tを10msとしたときのシミュレーション結果が示される。左から2列目の(b)には、補正時間Tを20msとしたときのシミュレーション結果が示される。左から3列目の(c)には、補正時間Tを50msとしたときのシミュレーション結果が示される。左から4列目の(d)には、補正時間Tを100msとしたときのシミュレーション結果が示される。
図9および図10において、1段目には、目標位置の時間変化つまり目標軌道と、負荷位置の時間変化とが示される。目標軌道は5次軌道である。2段目には、目標位置と負荷位置との偏差の時間変化が示される。3段目には、サーボドライバから出力されるトルク値の時間変化が示される。
図9に示されるように、補正係数f(t)による補正を行なわない場合、目標軌道に対する追従性能が高く維持されるものの、移動制御の開始直後において、サーボドライバから出力されるトルク値が大きい。
これに対し、図10に示されるように、移動制御の開始から補正時間T経過するまでの補正期間において補正係数f(t)による操作量MVの補正を行なうことにより、サーボドライバから出力されるトルク値が低減される。トルク値の低減効果は、補正時間Tを長くすることにより大きくなる。
補正時間Tが長くなると、負荷位置と目標位置との偏差が大きくなる傾向にある。ただし、補正時間Tは、指定位置まで移動させる指定時間の1/2以下に設定されているため、負荷位置と目標位置との偏差が大きくなるのは、制御対象の移動中に限られる。そのため、移動制御の開始から指定時間200ms経過したときの負荷位置と目標位置との偏差は十分に小さい。すなわち、移動制御を開始してから制御対象の位置が指定位置を含む許容範囲内に収まるまでの整定時間は、指定時間(200ms)から増加していない。
<J.利点>
以上のように、本実施の形態に係る制御装置100は、制御対象2に接続されたサーボモータ300を駆動するドライブ装置であるサーボドライバ200に操作量MVを出力して、停止している制御対象2を指定位置に移動させる移動制御を行なう。制御装置100は、生成部151と補正部152とを備える。生成部151は、制御対象2が目標軌道に追従するように、目標軌道から生成される目標値SPを用いて操作量MVを生成する。補正部152は、移動制御の開始から予め定められた補正時間T経過するまでの補正期間において、操作量MVに対して補正係数f(t)を乗じる。補正係数f(t)は、補正期間において、時間経過とともに単調増加する。補正期間の終点における補正係数f(T)は1である。
以上のように、本実施の形態に係る制御装置100は、制御対象2に接続されたサーボモータ300を駆動するドライブ装置であるサーボドライバ200に操作量MVを出力して、停止している制御対象2を指定位置に移動させる移動制御を行なう。制御装置100は、生成部151と補正部152とを備える。生成部151は、制御対象2が目標軌道に追従するように、目標軌道から生成される目標値SPを用いて操作量MVを生成する。補正部152は、移動制御の開始から予め定められた補正時間T経過するまでの補正期間において、操作量MVに対して補正係数f(t)を乗じる。補正係数f(t)は、補正期間において、時間経過とともに単調増加する。補正期間の終点における補正係数f(T)は1である。
上記の構成によれば、移動制御の開始からの補正期間において、操作量MV(すなわち、指令値)が緩やかに増大し、移動制御の開始直後におけるトルクピークを低減できる。トルクピークが低減されることにより、トルク飽和を回避できる。また、トルクピークが低減されることにより、小型のモータが利用可能となり、コストを低減できる。さらに、補正係数f(t)を乗じる演算が特許文献1のトルク飽和の回避のための演算と比べて簡易であり、演算負荷が抑制される。
例えば、補正係数f(t)は、移動制御の開始からの経過時間tに比例して増加してもよい(図4参照)。この場合、補正係数f(t)は、簡易な1次関数に従って決定される。そのため、補正係数f(t)を決定する演算負荷を低減できる。
もしくは、補正係数f(t)は、移動制御の開始からの経過時間tを説明変数とし、補正係数f(t)を目的変数とする関数に従って決定され、関数における補正期間の終点(t=T)の微分値は0であってもよい(図5参照)。この場合、制御対象2の滑らかな移動を実現することができる。
もしくは、補正期間が2つの区間Ta,Tbに分割されてもよい(図6参照)。そして、関数は、先の区間Taにおいて1次関数であり、後の区間Tbにおいて、区間Tbの始点の傾きが1次関数の傾きと一致し、区間Tbの終点の2回微分値が0となる5次関数である。この場合、制御対象2の滑らかな移動を実現することができるとともに、移動制御の開始直後における目標値への追従性の低下を抑制できる。
移動制御は、制御対象2を指定位置まで指定時間で移動させる制御である。予め定められた補正時間Tは、指定時間の1/2以下であることが好ましい。これにより、図10に示すシミュレーション結果から、整定時間が指定時間よりも増加することを抑制できる。
<K.変形例>
<K-1.変形例1>
上記の説明では、補正部152は、生成部151が生成した操作量MVを補正係数f(t)で補正するものとした。しかしながら、補正部152は、操作量MVの代わりに、軌道生成モジュールから出力される目標値SPに対して補正係数f(t)を乗じ、目標値SPを補正してもよい。上述したように、生成部151は、負荷位置と目標値SPで示される目標位置との偏差が最小となるように操作量MVを生成する。そのため、目標値SPが補正係数f(t)によって補正されることにより、移動制御の開始から補正時間Tが経過するまでの補正期間において、操作量MV(すなわち、指令値)が緩やかに増大し、トルク飽和が抑制される。
<K-1.変形例1>
上記の説明では、補正部152は、生成部151が生成した操作量MVを補正係数f(t)で補正するものとした。しかしながら、補正部152は、操作量MVの代わりに、軌道生成モジュールから出力される目標値SPに対して補正係数f(t)を乗じ、目標値SPを補正してもよい。上述したように、生成部151は、負荷位置と目標値SPで示される目標位置との偏差が最小となるように操作量MVを生成する。そのため、目標値SPが補正係数f(t)によって補正されることにより、移動制御の開始から補正時間Tが経過するまでの補正期間において、操作量MV(すなわち、指令値)が緩やかに増大し、トルク飽和が抑制される。
図11は、変形例1に従う制御システムによるモータ制御の処理手順を示すフローチャートである。図11に示す処理手順は、図7に示す処理手順と比較して、ステップS5,S8の代わりにステップS10,S11を含む点で相違する。
図11に示されるように、変形例1に従う制御システムでは、モータ制御の処理は、ステップS4の後にステップS6,S7に移る。ステップS7の後、制御装置100は、補正係数f(t)を目標値SPに乗じることにより、目標値SPを補正する(ステップS10)。
例えば、上記<E.操作量MVの生成>で説明した方法に従って操作量MVを生成する場合、今回の制御周期kに対応する操作量MVkを生成するために用いる目標値SPは、上記の式(2)に含まれる、制御周期k+d+Hにおける目標値SPk+d+Hと制御周期k+dにおける目標値SPk+dである。Hとして2つの値H1,H2が設定されるため、制御装置100は、今回の制御周期kにおいて、目標値SPk+d+H1と目標値SPk+d+H2と目標値SPk+dとを補正すればよい。
ステップS10の後、または、t>Tの場合(ステップS6でNO)、制御装置100は、負荷位置と目標値SPで示される目標位置との偏差が最小となるように、動特性モデルを用いたモデル予測制御を実行して、操作量MVを生成する(ステップS11)。ステップS11では、目標値SPが補正係数f(t)で補正される場合、補正後の目標値SPを用いて操作量MVが生成される。生成された操作量MVは、サーボドライバ200に出力される。
その後、制御装置100は、移動制御を終了すべきか否かを判断する(ステップS9)。移動制御を終了しないと判断した場合(ステップS9においてNO)、モータ制御の処理は、ステップS4に戻される。これにより、ステップS4、S6,S7,S10,S11が繰り返される。なお、ステップS4、S6,S7,S10,S11は、制御周期毎に繰り返される。
図12は、補正係数f(t)による目標値SPの補正を行なったときのシミュレーション結果の例を示す図である。図12には、操作量MVの代わりに目標値SPを補正係数f(t)により補正する点を除いて、図10と同じ条件下でのシミュレーション結果が示される。すなわち、制御周期毎に、むだ時間d(=2ms)だけ経過した制御周期の目標値SPと、むだ時間d(=2ms)+H1(=10ms)だけ経過した制御周期の目標値SPと、むだ時間d(=2ms)+H2(=18ms)だけ経過した制御周期の目標値SPとを補正係数f(t)により補正した。
図12において、最左列の(a)には、補正時間Tを10msとしたときのシミュレーション結果が示される。左から2列目の(b)には、補正時間Tを20msとしたときのシミュレーション結果が示される。左から3列目の(c)には、補正時間Tを50msとしたときのシミュレーション結果が示される。左から4列目の(d)には、補正時間Tを100msとしたときのシミュレーション結果が示される。
図12に示されるように、移動制御の開始から補正時間T経過するまでの補正期間において補正係数f(t)による目標値SPの補正を行なうことにより、サーボドライバから出力されるトルク値が低減される。トルク値の低減効果は、補正時間Tを長くすることにより大きくなる。さらに、補正時間Tが指定位置までの移動時間の1/2以下に設定されている場合に、整定時間が指定時間(200ms)から増加していないことが確認された。
<K-2.変形例2>
図13は、変形例2に係る制御装置の機能構成の一例を示す模式図である。図13に示されるように、変形例2に係る制御装置100Aは、図3に示す制御装置100と比較して、制御ユニット160の代わりに制御ユニット160Aを備える点で相違する。制御ユニット160Aは、制御ユニット160と比較して、モデル予測制御モジュール150の代わりにモデル予測制御モジュール150Aを含む点で相違する。モデル予測制御モジュール150Aは、モデル予測制御モジュール150と比較して、生成部151の代わりに生成部151Aを含む点で相違する。
図13は、変形例2に係る制御装置の機能構成の一例を示す模式図である。図13に示されるように、変形例2に係る制御装置100Aは、図3に示す制御装置100と比較して、制御ユニット160の代わりに制御ユニット160Aを備える点で相違する。制御ユニット160Aは、制御ユニット160と比較して、モデル予測制御モジュール150の代わりにモデル予測制御モジュール150Aを含む点で相違する。モデル予測制御モジュール150Aは、モデル予測制御モジュール150と比較して、生成部151の代わりに生成部151Aを含む点で相違する。
変形例2に係る制御装置100Aのモデル予測制御モジュール150Aには、制御対象2の位置(負荷位置)の計測値PVがフィードバックされる。計測値PVは、図1に示す計測センサ20によって計測され、計測センサ20から制御装置100Aに送信される。
生成部151Aは、上記の生成部151と比較して、計測値PVを用いて、予測負荷位置YLを補正する点で相違する。
例えば、生成部151Aは、今回の制御周期kにおける予測負荷位置YLkと計測値PVkとの差分値を補正量CLとして演算する。すなわち、補正量CLは、
CL=PVk-YLk
で表される。
CL=PVk-YLk
で表される。
次に、生成部151Aは、予測負荷位置YLkを計測値PVkに更新するとともに、補正量CLを用いて以下の式に従って、むだ時間dだけ将来の予測負荷位置YLを更新する。
YLk+1←YLk+1+CL
・・・
YLk+d←YLk+d+CL
これにより、予測負荷位置YLの精度を高めることができる。その結果、移動制御における目標軌道への追従性を向上させることができる。
YLk+1←YLk+1+CL
・・・
YLk+d←YLk+d+CL
これにより、予測負荷位置YLの精度を高めることができる。その結果、移動制御における目標軌道への追従性を向上させることができる。
動特性モデルが第1動特性モデルPCMと第2動特性モデルPMLとから構成される場合には、生成部151Aは、予測負荷位置YLの補正に代えて、もしくは、予測負荷位置YLの補正に加えて、サーボモータ300から受けるモータ位置の計測値PVMを用いて予測モータ位置YMを補正してもよい。
例えば、生成部151Aは、今回の制御周期kにおける予測モータ位置YMkと計測値PVMkとの差分値を補正量CMとして演算する。すなわち、補正量CMは、
CM=PVMk-YMk
で表される。
CM=PVMk-YMk
で表される。
次に、生成部151Aは、予測モータ位置YMkを計測値PVMkに更新するとともに、補正量CMを用いて以下の式に従って、むだ時間dだけ将来の予測モータ位置YMを更新する。
YMk+1←YMk+1+CM
・・・
YMk+d←YMk+d+CM
これにより、予測モータ位置YMの精度が高まるとともに、予測負荷位置YLの精度も高まる。その結果、移動制御における目標軌道への追従性を向上させることができる。
YMk+1←YMk+1+CM
・・・
YMk+d←YMk+d+CM
これにより、予測モータ位置YMの精度が高まるとともに、予測負荷位置YLの精度も高まる。その結果、移動制御における目標軌道への追従性を向上させることができる。
<K-3.変形例3>
上記の説明では、生成部151,151Aは、サーボドライバ200、サーボモータ300および制御対象2からなるモデル対象400の動特性を示す動特性モデルを用いてモデル予測制御を行ない、操作量MVを生成するものとした。しかしながら、制御対象2の振動抑制が不要である場合には、生成部151,151Aは、サーボドライバ200およびサーボモータ300からなるモデル対象400の動特性を示す動特性モデルを用いてモデル予測制御を行ない、操作量MVを生成してもよい。この場合、モデル予測制御モジュール150,150Aを実現するモデル予測制御FB115(図8参照)において、振動周波数115Fおよび振幅比115Gの入力項目が省略される。
上記の説明では、生成部151,151Aは、サーボドライバ200、サーボモータ300および制御対象2からなるモデル対象400の動特性を示す動特性モデルを用いてモデル予測制御を行ない、操作量MVを生成するものとした。しかしながら、制御対象2の振動抑制が不要である場合には、生成部151,151Aは、サーボドライバ200およびサーボモータ300からなるモデル対象400の動特性を示す動特性モデルを用いてモデル予測制御を行ない、操作量MVを生成してもよい。この場合、モデル予測制御モジュール150,150Aを実現するモデル予測制御FB115(図8参照)において、振動周波数115Fおよび振幅比115Gの入力項目が省略される。
<L.付記>
以上のように、本実施の形態および変形例は以下のような開示を含む。
以上のように、本実施の形態および変形例は以下のような開示を含む。
(構成1)
制御対象(2)に接続されたモータ(300,300X,300Y)を駆動するドライブ装置(200,200X,200Y)に操作量を出力して、停止している前記制御対象(2)を指定位置に移動させる移動制御を行なう制御装置(100,100A)であって、
前記制御対象(2)が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成する生成部(102,151,151A)と、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じる補正部(102,152)とを備え、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は1である、制御装置(100,100A)。
制御対象(2)に接続されたモータ(300,300X,300Y)を駆動するドライブ装置(200,200X,200Y)に操作量を出力して、停止している前記制御対象(2)を指定位置に移動させる移動制御を行なう制御装置(100,100A)であって、
前記制御対象(2)が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成する生成部(102,151,151A)と、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じる補正部(102,152)とを備え、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は1である、制御装置(100,100A)。
(構成2)
前記補正係数は、前記移動制御の開始からの経過時間に比例して増加する、構成1に記載の制御装置(100,100A)。
前記補正係数は、前記移動制御の開始からの経過時間に比例して増加する、構成1に記載の制御装置(100,100A)。
(構成3)
前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数における前記補正期間の終点の微分値は0である、構成1に記載の制御装置(100,100A)。
前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数における前記補正期間の終点の微分値は0である、構成1に記載の制御装置(100,100A)。
(構成4)
前記補正期間は、2つの区間に分割され、
前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数は、前記2つの区間のうち先の区間において1次関数であり、
前記関数は、前記2つの区間のうち後の区間において、前記後の区間の始点の傾きが前記1次関数の傾きと一致し、前記後の区間の終点の2回微分値が0となる5次関数である、構成1に記載の制御装置(100,100A)。
前記補正期間は、2つの区間に分割され、
前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数は、前記2つの区間のうち先の区間において1次関数であり、
前記関数は、前記2つの区間のうち後の区間において、前記後の区間の始点の傾きが前記1次関数の傾きと一致し、前記後の区間の終点の2回微分値が0となる5次関数である、構成1に記載の制御装置(100,100A)。
(構成5)
前記移動制御は、前記制御対象(2)を前記指定位置まで指定時間で移動させる制御であり、
前記予め定められた補正時間は、前記指定時間の1/2以下である、構成1から4のいずれかに記載の制御装置(100,100A)。
前記移動制御は、前記制御対象(2)を前記指定位置まで指定時間で移動させる制御であり、
前記予め定められた補正時間は、前記指定時間の1/2以下である、構成1から4のいずれかに記載の制御装置(100,100A)。
(構成6)
前記生成部(102,151,151A)は、モデル予測制御を用いて前記操作量を生成する、構成1から5のいずれかに記載の制御装置(100,100A)。
前記生成部(102,151,151A)は、モデル予測制御を用いて前記操作量を生成する、構成1から5のいずれかに記載の制御装置(100,100A)。
(構成7)
制御対象(2)に接続されたモータ(300,300X,300Y)を駆動するドライブ装置(200,200X,200Y)に操作量を出力して、停止している前記制御対象(2)を指定位置に移動させる移動制御を行なう制御装置(100,100A)を実現するための制御プログラム(110,112)であって、
前記制御プログラムは、コンピュータに、
前記制御対象(2)が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成するステップと、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じるステップとを実行させ、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は1である、制御プログラム。
制御対象(2)に接続されたモータ(300,300X,300Y)を駆動するドライブ装置(200,200X,200Y)に操作量を出力して、停止している前記制御対象(2)を指定位置に移動させる移動制御を行なう制御装置(100,100A)を実現するための制御プログラム(110,112)であって、
前記制御プログラムは、コンピュータに、
前記制御対象(2)が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成するステップと、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じるステップとを実行させ、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は1である、制御プログラム。
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 制御対象、3 ワーキングプレート、4 第1ベースプレート、6,9 ボールネジ、7 第2ベースプレート、20,20X,20Y 計測センサ、100,100A 制御装置、101 フィールドバス、102 プロセッサ、104 チップセット、106 メインメモリ、108 フラッシュメモリ、110 システムプログラム、112 ユーザプログラム、112A シーケンスプログラム、112B モーションプログラム、115 モデル予測制御ファンクションブロック、115A 開始指示、115B サンプリング周期、115C 目標値、115D モデルパラメータ、115E 制御パラメータ、115F 振動周波数、115G 振幅比、115H 制御開始時補正時間、115I ステータス、115J 操作量、116 外部ネットワークコントローラ、118 メモリカードインターフェイス、120 メモリカード、122 内部バスコントローラ、124 フィールドバスコントローラ、126 I/Oユニット、130 モデル作成モジュール、140 軌道生成モジュール、150,150A モデル予測制御モジュール、151,151A 生成部、152 補正部、160,160A 制御ユニット、200,200X,200Y サーボドライバ、300,300X,300Y サーボモータ、400 モデル対象。
Claims (7)
- 制御対象に接続されたモータを駆動するドライブ装置に操作量を出力して、停止している前記制御対象を指定位置に移動させる移動制御を行なう制御装置であって、
前記制御対象が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成する生成部と、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じる補正部とを備え、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は1である、制御装置。 - 前記補正係数は、前記移動制御の開始からの経過時間に比例して増加する、請求項1に記載の制御装置。
- 前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数における前記補正期間の終点の微分値は0である、請求項1に記載の制御装置。 - 前記補正期間は、2つの区間に分割され、
前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数は、前記2つの区間のうち先の区間において1次関数であり、
前記関数は、前記2つの区間のうち後の区間において、前記後の区間の始点の傾きが前記1次関数の傾きと一致し、前記後の区間の終点の2回微分値が0となる5次関数である、請求項1に記載の制御装置。 - 前記移動制御は、前記制御対象を前記指定位置まで指定時間で移動させる制御であり、
前記予め定められた補正時間は、前記指定時間の1/2以下である、請求項1から4のいずれか1項に記載の制御装置。 - 前記生成部は、モデル予測制御を用いて前記操作量を生成する、請求項1から5のいずれか1項に記載の制御装置。
- 制御対象に接続されたモータを駆動するドライブ装置に操作量を出力して、停止している前記制御対象を指定位置に移動させる移動制御を行なう制御装置を実現するための制御プログラムであって、
前記制御プログラムは、コンピュータに、
前記制御対象が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成するステップと、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じるステップとを実行させ、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は1である、制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019021907A JP7031624B2 (ja) | 2019-02-08 | 2019-02-08 | 制御装置および制御プログラム |
PCT/JP2020/002263 WO2020162202A1 (ja) | 2019-02-08 | 2020-01-23 | 制御装置および制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019021907A JP7031624B2 (ja) | 2019-02-08 | 2019-02-08 | 制御装置および制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020129293A JP2020129293A (ja) | 2020-08-27 |
JP7031624B2 true JP7031624B2 (ja) | 2022-03-08 |
Family
ID=71947614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019021907A Active JP7031624B2 (ja) | 2019-02-08 | 2019-02-08 | 制御装置および制御プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7031624B2 (ja) |
WO (1) | WO2020162202A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192144A (ja) | 2002-12-09 | 2004-07-08 | Koyo Seiko Co Ltd | 制御装置および制御方法 |
JP2011135632A (ja) | 2009-12-22 | 2011-07-07 | Yaskawa Electric Corp | 電動機制御装置 |
JP2012217230A (ja) | 2011-03-31 | 2012-11-08 | Brother Ind Ltd | モータ制御装置及び画像形成装置 |
-
2019
- 2019-02-08 JP JP2019021907A patent/JP7031624B2/ja active Active
-
2020
- 2020-01-23 WO PCT/JP2020/002263 patent/WO2020162202A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192144A (ja) | 2002-12-09 | 2004-07-08 | Koyo Seiko Co Ltd | 制御装置および制御方法 |
JP2011135632A (ja) | 2009-12-22 | 2011-07-07 | Yaskawa Electric Corp | 電動機制御装置 |
JP2012217230A (ja) | 2011-03-31 | 2012-11-08 | Brother Ind Ltd | モータ制御装置及び画像形成装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020162202A1 (ja) | 2020-08-13 |
JP2020129293A (ja) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10386794B2 (en) | Control device, storage medium, and control system by creating internal model of control target | |
US10241490B2 (en) | Correction device, correction device controlling method, information processing program, and recording medium | |
US10418921B2 (en) | Machine learning device, servo motor control device, servo motor control system, and machine learning method | |
US10444733B2 (en) | Adjustment device and adjustment method | |
CN107850874B (zh) | 控制装置 | |
US20190022861A1 (en) | Control device, method of controlling control device, and recording medium | |
US10656616B2 (en) | Control device, control system, and recording medium | |
US6246201B1 (en) | Electronic cam control system | |
JP7031624B2 (ja) | 制御装置および制御プログラム | |
JP6646025B2 (ja) | 制御装置及び機械学習装置 | |
JP4269150B2 (ja) | ロボット制御装置 | |
WO2019092852A1 (ja) | サーボ制御装置 | |
JP7024742B2 (ja) | 制御装置、モデル作成方法および制御プログラム | |
JP7047794B2 (ja) | 制御装置および制御プログラム | |
US10354683B2 (en) | Servo control method having first and second trajectory generation units | |
JP6875329B2 (ja) | 学習制御を行うロボットシステム | |
JP7059957B2 (ja) | 制御装置および制御プログラム | |
US10901374B2 (en) | Machine learning device, control device, and machine learning method | |
JPH06332537A (ja) | 数値制御方法および数値制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201215 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220207 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7031624 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |