(57)【要約】【課題】演算負荷の増大を抑制しつつトルク飽和を抑制できる制御装置を提供する。【解決手段】制御装置は、制御対象に接続されたモータを駆動するドライブ装置に操作量を出力して、停止している制御対象を指定位置に移動させる移動制御を行なう。制御装置は、制御対象が目標軌道に追従するように、目標軌道から生成される目標値を用いて操作量を生成する生成部と、移動制御の開始から予め定められた補正時間経過するまでの補正期間において、操作量に対して補正係数を乗じる補正部とを備える。補正係数は、補正期間において、時間経過とともに単調増加する。補正期間の終点における補正係数は１である。【選択図】図７
2020129293.tif 000002
【特許請求の範囲】
【請求項１】
制御対象に接続されたモータを駆動するドライブ装置に操作量を出力して、停止している前記制御対象を指定位置に移動させる移動制御を行なう制御装置であって、
前記制御対象が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成する生成部と、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じる補正部とを備え、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は１である、制御装置。
【請求項２】
前記補正係数は、前記移動制御の開始からの経過時間に比例して増加する、請求項１に記載の制御装置。
【請求項３】
前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数における前記補正期間の終点の微分値は０である、請求項１に記載の制御装置。
【請求項４】
前記補正期間は、２つの区間に分割され、
前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数は、前記２つの区間のうち先の区間において１次関数であり、
前記関数は、前記２つの区間のうち後の区間において、前記後の区間の始点の傾きが前記１次関数の傾きと一致し、前記後の区間の終点の２回微分値が０となる５次関数である、請求項１に記載の制御装置。
【請求項５】
前記移動制御は、前記制御対象を前記指定位置まで指定時間で移動させる制御であり、
前記予め定められた補正時間は、前記指定時間の１／２以下である、請求項１から４のいずれか１項に記載の制御装置。
【請求項６】
前記生成部は、モデル予測制御を用いて前記操作量を生成する、請求項１から５のいずれか１項に記載の制御装置。
【請求項７】
制御対象に接続されたモータを駆動するドライブ装置に操作量を出力して、停止している前記制御対象を指定位置に移動させる移動制御を行なう制御装置を実現するための制御プログラムであって、
前記制御プログラムは、コンピュータに、
前記制御対象が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成するステップと、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じるステップとを実行させ、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は１である、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、制御装置および制御プログラムに関する。
【背景技術】
【０００２】
特開２０１４−７９００号公報（特許文献１）は、動作目標値に制御対象の動作を追従させるために必要なモデルトルクを生成する制御部を有し、モデルトルクに基づいて制御対象を動作させるトルク指令を発生するモータ制御装置を開示している。制御部は、動作目標値を入力し、モデルゲインから決定した遮断周波数以上の高周波成分と所定の周波数成分とを減衰させるフィルタ演算によりモデルトルクを演算する。フィルタ演算の状態変数とモデルトルクとからトルク指令予測値を計算し、トルク指令予測値もしくはトルク指令予測値の絶対値と所定の閾値との比較に基づき、飽和予測信号を出力する。制御部は、動作目標値、飽和予測信号、状態変数に基づき、モデルトルクの絶対値の増加が抑えられるようにモデルゲインを計算する。これにより、トルクピークが低減され、トルク飽和が回避される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−７９００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示のモータ制御装置では、トルク飽和を回避するために、モデルトルクの演算、トルク指定予測値の計算、飽和予測およびモデルゲインの計算を含む複雑な処理が行なわれる。その結果、トルク飽和の回避のための演算負荷が増大している。
【０００５】
本発明は、上記の問題に鑑みてなされたものであり、その目的は、演算負荷の増大を抑制しつつトルクピークを低減できる制御装置および制御プログラムを提供することである。
【課題を解決するための手段】
【０００６】
本開示の一例によれば、制御装置は、制御対象に接続されたモータを駆動するドライブ装置に操作量を出力して、停止している制御対象を指定位置に移動させる移動制御を行なう。制御装置は、制御対象が目標軌道に追従するように、目標軌道から生成される目標値を用いて操作量を生成する生成部と、移動制御の開始から予め定められた補正時間経過するまでの補正期間において、操作量または操作量の生成に用いる目標値に対して補正係数を乗じる補正部とを備える。補正係数は、補正期間において、時間経過とともに単調増加する。補正期間の終点における補正係数は１である。
【０００７】
この開示によれば、移動制御の開始からの補正期間において、操作量が緩やかに増大し、移動制御の開始直後におけるトルクピークを低減できる。トルクピークが低減されることにより、トルク飽和を回避できる。また、トルクピークが低減されることにより、小型のモータが利用可能となり、コストを低減できる。さらに、補正係数を乗じる演算が特許文献１のトルク飽和の回避のための演算と比べて簡易であり、演算負荷が抑制される。このように、演算負荷の増大を抑制しつつトルクピークを低減できる。
【０００８】
上述の開示において、補正係数は、移動制御の開始からの経過時間に比例して増加する。この開示によれば、補正係数を決定するための演算負荷を低減できる。
【０００９】
上述の開示において、補正係数は、移動制御の開始からの経過時間を説明変数とし、補正係数を目的変数とする関数に従って決定される。関数における補正期間の終点の微分値は０である。この開示によれば、制御対象の滑らかな移動を実現することができる。
【００１０】
上述の開示において、補正期間は、２つの区間に分割される。補正係数は、移動制御の開始からの経過時間を説明変数とし、補正係数を目的変数とする関数に従って決定される。関数は、２つの区間のうち先の区間において１次関数である。関数は、２つの区間のうち後の区間において、後の区間の始点の傾きが１次関数の傾きと一致し、後の区間の終点の２回微分値が０となる５次関数である。
【００１１】
この開示によれば、制御対象の滑らかな移動を実現することができるとともに、移動制御の開始直後における目標値への追従性の低下を抑制できる。
【００１２】
上述の開示において、移動制御は、制御対象を指定位置まで指定時間で移動させる制御である。予め定められた補正時間は、指定時間の１／２以下である。この開示によれば、整定時間が指定時間よりも増加することを抑制できる。
【００１３】
上述の開示において、生成部は、モデル予測制御を用いて操作量を生成する。モデル予測制御では、移動制御の開始時点からすぐに目標値への追従を目指すため、ドライブ装置に出力される操作量が大きくなり、ドライブ装置から出力されるトルク値が過大になりやすい。しかしながら、上記のようにトルクピークを低減できるため、モデル予測制御の適用により、目標値が移動先である指定位置へ到達する時点には、良好に追従した状態で制御対象の位置を整定させることができる。
【００１４】
本開示の一例によれば、制御対象に接続されたモータを駆動するドライブ装置に操作量を出力して、停止している制御対象を指定位置に移動させる移動制御を行なう制御装置を実現するための制御プログラムは、コンピュータに、以下の第１および第２のステップを実行させる。第１のステップは、制御対象が目標軌道に追従するように、目標軌道から生成される目標値を用いて操作量を生成するステップである。第２のステップは、移動制御の開始から予め定められた補正時間経過するまでの補正期間において、操作量または操作量の生成に用いる目標値に対して補正係数を乗じるステップである。補正係数は、補正期間において、時間経過とともに単調増加する。補正期間の終点における補正係数は１である。この開示によっても、演算負荷の増大を抑制しつつトルク飽和を抑制できる。
【発明の効果】
【００１５】
本発明によれば、演算負荷の増大を抑制しつつトルク飽和を抑制できる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に従う制御装置が適用される制御システムの構成例を示す模式図である。
【図２】本実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。
【図３】本実施の形態に係る制御装置の機能構成の一例を示す模式図である。
【図４】補正係数の第１の例を示す図である。
【図５】補正係数の第２の例を示す図である。
【図６】補正係数の第３の例を示す図である。
【図７】本実施の形態に従う制御システムによるモータ制御の処理手順を示すフローチャートである。
【図８】本実施の形態に従う制御装置で実行される命令コードの一例を示す図である。
【図９】補正係数による操作量の補正を行なわないときのシミュレーション結果の例を示す図である。
【図１０】補正係数による操作量の補正を行なったときのシミュレーション結果の例を示す図である。
【図１１】変形例１に従う制御システムによるモータ制御の処理手順を示すフローチャートである。
【図１２】補正係数による目標値の補正を行なったときのシミュレーション結果の例を示す図である。
【図１３】変形例２に係る制御装置の機能構成の一例を示す模式図である。
【発明を実施するための形態】
【００１７】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１８】
§１  適用例
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、本実施の形態に従う制御装置が適用される制御システムの構成例を示す模式図である。図１に示す例の制御システム１は、負荷となる制御対象２と、１または複数のサーボドライバと、１または複数のサーボモータと、制御装置１００とを含む。
【００１９】
図１に示す例の制御対象２は、ワークが置載されるワーキングプレート３を互いに直交する二方向にそれぞれ移動させることができるＸＹステージである。なお、制御対象２は、ＸＹステージに限定されるものではなく、指定位置に移動して位置決めされる装置であればよい。
【００２０】
ワーキングプレート３の位置（以下、「負荷位置」とも称する。）は、計測センサ２０によって計測されてもよい。図１に示す例では、計測センサ２０は、２つの計測センサ２０Ｘ，２０Ｙを含む。計測センサ２０Ｘ，２０Ｙは、例えばレーザ変位計などの変位センサによって構成される。計測センサ２０Ｘは、ワーキングプレート３におけるＸ方向の位置を計測する。具体的には、計測センサ２０Ｘは、ワーキングプレート３におけるＸ方向に直交する端面の変位を計測する。計測センサ２０Ｙは、ワーキングプレート３におけるＹ方向の位置を計測する。具体的には、計測センサ２０Ｘは、ワーキングプレート３におけるＹ方向に直交する端面の変位を計測する。
【００２１】
１または複数のサーボモータは、制御対象２のワーキングプレート３を移動させるためのモータであり、図１に示す例では、２つのサーボモータ３００Ｘ，３００Ｙ（以下、「サーボモータ３００」とも称する。）を含む。
【００２２】
制御対象２は、ワーキングプレート３の他に、第１ベースプレート４と、第２ベースプレート７とを有する。
【００２３】
第１ベースプレート４には、ワーキングプレート３をＸ方向に沿って任意に移動させるボールネジ６が配置されている。ボールネジ６は、ワーキングプレート３に含まれるナットと係合されている。ボールネジ６の一端に連結されたサーボモータ３００Ｘが回転駆動することで、ワーキングプレート３に含まれるナットとボールネジ６とが相対回転し、その結果、ワーキングプレート３がＸ方向に沿って移動することになる。
【００２４】
さらに、第２ベースプレート７は、ワーキングプレート３および第１ベースプレート４をＹ方向に沿って任意に移動させるボールネジ９が配置されている。ボールネジ９は、第１ベースプレート４に含まれるナットと係合されている。ボールネジ９の一端に連結されたサーボモータ３００Ｙが回転駆動することで、第１ベースプレート４に含まれるナットとボールネジ９とが相対回転し、その結果、ワーキングプレート３および第１ベースプレート４がＹ方向に沿って移動することになる。
【００２５】
１または複数のサーボドライバは、サーボモータを駆動するドライブ装置である。図１に示す例では、２つのサーボドライバ２００Ｘ，２００Ｙ（以下、「サーボドライバ２００」とも称する。）は、サーボモータ３００Ｘ，３００Ｙをそれぞれ駆動する。
【００２６】
サーボドライバ２００は、制御装置１００からの指令値（指令位置または指令速度）と、対応するサーボモータ３００からのフィードバック値とに基づいて、対応するサーボモータ３００に対する駆動信号を生成する。駆動信号は例えばトルク指令を示す。サーボドライバ２００は、生成した駆動信号をサーボモータ３００に出力することにより、サーボモータ３００を駆動する。
【００２７】
例えば、サーボドライバ２００は、対応するサーボモータ３００の回転軸に結合されたエンコーダからの出力信号をフィードバック値として受ける。フィードバック値により、サーボモータ３００の位置、回転位相、回転速度、累積回転数などを検出できる。
【００２８】
制御装置１００は、サーボドライバ２００に操作量を出力して、停止している制御対象２を指定位置に移動させる移動制御を行なう。制御装置１００とサーボドライバ２００との間では、操作量を含むデータの遣り取りが可能になっている。
【００２９】
図１には、制御装置１００とサーボドライバ２００との間がフィールドバス１０１を介して接続されている構成例を示す。但し、このような構成例に限らず、任意の通信手段を採用することができる。あるいは、制御装置１００とサーボドライバ２００との間を直接信号線で接続するようにしてもよい。さらに、制御装置１００とサーボドライバ２００とを一体化した構成を採用してもよい。以下に説明するような、アルゴリズムが実現されるものであれば、どのような実装形態を採用してもよい。
【００３０】
制御装置１００は、制御対象２が目標軌道に追従するように、制御周期毎に、目標軌道から生成される目標値を用いて、サーボドライバ２００に出力する操作量を生成する。制御装置１００は、生成した操作量を指令値（指定位置または指令速度）としてサーボドライバ２００に出力する。目標軌道は、移動制御ごとに予め作成される。具体的には、目標軌道は、停止状態にある初期位置から指定位置まで指定時間で移動し、当該指定位置で再び停止するように予め作成される。
【００３１】
停止している制御対象２に対して移動制御を開始すると、移動制御の開始直後において、サーボドライバ２００から出力されるトルク値が大きくなる。特に、短い指定時間（移動時間）で振動を抑制したい場合に、制御対象２の固有振動周波数が低ければ、サーボドライバ２００から出力されるトルク値が過大になりやすい。
【００３２】
さらに、例えばモデル予測制御のような目標値に対する追従性能の高い制御が制御装置１００で実行される場合にも、サーボドライバ２００から出力されるトルク値が過大になりやすい。これは、早期に目標値に追従させるような制御がなされるためである。
【００３３】
サーボドライバ２００から出力されるトルク値が最大トルク値に達するトルク飽和が発生すると、目標値に対する追従性能が低下する。最大トルク値は、サーボモータ３００の容量に応じて予め定められる。特に、制御装置１００がモデル予測制御に従って操作量（すなわち、指令値）を生成する場合、モデル出力の予測誤差が大きくなり、追従性能がさらに低下しやすい。高容量のサーボモータを用いることによりトルク飽和を回避することが可能であるが、コストが高くなる。
【００３４】
このような問題を解決するため、本実施の形態に係る制御装置１００は、移動制御の開始から予め定められた補正時間経過するまでの補正期間において、操作量に対して補正係数を乗じる。補正係数は、補正期間において時間経過に従って単調増加するように設定され、補正期間の終点において１である。これにより、移動制御の開始からの補正期間において、操作量（すなわち、指令値）が緩やかに増大し、移動制御の開始直後におけるトルクピークを低減できる。さらに、補正係数を乗じる演算が特許文献１のトルク飽和の回避のための演算と比べて簡易であり、演算負荷が抑制される。
【００３５】
§２  具体例
次に、本実施の形態に係る制御装置１００の具体例について説明する。
【００３６】
＜Ａ．制御装置のハードウェア構成例＞
本実施の形態に従う制御装置１００は、一例として、ＰＬＣ（プログラマブルコントローラ）を用いて実装されてもよい。制御装置１００は、予め格納された制御プログラム（後述するような、システムプログラムおよびユーザプログラムを含む）をプロセッサが実行することで、後述するような処理が実現されてもよい。
【００３７】
図２は、本実施の形態に従う制御装置１００のハードウェア構成の一例を示す模式図である。図２に示されるように、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、メインメモリ１０６と、フラッシュメモリ１０８と、外部ネットワークコントローラ１１６と、メモリカードインターフェイス１１８と、内部バスコントローラ１２２と、フィールドバスコントローラ１２４と、外部ネットワークコントローラ１１６と、メモリカードインターフェイス１１８とを含む。
【００３８】
プロセッサ１０２は、フラッシュメモリ１０８に格納されたシステムプログラム１１０およびユーザプログラム１１２を読み出して、メインメモリ１０６に展開して実行することで、制御対象に対する任意の制御を実現する。プロセッサ１０２がシステムプログラム１１０およびユーザプログラム１１２を実行することで、後述するような、サーボドライバ２００への操作量の出力、フィールドバスを介したデータ通信に係る処理などを実行する。
【００３９】
システムプログラム１１０は、データの入出力処理や実行タイミング制御などの、制御装置１００の基本的な機能を提供するための命令コードを含む。ユーザプログラム１１２は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム１１２Ａおよびモーション制御を実行するためのモーションプログラム１１２Ｂを含む。ユーザプログラム１１２において、ファンクションブロックが定義されることで、本実施の形態に従う処理および機能が実現される。ファンクションブロックは、制御装置１００で実行されるプログラムのコンポーネントであり、複数回使用するプログラムエレメントをモジュール化したものを意味する。
【００４０】
チップセット１０４は、各コンポーネントを制御することで、制御装置１００全体としての処理を実現する。
【００４１】
内部バスコントローラ１２２は、制御装置１００と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、Ｉ／Ｏユニット１２６が接続されている。
【００４２】
フィールドバスコントローラ１２４は、制御装置１００とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ２００が接続されている。
【００４３】
内部バスコントローラ１２２およびフィールドバスコントローラ１２４は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータ（計測値を含む）を取得することができる。また、内部バスコントローラ１２２および／またはフィールドバスコントローラ１２４は、サーボドライバ２００との間でデータを遣り取りするためのインターフェイスとしても機能する。
【００４４】
外部ネットワークコントローラ１１６は、各種の有線／無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス１１８は、メモリカード１２０を着脱可能に構成されており、メモリカード１２０に対してデータを書込み、メモリカード１２０からデータを読出すことが可能になっている。
【００４５】
＜Ｂ．サーボドライバ＞
本実施の形態に従う制御装置１００に接続されるサーボドライバ２００の動作について説明する。サーボドライバ２００は、制御装置１００からの操作量を指令値（指令位置または指令速度）として受けるとともに、サーボモータ３００に結合されたエンコーダからの出力信号をフィードバック値として受ける。サーボドライバ２００は、指令値およびフィードバック値を用いて、例えばモデル追従制御系の制御ループに従う制御演算を実行する。
【００４６】
サーボドライバ２００は、指令値として指令位置を受ける場合、位置制御ループおよび速度制御ループに従う制御演算を実行する。サーボドライバ２００は、指令値として指令速度を受ける場合、速度制御ループに従う制御演算を実行する。
【００４７】
サーボドライバ２００は、位置制御ループに従う制御演算を実行することにより、フィードバック値により得られるサーボモータ３００の計測位置と制御装置１００から与えられる指令位置との位置偏差に応じた指令速度を演算する。
【００４８】
サーボドライバ２００は、速度制御ループに従う制御演算を実行することにより、指令速度とフィードバック値から得られるサーボモータ３００の計測速度との速度偏差に応じたトルク値を演算する。サーボドライバ２００は、演算されたトルク値のトルクをサーボモータ３００に発生させるための電流指令をサーボモータ３００に出力する。
【００４９】
＜Ｃ．制御装置の機能構成例＞
図３は、本実施の形態に係る制御装置の機能構成の一例を示す模式図である。図３に示されるように、制御装置１００は、モデル作成モジュール１３０と、軌道生成モジュール１４０と、モデル予測制御モジュール１５０とからなる制御ユニット１６０を備える。図中においては、モデル予測制御を「ＭＰＣ（Model Predictive Control）」と記す。なお、制御装置１００は、サーボドライバ２００Ｘ，２００Ｙにそれぞれ対応する２つの制御ユニット１６０を備えている。ただし、図３には簡略化のため２つの制御ユニット１６０のうち一方のみが描かれている。
【００５０】
モデル作成モジュール１３０は、典型的には、ユーザプログラム１１２において、モデル作成ファンクションブロックが規定されることにより実現される。すなわち、モデル作成モジュール１３０は、ユーザプログラム１１２に規定されるモデル作成ファンクションブロックによって機能化される。
【００５１】
モデル作成モジュール１３０は、サーボドライバ２００、サーボモータ３００および制御対象２からなるモデル対象４００の動特性を示す動特性モデルを作成する。動特性モデルは、操作量とワーキングプレート３の位置（負荷位置）との関係を示す伝達関数によって規定される。モデル作成モジュール１３０は、作成した動特性モデルを規定するパラメータをモデル予測制御モジュール１５０へ与える。
【００５２】
軌道生成モジュール１４０は、予め作成された目標軌道に沿って、ワーキングプレート３の目標位置を示す目標値ＳＰの時系列データを生成し、各制御周期に対応する目標値ＳＰを当該時系列データから順次読出し、モデル予測制御モジュール１５０へ入力する。具体的には、軌道生成モジュール１４０は、目標値ＳＰの時系列データから、現時刻から将来の一定期間である予測ホライズン終了までの複数の目標値ＳＰを抽出し、モデル予測制御モジュール１５０へ入力する。
【００５３】
なお、制御装置１００は、目標軌道を規定する目標値ＳＰの時系列データを予め記憶しておいてもよい。この場合には、軌道生成モジュール１４０は、予め記憶された目標値ＳＰの時系列データへアクセスする。このように、目標軌道を規定する制御周期毎の目標値ＳＰは、時系列データの形で予め格納されていてもよいし、予め定められた計算式に従って各制御周期についての目標値ＳＰを逐次計算するようにしてもよい。
【００５４】
モデル予測制御モジュール１５０は、典型的には、ユーザプログラム１１２において、モデル予測制御ファンクションブロックが規定されることにより実現される。すなわち、モデル予測制御モジュール１５０は、ユーザプログラム１１２に規定されるモデル予測制御ファンクションブロックによって機能化される。モデル予測制御モジュール１５０は、生成部１５１と補正部１５２とを含む。
【００５５】
生成部１５１は、動特性モデルを用いたモデル予測制御を実行することにより、負荷位置と目標値で示される目標位置との偏差が最小となるように、操作量ＭＶを生成する。生成部１５１は、モデル予測制御の方法として、公知の方法を採用すればよい。
【００５６】
補正部１５２は、移動制御の開始から予め定められた補正時間Ｔ経過するまでの補正期間において、生成部１５１によって生成された操作量ＭＶに対して補正係数を乗じ、当該操作量ＭＶを補正する。補正部１５２は、補正後の操作量ＭＶを指令値（指令位置または指令速度）としてサーボドライバ２００に出力する。
【００５７】
上述したように、補正係数は、時間経過に従って単調増加するように設定され、補正期間の終点において１である。これにより、移動制御の開始からの補正期間において、操作量が緩やかに増大し、移動制御の開始直後におけるトルク飽和を抑制できる。
【００５８】
＜Ｄ．動特性モデル＞
動特性モデルは、事前のチューニングにより作成される。図１に示すように計測センサ２０が設置されている場合には、チューニングにおいて得られた入力値（操作量）と出力値（負荷位置の計測値）とに基づいて動特性モデルが作成される。動特性モデルは、例えば以下の関数Ｐ（ｚ−１）で示される。関数Ｐ（ｚ−１）は、むだ時間要素と、ｎ次遅れ要素とを組み合わせた離散時間伝達関数である。関数Ｐ（ｚ−１）で示される動特性モデルにおいては、むだ時間要素のむだ時間ｄならびにｎ次遅れ要素の変数ａ１〜ａｎおよび変数ｂ１〜ｂｍがモデルパラメータとして決定される。むだ時間とは、入力値が与えられてから、それに応じた出力が現れるまでの時間（つまり、入力から出力までの遅れ時間）である。なお、次数ｎおよび次数ｍについても最適な値が決定されてもよい。
【００５９】
【数１】
2020129293.tif 000003
【００６０】
このようなモデルパラメータの作成処理（すなわち、システム同定）は、最小二乗法などにより実行されてもよい。
【００６１】
具体的には、ｙ＝Ｐ（ｚ−１）*ｕの変数ｕに操作量を与えたときの出力ｙが、負荷位置の計測値と一致するように（すなわち、誤差が最小になるように）、モデルパラメータの各々の値が決定される。
【００６２】
もしくは、動特性モデルは、操作量とサーボモータ３００の位置（以下、「モータ位置」と称する。）との関係を示す第１動特性モデルＰＣＭと、モータ位置と負荷位置との関係を示す第２動特性モデルＰＭＬとを組み合わせることにより作成されてもよい。すなわち、動特性モデルは、ＰＣＭ＊ＰＭＬで示される。
【００６３】
第１動特性モデルＰＣＭは、サーボドライバ２００およびサーボモータ３００のモデルであり、入力値である操作量と出力値であるモータ位置との関係を表す伝達関数によって規定される。通常、サーボモータ３００にはエンコーダが設置され、エンコーダからのフィードバック値によりモータ位置が連続かつ高精度に計測される。そのため、モータ位置の計測値に基づいて第１動特性モデルＰＣＭが作成される。
【００６４】
第１動特性モデルＰＣＭは、例えば以下の関数ＰＣＭ（ｚ−１）で示される。関数ＰＣＭ（ｚ−１）は、むだ時間要素と、ｎ次遅れ要素とを組み合わせた離散時間伝達関数である。関数ＰＣＭ（ｚ−１）で示される第１動特性モデルにおいては、むだ時間要素のむだ時間ｄならびにｎ次遅れ要素の変数ａＣＭ１〜ａＣＭｎおよび変数ｂＣＭ１〜ｂＣＭｍがモデルパラメータとして決定される。なお、次数ｎおよび次数ｍについても最適な値が決定されてもよい。
【００６５】
【数２】
2020129293.tif 000004
【００６６】
第２動特性モデルＰＭＬは、制御対象２のモデルであり、入力値であるモータ位置と出力値である負荷位置との関係を表す伝達関数によって規定される。モータ位置と負荷位置との関係は、制御対象２の振動に依存する。そのため、第２動特性モデルＰＭＬは、制御対象２の振動波形から抽出された波形パラメータを用いて作成されてもよい。波形パラメータは、例えば、制御対象２の振動周波数ｆ０（典型的には固有振動周波数）および振動波形において連続する２つの波の振幅比Ａｄｒを含む。制御対象２の振動波形は、計測センサ２０の計測結果から容易に得られる。
【００６７】
第２動特性モデルＰＭＬは、例えば以下の［数３］に示すいずれかの関数ＰＭＬ（ｓ）で示される。関数ＰＭＬ（ｓ）において、ω０は、制御対象２の振動角周波数であり、ω０＝２πｆ０で示される。ζは振動の減衰比を示す。ζは、対数減衰率δを用いて、ζ＝δ／（δ２＋４π２）１／２で示される。対数減衰率δは、振動波形において連続する２つの波の振幅比Ａｄｒと自然対数ｌｎとを用いて、δ＝ｌｎ（１／Ａｄｒ）で示される。
【００６８】
【数３】
2020129293.tif 000005
【００６９】
＜Ｅ．操作量ＭＶの生成＞
生成部１５１は、例えば以下のようなモデル予測制御により、制御周期毎に操作量ＭＶを生成する。
【００７０】
生成部１５１は、モデル作成モジュール１３０によって動特性モデルが作成されると、ステップ応答計算とランプ応答計算とを事前準備として行なう。
【００７１】
ステップ応答計算とは、出力が０である初期状態において最大の入力（ステップ入力）を継続したときの動特性モデルの出力Ｙｓを求める計算である。以下の説明では、ステップ入力の入力開始からの経過時間ｉ（＞むだ時間ｄ）における出力ＹｓをＹｓ（ｉ）とする。
【００７２】
ランプ応答計算とは、出力が０である初期状態において制御周期毎に１段階ずつ増加させた入力（ランプ入力）を行なったときの動特性モデルの出力Ｙｒを求める計算である。以下の説明では、ランプ入力の入力開始からの経過時間ｉ（＞むだ時間ｄ）における出力ＹｒをＹｒ（ｉ）とする。
【００７３】
生成部１５１は、移動制御中の各制御周期において、以下の処理を行なう。
生成部１５１は、今回の制御周期ｋまでに生成した操作量ＭＶを入力することにより、制御周期ｋ＋ｄ＋１における負荷位置（以下、「予測負荷位置ＹＬｋ＋ｄ＋１」という）を演算する。制御周期ｋ＋ｄ＋１は、今回の制御周期ｋの終了時から動特性モデルに規定されるむだ時間ｄ＋１だけ経過した制御周期である。
【００７４】
動特性モデルが第１動特性モデルＰＣＭと第２動特性モデルＰＭＬとから構成される場合には、生成部１５１は、次のようにして、予測負荷位置ＹＬｋ＋ｄ＋１を演算してもよい。すなわち、生成部１５１は、第１動特性モデルＰＣＭに、今回の制御周期ｋまでに生成した操作量ＭＶを入力することにより、制御周期ｋ＋ｄ＋１におけるモータ位置（以下、「予測モータ位置ＹＭｋ＋ｄ＋１」という）を演算する。生成部１５１は、予測モータ位置ＹＭｋ＋ｄ＋１を第２動特性モデルＰＭＬに入力することにより、制御周期ｋ＋ｄ＋１における予測負荷位置ＹＬｋ＋ｄ＋１を演算する。
【００７５】
上記のようにして求められた予測負荷位置ＹＬｋ＋ｄ＋１は、次回の制御周期における操作量ＭＶを生成するために使用される。このとき、次回の制御周期に備えて、演算されたデータが１制御周期分だけシフトされる。例えば、上記のようにして求められた予測負荷位置ＹＬｋ＋ｄ＋１は、次回の制御周期において予測負荷位置ＹＬｋ＋ｄとして使用される。言い換えると、今回の制御周期ｋでは、前回の制御周期において演算された予測負荷位置ＹＬｋ＋ｄ＋１が予測負荷位置ＹＬｋ＋ｄとして使用される。
【００７６】
生成部１５１は、予測負荷位置ＹＬｋ＋ｄを指定状態とした自由応答計算を行なう。自由応答計算とは、制御周期ｋ＋ｄにおいて指定状態にある動特性モデルにおいて、今回の制御周期ｋ以降の入力を０としたときの、制御周期ｋ＋ｄより後の制御周期ｋ＋ｄ＋Ｈにおける動特性モデルの出力Ｙｆ（ｋ＋ｄ＋Ｈ）を求める計算である。
【００７７】
生成部１５１は、ステップ出力およびランプ出力の大きさをそれぞれｋｓおよびｋｒとして、制御周期ｋ＋ｄより予測ホライズン後の制御周期ｋ＋ｄ＋Ｈにおける動特性モデルの出力ＭＨｋ＋ｄ＋Ｈを以下の式（１）に従って演算する。
ＭＨｋ＋ｄ＋Ｈ＝ｋｓ*Ｙｓ（Ｈ）＋ｋｒ*Ｙｒ（Ｈ）＋Ｙｆ（ｋ＋ｄ＋Ｈ）  …式（１）
【００７８】
生成部１５１は、ＭＨｋ＋ｄ＋Ｈと予測負荷位置ＹＬｋ＋ｄとの差分ΔＭＨと、制御周期ｋ＋ｄ＋Ｈにおける参照軌道上の位置ＲＨｋ＋ｄ＋Ｈと予測負荷位置ＹＬｋ＋ｄとの差分ΔＰＨとが一致するように、ｋｓおよびｋｒを求める。
【００７９】
参照軌道は、制御周期ｋ＋ｄ＋Ｈにおける目標値ＳＰｋ＋ｄ＋Ｈと予め定められる参照軌道時定数Ｔｒとによって特定される。制御周期ｋ＋ｄ＋Ｈにおける参照軌道上の位置ＲＨｋ＋ｄ＋Ｈは、例えば以下の式で表される。
ＲＨｋ＋ｄ＋Ｈ＝ＳＰｋ＋ｄ＋Ｈ−ｅｘｐ（−Ｔｓ／Ｔｒ）Ｈ*（ＳＰｋ＋ｄ−ＹＬｋ＋ｄ）  …式（２）
【００８０】
２つの変数ｋｓおよびｋｒを求めるため、Ｈとして２つの値Ｈ１，Ｈ２が設定される。Ｈ１，Ｈ２は、制御対象２の振動周期よりも短い時間であり、例えばそれぞれ振動周期の１／８および振動周期の１／４である。そして、２つの値Ｈ１，Ｈ２のそれぞれの式からなる連立方程式を解くことにより、変数ｋｓ，ｋｒが演算される。
【００８１】
生成部１５１は、上記のようにして求めたｋｓとステップ入力との積を、今回の制御周期ｋの操作量ＭＶｋとして生成すればよい。
【００８２】
＜Ｆ．補正係数＞
以下、図４〜図６を参照して、補正係数ｆ（ｔ）の具体例について説明する。図４は、補正係数ｆ（ｔ）の第１の例を示す図である。図５は、補正係数ｆ（ｔ）の第２の例を示す図である。図６は、補正係数ｆ（ｔ）の第３の例を示す図である。
【００８３】
図４に示されるように、第１の例の補正係数ｆ（ｔ）は、移動制御の開始からの経過時間ｔに比例して増加する。具体的には、第１の例の補正係数ｆ（ｔ）は、経過時間ｔを説明変数とする１次関数
ｆ（ｔ）＝ｔ／Ｔ
に従って決定される。Ｔは、補正期間の時間長さ（補正時間）である。
【００８４】
第１の例の補正係数ｆ（ｔ）は、簡易な１次関数に従って決定される。そのため、補正係数ｆ（ｔ）を決定する演算負荷を低減できる。ただし、補正期間の終点（ｔ＝Ｔ）において、サーボドライバ２００に出力される操作量（すなわち指令値）の変化が大きくなり、制御対象２の滑らかな移動が困難になる可能性がある。例えば、指令値が位置指令を示す場合、サーボドライバ２００から出力されるトルク値がマイナス方向に急減することがある。
【００８５】
第２の例の補正係数ｆ（ｔ）は、第１の例の補正係数ｆ（ｔ）の問題点を解決でき、補正期間の終点（ｔ＝Ｔ）の微分値が０となる関数に従って決定される。図５には、補正期間の起点（ｔ＝０）および終点（ｔ＝Ｔ）の２回微分値が０となる５次関数
ｆ（ｔ）＝（ｔ／Ｔ）３×｛６×（ｔ／Ｔ）２−１５×（ｔ／Ｔ）＋１０｝
に従って決定される補正係数が示される。しかしながら、第２の例の補正係数ｆ（ｔ）は、図５に示す５次関数ではなく、補正期間の終点（ｔ＝Ｔ）の微分値が０となる３次関数に従って決定されてもよい。
【００８６】
第２の例の補正係数ｆ（ｔ）を用いることにより、制御対象２の滑らかな移動を実現することができるが、移動制御の開始直後の補正係数ｆ（ｔ）の増加速度が遅いために、目標値への追従性が大きく低下しやすい。
【００８７】
第３の例の補正係数ｆ（ｔ）は、第２の例の補正係数ｆ（ｔ）の問題点を解決できる。図６の上段には、第３の例の補正係数ｆ（ｔ）を決定するための関数が示される。図示されるように、ｔ＝０〜Ｔの補正期間は、２つの区間Ｔａ，Ｔｂに分割される。先の区間Ｔａにおいて，補正係数ｆ（ｔ）は、１次関数
ｆ（ｔ）＝ｔ／Ｔ
に従って決定される。後の区間Ｔｂにおいて、補正係数ｆ（ｔ）は、区間Ｔｂの始点の傾きが区間Ｔｂにおける１次関数の傾きと一致し、区間Ｔｂの終点の２回微分値が０となる５次関数
ｆ（ｔ）＝（ｔ／Ｔ）３×｛６×（ｔ／Ｔ）２−１５×（ｔ／Ｔ）＋１０｝
に従って決定される。
【００８８】
第３の例の補正係数ｆ（ｔ）を用いることにより、制御対象２の滑らかな移動を実現することができるとともに、移動制御の開始直後における目標値への追従性の低下を抑制できる。
【００８９】
図６の下段には、補正係数ｆ（ｔ）を決定するための関数を作成する方法が示される。図示されるように、ｔ＝０〜Ｔ５の期間の起点（ｔ＝０）および終点（ｔ＝Ｔ５）の２回微分値が０となる５次関数
ｇ（ｔ）＝（ｔ／Ｔ５）３×｛６×（ｔ／Ｔ５）２−１５×（ｔ／Ｔ５）＋１０｝
が設定される。当該５次関数で示される曲線の中間点（ｔ＝Ｔ５／２）から時間軸に達し、かつ、５次関数の中間点における微分値（＝（１５／８）×（１／Ｔ５））と一致する傾きを有する線分が引かれる。当該線分は、１次関数ｇ（ｔ）＝（１５／８）×（ｔ／Ｔ５）−７／１６で表され、時間軸とｔ＝（７／３０）Ｔ５の点で交わる。
【００９０】
（７／３０）Ｔ５≦ｔ≦Ｔ５／２のときに
ｇ（ｔ）＝（１５／８）×（ｔ／Ｔ５）−７／１６
で表され、Ｔ５／２＜ｔ≦Ｔ５のときに
ｇ（ｔ）＝（ｔ／Ｔ５）３×｛６×（ｔ／Ｔ５）２−１５×（ｔ／Ｔ５）＋１０｝
で表される関数ｇ（ｔ）の時間幅（７／３０）Ｔ５〜Ｔ５を０〜Ｔに変換することにより，図６の上段に示される関数が作成される。
【００９１】
＜Ｇ．処理手順＞
次に、本実施の形態に従う制御装置１００によるモータ制御の処理手順の概要について説明する。図７は、本実施の形態に従う制御システムによるモータ制御の処理手順を示すフローチャートである。図７に示すステップは、制御装置１００のプロセッサ１０２が制御プログラム（図２に示すシステムプログラム１１０およびユーザプログラム１１２を含む）を実行することで実現されてもよい。
【００９２】
まず、制御装置１００は、補正時間Ｔを設定する（ステップＳ１）。例えば、制御装置１００は、制御対象２を指定位置まで指定時間かけて移動させる場合に、当該指定時間に予め定められた割合（例えば１／２）を乗じた時間を補正時間Ｔとして設定する。
【００９３】
次に、制御装置１００は、制御開始からの経過時間ｔを０に設定する（ステップＳ２）。その後、制御装置１００は、移動制御を開始するか否かを判断する（ステップＳ３）。例えば、制御装置１００は、サーボドライバ２００、サーボモータ３００、制御対象２および他の機器の状態を確認し、各機器から準備完了の通知を受けたことにより、移動制御を開始すると判断すればよい。移動制御を開始しないと判断した場合（ステップＳ３でＮＯ）、モータ制御の処理はステップＳ３に戻される。
【００９４】
移動制御を開始すると判断した場合（ステップＳ３でＹＥＳ）、制御装置１００は、制御開始からの経過時間ｔに制御周期Ｔｓを加算する（ステップＳ４）。制御装置１００は、負荷位置と目標値ＳＰで示される目標位置との偏差が最小となるように、動特性モデルを用いたモデル予測制御を実行して、今回の制御周期に対応する操作量ＭＶを生成する（ステップＳ５）。ステップＳ５における操作量ＭＶの生成は、例えば＜Ｅ．操作量ＭＶの生成＞に記載した方法によって行なわれる。
【００９５】
次に、制御装置１００は、制御開始からの経過時間ｔが補正時間Ｔ以下であるか否かを判断する（ステップＳ６）。ｔ≦Ｔである場合（ステップＳ６でＹＥＳ）、制御装置１００は、補正係数を決定するための関数に制御開始からの経過時間ｔを代入することにより、今回の制御周期における補正係数ｆ（ｔ）を演算する（ステップＳ７）。制御装置１００は、補正係数ｆ（ｔ）を操作量ＭＶに乗じることにより操作量ＭＶを補正し、補正後の操作量ＭＶをサーボドライバ２００に出力する（ステップＳ８）。
【００９６】
ステップＳ８の後、または、ｔ＞Ｔである場合（ステップＳ６でＮｏ）、制御装置１００は、移動制御を終了すべきか否かを判断する（ステップＳ９）。制御装置１００は、負荷位置が目標軌道の終点に到達して整定した場合に、移動制御を終了すると判断すればよい。移動制御を終了しないと判断した場合（ステップＳ９においてＮＯ）、モータ制御の処理は、ステップＳ４に戻される。これにより、ステップＳ４〜Ｓ８が繰り返される。なお、ステップＳ４〜Ｓ８は、制御周期毎に繰り返される。
【００９７】
移動制御を終了すると判断した場合（ステップＳ９においてＹＥＳ）、モータ制御の処理は終了する。以上のような処理手順によって、本実施の形態に従う制御装置１００のモータ制御が実現される。なお、ステップＳ１〜Ｓ１０の処理は、指定されたサーボドライバ２００の各々について実施される。そのため、複数のサーボドライバ２００のそれぞれについてのステップＳ１〜Ｓ１０の処理が並列的に実行されることもある。
【００９８】
＜Ｈ．プログラミング例＞
本実施の形態に従う制御装置１００による制御処理は、制御装置１００で実行されるユーザプログラム１１２において命令を記述することで実行され得る。以下、本実施の形態に従う制御装置１００のプログラミングの一例について説明する。
【００９９】
図８は、本実施の形態に従う制御装置で実行される命令コードの一例を示す図である。図８には、ユーザプログラム１１２に含まれるモデル予測制御ファンクションブロック１１５が示される。モデル予測制御ファンクションブロック１１５（以下、「モデル予測制御ＦＢ１１５」という）は、モデル予測制御の実行を規定するためのファンクションブロックである。上記のモデル予測制御モジュール１５０は、モデル予測制御ＦＢ１１５によって実現される。
【０１００】
モデル予測制御ＦＢ１１５は、入力項目として、開始指示１１５Ａと、サンプリング周期１１５Ｂと、目標値１１５Ｃと、モデルパラメータ１１５Ｄと、制御パラメータ１１５Ｅと、振動周波数１１５Ｆと、振幅比１１５Ｇと、制御開始時補正時間１１５Ｈとを含む。モデル予測制御ＦＢ１１５は、出力項目として、ステータス１１５Ｉと、操作量１１５Ｊとを含む。
【０１０１】
開始指示１１５Ａには、例えば、モデル予測制御を開始するための条件が設定される。サンプリング周期１１５Ｂには、モデル予測制御による演算を実行する制御周期Ｔｓが設定される。
【０１０２】
目標値１１５Ｃには、予め定められた制御対象２の目標軌道を規定する複数の目標値ＳＰのデータ配列が設定される。
【０１０３】
モデルパラメータ１１５Ｄには、モデル作成モジュール１３０によって作成された第１動特性モデルＰＣＭを規定するためのモデルパラメータ（ｄ，ａｃｍ１〜ａｃｍｎ，ｂｃｍ１〜ｂｃｍｍ）が入力される。
【０１０４】
制御パラメータ１１５Ｅには、モデル予測制御で用いる予測ホライズンの値Ｈ１，Ｈ２および参照軌道時定数Ｔｒが入力される。
【０１０５】
振動周波数１１５Ｆには、第２動特性モデルＰＭＬを規定するための振動周波数ｆ０が入力される。振幅比１１５Ｇには、第２動特性モデルＰＭＬを規定するための振幅比Ａｄｒが入力される。制御開始時補正時間１１５Ｈには、補正時間Ｔが入力される。
【０１０６】
また、ステータス１１５Ｉからは、モデル予測制御ＦＢ１１５による処理の実行状態を示す値が出力される。
【０１０７】
操作量１１５Ｊから、操作量ＭＶが指令値としてサーボドライバに出力される。なお、移動制御の開始から補正時間Ｔが経過するまでの補正期間では、モデル予測制御の実行によって生成された操作量ＭＶに補正係数ｆ（ｔ）を乗じることによって補正された操作量ＭＶが出力される。補正期間後には、モデル予測制御の実行によって生成された操作量ＭＶが出力される。
【０１０８】
＜Ｉ．シミュレーション結果＞
本実施の形態に係る制御装置１００の効果を検証するためにシミュレーションを行なった。
【０１０９】
図９は、補正係数ｆ（ｔ）による操作量ＭＶの補正を行なわないときのシミュレーション結果の例を示す図である。図１０は、補正係数ｆ（ｔ）による操作量ＭＶの補正を行なったときのシミュレーション結果の例を示す図である。補正係数ｆ（ｔ）として、図６に示す第３の例の補正係数ｆ（ｔ）を用いた。
【０１１０】
図９および図１０には、以下の条件下でのシミュレーション結果が示される。
制御対象：２慣性系、
制御対象の振動周波数：９．２Ｈｚ
制御周期Ｔｓ：１ｍｓ
むだ時間ｄ：２ｍｓ
予測ホライズン：Ｈ１＝１０制御周期、Ｈ２＝１８制御周期
移動制御：指定時間２００ｍｓで制御対象を２５ｍｍ離れた指定位置まで移動させる。
【０１１１】
図１０において、最左列の（ａ）には、補正時間Ｔを１０ｍｓとしたときのシミュレーション結果が示される。左から２列目の（ｂ）には、補正時間Ｔを２０ｍｓとしたときのシミュレーション結果が示される。左から３列目の（ｃ）には、補正時間Ｔを５０ｍｓとしたときのシミュレーション結果が示される。左から４列目の（ｄ）には、補正時間Ｔを１００ｍｓとしたときのシミュレーション結果が示される。
【０１１２】
図９および図１０において、１段目には、目標位置の時間変化つまり目標軌道と、負荷位置の時間変化とが示される。目標軌道は５次軌道である。２段目には、目標位置と負荷位置との偏差の時間変化が示される。３段目には、サーボドライバから出力されるトルク値の時間変化が示される。
【０１１３】
図９に示されるように、補正係数ｆ（ｔ）による補正を行なわない場合、目標軌道に対する追従性能が高く維持されるものの、移動制御の開始直後において、サーボドライバから出力されるトルク値が大きい。
【０１１４】
これに対し、図１０に示されるように、移動制御の開始から補正時間Ｔ経過するまでの補正期間において補正係数ｆ（ｔ）による操作量ＭＶの補正を行なうことにより、サーボドライバから出力されるトルク値が低減される。トルク値の低減効果は、補正時間Ｔを長くすることにより大きくなる。
【０１１５】
補正時間Ｔが長くなると、負荷位置と目標位置との偏差が大きくなる傾向にある。ただし、補正時間Ｔは、指定位置まで移動させる指定時間の１／２以下に設定されているため、負荷位置と目標位置との偏差が大きくなるのは、制御対象の移動中に限られる。そのため、移動制御の開始から指定時間２００ｍｓ経過したときの負荷位置と目標位置との偏差は十分に小さい。すなわち、移動制御を開始してから制御対象の位置が指定位置を含む許容範囲内に収まるまでの整定時間は、指定時間（２００ｍｓ）から増加していない。
【０１１６】
＜Ｊ．利点＞
以上のように、本実施の形態に係る制御装置１００は、制御対象２に接続されたサーボモータ３００を駆動するドライブ装置であるサーボドライバ２００に操作量ＭＶを出力して、停止している制御対象２を指定位置に移動させる移動制御を行なう。制御装置１００は、生成部１５１と補正部１５２とを備える。生成部１５１は、制御対象２が目標軌道に追従するように、目標軌道から生成される目標値ＳＰを用いて操作量ＭＶを生成する。補正部１５２は、移動制御の開始から予め定められた補正時間Ｔ経過するまでの補正期間において、操作量ＭＶに対して補正係数ｆ（ｔ）を乗じる。補正係数ｆ（ｔ）は、補正期間において、時間経過とともに単調増加する。補正期間の終点における補正係数ｆ（Ｔ）は１である。
【０１１７】
上記の構成によれば、移動制御の開始からの補正期間において、操作量ＭＶ（すなわち、指令値）が緩やかに増大し、移動制御の開始直後におけるトルクピークを低減できる。トルクピークが低減されることにより、トルク飽和を回避できる。また、トルクピークが低減されることにより、小型のモータが利用可能となり、コストを低減できる。さらに、補正係数ｆ（ｔ）を乗じる演算が特許文献１のトルク飽和の回避のための演算と比べて簡易であり、演算負荷が抑制される。
【０１１８】
例えば、補正係数ｆ（ｔ）は、移動制御の開始からの経過時間ｔに比例して増加してもよい（図４参照）。この場合、補正係数ｆ（ｔ）は、簡易な１次関数に従って決定される。そのため、補正係数ｆ（ｔ）を決定する演算負荷を低減できる。
【０１１９】
もしくは、補正係数ｆ（ｔ）は、移動制御の開始からの経過時間ｔを説明変数とし、補正係数ｆ（ｔ）を目的変数とする関数に従って決定され、関数における補正期間の終点（ｔ＝Ｔ）の微分値は０であってもよい（図５参照）。この場合、制御対象２の滑らかな移動を実現することができる。
【０１２０】
もしくは、補正期間が２つの区間Ｔａ，Ｔｂに分割されてもよい（図６参照）。そして、関数は、先の区間Ｔａにおいて１次関数であり、後の区間Ｔｂにおいて、区間Ｔｂの始点の傾きが１次関数の傾きと一致し、区間Ｔｂの終点の２回微分値が０となる５次関数である。この場合、制御対象２の滑らかな移動を実現することができるとともに、移動制御の開始直後における目標値への追従性の低下を抑制できる。
【０１２１】
移動制御は、制御対象２を指定位置まで指定時間で移動させる制御である。予め定められた補正時間Ｔは、指定時間の１／２以下であることが好ましい。これにより、図１０に示すシミュレーション結果から、整定時間が指定時間よりも増加することを抑制できる。
【０１２２】
＜Ｋ．変形例＞
＜Ｋ−１．変形例１＞
上記の説明では、補正部１５２は、生成部１５１が生成した操作量ＭＶを補正係数ｆ（ｔ）で補正するものとした。しかしながら、補正部１５２は、操作量ＭＶの代わりに、軌道生成モジュールから出力される目標値ＳＰに対して補正係数ｆ（ｔ）を乗じ、目標値ＳＰを補正してもよい。上述したように、生成部１５１は、負荷位置と目標値ＳＰで示される目標位置との偏差が最小となるように操作量ＭＶを生成する。そのため、目標値ＳＰが補正係数ｆ（ｔ）によって補正されることにより、移動制御の開始から補正時間Ｔが経過するまでの補正期間において、操作量ＭＶ（すなわち、指令値）が緩やかに増大し、トルク飽和が抑制される。
【０１２３】
図１１は、変形例１に従う制御システムによるモータ制御の処理手順を示すフローチャートである。図１１に示す処理手順は、図７に示す処理手順と比較して、ステップＳ５，Ｓ８の代わりにステップＳ１０，Ｓ１１を含む点で相違する。
【０１２４】
図１１に示されるように、変形例１に従う制御システムでは、モータ制御の処理は、ステップＳ４の後にステップＳ６，Ｓ７に移る。ステップＳ７の後、制御装置１００は、補正係数ｆ（ｔ）を目標値ＳＰに乗じることにより、目標値ＳＰを補正する（ステップＳ１０）。
【０１２５】
例えば、上記＜Ｅ．操作量ＭＶの生成＞で説明した方法に従って操作量ＭＶを生成する場合、今回の制御周期ｋに対応する操作量ＭＶｋを生成するために用いる目標値ＳＰは、上記の式（２）に含まれる、制御周期ｋ＋ｄ＋Ｈにおける目標値ＳＰｋ＋ｄ＋Ｈと制御周期ｋ＋ｄにおける目標値ＳＰｋ＋ｄである。Ｈとして２つの値Ｈ１，Ｈ２が設定されるため、制御装置１００は、今回の制御周期ｋにおいて、目標値ＳＰｋ＋ｄ＋Ｈ１と目標値ＳＰｋ＋ｄ＋Ｈ２と目標値ＳＰｋ＋ｄとを補正すればよい。
【０１２６】
ステップＳ１０の後、または、ｔ＞Ｔの場合（ステップＳ６でＮＯ）、制御装置１００は、負荷位置と目標値ＳＰで示される目標位置との偏差が最小となるように、動特性モデルを用いたモデル予測制御を実行して、操作量ＭＶを生成する（ステップＳ１１）。ステップＳ１１では、目標値ＳＰが補正係数ｆ（ｔ）で補正される場合、補正後の目標値ＳＰを用いて操作量ＭＶが生成される。生成された操作量ＭＶは、サーボドライバ２００に出力される。
【０１２７】
その後、制御装置１００は、移動制御を終了すべきか否かを判断する（ステップＳ９）。移動制御を終了しないと判断した場合（ステップＳ９においてＮＯ）、モータ制御の処理は、ステップＳ４に戻される。これにより、ステップＳ４、Ｓ６，Ｓ７，Ｓ１０，Ｓ１１が繰り返される。なお、ステップＳ４、Ｓ６，Ｓ７，Ｓ１０，Ｓ１１は、制御周期毎に繰り返される。
【０１２８】
図１２は、補正係数ｆ（ｔ）による目標値ＳＰの補正を行なったときのシミュレーション結果の例を示す図である。図１２には、操作量ＭＶの代わりに目標値ＳＰを補正係数ｆ（ｔ）により補正する点を除いて、図１０と同じ条件下でのシミュレーション結果が示される。すなわち、制御周期毎に、むだ時間ｄ（＝２ｍｓ）だけ経過した制御周期の目標値ＳＰと、むだ時間ｄ（＝２ｍｓ）＋Ｈ１（＝１０ｍｓ）だけ経過した制御周期の目標値ＳＰと、むだ時間ｄ（＝２ｍｓ）＋Ｈ２（＝１８ｍｓ）だけ経過した制御周期の目標値ＳＰとを補正係数ｆ（ｔ）により補正した。
【０１２９】
図１２において、最左列の（ａ）には、補正時間Ｔを１０ｍｓとしたときのシミュレーション結果が示される。左から２列目の（ｂ）には、補正時間Ｔを２０ｍｓとしたときのシミュレーション結果が示される。左から３列目の（ｃ）には、補正時間Ｔを５０ｍｓとしたときのシミュレーション結果が示される。左から４列目の（ｄ）には、補正時間Ｔを１００ｍｓとしたときのシミュレーション結果が示される。
【０１３０】
図１２に示されるように、移動制御の開始から補正時間Ｔ経過するまでの補正期間において補正係数ｆ（ｔ）による目標値ＳＰの補正を行なうことにより、サーボドライバから出力されるトルク値が低減される。トルク値の低減効果は、補正時間Ｔを長くすることにより大きくなる。さらに、補正時間Ｔが指定位置までの移動時間の１／２以下に設定されている場合に、整定時間が指定時間（２００ｍｓ）から増加していないことが確認された。
【０１３１】
＜Ｋ−２．変形例２＞
図１３は、変形例２に係る制御装置の機能構成の一例を示す模式図である。図１３に示されるように、変形例２に係る制御装置１００Ａは、図３に示す制御装置１００と比較して、制御ユニット１６０の代わりに制御ユニット１６０Ａを備える点で相違する。制御ユニット１６０Ａは、制御ユニット１６０と比較して、モデル予測制御モジュール１５０の代わりにモデル予測制御モジュール１５０Ａを含む点で相違する。モデル予測制御モジュール１５０Ａは、モデル予測制御モジュール１５０と比較して、生成部１５１の代わりに生成部１５１Ａを含む点で相違する。
【０１３２】
変形例２に係る制御装置１００Ａのモデル予測制御モジュール１５０Ａには、制御対象２の位置（負荷位置）の計測値ＰＶがフィードバックされる。計測値ＰＶは、図１に示す計測センサ２０によって計測され、計測センサ２０から制御装置１００Ａに送信される。
【０１３３】
生成部１５１Ａは、上記の生成部１５１と比較して、計測値ＰＶを用いて、予測負荷位置ＹＬを補正する点で相違する。
【０１３４】
例えば、生成部１５１Ａは、今回の制御周期ｋにおける予測負荷位置ＹＬｋと計測値ＰＶｋとの差分値を補正量ＣＬとして演算する。すなわち、補正量ＣＬは、
ＣＬ＝ＰＶｋ−ＹＬｋ
で表される。
【０１３５】
次に、生成部１５１Ａは、予測負荷位置ＹＬｋを計測値ＰＶｋに更新するとともに、補正量ＣＬを用いて以下の式に従って、むだ時間ｄだけ将来の予測負荷位置ＹＬを更新する。
ＹＬｋ＋１←ＹＬｋ＋１＋ＣＬ
・・・
ＹＬｋ＋ｄ←ＹＬｋ＋ｄ＋ＣＬ
これにより、予測負荷位置ＹＬの精度を高めることができる。その結果、移動制御における目標軌道への追従性を向上させることができる。
【０１３６】
動特性モデルが第１動特性モデルＰＣＭと第２動特性モデルＰＭＬとから構成される場合には、生成部１５１Ａは、予測負荷位置ＹＬの補正に代えて、もしくは、予測負荷位置ＹＬの補正に加えて、サーボモータ３００から受けるモータ位置の計測値ＰＶＭを用いて予測モータ位置ＹＭを補正してもよい。
【０１３７】
例えば、生成部１５１Ａは、今回の制御周期ｋにおける予測モータ位置ＹＭｋと計測値ＰＶＭｋとの差分値を補正量ＣＭとして演算する。すなわち、補正量ＣＭは、
ＣＭ＝ＰＶＭｋ−ＹＭｋ
で表される。
【０１３８】
次に、生成部１５１Ａは、予測モータ位置ＹＭｋを計測値ＰＶＭｋに更新するとともに、補正量ＣＭを用いて以下の式に従って、むだ時間ｄだけ将来の予測モータ位置ＹＭを更新する。
ＹＭｋ＋１←ＹＭｋ＋１＋ＣＭ
・・・
ＹＭｋ＋ｄ←ＹＭｋ＋ｄ＋ＣＭ
これにより、予測モータ位置ＹＭの精度が高まるとともに、予測負荷位置ＹＬの精度も高まる。その結果、移動制御における目標軌道への追従性を向上させることができる。
【０１３９】
＜Ｋ−３．変形例３＞
上記の説明では、生成部１５１，１５１Ａは、サーボドライバ２００、サーボモータ３００および制御対象２からなるモデル対象４００の動特性を示す動特性モデルを用いてモデル予測制御を行ない、操作量ＭＶを生成するものとした。しかしながら、制御対象２の振動抑制が不要である場合には、生成部１５１，１５１Ａは、サーボドライバ２００およびサーボモータ３００からなるモデル対象４００の動特性を示す動特性モデルを用いてモデル予測制御を行ない、操作量ＭＶを生成してもよい。この場合、モデル予測制御モジュール１５０，１５０Ａを実現するモデル予測制御ＦＢ１１５（図８参照）において、振動周波数１１５Ｆおよび振幅比１１５Ｇの入力項目が省略される。
【０１４０】
＜Ｌ．付記＞
以上のように、本実施の形態および変形例は以下のような開示を含む。
【０１４１】
（構成１）
制御対象（２）に接続されたモータ（３００，３００Ｘ，３００Ｙ）を駆動するドライブ装置（２００，２００Ｘ，２００Ｙ）に操作量を出力して、停止している前記制御対象（２）を指定位置に移動させる移動制御を行なう制御装置（１００，１００Ａ）であって、
前記制御対象（２）が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成する生成部（１０２，１５１，１５１Ａ）と、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じる補正部（１０２，１５２）とを備え、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は１である、制御装置（１００，１００Ａ）。
【０１４２】
（構成２）
前記補正係数は、前記移動制御の開始からの経過時間に比例して増加する、構成１に記載の制御装置（１００，１００Ａ）。
【０１４３】
（構成３）
前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数における前記補正期間の終点の微分値は０である、構成１に記載の制御装置（１００，１００Ａ）。
【０１４４】
（構成４）
前記補正期間は、２つの区間に分割され、
前記補正係数は、前記移動制御の開始からの経過時間を説明変数とし、前記補正係数を目的変数とする関数に従って決定され、
前記関数は、前記２つの区間のうち先の区間において１次関数であり、
前記関数は、前記２つの区間のうち後の区間において、前記後の区間の始点の傾きが前記１次関数の傾きと一致し、前記後の区間の終点の２回微分値が０となる５次関数である、構成１に記載の制御装置（１００，１００Ａ）。
【０１４５】
（構成５）
前記移動制御は、前記制御対象（２）を前記指定位置まで指定時間で移動させる制御であり、
前記予め定められた補正時間は、前記指定時間の１／２以下である、構成１から４のいずれかに記載の制御装置（１００，１００Ａ）。
【０１４６】
（構成６）
前記生成部（１０２，１５１，１５１Ａ）は、モデル予測制御を用いて前記操作量を生成する、構成１から５のいずれかに記載の制御装置（１００，１００Ａ）。
【０１４７】
（構成７）
制御対象（２）に接続されたモータ（３００，３００Ｘ，３００Ｙ）を駆動するドライブ装置（２００，２００Ｘ，２００Ｙ）に操作量を出力して、停止している前記制御対象（２）を指定位置に移動させる移動制御を行なう制御装置（１００，１００Ａ）を実現するための制御プログラム（１１０，１１２）であって、
前記制御プログラムは、コンピュータに、
前記制御対象（２）が目標軌道に追従するように、前記目標軌道から生成される目標値を用いて前記操作量を生成するステップと、
前記移動制御の開始から予め定められた補正時間経過するまでの補正期間において、前記操作量または前記操作量の生成に用いる前記目標値に対して補正係数を乗じるステップとを実行させ、
前記補正係数は、前記補正期間において、時間経過とともに単調増加し、
前記補正期間の終点における前記補正係数は１である、制御プログラム。
【０１４８】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４９】
１  制御システム、２  制御対象、３  ワーキングプレート、４  第１ベースプレート、６，９  ボールネジ、７  第２ベースプレート、２０，２０Ｘ，２０Ｙ  計測センサ、１００，１００Ａ  制御装置、１０１  フィールドバス、１０２  プロセッサ、１０４  チップセット、１０６  メインメモリ、１０８  フラッシュメモリ、１１０  システムプログラム、１１２  ユーザプログラム、１１２Ａ  シーケンスプログラム、１１２Ｂ  モーションプログラム、１１５  モデル予測制御ファンクションブロック、１１５Ａ  開始指示、１１５Ｂ  サンプリング周期、１１５Ｃ  目標値、１１５Ｄ  モデルパラメータ、１１５Ｅ  制御パラメータ、１１５Ｆ  振動周波数、１１５Ｇ  振幅比、１１５Ｈ  制御開始時補正時間、１１５Ｉ  ステータス、１１５Ｊ  操作量、１１６  外部ネットワークコントローラ、１１８  メモリカードインターフェイス、１２０  メモリカード、１２２  内部バスコントローラ、１２４  フィールドバスコントローラ、１２６  Ｉ／Ｏユニット、１３０  モデル作成モジュール、１４０  軌道生成モジュール、１５０，１５０Ａ  モデル予測制御モジュール、１５１，１５１Ａ  生成部、１５２  補正部、１６０，１６０Ａ  制御ユニット、２００，２００Ｘ，２００Ｙ  サーボドライバ、３００，３００Ｘ，３００Ｙ  サーボモータ、４００  モデル対象。
【図１】
2020129293.tif 000006
【図２】
2020129293.tif 000007
【図３】
2020129293.tif 000008
【図４】
2020129293.tif 000009
【図５】
2020129293.tif 000010
【図６】
2020129293.tif 000011
【図７】
2020129293.tif 000012
【図８】
2020129293.tif 000013
【図９】
2020129293.tif 000014
【図１０】
2020129293.tif 000015
【図１１】
2020129293.tif 000016
【図１２】
2020129293.tif 000017
【図１３】
2020129293.tif 000018