(57)【要約】【課題】オーバシュート現象の発生を抑えるとともに、ＣＰＵ負荷を低減したサーボ制御装置、方法及びプログラムを提供する。【解決手段】プリンタヘッド４０４と、これを駆動するＤＣモータ６００４と、プリンタヘッド４０４の位置及びを速度を検出する検出手段と、プリンタヘッド４０４を駆動する速度の目標値である目標速度プロファイルを生成し、ＤＣモータ６００４による駆動力の指示値である駆動出力値を演算するＣＰＵ４０１とを有し、駆動出力値をデジタル演算によって特定の制御周期で離散的に演算して、少なくとも被駆動体の速度を速度目標値に近づけるように制御するサーボ制御装置であって、デジタル演算を行う制御周期が可変である。【選択図】図１
2008299426.tif 000002
【特許請求の範囲】
【請求項１】
直線的に駆動される被駆動体と、前記被駆動体を駆動する駆動手段と、前記被駆動体の位置を検出する位置検出手段と、前記前記被駆動体の速度を検出する速度検出手段と、前記被駆動体を駆動する速度の目標値である速度目標値を生成する速度目標値生成手段と、前記駆動手段による駆動力の指示値である駆動出力値を演算する演算手段とを有し、前記駆動出力値をデジタル演算によって特定の制御周期で離散的に演算して、少なくとも前記被駆動体の速度を前記速度目標値に近づけるように制御するサーボ制御装置であって、
前記デジタル演算を行う制御周期が可変であることを特徴とするサーボ制御装置。
【請求項２】
前記速度目標値が一定以上の加速度変化をするときに、前記制御周期を短く設定することを特徴とする請求項１記載のサーボ制御装置。
【請求項３】
前記目標速度生成手段が、前記位置検出手段によって検出される位置を含む目標速度切替条件に応じて加速度を切り替え、
前記制御周期を変更するタイミングは、前記目標速度切替条件を満たすと予測したタイミングであることを特徴とする請求項１又は２記載のサーボ制御装置。
【請求項４】
直線的に駆動される被駆動体と、前記被駆動体を駆動する駆動手段と、前記被駆動体の位置を検出する位置検出手段と、前記前記被駆動体の速度を検出する速度検出手段と、前記被駆動体を停止する位置の目標値である停止位置目標値を生成する停止位置目標値生成手段と、前記駆動手段による駆動力の指示値である駆動出力値を演算する演算手段とを有し、前記駆動出力値をデジタル演算によって特定の制御周期で離散的に演算して、少なくとも前記被駆動体の停止位置を前記停止位置目標値に近づけるように制御するサーボ制御装置であって、
前記デジタル演算を行う制御周期が可変であり、前記被駆動体の位置が前記停止目標位置から所定の距離内となった場合に前記制御周期を短く設定することを特徴とするサーボ制御装置。
【請求項５】
前記被駆動体はプリンタヘッドであることを特徴とする請求項１から４のいずれか１項記載のサーボ制御装置を用いたインクジェット記録装置。
【請求項６】
直線的に駆動される被駆動体と、前記被駆動体を駆動する駆動手段と、前記被駆動体の位置を検出する位置検出手段と、前記前記被駆動体の速度を検出する速度検出手段と、前記被駆動体を駆動する速度の目標値である速度目標値を生成する速度目標値生成手段と、前記駆動手段による駆動力の指示値である駆動出力値を演算する演算手段とを有するサーボ制御装置におけるサーボ制御方法であって、
前記駆動出力値をデジタル演算によって特定の制御周期で離散的に演算し、少なくとも前記被駆動体の速度を前記速度目標値に近づけるように制御し、
前記デジタル演算を行う制御周期が可変であることを特徴とするサーボ制御方法。
【請求項７】
前記速度目標値が、一定以上の加速度変化をするときに、前記制御周期を短く設定することを特徴とする請求項６記載のサーボ制御方法。
【請求項８】
前記目標速度生成手段が、前記位置検出手段によって検出される位置を含む目標速度切替条件に応じて加速度を切り替え、
前記制御周期を変更するタイミングは、前記目標速度切替条件を満たすと予測したタイミングであることを特徴とする請求項６又は７記載のサーボ制御方法。
【請求項９】
直線的に駆動される被駆動体と、前記被駆動体を駆動する駆動手段と、前記被駆動体の位置を検出する位置検出手段と、前記前記被駆動体の速度を検出する速度検出手段と、前記被駆動体を停止する位置の目標値である停止位置目標値を生成する停止位置目標値生成手段と、前記駆動手段による駆動力の指示値である駆動出力値を演算する演算手段とを有するサーボ制御装置におけるサーボ制御方法であって、
前記駆動手段への駆動出力値をデジタル演算によって特定の制御周期で離散的に演算して少なくとも前記被駆動体の停止位置を前記停止位置目標値に近づけるように制御し、
前記デジタル演算を行う制御周期が可変であり、
前記被駆動体の位置が前記停止目標位置から所定の距離内となった場合に前記制御周期を短く設定することを特徴とするサーボ制御方法。
【請求項１０】
直線的に駆動される被駆動体と、前記被駆動体を駆動する駆動手段と、前記被駆動体の位置を検出する位置検出手段と、前記前記被駆動体の速度を検出する速度検出手段とを有するサーボ制御装置を制御する実質的なコンピュータにサーボ制御を行わせるためのサーボ制御プログラムであって、
前記実質的なコンピュータを、
前記被駆動体を駆動する速度の目標値である速度目標値を生成する速度目標値生成手段、及び前記駆動手段による駆動力の指示値である駆動出力値をデジタル演算によって特定の制御周期で離散的に演算する演算手段として機能させ、
前記実質的なコンピュータが、少なくとも前記被駆動体の速度を前記速度目標値に近づけるように制御するとともに、前記デジタル演算を行う制御周期を可変とすることを特徴とするサーボ制御プログラム。
【請求項１１】
前記実質的なコンピュータは、前記速度目標値が一定以上の加速度変化をするときに、前記制御周期を短くすることを特徴とする請求項１０記載のサーボ制御プログラム。
【請求項１２】
前記目標速度生成手段が、前記位置検出手段によって検出される位置を含む目標速度切替条件に応じて加速度を切り替え、
前記制御周期を変更するタイミングは、前記目標速度切替条件を満たすと予測したタイミングであることを特徴とする請求項１０又は１１記載のサーボ制御プログラム。
【請求項１３】
直線的に駆動される被駆動体と、前記被駆動体を駆動する駆動手段と、前記被駆動体の位置を検出する位置検出手段と、前記前記被駆動体の速度を検出する速度検出手段とを有するサーボ制御装置を制御する実質的なコンピュータにサーボ制御を行わせるためのサーボ制御プログラムであって、
前記実質的なコンピュータを、
前記被駆動体を停止する位置の目標値である停止位置目標値を生成する停止位置目標値生成手段、及び前記駆動手段による駆動力の指示値である駆動出力値をデジタル演算によって特定の制御周期で離散的に演算する演算手段として機能させ、
前記実質的なコンピュータは、少なくとも前記被駆動体の停止位置を前記停止位置目標値に近づけるように制御するとともに、前記デジタル演算を行う制御周期を可変とし、前記被駆動体の位置が前記停止目標位置から所定の距離内となった場合に前記制御周期を短く設定することを特徴とするサーボ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボ制御装置及びサーボ制御方法、サーボ制御プログラム並びにインクジェット記録装置に関する。
【背景技術】
【０００２】
サーボ制御（刻々と変化する目標に対して、制御対象を追従させていく制御手法）を簡素な構成で実現することに関連する技術として特許文献１に開示される「サーボ制御装置」や特許文献２に開示される「サーボ制御装置」が、サーボ制御をインクジェット記録装置のキャリッジに用いることに関連する技術として特許文献３に開示される「画像形成装置」がある。
【０００３】
特許文献１は、サーボ制御装置は、制御対象を駆動させるため駆動部へ駆動電流を供給する電流供給部と、少なくとも駆動電流値を検出する検出部と、制御対象を所望の位置へ移動させるために駆動部の駆動速度を制御する駆動電流を定めた電流指令を入力し、検出部からフィードバックされた駆動電流値を入力し、駆動電流値に基づいて電流指令をディジタルロジック方式により補正して補正後の該電流指令を電流供給部へ出力する論理演算部とを備えている。これにより、製造コストが低く、小型であり、かつ、制御対象の制御周期が従来よりも短いサーボ制御装置を提供している。
【０００４】
特許文献２は、サーボモータに接続されて当該サーボモータを制御するサーボ制御装置であり、所定数のビット幅を有するディジタルロジック回路を備え、このディジタルロジック回路は、少なくとも一対の並列演算回路を有している。これにより、制御性能の向上とコストダウンとの両立を図ったサーボ制御装置を提供している。
【０００５】
特許文献３は、主走査モータをサーボ制御で駆動して記録ヘッドを搭載したキャリッジを移動させる場合、同一方向のみの移動で印字を行う印刷モードで、１行の印字終了後次の行の印字開始位置にキャリッジを移動させるとき、印字動作中のキャリッジの移動速度に対して、リターン動作中のキャリッジの移動速度の設定速度を高速にする。これにより、キャリッジの同一方向のみの移動で印字を行う場合に効果的に印刷速度の向上を図ることができる。
【特許文献１】特開２００４−００５２１８号公報
【特許文献２】特開２００３−３４５４４３号公報
【特許文献３】特開２００５−３０５８４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、サーボ制御によって常に同じ制御周期で制御を行うと、ＣＰＵへの負荷が常に高い状態となってしまうという問題があった。
【０００７】
サーボ制御装置でのモータ出力値を計算する計算手段は、ＣＰＵ上のプログラムによって実現されるのが一般的である。この計算には、制御周期が数ｍｓｅｃ、１回の計算時間が数十μｓｅｃ〜数百μｓｅｃ程度であることが一般的であり、この時サーボ制御装置ではＣＰＵ処理能力の数％〜数十％を使用していることとなる。
【０００８】
ここで、例えばインクジェットプリンタのようなサーボ制御と画像処理などその他の処理を同一のＣＰＵ上で行う装置を考えると、サーボ制御に費やす処理の比率はなるべく少なく抑えたい。また、サーボ制御に費やす処理の比率を小さくするためには、処理能力の高い高価なＣＰＵを使用することも考えられるが、これは装置コストの高騰を招く。
【０００９】
本発明はかかる問題に鑑みてなされたものであり、オーバシュート現象の発生を抑えるとともに、ＣＰＵ負荷を低減したサーボ制御装置、方法及びプログラム並びにインクジェット記録装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明は、第１の態様として、直線的に駆動される被駆動体と、被駆動体を駆動する駆動手段と、被駆動体の位置を検出する位置検出手段と、被駆動体の速度を検出する速度検出手段と、被駆動体を駆動する速度の目標値である速度目標値を生成する速度目標値生成手段と、駆動手段による駆動力の指示値である駆動出力値を演算する演算手段とを有し、駆動出力値をデジタル演算によって特定の制御周期で離散的に演算して、少なくとも被駆動体の速度を速度目標値に近づけるように制御するサーボ制御装置であって、デジタル演算を行う制御周期が可変であることを特徴とするサーボ制御装置を提供するものである。
を提供するものである。
【００１１】
本発明の第１の態様においては、速度目標値が、一定以上の加速度変化をするときに、制御周期を短く設定することが好ましい。
【００１２】
本発明の第１の態様の上記のいずれの構成においても、目標速度生成手段が、位置検出手段によって検出される位置を含む目標速度切替条件に応じて加速度を切り替え、制御周期を変更するタイミングは、目標速度切替条件を満たすと予測したタイミングであることが好ましい。
【００１３】
また、上記目的を達成するため、本発明は、第２の態様として、直線的に駆動される被駆動体と、被駆動体を駆動する駆動手段と、被駆動体の位置を検出する位置検出手段と、被駆動体の速度を検出する速度検出手段と、被駆動体を停止する位置の目標値である停止位置目標値を生成する停止位置目標値生成手段と、駆動手段による駆動力の指示値である駆動出力値を演算する演算手段とを有し、駆動出力値をデジタル演算によって特定の制御周期で離散的に演算して、少なくとも被駆動体の停止位置を停止位置目標値に近づけるように制御するサーボ制御装置であって、デジタル演算を行う制御周期が可変であり、被駆動体の位置が停止目標位置から所定の距離内となった場合に制御周期を短く設定することを特徴とするサーボ制御装置を提供するものである。
【００１４】
また、上記目的を達成するため、本発明は、第３の態様として、被駆動体はプリンタヘッドであることを特徴とする上記第１又は第２の態様のいずれかの構成に係るサーボ制御装置を用いたインクジェット記録装置を提供するものである。
【００１５】
また、上記目的を達成するため、本発明は、第４の態様として、直線的に駆動される被駆動体と、被駆動体を駆動する駆動手段と、被駆動体の位置を検出する位置検出手段と、被駆動体の速度を検出する速度検出手段と、被駆動体を駆動する速度の目標値である速度目標値を生成する速度目標値生成手段と、駆動手段による駆動力の指示値である駆動出力値を演算する演算手段とを有するサーボ制御装置におけるサーボ制御方法であって、駆動出力値をデジタル演算によって特定の制御周期で離散的に演算し、少なくとも被駆動体の速度を速度目標値に近づけるように制御し、デジタル演算を行う制御周期が可変であることを特徴とするサーボ制御方法を提供するものである。
【００１６】
本発明の第４の態様においては、速度目標値が、一定以上の加速度変化をするときに、制御周期を短く設定することが好ましい。
【００１７】
本発明の第４の態様の上記のいずれの構成においても、目標速度生成手段が、位置検出手段によって検出される位置を含む目標速度切替条件に応じて加速度を切り替え、制御周期を変更するタイミングは、目標速度切替条件を満たすと予測したタイミングであることが好ましい。
【００１８】
また、上記目的を達成するため、本発明は、第５の態様として、直線的に駆動される被駆動体と、被駆動体を駆動する駆動手段と、被駆動体の位置を検出する位置検出手段と、被駆動体の速度を検出する速度検出手段と、被駆動体を停止する位置の目標値である停止位置目標値を生成する停止位置目標値生成手段と、駆動手段による駆動力の指示値である駆動出力値を演算する演算手段とを有するサーボ制御装置におけるサーボ制御方法であって、駆動手段への駆動出力値をデジタル演算によって特定の制御周期で離散的に演算して少なくとも被駆動体の停止位置を停止位置目標値に近づけるように制御し、デジタル演算を行う制御周期が可変であり、被駆動体の位置が停止目標位置から所定の距離内となった場合に制御周期を短く設定することを特徴とするサーボ制御方法を提供するものである。
【００１９】
また、上記目的を達成するため、本発明は、第６の態様として、直線的に駆動される被駆動体と、被駆動体を駆動する駆動手段と、被駆動体の位置を検出する位置検出手段と、被駆動体の速度を検出する速度検出手段とを有するサーボ制御装置を制御する実質的なコンピュータにサーボ制御を行わせるためのサーボ制御プログラムであって、実質的なコンピュータを、被駆動体を駆動する速度の目標値である速度目標値を生成する速度目標値生成手段、及び駆動手段による駆動力の指示値である駆動出力値をデジタル演算によって特定の制御周期で離散的に演算する演算手段として機能させ、実質的なコンピュータが、少なくとも被駆動体の速度を速度目標値に近づけるように制御するとともに、デジタル演算を行う制御周期を可変とすることを特徴とするサーボ制御プログラムを提供するものである。
【００２０】
本発明の第６の態様においては、実質的なコンピュータは、速度目標値が一定以上の加速度変化をするときに、制御周期を短くすることが好ましい。
【００２１】
本発明の第６の態様の上記のいずれの構成においても、目標速度生成手段が、位置検出手段によって検出される位置を含む目標速度切替条件に応じて加速度を切り替え、制御周期を変更するタイミングは、目標速度切替条件を満たすと予測したタイミングであることが好ましい。
【００２２】
また、上記目的を達成するため、本発明は、第７の態様として、直線的に駆動される被駆動体と、被駆動体を駆動する駆動手段と、被駆動体の位置を検出する位置検出手段と、被駆動体の速度を検出する速度検出手段とを有するサーボ制御装置を制御する実質的なコンピュータにサーボ制御を行わせるためのサーボ制御プログラムであって、実質的なコンピュータを、被駆動体を停止する位置の目標値である停止位置目標値を生成する停止位置目標値生成手段、及び駆動手段による駆動力の指示値である駆動出力値をデジタル演算によって特定の制御周期で離散的に演算する演算手段として機能させ、実質的なコンピュータは、少なくとも被駆動体の停止位置を停止位置目標値に近づけるように制御するとともに、デジタル演算を行う制御周期を可変とし、被駆動体の位置が停止目標位置から所定の距離内となった場合に制御周期を短く設定することを特徴とするサーボ制御プログラムを提供するものである。
【発明の効果】
【００２３】
本発明によれば、オーバシュート現象の発生を抑えるとともに、ＣＰＵ負荷を低減したサーボ制御装置、方法及びプログラム並びにインクジェット記録装置を提供できる。
【発明を実施するための最良の形態】
【００２４】
本発明の好適な実施の形態について説明する。本実施形態では着脱可能なインクタンク付き記録ヘッドを搭載したシリアル式インクジェットプリンタを例とし、ラインフィードモータと、キャリッジモータ制御とにおいてクロス制御を適用した場合について説明する。
【００２５】
ここで「クロス制御」とは、記録ヘッドを搭載したキャリッジの主走査方向の駆動と、記録媒体の搬送における副走査方向の駆動とにおいて、協調的に両駆動をオーバラップさせる制御をいう。印字処理を高速化させるために、理想的には、副走査（ＬＦ）完了前に主走査（ＣＲ）の駆動を開始し、ＣＲが記録領域に達した瞬間にちょうどＬＦが停止するように駆動のタイミングを管理するものである。
このような時間管理を行わないと、ＬＦが動作している最中にＣＲが記録領域に達してしまい、斜行記録を引き起こしたり、逆に、ＬＦ駆動と重ならずに記録を行わない無駄なＣＲの空走区間を生じたりしてしまう。
【００２６】
図１に、プリンタの制御部の構成を示す。
プリンタの制御部はＣＰＵ４０１、ＲＯＭ４０２、ＲＡＭ４０３、プリンタヘッド４０４、モータドライバ４０５、プリンタコントローラ４０６、温度センサ４０７を有する。
ＣＰＵ４０１は、プリンタ装置のプリンタ制御用であり、ＲＯＭ４０２に記憶されたプリンタ制御プログラムやプリンタエミュレーション、記録フォントを利用して記録処理を制御する。ＲＡＭ４０３は、記録のための展開データ、ホストからの受信データを蓄える。プリンタヘッド４０４は、制御の対象であって、主走査方向に移動し、インクを吐出して記録紙に画像を形成する。モータドライバ４０５は、プリンタヘッド４０４を移動させるため、及び記録用紙搬送のためのモータを駆動する。プリンタコントローラ４０６は、ＲＡＭ４０３のアクセス制御やホスト装置とのデータのやりとりやモータドライバへの制御信号送出を行う。温度センサ４０７は、サーミスタ等で構成されており、プリンタ装置の温度を検知する。なお、ここではＲＯＭ４０２に記憶されたプログラムをＣＰＵ４０１が読み出してＲＡＭ４０３に展開して実行する構成を例としているが、プログラムが演算装置内に組み込まれていても良い（例えば、ＤＳＰやＡＳＩＣ）。
【００２７】
ＣＰＵ４０１は、ＲＯＭ４０２内の制御プログラムにより本体のメカ的・電気的制御を行いつつ、ホスト装置からプリンタ装置へ送られてくるエミュレーションコマンド等の情報をプリンタコントローラ４０６内のＩ／Ｏポートレジスタ、Ｉ／Ｏポートへ書き込み、読み出しを行う。なお、制御プログラムは必ずしもＲＯＭ４０２に記憶されている必要はなく、情報記録媒体に記録されているプログラムを不図示の外部記憶装置で読み出して、ＣＰＵ４０１がＲＡＭ４０３上に展開してもよい。また、ＲＯＭ４０２として書き換え可能なタイプを用い、情報記録媒体から読み出したプログラムやネットワークを介して取得したプログラムなどでＲＯＭ４０２内部のプログラムを更新できるようにしても良い。
【００２８】
図２に、プリンタコントローラ４０６の詳細な構成を示す。プリンタコントローラ４０６は、Ｉ／Ｏレジスタ５０１、受信バッファコントローラ５０２、記録バッファコントローラ５０３、メモリコントローラ５０４、プリントシーケンスコントローラ５０５、及びホストインタフェース２３１を有する。
Ｉ／Ｏレジスタ５０１は、ホストとのコマンドレベルでのやりとりを行う。受信バッファコントローラ５０２は、Ｉ／Ｏレジスタ５０１から受信データをＲＡＭ４０３へ書き込む。バッファコントローラ５０３は、記録時にはＲＡＭ４０３の規則データバッファから記録データを読み出し、プリンタヘッド４０４に対してデータを送出する。メモリコントローラ５０４は、ＲＡＭ４０３に対して３方向のメモリアクセスを制御する。プリントシーケンスコントローラ５０５は、プリントシーケンスをコントロールする。ホストインタフェース２３１は、ホストとの通信を司る。
【００２９】
図３に、一般的なＤＣモータの位置制御系の構成を示す。本実施形態において位置サーボは、加速制御領域、定速制御領域、減速制御領域において使用される。このようなＤＣモータの制御は、ＰＩＤコントロール又は古典制御と呼ばれる手法で制御される。以下、その手順を説明する。
【００３０】
まず、制御対象に与えたい目標位置は、理想位置プロファイル６００１として与えられる。本実施形態においては、該当する時刻においてラインフィードモータによって搬送された紙が到達しているべき絶対位置に該当する。時刻の進行とともにこの位置情報は変化していく。理想位置プロファイル６００１に対して追値制御を行うことで、本実施形態の駆動制御が行われる。
【００３１】
装置には、エンコーダセンサ６００５が具備されており、ＤＣモータ６００４の物理的な回転を検知する。エンコーダ位置情報変換部６００９は、エンコーダセンサ６００５が検知したスリット数を累積加算していき、絶対位置情報を得る手段であり、エンコーダ速度情報変換部６００６はエンコーダセンサ６００５の信号と、プリンタに内蔵された時計（タイマ）から、現在のラインフィードモータの駆動速度を算出する。
【００３２】
理想位置プロファイル６００１から位置情報変換部６００９によって得られた実際の物理位置を減算した数値を、目標位置に対して足りない位置誤差として位置サーボメジャーループの比例演算部６００２以降の位置サーボのフィードバック処理に受け渡す。比例演算部６００２は、一般的には比例項Ｐに関する計算を行う。
【００３３】
位置サーボメジャーループの比例演算部６００２における演算の結果として、速度指令値が出力される。この速度指令値は、ＰＩ演算部６００３以降の速度サーボのフィードバック処理に受け渡される。速度サーボのマイナーループは、比例項Ｐ、積分項Ｉ、微分項Ｄに対する演算を行うＰＩＤ演算によって行う手法が一般的である。
【００３４】
本実施形態においては、速度指令値の非線形な変化が発生した場合の追従性を改善し、なおかつ追値制御時の微分演算の弊害を防ぐために、一般に微分先行形と呼ばれる手法を示しており、エンコーダ速度情報変換部６００６で得られたエンコーダ速度情報は、比例演算部６００２で得られた速度指令値との差を取る前に微分演算部６００７に入力される。もっとも、制御対象の系の特性によっては、ＰＩ演算部６００３で微分演算を行えば十分なものもある。
【００３５】
速度サーボのマイナーループにおいては、速度指令値からエンコーダ速度情報を減算した数値を、目標速度に対して足りない速度誤差としてＰＩ演算部６００３へ受け渡し、その時点でＤＣモータ６００４に与えるべきエネルギーをＰＩ演算と呼ばれる手法で算出する。これを受けたモータドライバは、例えばモータ印加電圧は一定として、印加電圧のパルス幅を変化させる方法（以下、「ＰＷＭ（Pulse Width Modulation）制御」と称する。）を用い、印加電圧のデューティを変化させて電流値を調整し、ＤＣモータ６００４に与えるエネルギーを調整し、速度制御を行う。
【００３６】
電流値を印可されて回転するＤＣモータ６００４は、ＤＣモータ６００８の外乱による影響を受けながら物理的に回転し、その出力がエンコーダセンサ６００５によって検知される。
【００３７】
図４に、一般的なＤＣモータの速度サーボの制御構成を示す。
本実施形態において速度サーボは、位置決め制御領域において使用される。ＤＣモータは、ＰＩＤコントロール又は古典制御と呼ばれる手法で制御される。
まず、制御対象に与えたい目標速度が理想速度プロファイル７００１として与えられる。本実施形態においては、これは該当する時刻においてラインフィードモータによって紙を搬送すべき理想速度であり、該当する時刻における速度指令値となる。時刻の進行とともにこの速度情報は変化していく。理想速度プロファイル７００１に対して追値制御を行うことで、駆動制御を行う。
【００３８】
速度サーボにおいては、比例項Ｐ、積分項Ｉ、微分項Ｄに対する演算であるＰＩＤ演算を行う手法が一般的である。
本実施形態においては、速度指令値の非線形な変化が発生した場合の追従性を改善し、なおかつ追値制御時の微分演算の弊害を防ぐために、一般に微分先行形と呼ばれる手法を示しており、エンコーダ速度情報変換部６００６で得られたエンコーダ速度情報は、理想速度プロファイル７００１で得られた速度指令値との差を取る前に、微分演算部７００３を通される。もっとも、制御対象の系の特性によっては、ＰＩ演算部７００２においてその微分演算を行えば十分なものもある。
【００３９】
速度サーボにおいては、速度指令値からエンコーダ速度情報を減算した数値を、目標速度に対して足りない速度誤差として、ＰＩ演算部７０２に受け渡し、その時点でＤＣモータ６００４に与えるべきエネルギーを、ＰＩ演算と呼ばれる手法で算出する。それを受けたモータドライバは、例えばＰＷＭ制御を行い、印加電圧のデューティを変化させて、電流値を調節し、ＤＣモータ６００４に与えるエネルギーを調節して速度制御を行う。
【００４０】
電流値を印可されて回転するＤＣモータ６００４は、ＤＣモータ６００８の外乱による影響を受けながら物理的に回転し、その出力がエンコーダ６００５によって検知される。
【００４１】
図５、図６、図７は、本実施形態における副走査（ＬＦ）制御において外乱の及ぼす影響と制御の実際について詳細に示した図である。横軸は時間を示している。縦軸２００１は速度を、縦軸２００２は位置を示している。
図５は、停止直前速度v_stopが、平均的かつ理想的な値V_APPROACHで終了する場合を示す。図６は、t_approach<T_APPROACH、すなわち見込み時間よりも早く終了する場合を示す。図７は、t_approach>T_APPROACHすなわち見込み時間よりも遅く終了する場合を示す。
理想位置プロファイル８００１は、四つの制御領域からなり、加速制御領域２０１１、定速制御領域２０１２、減速制御領域２０１３、位置決め制御領域２０１４によって構成される。
理想速度プロファイル２００４において、V_STARTは初速度であり、V_FLATは定速制御領域２０１２の速度を示している。V_APPROACHは位置決め制御領域の速度を示しており、V_PROMISEは位置決め精度性能を達成するために絶対に守られなければならない停止直前速度の最速値を示している。v_stopは、現実の駆動を想定した場合に外乱によってあらゆる値に変化する現実の値としての停止直前速度である。実際の駆動における速度変動を考慮して、V_APPROACHはいかなる速度変動が発生してもv_stopがV_PROMISEを超えることがないように十分低く設定された速度であることが要求される。
【００４２】
本実施形態においては、加速制御領域２０１１、定速制御領域２０１２、減速制御領域２０１３では位置サーボを、位置決め制御領域２０１４では速度サーボを採用している。図示した曲線８００１は、位置サーボ時の理想位置プロファイルを示している。曲線２００４は、速度サーボ時には理想速度プロファイルを示し、位置サーボ時には理想位置プロファイルに追従して動作するために求められる要求速度プロファイルを示している。
【００４３】
理想位置プロファイル８００１は、位置サーボを行う加速制御領域２０１１、定速制御領域２０１２、減速制御領域２０１３の各領域に対して設定されるが、S_APPROACHまでしか計算されない。これは、S_APPROACHを通り過ぎると速度サーボに切り替わるため、S_APPROACH以降では理想位置プロファイルが不要となるためである。理想位置プロファイル８００１における減速所要時間T_DECは、現実の駆動と関わりなく一定であり、これに該当する制御領域を理想減速制御領域９００１として示す。
【００４４】
位置サーボにおいては外乱の影響により遅れが必ず発生するため、現実位置プロファイル８００３、９００３、１０００３は、理想位置プロファイル８００１に対していずれも遅れを持っている。したがって、理想位置プロファイル８００１が終了しても、現実位置はS_APPROACHに到達しないことが一般的であり、本実施形態においては理想位置プロファイル８００１が終了してから現実の駆動がS_APPROACHに到達するまでの間には、仮想の理想位置プロファイル８００６によって位置サーボへの指令位置値として代用する。仮想の理想位置プロファイル８００６は、理想位置プロファイル８００１の最終的な傾きを用いて、理想位置プロファイル８００１の終点から伸ばした直線とする。
【００４５】
現実駆動速度プロファイル８００５、９００５、１０００５は、物理的なモータの現実駆動速度のプロファイルである。理想位置プロファイル８００１を入力としてフィードバック制御をかけていき、理想速度プロファイル８００１に対して若干の遅れを出しつつも、位置決め制御領域２０１４が進むにしたがって理想速度に近づいて、最終的な停止直前速度としては位置決め精度性能を達成できる速度V_APPROACHに収束しようとする。なお、減速制御領域２０１３から位置決め制御領域２０１４への移行は、物理的な駆動速度状態に関わらず、S_APPROACHに達した瞬間に行われる。
【００４６】
S_DECは定速制御領域２０１２が終了して減速制御領域２０１３が開始される位置を示しており、あくまでも理想位置プロファイル８００１によって決定づけられる値であるため、現実の駆動における外乱の影響とは無関係である。
【００４７】
図中のS_APPROACHは減速制御領域２０１３が終了して位置決め制御領域２０１４が開始される位置を示しており、S_STOPは停止位置を示している。
【００４８】
T_ADDは、加速制御領域２０１１に費やされる所要時間である。T_DECは減速制御領域２０１３に費やされる所要時間である。T_FLATは、定速制御領域２０１２に費やされる時間であり、駆動開始位置を０としたときの停止位置S_STOP、すなわち総駆動距離を満足する理想位置プロファイル８００１を設定した時点で決定される固定値である。T_APPROACHは位置決め制御領域２０１４に費やされる時間を示している。T_APPROACHは、駆動制御対象が実際に動いた時に、位置決め制御領域２０１４に突入する位置S_APPROACHから停止位置S_STOPまでの距離S_APR_STOPを移動するのに要する時間である。図５では、位置決め領域を駆動制御対象がほぼ理想速度通りに動いた場合を示しているが、実際の制御において理想通りの物理的動作は一般的に大変困難である。
【００４９】
高速かつ高精度の位置決めを行うために、理想位置プロファイル８００１のカーブは系に適したチューニングが必要である。具体的には、定速制御領域２０１２の速度は位置決め所要時間性能の向上を実現するために系の性能の許す限り速く、位置決め制御領域２０１４の速度は位置決め精度性能の向上を実現するために系の性能の許す限り遅く、さらに加速制御領域２０１１、減速制御領域２０１３、位置決め制御領域２０１４の距離は位置決め所要時間性能の向上を実現するために系の性能の許す限り短くなるように理想位置プロファイル８００１を設定することが望ましい。ここではすでに理想位置プロファイル８００１が最適調整されているものとして説明する。
【００５０】
t_approachは、現実の駆動を想定した場合に外乱によってあらゆる値に変化する現実の値として、位置決め制御領域２０１４に費やされる時間の現実変数値である（本実施形態においては、定数値を英大文字、変数値を英小文字で示している。同一スペリングの値について英大文字、英小文字の表記がある場合、英大文字で示された値は理想定数値であり、英小文字で示された値は同じ内容の値について変化しうる変数値を示している。）。
現実駆動速度プロファイル９００５、１０００５は、物理的なモータの駆動速度プロファイルを意味している。大局的には、理想的な駆動の現実駆動速度プロファイル８００５と同様の加減速プロファイルとなるが、外乱が乗った結果、位置決め制御領域２０１４に突入した瞬間の速度が現実駆動速度プロファイル９００５では速く、現実駆動速度プロファイル１０００５では遅くなってしまっている。
【００５１】
この影響で現実駆動速度プロファイル９００５では、位置決め制御領域２０１４における速度の平均が高くなった結果、実際に位置決め制御領域２０１４を通過するのに要する時間は、T_APPROACHよりも短くなってしまい、制御所要時間が短くなる。
また、現実駆動速度プロファイル１０００５では、位置決め制御領域２０１４における速度の平均が低くなった結果、実際に位置決め制御領域２０１４を通過するのに要する時間は、T_APPROACHよりも長くなってしまい、制御所要時間が長くなる。
【００５２】
図８は、本実施形態における駆動処理の流れを示すフローチャートである。図９は、駆動処理における制御タイミングを示すタイミング図である。
ステップＳ１１０１１でパワーオン状態となると、ステップＳ１１００７において駆動命令がきたか否かを判断する。駆動命令がきた場合（ステップＳ１１００７／Ｙｅｓ）、すなわち、プリンタシステムにおいて駆動命令が発行されると、ステップＳ１１００１の処理に進む。
【００５３】
ステップＳ１１００１で駆動制御処理が開始されると、ステップＳ１１００２で駆動制御準備が行われる。ステップＳ１１００２における準備処理は、一般的にモータ制御タスクに記述される処理であり、駆動目的に適したテーブルの選択、駆動量に合致したT_FLATの設定、評価手段の結果を次回の駆動で使用する理想速度プロファイルに反映させる反映処理、各種ワーク領域の設定を行い、最後にタイマ割り込み処理を司るタイマに起動をかけて終了する。
【００５４】
ステップＳ１１００２においてタイマが起動されると、実駆動処理に移行する（ステップＳ１１００３）。ステップＳ１３は、一般にタイマ割り込み処理内に記述される処理であり、例えば１ｍｓｅｃごとに１回割り込んできて、エンコーダの値を読み出し、ＰＩＤ演算等によって出力すべき電流値を算出し、モータに対してその値を出力する。
【００５５】
ステップＳ１１００３の処理と並行して、システムにおいては停止位置S_STOPに到達したかどうかの監視が行われており、到達が検知されると駆動目標位置への到達検知処理（ステップＳ１１００４）を実行して割り込みが発生し、駆動制御終了処理（ステップＳ１１００５）へと移行する。
ステップＳ１１００５においては、モータに対する出力をいち早くディセーブルにしてからタイマを停止して処理を終了する。
【００５６】
図９において、１２００１は、図８におけるステップＳ１１００２及びステップＳ１１００５におけるモータ駆動タスクの状態、１２００２はステップＳ１１００３におけるタイマ割り込み処理の状態、１２００３はステップＳ１１００４における位置割り込みの状態を示している。
【００５７】
以上の各処理を行うことで、一つの駆動処理はステップＳ１１００６の駆動制御終了へと至ることとなる。
【００５８】
図１０は、以上説明した一般的な駆動処理の流れを副走査（ＬＦ）と主走査（ＣＲ）に対して各々適用し、さらに各々のタイミング管理について示した図である。
図１０における１１０１２は、ＬＦの駆動制御準備信号であり、１１０２２はＣＲの駆動制御準備信号である。両者とも、一般的な駆動処理における駆動制御準備処理（図８、ステップＳ１１００２）と同様の処理を、各駆動対象のモータに対して行うものである。１１０１３は、ＬＦの実駆動処理を実行するための信号であり、１１０２３はＣＲの実駆動処理を実行するための信号である。両者とも、一般的な駆動処理における実駆動処理（図８、ステップＳ１１００３）と同様の処理を、各駆動対象のモータに対して行うものである。
１１０１４は、ＬＦにおける駆動目標位置への到達検知信号であり、一般的な駆動処理における駆動目標位置への到達検知処理（図８、ステップＳ１１００４）と同様の処理を、ＬＦに対して行うものである。また、１１０１５は、ＬＦにおける駆動制御終了信号であり、一般的な駆動処理における駆動制御終了処理（図８、ステップＳ１１００５）と同様の処理をＬＦに対して行うものである。
【００５９】
１２０１１は、ＬＦモータ制御タスク状態を示し、１２０３１はＣＲモータ制御タスク状態を示し、一般的な駆動処理における駆動制御準備処理（図８、ステップＳ１１００２）と同様の内容をＬＦ、ＣＲの各々に関して記したものである。
１２０１２は、ＬＦタイマ割り込み処理状態を示し、１２０３２はＣＲタイマ割り込み状態を示し、一般的な駆動処理における駆動制御準備処理（図８、ステップＳ１１００２）と同様の内容をＬＦ、ＣＲの各々に関して記したものである。
１２０３３は、インク吐出処理の状態を記したものであり、インク吐出処理信号１２０３４が出力されている領域でインクの吐出、すなわち記録がなされていることを示している。
【００６０】
ここで、クロス記録制御を実現するために、ＬＦ駆動開始後、t_cross_startが経過した時点で、ＬＦ実駆動信号１１０１３を制御するＬＦ実駆動手段により、ＣＲモータ駆動開始指令イベント１２０２１が発行され、これを受けて駆動制御準備手段はＣＲの駆動制御信号１２０２２を発動する。こうして起動されたＣＲが記録開始位置に到達すると、インク吐出処理信号１２０３４が出力されている領域で記録が行われる。本図においてはこのときすでにＬＦは到達検知信号１１０１４によって停止しているため、斜行記録は発生しない。また到達検知信号１１０１４の直後にインク吐出処理信号１２０３４が発動するため、無駄な処理時間は一切存在しない。
【００６１】
以上により、最適なt_cross_startを設定することが、クロス制御の効率化の要であることがわかる。最適なt_cross_startを設定するためには、ＬＦの駆動の現実の所要時間を知ることが求められ、それは本図においては、理想減速制御領域９００１が終わってから停止するまでの実時間t_lf_allowと一意的に対応している。なぜなら、駆動開始から理想減速制御領域９００１の終了までの時間は固定値であり、実駆動による制定時間のばらつきは、t_lf_allowによってのみ表されるからである。
【００６２】
図１１は、本実施形態の制御周期変更処理の詳細を示したフローチャートである。図１２、図１３、図１４は、図１１のフローチャートによって示された処理におけるタイミング図である。
図１２、図１３、図１４において、横軸は時間を示しており、縦軸は各モータの速度を示している。図１２（ａ）、図１３、（ａ）、図１４（ａ）は、ＬＦに関するものであり、図１２（ｂ）、図１３（ｂ）、図１４（ｂ）はＣＲに関するものである。t_lf_flatは、記録データによって変化する紙送りの時間である。t_lf_flatは、可変の値であるが、既に説明したt_allowが外乱により変化する可変の値であるのとは異なり、外乱とは関係なく記録処理の論理的な要求（送り量は、記録データに依存してあらゆる値に変化しうるため）によってのみ変化する可変の値である。
【００６３】
T_CR_ADDは、ＣＲの加速所要時間であり、本実施形態においてはＣＲの加速性能が安定しており、その値を定数として扱うことが可能である場合について説明を行う。
t_cr_flatは記録データの左右端、記録方向、ＣＲの現在位置に基づいて決定される、ＣＲ加速終了からインク吐出処理が発動するまでの時間であり、各値の組み合わせによって自在に変化するが、その算出方法については公知であるため説明は省略する。
【００６４】
T_LF_APPROAFCHは、理想状態で想定される、減速終了から停止までの時間である。
T_CROSS_MARGINは、以下に述べる各計算において用いられるマージン値である。過去の制御で記録された制定時間の履歴を用いて、未来の制御において現出するであろう制定時間を推測する場合、ＤＣモータの制御は動的であり、加工の制御で記録された制定時間が未来に発生する全ての状況を約束するものではない。動的に変化している制御対象の制御を、より安全に推測するためには、過去の履歴を総括した上で制御対象の系において予測される変化の最大量としてあらかじめマージンを見込んでおくことが必要となる。T_CROSS_MARGINはそのマージンを意味している。
【００６５】
図１２は、クロスの深さを決める直接の値として、T_CROSS_PERFECTが支配的になった場合を示している。T_CROSS_PERFECTは、対象システムで想定される最も深いクロスの値を決める時間を決定する定数である。T_CROSS_PERFECTとT_CROSS_MARGINとを足し合わせた量が、対象システムにおいて許容される最も深いクロスの度合いとなる。すなわち、最も深くクロスする場合においても、理想減速制御領域が終了してから、（T_CROSS_PERFECT＋T_CROSS_MARGIN）を経過する前に、インク吐出処理が発動することは許さない。T_CROSS_PERFECTは、このタイミング管理を保証するための値である。
【００６６】
完全に理想的な系においては、T_CROSS_MARGINは０、T_CROSS_PERFECTはT_LF_APPROACHと等しくできる。
【００６７】
これは、仮にT_LF_APPROACHを下回る時間でＬＦが停止したとしても、その短い時間を裏付けにして次のクロス制御を行ってしまった場合、斜行記録が発生してしまう危険性があることを憂慮している。なぜなら、減速終了から停止までの時間をT_LF_APPROACHを理想として制御している以上、仮にそれより短い時間でＬＦが停止するという事象が発生しても、それを裏づけにして次の駆動を行うことは危険であるからである。
【００６８】
図１４は、クロスの深さを決める直接の値として、T_CROSS_ENABLEが支配的になった場合を示している。T_CROSS_ENABLEは、システムが正常な状態で想定される。最も長いLFの制定時間を鑑みて設定する定数時間値である。理想減速制御領域が終了してからT_CROSS_ENABLEが経過しても停止しないような駆動が検出された場合、ＬＦは異常状態であると判定し、推定処理では対応不可能な動作をしているものとして扱う。すなわち、過去の履歴が未来の駆動に対して何の裏づけにも成り得ないという状況である。このような状況においては、いかなる浅いクロス制御といえども斜行記録を引き起こす可能性があるため、クロス制御は禁止される。
【００６９】
図１３は、クロスの深さを決める直接の値として、t_lf_allow_maxが支配的となった場合を示している。t_lf_allow_maxは、過去の履歴から導き出された理想減速速度制御領域が終了してから停止までの最も長い所要時間である。過去の履歴が完全に未来の駆動を保証するのであれば、この値を持ってクロスの深さを決定できるが、ＤＣモータの制御が動的であることを鑑みて、本実施形態ではこの値にT_CROSS_MARGINを加えた数値により、次にクロス制御の深さを決めようとしている。
【００７０】
以上の動作を実現する具体的な処理について、図１１を用いて説明する。
ステップＳ１３００１で装置がパワーオンされると、ステップＳ１３００２において領域の初期化を行う。ここで、mem_t_lf_allow[N]は、過去Ｎ回の駆動で記録されたt_lf_allowを格納する記憶領域である。ステップＳ１３００２では、ここに初期値Ｔ＿ＬＦ＿ＡＬＬＯＷ＿ＩＮＩＴ０〜Ｔ＿ＬＦ＿ＡＬＬＯＷ＿ＩＮＩＴＮを格納する。
ステップＳ１３００３において、記録（ＬＦとＣＲとの両方を駆動する）命令が来たか否かを調べ、来ていればステップＳ１３０１１に進み、不要なクロス制御を禁止してＬＦの駆動を行い、ＬＦ時に検出されたt_lf_allowを記録する。
【００７１】
次に、ステップＳ１３００５以降の処理の詳細について説明する。
ステップＳ１３００５においては、まず記録データの左右端、記録方向、ＣＲの現在位置に基づき、t_cr_flatを計算する。さらにステップＳ１３００６に進み、mem_t_lf_allow[N]内の最大値を摘出してt_lf_allow_maxに代入する。
【００７２】
ステップＳ１３００７で、t_lf_allow_maxとT_CROSS_ENABLEとを比べ、前者が大きければステップＳ１３０１１に進んでクロス制御を禁止するための設定cross_sw=DISABLEを行う。さもなければ、ステップＳ１３００８に進み、クロス制御を有効にするための設定cross_sw_=ENABLEを行い、ステップＳ１３００９に進む。
【００７３】
ステップＳ１３００９で、t_lf_allow_maxとT_CROSS_PERFECTとを比べ、前者が大きければステップＳ１３０１２へ進んでt_lf_allow_maxをよりどころとしてt_cross_startを決めるための計算を行い、ステップＳ１１０１２へ進む。さもなければ、ステップＳ１３０１０へ進み、T_CROSS_PERFECTをよりどころにしてt_cross_startを決めるための計算を行い、ステップＳ１１０１２へ進む。
【００７４】
ステップＳ１３０１３のワーク領域設定処理でＬＦの駆動に必要なフィードバック制御のゲイン設定等の各種設定を行い、ステップＳ１３０１４でタイマを起動する。ステップＳ１３０１３とステップＳ１３０１４とを総合すると、既に説明した図１１のステップＳ１１０１２に相当する。
【００７５】
ステップＳ１３０１５は、図１１におけるステップＳ１１０１３においてなされる処理であり、cross_sw=ENABLEの場合に限り、タイマ起動後t_cross_startが経過した瞬間にＣＲモータ制御タスクに対して駆動開始指令のイベントを発行する。
【００７６】
ステップＳ１３０１７〜ステップＳ１３０１９は、図１１における駆動制御の終了処理（ステップＳ１１０１５）に相当する処理である。
【００７７】
ステップＳ１３０１７で、ＣＲモータ制御タスクに対して駆動開始指令イベントを発行する。ステップＳ１３０１５においてcross_sw_DISABLEであるが故に駆動開始指令イベントが未発行である場合に限り、ステップＳ１３０１７によりＣＲ駆動を開始する。
ステップＳ１３０１８、Ｓ１３０１９で、mem_t_lf_allow[N]内の情報を一つずつシフトし、最も古いデータは破棄し、最新の値を代わりに記憶する。
【００７８】
以上説明した動作により、図１２、図１３、図１４に示した動作が実現される。
なお、以上説明した処理において、初期値Ｔ＿ＬＦ＿ＡＬＬＯＷ＿ＩＮＩＴ０〜Ｔ＿ＬＦ＿ＡＬＬＯＷ＿ＩＮＩＴＮの設定がもつ意味について補足説明する。
これらの設定を適切な値に設定することにより、パワーオン後のクロスの値をフレキシブルに設定できる。例えば、量産のばらつきの大きい製品においては、この初期値をあらかじめ大きめに設定することで、パワーオン直度の斜行記録の危険を確実に回避し、その上で個体に見合ったt_lf_allowをmem_t_lf_allow[N]内に蓄積していくことで、斜行記録を回避した上で各個体のポテンシャルを最大限に引き出してやることが可能である。
【００７９】
また、T_LF_ALLOW_INIT0〜T_LF_ALLOW_INITNのうち、最初の数値のみを大きめに設定することで、パワーオン直後の走査に対する斜行記録の危険回避に対するマージンだけを大きくし、それ以降はすぐに個体に見合った実測値のt_lf_allowが支配的になるようにして、個体のポテンシャルがより早く発揮されるようにチューニングすることも可能である。
【００８０】
図４に示すＰＩＤ制御手順は、ＣＰＵ上のプログラムによって実現され、これはある制御周期ごとに離散的に行われる。この制御周期が、例えば１ｍｓｅｃであるとすれば、これを２ｍｓｅｃとすることにより、制御手順を実現するためのＣＰＵ処理時間はほぼ半分となる。しかしながら、制御周期を単に倍にすると、応答が悪くなり、加減速中の追従性や停止制度など制御性への悪影響が懸念される。
そこで、制御周期が長くても問題の無い部分のみ制御周期を長く設定し、細やかな応答が必要である部分では制御周期を短く設定することにより、制御性へ悪影響を与えることなく、サーボ制御に費やすＣＰＵ処理の比率を低減できる。
【００８１】
制御周期が長くなることで問題のある部分の一つは、加速度が変化する部分での応答性である。図１５は、速度目標値（ａ）が加速してから等速に変化した時の速度変化を示しており、縦軸は速度、横軸は時間を示している。図中（ｂ）は制御周期１ｍｓｅｃで、（ｃ）は制御周期３ｍｓｅｃで制御を行ったものである。ただし、制御の条件を同じにするため、（ｃ）ではＰＩＤ制御のＩゲインを３倍にして使用している。このとき（ｃ）は、（ｂ）に対してオーバシュートが大きく、追従性が悪くなっている。
【００８２】
そこで図１６では、速度目標（ｄ）に対して、通常は（ｅ）のように制御周期３ｍｓｅｃで制御を行い、速度目標（ｄ）の加速度が切り替わるタイミングから始まる区間（ｆ）で、制御周期１ｍｓｅｃの制御を行うことで、（ｇ）のようにオーバシュートが大きくならないようにしている。すなわち、被駆動体が加速から等速に変わる際に制御周期を短くする。
ここで、区間（ｆ）の開始タイミングは、加速後に等速の目標速度から一定速度以内に近づいた時などであり、この他のタイミングであっても良い。また、区間（ｆ）の終了タイミングは、開始から一定の経過時間や移動距離でも良いし、速度と速度目標値との偏差が一定値以内である状態が一定時間継続した場合など、速度変動が十分に収まって安定したことが確認されたタイミングであっても良い。
すなわち、短い制御周期で制御を行う区間（ｆ）は、被駆動体に作用する加速度が変化し、等速運動を開始する時点を含むように設定されるべきものであり、その開始タイミングや終了タイミングは、要求される制御精度に応じて設定すればよい。換言すると、制御周期を短くしなければオーバシュートが発生している期間を含むように、制御周期が短い期間を設定することにより、追従性を向上させることができる。
【００８３】
制御周期が長くなることで問題のある他の部分として、目標速度の切換タイミングへの反応が鈍くなることがあげられる。図１７は、速度目標値（ｉ）が等速から減速に変化した時の速度の変化を示しており、上記同様に（ｊ）は制御周期１ｍｓｅｃで、（ｋ）では制御周期３ｍｓｅｃで制御を行っている。このとき（ｊ）は図１７に（ｌ）で示すタイミングで減速のための制御を開始するが、（ｋ）は（ｍ）で示すタイミングで減速の制御を開始するため、（ｊ）よりも等速のまま進んでしまう時間が長く、結果として速度目標への追従性が悪くなっている。
【００８４】
そこで、図１８では、ここでの速度目標の減速開始は位置によって決まるものとして、位置が減速開始位置からある距離以内に入ったタイミングから始まる区間（ｐ）で制御周期１ｍｓｅｃで制御を行うことで、速度目標（ｎ）への追従性を良くしている。すなわち、被駆動体が等速から減速に変わる際にサーボ制御周期を短くする。
ここで区間（ｐ）の開始タイミングは、例えば、所定位置近辺で反応するセンサが反応した時に速度目標を減速を開始する場合に、センサが反応すると想定される位置に近づいたタイミングで開始するなどの決め方でよい。また、区間（ｐ）の終了タイミングは開始から一定の経過時間や移動距離でも良いし、速度の変化から実際に減速を開始したことを確認できたタイミングであっても良い。
すなわち、短い制御周期で制御を行う区間（ｐ）は、被駆動体に加速度が作用して減速を開始する時点を含むように設定されるべきものであり、その開始タイミングや終了タイミングは、要求される制御精度に応じて設定すればよい。換言すると、等速運動をしていた被駆動体に作用する加速度が変化する瞬間を含むように、制御周期が短い期間を設定することにより、追従性を向上させることができる。
【００８５】
制御周期が長くなることで問題のある部分のもう一つとして、位置決め精度があげられる。制御周期と位置を読み取る間隔は同じであるため、制御周期が長い場合には、読み取り間隔の間に停止位置目標を通り越してしまう可能性が高くなり、位置合わせにかかる時間が増大したり、振動的になったりする可能性がある。そこで、停止目標位置までの距離が一定の範囲内になったタイミング（換言すると、被駆動体が停止する直前）で制御周期を短くすることで、これを防ぐことができる。制御周期を短くするタイミングは、あらかじめ計算された目標位置に近づくと予想される時間を用いたり、別途センサを使用して決まるタイミングを用いたりしても良い。なお、ここでの「停止目標位置までの一定の距離」は、被駆動体の移動速度（単位時間当たりの移動量）に応じて変わるため、制御周期を短くし始めるタイミングは、要求される制御精度に応じて設定すればよい。
【００８６】
これらをまとめると、被駆動体に作用する加速度が変化する場合（加速→等速、等速→減速）や、目標位置までの距離が制御周期の間の被駆動体が移動量に近づいた場合に制御周期を短くすることで、オーバシュートの発生を抑制しつつ、ＣＰＵ負荷を低減できることとなる。
より詳しくは、被駆動体に作用する加速度が変化する場合、制御周期を短くする期間は、加速度が変化する瞬間を含むようにすることが好ましいが、加速度が変化した後の非定常状態となっている間を含む期間とすることにより、制御誤差を低減できる。一方、目標位置に近づいた場合には、被駆動体の速度や要求される制御精度に応じた位置に被駆動体が到達した時点から制御周期を短くすることにより、制御誤差を低減できる。
【００８７】
このように、本発明によれば、サーボ制御のためのデジタル演算にＣＰＵを使用する場合に、デジタル演算に費やすＣＰＵ負荷を装置のコストを増大させることなく低減できるため、例えばインクジェットプリンタのようなサーボ制御と画像処理などその他の処理とを同一のＣＰＵ上で行う装置を、安価で高性能なものとできる。
【００８８】
また、サーボ制御の速度目標の加速度が大きく切り替わる際に追従性が悪くなる、いわゆるオーバシュートを誘発することなく、サーボ制御に費やすＣＰＵ負荷を低減できるため、例えばインクジェットプリンタのようなサーボ制御と画像処理などのその他の処理とを同一のＣＰＵ上で行う装置を、安価で高性能なものとできる。
【００８９】
また、サーボ制御の速度目標の切り替わりタイミングの検出精度を悪化させることなく、サーボ制御に費やすＣＰＵ負荷を低減できるため、例えばインクジェットプリンタのようなサーボ制御と画像処理などのその他の処理とを同一のＣＰＵ上で行う装置を、安価で高性能なものとできる。
【００９０】
さらに、サーボ制御の位置決め精度を悪化させることなく、サーボ制御に費やすＣＰＵ負荷を低減できるため、例えばインクジェットプリンタのようなサーボ制御と画像処理などのその他の処理とを同一のＣＰＵ上で行う装置を、安価で高性能なものとできる。
【００９１】
なお、上記実施形態は本発明の好適な実施の一例であり、本発明はこれに限定されることなく様々な変形が可能である。
【図面の簡単な説明】
【００９２】
【図１】プリンタの制御構成を示す図である。
【図２】プリンタコントローラの詳細構成を示す図である。
【図３】一般的なＤＣモータの位置制御系の構成を示す図である。
【図４】一般的なＤＣモータの速度サーボにおける制御系を示す図である。
【図５】停止直前速度が平均的且つ理想的な値で終了する場合の時間と速度及び位置との関係を示す図である。
【図６】見込みよりも早く終了する場合の時間と速度及び位置との関係を示す図である。
【図７】見込みよりも遅く終了する場合の時間と速度及び位置との関係を示す図である。
【図８】駆動処理の流れを示すフローチャートである。
【図９】駆動処理における制御タイミングを示す図である。
【図１０】一般的な駆動処理の流れを主副走査にそれぞれ適用した場合の各々のタイミングを示す図である。
【図１１】制御周期変更処理の動作の流れを示す図である。
【図１２】クロスの深さを決める直接の値として、T_CROSS_PERFECTが支配的になった場合の信号のタイミングを示す図である。
【図１３】クロスの深さを決める直接の値として、t_lf_allow_maxが支配的となった場合の信号のタイミングを示す図である。
【図１４】クロスの深さを決める直接の値として、T_CROSS_ENABLEが支配的になった場合の信号のタイミングを示す図である。
【図１５】制御周期とオーバシュートの大きさとの関係を示す図である。
【図１６】速度目標の加速度が切り替わるタイミングから始まる区間で、制御周期を短くした場合のオーバシュートを示す図である。
【図１７】制御周期による速度目標切替時の追従性の差を示す図である。
【図１８】位置が減速開始位置からある距離以内に入ったタイミングから始まる区間で制御周期を短くした場合の追従性を示す図である。
【符号の説明】
【００９３】
２３１    ホストインタフェース
４０１    ＣＰＵ
４０２    ＲＯＭ
４０３    ＲＡＭ
４０４    プリンタヘッド
４０５    モータドライバ
４０６    プリンタヘッド
４０７    温度センサ
５０１    Ｉ／Ｏデータレジスタ
５０２    受信バッファコントローラ
５０３    記録バッファコントローラ
５０４    メモリコントローラ
５０５    プリントシーケンスコントローラ
６００１、７００１    理想位置プロファイル
６００２    比例演算部
６００３、７００２    ＰＩ演算部
６００４、６００８    ＤＣモータ
６００５    エンコーダセンサ
６００６    エンコーダ速度情報変換部
６００７、７００３    微分演算部
６００９    エンコーダ位置情報変換部
【図１】
2008299426.tif 000003
【図２】
2008299426.tif 000004
【図３】
2008299426.tif 000005
【図４】
2008299426.tif 000006
【図５】
2008299426.tif 000007
【図６】
2008299426.tif 000008
【図７】
2008299426.tif 000009
【図８】
2008299426.tif 000010
【図９】
2008299426.tif 000011
【図１０】
2008299426.tif 000012
【図１１】
2008299426.tif 000013
【図１２】
2008299426.tif 000014
【図１３】
2008299426.tif 000015
【図１４】
2008299426.tif 000016
【図１５】
2008299426.tif 000017
【図１６】
2008299426.tif 000018
【図１７】
2008299426.tif 000019
【図１８】
2008299426.tif 000020