以下に本発明の実施例について、図面と共に説明する。
本実施例の画像形成装置1は、インクジェットプリンタであり、図1に示すように、用紙搬送機構10と、キャリッジ搬送機構20と、記録ヘッド30と、モータドライバDR1,DR2と、ヘッド駆動回路DR3と、エンコーダ信号処理部SP1,SP2と、制御ユニット40と、を備える。
用紙搬送機構10は、印刷対象の用紙Qを、副走査方向に沿って記録ヘッド30による画像形成地点に搬送するためのものであり、動力源としてのLFモータ(直流モータ)M1と、用紙Qの搬送量を検出するためのロータリエンコーダE1と、を備える。この用紙搬送機構10は、図2(A)に示すように、搬送ローラ101と、搬送ローラ101に対向配置されるピンチローラ102と、排紙ローラ104と、排紙ローラ104に対向配置されるピンチローラ105と、プラテン107と、を更に備える。
用紙搬送機構10は、画像形成装置1が備える図示しない給紙機構から給紙された用紙Qを、搬送ローラ101とピンチローラ102との間に挟持し、この状態で搬送ローラ101をLFモータM1から発生する動力を用いて回転させることにより、用紙Qを、プラテン107に沿って、記録ヘッド30による画像形成地点(インク液滴の吐出地点)に搬送する。尚、所謂インクジェットヘッドとしての記録ヘッド30は、プラテン107上方において、用紙Qの搬送方向である副走査方向とは直交する主走査方向(図2(A)紙面法線方向)に移動可能に設けられている(詳細後述)。
そして、プラテン107よりも用紙搬送方向下流に設けられた排紙ローラ104は、搬送ローラ101とベルト等で連結されており、LFモータM1からの動力は、搬送ローラ101及び排紙ローラ104の両者に伝達する。即ち、用紙搬送機構10では、搬送ローラ101と排紙ローラ104とが、共にLFモータM1からの動力を受けて、互いに連動するように回転する。
排紙ローラ104は、LFモータM1からの動力を受けて、搬送ローラ101と同期回転し、搬送ローラ101からプラテン107に沿って搬送されてくる用紙Qを、ピンチローラ105との間で挟持し、更に用紙Qを副走査方向下流の排紙トレイ側に搬送する。排紙ローラ104の副走査方向下流には、図示しない排紙トレイが設けられており、用紙Qは、このような搬送ローラ101及び排紙ローラ104の回転動作により搬送されて、最終的に、排紙トレイに排出される。
また、ロータリエンコーダE1は、周知のインクリメンタル型のロータリエンコーダであり、搬送ローラ101の回転軸上に取り付けられた回転板(図示せず)を備え、回転板に形成されたスリットを読み取って、読取結果に応じたエンコーダ信号を出力する。即ち、ロータリエンコーダE1は、上記エンコーダ信号として、搬送ローラ101が所定量回転する度にパルス信号を出力し、これをエンコーダ信号処理部SP1に入力する。
また、エンコーダ信号処理部SP1は、ロータリエンコーダE1から入力されるパルス信号を検出する度に、位置カウント値X1を1インクリメント又は1デクリメントすることにより、搬送ローラ101の回転量、換言すれば、搬送ローラ101の回転位置を検出し、この検出値を位置カウント値X1として保持するものである。具体的に、エンコーダ信号処理部SP1は、搬送ローラ101が用紙搬送方向に正回転している場合には、パルス信号を検出する度に、位置カウント値X1を1インクリメントし、搬送ローラ101が逆回転している場合には、パルス信号を検出する度に位置カウント値X1を1デクリメントする。
尚、用紙Qは、基本的には、搬送ローラ101との間で滑りが発生しないように搬送されるため、上記エンコーダ信号から特定可能な搬送ローラ101の回転量は、用紙Qの搬送量に対応する。本実施例では、このロータリエンコーダE1を用いて搬送ローラ101の回転量を検出することで、用紙Qの搬送量を間接的に特定する。また、図示しないが、画像形成装置においては、一般的に搬送ローラ101の近傍に用紙Qの先端を検知するためのセンサが設けられる。搬送ローラ101による用紙Qの搬送量は、例えば、このセンサの出力信号とロータリエンコーダE1から得られるエンコーダ信号とに基づいて特定される。例えば、エンコーダ信号処理部SP1は、位置カウント値X1として、上記センサにより用紙Qの先端が検知された時点からのインクリメント動作及びデクリメント動作によって得られた値を保持する構成にすることができる。
本実施例の制御ユニット40は、このエンコーダ信号処理部SP1が保持する搬送ローラ101の位置カウント値X1に基づいて、LFモータM1に対する操作量Uを算出し、この操作量UをモータドライバDR1に入力することにより、LFモータM1の駆動制御、ひいては、搬送ローラ101の回転制御及び用紙Qの搬送制御を実現する。モータドライバDR1は、このようにして制御ユニット40から入力される操作量Uに対応する駆動電流をLFモータM1に印加することにより、LFモータM1を駆動する。
一方、キャリッジ搬送機構20は、記録ヘッド30を搭載したキャリッジ201を主走査方向に往復動させるためのものであり、図1に示すように、動力源としてのCRモータ(直流モータ)M2と、キャリッジ201の位置を検出するためのリニアエンコーダE2と、を備える。このキャリッジ搬送機構20は、図3(A)に示すように、記録ヘッド30を搭載したキャリッジ201と、ガイド軸203と、ベルト機構210と、キャップ機構220と、を更に備える。
ガイド軸203は、キャリッジ201の移動を主走査方向に規制するものであり、主走査方向に長尺に形成されたものである。キャリッジ201は、このガイド軸203に挿通されて、移動を主走査方向に規制される。
また、ベルト機構210は、CRモータM2から発生した動力をキャリッジ201に伝達するものであり、CRモータM2に駆動される駆動プーリ211と、従動プーリ212と、駆動プーリ211と従動プーリ212との間に巻回されたベルト213と、を備える。駆動プーリ211には、CRモータM2がギヤを介して接続されており、駆動プーリ211は、CRモータM2から発生する動力を、ギヤを介して受けて回転する。この駆動プーリ211の回転によって、駆動プーリ211と従動プーリ212との間に巻回されたベルト213は、CRモータM2からの動力を間接的に受けて回転し、従動プーリ212は、ベルト213を介して、駆動プーリ211に従動する。
ベルト213には、キャリッジ201が接続固定されている。従って、CRモータM2が回転すると、ベルト213の回転に連動し、キャリッジ201は、主走査方向に移動する。本実施例のキャリッジ搬送機構20は、このような機械的構成により、キャリッジ201を主走査方向に搬送する。
また、キャリッジ搬送機構20が備えるキャップ機構220は、キャリッジ201のホームポジションに設けられており、具体的には、ベルト機構210によるキャリッジ201の搬送路の一端に設けられている。このキャップ機構220は、図3(B)に示すように、キャリッジ201がホームポジションに近づくに従って、記録ヘッド30のノズル面30aを被覆するためのキャップ223をノズル面30aに近づくように上昇させ、キャリッジ201がホームポジションから遠ざかるに従って、キャップ223をノズル面30aから外すように降下させる機械的構造を有する。このキャップ機構220によれば、キャップ223による記録ヘッド30のノズル面30aの被覆により、ノズル面30aにおける乾燥が抑えられ、インク詰まり等が抑制される。
ここで、キャップ機構220の構成について詳述すると、本実施例のキャップ機構220は、モータ等の動力を直接的には用いずに、キャリッジ201からの押圧力及びキャップ機構220の自重及びバネの付勢力によりキャップ223を昇降させる機械的構造を有する。即ち、キャップ機構220は、キャップ223を備える水平状の下部構成体221aと、この下部構成体221aから上方に立設された、キャリッジ201からの押圧力を受ける上部構成体221bと、を備えた概略L字形状のキャップ機構本体221を備える。また、キャップ223と下部構成体221aとの間には、キャップ223を上方に付勢するコイルバネ224aが配置されている。また、不図示の装置筐体と上部構成体221bとの間には、上部構成対体221bを印字領域側に付勢するコイルバネ224bが配置されている。更に、キャップ機構220は、この下部構成体221aに接続された4本のリンク225を備える。このリンク225は、キャップ機構本体221の下部構成体221a、及び、下部構成体221aより下方に位置する画像形成装置1の部位に対して、回動可能に接続される。
このように構成されたキャップ機構220では、図3(B)に示すように、キャリッジ201がキャップ機構220に接近し、コイルバネの付勢力に逆らって上部構成体221bを主走査方向に押圧し始めると、リンク225が回動して、キャップ機構本体221が上昇し、これに伴ってキャップ223が記録ヘッド30のノズル面30aに向かって上昇する。そして、キャリッジ201がホームポジションで停止する直前で(図3(B)下段参照)、キャップ223が記録ヘッド30のノズル面30aを完全に被覆し、更に、この状態から下部構成体221aが持ち上げられコイルバネ224aを撓ませて、キャッピング動作を完了する。一方、キャリッジ201がキャップ機構220から遠ざかると、キャリッジ201の移動に合わせて、コイルバネ224a,224bの付勢力を受けながらリンク225がキャップ機構本体221の重みにより回動し、キャップ機構本体221が下降する。この動作により、キャップ223は、下降し、記録ヘッド30のノズル面30aから外れる。本実施例のキャップ機構220は、このような動作により、ホームポジションで記録ヘッド30のノズル面30aを被覆する。コイルバネ224a,224bの付勢力は、その伸縮状態によって変化する。そのため、キャップ機構220の昇降の間にキャリッジ201に対する負荷の変動が発生しやすい。
また、リニアエンコーダE2は、ガイド軸203に併設された主走査方向に長尺なエンコーダスケール230と、キャリッジ201に固定されたセンサ部(図示せず)とを備え、センサ部によりエンコーダスケール230を読み取って、キャリッジ201の移動に応じたパルス信号をエンコーダ信号として出力するものである。即ち、リニアエンコーダE2は、キャリッジ201が所定量主走査方向に移動する度に、センサ部から上記エンコーダ信号としてのパルス信号を出力し、このパルス信号をエンコーダ信号処理部SP2に入力する。
エンコーダ信号処理部SP2は、リニアエンコーダE2から入力されるパルス信号を検出する度に、位置カウント値X2を1インクリメント又は1デクリメントすることにより、キャリッジ201(換言すれば記録ヘッド30)の位置を検出し、この検出値を位置カウント値X2として保持する一方、リニアエンコーダE2から入力されるパルス信号の入力間隔からキャリッジ201の速度を検出して、この検出値を速度値V2として保持するものである。例えば、エンコーダ信号処理部SP2は、キャリッジ201がホームポジションに向かう方向に移動している場合には、パルス信号を検出する度に、位置カウント値X2を1インクリメントし、キャリッジ201がホームポジションから離れる方向に移動している場合には、パルス信号を検出する度に、位置カウント値X2を1デクリメントする。
本実施例の制御ユニット40は、このエンコーダ信号処理部SP2が保持するキャリッジ201の位置カウント値X2又は速度値V2に基づいて、CRモータM2に対する操作量Uを算出し、この操作量UをモータドライバDR2に入力することにより、CRモータM2の駆動制御、ひいては、キャリッジ201及び記録ヘッド30の搬送制御を実現する。モータドライバDR2は、このようにして制御ユニット40から入力される操作量Uに対応する駆動電流をCRモータM2に印加することにより、CRモータM2を駆動する。
尚、操作量Uとして、電圧値が設定されてもよい。
また、制御ユニット40は、画像形成装置1全体を統括制御するものであり、上述したCRモータM2及びLFモータM1の駆動制御に加えて、記録ヘッド30によるインク液滴の吐出動作を、ヘッド駆動回路DR3を介して制御する処理を実行することにより、外部のパーソナルコンピュータ(PC)3から入力された印刷対象の画像データに基づく画像を、用紙Qに形成する。
即ち、制御ユニット40は、PC3から印刷対象の画像データが入力されると、図示しない給紙機構を通じて給紙トレイに載置された用紙Qを一枚分離し、用紙搬送機構10に供給する。更に、LFモータM1の駆動制御を行うことにより、用紙搬送機構10に供給された用紙Qの先頭を、記録ヘッド30による画像形成地点まで頭出しする。一方、CRモータM2の駆動制御を行うことにより、キャリッジ201及び記録ヘッド30を、ホームポジションから、ホームポジションとはキャリッジ搬送路の反対側の地点であるキャリッジ搬送開始地点に搬送する。
その後、制御ユニット40は、CRモータM2の駆動制御を行って、キャリッジ201をホームポジション手前の折返し地点までホームポジションに向かう方向に定速搬送する一方、定速搬送時には、ヘッド駆動回路DR3を介して記録ヘッド30によるインク液滴の吐出動作を制御することにより、所定ライン分の画像を用紙Qに形成する。また、記録ヘッド30による所定ライン分の画像形成動作が完了した時点から、LFモータM1の駆動制御により、用紙Qを上記所定ライン分副走査方向に搬送し、用紙Qの搬送動作の完了に合わせて、CRモータM2の駆動制御により、キャリッジ201を前回とは反対方向に、折返し地点まで定速搬送し、その定速搬送時には、ヘッド駆動回路DR3を介して記録ヘッド30によるインク液滴の吐出動作を制御することにより、所定ライン分の画像を用紙Qに形成する。制御ユニット40は、このような制御を繰り返し実行することにより、所定ラインずつ用紙Qに印刷対象の画像データに基づく画像を形成する。そして、用紙Q全体に対する画像形成動作が完了すると、CRモータM2の駆動制御により、キャリッジ201をホームポジションまで搬送して、記録ヘッド30をキャッピングする一方、LFモータM1の駆動制御を行って、用紙Qを排紙トレイまで排出する。制御ユニット40は、このような制御により、用紙Qに印刷対象の画像データに基づく一連の画像を形成する。
さて、本実施例のような画像形成装置1では、高画質モード等で用紙Qに画像を形成する際、用紙Qを所定ラインずつ正確に送り出すことが要求される。即ち、用紙Qを高精度に目標位置に停止させることが要求される。また、上述した構成のキャップ機構220により記録ヘッド30に対してキャッピングを行う場合には、超低速でキャリッジ201を搬送しないと記録ヘッド30のノズル面がキャップ223と擦れて傷つく可能性がある。このことは、キャップ機構220から離れる方向にキャリッジ201を搬送するときも同様である。また、キャップ機構220周辺ではキャリッジ201を超低速で搬送しないと、キャップ機構220とキャリッジ201が接触するときの衝撃等で、メニスカスブレイクが生じて、次のインク液滴の吐出動作に際して支障が生じる可能性がある。
そこで、本実施例では、図2(B)に示すように、高画質モード等で用紙Qを所定量正確に送り出すケースや、図3(A)及び図3(B)に示すように、キャリッジ201をキャップ機構220周辺で搬送するケースでは、図4に示す微小駆動処理を制御周期(サンプリング周期)毎に繰り返し実行することにより、位置カウント値X1,X2が1変化する毎に、駆動対象(搬送ローラ101又はキャリッジ201)を一旦停止させるような駆動制御を行う。これによって、駆動対象を超低速で微小駆動して、駆動対象を目標位置に正確に停止させる。
以下では、微小駆動処理による搬送ローラ101及びキャリッジ201の駆動制御の内容に関して、共通するフローチャートでまとめて説明するために、搬送ローラ101及びキャリッジ201を、単に「駆動対象」と表現する。また、駆動対象を駆動するためのLFモータM1及びCRモータM2のことを、モータMと表現し、モータドライバDR1,DR2のことを、モータドライバDRと表現し、駆動対象の変位を検出するためのロータリエンコーダE1及びリニアエンコーダE2のことを、エンコーダEと表現し、エンコーダ信号処理部SP1,SP2のことを、エンコーダ信号処理部SPと表現し、エンコーダ信号処理部SP1,SP2が保持する位置カウント値X1,X2のことを、位置カウント値Xと表現する。即ち、以下では、モータM、モータドライバDR、エンコーダE、エンコーダ信号処理部SP、及び位置カウント値Xとの表現の夫々を、駆動対象が搬送ローラ101である場合には、モータM1、モータドライバDR1、エンコーダE1、エンコーダ信号処理部SP1及び位置カウント値X1と、駆動対象がキャリッジ201である場合には、モータM2、モータドライバDR2、エンコーダE2、エンコーダ信号処理部SP2及び位置カウント値X2と解釈されたい。この他、以下では、駆動対象が目的の方向(即ち目標位置に近づく方向)に変位することを「前進」と表現し、駆動対象が目的の方向とは逆方向(即ち目標位置から離れる方向)に変位することを「後退」と表現し、駆動対象を前進させる方向の動力が働く操作量を正値として表現するので留意されたい。
図4に示す微小駆動処理は、駆動対象が目標位置に到達するなどして予め定められた微小駆動処理の実行終了条件が満足されるまで、制御ユニット40により制御周期毎に繰り返し実行される。そして、この微小駆動処理によっては、モータドライバDRに入力する操作量Uを制御周期毎に規定量Uincずつ増加させるが、位置カウント値Xが、駆動対象が前進する方向に変化すると、モータドライバDRに入力する操作量Uを、予め設定された減少幅Ugap分だけ減少させた操作量U=U[前回値]−Ugapに切り替えて、その切替後の操作量Uから再度、モータMに入力する操作量Uを規定量Uincずつ漸次増加させる。
制御ユニット40は、制御周期毎に実行する上記微小駆動処理において、まず入出力処理を実行する(S110)。入出力処理では、前回算出したモータMに対する操作量UをモータドライバDRに入力することによって、モータドライバDRに、当該操作量Uに一致する駆動電流をモータMに印加させる。一方で、入出力処理では、エンコーダ信号処理部SPから現在の位置カウント値Xを取得して記憶する。但し、制御ユニット40は、初回の微小駆動処理のために、前回算出して記憶した操作量Uがない場合には、操作量U=0をモータドライバDRに入力する。尚、ここでいう「初回」とは、制御周期毎に繰り返し実行される周期的な微小駆動処理の最初の実行回のことである。即ち、一旦、周期的な微小駆動処理の実行が上記微小駆動処理の実行終了条件が満足されて終了した後、再度、微小駆動処理の実行開始条件が満足されて実行される微小駆動処理についての1回目の実行は、ここでいう「初回」の実行に該当する。
この入出力処理を終えると次に、制御ユニット40は、今回のS110で取得した位置カウント値Xと、前回のS110で取得して記憶した位置カウント値Xとを比較することにより、駆動対象が所定量前進したか否かを判断する(S120)。即ち、今回取得した位置カウント値Xが前回取得した位置カウント値Xに対して、駆動対象が前進する方向に1以上変化しているか否かを判断する。尚、ここでいう「所定量」とは、エンコーダ信号1パルス分に相当する駆動対象の変位量のことである。但し、制御ユニット40は、初回の微小駆動処理のために、前回取得した位置カウント値Xがない場合には、S120において、形式的に、駆動対象が所定量前進していないと判断する。
そして、駆動対象が所定量前進したと判断すると(S120でYes)、S200に移行し、駆動対象が所定量前進していないと判断すると(S120でNo)、S130に移行する。また、S130において、制御ユニット40は、タイマ値Trを1インクリメントして更新する(Tr←Tr+1)。尚、タイマ値Trは、初回の微小駆動処理の実行前に制御ユニット40によって0に初期化される変数である。このタイマ値Trは、制御ユニット40により記憶され更新される。
その後、制御ユニット40は、今回のS110で取得した位置カウント値Xと前回のS110で取得した位置カウント値Xとを比較することにより、駆動対象が所定量後退したか否かを判断する(S140)。即ち、今回取得した位置カウント値Xが前回取得した位置カウント値Xに対して、駆動対象が後退する方向に1以上変化しているか否かを判断する。尚、ここでいう「所定量」の意味は、S120で説明した通りである。S120の処理と同様、制御ユニット40は、初回の微小駆動処理のために、前回取得した位置カウント値Xがない場合には、S140において、形式的に、駆動対象が所定量後退していないと判断する。
そして、駆動対象が所定量後退していないと判断すると(S140でNo)、制御ユニット40は、S160に移行して、次回モータドライバDRに入力する操作量Uとして、S110で今回モータドライバDRに入力した操作量Uに、規定量Uincを加算した値を算出する(U←U+Uinc)。尚、規定量Uincについては、予め設計段階で設計者により定められる。但し、この規定量Uincを、小さく設定し過ぎると駆動対象を前進させるのに長い時間を要してしまう。このため、規定量Uincについては、求められる制御精度と駆動速度との関係に基づき、必要があれば実験等を行って、定められるとよい。
一方、駆動対象が所定量後退したと判断すると(S140でYes)、制御ユニット40は、S150に移行して、操作量Uの減少幅Ugapを、現在の設定値から規定量Udown減算した値に更新する(Ugap←Ugap−Udown)。その後、S160に移行して、上述した処理を実行する。尚、規定量Udownについては、予め設計段階で設計者が定めることができる。また、ここで更新する減少幅Ugapは、上述したように、駆動対象が所定量前進したことを契機に、モータドライバDRに入力する操作量Uを、予め設定された減少幅Ugap分だけ減少させた操作量U←U−Ugapに切り替える際の当該減少幅Ugapである(詳細後述)。
続いて、S200で制御ユニット40が実行する切替処理について、図5を用いて説明する。切替処理を開始すると、制御ユニット40は、まずS210において、現在のタイマ値Trに基づき、駆動対象が所定量前進するのに要した時間である前進時間Zを特定し、この時間を記憶する(S210)。即ち、今回の駆動対象が所定量前進した事象に対応する前進時間Zとして、現在のタイマ値Trを記憶する(Z←Tr)。
その後、制御ユニット40は、タイマ値Trを値1に戻し(S220)、S210で記憶した前進時間Zが、予め設定された基準時間T0未満であるか否かを判断する(S230)。尚、ここでいう基準時間T0は、S260で設定される値である。従って、周期的な微小駆動処理における、切替処理の初回実行時には、S230において形式的に否定判断する。即ち、前進時間Zが基準時間T0以上であると判断する(S230でNo)。
制御ユニット40は、S230において、前進時間Zが基準時間T0未満であると判断すると(S230でYes)、S280に移行し、前進時間Zが基準時間T0以上であると判断すると(S230でNo)、S240に移行する。
S240に移行すると、制御ユニット40は、前進時間Zの標本数Nを1インクリメントし(N←N+1)、その後、S250に移行して、今回S210で記憶された前進時間Zと、前回までに算出した前進時間Z(但し前進時間Zが基準時間T0以上となったものに限る。)の平均値である平均前進時間Taveの最新値と、標本数Nとに基づき、平均前進時間Taveを更新する。即ち、前回までに算出された平均前進時間Taveの最新値に(N−1)を乗算した値と、今回S210で記憶された前進時間Zとの加算値((N−1)・Tave+Z)を、S240の処理による更新後の標本数Nで除算することにより、初回の微小駆動処理の実行時から現時点までにS210で記憶された前進時間Zの平均値を算出する。その後、制御ユニット40は、S260に移行して、基準時間T0を、今回のS250で算出された平均前進時間Taveに、予め定められた係数αを掛けた値(α・Tave)に設定変更する。尚、係数αは、0<α<1の範囲で設計者により予め定められる。但し、基準時間T0は、駆動対象に作用する負荷が減少したときに駆動対象の変位速度が上昇しないようにするために実行されるS280の処理の実行条件を定義するものであるので、αを小さくし過ぎると、負荷減少に対処するためのS280の実行頻度が減る。一方、αを大きくし過ぎると、S280の実行頻度が過度となって好ましくない。従って、αについては、設計者により実験的に適値を探索して定められるのがよい。
S260での処理を終えると、制御ユニット40は、S270に移行して、今回のS110でモータドライバDRに入力した操作量Uを正常前進時の操作量Utopとしてメモリ40aに記憶する(Utop←U)。その後、S290に移行し、次回モータドライバDRに入力する操作量Uとして、S270で記憶された正常前進時の操作量Utopについての最新値から現在設定されている減少幅Ugap分引いた値を算出して(U←Utop−Ugap)、当該切替処理を終了する。尚、減少幅Ugapは、初回の微小駆動処理の実行前に、予め設計段階で定められた初期値Ugap0に設定される(Ugap←Ugap0)。この初期値Ugap0については、設計段階で、駆動対象に作用する静止摩擦力と動摩擦力と差に対応した操作量Uの差分を実験的に又は計算で求めて定めることができる(詳細後述)。
一方、S230において、前進時間Zが基準時間T0未満であると判断して(S230でYes)、S280に移行すると、制御ユニット40は、操作量Uの減少幅Ugapを、現在の設定値から規定量Uup加算した値に更新する(Ugap←Ugap+Uup)。尚、規定量Uupについては、予め設計段階で設計者が定めることができる。また、S280の処理を終えると、制御ユニット40は、S290に移行して、上述したように、次回モータドライバDRに入力する操作量Uとして、S270で記憶された正常前進時の操作量Utopについての最新値から現在設定されている減少幅Ugap分引いた値を算出し(U←Utop−Ugap)、当該切替処理を終了する。
以上、本実施例の制御ユニット40が実行する微小駆動処理の内容をフローチャートに基づいて説明したが、図6及び図7には、この微小駆動処理によってモータドライバDRに入力される操作量Uの変化の一例を、グラフで示す。
図6に示すように微小駆動処理では、モータドライバDRに入力する操作量Uを制御周期毎に、規定量Uincずつ増加させる(S160)。そして、位置カウント値Xが前進方向に更新されると(S120でYes)、次回モータドライバDRに入力する操作量Uを、現在モータドライバDRに入力されている操作量U=Utopから、現在設定されている減少幅Ugap=Ugap0分だけ引いた操作量U=Utop−Ugap0に切り替える(図6に示す時刻T1及び図5に示すS290参照)。但し、ここでは、時刻T1の時点で減少幅Ugapが初期値Ugap0に設定されているものとする。そして、切替後の操作量U=Utop−Ugap0から再びモータドライバDRに入力する操作量Uを制御周期の到来に合わせて漸次増加させる(S160)。そして、新たに位置カウント値Xが前進方向に更新されると(S120でYes)、次にモータドライバDRに入力する操作量Uを、現在モータドライバDRに入力されている操作量U=Utopから、設定されている減少幅Ugap=Ugap0だけ引いた操作量U=Utop−Ugapに切り替える(図6に示す時刻T2及び図5に示すS290参照)。
本実施例では、このように、駆動対象が所定量前進しては、操作量Uを一定量減らすので、駆動対象が前進する事象が発生すると、操作量Uを固定値に戻す従来技術よりも、負荷変動に適切に対応して、駆動対象を微小駆動することができる。即ち、駆動対象が所定量前進した事象が発生して操作量U=Utopを切り替えた場合の切替後の操作量U=Utop−Ugapは、駆動対象に作用する負荷が大きくなれば、大きくなり、負荷が小さくなれば小さくなる。即ち、駆動対象に作用する負荷が大きくなれば、切替直前の操作量U=Utopが大きくなることで、切替後の操作量U=Utop−Ugapも大きくなり、駆動対象に作用する負荷が小さくなれば、切替直前の操作量U=Utopが小さくなることで、切替後の操作量U=Utop−Ugapも小さくなる。従って、本実施例によれば、操作量Uを固定値に戻す従来技術よりも、負荷変動に適切に対応して、駆動対象を適切に所定量ずつ微小駆動することができるのである。
尚、上述したように初期値Ugap0は、駆動対象に作用する静止摩擦力と動摩擦力との差を考慮して、設計段階で定められる。具体的に、設計者は、減少幅の初期値Ugap0を、「駆動対象に作用するモータM1からの力が、駆動対象に作用する静止摩擦力と動摩擦力との差に対応した量低下する操作量Uの差分ΔUに、所定の余裕量γを加算した値(ΔU+γ)」に定めることができる。余裕量γはゼロ以上の値として実験的に定めることができる。また、静止摩擦力や動摩擦力等については摩擦力以外の外力が略ない系を用いて計測すればよい。このように初期値Ugap0を定めると、駆動対象に対して設計時に前提とした摩擦力が駆動対象に作用するケースにおいて、駆動対象を正確にエンコーダ信号1パルス分搬送しては停止させる微小駆動を行うことができる。即ち、駆動対象の動き出し時には、駆動対象に作用する摩擦力が静止摩擦力から動摩擦力に変化するため、駆動対象の動き出し直後には、駆動対象を前進させる力と後退させる力とが均衡する動力よりも、静止摩擦力と動摩擦力との差に対応した動力がモータから駆動対象に余分に作用することになる。従って、減少幅を上述したような値(ΔU+γ)に設定すれば、駆動対象が前進する事象が発生したときに、S290で操作量UをUgap0分低減させることで、駆動対象を、後退も余分な前進もさせずに停止させることができ、駆動対象を適切に所定量ずつ微小駆動することができるのである。
但し、上述した話は、設計時に前提とした摩擦力が駆動対象に作用し、更に摩擦力以外の外力に急激な変化がない場合である。上述の例によれば余裕量γを設けるので、駆動対象に作用する摩擦力と外力との合成ベクトルとしての負荷がある程度変化しても、そのような負荷変動に適切に対応して、駆動対象を適切に所定量ずつ微小駆動することができるが、大きな負荷変動に関しては、十分でない。
図6に示す例によれば、駆動対象に作用する負荷が時刻T2の時点で高くなっているので、時刻T2で次回モータドライバDRに入力する操作量Uを、モータドライバDRに入力されている操作量U=Utopから操作量U=Utop−Ugap0に切り替えた直後の制御周期の時刻T3では、モータドライバDRに入力される操作量UがUgap0分だけ減少したことを原因として、駆動対象が後退し、位置カウント値Xが後退方向に更新されている。但し、ここでは、駆動対象に、摩擦力以外の外力として、駆動対象を後退させるような力が働いているものとする。例えば、駆動対象がキャリッジ201である場合には、図3(B)に示すようなキャップ機構220に接触した際に後退させる方向の外力が作用する。また、駆動対象が搬送ローラ101である場合には、搬送ローラ101によって搬送される用紙Qの姿勢等によって搬送ローラ101を後退(逆回転)させる方向の外力が作用する。
そこで、本実施例では、このような事象が発生すると、位置カウント値Xの参照によりS140で駆動対象が後退したと判断し(S140でYes)、S150の処理を実行することで、減少幅Ugapを、現在設定値Ugap=Ugap0から規定量Udown減算した値(Ugap0−Udown)に変更する。このようにして、本実施例では、モータドライバDRに入力する操作量UをUgap分減らした際に、駆動対象が後退しないようにする。本実施例によれば、このような対処によって、負荷が大きく上昇するなかでも、駆動対象の後退を抑えて適切に微小駆動をすることができる。
また、図7に示すように、駆動対象に作用する負荷が当初の想定より小さくなった場合には、タイマ値Trの更新動作(S130)によって計測される「駆動対象が所定量前進するのに要した時間」としての前進時間Zが短くなり、前進時間Zが基準時間T0未満となるが、このような事象が発生すると、制御ユニット40は、S280の処理によって、減少幅Ugapを、その時点で設定されている減少幅Ugap=Ugap0から規定量Uup増やした値(Ugap0+Uup)に設定変更する。
図7に示す例では、時刻T4の時点で設定されている減少幅Ugapが初期値Ugap0である。時刻T5の時点では、前進時間Zが基準時間T0未満となったので、S280の処理により、減少幅Ugapを初期値Ugap0から値Ugap0+Uupに変更している。そして、次の制御周期でモータドライバDRに入力する操作量Uとして、正常前進時の操作量Utopの最新値(時刻T4の時点でS270の処理により更新された値)から、設定変更後の減少幅Ugap=Ugap0+Uup分減算した操作量U=Utop−(Ugap0+Uup)を算出している(S290)。
このようにして、本実施例では、駆動対象に作用する負荷の減少に対応して駆動対象が高い速度で前進した場合には、操作量Uを減少幅Ugap=Ugap0分減らしても駆動対象が停止せずに前進していると推定して、操作量Uを十分低い値にまで減らすようにする。但し、減少幅Ugapを、初期値Ugap0から値Ugap0+Uupに設定変更したときには、次の制御周期でモータドライバDRに入力する操作量Uとして、現時点でモータドライバDRに入力されている操作量から、設定変更後の減少幅Ugap=Ugap0+Uup分低い値を設定すると、切替後の操作量Uが低くなりすぎてしまう可能性がある。そこで、本実施例では、時刻T5に示すように、次の制御周期でモータドライバDRに入力する操作量Uを、予め記憶した正常前進時の操作量Utopから設定変更後の減少幅Ugap=Ugap0+Uup分減らした値に設定する。本実施例によれば、このように操作量Uを設定することで、過度に操作量Uが低くなりすぎて駆動対象が後退してしまったり、駆動対象を前進させるまで時間を要してしまうのを抑えることができる。従って、本実施例によれば、負荷減少時にも、駆動対象を適切に微小駆動することができる。
また、本実施例によれば、上記基準時間T0を、過去から現在までに検出した前進時間Z(但し前進時間Zが基準時間T0以上となったものに限る。)の平均値である平均前進時間Taveに1未満の係数αを乗算した値に更新する。従って、本実施例によれば、負荷の急変動を、基準時間T0を指標に適切に判断することができて、この負荷変動に応じてS280の処理を実行することにより、負荷変動(負荷の急な減少)に適切に対応して、駆動対象を微小駆動することができる。
以上、本発明の実施例について説明したが、用語間の対応関係は次の通りである。即ち、駆動対象としてのキャリッジ201を変位(移動)させるキャリッジ搬送機構20又は駆動対象としての搬送ローラ101を変位(回転)させる用紙搬送機構10は、駆動機構の一例に対応する。また、制御ユニット40が実行するS120の処理は、前進検知手段によって実現される処理の一例に対応し、制御ユニット40が実行するS140の処理は、後退検知手段によって実現される処理の一例に対応する。また、制御ユニット40が実行するS110,S160,S290の処理は、駆動制御手段によって実現される処理の一例に対応し、制御ユニット40が実行するS150,S280の処理は、補正手段によって実現される処理の一例に対応する。また、制御ユニット40が実行するS130,S210,S220の処理は、時間検出手段によって実現される処理の一例に対応し、制御ユニット40が実行するS230の処理は、判定手段によって実現される処理の一例に対応する。また、制御ユニット40が実行するS270の処理は、操作量記憶手段によって実現される処理の一例に対応し、制御ユニット40が実行するS240〜S260の処理は、基準時間更新手段によって実現される処理の一例に対応する。
また、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、上記実施例の画像形成装置1は、S150やS280における処理、即ち、減少幅Ugapを変更する処理を実行しない構成にされてもよい。また、上記実施例では、前進時間Zが基準時間T0未満となるときには、正常前進時の操作量Utopから、設定された減少幅Ugap分、操作量Uを低減するようにしたが、上記画像形成装置1においては、前進時間Zが基準時間T0以上であるときと同様、現在モータドライバDRに入力されている操作量Uから、設定された減少幅Ugap分、操作量Uを低減するようにしてもよい。
この他、上記実施例では、微小駆動処理の実行時において、モータドライバDRが制御ユニット40から入力された操作量Uに対応した駆動電流でモータMを駆動する旨を説明したが、モータドライバDRは制御ユニット40から入力された操作量Uに対応する駆動電圧でモータMを駆動する構成にされてもよい。また、本発明は、その適用分野を画像形成装置に限定されるものではなく、微小駆動が必要な種々の電気的装置に適用することができる。