以下、図面を参照して、実施の形態の説明を行う。なお、各図において、既に説明した図と同一部分には同一符号を付し、その説明を省略する場合がある。
〈第1の実施の形態〉
始めに、エンコーダを有する一般的な回転速度制御装置に関して説明する。図1は、エンコーダを有する一般的な回転速度制御装置を例示する図(その1)である。図1を参照するに、回転速度制御装置1Aは、エンコーダ10と、回転軸13aを有するモータ13と、ギア14と、ギア15と、回転軸16と、パルス検出手段17と、制御部18と、駆動手段19と、通信手段20とを有する。エンコーダ10は、スリット11xを有するコードホイール11と、パルス発生手段12とを有する。
モータ13は、印加される電圧等に応じて回転軸13aが回転する回転体である。ギア14は、モータ13の回転軸13aに同軸的に固定されている。ギア15とエンコーダ10のコードホイール11とは回転軸16に同軸的に固定されており、ギア15はギア14と噛み合っている。ギア14、ギア15及びコードホイール11は、略円盤状に形成されている。図2に示すように、コードホイール11は、後述するパルス発生手段12が出射する光を遮蔽する材料で形成された回転板である。コードホイール11の外周近傍にはパルス発生手段12が出射する光を透過する回転速度検出用パターンであるスリット11xが周方向に沿って略等間隔で全周に亘り形成されている。又、コードホイール11の中心部近傍には、回転軸16が挿入される貫通孔11yが設けられている。
パルス発生手段12は略コの字型の光センサであり、コの字型の一端部近傍及び対向する他端部近傍でスリット11xを挟むようにコードホイール11と非接触に配置されている。パルス発生手段12の一端部近傍及び対向する他端部近傍の何れか一方には発光素子(図示せず)が設けられており、他方には受光素子(図示せず)が設けられている。パルス発生手段12としては、例えば透過型フォトインタラプタを用いることができる。
モータ13の回転軸13aが所定の回転数で回転すると、それに同期してコードホイール11はギア14とギア15とのギア比で決まる回転数に減速されて回転する。
図3は、エンコーダを有する一般的な回転速度制御装置を例示する図(その2)である。図3を参照するに、回転速度制御装置1Bは、ギア14及び15が存在せず、モータ13の回転軸13aに直接コードホイール11が固定されている点が回転速度制御装置1Aと異なる。モータ13の回転軸13aが所定の回転数で回転すると、それに同期してコードホイール11は回転軸13aと同一の回転数で回転する。
回転速度制御装置1A及び1Bにおいて、パルス発生手段12の発光素子(図示せず)が出射した光はスリット11xの部分を透過して受光素子(図示せず)に入射し、スリット11x以外の部分では遮蔽されて受光素子(図示せず)には入射しない。その結果、パルス発生手段12の受光素子(図示せず)において、コードホイール11の回転速度に対応したパルス信号が発生する。
このように、パルス発生手段12は、回転速度検出用パターンであるスリット11xを読み取り、回転板であるコードホイール11の回転速度に対応したパルス信号を発生する機能を有する。パルス発生手段12が発生した単位時間当たりのパルス信号数を計測することにより、コードホイール11の回転速度を検出することができる。
パルス発生手段12が発生したパルス信号はパルス検出手段17に入力される。パルス検出手段17は、インプットキャプチャ17aと、フィルタ17bとを有する。インプットキャプチャ17aは、入力されたパルス信号の立ち上がりエッジ間隔を計測することにより、入力されたパルス信号のパルス間隔時間(パルス周期)をデータ(例えば4ビットデータ等)として取得する機能を有する。以降、インプットキャプチャ17aが取得したパルス間隔時間(パルス周期)のデータ(例えば4ビットデータ等)をパルス間隔データと称する場合がある。又、インプットキャプチャ17aがパルス間隔データを取得する処理を、単にインプットキャプチャと称する場合がある。
パルス間隔データは、フィルタ17bに入力される。フィルタ17bは、例えばディジタルフィルタであり、ノイズ除去や平均化などのフィルタ処理を行う機能を有する。具体的には、例えばパルス間隔データが通常ではありえない値(極端に大きい値や小さい値)であった場合にその値を除去したり、外的要因により発生する高周波ノイズを除去するために取得したパルス間隔データを平均化(過去何回かのデータを加算し平均する)したりする。インプットキャプチャ17a及びフィルタ17bは、ソフトウェア若しくはハードウェアの何れか一方又は双方により実現することができる。
なお、パルス間隔時間(パルス周期)を取得する手段はインプットキャプチャ17aには限定されず、例えばソフトウェアでパルス信号の変化点を監視してその周期を計測する手段等で代用しても構わない。又、フィルタ17bの機能はノイズ除去や平均化には限定されず、そのシステム全体としての性能や目的に応じて最適なフィルタ処理を用いることができる。更に、パルス検出手段17は、必ずしもフィルタ17bを有さなくても構わない。パルス検出手段17により所定の処理を施されたパルス間隔データは、制御部18へ入力される。
制御部18は、パルス検出手段17から入力されたパルス間隔データを用いて、モータ13を回転制御(フィードバック制御)する機能を有する。制御部18は、CPU18a(中央演算ユニット)、RAM18b(揮発性メモリ)、ROM18c(不揮発性メモリ)等を有する。
駆動手段19は、制御部18からの信号(指示)を受けてモータ13を直接駆動できるドライバ回路からなる。通信手段20は、上位システムやユーザ等からのモータ回転要求を判断処理する手段であり、上位システムやユーザ等からの要求に応じて制御部18に対してモータの起動や停止の指示を発行する機能を有する。パルス発生手段12、パルス検出手段17、制御部18、駆動手段19及び通信手段20は、回転速度制御装置1の外部に配置された電源装置(図示せず)と接続されており、電源装置(図示せず)から所定の電源電圧が供給されている。
次に、エンコーダを有する一般的な回転速度制御装置1の制御方法に関して説明する。図4は、エンコーダを有する一般的な回転速度制御装置の制御方法を例示するフローチャートである。図4を参照するに、まず、回転速度制御装置1に電源を投入した後、通信手段20は、上位システムやユーザ等からのモータ起動要求の有無を確認する(S100)。S100で通信手段20が上位システやユーザ等からモータ起動要求を受けていない場合(Noの場合)には、S100の処理を繰り返す。S100で通信手段20が上位システやユーザ等からモータ起動要求を受けた場合(Yesの場合)には、モータ13を起動させる(S101)。
具体的には、通信手段20は、制御部18に対してモータの起動指示を発行する。そして、制御部18は、目標とするモータ回転速度を駆動手段19に指示する。例えばモータ13がDCブラシレスモータの場合、回転速度はPWMデューティにより指示することができる(以降、回転速度をPWMデューティにより指示する場合を例に説明を行う)。この場合、制御部18に周期とデューティを任意に設定できるPWMタイマ機能を持たせ、そのデューティ値をソフトウェアで設定することによりモータ回転速度を指示すればよい。モータ13が起動(回転)すると、それにともなってコードホイール11が回転し、パルス発生手段12の受光素子(図示せず)からは、コードホイール11の回転に対応したパルス信号が発生する。
S101でモータ13が起動した後、パルス検出手段17のインプットキャプチャ17aは、パルス発生手段12の発生したパルス信号を計測し、計測したパルス信号のパルス間隔時間(パルス周期)をデータ(パルス間隔データ)として取得する(S102)。そして、パルス検出手段17のフィルタ17bは、インプットキャプチャ17aの取得したパルス間隔データに対してノイズ除去や平均化などのフィルタ処理を行い、制御部18に出力する(S103)。そして、制御部18は、入力されたパルス間隔データに基づいてモータ13の速度を検知する(S104)。
次に、制御部18は、S104で検知したモータ13の速度と、予め設定されているモータ13の目標速度とを比較する(S105)。S105でモータ13の速度と目標速度とが一致している場合(Yesの場合)には、制御部18はS101においてPWMデューティにより指示された回転速度(駆動手段19に対する速度指示値)を更新せず、その状態を継続維持させる。
S105でモータ13の速度と目標速度とが一致していない場合(Noの場合)には、制御部18は、S104で検知したモータ13の速度が、予め設定されているモータ13の目標速度よりも速いか否かを判定する(S106)。S106でモータ13の速度が目標速度よりも速いと判定した場合(Yesの場合)には、制御部18はPWMタイマ値を更新してPWMデューティを下げることにより速度指示値を減算し、駆動手段19に通知する(S107)。その結果、モータ13の回転速度が遅くなり、それにともなってパルス発生手段12が発生するパルス信号のパルス間隔時間は長くなる。
S106でモータ13の速度が目標速度よりも遅いと判定した場合(Noの場合)には、制御部18はPWMタイマ値を更新してPWMデューティを上げることにより速度指示値を加算し、駆動手段19に通知する(S108)。その結果、モータ13の回転速度が速くなり、それにともなってパルス発生手段12が発生するパルス信号のパルス間隔時間は短くなる。
次に、通信手段20は、上位システムやユーザ等からのモータ停止要求の有無を確認する(S109)。S109で通信手段20が上位システムやユーザ等からのモータ停止要求を受けた場合(Yesの場合)には、通信手段20は、制御部18に対してモータの停止指示を発行する。通信手段20から停止指示を受けた制御部18は、速度指示値をゼロにし、駆動手段19に通知する(S110)。その結果、モータ13は停止する。S109で通信手段20が上位システムやユーザ等からのモータ停止要求を受けていない場合(Noの場合)には、S102〜S109の処理を繰り返す。
このように、図4に例示するフローチャートの処理により、モータ13は目標とする回転速度を維持することができる。なお、図4の説明において、制御部18に内蔵したPWMタイマのPWMデューティを変えることによりモータ13の回転速度を指示する場合を例に説明したが、回転速度を指示する手段をPWMタイマに限定するものではない。
次に、1周期誤差成分及び2周期誤差成分を確実に除去し、本来検出したい回転速度変動をより高精度に検出することが可能な回転速度制御装置について説明する。
図5は、第1の実施の形態に係る回転速度制御装置を例示する図である。図6は、第1の実施の形態に係る回転速度制御装置の制御部の機能ブロックを例示する図である。図7は、第1の実施の形態に係るエンコーダを例示する図である。図7(a)が平面図、図7(b)が正面図である。なお、図7は、第1の実施の形態に係るエンコーダ30が、回転軸16に固定された状態を示している。
図5〜図7を参照するに、回転速度制御装置2は、エンコーダ30を有する点及び制御部18が制御部28に置換された点が、回転制御装置1A(図1参照)とは異なる。エンコーダ30は、コードホイール11と、3個のパルス発生手段32a〜32cとを有する。エンコーダ30のコードホイール11は、回転軸16に同軸的に取り付けられており、回転軸16に同期して回転する。以下、図1と同一構成部分についての説明は省略し、図1と異なる構成部分を中心に説明する。
コードホイール11は、後述するパルス発生手段32a〜32cが出射する光を遮蔽する材料で形成された回転板である。コードホイール11の外周近傍にはパルス発生手段32a〜32cが出射する光を透過する回転速度検出用パターンであるスリット11xが周方向に沿って略等間隔で全周に亘り形成されている。
パルス発生手段32a〜32cは略コの字型の光センサであり、コの字型の一端部近傍及び対向する他端部近傍でスリット11xを挟むようにコードホイール11と非接触に配置されている。又、パルス発生手段32a〜32cは、それぞれのコの字の開口部が回転軸16の軸心を向いた状態でコードホイール11の周方向に沿ってそれぞれ90°間隔で配置されている。すなわち、パルス発生手段32bは、回転軸16に対してパルス発生手段32aと90°の位置に取り付けられており、パルス発生手段32cは、回転軸16に対してパルス発生手段32aと180°の位置に取り付けられている。
パルス発生手段32a〜32cの一端部近傍及び対向する他端部近傍の何れか一方には発光素子(図示せず)が設けられており、他方には受光素子(図示せず)が設けられている。パルス発生手段32a〜32cとしては、例えば透過型フォトインタラプタを用いることができる。
モータ13の回転軸13aが所定の回転数で回転すると、それに同期してコードホイール11はギア14とギア15とのギア比で決まる回転数に減速されて回転する。パルス発生手段32a〜32cの発光素子(図示せず)が出射した光はスリット11xの部分を透過して受光素子(図示せず)に入射し、スリット11x以外の部分では遮蔽されて受光素子(図示せず)には入射しない。その結果、パルス発生手段32a〜32cの受光素子(図示せず)において、それぞれコードホイール11の回転速度に対応したパルス信号が発生する。
このように、パルス発生手段32a〜32cは、回転速度検出用パターンであるスリット11xを読み取り、回転板であるコードホイール11の回転速度に対応したパルス信号を発生する機能を有する。パルス発生手段32a〜32cが発生した単位時間当たりのパルス信号数を計測することにより、コードホイール11の回転速度を検出することができる。なお、パルス発生手段32a〜32cは、便宜上異なる符号を付しているが、同一部品を用いて構わない。パルス発生手段32a〜32cが発生したパルス信号はパルス検出手段17に入力される。
なお、コードホイール11の有する回転速度検出用のパターンは必ずしもスリットである必要はなく、例えばスリットに代えて反射率の異なるパターンを交互に配置する構成等としても構わない。この場合には、パルス発生手段32a〜32cとしては、例えば反射型フォトインタラプタ(フォトリフレクタ)等を用いることができる。
制御部28は、回転速度制御装置2全体を管理及び操作するためのCPU28a(中央演算ユニット)、制御等に必要なデータを一時的に格納するRAM28b(揮発性メモリ)、制御部28に含まれる各種手段を動作させるためのプログラムやデータ等が格納されたROM28c(不揮発性メモリ)等を有する。なお、制御部28は図5に示す構成には限定されず、同等の機能を実現できるのであれば如何なる構成であっても構わない。
制御部28は、回転速度制御装置2に関する様々な制御を行う機能を有する。制御部28は、制御手段28p、演算手段28q、温度検出手段28r、回転ムラ検出手段28s、及び時間計測手段28t等の各種手段を有する。制御手段28pは、パルス検出手段17から入力されたパルス間隔データを用いて、モータ13を回転制御(フィードバック制御)する機能等を有する。その他の手段の機能については、後述する。
制御部28に含まれる各種手段の機能は、ROM28c等に記録されたプログラムがメインメモリに読み出されてCPU28aにより実行されることによって実現される。ただし、制御部28の一部又は全部は、ハードウェアのみにより実現されてもよい。又、制御部28は、物理的に複数の装置により構成されてもよい。
なお、回転速度制御装置2に含まれる、回転軸16、パルス検出手段17、制御部28、及びエンコーダ30は、本発明に係る回転検出器の代表的な一例である。又、回転速度制御装置2に含まれる、モータ13、回転軸16、パルス検出手段17、駆動手段19、制御部28、及びエンコーダ30は、本発明に係るモータ駆動装置の代表的な一例である。
図8は、第1の実施の形態に係るエンコーダの出力するパルス信号を例示する図である。図8(a)はパルス発生手段32aの出力するパルス信号、図8(b)はパルス発生手段32bの出力するパルス信号、図8(c)はパルス発生手段32cの出力するパルス信号である。各パルス信号は、位相が異なっている。図8において、E1(n)、E2(n)、及びE3(n)は、それぞれ、パルス発生手段32a、パルス発生手段32b、及びパルス発生手段32cの出力するパルス信号のパルス間隔時間(以降、パルス発生手段32aのパルス間隔時間という場合がある)を示している(但し、nは自然数)。又、E2(MAX)は、パルス発生手段32bの出力するパルス信号のパルス間隔時間の最大値を示している。
図9は、エンコーダの出力するパルス間隔時間と速度変動の関係を例示する図である。図9(a)はパルス発生手段32bの出力するパルス信号、図9(b)はパルス発生手段32bの出力するパルス信号から得られるコードホイール11の速度変動を示している。なお、図9(b)に示す波形は回転速度制御装置2で実際に観測される波形ではなく、図9(a)に示すパルス信号が含んでいる情報を模式的に示したものである。
図8及び図9に示すように、パルス発生手段32a〜32cからは、コードホイール11に設けられたスリット11xの間隔と回転軸16の回転状態に応じた略矩形波のパルス信号が出力される。そして、パルス発生手段32a〜32cの出力する各パルス信号のパルス間隔時間の変動は、コードホイール11の速度変動を表している。従って、パルス発生手段32a〜32cの出力する各パルス信号のパルス間隔時間を測定し、測定した各パルス信号のパルス間隔時間に基づいて回転軸16の回転速度を演算し、演算結果が一定になるようにモータ13の速度を制御できる。
本実施の形態においては、コードホイール11に反りが発生した場合でも回転軸16にその影響を発生させないために、『P(θ)={E1(θ)+E3(θ)}÷2×{E2(θ)/E2(MAX)}・・・式(2)』を算出し、算出したP(θ)に基づいてモータ13を駆動する。ここで、P(θ)は、誤差成分を取り除いた回転軸16の回転検出信号であり、回転軸16の回転速度を表している。なお、P(θ)は、パルス発生手段32a〜32cの出力する各パルス信号がインプットキャプチャされる毎に算出される。
式(2)において、『{E1(θ)+E3(θ)}÷2』は、対向位置に配置したパルス発生手段32aのパルス間隔時間E1(θ)とパルス発生手段32cのパルス間隔時間E3(θ)を用いて、コードホイール11の取り付け偏心がある場合に生じる1周期誤差成分のみを除去する演算(以降、第1の演算とする)である。
式(2)において、『E2(θ)/E2(MAX)』は、パルス発生手段32bのパルス間隔時間E2(θ)の、パルス発生手段32bのパルス間隔時間E2(θ)の所定期間内の最大値に対する割合である。なお、『E2/E2(MAX)』を補正係数と称する場合がある。コードホイール11が反った場合の楕円の長径は反る前の円の直径に等しいので、第1の演算結果に補正係数を乗算することにより反りを補正できる。
例えば、回転軸16が何らかの手段により常に一定の回転数で回転しているとする。このとき、コードホイール11が反ってなく円形であれば、パルス間隔時間E1(θ)、E2(θ)、E3(θ)=一定値(以降、一定値=Ecとする)となる。ここで、コードホイール11が反ったとすると、コードホイール11の楕円の長径は反る前の円の直径に等しいので、コードホイール11の楕円の長径の部分がパルス発生手段32a及び32cの位置にあるときには、パルス発生手段32a及び32cではそれぞれ円の時と同じパルス間隔時間Ecが検出される。つまり、{E1(θ)+E3(θ)}÷2=Ecとなる。一方、この時には、コードホイール11の楕円の短径の部分がパルス発生手段32bの位置にあるので、パルス発生手段32bで検出されるパルス間隔時間E2はE2(MAX)と等しくなる。よって、補正係数=E2(MAX)/E2(MAX)=1となり、P(θ)=Ecとなる。つまり、本来算出すべき回転検出信号を算出できる。
又、コードホイール11の楕円の短径の部分がパルス発生手段32a及び32cの位置にあるときには、パルス発生手段32a及び32cで検出されるパルス間隔時間E1及びE3はそれぞれE2(MAX)と等しくなる。つまり、{E1(θ)+E3(θ)}÷2=E2(MAX)となる。一方、この時には、コードホイール11の楕円の長径の部分がパルス発生手段32bの位置にあるので、パルス発生手段32bでは円の時と同じパルス間隔時間Ecが検出される。よって、補正係数=Ec/E2(MAX)となり、P(θ)=E2(MAX)×Ec/E2(MAX)=Ecとなる。つまり、本来算出すべき回転検出信号を算出できる。
パルス発生手段32a〜32cとコードホイール11の楕円の長径との位置関係が上記以外の場合にも、同様に本来算出すべき回転検出信号を算出できる。このように、本実施の形態では、コードホイール11が反った場合に、コードホイール11の楕円の長径の部分を基準として反りを補正している。その結果、コードホイール11が反った場合にも、1周期誤差成分及び2周期誤差成分を除去することが可能となり、本来算出すべき回転検出信号(上記例ではP(θ)=Ec)を算出できる。
P(θ)を算出するには、まず第1の演算を行い、第1の演算の結果に基づいてモータ13を駆動し、回転軸16の回転速度の値が安定する状態にする。このとき、コードホイール11が反っていれば、回転軸16の1回転につき2回の最大値が観測される。つまり、E2(θ)に2周期誤差成分が現れる。そこで、少なくとも回転角90°分のデータを抽出し、抽出したデータ中から最も回転速度が遅いと判断したデータ(パルス間隔時間が最大となるデータ)を取得する。取得したデータがE2(MAX)となる。E2(MAX)は、コードホイール11が反っている場合の楕円短径に相当するデータである。
以降、コードホイール11の反り補正(2周期誤差成分の除去)を行うために、第1の演算の結果に補正係数であるE2(θ)/E2(MAX)を乗算する第2の演算を行い、第1の演算の結果を補正する。これにより、1周期誤差成分及び2周期誤差成分が除去された回転検出信号P(θ)が得られ、P(θ)に基づいてモータ13を駆動することにより、コードホイール11が反った場合にも、回転軸16を目標の回転速度に制御できる。
図10は、1周期誤差成分を除去すると共にコードホイールの反りの程度を検出するフローチャートの一例である。コードホイール11が反っていれば、E2(θ)に2周期誤差成分が現れるので、その中からE2(MAX)を取得することで反りの程度を検出できる(反り計測ができる)。なお、図10に示すフローチャートは、パルス間隔時間に重畳する1周期誤差成分及び2周期誤差成分を除去するためのフローチャートの一部となる。
ここで、90°間隔で配置された3つのパルス発生手段32a、32b、及び32cが出力するパルス信号をインプットキャプチャ17aが計測し、計測した各パルス信号から取得したパルス間隔時間のデータを、それぞれパルス間隔データE1、E2、及びE3とする。パルス発生手段32a〜32cの出力するパルス信号は、図8(a)〜図8(c)に示すように、それぞれ非同期であり、それぞれ個別にインプットキャプチャされ、パルス間隔データE1、E2、及びE3が取得される。なお、図10等では、一例として、パルス発生手段32bの出力するパルス信号を基準として、1周期誤差成分及び2周期誤差成分を除去のための演算を実施するが、基準となるパルス発生手段としてパルス発生手段32aや32cを用いても良い。
図10において、まず、制御手段28pは、パルス間隔データE2のインプットキャプチャが完了したか否かを判定する(S200)。S200で、制御手段28pがパルス間隔データE2のインプットキャプチャが完了していないと判定した場合(Noの場合)には、S200の処理を繰り返す。S200で、制御手段28pがパルス間隔データE2のインプットキャプチャが完了したと判定した場合(Yesの場合)には、制御手段28pはパルス検出手段17からパルス間隔データE2を取得する(S201)。なお、このタイミングで、パルス間隔データE1及びE3のインプットキャプチャも完了している。
次に、制御手段28pは、インプットキャプチャ済みのパルス間隔データE1の最新値を取得する(S202)。次に、制御手段28pは、インプットキャプチャ済みのパルス間隔データE3の最新値を取得する(S203)。ここで、パルス間隔データE1及びE3は、それぞれのインプットキャプチャ計測完了を監視して、計測結果のみを別に保存しておき、パルス間隔データE2の取得時に保存していたデータを読み込むことで処理できる。なお、この説明は一例であり、常に最新データを取得し、保存し、読み出しする手段については同等の機能を実現できれば特に限定されない。
次に、演算手段28qは、パルス間隔データE1とパルス間隔データE3の平均値を演算(第1の演算)する(S204)。第1の演算として、単純に『(E1+E3)÷2』の演算を実行することで、回転軸16に対するコードホイール11の取り付け偏心の成分(1周期誤差成分)を除去できる。
次に、演算手段28qは、S204での第1の演算結果である『(E1+E3)÷2』の値を現在の回転速度として速度制御を行う(S205)。つまり、コードホイール11の取付け偏心に起因する1周期誤差成分が除去された回転検出信号に基づいて回転軸16の速度制御を行う。
次に、演算手段28qは、第1の演算結果である『(E1+E3)÷2』の値が安定しているか否かを判定する(S206)。安定しているか否かは、例えば、第1の演算結果と予め設定した目標値とを比較し、そのずれが予め設定した所定の範囲内にあるか否かで判定できる。S206で安定していないと判定した場合(Noの場合)には、S206の処理を繰り返す。S206で安定していると判定した場合(Yesの場合)には、S207に移行する。
S207では、演算手段28qは、パルス間隔データE2を回転軸16が1周する分サンプリングする。但し、ここでは、パルス間隔データE2を回転軸16が1周する分抽出する例を示すが、パルス間隔データE2は少なくとも回転軸16が90°回転する分を抽出すればよい。次に、演算手段28qは、S207でサンプリングしたパルス間隔データE2中の最大値E2(MAX0)を取得する(S208)。ただし、パルス抜けと判断できるようなデータは取り除く。
このように、図10に例示するS200〜S208の処理により、パルス間隔時間に重畳する1周期誤差成分を除去すると共にコードホイール11の反りの程度を示すE2(MAX0)を取得することができる。なお、図10に例示した処理は、図10に例示した処理を実行する手順を備えたプログラムとしてROM28c等に記憶することができる。そして、ROM28c等に記憶されたプログラムは、CPU28aにより実行することができる。
図11は、2周期誤差成分を除去するフローチャートの一例である。なお、図11に示すフローチャートは、パルス間隔時間に重畳する1周期誤差成分及び2周期誤差成分を除去するためのフローチャートの一部となる。
図11において、まず、演算手段28qは、図10のS208で取得したE2(MAX0)が所定値k(2周期誤差成分の許容限界値)よりも大きいか否かを判定する(S209)。S209で大きいと判定した場合(Yesの場合)にはS210に、S209で大きくないと判定した場合(Noの場合)にはS211に移行する。なお、許容限界値kは、例えば、第1の演算結果である『(E1+E3)÷2』の5%程度とすることができる。
S210では、演算手段28qは、最新のパルス間隔データE1、E2、及びE3を用いて第1の演算である『(E1+E3)÷2』を行い、その結果に『E2/E2(MAX0)』を乗算する第2の演算をし、コードホイール11の反り補正を行う。すなわち、最新のパルス間隔データE1、E2、及びE3を用いて『(E1+E3)÷2×{E2/E2(MAX0)}』を演算する。その後S212に移行する。
S211では、演算手段28qは、最新のパルス間隔データE1及びE3を用いて第1の演算である『(E1+E3)÷2』のみを行い、その後S212に移行する。なお、S211で第2の演算を行わないのは、コードホイール11の反りが許容範囲内(E2(MAX0)≦k)であり、補正(2周期誤差成分の除去)をする必要がないからである。又、図11の例では、2周期誤差成分の許容限界値kを設けたが、2周期誤差成分の許容限界値kは必ずしも設けなくても良い。その場合には、S211の処理は行わず、常にS210の演算が実行される。
次に、制御手段28pは、S210又はS211の演算結果を現在の回転速度として速度制御を行う(S212)。つまり、コードホイール11の反りが許容限界値を超えていた場合には、コードホイール11の反りに起因する2周期誤差成分が除去された回転検出信号に基づいて回転軸16の速度制御を行う。
次に、演算手段28qは、S212の速度制御が安定したら、S207と同様にパルス間隔データE2を回転軸16が1周する分(少なくとも回転軸16が90°回転する分)サンプリングする。そして、演算手段28qは、サンプリングしたパルス間隔データE2中の最大値E2(RMAX0)を取得し、RAM18b等に記憶する(S213)。ただし、パルス抜けと判断できるようなデータは取り除く。このように、E2(MAX0)はS212の速度制御が安定する前に取得した値であり、E2(RMAX0)はS212の速度制御が安定した後に取得した値である。
次に、制御手段28pは、2周期誤差成分が低減しているか否かを判定する(S214)。2周期誤差成分が低減しているか否かは、例えば、回転検出信号をFFT(Fast Fourier Transform)解析することにより判定できる。FFT解析用のプログラムは、例えば、ROM18c等に格納しておくことができる。S214で低減していると判定した場合(Yesの場合)には、2周期誤差成分を除去する処理を終了する。S214で低減していないと判定した場合(Noの場合)には、再度S200に移行して反り計測を実行する(反りの程度を検出する)。
このように、図11に例示するS209〜S214の処理により、パルス間隔時間に重畳する2周期誤差成分を除去することができる。又、S200〜S214の処理により、パルス間隔時間に重畳する1周期誤差成分及び2周期誤差成分を除去することができる。なお、図11に例示した処理は、図11に例示した処理を実行する手順を備えたプログラムとしてROM28c等に記憶することができる。そして、ROM28c等に記憶されたプログラムは、CPU28aにより実行することができる。
図12は、コードホイールの反り補正実行後に徐々に反りの程度が変化した場合のフローチャートの一例である。図10及び図11の処理によりコードホイール11の反り補正が実行され、『(E1+E3)÷2×{E2/E2(MAX0)}』の演算結果に基づいて回転軸16の速度制御がなされる。この際に、徐々にコードホイール11の反りの程度が変化する場合があり、その場合には図12のフローチャートに従って補正係数の再検出を行う。
図12において、まず、演算手段28qは、S207と同様にパルス間隔データE2を回転軸16が1周する分(少なくとも回転軸16が90°回転する分)サンプリングする。そして、制御手段28pは、サンプリングしたパルス間隔データE2中の最大値E2(RMAX)を取得する(S300)。ただし、パルス抜けと判断できるようなデータは取り除く。
次に、演算手段28qは、S300で取得したE2(RMAX)が所定値k(2周期誤差成分の許容限界値)よりも大きいか否かを判定する(S301)。S301で大きいと判定した場合(Yesの場合)にはS302に、S301で大きくないと判定した場合(Noの場合)にはS303に移行する。
S302では、演算手段28qは、最新のパルス間隔データE1、E2、及びE3を用いて、現在の回転制御に用いている『(E1+E3)÷2×{E2/E2(MAX0)}』にE2(RMAX0)/E2(RMAX)』を乗算する演算をし、コードホイール11の反り補正を再度行う。その後S304に移行する。ここで、E2(RMAX0)は、S213においてRAM18b等に記憶した値を用いる。なお、『E2(RMAX0)/E2(RMAX)』を第2の補正係数と称する場合がある。
S303では、演算手段28qは、最新のパルス間隔データE1、E2、及びE3を用いて『(E1+E3)÷2×{E2/E2(MAX0)}』を演算し、その後S304に移行する。なお、S303で第2の補正係数を乗算しないのは、コードホイール11の反りが許容範囲内(E2(RMAX)≦k)であり、再度の補正(2周期誤差成分の除去)をする必要がないからである。ただし、図12の例では、2周期誤差成分の許容限界値kを設けたが、2周期誤差成分の許容限界値kは必ずしも設けなくても良い。その場合には、S303の処理は行わず、常にS302の演算が実行される。
次に、制御手段28pは、S302又はS303の演算結果を現在の回転速度として速度制御を行う(S304)。つまり、コードホイール11の反りが許容限界値を超えていた場合には再度反り補正を実行し、コードホイール11の反りに起因する2周期誤差成分が除去された回転検出信号に基づいて回転軸16の速度制御を行う。その後、S300に移行し、同様の処理を繰り返す。
このように、図12に例示するS300〜S304の処理を繰り返すことにより、コードホイール11の反り補正実行後に徐々に反りの程度が変化した場合にも、再度図10に示す反り計測に移行することなく、パルス間隔時間に重畳する2周期誤差成分を除去し、好適な回転軸16の回転速度制御を継続できる。なお、図12に例示した処理は、図12に例示した処理を実行する手順を備えたプログラムとしてROM28c等に記憶することができる。そして、ROM28c等に記憶されたプログラムは、CPU28aにより実行することができる。
以上のように、第1の実施の形態では、パルス間隔データE1及びE3の平均値である『(E1+E3)÷2』、及び、パルス間隔データE2の最大値E2(MAX0)に対する割合である補正係数『E2/E2(MAX0)』に基づいて、回転軸16の回転速度を演算する。具体的には、『(E1+E3)÷2×{E2/E2(MAX0)}』を演算してパルス間隔時間に重畳する1周期誤差成分及び2周期誤差成分を除去し、演算結果に基づいて回転軸16の回転速度制御を実行する。その結果、コードホイール11の偏心や反りの影響が低減された好適な回転軸16の回転速度制御を実現できる。
又、コードホイール11の反り補正実行後(平均値と補正係数に基づいた演算後)に徐々に反りの程度が変化した場合には、反り補正実行後に最初に検出されたパルス間隔データE2の最大値E2(RMAX0)を記憶しておく。そして、最大値E2(RMAX0)を記憶した後もパルス間隔データE2を継続的に監視して、パルス間隔データE2の最大値E2(RMAX)を抽出する。そして、最大値E2(RMAX0)の最大値E2(RMAX)に対する割合である第2の補正係数『E2(RMAX0)/E2(RMAX)』を算出し、平均値『(E1+E3)÷2』、補正係数『E2/E2(MAX0)』、及び第2の補正係数『E2(RMAX0)/E2(RMAX)』に基づいて、回転軸16の回転速度を再度演算する。具体的には、『(E1+E3)÷2×{E2/E2(MAX0)}×{E2(RMAX0)/E2(RMAX)}』を演算してパルス間隔時間に重畳する1周期誤差成分及び2周期誤差成分を除去し、演算結果に基づいて回転軸16の回転速度制御を実行する。その結果、コードホイール11の反り補正実行後に徐々に反りの程度が変化した場合に、再度図10に示す反り計測を実行せずに、コードホイール11の偏心や反りの影響が低減された好適な回転軸16の回転速度制御を継続できる。
なお、第1の実施の形態に係る回転速度制御装置2ではモータ13の回転軸13aとコードホイール11の回転軸16との間にギア14及び15からなる減速機構を設けていたが、減速機構を設けずにモータ13の回転軸13aに直接コードホイール11が取り付けられた回転速度制御装置に本発明を適用しても良い。
〈第1の実施の形態の変形例1〉
第1の実施の形態の変形例1では、モータ13の近傍に温度検出器を設置してコードホイール11の周辺温度を監視し、温度検出器の検出温度が所定の条件を満足する場合にコードホイール11に反りが生じたと判断し、図10及び図11(又は、図10〜図12)の処理を実行する例を示す。
温度検出器(図示せず)は、モータ13の内部又は外部のコードホイール11の周辺温度が推定できる場所に設置する。温度検出器(図示せず)としては、例えば、サーミスタ等を用いることができる。
図13は、コードホイールの温度監視のフローチャートの一例である。図13において、まず、温度検出手段28rは、温度検出器の検出温度(コードホイール11の周辺温度)が所定の温度Tよりも高いか否かを判定する(S400)。S400で高いと判定した場合(Yesの場合)にはS401に移行し、S400で高くないと判定した場合(Noの場合)にはS400の処理を繰り返す。なお、所定の温度Tは、コードホイール11に反りが発生し得る温度であり、予め実験により定めることができる。所定の温度Tは、例えば、80℃とすることができる。
S401では、温度検出手段28rは、温度検出器の検出温度(コードホイール11の周辺温度)が所定の温度TL(TL<T)よりも低いか否かを判定する(S401)。S401で低いと判定した場合(Yesの場合)には、S200〜S208(図10参照)の反り計測を実行し、更にS209〜S214(図11参照)の2周期誤差成分の除去を実行する。更に、S300〜S304(図12参照)の処理を実行しても良い。S401で低くないと判定した場合(Noの場合)にはS401の処理を繰り返す。所定の温度TLは、例えば、30℃とすることができる。なお、温度検出器の検出温度(コードホイール11の周辺温度)が所定の温度TLよりも低くなるのは、モータ13が所定期間停止していた場合等が考えられる。
このように、第1の実施の形態の変形例1では、モータ13の近傍に温度検出器を設置してコードホイール11の周辺温度を監視し、コードホイール11の周辺温度が所定の温度Tよりも高くなった後、所定の温度TLよりも低くなったことを検出した場合に、コードホイール11が熱膨張後の温度変化(冷える過程)により反ってしまい、その後反った状態が維持されていると判断する。このような場合に、図10及び図11(又は、図10〜図12)の処理を実行することにより、1周期誤差成分及び2周期誤差成分が除去され、コードホイール11の偏心や反りの影響が低減された、好適な回転軸16の回転速度制御を実現できる。なお、図13に例示した処理は、図13に例示した処理を実行する手順を備えたプログラムとしてROM28c等に記憶することができる。そして、ROM28c等に記憶されたプログラムは、CPU28aにより実行することができる。
〈第1の実施の形態の変形例2〉
第1の実施の形態の変形例2では、コードホイール11の回転ムラ(2周期誤差成分の変動)が所定値を超えた場合にコードホイール11に反りが生じたと判断し、図10及び図11(又は、図10〜図12)の処理を実行する例を示す。
図14は、コードホイールの回転ムラを計測するフローチャートの一例である。図14において、まず、回転ムラ検出手段28sは、回転検出信号に重畳された2周期誤差成分の変動からコードホイール11の回転ムラ(%)を計測する。そして、計測した回転ムラが所定値A(%)よりも大きいか否かを判定する(S450)。なお、所定値Aは、例えば、5%とすることができる。
S450で大きいと判定した場合(Yesの場合)には、S200〜S208(図10参照)の反り計測を実行し、更にS209〜S214(図11参照)の2周期誤差成分の除去を実行する。更に、S300〜S304(図12参照)の処理を実行しても良い。S450で低くないと判定した場合(Noの場合)にはS450の処理を繰り返す。なお、回転ムラ検出手段28sの一例としては、FFTを挙げることができる。この場合、回転ムラ検出手段28sは、パルス間隔データE1、E2、及びE3の何れかをFFT解析することにより回転ムラを計測することができる。
このように、第1の実施の形態の変形例2では、コードホイール11の回転ムラを計測し、計測した回転ムラが所定値Aよりも大きくなったことを検出した場合に、コードホイール11が反っていると判断する。このような場合に、図10及び図11(又は、図10〜図12)の処理を実行することにより、1周期誤差成分及び2周期誤差成分が除去され、コードホイール11の偏心や反りの影響が低減された、好適な回転軸16の回転速度制御を実現できる。なお、図14に例示した処理は、図14に例示した処理を実行する手順を備えたプログラムとしてROM28c等に記憶することができる。そして、ROM28c等に記憶されたプログラムは、CPU28aにより実行することができる。
〈第1の実施の形態の変形例3〉
第1の実施の形態の変形例3では、モータ13の継続的な駆動時間(回転軸16の連続回転時間)が所定値を超え、かつ、その後のモータ13の連続停止時間(回転軸16の連続停止時間)が所定値を超えた場合にコードホイール11に反りが生じたと判断し、図10及び図11(又は、図10〜図12)の処理を実行する例を示す。
図15は、回転軸の連続回転時間及び連続停止時間を計測するフローチャートの一例である。図15において、まず、制御手段28pは、モータ13(回転軸16)が回転している否かを判定する(S500)。なお、回転しているか否かは、パルス間隔データE1、E2、E3の少なくとも1つを監視することにより判定できる。S500で回転していると判定した場合(Yesの場合)には、時間計測手段28tはカウントアップ(時間計測)を開始し(S501)、その後S500に戻る。なお、カウントアップは、例えば、1秒に1回行うことができる。S500で回転していないと判定した場合(Noの場合)にはS502に移行する。つまり、S502に移行するのは、モータ13(回転軸16)が停止している場合である。
S502では、時間計測手段28tは、カウンタ値が所定値Cよりも大きいか否かを判定する(S502)。所定値Cは、例えば、7200程度とすることができる。1秒に1回カウントアップする場合には、7200カウントは2時間に相当する。この場合には、S502では、モータ13(回転軸16)が停止前に2時間より長く継続的に回転していたか否かを判定していることになる。S502で大きいと判定した場合(Yesの場合)には、S503に移行しカウントダウンを開始する。カウントダウンは、例えば、0.1秒に1回行うことができる。
次に、時間計測手段28tは、カウンタ値が所定値CLよりも大きいか否かを判定する(S504)。所定値CLは、例えば、S502のカウンタ値よりも6000低い値に設定することができる。つまり、所定値CLは、S502のカウンタ値により異なる。0.1秒に1回カウントダウンする場合には、6000カウントは10分に相当する。この場合には、S504では、カウントダウンを開始してから10分より長い時間が経過したか否か(モータ13(回転軸16)が10分より長い時間停止していたか否か)を判定していることになる。
S504で大きくないと判定した場合(Noの場合)には、モータ13を駆動後、S200〜S208(図10参照)の反り計測を実行し、更にS209〜S214(図11参照)の2周期誤差成分の除去を実行する。更に、S300〜S304(図12参照)の処理を実行しても良い。その後、S506で時間計測手段28tはカウンタを0に設定して図15の処理を終了する。
S504で大きいと判定した場合(Yesの場合)にはS505に移行し、制御手段28pは、S500と同様に、モータ13(回転軸16)が回転している否かを判定する(S505)。S505で回転していると判定した場合(Yesの場合)には、S500に戻る。S505で回転していないと判定した場合(Noの場合)にはS503に戻る。
S502で大きくないと判定した場合(Noの場合)にはS507に移行し、時間計測手段28tは、カウンタが0か否かを判定する(S507)。S507で0と判定した場合(Yesの場合)には図15の処理を終了し、S507で0でないと判定した場合(Noの場合)にはS508に移行する。S508では、時間計測手段28tは、S503と同様にカウントダウンを開始する。
次に、制御手段28pは、S500と同様に、モータ13(回転軸16)が回転している否かを判定する(S509)。S509で回転していると判定した場合(Yesの場合)には、S500に戻る。S509で回転していないと判定した場合(Noの場合)にはS507に戻る。
このように、第1の実施の形態の変形例3では、モータ13(回転軸16)が所定時間より長く継続的に回転し、その後所定時間より長く継続的に停止していたことを検出した場合に、モータ13の発熱によりコードホイール11が一旦高温になって熱膨張し、モータ13の停止後の温度変化(冷える過程)により反ってしまい、その後反った状態が維持されていると判断する。このような場合に、図10及び図11(又は、図10〜図12)の処理を実行することにより、1周期誤差成分及び2周期誤差成分が除去され、コードホイール11の偏心や反りの影響が低減された、好適な回転軸16の回転速度制御を実現できる。なお、図15に例示した処理は、図15に例示した処理を実行する手順を備えたプログラムとしてROM28c等に記憶することができる。そして、ROM28c等に記憶されたプログラムは、CPU28aにより実行することができる。
〈第2の実施の形態〉
第2の実施の形態では、第1の実施の形態に係る回転速度制御装置を搭載した画像形成装置に関して説明する。
始めに、第2の実施の形態に係る画像形成装置の概略の構成について説明する。図16は、第2の実施の形態に係る画像形成装置を例示する図である。図16を参照するに、画像形成装置60は、無端状搬送体である中間転写ベルトを用いたカラー画像形成装置であり、スキャナユニット61と、感光体ドラム62aと、感光体ドラム62bと、感光体ドラム62cと、感光体ドラム62dと、定着ユニット63と、中間転写ベルト64と、二次転写ローラ65と、斥力ローラ66と、レジストローラ67と、給紙ユニット68と、給紙ローラ69と、紙搬送ローラ70と、排紙ユニット71と、中間転写スケール検出センサ72と、駆動ローラ73と、従動ローラ74と、制御部80とを有する。90は、転写紙を示している。
スキャナユニット61は、原稿を読み取る機能を有する。感光体ドラム62a〜62dは、レーザ光が照射されると、それぞれY(イエロー)色、C(シアン)色、M(マゼンダ)色、K(黒)色の画像を形成する機能を有する。定着ユニット63は、転写されたトナー画像を転写紙90上に定着させる機能を有する。
駆動ローラ73は中間転写ベルト駆動モータ(図示せず)により回転駆動され、それに従って中間転写ベルト64が搬送される。従動ローラ74は、駆動ローラ73に従動する。中間転写ベルト64は、感光体ドラム62a〜62dで形成された各色の画像を重ね合わせる機能を有する。二次転写ローラ65は、中間転写ベルト64上の画像を転写紙90に転写する機能を有する。
斥力ローラ66は、二次転写ローラ65の対向部分に配置され、中間転写ベルト64と二次転写ローラ65間のニップを生成及び維持する機能を有する。レジストローラ67は、転写紙90のスキュー補正及び転写紙90の搬送等を行う機能を有する。給紙ユニット68は、転写紙90を積載しておく機能を有する。給紙ローラ69は、転写紙90を給紙ユニット68から紙搬送ローラ70へ送り出す機能を有する。紙搬送ローラ70は、給紙ローラ69から送り出された転写紙90をレジストローラ67まで搬送する機能を有する。排紙ユニット71は、画像が転写かつ定着された転写紙90を排出する機能を有する。
中間転写ベルト64上には、中間転写ベルトスケール64aが形成されている。中間転写ベルトスケール64aは、搬送方向に沿って一定の周期で交互に配置された反射部と非反射部とを有する目盛である。中間転写ベルト64近傍の、中間転写ベルトスケール64aを読み取れる位置には、中間転写スケール検出センサ72が配置されている。中間転写スケール検出センサ72は、中間転写ベルト64上に形成された中間転写ベルトスケール64aの一定の周期に対応したパルス信号を出力する機能を有する。
制御部80は、画像形成装置60に関する様々な制御を行う機能を有する。制御部80は、例えばCPU、ROM、メインメモリなどを含み、制御部80の各種機能は、ROM等に記録された制御プログラムがメインメモリに読み出されてCPUにより実行されることによって実現される。ただし、制御部80の一部又は全部は、ハードウェアのみにより実現されてもよい。又、制御部80は、物理的に複数の装置により構成されてもよい。
感光体ドラム62a〜62dを駆動するドラムモータ(図示せず)にはエンコーダ30(図示せず)が設けられており、図示しないパルス検出手段17、駆動手段19、通信手段20、及び制御部28と合わせて第1の実施の形態に係る回転速度制御装置2(図示せず)を構成している。ドラムモータ(図示せず)は、制御部28により例えば図10及び図11(又は、図10〜図12)のフローチャートに従って速度制御される。又、図13〜図15の処理と組み合わせても構わない。その結果、1周期誤差成分及び2周期誤差成分が除去され、コードホイール11の偏心や反りの影響が低減された、好適なドラムモータ(図示せず)の回転速度制御を実現できる。つまり、ドラムモータ(図示せず)の回転ムラを減少することが可能となる。
中間転写ベルト64を駆動する中間転写モータ(図示せず)や二次転写ローラ65を駆動する二次転写モータ(図示せず)等にエンコーダ30を設け、同様に制御部28により回転速度制御しても構わない。
画像形成装置60において、スキャナユニット61から読み取られた画像は、制御部80に転送され、制御部80にて転写紙90に形成される画像のデータ(以降、画像データとする)を生成する。生成された画像データは、感光体ドラム62a〜62d上に作像され、続いて、中間転写ベルト64上に画像が形成される。更に、中間転写ベルト64上に形成された画像は、中間転写ベルト64と二次転写ローラ65との間に給紙ユニット68から転写紙90が搬送されたタイミングで、転写紙90上に転写される。
転写紙90上に転写された画像は定着ユニット63を通過する。この際、転写紙90上に転写されたトナー画像を転写紙90上に固定するための定着が行われる。続いて、転写紙90は、排紙ユニット71へ排出される。
このように、第2の実施の形態に係る画像形成装置では、第1の実施の形態に係る回転速度制御装置を搭載したため、画像悪化の原因となるモータの回転ムラを減少することが可能となり、画像品質を向上することができる。
〈第2の実施の形態の変形例1〉
第2の実施の形態の変形例1では、第1の実施の形態に係る回転速度制御装置2を搭載した画像形成装置60において、色ずれ補正の確認時に算出した色ずれ値が所定値Zよりも大きくなった場合にコードホイール11に反りが生じたと判断し、図10及び図11(又は、図10〜図12)の処理を実行する例を示す。
図17は、色ずれ補正を実行した場合のフローチャートの一例である。画像形成装置60は環境変化や作像枚数が所定の枚数に達したら色ずれ計測を実行し、その結果に基づいて色ずれ補正をする。しかし、コードホイール11が反っていると、ドラムモータ(図示せず)に回転ムラが生じ、色ずれが補正できない虞がある。そこで、色ずれ補正の確認時に算出した色ずれ値が所定値Zよりも大きくなった場合にコードホイール11に反りが生じたと判断し、図10及び図11(又は、図10〜図12)の処理を実行する。
具体的には、図17において、まず、制御部80中の色ずれ値算出手段は、色ずれ補正を実行し、色ずれ補正の確認時に色ずれ値を算出する(S600)。ここで、色ずれ補正とは、例えば、色合せ用のトナーパターン列を各色について作像し、基準色に対する他の色の色ずれをフォトトランジスタ等のセンサにより計測し、センサの計測結果に基づいて色ずれ値を算出し、感光体ドラム62a〜62dへレーザ光を照射するタイミング調整等を行うことである。
より詳しくは、例えば、制御部80中のトナーパターン列作像手段が、中間転写ベルト64等の無端状搬送体上に色ずれ計測用のトナーパターン列を作像する。トナーパターン列としては、例えば、Y(イエロー)色、C(シアン)色、M(マゼンダ)色、K(黒)色の各色について横線パターン及び斜め線パターンを含むものとすることができる。そして、無端状搬送体上に作像されたトナーパターン列をセンサによって計測する。そして、色ずれ値算出手段は、センサの計測結果に基づいて、基準色(例えば、黒)に対する他の色のスキュー、副走査レジストずれ、主走査レジストずれ、主走査倍率誤差等を算出し、感光体ドラム62a〜62dへレーザ光を照射するタイミング調整等により色ずれ補正を実行する。そして、色ずれ補正を実行後、色ずれ補正の確認のため、再度色合せ用のトナーパターン列を各色について作像して再度色ずれ値を算出する。
次に、演算手段28qは、S600で色ずれ補正の確認時に算出した色ずれ値が、所定値Zよりも大きいか否かを判定する(S601)。S601で大きいと判定した場合(Yesの場合)には、S200〜S208(図10参照)の反り計測を実行し、更にS209〜S214(図11参照)の2周期誤差成分の除去を実行する。更に、S300〜S304(図12参照)の処理を実行しても良い。S601で大きくないと判定した場合(Noの場合)には図17の処理を終了する。なお、所定値Zは、例えば、100μmとすることができる。
このように、第2の実施の形態の変形例1では、色ずれ補正の確認時に算出した色ずれ値が所定値Zよりも大きくなったことを検出した場合に、コードホイール11が反ってドラムモータ(図示せず)に回転ムラが生じていると判断する。このような場合に、図10及び図11(又は、図10〜図12)の処理を実行することにより、1周期誤差成分及び2周期誤差成分が除去され、コードホイール11の偏心や反りの影響が低減された、好適なドラムモータ(図示せず)の回転速度制御を実現できる。その結果、色ずれ補正を実行可能となる。なお、図17に例示した処理は、図17に例示した処理を実行する手順を備えたプログラムとして制御部80のROM等に記憶することができる。そして、制御部80のROM等に記憶されたプログラムは、制御部80のCPUにより実行することができる。
以上、好ましい実施の形態及びその変形例について詳説したが、上述した実施の形態及びその変形例に制限されることはなく、特許請求の範囲に記載された範囲を逸脱することなく、上述した実施の形態及びその変形例に種々の変形及び置換を加えることができる。