JP4543939B2 - 補正値算出方法及びプリンタ製造方法 - Google Patents

補正値算出方法及びプリンタ製造方法 Download PDF

Info

Publication number
JP4543939B2
JP4543939B2 JP2005014260A JP2005014260A JP4543939B2 JP 4543939 B2 JP4543939 B2 JP 4543939B2 JP 2005014260 A JP2005014260 A JP 2005014260A JP 2005014260 A JP2005014260 A JP 2005014260A JP 4543939 B2 JP4543939 B2 JP 4543939B2
Authority
JP
Japan
Prior art keywords
motor
value
printer
speed
correction value
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.)
Expired - Fee Related
Application number
JP2005014260A
Other languages
English (en)
Other versions
JP2006015724A (ja
Inventor
憲史 畑田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005014260A priority Critical patent/JP4543939B2/ja
Priority to US11/094,847 priority patent/US7132814B2/en
Publication of JP2006015724A publication Critical patent/JP2006015724A/ja
Application granted granted Critical
Publication of JP4543939B2 publication Critical patent/JP4543939B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J19/00Character- or line-spacing mechanisms
    • B41J19/18Character-spacing or back-spacing mechanisms; Carriage return or release devices therefor
    • B41J19/20Positive-feed character-spacing mechanisms
    • B41J19/202Drive control means for carriage movement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J11/00Devices or arrangements  of selective printing mechanisms, e.g. ink-jet printers or thermal printers, for supporting or handling copy material in sheet or web form
    • B41J11/36Blanking or long feeds; Feeding to a particular line, e.g. by rotation of platen or feed roller
    • B41J11/42Controlling printing material conveyance for accurate alignment of the printing material with the printhead; Print registering

Landscapes

  • Character Spaces And Line Spaces In Printers (AREA)
  • Control Of Direct Current Motors (AREA)
  • Ink Jet (AREA)

Description

本発明は、モータを備える補正値算出方法及びプリンタの製造方法に関する。
プリンタには、キャリッジを移動させるためのキャリッジモータや、紙を搬送するための搬送モータ等の各種モータが備えられている。このようなモータを制御するため、プリンタにはPID制御回路が設けられている。
モータを駆動したときにモータに流れる電流値は、モータにかかる負荷に応じて変化する。そこで、モータに流れる電流値を直接測定できない場合、PID制御回路の積分要素の出力値を測定し、積分要素の出力値に基づいて、モータに流れる電流値を算出することが行われている。
一方、モータには個体差があるため、積分要素の出力値から電流値を算出する際に標準的なモータの特性値を用いると、誤差が生じてしまう。そこで、標準的なモータの特性値に基づいて算出された電流値を補正値により補正することが行われている(特許文献1参照)
特開2003−79172号公報
しかし、モータの個体差に適した補正値を正しく設定しなければ、電流値を精度良く算出することはできない。
そこで、本発明は、モータの個体差に適した補正値をプリンタに設定することを目的とする。
上記目的を達成するための主たる第1の発明は、(1)モータと、前記モータを制御するためのPID制御系と、補正値を記録するためのメモリとを備え、前記PID制御系の積分要素の出力値と前記補正値に基づいて、前記モータに流れる電流値を算出するプリンタの、前記補正値を算出する方法であって、(2)前記モータの特性値は、所定範囲内で変動するものであり、(3)前記モータの特性が標準であるときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和に相当する値と、モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和、の差と前記補正値との関係を予め求め、(4)製造対象となるプリンタの前記モータを第1の速度にて駆動して、そのときの前記積分要素の出力値を測定し、そのプリンタの前記モータを第2の速度にて駆動し、そのときの前記積分要素の出力値を測定し、測定された2つの前記出力値の和と前記関係とに基づいて補正値を決定することを特徴とする。
上記目的を達成するための主たる第2の発明は、(1)モータと、前記モータを制御するためのPID制御系と、補正値を記録するためのメモリとを備え、前記PID制御系の積分要素の出力値と前記補正値に基づいて、前記モータに流れる電流値を算出するプリンタを、製造する方法であって、(2)前記モータの特性値は、所定範囲内で変動するものであり、(3)前記モータの特性が標準であるときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和に相当する値と、モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和、の差と前記補正値との関係を予め求め、(4)製造対象となるプリンタの前記モータを第1の速度にて駆動して、そのときの前記積分要素の出力値を測定し、そのプリンタの前記モータを第2の速度にて駆動し、そのときの前記積分要素の出力値を測定し、測定された2つの前記出力値の和と前記関係とに基づいて決定される補正値を、そのプリンタの前記メモリに記録することを特徴とする。
本発明の他の特徴については、本明細書及び添付図面の記載により明らかにする。
===開示の概要===
本明細書及び添付図面の記載により、少なくとも、以下の事項が明らかとなる。
モータと、前記モータを制御するためのPID制御系と、補正値を記録するためのメモリとを備え、
前記PID制御系の積分要素の出力値と前記補正値に基づいて、前記モータに流れる電流値を算出する
プリンタの、前記補正値を算出する方法であって、
モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和と、前記補正値との関係を予め求め、
製造対象となるプリンタの前記モータを第1の速度にて駆動して、そのときの前記積分要素の出力値を測定し、
そのプリンタの前記モータを第2の速度にて駆動し、そのときの前記積分要素の出力値を測定し、
測定された2つの前記出力値の和と前記関係とに基づいて補正値を決定する
ことを特徴とする補正値算出方法。
このような補正値算出方法によれば、製造対象のプリンタのモータに適した補正値を算出することができる。
かかる補正値算出方法であって、前記モータの特性値は所定範囲内で変動するものであり、前記モータの標準的な特性値と、前記所定範囲内で変動する前記モータの特性値とに基づいて、前記関係を求めることが望ましい。また、前記関係は、「前記モータの特性が標準であるときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和に相当する値」と「モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和」との差と前記補正値との関係であることが望ましい。これにより、算出された補正値は、各モータの特性に適した値になる。
かかる補正値算出方法であって、前記プリンタは、印刷を行うとき前記モータにかかる負荷が変化することが望ましい。また、前記プリンタは、インクカートリッジを装着するためのキャリッジを備え、前記モータは、前記キャリッジを移動させることが好ましい。このようなプリンタを製造する製造方法に対して特に有効である。
かかる補正値算出方法であって、前記モータは、PWM制御により駆動されることが望ましい。このようなプリンタであれば、モータに流れる電流値を精度良く算出することができる。
かかる補正値算出方法であって、前記プリンタが印刷を行うとき、前記プリンタは、前記モータに流れる電流値に基づいて、前記モータの発熱量を算出することが望ましい。これにより、モータの発熱量を精度良く算出できるプリンタを製造することができる。
かかる補正値算出方法であって、前記プリンタが印刷を行うとき、前記プリンタは、前記モータに流れる電流値に基づいて、前記モータの停止時間を決定することが望ましい。これにより、印刷速度を向上させたプリンタを製造することができる。
モータと、前記モータを制御するためのPID制御系と、補正値を記録するためのメモリとを備え、
前記PID制御系の積分要素の出力値と前記補正値に基づいて、前記モータに流れる電流値を算出する
プリンタを、製造する方法であって、
モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和と、前記補正値との関係を予め求め、
製造対象となるプリンタの前記モータを第1の速度にて駆動して、そのときの前記積分要素の出力値を測定し、
そのプリンタの前記モータを第2の速度にて駆動し、そのときの前記積分要素の出力値を測定し、
測定された2つの前記出力値の和と前記関係とに基づいて決定される補正値を、そのプリンタの前記メモリに記録する
ことを特徴とするプリンタ製造方法。
このようなプリンタ製造方法によれば、モータに適した補正値をプリンタに設定することができる。
かかるプリンタ製造方法であって、前記モータの特性値は所定範囲内で変動するものであり、前記モータの標準的な特性値と、前記所定範囲内で変動する前記モータの特性値とに基づいて、前記関係を求めることが望ましい。また、前記関係は、「前記モータの特性が標準であるときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和に相当する値」と「モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和」との差と前記補正値との関係であることが望ましい。これにより、算出された補正値は、各モータの特性に適した値になる。
かかるプリンタ製造方法であって、前記プリンタは、印刷を行うとき前記モータにかかる負荷が変化することが望ましい。また、前記プリンタは、インクカートリッジを装着するためのキャリッジを備え、前記モータは、前記キャリッジを移動させることが好ましい。このようなプリンタを製造する製造方法に対して特に有効である。
かかるプリンタ製造方法であって、前記モータは、PWM制御により駆動されることが望ましい。このようなプリンタであれば、モータに流れる電流値を精度良く算出することができる。
かかるプリンタ製造方法であって、前記プリンタが印刷を行うとき、前記プリンタは、前記モータに流れる電流値に基づいて、前記モータの発熱量を算出することが望ましい。これにより、モータの発熱量を精度良く算出できるプリンタを製造することができる。
かかるプリンタ製造方法であって、前記プリンタが印刷を行うとき、前記プリンタは、前記モータに流れる電流値に基づいて、前記モータの停止時間を決定することが望ましい。これにより、印刷速度を向上させたプリンタを製造することができる。
===印刷システムの構成===
次に、印刷システム(コンピュータシステム)の実施形態について、図面を参照しながら説明する。ただし、以下の実施形態の記載には、コンピュータプログラム、及び、コンピュータプログラムを記録した記録媒体等に関する実施形態も含まれている。
図1は、印刷システムの外観構成を示した説明図である。この印刷システム100は、プリンタ1と、コンピュータ110と、表示装置120と、入力装置130と、記録再生装置140とを備えている。プリンタ1は、紙、布、フィルム等の媒体に画像を印刷する印刷装置である。コンピュータ110は、プリンタ1と電気的に接続されており、プリンタ1に画像を印刷させるため、印刷させる画像に応じた印刷データをプリンタ1に出力する。表示装置120は、ディスプレイを有し、アプリケーションプログラムやプリンタドライバ等のユーザインタフェースを表示する。入力装置130は、例えばキーボード130Aやマウス130Bであり、表示装置120に表示されたユーザインタフェースに沿って、アプリケーションプログラムの操作やプリンタドライバの設定等に用いられる。記録再生装置140は、例えばフレキシブルディスクドライブ装置140AやCD−ROMドライブ装置140Bが用いられる。
コンピュータ110にはプリンタドライバがインストールされている。プリンタドライバは、表示装置120にユーザインタフェースを表示させる機能を実現させるほか、アプリケーションプログラムから出力された画像データを印刷データに変換する機能を実現させるためのプログラムである。このプリンタドライバは、フレキシブルディスクFDやCD−ROMなどの記録媒体(コンピュータ読み取り可能な記録媒体)に記録されている。または、このプリンタドライバは、インターネットを介してコンピュータ110にダウンロードすることも可能である。なお、このプログラムは、各種の機能を実現するためのコードから構成されている。
なお、「印刷装置」とは、狭義にはプリンタ1を意味するが、広義にはプリンタ1とコンピュータ110とのシステムを意味する。
===プリンタの構成===
<インクジェットプリンタの構成について>
図2は、本実施形態のプリンタの全体構成のブロック図である。また、図3は、本実施形態のプリンタの全体構成の概略図である。また、図4は、本実施形態のプリンタの全体構成の横断面図である。以下、本実施形態のプリンタの基本的な構成について説明する。
本実施形態のプリンタは、搬送ユニット20、キャリッジユニット30、ヘッドユニット40、検出器群50、およびコントローラ60を有する。外部装置であるコンピュータ110から印刷データを受信したプリンタ1は、コントローラ60によって各ユニット(搬送ユニット20、キャリッジユニット30、ヘッドユニット40)を制御する。コントローラ60は、コンピュータ110から受信した印刷データに基づいて、各ユニットを制御し、紙に画像を形成する。プリンタ1内の状況は検出器群50によって監視されており、検出器群50は、検出結果をコントローラ60に出力する。検出器群50から検出結果を受けたコントローラ60は、その検出結果に基づいて、各ユニットを制御する。
搬送ユニット20は、媒体(例えば、紙Sなど)を印刷可能な位置に送り込み、印刷時に所定の方向(以下、搬送方向という)に所定の搬送量で紙を搬送させるためのものである。すなわち、搬送ユニット20は、紙を搬送する搬送機構(搬送手段)として機能する。搬送ユニット20は、給紙ローラ21と、搬送モータ22(PFモータとも言う)と、搬送ローラ23と、プラテン24と、排紙ローラ25とを有する。ただし、搬送ユニット20が搬送機構として機能するためには、必ずしもこれらの構成要素を全て必要とするわけではない。給紙ローラ21は、紙挿入口に挿入された紙をプリンタ内に自動的に給紙するためのローラである。給紙ローラ21は、D形の断面形状をしており、円周部分の長さは搬送ローラ23までの搬送距離よりも長く設定されているので、この円周部分を用いて紙を搬送ローラ23まで搬送できる。搬送モータ22は、紙を搬送方向に搬送するためのモータであり、DCモータにより構成される。搬送ローラ23は、給紙ローラ21によって給紙された紙Sを印刷可能な領域まで搬送するローラであり、搬送モータ22によって駆動される。プラテン24は、印刷中の紙Sを支持する。排紙ローラ25は、印刷が終了した紙Sをプリンタの外部に排出するローラである。この排紙ローラ25は、搬送ローラ23と同期して回転する。
キャリッジユニット30は、ヘッドを所定の方向(以下、移動方向という)に移動(「走査」とも呼ばれる)させるためのものである。キャリッジユニット30は、キャリッジ31と、キャリッジモータ32(CRモータとも言う)とを有する。キャリッジ31は、移動方向に往復移動可能である。(これにより、ヘッドが移動方向に沿って移動する。)また、キャリッジ31は、インクを収容するインクカートリッジを着脱可能に保持している。キャリッジモータ32は、キャリッジ31を移動方向に移動させるためのモータであり、DCモータにより構成される。
ヘッドユニット40は、紙にインクを吐出するためのものである。ヘッドユニット40は、ヘッド41を有する。ヘッド41は、インク吐出部であるノズルを複数有し、各ノズルから断続的にインクを吐出する。このヘッド41は、キャリッジ31に設けられている。そのため、キャリッジ31が移動方向に移動すると、ヘッド41も移動方向に移動する。そして、ヘッド41が移動方向に移動中にインクを断続的に吐出することによって、移動方向に沿ったドットライン(ラスタライン)が紙に形成される。
検出器群50には、リニア式エンコーダ51、ロータリー式エンコーダ52、紙検出センサ53、および光学センサ54等が含まれる。リニア式エンコーダ51は、キャリッジ31の移動方向の位置を検出するためのものである。ロータリー式エンコーダ52は、搬送ローラ23の回転量を検出するためのものである。紙検出センサ53は、印刷される紙の先端の位置を検出するためのものである。この紙検出センサ53は、給紙ローラ21が搬送ローラ23に向かって紙を給紙する途中で、紙の先端の位置を検出できる位置に設けられている。なお、紙検出センサ53は、機械的な機構によって紙の先端を検出するメカニカルセンサである。詳しく言うと、紙検出センサ53は搬送方向に回転可能なレバーを有し、このレバーは紙の搬送経路内に突出するように配置されている。そのため、紙の先端がレバーに接触し、レバーが回転させられるので、紙検出センサ53は、このレバーの動きを検出することによって、紙の先端の位置を検出する。光学センサ54は、キャリッジ31に取付けられている。光学センサ54は、発光部から紙に照射された光の反射光を受光部が検出することにより、紙の有無を検出する。そして、光学センサ54は、キャリッジ31によって移動しながら紙の端部の位置を検出する。光学センサ54は、光学的に紙の端部を検出するため、機械的な紙検出センサ53よりも、検出精度が高い。
コントローラ60は、プリンタの制御を行うための制御ユニット(制御手段)である。コントローラ60は、インターフェース部61と、CPU62と、メモリ63と、ユニット制御回路64とを有する。インターフェース部61は、外部装置であるコンピュータ110とプリンタ1との間でデータの送受信を行うためのものである。CPU62は、プリンタ全体の制御を行うための演算処理装置である。メモリ63は、CPU62のプログラムを格納する領域や作業領域等を確保するためのものであり、RAM、EEPROM等の記憶手段を有する。CPU62は、メモリ63に格納されているプログラムに従って、ユニット制御回路64を介して各ユニットを制御する。
<印刷動作について>
図5は、印刷時の処理のフロー図である。以下に説明される各処理は、コントローラ60が、メモリ63内に格納されたプログラムに従って、各ユニットを制御することにより実行される。このプログラムは、各処理を実行するためのコードを有する。
印刷命令受信(S001):まず、コントローラ60は、コンピュータ110からインターフェース部61を介して、印刷命令を受信する。この印刷命令は、コンピュータ110から送信される印刷データのヘッダに含まれている。そして、コントローラ60は、受信した印刷データに含まれる各種コマンドの内容を解析し、各ユニットを用いて、以下の給紙処理・搬送処理・インク吐出処理等を行う。
給紙処理(S002):給紙処理とは、印刷すべき紙をプリンタ内に供給し、印刷開始位置(頭出し位置とも言う)に紙を位置決めする処理である。コントローラ60は、給紙ローラ21を回転させ、印刷すべき紙を搬送ローラ23まで送る。コントローラ60は、搬送ローラ23を回転させ、給紙ローラ21から送られてきた紙を印刷開始位置に位置決めする。紙が印刷開始位置に位置決めされたとき、ヘッド41の少なくとも一部のノズルは、紙と対向している。
ドット形成処理(S003):ドット形成処理とは、移動方向に沿って移動するヘッドからインクを断続的に吐出させ、紙上にドットを形成する処理である。コントローラ60は、キャリッジモータ32を駆動し、キャリッジ31を移動方向に移動させる。そして、コントローラ60は、キャリッジ31が移動している間に、印刷データに基づいてヘッドからインクを吐出させる。ヘッドから吐出されたインク滴が紙上に着弾すれば、紙上にドットが形成される。移動するヘッドからインクが断続的に吐出されるので、紙上には移動方向に沿った複数のドットからなるドット列が形成される。なお、1回のドット形成処理の際に、キャリッジ31が移動方向に1回移動することを「1パス」と言う。
搬送処理(S004):搬送処理とは、紙をヘッドに対して搬送方向に沿って相対的に移動させる処理である。コントローラ60は、搬送モータを駆動し、搬送ローラを回転させて紙を搬送方向に搬送する。この搬送処理により、ヘッド41は、先ほどのドット形成処理によって形成されたドットの位置とは異なる位置に、ドットを形成することが可能になる。
排紙判断(S005):コントローラ60は、印刷中の紙の排紙の判断を行う。印刷中の紙に印刷すべきデータが残っていれば、排紙は行われない。そして、コントローラ60は、印刷すべきデータがなくなるまで、ドット形成処理と搬送処理とを交互に繰り返し、ドットから構成される画像を徐々に紙に印刷する。
排紙処理(S006):印刷中の紙に印刷すべきデータがなくなれば、コントローラ60は、排紙ローラを回転させることにより、その紙を排紙する。なお、排紙を行うか否かの判断は、印刷データに含まれる排紙コマンドに基づいても良い。
印刷終了判断(S007):次に、コントローラ60は、印刷を続行するか否かの判断を行う。次の紙に印刷を行うのであれば、印刷を続行し、次の紙の給紙処理を開始する。次の紙に印刷を行わないのであれば、印刷動作を終了する。
===搬送処理===
<搬送処理について>
図6は、搬送ユニット20の構成の説明図である。なお、これらの図において、既に説明された構成要素については、同じ符号を付しているので、説明を省略する。
搬送ユニット20は、コントローラからの搬送指令に基づいて、所定の駆動量にて搬送モータ22を駆動させる。搬送モータ22は、指令された駆動量に応じて回転方向の駆動力を発生する。搬送モータ22は、この駆動力を用いて搬送ローラ23を回転させる。また、搬送モータ22は、この駆動力を用いて排紙ローラ25を回転させる。つまり、搬送モータ22が所定の駆動量を発生すると、搬送ローラ23と排紙ローラ25は所定の回転量にて回転する。搬送ローラ23と排紙ローラ25が所定の回転量にて回転すると、紙は所定の搬送量にて搬送される。搬送ローラ23と排紙ローラ25は同期して回転しているため、搬送ローラ23及び排紙ローラ25の少なくとも一方に紙が接触していれば、紙は搬送ユニット20によって搬送可能である。
紙の搬送量は、搬送ローラ23の回転量に応じて定まる。したがって、搬送ローラ23の回転量が検出できれば、紙の搬送量も検出可能である。そこで、搬送ローラ23の回転量を検出するため、ロータリー式エンコーダ52が設けられている。
<ロータリー式エンコーダの構成について>
図7は、ロータリー式エンコーダの構成の説明図である。なお、これらの図において、既に説明された構成要素については、同じ符号を付しているので、説明を省略する。
ロータリー式エンコーダは52、スケール521と検出部522とを有する。
スケール521は、所定の間隔毎に設けられた多数のスリットを有する。このスケール521は、搬送ローラ23に設けられている。つまり、スケール521は、搬送ローラ23が回転すると、一緒に回転する。例えば、搬送ローラ23が紙Sを1/1440インチ分の搬送を行うように回転すると、スケール521は、検出部522に対して、1スリット分だけ回転する。
検出部522は、スケール521と対向して設けられており、プリンタ本体側に固定されている。検出部522は、発光ダイオード522Aと、コリメータレンズ522Bと、検出処理部522Cとを有しており、検出処理部522Cは、複数(例えば、4個)のフォトダイオード522Dと、信号処理回路522Eと、2個のコンパレータ522Fa、522Fbとを備えている。
発光ダイオード522Aは、両端の抵抗を介して電圧Vccが印加されると光を発し、この光はコリメータレンズに入射される。コリメータレンズ522Bは、発光ダイオード522Aから発せられた光を平行光とし、スケール521に平行光を照射する。スケールに設けられたスリットを通過した平行光は、固定スリット(不図示)を通過して、各フォトダイオード522Dに入射する。フォトダイオード522Dは、入射した光を電気信号に変換する。各フォトダイオードから出力される電気信号は、コンパレータ522Fa、522Fbにおいて比較され、比較結果がパルスとして出力される。そして、コンパレータ522Fa、522Fbから出力されるパルスENC−A及びパルスENC−Bが、ロータリー式エンコーダ52の出力となる。
<ロータリー式エンコーダの信号について>
図8Aは、搬送モータ22が正転しているときの出力信号の波形のタイミングチャートである。図8Bは、搬送モータ22が反転しているときの出力信号の波形のタイミングチャートである。
図に示された通り、搬送モータ12の正転時および反転時のいずれの場合であっても、パルスENC−AとパルスENC−Bとは、位相が90度ずれている。搬送モータ22が正転しているとき、すなわち、紙Sが搬送方向に搬送されているときは、パルスENC−Aは、パルスENC−Bよりも90度だけ位相が進んでいる。一方、搬送モータ22が反転しているとき、すなわち、紙Sが搬送方向とは逆方向に搬送されているときは、パルスENC−Aは、パルスENC−Bよりも90度だけ位相が遅れている。各パルスの1周期Tは、搬送ローラ23がスケール521のスリットの間隔(例えば、1/1440インチ(1インチ=2.54cm))分だけ回転する時間に等しい。
コントローラがパルス信号の数をカウントすれば、搬送ローラ23の回転量を検出できるので、紙の搬送量を検出することができる。また、コントローラが各パルスの1周期Tを検出すれば、搬送ローラ23の回転速度を検出できるので、紙の搬送速度を検出することができる。
なお、リニア式エンコーダ51の信号も、同様である。リニア式エンコーダ51の場合、キャリッジ31に検出部が設けられ、プリンタ本体側にリニアスケールが設けられる。そして、キャリッジ31が移動すると、リニア式エンコーダ51からパルス信号が出力される。キャリッジは往復移動し、キャリッジの往動時には、パルスENC−AがパルスENC−Bよりも90度だけ位相が進み、キャリッジの復動時には、パルスENC−AがパルスENC−Bよりも90度だけ位相が遅れる。
===キャリッジユニット制御回路===
<キャリッジユニット制御回路の構成について>
図9は、キャリッジユニット制御回路70のブロック図である。キャリッジユニット制御回路70は、キャリッジユニット30のCRモータ32(キャリッジモータ)の駆動を制御するものであり、前述のユニット制御回路64に設けられている。
このキャリッジユニット制御回路70は、位置演算部71と、減算器72と、ゲイン73と、速度演算部74と、減算器75と、比例要素76Aと、積分要素76Bと、微分要素76Cと、加算器77と、PWM回路78と、加速制御部79A、タイマ79Bとを有する。
位置演算部71は、リニア式エンコーダ51の出力パルスのエッジを検出し、その個数をカウントし、このカウント値に基づきCRモータ32の回転位置を演算する。位置演算部71は、2つのパルス信号の比較処理からCRモータ32の正転・逆転を認知し、1個のエッジが検出された時に正転・逆転に応じてインクリメント・デクリメントするように計数処理する。
減算器72は、CPU62から送られてくる目標位置と、位置演算部71により検出された検出位置との位置偏差を演算する。ゲイン73は、減算器72から出力される位置偏差にゲインKpを乗算し、目標速度を出力する。ゲインKpは、位置偏差に応じて決定される。なお、このゲインKpの値と位置偏差との関係を示すテーブルは、メモリ63に格納されている。
速度演算部74は、リニア式エンコーダ51の出力パルスに基づいて、CRモータ32の回転速度を演算する。すなわち、速度演算部74は、リニア式エンコーダ51の出力パルスのパルス周期を計時し、このパルス周期に基づいてCRモータ32の回転速度を演算する。
減算器75は、ゲイン73から出力される目標速度と、速度演算部74により検出された検出速度との速度偏差を演算する。
比例要素76Aは、速度偏差に定数Gpを乗算し、比例成分を出力する。積分要素76Bは、速度偏差に定数Giを乗算したものを積算し、積分成分を出力する。微分要素76Cは、現在の速度偏差と、1つ前の速度偏差との差に定数Gdを乗算し、微分成分を出力する。比例要素76A、積分要素76B及び微分要素76Cの演算は、リニア式エンコーダ51の出力パルスの1周期毎に行われる。
比例要素76A、積分要素76B及び微分要素76Cから出力される信号値は、それぞれの演算結果に応じたデューティDXを示す。ここで、デューティDXは、例えばデューティパーセントが(100×DX/2000)%であることを示す。この場合、DX=2000であれば、デューティ100%を示し、DX=1000であれば、デューティ50%であることを示す。なお、積分要素76Bから出力される信号値のことを、DXIとも表す。
加算器77は、比例要素76Aの出力と、積分要素76Bの出力と、微分要素76Cの出力とを加算する。この加算結果は、デューティ信号として、PWM回路78に送られる。PWM回路78は、加算器77の加算結果に応じた指令信号を生成する。ドライバ22Aは、この指令信号に基づいて、CRモータ32を駆動する。
ドライバ22Aは、例えば複数個のトランジスタを備えており、PWM回路78からの指令信号に基づいて、トランジスタをオン・オフさせることで、CRモータ32に電圧を印加する。
また、加速制御部79A及びタイマ79Bは、CRモータ32の加速制御時に用いられる。タイマ79Bは、CPU62から送られてくるクロック信号に基づいて、所定時間毎にタイマ割込信号を発生する。加速制御部79Aは、タイマ割込信号を受ける毎に所定のデューティDXPを積算し、積算結果としてデューティ信号をPWM回路78に出力する。
CRモータ32を加速駆動するとき、PWM回路78は、加速制御部79Aから出力されるデューティ信号に基づいて、指令信号をCRモータ32に出力し、CRモータ32を制御する。CRモータ32を定速駆動するとき、及び、CRモータ32を減速するとき、PWM回路78は、加算器77から出力されるデューティ信号に基づいて、指令信号をCRモータ32に出力し、CRモータ32をPID制御する。
<CRモータの駆動について1>
図10Aは、PWM回路78に入力されるデューティ信号の時間変化のグラフである。図10Bは、モータの速度変化のグラフである。以下、これらの図を用いて、CRモータの駆動について説明する。
CRモータ32が停止している時に、CRモータ32を起動させる起動指令信号がCPU62からキャリッジユニット制御回路70へ送られると、信号値がDX0である起動初期デューティ信号が加速制御部79AからPWM回路78へ送られる。この起動初期デューティ信号は、起動指令信号とともにCPU62から加速制御部79Aへ送られてくる。そして、この起動初期デューティ信号は、PWM回路78によって、信号値DX0に応じた指令信号に変換されて、CRモータ32の起動が開始される。
キャリッジユニット制御回路70が起動指令信号を受信した後、所定の時間ごとにタイマ79Bからタイマ割込信号が発生される。加速制御部79Aは、タイマ割込信号を受信する毎に、起動初期デューティ信号の信号値DX0に所定のデューティDXPを積算し、積算されたデューティを信号値とするデューティ信号をPWM回路78に送る。このデューティ信号は、PWM回路78によって、その信号値に応じた指令信号に変換されて、CRモータ32の回転速度は上昇する。このため加速制御部79AからPWM回路78に送られるデューティ信号の値は、階段状に上がっていく。
加速制御部79Aにおけるデューティの積算処理は、積算されたデューティが所定のデューティDXSになるまで行われる。時刻t1において積算されたデューティが所定値DXSとなると、加速制御部79Aは積算処理を停止し、以後PWM回路78に一定のデューティDXSを信号値とするデューティ信号を送る。
そして、CRモータ32が所定の回転速度になると(時間t2参照)、加速制御部79Aは、PWM回路78へ出力するデューティ信号を減少させて、CRモータ32に印加される電圧のデューティパーセントを減少させるよう制御する。このときCRモータ32の回転速度は更に上昇する。そして、時間t3になると、PWM回路78は加算器77の出力を選択し、PID制御が行われる。PID制御が開始される時点(t3)において、積分要素76Bの積分値が適当な値に設定されており、積分要素76Bの出力値が所定の値になる。
PID制御が開始されると、キャリッジユニット制御回路70は、目標位置と、リニア式エンコーダ51の出力から得られる実際の位置との位置偏差にゲインKpを乗算して目標速度を算出する。そして、キャリッジユニット制御回路70は、この目標速度と、リニア式エンコーダ51の出力から得られる実際の速度との速度偏差に基づいて、比例要素76A、積分要素76B及び微分要素76Cを用いて比例成分、積分成分及び微分成分の演算を行い、これらの演算結果の和に基づいて、CRモータ32の制御を行う。尚、上記比例、積分及び微分演算は、例えばリニア式エンコーダ51の出力パルスENC−Aの立ち上がりエッジに同期して行われる。これにより、CRモータ32の回転速度は、時刻t4において、所望の速度となるように制御される。
CRモータ32が目標位置に近づくと(時刻t5)、位置偏差が小さくなるから目標速度も小さくなる。このため速度偏差、即ち減算器75の出力が負になり、CRモータ32は減速し、時刻t6に停止する。
===発熱制限制御の概略===
コントローラ60は、1回のドット形成処理当たりのCRモータ32の発熱量Qpass[Y][V]を算出し、この発熱量Qpass[Y][V]に基づいてCRモータ32の温度を推定し、推定温度に応じてCRモータ32に対して発熱制限制御を行う。
1回のドット形成処理当たりのCRモータ32の発熱量Qpass[Y][V]は、CRモータ32の加速・減速時の電流値であるIbase[Y][V]と、CRモータ32の定速時の電流値であるIfukaとを加算して以下のように算出される。(なお、1回のドット形成処理当たりのCRモータ32の駆動時間をtpass[Y][V]とする。)
Qpass[Y][V]=(Ibase[Y][V]+Ifuka)・tpass[Y][V]
移動速度Vと移動距離Yとの各組み合わせ毎に、加速時(及び減速時)の電流値Ibase[Y][V]及び駆動時間tpass[Y][V]が、それぞれIbaseテーブル及びtpassテーブルとしてメモリ63に予め記憶されている。そして、印刷時に移動速度Vと移動距離Yが定まれば、コントローラ60は、テーブルに基づいて、電流値Ibase[Y][V]と駆動時間tpass[Y][V]とを求めることができる。
定速時にCRモータ32に流れる電流Ifukaは、CRモータ32の負荷によって異なるので、電源ON時に計測される(「負荷メジャメント」の項で後述する)。
コントローラ60は、1回のドット形成処理当たりのCRモータ32の発熱量Qpass[Y][V]に基づいて、CRモータ32からの自然放熱を考慮して、CRモータ32の温度を推定する(「温度推定処理」の項で後述する)。
発熱制限制御は、推定されたCRモータ32の温度が閾値に達した時に、開始される。CRモータ32は搬送モータ22と交互に駆動されるので、発熱制限制御では、CRモータ32の間欠的な駆動に休止時間を挿入し、CRモータ32の熱を放出させる(「発熱制限制御」の項で後述する)。
===テーブルの作成===
一般に、発熱量は以下の式で求められる。
Q=K・W (Kは、ある仕事Wを発熱に換算する係数である)
ここで、W=I・R・tである。つまり、Q=I・R・t・Kとなる。CRモータ32の動作に伴う発熱を考えると、RはCRモータの巻線の抵抗であり、定数である。RとKは定数なので、Q∝I・tの関係がある。そこで、以下の説明では、I・tを発熱量と呼ぶ(実際には発熱相当量である)。
<Ibaseテーブルの作成>
図11Aは、モータ負荷の小さいときの時間と電流値との関係のグラフである。図11Bは、モータ負荷の大きいときの時間と電流値との関係のグラフである。
電流値は、加速するときには高くなり、定速域では負荷に逆らっているのでほぼ一定である。CRモータ32の負荷は、レールなどの摺動部分との動摩擦抵抗及び粘性抵抗等によって発生するものである。CRモータ32の定速域における一定電流値Ifukaは、キャリッジ31を負荷に逆らって動かすために必要な電流値である。よって、図に示すように、電流値Ifukaは、負荷が小さいときは小さい値をとり、負荷が大きいときは大きい値をとる。
加速時において、Ifukaを越える部分の電流分(図中の斜線部)は、キャリッジ31の質量Mに起因するイナーシャ分に相当し、これは同じ速度モード(加速モード)では質量Mに依存する一定値である。そこで、図12に示すように、1パス当たりの実効電流値Ipassを、負荷によって変動する電流値Ifukaと、質量Mと加減速モードにのみ依存するイナーシャ分に相当する電流値Ibaseとに分けて求めるようにしている(なお、1回の発熱量をQpassとすると、実効電流値Ipassは、Qpass=Ipass×tpass の関係にある)。このうち、電流値Ifukaは、後述する負荷メジャメントと同様の方法により、実測される(ここでは説明を省略する)。
図13は、Ibaseテーブルの説明図である。このIbaseテーブルは、移動速度Vと移動距離Yとに関連付けて、加速時(及び減速時)の電流値Ibase[Y][V]を記憶したテーブルである。各電流値Ibase[Y][V]は、予め実験で求められたものである。この求め方は、以下の通りである。
まず、1パスの間のCRモータ32の電流値Iを微小時間t毎に逐次測定し、得られた電流値Iの2乗に微小時間tを乗算した値I×tを逐次積算し、この積算値をCRモータの駆動時間tpassで割った値の平方根を算出し、1パス当たりの実効電流値Ipassを算出する。そして、実効電流値Ipassから、実測された電流値Ifukaを減算し、電流値Ibaseを算出する(Ibase=Ipass−Ifuka)。これを各移動速度Vと移動距離Yの全ての組み合わせについて実効電流Ibase[Y][V]を実測計算し、これによりIbaseテーブルを完成させる。そして、作成されたIbaseテーブルは、メモリ63に記憶される。
<tpassテーブルの作成>
図14は、tpassテーブルの説明図である。このtpassテーブルは、移動速度Vと移動距離Yとに関連付けて、1回のドット形成処理当たり(1パス当たり)のCRモータ32の駆動時間tpass[Y][V]を記憶したテーブルである。各移動速度Vと移動距離Yの全ての組み合わせについて予め実験で計測し、これによりtpassテーブルを完成させる。そして、作成されたtpassテーブルは、メモリ63に記憶される。
===負荷メジャメント===
CRモータ32が一定速度で回転するために必要な電流値は、CRモータ32にかかる負荷によって異なる。そこで、電源ON時などの印刷処理前に、プリンタは、以下に説明する負荷メジャメントを行い、CRモータ32が一定速度V1で移動するときにCRモータ32に流れる電流値Ifukaを計測している。
図15は、負荷メジャメント処理のフロー図である。図16は、負荷メジャメント処理時の積分要素76Bのデューティ信号値(出力値)とCRモータ回転速度の時間変化のグラフである。コントローラ60は、電源ON時又はインクカートリッジ交換時に、メモリ63に格納されているプログラムに従ってキャリッジユニット制御回路を制御して、以下の処理を行う。
まず、コントローラ60は、CRモータ32を起動する(S101)。最初の加速域では、コントローラ60は、オープン制御で加速制御を行い、CRモータ32の回転速度が所定の目標速度V1に近づくまでCRモータを加速する。
次に、CRモータ32の回転速度が目標速度V1に近づいたら、オープン制御からPID制御に移行する(S102)。PID制御によりCRモータ32の駆動を続けると、CRモータ32の回転速度と目標速度V1との差が小さくなっていく。
CRモータ32の回転速度と目標速度V1との差が所定値以下となり、積分要素76Bの出力信号値DXIがほぼ一定値になったら、コントローラ60は、積分要素76Bの出力信号値DXIをサンプリング間隔Δtにて記録する(S103)。
サンプリングを開始してからN個の出力信号値を記録したら(S104でYES)、コントローラ60は、サンプリングしたN個の出力信号値に基づいて、その平均値DXI_v1を算出する(S105)。
CRモータ32に印加される一定電圧をVp、CRモータ32の抵抗値をR、CRモータの回転速度をV1、回転速度V1のときにCRモータ32に流れる電流をIfuka、負荷メジャメントにより得られた積分要素76Bの出力信号値の平均値をDXI_v1、モータ逆起電圧係数をkE、デューティパーセント100%を示す積分要素出力値を2000とすると、
Ifuka={Vp×(DXI_v1/2000)−kE×V1}/R
という関係式が成立する。
したがって、この負荷メジャメントにより、積分要素76Bの出力値DXI_v1が分かれば、一定速度V1でキャリッジを駆動するときにCRモータ32に流れる電流値Ifukaを求めることができる(S106)。
但し、CRモータ32には個体差があるため、実際のCRモータのVp、kE、Rの値は、上記計算に用いられたVp、kE、Rと異なる。このため、上記の計算により算出されたIfukaには、モータの個体差によるバラツキのため、誤差を含んでいる。
そこで、本実施形態では、電流値Ifukaを求める際に、上記の関係式にて求められた電流値Ifukaに、計算誤差分の補正値Ifuka_subを加算する。この補正値Ifuka_subの算出方法については、後述する。
===温度推定処理===
<1回のドット形成処理当たり(1パス当たり)の発熱量Qpassについて>
図17は、Qpassテーブルの説明図である。このQpassテーブルは、移動速度Vと移動距離Yとに関連付けて、1回のドット形成処理当たり(1パス当たり)のCRモータの発熱量Qpass[Y][V]を記憶したテーブルである。各発熱量Qpass[Y][V]は、次式により、算出される。
Qpass[Y][V]=(Ibase[Y][V]+Ifuka[Y][V])×tpass[Y][V]
Qpassテーブルの作成過程を説明すると、以下の通りになる。プリンタ出荷前に工場内においてIbaseテーブルとtpassテーブルが作成される。作成されたIbaseテーブルとtpassテーブルは、メモリ63に予め記憶され、プリンタが出荷される。プリンタを購入したユーザが、プリンタを設置して、プリンタの電源を投入すると、負荷メジャメントが行われて、電流値Ifukaが計測される。そして、コントローラ60は、Ibaseテーブルを参照して得られるIbase[Y][V]と、tpassテーブルを参照して得られるtpass[Y][V]と、負荷メジャメントにより計測された電流値Ifukaとに基づいて、1回のドット形成処理当たり(1パス当たり)のCRモータの発熱量Qpass[Y][V]を算出する。そして、コントローラ60は、各移動速度Vと移動距離Yの全ての組み合わせについてQpass[Y][V]を算出し、Qpassテーブルを作成する。
なお、キャリッジ31の往動時と復動時とでは、CRモータ32にかかる負荷が厳密には違うので、実際には、Ibaseテーブル、tpassテーブル、Ifuka及びQpassテーブルには、往動時用と復動時用の2種類ある。但し、本実施形態では、説明を簡単にするため、往動時と復動時を区別することなく、1つのテーブルを共通にしている。
<発熱温度の推定について>
次に、プリンタの電源投入時のQpassテーブル作成後に行われる温度推定処理について説明する。
1回のドット形成処理の際に、コントローラ60は、Qpassテーブルを参照し、移動速度V・移動距離Yに基づいて、そのときの発熱量Qpassを取得する。コントローラ60は、このような発熱量Qpassの取得を、ドット形成処理毎に(1パス毎に)行う。
そして、プリンタの印刷処理時、キャリッジ31は往動と復動を繰り返し、CRモータは発熱を繰り返すので、コントローラ60は、逐次取得した発熱量Qpassを積算する。
ここでは、1分間を単位時間Tboxとし、単位時間内の発熱量Qpassを積算し、単位時間内の発熱量Qsigmaを計算する。発熱量Qsigmaの計算前初期値は「0」であり、単位時間Tbox経過する毎にリセットされる。従って、キャリッジ31が1分間1度も駆動されなかったときの発熱量Qsigmaは「0」となる。
次に、1分間の発熱量Qsigmaを発熱温度(発熱値)ΔTnewに換算する。ΔTnew は、式 ΔTnew =Ka・Qsigma により求まる。ここで、Kaは、発熱量Qから発熱温度ΔTへの変換係数であり、予備実験により求められた値である。熱量Q=κ・ΔT、QはIo・R・tに比例することから、予備実験で、実効電流値Io をt秒通電したときに、モータの発熱温度ΔTo が測定されたとすると、実効電流値Irms をt秒通電したときに、得られる発熱温度ΔTnew は、次式で表される。
ΔTnew =(ΔTo /Io)・Irms
∴ΔTnew ={ ΔTo /(Io・Tbox )}×Qsigma

ここで、{ ΔTo /(Io・Tbox )} をKaとおくと、ΔTnew =Ka・Qsigma となる。実効電流値Io をt秒通電したときのモータの発熱温度ΔTを測定した予備実験から、例えばIo =200 mAでΔTo =20deg.が測定されたとすると、単位時間Tbox =60秒であることから、Ka=0.0000083 になる。よって、単位時間Tbox 当たりの発熱温度ΔTnew は、上記の値をもつ定数(変換係数)Kaを用いて、ΔTnew =Ka・Qsigma により表される。
図18は、CRモータ32の発熱に起因する総発熱温度(総発熱値)を、時間経過による自然放熱を考慮して示したグラフである。グラフに示すように、CRモータ32の最初の1分間の通電による発熱温度(発熱値)をΔT1new 、次の1分間の通電による発熱温度をΔT2new 、さらに次の1分間の通電による発熱温度をΔT3new とする。最初の発熱温度ΔT1new は、時間経過とともに放熱曲線にそって下降し、1分後には自然放熱によりΔT1old に低下する。よって、2分目の総発熱温度ΔT2sum は、ΔT2sum =ΔT1old +ΔT2new で表される。また、2分目の総発熱温度ΔT2sum は、時間経過とともに放熱曲線に沿って下降し、その1分後には自然放熱によりΔT2old に低下する。よって、3分目の総発熱温度ΔT3sum は、ΔT3sum =ΔT2old +ΔT3new で表される。
ここで、ΔTsum が1分後に放熱曲線に沿って下降して達する発熱温度ΔTold は、放熱係数Kを用いて、ΔTold =K・ΔTsum として表される。よって、最新のモータ総発熱温度ΔTsum は、前回の総発熱温度ΔTsum に放熱係数Kを掛けた値に、最新の発熱温度ΔTnew を加えることにより算出され、式 ΔTsum =K・ΔTsum +ΔTnew により求められる。なお、この総発熱温度ΔTsumはCRモータ32の発熱による蓄熱量を発熱温度に変換した値に相当する。従って、熱量から見た場合、前回の蓄熱量に今回の発熱量を加算すると、今回の蓄熱量が求められることになる。
放熱係数Kは予め実験から求められたもので、以下のように設定されている。まずプリンタの系には、図19の温度曲線で示されるキャリッジ駆動中の発熱系と、図20の温度曲線で示されるキャリッジ停止中の放熱系とがある。発熱系と放熱系は共に1次遅れ系であるので、ある時刻tの温度は、時定数Tとおくと、exp (−t/T)で表される。発熱系では、まず飽和発熱温度Tsat を実験で求め、この飽和温度Tsat の63%の値に達する時間が、そのプリンタの系の発熱時定数T1sinkになる。一方、放熱系では、飽和発熱後、キャリッジ停止時点の飽和発熱温度から室温に下がっていくとき、63%分の温度が下がるまでの時間が、そのプリンタの系の放熱時定数T2sinkになる。これらの時定数T1sink、T2sinkは共に実験で求められたものである。
発熱系と放熱系は共に1次遅れ系であるので、ある時刻tの温度exp (−t/T)は、単位時間Tbox である60秒経過したらK倍になるとすると、次の関係式が成立する。
exp (−(t+60)/T)=K・exp (−t/T)
よって、60秒での放熱係数Kは、次式で表される。
K=exp (−60/T)
上式において、時定数Tとして実験で求めた発熱時定数T1sinkを使用すると、発熱系における放熱係数K=exp (−60/T1sink)が求められる。また、上式において、時定数Tとして実験で求めた放熱時定数T2sinkを使用すると、放熱系における放熱係数K=exp (−60/T2sink)が求められる。
本実施形態では、単位時間Tbox(=60秒)当たりのキャリッジ移動回数Ncrをカウンタにて計数し、Ncrが予め設定された設定回数No 以上であるときには、キャリッジ駆動中の発熱系である判断し、発熱時定数T1sinkを使用した放熱係数Kを使用する。一方、キャリッジ移動回数Ncrが設定回数No 未満であるときには、キャリッジ停止中の放熱系であると判断し、放熱時定数T2sinkを使用した放熱係数Kを使用する。よって、総発熱温度ΔTsum は、60秒経過するとそのときの系に応じた放熱係数Kを用いて、K・ΔTsum として計算される。
プリンタの電源を切断するときには、発熱温度(発熱値)ΔTsum は、1バイト化処理された後、EEPROMに1バイトのデータとして記憶される。すなわち、1バイト化係数EEdiv を用いて、ΔTsumEE =ΔTsum /EEdiv により1バイト化される。そして、プリンタ電源投入時に、EEPROMより前回稼働時の最終発熱値ΔTsumEE (1バイト)を取得し、シーケンス計算単位に合わせて、ΔTsum =ΔTsumEE ・EEdiv により展開する。その値を現在の発熱温度として取得し、ΔTsum の初期値とする。もちろん、電源切断後においても、バックアップ電源を用いて、ΔTsum が所定温度(例えば10℃)に降下するまでΔTsum の計算を継続してもよい。
コントローラ60は、算出された総発熱温度ΔTsumをRAM等のメモリ63に記憶する。この総発熱温度ΔTsumは、CRモータの推定温度になる。そして、CRモータの推定温度が所定の閾値を超えたとき、発熱制限制御を開始する。つまり、コントローラ60は、総発熱温度ΔTsumに基づいて、発熱制限制御を行うか否かを決定する。
===発熱制限制御===
図21Aは、通常時(発熱制限制御を行う前)のCRモータ32の電流の時間変化の説明図である。図21Bは、発熱制限制御時のCRモータ32の電流の時間変化の説明図である。なお、CRモータ32の電流値がプラスとマイナスを交互に反転するのは、キャリッジ31が往動と復動とを交互に繰り返すためである。
通常時には、コントローラ60は、所定の間隔にて、CRモータ32を間欠的に駆動する。なお、CRモータ32の間欠的な駆動の合間に、搬送モータ22が駆動され、搬送処理が行われる。
CRモータ32の間欠的な駆動を続けると、CRモータ32の温度が高くなる。しかし、CRモータ32が高温になると、CRモータ32に品質上の問題が生じる恐れがある。一方、CRモータ32の間欠的な駆動を続けると、CRモータ32の温度を推定するための総発熱温度ΔTsumも高くなる。
そこで、本実施形態では、総発熱温度ΔTsumが所定の閾値を超えたとき、コントローラ60は、発熱制限制御を行いながら、CRモータ32を駆動する。
発熱制限制御とは、CRモータ32の間欠的な駆動の間に休止時間を挿入し、CRモータ32の間欠的な駆動の間隔を広げる制御である。この発熱制限制御によれば、単位時間Tbox(=60秒)当たりの発熱量Qsigmaが小さくなり、発熱制限制御中の最新の1分間の発熱温度ΔTnewが小さくなり、ΔTsum =K・ΔTsum +ΔTnewより、総発熱温度ΔTsumが時間の経過と共に小さく変化する。すなわち、発熱制限制御により、CRモータの発熱を抑え、CRモータが高温になるのを防いでいる。
ところで、発熱制限制御が行われると、CRモータ32の駆動間隔が広がるので、印刷速度が遅くなり、1枚当たりの印刷時間が長くなる。そのため、CRモータ32の実際の温度が低いときに発熱制限制御が行われると(CRモータ32の推定温度が実際の温度よりも高く算出されると)、不必要な発熱制限制御が行われてしまい、印刷速度が損なわれてしまう。
特に、CRモータの電圧値Vp、抵抗値R及びモータ逆起電圧係数kEは個体差によるバラツキがあるため、標準的なVp、R、kEを用いてIfukaを算出して発熱量を求めたのでは、推定温度と実際の温度との間に大きな誤差が生じてしまい、不必要な発熱制限制御が行われてしまう。
そこで、本実施形態では、電流値Ifukaを算出する際に、モータ個体差による誤差が小さくなるように補正値Ifuka_subを算出し、標準的なVp、R、kEを用いて算出された電流値Ifukaに計算誤差分の補正値Ifuka_subを加算している。
===補正値Ifuka_sub===
以下の説明において、CRモータの標準の電圧値をVpとし、CRモータの実際の電圧値をVp’と表す(抵抗値R及びモータ逆起電圧係数kEも同様である)。電圧値等の標準の値は、既知である。一方、電圧値等の実際の値は、設計上の範囲内で、個々のモータ毎にバラツキがある。
<補正値Ifuka_subについて>
CRモータ32を一定速度Vで駆動するとき、CRモータ32に流れる電流Ifukaは、次式の通りである。
Ifuka={Vp×(DXI/2000)−kE×V}/R (式1)

上述の負荷メジャメントによる計測では、個々のモータのバラツキを反映したものになるので、CRモータ32に流れる電流値がIfuka_v1のとき、積分要素76Bの出力信号値は、DXI_v1’であり、次式のように表される。
DXI_v1’=(R’×Ifuka_v1’+kE’×V1)×2000/Vp’(式2)

個々のモータのVp’、kE’及びR’は分からないため、標準的な値(Vp、kE、R)を用いて電流値を算出するため、CRモータ32に流れている電流Ifuka_v1’を次式のように計算する。
Ifuka_v1’={Vp’×(DXI_v1’/2000)−kE’×V1}/R’(式3)

このように、個々のモータのVp’、kE’及びR’は分からないため、Ifuka_v1’を直接算出することはできない。そのため、上記の式3のVp’、kE’及びR’の代わりに標準的な値(Vp、kE、R)を用いて電流値を算出した場合、算出された電流値には、誤差が含まれている。
そこで、本実施形態では、以下のように補正値Ifuka_subを用いて、実際の電流値Ifuka_v1’に近似するIfuka_v1を算出している。
Ifuka_v1={Vp×(DXI_v1’/2000)−kE×V1}/R+Ifuka_sub (式4)
この補正値Ifuka_subは、個々のモータに特有の値である。そこで、プリンタを製造する工場内において、以下に説明する方法で、製造対象のそれぞれのプリンタの補正値Ifuka_subを求め、各プリンタのメモリ63に補正値Ifuka_subを記憶させる。そして、プリンタを購入したユーザーの下で負荷メジャメントが行われるとき、コントローラ60は、メモリ63に記憶された補正値Ifuka_subを用いて、上記の式4により電流値Ifukaを算出する。
<補正値Ifuka_subの算出について>
(1)補正値算出関数の作成
図22Aは、本実施形態の補正値算出関数の説明図である。本実施形態では、この補正値算出関数に基づいて、補正値Ifuka_subを算出している。ここでは、この補正値算出関数の作成方法について説明する。
標準的なCRモータの場合、積分要素76Bの出力値DXIは、以下のようになる。
DXI=(R×Ifuka+kE×V)×2000/Vp (式5)

CRモータの速度V1での負荷電流値をIfuka_v1、CRモータの速度V2での負荷電流値をIfuka_v2とする。それぞれの負荷電流値の値は、プリンタの設計上、予め所定の範囲内であることが分かっている。ここでは、CRモータに対する負荷が最も大きい場合での負荷電流値Ifuka_v1及び負荷電流値Ifuka_v2を使って、以下の計算を行う。
標準的なCRモータの場合、それぞれの速度での積分要素76Bの出力信号値DXI_v1及び出力信号値DXI_v2は、以下のように表される。
DXI_v1=(R×Ifuka_v1+kE×V1)×2000/Vp (式6)
DXI_v2=(R×Ifuka_v2+kE×V2)×2000/Vp (式7)

上の2つの式を加算すると、以下のようになる。
DXI_v1+DXI_v2={R×(Ifuka_v1+Ifuka_v2)+kE×(V1+V2)}
×2000/Vp (式8)

モータの特性のバラツキを考慮した場合、負荷電流値Ifuka_v1及び負荷電流値Ifuka_v2に対する積分要素76Bの出力信号値DXI_v1’及び出力信号値DXI_v2’の和は、以下のように表される。
DXI_v1’+DXI_v2’={R’×(Ifuka_v1+Ifuka_v2)
+kE’×(V1+V2)}×2000/Vp’ (式9)

標準的なモータの場合の積分要素76Bの出力信号値DXI_v1及び出力信号値DXI_v2の和と、モータの特性のバラツキを考慮した場合の積分要素76Bの出力信号値DXI_v1’及び出力信号値DXI_v2’の和との差を、DXI_subと称することにする。つまり、DXI_subは、次式の通りになる。
DXI_sub=(DXI_v1+DXI_v2)−(DXI_v1’+DXI_v2’)
={R×(Ifuka_v1+Ifuka_v2)+kE×(V1+V2)}×2000/Vp
−{R’×(Ifuka_v1+Ifuka_v2)+kE’×(V1+V2)}
×2000/Vp’ (式10)
次に、CRモータの速度V1での負荷電流値をIfuka_v1とし、モータの特性のバラツキを考慮して積分要素76Bの出力信号値DXI_v1’を算出すると、以下のようになる。
DXI_v1’=(R’×Ifuka_v1+kE’×V1)×2000/Vp’ (式11)

前述の負荷メジャメントでは、積分要素76Bの出力信号がDXI_v1’である場合、標準的なモータの特性値(Vp、kE、R)を用いて、負荷電流値が算出される。このときの負荷電流値をIfuka_v1’とすると、算出される負荷電流値Ifuka_v1’は、次式の通りである。
Ifuka_v1’={Vp×(DXI_v1’/2000)−kE×V1}/R (式12)

そこで、Ifuka_v1と、このIfuka_v1に基づいて算出される上式のIfuka_v1’との差を、Ifuka_subと称することにする。つまり、Ifuka_subは、次式の通りになる。
Ifuka_sub=Ifuka_v1−Ifuka_v1’ (式13)
=Ifuka_v1−({Vp×(DXI_v1’/2000)−kE×V1}/R)
ところで、標準的なモータにおける電圧値Vpに対して、実際のモータの電圧値Vp’は、95%〜105%の範囲でばらつく。また、標準的なモータにおける逆起電圧定数kEに対して、実際のモータの逆起電圧定数kE’は、90%〜110%の範囲でばらつく。また、標準的なモータにおける抵抗値Rに対して、実際のモータの抵抗値R’は、90%〜110%の範囲でばらつく。
そこで、電圧値Vp’について3通り(95%、100%、105%)、逆起電圧定数kE’について3通り(90%、100%、110%)、抵抗値R’について3通り(90%、100%、110%)、計27通りの組み合わせによりDXI_sub(式10)及びIfuka_sub(式13)を算出する(なお、式13中のDXI_v1’には、式11により算出されるDXI_v1’が用いられる)。そして、X軸をDXI_subとし、Y軸をIfuka_subとするグラフに、27個の点をプロットする。
本実施形態によれば、プロットされた27個の点は、ほぼ1直線上に並ぶ。そして、プロットされた点よりも上になるように、次式で表される補正値算出関数を作成する。
Ifuka_sub=a×DXI_sub+b
例えば、図中の補正値算出関数の場合、a=0.7、b=53.9である。プリンタ製造業者は、プリンタ製造ラインを管理するコンピュータのデータベースに、作成された補正値算出関数を保存する。
(2)各プリンタの補正値Ifuka_subの決定
次に、プリンタの製造ラインにおいて、個々のプリンタ毎に補正値Ifuka_subを決定する。ここでは、個々のプリンタのCRモータの特性値(Vp’、kE’、R’)は、分からない状態である。なお、負荷電流値Ifuka_v1及びIfuka_v2は、プリンタの設計上所定の範囲内であることが分かっているので、ここでは、CRモータに対する負荷が最も大きい場合での負荷電流値Ifuka_v1及び負荷電流値Ifuka_v2の値を用いる。
まず、個々のプリンタ毎に、CRモータが速度V1で回転するときの積分要素76Bの出力信号値DXI_v1’と、CRモータが速度V2で回転するときの積分要素76Bの出力信号値DXI_v2’とを測定する。
一方、標準的なモータの特性値(Vp、kE、R)を用いて、負荷電流値Ifuka_v1及び負荷電流値Ifuka_v2に基づいて、次式の通り、積分要素76Bの出力信号DXI_v1と出力信号DXI_v2との和を算出することができる。
DXI_v1+DXI_v2={R×(Ifuka_v1+Ifuka_v2)+kE×(V1+V2)}
×2000/Vp (式14)

そして、次式の通り、式14により算出された出力信号DXI_v1及び出力信号DXI_v2の和と、測定された出力信号値DXI_v1’及び出力信号値DXI_v2’の和との差を算出し、DXI_subを算出する。
DXI_sub=(DXI_v1+DXI_v2)−(DXI_v1’+DXI_v2’) (式15)
そして、個々のプリンタ毎に算出されるDXI_subと、プリンタ製造ラインのデータベースにある補正値算出関数とに基づいて、個々のプリンタ毎に、補正値Ifuka_subを決定する。なお、上記の式14により算出されるDXI_v1+DXI_v2は、プリンタの個体差によらず、一定値である。そのため、DXI_subは、測定された出力信号値DXI_v1’及び出力信号値DXI_v2’の和に基づいて、算出される値となる。
決定されたIfuka_subは、各プリンタのメモリ63に記憶される。そして、その後、プリンタは、工場から出荷され、ユーザーの下に届く。
プリンタがユーザーの下で印刷を行うとき、コントローラ60は、CRモータ32をPWM制御にて駆動する。PWM制御を行っているので、CRモータ32に流れる電流値Ifukaは、直接分からない状態である。そこで、電源投入時に、ユーザーの下で前述の負荷メジャメントが行われ、積分要素76Bの実際の出力信号値DXI’を測定し、この測定値に基づいてCRモータ32に流れる電流値Ifukaを算出する。但し、負荷メジャメントでは、標準的なモータの特性値(Vp、kE、R)を利用して演算するので、モータの個体差によるバラツキのため、誤差を含んでいる。
そこで、本実施形態では、コントローラ60は、ユーザーの下で印刷前に算出されるIfukaに、メモリ63に記憶されている計算誤差分の補正値Ifuka_subを、加算する。つまり、本実施形態では、Ifukaを以下のように算出する。
Ifuka_v1={Vp×(DXI_v1’/2000)−kE×V1}/R+Ifuka_sub
本実施形態によれば、プリンタ内のCRモータ32に実際に流れる電流値を、精度良く算出することができる。
そして、本実施形態では、コントローラ60は、補正値Ifuka_subを加算して得られた電流値Ifukaに基づいて、前述の温度推定処理及び発熱制限制御を行っている。これにより、CRモータの実際の温度を精度良く推定することができる。また、CRモータの実際の温度に応じて発熱制限制御が行われるので、不要な発熱制限制御が行われずに済み、印刷速度を高めることができる。
(3)比較例について
図22Bは、比較例の補正値算出関数の説明図である。同図の比較例では、「出力信号値DXI_v1及び出力信号値DXI_v2の差」と「出力信号値DXI_v1’及び出力信号値DXI_v2’の差」との差に基づいて、DXI_subを算出している。なお、本実施形態では、「出力信号値DXI_v1及び出力信号値DXI_v2の和」と「出力信号値DXI_v1’及び出力信号値DXI_v2’の和」との差に基づいて、DXI_subを算出している。
比較例によれば、本実施形態と比較して、プロットされる点がバラバラになる。
図23Aは、本実施形態のDXI_subとIfuka_subの算出方法により、CRモータの負荷が大きい状態と小さい状態について点をプロットしたものである。図23Bは、比較例のDXI_subとIfuka_subの算出方法により、CRモータの負荷が大きい状態と小さい状態について点をプロットしたものである。CRモータ32の負荷が大きい状態の点を黒丸で示し、CRモータ32の負荷が小さい状態の点を白四角で示す。
CRモータにかかる負荷は、キャリッジ31に搭載されるインクカートリッジ内のインク残量に応じて変化する。インクカートリッジ内にインクが多く残っていれば、インクカートリッジが重くなり、CRモータにかかる負荷が大きくなる。
前述の補正値算出関数の作成の際には、CRモータ32にかかる負荷が最も大きい状態で算出されている。このため、CRモータ32にかかる負荷が大きい状態であれば、補正値算出関数により、適した補正値Ifuka_subを算出することができる。一方、CRモータ32にかかる負荷が小さいとき、補正値算出関数により補正値Ifuka_subを算出すると、補正値Ifuka_subが必要以上に大きな値となる。この結果、算出される負荷電流値Ifukaが実際の負荷電流値よりも大きな値になり、CRモータ32の推定温度が実際の温度よりも高く推定され、CRモータ32の実際の温度が低くても発熱制限制御が開始されてしまう。
但し、本実施形態によれば、CRモータ32にかかる負荷が小さいとき、比較例と比べて、算出される補正値が大きくなりすぎないようにすることができる。そのため、本実施形態によれば、比較例と比べて、算出される負荷電流値Ifukaが小さな値になり、CRモータ32の推定温度が低く設定され、不必要な発熱制限制御が行われずに済み、印刷速度を高めることができる。
===その他の実施の形態===
一実施形態としてのプリンタ等を説明したが、上記の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは言うまでもない。特に、以下に述べる実施形態であっても、本発明に含まれるものである。
<インクについて>
前述の実施形態は、プリンタの実施形態だったので、染料インク又は顔料インクをノズルから吐出していた。しかし、ノズルから吐出する液体は、このようなインクに限られるものではない。例えば、金属材料、有機材料(特に高分子材料)、磁性材料、導電性材料、配線材料、成膜材料、電子インク、加工液、遺伝子溶液などを含む液体(水も含む)をノズルから吐出しても良い。このような液体を対象物に向かって直接的に吐出すれば、省材料、省工程、コストダウンを図ることができる。
<ノズルについて>
前述の実施形態では、圧電素子を用いてインクを吐出していた。しかし、液体を吐出する方式は、これに限られるものではない。例えば、熱によりノズル内に泡を発生させる方式など、他の方式を用いてもよい。
<CRモータの駆動について>
前述の実施形態では、CRモータ32が加速・定速・減速する間のうち、CRモータ32が定速駆動されるときだけ、PID制御が行われていた。しかし、これに限られるものではない。例えば、CRモータ32が加速・定速・減速する間、ずっとPID制御が行われていてもよい。
<発熱量の算出について>
前述の実施形態では、1回のドット形成処理当たりのCRモータの発熱量Qpassは、CRモータ32の加速・減速時の電流値であるIbaseと、CRモータ32の定速時の電流値であるIfukaとを加算して得られる実効電流値Ipassに基づいて、算出されていた。しかし、1回のドット形成処理当たりのCRモータの発熱量は、このようにして算出されるものに限られない。
例えば、1回のドット形成処理当たりのCRモータ32の発熱量Qpassが、CRモータ32の加速時の発熱量である加速時発熱量Qbaseと、CRモータ32の定速時の発熱量である定速時発熱量Qcとを加算して算出されても良い。
この場合、加速時発熱量Qbaseとキャリッジの移動量(目標位置)とを対応づけたテーブルが、メモリ63に予め記憶されている。目標位置が定まれば、コントローラ60は、テーブルに基づいて、加速時発熱量Qbaseを求めることができる。また、定速時発熱量Qcは、定速時にCRモータ32に流れる電流Ifukaと、定速で回転する間の時間tcとに基づいて、算出することができる。定速時にCRモータ32に流れる電流Ifukaは、前述の負荷メジャメントにより計測される。定速で回転する間の時間tcは、実際の印刷時に計測される。
以下、発熱量Qpassの算出方法の別の実施形態について詳述する。
図24は、加速時発熱量Qbaseの計測方法の説明図である。
まず、実際の印刷時と同じ駆動モードにて、CRモータ32を駆動する。そして、CRモータ32に流れる電流値Iを微小時間Δt毎に逐次測定する。そして、測定された電流値Iの2乗に微小時間Δtを乗算した値I・tを逐次積算する。この積算結果は、加速時発熱量Qbaseに相当する。そして、キャリッジの移動量と加速時発熱量Qbaseとを対応づけた加速時発熱量テーブルを作成する。
図25は、作成された加速時発熱量テーブルである。加速時発熱量テーブルの作成は、プリンタを製造する工場内において行われる。そして、作成された加速時発熱量テーブルはメモリ63に記憶され、このような加速時発熱量テーブルをメモリ63に記憶させた状態で、プリンタが工場から出荷される。なお、本実施形態の加速時発熱量テーブルは、加速期間に関する情報も含んでいる。
そして、1回のドット形成処理当たりのCRモータ32の発熱量Qpassを算出する。発熱量Qpassは、加速時発熱量Qbaseと定速時発熱量Qcとを加算して算出される。
加速時発熱量Qbaseは、移動量が定まれば、加速時発熱量テーブルを参照して求めることができる。定速時発熱量Qcは、定速時にCRモータ32に流れる電流値Ifukaと、定速で回転する間の時間tcとに基づいて、Ifuka×tcとして算出できる。なお、電流値Ifukaは、印刷前に行う負荷メジャメントにより計測されている。定速で回転する間の時間tcは、ドット形成処理時のCRモータの駆動時間trを実測し、この駆動時間から加速期間taを引けばよい。なお、加速期間taは、搬送量が定まれば、加速時発熱量テーブルを参照して求めることができる。
例えば、移動量が1500mmの場合について説明する。コントローラ60は、印刷データを解析し、次のドット形成処理のキャリッジの移動量を1500mmに決定する。コントローラ60は、リニア式エンコーダ51の出力に基づいてフィードバック制御を行いながら、キャリッジ31を1500mmだけ移動させる。そして、不図示の駆動時間タイマにより、CRモータ32が目標位置まで駆動する間の駆動時間trを実測する。CRモータ32の駆動後、コントローラ60は、次式に基づいて、発熱量Qpassを算出する。なお、次式の中のQb1及びta1は、加速時発熱量テーブルを参照することによって、決定される値である。また、次式の中のIfukaは、前述の負荷メジャメントにより測定された電流値である。
Qpass=Qb1+Ifuka×(tr−ta1)
(=Qbase+Qc)
<温度推定処理について>
前述の実施形態では、単位時間内の発熱量Qsigmaを計算し、1分間の発熱量Qsigmaを発熱温度ΔTnewに換算し、前回の総発熱温度ΔTsum に放熱係数Kを掛けた値に、最新の発熱温度ΔTnew を加えることによって、最新のモータの総発熱温度ΔTsumを算出していた。しかし、単位時間毎に計算するものに限られるものではない。
例えば、ドット形成処理を行う毎にCRモータ32が発熱するので、ドット形成処理毎に最新のモータの総発熱温度ΔTsumを算出しても良い。
図26は、温度推定処理のフロー図である。
電源投入後、まず、コントローラ60は、ΔTsumの値を初期値に設定する(S201)。
ドット形成処理があったとき、コントローラ60は、そのドット形成処理の際の発熱量Qpassを算出する(S202)。この算出方法については、既に説明した通りである。
次に、コントローラ60は、発熱量Qpassを発熱温度ΔTに換算する(S203)。ΔTは、ΔT=Ka×Qpassにより求まる。ここで、Kaは、発熱量Qから発熱温度ΔTへの変換係数であり、予備実験により求められた値であり、メモリ63に記憶されている。
次に、コントローラ60は、自然放熱を考慮して、既存の総発熱温度ΔTsumに放熱係数Kを乗算した値と発熱温度ΔTとを加算して、総発熱温度ΔTsum(ΔTsum=K・ΔTsum+ΔT)を算出する(S204)。
放熱係数Kは、前回のΔTsumの算出から時間tが経過したものとし、時定数をτとすると、K=exp(−t/τ)となる。時定数τは、予備実験により求められた値であり、メモリ63に記憶されている。CRモータ32の間欠的な駆動に休止時間が挿入されると、放熱係数Kを算出に用いられる時間tが大きくなるので、放熱係数Kが小さい値になる。このため、CRモータ32の休止時間が長くなると、総発熱温度ΔTsumの増加を抑制できる。
コントローラ60は、算出された総発熱温度ΔTsumをRAM等のメモリ63に記憶する(S205)。この総発熱温度ΔTsumは、CRモータの推定温度になる。また、総発熱温度ΔTsumは、次の搬送処理のときに総発熱温度ΔTsumを算出するときに用いられる。また、コントローラ60は、この総発熱温度ΔTsumに基づいて、発熱制限制御を行うか否かを決定する。
なお、温度推定処理は、CRモータ32の駆動・停止にかかわらず、電源投入中は常時実行される(S206でNO)。
以上のような処理でも、CRモータの温度を推定することができる。
<発熱制限制御について>
前述の実施形態によれば、CRモータ32の推定温度が閾値を越えたか否かに基づいて、発熱制限制御を行うか否かを決定している。しかし、CRモータ32の推定温度に応じて、発熱制限制御における休止時間の長さを決定するようにしても良い。
===まとめ===
(1)前述の実施形態のプリンタは、CRモータ32と、CRモータ32を制御するためのPID制御系(比例要素76A、積分要素76B、微分要素76C)と、補正値を記録するためのメモリ63とを備えている。そして、このプリンタは、プリンタを購入したユーザー先で印刷を行う前に、負荷メジャメントを行い、積分要素76Bの出力信号値に基づいて電流値を算出し、この電流値に補正値Ifuka_subを加算して、CRモータ32に流れる電流値Ifukaを算出している。
このようなプリンタを製造する工場では、CRモータ32の特性に適した補正値を各プリンタに設定する必要がある。
そこで、本実施形態では、CRモータ32の特性(例えば、電圧値、逆起電圧定数、抵抗値など)が変動したときの、CRモータ32が速度V1にて駆動されるときの積分要素76Bの出力信号値DXI_v1、及び、CRモータ32が速度V2にて駆動されるときの積分要素76Bの出力信号値DXI_v2、の和と、補正値Ifuka_subとの関係を示す補正値算出関数を予め求めている。
仮に、出力信号値DXI_v1及び出力信号値DXI_v2の和と補正値との関係ではなく、出力信号値DXI_v1及び出力信号値DXI_v2の差と補正値との関係から補正値算出関数を求めると、図23Bに示すような状態になる。図23Bに示すような補正値算出関数から各プリンタの補正値を算出すると、補正値に含まれる計算誤差が大きくなる。
したがって、本実施形態によれば、補正値に含まれる計算誤差を小さくできる補正値算出関数を利用できるのである。
そして、本実施形態では、プリンタを製造する工場において、製造対象となるプリンタのCRモータを速度V1で駆動したときの積分要素76Bの出力信号値DXI_v1’を測定し、また、CRモータを速度V2で駆動したときの積分要素76Bの出力信号値DXI_v1’を測定し、DXI_v1’及びDXI_v2’(測定された2つの出力信号値の和)と補正値算出関数から補正値Ifuka_sub(式15参照)を決定している。これにより、そのCRモータ32に適した補正値を決定することができる。
本実施形態で製造されるプリンタは、このような補正値をメモリ63に記憶しているので、各プリンタは、負荷メジャメントの際に、CRモータ32に流れる電流値を精度良く算出することができる。
(2)前述のプリンタのモータの特性値は、所定範囲内で変動するものであった。例えば、標準的なCRモータ32における電圧値Vpに対して、実際のCRモータ32の電圧値Vp’は、95%〜105%の範囲で変動する。
この所定範囲内でVp’、kE’及びR’を変えてDXI_subとIfuka_subを算出し、横軸をDXI_subとし縦軸をIfuka_subとするグラフにプロットしていく。なお、DXI_subとIfuka_subの算出には、CRモータ32の標準的な特性値(Vp、kE、R)と、所定範囲内で変動するモータの特性値(Vp’、kE’、R’)とが用いられる。本実施形態では、計算誤差が少ないので、プロットされた点は、ほぼ1直線上に並ぶ。そして、プロットされた点よりも上になるようにして、Ifuka_sub=a×DXI_sub+bで表される補正値算出関数を作成する。
このような補正値算出関数により補正値を算出すれば、算出された補正値は、各モータの特性に適した値になる。
(3)前述の補正値算出関数(関係)の横軸DXI_subは、(DXI_v1+DXI_v2)−(DXI_v1’+DXI_v2’)として算出される。なお、DXI_v1及びDXI_v2は、CRモータ32の特性が標準であるときの、CRモータ32が速度V1にて駆動されるときの積分要素76Bの出力値、及び、CRモータ32が速度V2にて駆動されるときの積分要素76Bの出力値である。また、DXI_v1’及びDXI_v2’は、実際のCRモータにおいて、CRモータ32が速度V1にて駆動されるときの積分要素76Bの出力値、及び、CRモータ32が速度V2にて駆動されるときの積分要素76Bの出力値である。
なお、DXI_v1+DXI_v2は、設計上の値から算出可能なので、予め算出し、算出結果を定数として保存しても良い。
このような横軸DXI_subと補正値Ifuka_subの関係を示す補正値算出関数によれば、各モータの特性に適した補正値を算出することが可能になる。
(4)前述のプリンタは、印刷を行うときにCRモータにかかる負荷が変化する。このようにモータにかかる負荷が変化する場合、負荷が大きい場合と負荷が小さい場合とで、適した補正値が異なる。例えば、図23Aから分かる通り、負荷が小さければ、負荷が大きい場合と比較して、補正値算出関数の示す補正値Ifuka_subが低い値になるはずであるこのため、負荷の変動にかかわらず共通の補正値算出関数を用いると、適した補正値に対して、大きい値の補正値が算出されてしまう。
但し、本実施形態によれば、たとえ大きい値の補正値が算出されたとしても、比較例(図23B)と比べて、計算誤差を小さくできる。
なお、モータにかかる負荷の変化が予め分かっていれば、負荷の大きさに応じて補正値算出関数を変えても良い。例えば、負荷の大きい場合の補正値算出関数と、負荷の小さい場合の補正値算出関数とをデータベースに記憶させていても良い。このようにすれば、計算誤差をより小さくすることができる。
(5)前述のプリンタは、インクカートリッジを装着するためのキャリッジを備え、CRモータは、キャリッジを移動させている。インクカートリッジはインクの残量に応じて重さが異なるので、CRモータの負荷も変動することになる。
本実施形態では、このようなCRモータに対する補正値の算出に特に有効である。但し、これに限られるものではなく、搬送モータに対して、前述の実施形態と同様に補正値を求めても良い。
(6)前述のCRモータ32は、PWM制御により駆動されている。コントローラは、PWM制御によりCRモータ32を駆動するので、CRモータ32に流れる電流値Ifukaが、直接分からない状態である。このため、コントローラは、積分要素76Bの出力信号値DXIに基づいてIfukaを算出しているのである。そして、前述の実施形態によれば、CRモータ32に流れる電流値を精度良く算出することができる。
(7)前述のプリンタは、印刷時に、CRモータ32に流れる電流値Ifukaに基づいて、CRモータ32の発熱量を算出している。これにより、温度センサを設けなくても、CRモータ32の温度を推定することができる。また、本実施形態によれば、CRモータ32の発熱量を精度良く算出することができる。
(8)前述のプリンタは、印刷時に、CRモータ32に流れる電流値Ifukaに基づいて、CRモータ32の停止時間を決定している。具体的には、Ifukaに基づいて発熱量Qpassを算出し、この発熱量に基づいて算出される推定温度が閾値を超えたとき、発熱制限制御が開始され、CRモータの間欠的な駆動の間に停止時間が挿入されるようになる。
発熱制限制御が行われると、印刷速度が遅くなる。但し、前述のプリンタによれば、精度良くCRモータ32の温度を算出できるので、不必要な発熱制限制御が行われずに済む。
印刷システムの全体構成の説明図である。 プリンタの全体構成のブロック図である。 プリンタの全体構成の概略図である。 プリンタの全体構成の横断面図である。 印刷時の処理のフロー図である。 搬送ユニットの構成の説明図である。 ロータリー式エンコーダの構成の説明図である。 図8Aは、正転時の出力信号の波形のタイミングチャートである。図8Bは、反転時の出力信号の波形のタイミングチャートである。 キャリッジユニット制御回路のブロック図である。 図10Aは、PWM回路に入力されるデューティ信号の時間変化のグラフである。図10Bは、モータの速度変化のグラフである。 図11Aは、モータ負荷の小さいときの時間と電流値との関係のグラフである。図11Bは、モータ負荷の大きいときの時間と電流値との関係のグラフである。 CRモータの負荷電流と加減速電流とを説明するグラフである。 Ibaseテーブルの説明図である。 tpassテーブルの説明図である。 負荷メジャメント処理のフロー図である。 負荷メジャメント処理時の積分要素のデューティ信号値(出力値)とCRモータ回転速度の時間変化のグラフである。 Qpassテーブルの説明図である。 CRモータの発熱に起因する総発熱温度(総発熱値)を、時間経過による自然放熱を考慮して示したグラフである。 発熱系の放熱温度曲線を示すグラフである。 放熱系の放熱温度曲線を示すグラフである。 図21Aは、通常時のCRモータの電流の時間変化の説明図である。図21Bは、発熱制限制御時のCRモータの電流の時間変化の説明図である。 図22Aは、本実施形態の補正値算出関数の説明図である。図22Bは、比較例の補正値算出関数の説明図である。 図23Aは、本実施形態のDXI_subとIfuka_subの算出方法によりプロットしたものである。図23Bは、比較例のDXI_subとIfuka_subの算出方法によりプロットしたものである。 加速時発熱量Qbaseの計測方法の説明図である。 作成された加速時発熱量テーブルである。 温度推定処理のフロー図である。
符号の説明
1 プリンタ、
20 搬送ユニット、21 給紙ローラ、22 搬送モータ(PFモータ)、
23 搬送ローラ、24 プラテン、25 排紙ローラ、
30 キャリッジユニット、31 キャリッジ、
32 キャリッジモータ(CRモータ)、
40 ヘッドユニット、41 ヘッド、
50 検出器群、51 リニア式エンコーダ、52 ロータリー式エンコーダ、
521 スケール、 522 検出部、
53 紙検出センサ、54 光学センサ、
60 コントローラ、61 インターフェース部、62 CPU、
63 メモリ、64 ユニット制御回路、
70 キャリッジユニット制御回路、71 位置演算部、72 減算器、
73 ゲイン、74 速度演算部、75 減算器、
76A 比例要素、76B 積分要素、76C 微分要素、
77 加算器、78 PWM回路、79A 加速制御部、79B タイマ、
100 印刷システム、110 コンピュータ、120 表示装置、
130 入力装置、130A キーボード、130B マウス、
140 記録再生装置、
140A フレキシブルディスクドライブ装置、
140B CD−ROMドライブ装置

Claims (8)

  1. (1)モータと、前記モータを制御するためのPID制御系と、補正値を記録するためのメモリとを備え、
    前記PID制御系の積分要素の出力値と前記補正値に基づいて、前記モータに流れる電流値を算出する
    プリンタの、前記補正値を算出する方法であって、
    (2)前記モータの特性値は、所定範囲内で変動するものであり、
    (3)前記モータの特性が標準であるときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和に相当する値と、
    モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和
    の差と前記補正値との関係を予め求め、
    (4)製造対象となるプリンタの前記モータを第1の速度にて駆動して、そのときの前記積分要素の出力値を測定し、
    そのプリンタの前記モータを第2の速度にて駆動し、そのときの前記積分要素の出力値を測定し、
    測定された2つの前記出力値の和と前記関係とに基づいて補正値を決定する
    ことを特徴とする補正値算出方法。
  2. 請求項1に記載の補正値算出方法であって、
    前記プリンタは、印刷を行うとき前記モータにかかる負荷が変化することを特徴とする補正値算出方法。
  3. 請求項2に記載の補正値算出方法であって、
    前記プリンタは、インクカートリッジを装着するためのキャリッジを備え、
    前記モータは、前記キャリッジを移動させる
    ことを特徴とする補正値算出方法。
  4. 請求項1〜3のいずれかに記載の補正値算出方法であって、
    前記モータは、PWM制御により駆動されることを特徴とする補正値算出方法。
  5. 請求項1〜4のいずれかに記載の補正値算出方法であって、
    前記プリンタが印刷を行うとき、前記プリンタは、前記モータに流れる電流値に基づいて、前記モータの発熱量を算出することを特徴とする補正値算出方法。
  6. 請求項1〜5のいずれかに記載の補正値算出方法であって、
    前記プリンタが印刷を行うとき、前記プリンタは、前記モータに流れる電流値に基づいて、前記モータの停止時間を決定することを特徴とする補正値算出方法。
  7. モータと、前記モータを制御するためのPID制御系と、補正値を記録するためのメモリとを備え、
    前記PID制御系の積分要素の出力値と前記補正値に基づいて、前記モータに流れる電流値を算出する
    プリンタの、前記補正値を算出する方法であって、
    モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和と、前記補正値との関係を予め求め、
    製造対象となるプリンタの前記モータを第1の速度にて駆動して、そのときの前記積分要素の出力値を測定し、
    そのプリンタの前記モータを第2の速度にて駆動し、そのときの前記積分要素の出力値を測定し、
    測定された2つの前記出力値の和と前記関係とに基づいて補正値を決定し、
    前記モータの特性値は、所定範囲内で変動するものであり、
    前記モータの標準的な特性値と、前記所定範囲内で変動する前記モータの特性値とに基づいて、前記関係を求め、
    前記関係は、
    前記モータの特性が標準であるときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和に相当する値と、
    モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和と、
    の差と前記補正値との関係であり、
    前記プリンタは、印刷を行うとき前記モータにかかる負荷が変化するものであり、
    前記プリンタは、インクカートリッジを装着するためのキャリッジを備えるものであり、
    前記モータは、前記キャリッジを移動させ、PWM制御により駆動されるものであり、
    前記プリンタは、前記プリンタが印刷を行うとき、前記モータに流れる電流値に基づいて、前記モータの発熱量を算出するものであり、
    前記プリンタは、前記プリンタが印刷を行うとき、前記モータに流れる電流値に基づいて、前記モータの停止時間を決定するものであり、
    前記プリンタは、
    印刷を行うとき、前記モータにより移動対象物を加速させ、一定速度で前記移動対象物を移動させて、目標位置まで前記移動対象物を移動させるものであり、
    前記印刷を行う前に、前記一定速度で前記移動対象物を移動させる際の前記積分要素の出力値を測定するものであり、
    印刷を行うときに、前記一定速度で前記移動対象物を移動させる際に前記モータに流れる電流を、前記積分要素の出力値と前記補正値に基づいて、算出するものである
    ことを特徴とする補正値算出方法。
  8. (1)モータと、前記モータを制御するためのPID制御系と、補正値を記録するためのメモリとを備え、
    前記PID制御系の積分要素の出力値と前記補正値に基づいて、前記モータに流れる電流値を算出する
    プリンタを、製造する方法であって、
    (2)前記モータの特性値は、所定範囲内で変動するものであり、
    (3)前記モータの特性が標準であるときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和に相当する値と、
    モータの特性が変動したときの、前記モータが第1の速度にて駆動されるときの前記積分要素の出力値、及び、前記モータが第2の速度にて駆動されるときの前記積分要素の出力値、の和
    の差と前記補正値との関係を予め求め、
    (4)製造対象となるプリンタの前記モータを第1の速度にて駆動して、そのときの前記積分要素の出力値を測定し、
    そのプリンタの前記モータを第2の速度にて駆動し、そのときの前記積分要素の出力値を測定し、
    測定された2つの前記出力値の和と前記関係とに基づいて決定される補正値を、そのプリンタの前記メモリに記録する
    ことを特徴とするプリンタ製造方法。
JP2005014260A 2004-03-31 2005-01-21 補正値算出方法及びプリンタ製造方法 Expired - Fee Related JP4543939B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005014260A JP4543939B2 (ja) 2004-03-31 2005-01-21 補正値算出方法及びプリンタ製造方法
US11/094,847 US7132814B2 (en) 2004-03-31 2005-03-31 Method of calculating correction value and method of manufacturing printer

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004105572 2004-03-31
JP2004167777 2004-06-04
JP2005014260A JP4543939B2 (ja) 2004-03-31 2005-01-21 補正値算出方法及びプリンタ製造方法

Publications (2)

Publication Number Publication Date
JP2006015724A JP2006015724A (ja) 2006-01-19
JP4543939B2 true JP4543939B2 (ja) 2010-09-15

Family

ID=35059938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005014260A Expired - Fee Related JP4543939B2 (ja) 2004-03-31 2005-01-21 補正値算出方法及びプリンタ製造方法

Country Status (2)

Country Link
US (1) US7132814B2 (ja)
JP (1) JP4543939B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11483445B2 (en) 2019-04-22 2022-10-25 Hewlett-Packard Development Company, L.P. Temperature estimation of DC motor based on sensing voltage

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4379366B2 (ja) * 2005-03-29 2009-12-09 ブラザー工業株式会社 媒体端部検出装置及び画像記録装置
US7253580B2 (en) * 2005-05-06 2007-08-07 Marvell International Technology Ltd. Method and apparatus for adaptive motor speed control
EP2125377B1 (en) * 2006-12-22 2010-06-09 Océ-Technologies B.V. Imaging system for processing a media
US7696712B2 (en) * 2007-08-28 2010-04-13 Rockwell Automation Technologies, Inc. Motor controller providing position feedback correction
JP2009148082A (ja) * 2007-12-14 2009-07-02 Konica Minolta Business Technologies Inc 画像形成装置
EP2975302B1 (en) 2013-03-12 2017-11-29 JATCO Ltd Vehicle control device and vehicle control method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH047602A (ja) * 1990-04-25 1992-01-13 Yaskawa Electric Corp Pid制御方法
JP2004040839A (ja) * 2002-06-28 2004-02-05 Brother Ind Ltd モータ制御方法およびモータ制御装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111384A (en) * 1998-05-26 2000-08-29 Eastman Kodak Company Method for controlling motor speed
JP3757834B2 (ja) 2001-08-31 2006-03-22 セイコーエプソン株式会社 モータ制御装置及びプリンタ
US6949896B2 (en) * 2002-12-03 2005-09-27 Ricoh Company, Limited Apparatus for and method of driving motor to move object at a constant velocity

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH047602A (ja) * 1990-04-25 1992-01-13 Yaskawa Electric Corp Pid制御方法
JP2004040839A (ja) * 2002-06-28 2004-02-05 Brother Ind Ltd モータ制御方法およびモータ制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11483445B2 (en) 2019-04-22 2022-10-25 Hewlett-Packard Development Company, L.P. Temperature estimation of DC motor based on sensing voltage

Also Published As

Publication number Publication date
JP2006015724A (ja) 2006-01-19
US20050225279A1 (en) 2005-10-13
US7132814B2 (en) 2006-11-07

Similar Documents

Publication Publication Date Title
US9199492B2 (en) Motor control device, fluid ejection device, and motor control method
JP4543939B2 (ja) 補正値算出方法及びプリンタ製造方法
US20040052565A1 (en) Motor controller
JP2005082289A (ja) 記録装置
JP4543967B2 (ja) モータ制御装置及び印刷装置
JP2012029457A (ja) モーター制御装置及びモーター制御方法
US20050195226A1 (en) Printer-control apparatus, printer-control method and printer
JP3570617B2 (ja) Dcモータ制御装置及び制御方法
JP5806447B2 (ja) 印刷装置
JP2019166761A (ja) モーター制御方法およびモーター制御装置
JP4552543B2 (ja) モータの過熱判定装置、モータの過熱判定方法、モータの過熱判定プログラム、モータ制御装置、モータ制御方法及び印刷装置
JP2003079172A (ja) モータ制御装置及びプリンタ
US20090219552A1 (en) Apparatus for carrying a printing medium, printer that has the apparatus, method for carrying a printing medium and printer
JP2003023783A (ja) モータ制御方法、モータ制御装置、プリンタ、コンピュータプログラム、及び、コンピュータシステム
JP2003159857A (ja) 記録装置におけるモータ制御方法及び記録装置
JP7327026B2 (ja) 駆動システム
JP4552544B2 (ja) モータの過熱判定装置、モータの過熱判定方法、モータの過熱判定プログラム、モータ制御装置、モータ制御方法及び印刷装置
JP4289923B2 (ja) モータ制御装置
JP2001224189A (ja) モータ制御方法及び制御装置
JP2004098678A (ja) 記録装置及びその制御方法
JP5071073B2 (ja) モータ制御装置、プリンタおよび駆動制御方法
JP2001142537A (ja) プリンタ用モータの制御装置および制御方法ならびに制御プログラムを記録した記録媒体
JP2001186785A (ja) モータの制御装置およびその制御方法ならびにモータの制御プログラムを記録した記録媒体
JP4586665B2 (ja) 印刷装置、スティックスリップ対応方法、プログラム、および印刷システム
JP2005178142A (ja) プリンタ制御装置及びプリンタ制御方法並びにプリンタ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100521

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: 20100608

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100621

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees