(57)【要約】【課題】簡易な処理により低コストでモータの発振を検知することが可能なモータ制御装置を提供すること。【解決手段】モータの目標回転位置と、検出される前記モータの回転位置との位置偏差を検出する位置偏差検出手段と、前記位置偏差と所定範囲とを比較し、前記位置偏差が前記所定範囲外で駆動している状態を第１状態、前記位置偏差が前記所定範囲外から前記所定範囲内に変化した後、前記位置偏差が前記所定範囲内で駆動している時間が第１経過時間に達するまでの状態を第２状態として判定する状態判定手段と、前記第１状態又は前記第２状態での継続駆動時間が第２経過時間を超えた場合に、前記モータの発振を検出する発振検出手段と、を有するモータ制御装置。【選択図】図５
2014180188.tif 000002
【特許請求の範囲】
【請求項１】
モータの目標回転位置と、検出される前記モータの回転位置との位置偏差を検出する位置偏差検出手段と、
前記位置偏差と所定範囲とを比較し、前記位置偏差が前記所定範囲外で駆動している状態を第１状態、前記位置偏差が前記所定範囲外から前記所定範囲内に変化した後、前記位置偏差が前記所定範囲内で駆動している時間が第１経過時間に達するまでの状態を第２状態として判定する状態判定手段と、
前記第１状態又は前記第２状態での継続駆動時間が第２経過時間を超えた場合に、前記モータの発振を検出する発振検出手段と、
を有することを特徴とするモータ制御装置。
【請求項２】
前記所定範囲は、ゼロを中心に設定されていることを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記モータの回転を検出する回転検出手段と、
前記回転検出手段の検出結果に基づいて前記モータの回転位置を検出する回転位置検出手段と、
前記位置偏差に基づいて前記モータの回転位置を制御する位置制御手段を有する
を有することを特徴とする請求項１又は２に記載のモータ制御装置。
【請求項４】
前記回転検出手段の検出結果に基づいて前記モータの回転速度を検出する回転速度検出手段と、
前記モータの目標回転速度と前記回転速度との速度偏差に基づいて、前記モータの回転速度を制御する速度制御手段と、
を有することを特徴とする請求項３に記載のモータ制御装置。
【請求項５】
前記回転検出手段は、インクリメンタル型のロータリエンコーダであり、前記モータの回転に応じて２相のパルス信号を出力する
ことを特徴とする請求項３又は４に記載のモータ制御装置。
【請求項６】
請求項１から５の何れか一項に記載のモータ制御装置を有することを特徴とする画像形成装置。
【請求項７】
モータの目標回転位置と、検出される前記モータの回転位置との位置偏差を検出する位置偏差検出ステップと、
前記位置偏差と所定範囲とを比較し、前記位置偏差が前記所定範囲外で駆動している状態を第１状態、前記位置偏差が前記所定範囲外から前記所定範囲内に変化した後、前記位置偏差が前記所定範囲内で駆動している時間が第１経過時間に達するまでの状態を第２状態として判定する状態判定ステップと、
前記第１状態又は前記第２状態での継続駆動時間が第２経過時間を超えた場合に、前記モータの発振を検出する発振検出ステップと、
を有することを特徴とするモータ制御方法。
【請求項８】
請求項７に記載のモータ制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置、画像形成装置、モータ制御方法及びプログラムに関する。
【背景技術】
【０００２】
モータ駆動制御には、例えばモータの回転速度又は回転位置の検出結果と、目標速度又は目標位置との偏差に基づくフィードバック制御系が広く用いられている。この様なモータ駆動制御では、多様に変化する負荷の状態等に応じて常に制御パラメータが適切に設定されるとは限らず、制御パラメータの設定によってはモータが発振してしまう場合がある。
【０００３】
そこで、モータの発振を速やかに検出して停止させるために、エンコーダから出力されるモータ速度検出信号に基づいてモータの発振を検知する発振検知部を有するサーボモータの制御装置が開示されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に係る構成による発振検知では、エンコーダ信号のフィルタリングや２値化処理等といった複雑な処理を要し、高スペックなＣＰＵが必要となりコストが増大する可能性がある。
【０００５】
本発明は上記に鑑みてなされたものであって、簡易な処理により低コストでモータの発振を検知することが可能なモータ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様のモータ制御装置によれば、モータの目標回転位置と、検出される前記モータの回転位置との位置偏差を検出する位置偏差検出手段と、前記位置偏差と所定範囲とを比較し、前記位置偏差が前記所定範囲外で駆動している状態を第１状態、前記位置偏差が前記所定範囲外から前記所定範囲内に変化した後、前記位置偏差が前記所定範囲内で駆動している時間が第１経過時間に達するまでの状態を第２状態として判定する状態判定手段と、前記第１状態又は前記第２状態での継続駆動時間が第２経過時間を超えた場合に、前記モータの発振を検出する発振検出手段と、を有する。
【発明の効果】
【０００７】
本発明の実施形態によれば、簡易な処理により低コストでモータの発振を検知することが可能なモータ制御装置を提供できる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る画像形成装置の概略構成を例示する図である。
【図２】実施形態に係る画像形成装置のハードウェア構成を例示する図である。
【図３】実施形態に係るモータ制御部の機能構成を例示する図である。
【図４】実施形態における位置偏差検出結果及び駆動状態を例示する図（１）である。
【図５】実施形態における位置偏差検出結果及び駆動状態を例示する図（２）である。
【図６】実施形態における発振検出処理のフローチャートを例示する図である。
【図７】実施形態におけるstate[S0]処理のフローチャートを例示する図である。
【図８】実施形態におけるstate[S1]処理のフローチャートを例示する図である。
【図９】実施形態におけるstate[S2]処理のフローチャートを例示する図である。
【図１０】実施形態における発振判定処理のフローチャートを例示する図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して発明を実施するための形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。
【００１０】
＜画像形成装置の構成＞
図１は、実施形態に係る画像形成装置２００の概略構成を例示する図である。
【００１１】
図１に示す様に、画像形成装置２００は、自動原稿送り装置（ＡＤＦ）１４０、画像読取部１３０、画像形成部１１０、書き込みユニット１２０、給紙ユニット１５０を有する。
【００１２】
ＡＤＦ１４０は、原稿給紙台上に積載された原稿を、一枚ずつ画像読取部１３０のコンタクトガラス１１上に搬送し、画像データの読み取り後に排紙トレイ上に排出する。
【００１３】
画像読取部１３０は、原稿が載置されるコンタクトガラス１１、露光ランプ４１、第１ミラー４２、第２ミラー４３、第３ミラー４４、レンズ４５、ＣＣＤ４６を有する。露光ランプ４１、第１ミラー４２、第２ミラー４３及び第３ミラー４４は、一定速度で移動しながら原稿を走査し、原稿からの反射光がレンズ４５を介してＣＣＤ４６の受光面に結像して光電変換される。
【００１４】
ＣＣＤ４６によって光電変換された画像データは、不図示の画像処理回路でＡ／Ｄ変換された後に画像処理回路によって各種の画像処理（γ補正、色変換、画像分離、階調補正等）が施される。
【００１５】
書き込みユニット１２０は、それぞれイエロー（ｙ）、マゼンタ（ｍ）、シアン（ｃ）、ブラック（ｋ）の静電潜像を形成する露光装置４７ｙ、４７ｍ、４７ｃ、４７ｋを有する。ユーザが原稿画像の複写を指示した場合や、プリンタとして画像の印刷を指示した場合には、書き込みユニット１２０が色毎に感光ドラムに画像に対応する静電潜像を形成する。
【００１６】
画像形成装置２００には、各色のトナー画像が形成される４つの感光体ユニット１３ｙ、１３ｍ、１３ｃ、１３ｋが、中間転写ベルト１４の搬送方向に沿って並設されている。各感光体ユニット１３ｙ、１３ｍ、１３ｃ、１３ｋには、感光体ドラム２７ｙ、２７ｍ、２７ｃ、２７ｋと、帯電装置４８ｙ、４８ｍ、４８ｃ、４８ｋ、現像装置１６ｙ、１６ｍ、１６ｃ、１６ｋ、クリーニング装置４９ｙ、４９ｍ、４９ｃ、４９ｋがそれぞれ設けられている。以下では、色を表す符号ｙ、ｍ、ｃ、ｋを省略して説明する。
【００１７】
書き込みユニット１２０の露光装置４７は、例えば発光ダイオード（ＬＥＤ）アレイとレンズアレイからなるＬＥＤ書込み方式で露光する。露光装置４７は、各色に光電変換された画像データに応じてＬＥＤを発光して感光体ドラム２７上に静電潜像を形成する。
【００１８】
現像装置１６は、現像剤を担持して回転する現像ローラが、感光体ドラム２７上に形成された静電潜像にトナーを供給し、各色のトナー像を形成する。
【００１９】
感光体ドラム２７に形成された各色のトナー像は、感光体ドラム２７と中間転写ベルト１４とが接する一次転写位置で、中間転写ベルト１４上に重ねて転写される。
【００２０】
感光体ドラム２７に中間転写ベルト１４を介して対向する位置には、中間転写ローラ２６が設けられている。中間転写ローラ２６は、それぞれ中間転写ベルト１４の内周面に当接され、中間転写ベルト１４を各感光体の表面に接触させる。中間転写ローラ２６は、電圧が印可され、感光体ドラム２７のトナー像を中間転写ベルト１４に転写するための中間転写電界を形成し、中間転写ベルト１４上にトナー画像を転写する。各色のトナー画像は重畳して転写され、フルカラートナー画像が中間転写ベルト１４に形成される。
【００２１】
中間転写ベルト１４上に形成されたトナー画像が二次転写ローラ１８の位置に達するタイミングで、記録紙５３が二次転写ローラ１８と斥力ローラ１７との間の二次転写位置５０に到達する様に給紙搬送され、トナー画像が記録紙５３に二次転写される。
【００２２】
記録紙５３は、第１トレイ２２ａ、第２トレイ２２ｂ、第３トレイ２２ｃ、第４トレイ
２２ｄの何れかから給紙される。各給紙トレイ２２ａ〜２２ｄは、内部に収容された記録紙５３を一番上から順次給紙する給紙ローラ２８、給紙された記録紙５３を個々に分離してから搬送路２３に送り出す分離ローラ３１、複数の搬送ローラ対２９を有する。
【００２３】
搬送ローラ対２９は、給紙トレイ２２から搬送される記録紙５３を後段の搬送ローラ対２９、画像形成部１１０の給紙路３２に向けて送り出す。給紙路３２に送り込まれた記録紙５３は、その先端がレジストセンサ５１によって検出された後、レジストローラ３３に突き当てられて一端停止する。レジストローラ３３は、挟み込んだ記録紙５３を所定のタイミングで二次転写位置５０に送り込む。所定のタイミングは、中間転写ベルト１４に形成されたフルカラートナー画像が二次転写位置５０に搬送されるタイミングである。
【００２４】
記録紙５３は、二次転写ローラ１８と斥力ローラ１７との間の二次転写位置５０で、中間転写ベルト１４上のフルカラートナー画像が転写され、搬送ベルト２４によって定着装置１９まで搬送される。
【００２５】
定着装置１９は、加圧ローラ１２、加熱ローラ２５を有し、記録紙５３を加熱及び加圧することで、フルカラートナー画像を記録紙５３上に定着させる。定着装置１９によりフルカラートナー画像が定着された記録紙５３は、排紙トレイ２１上に排出される。
【００２６】
なお、画像形成装置２００として、電子写真方式で画像を記録紙５３に形成する画像形成装置を例示したが、インク滴を吐出して画像を形成するインクジェット方式等の他の画像形成方式で画像を形成する画像形成装置であっても良い。
【００２７】
＜画像形成装置のハードウェア構成＞
図２は、実施形態に係る画像形成装置２００のハードウェア構成を例示する図である。
【００２８】
図２に示す様に、画像形成装置２００は、コントローラ２１０、スキャナ２２０、プリンタ２３０、モデム２４０、操作パネル２５０、ネットワークＩ／Ｆ部２６０、記録媒体Ｉ／Ｆ部２７０、モータ制御部３００を有する。
【００２９】
コントローラ２１０は、ＣＰＵ２１１、ＲＡＭ２１２、ＲＯＭ２１３、ＨＤＤ２１４及びＮＶＲＡＭ２１５等を有する。ＲＯＭ２１３には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。ＲＡＭ２１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ２１１は、ＲＡＭ２１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ２１４には、プログラムやプログラムが利用する各種のデータ等が記憶される。ＮＶＲＡＭ２１５には、各種の設定情報等が記憶される。
【００３０】
スキャナ２２０は、原稿より画像データを読み取るためのハードウェア（画像読取部）である。プリンタ２３０は、画像を記録媒体に印刷するためのハードウェア（画像形成部）である。モデム２４０は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル２５０は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、タッチパネル機能を有する液晶パネル等の操作画面等を備えるハードウェアである。
【００３１】
ネットワークＩ／Ｆ部２６０は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない）に接続するためのハードウェアである。記録媒体Ｉ／Ｆ部２７０は、記録媒体２７１とのインタフェースである。画像形成装置２００は記録媒体Ｉ／Ｆ部２７０を介して、記録媒体２７１の読み取り及び／又は書き込みを行うことができる。記録媒体２７１には、フレキシブルディスク、ＣＤ、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（SD Memory card）、ＵＳＢメモリ（Universal Serial Bus memory）等がある。
【００３２】
モータ制御部３００は、モータ制御装置としてモータ４００の駆動を制御する。モータ４００は、例えばブラシレスＤＣモータ等であり、画像形成装置２００において感光体ドラム２７、給紙ローラ２８、搬送ローラ対２９等を回転駆動させるために設けられる。エンコーダ５００は、回転検出手段の一例であり、例えばインクリメンタル型のロータリエンコーダである。エンコーダ５００は、モータ４００の駆動機構に設けられるコードホイールに一定角度間隔で刻まれているスリットを読み取って２相のパルス信号を出力する。
【００３３】
モータ制御部３００は、設定される目標回転位置、目標回転速度及びエンコーダ５００の検出結果に基づいて、モータ４００のフィードバック制御を行う。モータ制御部３００は、例えばＣＰＵ、ＲＯＭ、ＲＡＭ等を含み、モータ制御部３００の各種機能は、ＲＯＭ等に記録されたプログラムがＲＡＭに読み出されてＣＰＵにより実行されることで実現される。
【００３４】
＜モータ制御部の構成＞
図３は、実施形態に係るモータ制御部３００の構成を例示する図である。
【００３５】
モータ制御部３００は、図３に示す様に、カウンタＡ３０１、目標位置検出部３０２、位置比較器３０３、位置制御部３０４、速度比較器３０５、速度制御部３０６、カウンタＢ３０７、カウンタＣ３０８、位置検出部３０９、速度検出部３１０、状態判定部３１１、発振検出部３１２を有する。
【００３６】
モータ制御部３００は、例えば画像形成装置２００のコントローラ２１０からＣＬＫ信号が入力され、カウンタＡ３０１が、ＣＬＫ信号のパルス周波数をカウントし、モータ４００の目標回転位置及び目標回転速度を算出する。なお、目標回転位置及び目標回転速度は、例えばモータ制御部３００が有するメモリに記憶されているテーブルに基づいて設定されても良い。また、目標回転位置及び目標回転速度は、例えば画像形成装置２００のコントローラ２１０によりモータ制御部３００のＣＰＵレジスタに設定される値に基づいて設定されても良い。
【００３７】
目標位置検出部３０２は、カウンタＡ３０１から、モータ４００の目標回転位置を取得する。
【００３８】
位置比較器３０３は、目標位置検出部３０２により取得される目標回転位置と、位置検出部３０９により検出されるモータ４００の回転位置との位置偏差xerrを算出する。
【００３９】
位置制御部３０４は、目標回転位置と回転位置との位置偏差xerrから、モータ４００の回転位置の補正量を算出する。位置制御部３０４は、Ｐ制御によりモータ４００の回転位置を制御するが、ＰＩ制御又はＰＩＤ制御により制御しても良い。
【００４０】
速度比較器３０５は、モータ４００の目標回転速度と、速度検出部３１０により検出されるモータ４００の回転速度との速度偏差verrを算出する。
【００４１】
速度制御部３０６は、目標回転速度と検出速度との速度偏差verrから、モータ４００の回転速度の補正量を算出する。速度制御部３０６は、ＰＩＤ制御によりモータ４００の回転速度を制御するが、Ｐ制御又はＰＩ制御により制御しても良い。
【００４２】
カウンタＢ３０７は、速度制御部３０６により算出された補正量をＰＷＭ信号に変換し、モータ４００に出力する。
【００４３】
カウンタＣ３０８は、エンコーダ５００から出力されるパルス信号を取得する。エンコーダ５００からは、モータ４００の回転位置、回転速度及び回転方向といった情報を取得することが出来る２相のパルス信号が出力される。
【００４４】
位置検出部３０９は、エンコーダ５００から出力されるパルス信号に基づいて、モータ４００の回転位置を検出する。
【００４５】
速度検出部３１０は、エンコーダ５００から出力されるパルス信号に基づいて、モータ４００の回転速度を検出する。なお、速度検出部３１０は、位置検出部３０９により検出される回転位置の微分若しくはカウンタＣ３０８から回転速度を取得することもできる。
【００４６】
状態判定部３１１は、位置比較器３０３により算出される目標回転位置と回転位置との偏差xerrに基づいて、モータ４００の駆動状態を判定する。
【００４７】
発振検出部３１２は、状態判定部３１１によりモータ４００の駆動状態の判定結果に基づいて、モータ４００の発振を検出する。
【００４８】
＜モータ発振検出＞
次に、モータ制御部３００が、モータ４００の発振を検出する方法について説明する。
【００４９】
図４は、モータ４００を駆動させた時の位置偏差xerrの検出結果及び状態判定部３１１による判定結果を例示する図である。図４に例示するグラフは、横軸が時間、縦軸がモータ４００の位置偏差xerr[pulse]を示している。
【００５０】
モータ４００は、位置制御部３０４により位置偏差xerrがゼロに近付く様に制御されるが、位置偏差xerrはゼロを中心に振動的な挙動を示す。状態判定部３１１は、モータ４００の位置偏差xerrと、所定範囲として設定される第１位置偏差閾値-ERR_THから第２位置偏差閾値ERR_THまでの位置偏差正常範囲とを比較し、比較結果に基づいてモータ４００の駆動状態を判定する。
【００５１】
なお、第１位置偏差閾値と第２位置偏差閾値とは、絶対値が異なる値であっても良く、位置偏差正常範囲は位置偏差ゼロが中心となる様に設定しなくても良い。また、第１位置偏差閾値及び第２位置偏差閾値を適宜設定することで、モータ４００の発振検出感度を調整することが可能である。
【００５２】
以下、図４に例示するグラフの経過時間に沿って説明する。
【００５３】
（時間T0〜T1：state[S0]）
時間T0にてモータ４００が駆動を開始し、駆動開始後に位置偏差xerrが増加し、時間T1にて位置偏差xerrが位置偏差閾値ERR_THを超えている。状態判定部３１１は、駆動開始から位置偏差xerrが位置偏差正常範囲内で駆動する初期状態を、state[S0]とする。
【００５４】
（時間T1〜T2：state[S1]）
時間T1から時間T2の間は、位置偏差xerrが位置偏差閾値ERR_THを超えた状態でモータ４００が駆動している。状態判定部３１１は、位置偏差xerrが位置偏差正常範囲外でモータ４００が駆動する状態を、state[S1]とする。
【００５５】
（時間T2〜T3：state[S2]）
時間T2において、位置偏差xerrが位置偏差閾値ERR_TH以下に変化し、その後、位置偏差xerrは位置偏差正常範囲内で推移している。
【００５６】
状態判定部３１１は、位置偏差xerrが位置偏差正常範囲外から、位置偏差正常範囲内に変化した時（図４に示す例では時間T2,T5,T7）に、モータ４００の駆動状態をstate[S2]とする。また、この時に位置偏差正常時間mm_cntのカウントを開始する。
【００５７】
状態判定部３１１は、位置偏差xerrが位置偏差正常範囲内で推移する間、位置偏差正常時間mm_cntのカウントを継続する。また、位置偏差正常時間mm_cntが第１経過時間としての経過時間閾値MM_TMOを経過するまでは、モータ４００の駆動状態をstate[S2]とする。
【００５８】
（時間T3〜T4：state[S0]）
状態判定部３１１は、位置偏差正常時間mm_cntが経過時間閾値MM_TMOに達した時間T3で、モータの駆動状態をstate[S0]とし、位置偏差正常時間mm_cntのカウントを停止してリセットする。状態判定部３１１は、時間T3以降であって、位置偏差xerrが位置偏差正常範囲内で推移する間は、引き続きモータ４００の駆動状態をstate[S0]とする。
【００５９】
（時間T4〜T5：state[S1]）
時間T4にて、再び位置偏差xerrが位置偏差閾値ERR_THを超え、時間T4から時間T5まで位置偏差xerrが位置偏差閾値ERR_THを超えた状態でモータ４００が駆動している。状態判定部３１１は、位置偏差xerrが位置偏差正常範囲外でのモータ４００駆動状態を、再びstate[S1]とする。
【００６０】
（時間T5〜T6：state[S2]）
時間T5において、位置偏差xerrが位置偏差閾値ERR_TH以下に変化している。ここで、状態判定部３１１は、モータ４００の駆動状態をstate[S2]とし、位置偏差正常時間mm_cntのカウントを開始する。
【００６１】
位置偏差xerrは、時間T6において、位置偏差正常時間mm_cntが経過時間閾値MM_TMOを超える前に、位置偏差閾値-ERR_TH以下に変化している。この場合には、状態判定部３１１は、モータ４００の駆動状態を時間T5から時間T6まではstate[s2]とし、時間T6にてstate[S1]に変更する。
【００６２】
（時間T6〜T7：state[S1]）
時間T6から時間T7まで、位置偏差xerrが位置偏差閾値-ERR_TH以下で推移している。状態判定部３１１は、位置偏差xerrが位置偏差正常範囲外で推移していることから、モータ４００の駆動状態をstate[s1]とする。
【００６３】
また、時間T7にて、位置偏差xerrが位置偏差正常範囲内に変化した時に、状態判定部３１１は、モータ４００の駆動状態をstate[S2]とし、位置偏差正常時間mm_cntのカウントを開始する。
【００６４】
時間T7以降も、同様に状態判定部３１１が位置偏差xerrと位置偏差正常範囲とを比較してモータ４００の駆動状態を判定する。
【００６５】
以上で説明した様に、状態判定部３１１は、モータ４００の回転開始後から、位置偏差xerrが位置偏差正常範囲外に変化するまでの状態をstate[S0]とする。また、位置偏差xerrが位置偏差正常範囲内で推移している状態であって、位置偏差xerrが位置偏差正常範囲外から位置偏差正常範囲内に変化後、位置偏差正常時間mm_cntが経過時間閾値MM_TMOを経過した状態をstate[S0]とする。
【００６６】
また、状態判定部３１１は、位置偏差xerrが所定範囲外でモータ４００が駆動している状態をstate[S1]とする。
【００６７】
また、状態判定部３１１は、位置偏差xerrが位置偏差正常範囲内で推移している状態であって、位置偏差xerrが位置偏差正常範囲外から位置偏差正常範囲内に変化後、位置偏差正常時間mm_cntが経過時間閾値MM_TMOに達するまでの状態をstate[S2]とする。
【００６８】
ここで、発振検出部３１２は、状態判定部３１１によりモータ４００の駆動状態がstate[S0]からstate[S1]に変更された時に、位置偏差異常時間err_cntのカウントを開始する。また、発振検出部３１２は、モータ４００の駆動状態が継続してstate[S1]又はstate[S2]である場合に、位置偏差異常時間err_cntのカウントを継続する。発振検出部３１２は、state[S2]からstate[S0]に変化した時（例えば図４に示す時間T3）に、位置偏差異常時間err_cntのカウントを停止してリセットする。
【００６９】
発振検出部３１２は、state[S1]又はstate[S2]での継続駆動時間である位置偏差異常時間err_cntが、第２経過時間としての発振時間閾値TIME_THを超えた時に、モータ４００が発振状態であると判定する。
【００７０】
図５は、モータ４００を駆動させた時の位置偏差xerrの検出結果及び状態判定部３１１による判定結果であり、発振検出部３１２によりモータ４００の発振が検出された例を示している。
【００７１】
以下、図５に例示するグラフの経過時間に沿って説明する。
【００７２】
（時間T10〜T11：state[S0]）
モータ４００の駆動開始後、位置偏差xerrが位置偏差正常範囲内で推移している間は、状態判定部３１１はモータ４００の駆動状態をstate[S0]とする。
【００７３】
（時間T11〜T12：state[S1]）
位置偏差xerrが位置偏差正常範囲外で推移する時間T11から時間T12までは、状態判定部３１１はモータ４００の駆動状態をstate[S1]とする。
【００７４】
ここで、時間T11にてstate[S0]からstate[S1]に変更された時に、発振検出部３１２が、位置偏差異常時間err_cntのカウントを開始する。
【００７５】
（時間T12〜T13：state[S2]）
位置偏差xerrが、位置偏差正常範囲外から位置偏差正常範囲内に変化し、位置偏差正常範囲内で推移する時間T12から時間T13までは、状態判定部３１１はモータ４００の駆動状態をstate[S2]とする。ここで、時間T12にて状態判定部３１１が位置偏差正常時間mm_cntのカウントを開始する。
【００７６】
（時間T13〜T14：state[S1]）
位置偏差xerrが位置偏差閾値-ERR_THからERR_THの範囲外で推移する時間T13から時間T14までは、状態判定部３１１はモータ４００の駆動状態をstate[S1]とする。ここで、時間T12にてカウントを開始していた位置偏差正常時間mm_cntが、経過時間閾値MM_TMOを超える前に、位置偏差xerrが位置偏差正常範囲内に変化している。そのため、状態判定部３１１は、state[S2]からstate[S0]に変更することなく、state[S2]からstate[S1]に変更し、位置偏差正常時間mm_cntのカウントを停止してリセットする。
【００７７】
（時間T14〜T15：state[S2]）
位置偏差xerrが、位置偏差正常範囲外から位置偏差正常範囲内に変化し、位置偏差正常範囲内で推移する時間T14から時間T15までは、状態判定部３１１がモータ４００の駆動状態をstate[S2]とする。ここで、state[S1]からstate[S2]に変化する時間T14にて、状態判定部３１１が位置偏差正常時間mm_cntのカウントを開始する。
【００７８】
（時間T15〜T16：state[S1]）
位置偏差xerrが位置偏差正常範囲外で推移する時間T15から時間T16までは、状態判定部３１１はモータ４００の駆動状態をstate[S1]とする。
【００７９】
ここで時間T15にて、状態判定部３１１は、位置偏差正常時間mm_cntのカウントを停止してリセットする。
【００８０】
（時間T16〜T17：state[S2]）
位置偏差xerrが、位置偏差正常範囲外から位置偏差正常範囲内に変化し、位置偏差正常範囲内で推移する時間T16から時間T17までは、状態判定部３１１はモータ４００の駆動状態をstate[S2]とする。ここで、時間T16にて状態判定部３１１が位置偏差正常時間mm_cntのカウントを開始する。
【００８１】
（時間T17〜T18：state[S1]）
位置偏差xerrが位置偏差正常範囲外に変化したことで、状態判定部３１１は時間T17にてモータ４００の駆動状態をstate[S1]とする。また、状態判定部３１１は、時間T17にて位置偏差正常時間mm_cntのカウントを停止してリセットする。
【００８２】
ここで、発振検出部３１２は、時間T11からstate[S1]又はstate[S2]が継続される間、位置偏差異常時間err_cntのカウントを継続し、時間T18にて、位置偏差異常時間err_cntが発振時間閾値TIME_THに達した時に、モータ４００が発振状態であると判定する。
【００８３】
以上で説明した様に、モータ制御部３００は、状態判定部３１１により判定されるモータ４００の駆動状態に基づいて、発振検出部３１２がstate[S1]又はstate[S2]が連続して継続する時間をカウントし、モータ４００の発振を検出する。
【００８４】
＜モータ発振検出処理＞
次に、モータ制御部３００におけるモータ発振検出処理について、図６〜図１０に基づいて説明する。
【００８５】
図６は、実施形態における発振検出処理のフローチャートを例示する図であり、モータ制御部３００は、所定の制御周期でモータ４００の発振検出処理を実行する。
【００８６】
まずステップＳ１０１では、状態判定部３１１が、モータ４００の駆動状態がstate[S0]であるか否かを判断する。モータ４００の駆動状態がstate[S0]である場合（ステップＳ１０１：Ｙｅｓ）には、ステップＳ１０２にて、state[S0]処理を実行する。
【００８７】
モータ４００の駆動状態がstate[S0]ではない場合（ステップＳ１０１：Ｎｏ）には、ステップＳ１０３にて状態判定部３１１が、モータ４００の駆動状態がstate[S1]であるか否かを判断する。モータ４００の駆動状態が、state[S1]である場合（ステップＳ１０３：Ｙｅｓ）には、ステップＳ１０４にて、state[S1]処理を実行する。
【００８８】
モータ４００の駆動状態がstate[S1]ではない場合（ステップＳ１０３：Ｎｏ）には、モータ４００の駆動状態はstate[S2]であり、ステップＳ１０５にてstate[S2]処理を実行する。
【００８９】
最後にステップＳ１０６にて、発振検出部３１２が発振判定処理を実行し、モータ４００が発振状態であるか否かを判定して処理を終了する。
【００９０】
（state[S0]処理）
図７は、図６に示すステップＳ１０２のstate[S0]処理のフローチャートを例示する図である。
【００９１】
モータ４００の駆動状態がstate[S0]である場合には、まずステップＳ２０１にて、状態判定部３１１が位置偏差xerrを取得する。次にステップＳ２０２にて、位置偏差xerrと位置偏差正常範囲とを比較する。
【００９２】
位置偏差xerrが位置偏差正常範囲外である場合（ステップＳ２０２：Ｙｅｓ）には、状態判定部３１１がモータ４００の駆動状態をstate[S1]に変更し、state[S0]処理を終了する。
【００９３】
位置偏差xerrが位置偏差正常範囲内である場合（ステップＳ２０２：Ｙｅｓ）には、状態判定部３１１はモータ４００の駆動状態を引き続きstate[S0]に維持して、state[S0]処理を終了する。
【００９４】
（state[S1]処理）
図８は、図６に示すステップＳ１０４のstate[S1]処理のフローチャートを例示する図である。
【００９５】
モータ４００の駆動状態がstate[S1]である場合には、まずステップＳ３０１にて、状態判定部３１１が位置偏差xerrを取得する。次にステップＳ３０２にて、位置偏差xerrと位置偏差正常範囲とを比較する。
【００９６】
位置偏差xerrが位置偏差正常範囲内である場合（ステップＳ３０２：Ｎｏ）には、状態判定部３１１がモータ４００の駆動状態をstate[S2]に変更し、state[S1]処理を終了する。
【００９７】
位置偏差xerrが位置偏差正常範囲外である場合（ステップＳ３０２：Ｙｅｓ）には、状態判定部３１１はモータ４００の駆動状態を引き続きstate[S1]を維持して、state[S1]処理を終了する。
【００９８】
（state[S2]処理）
図９は、図６に示すステップＳ１０５のstate[S2]処理のフローチャートを例示する図である。
【００９９】
モータ４００の駆動状態がstate[S2]である場合には、まずステップＳ４０１にて、状態判定部３１１が位置偏差xerrを取得する。次にステップＳ４０２にて、位置偏差xerrと位置偏差正常範囲とを比較する。
【０１００】
位置偏差xerrが位置偏差正常範囲外である場合（ステップＳ４０２：Ｙｅｓ）には、ステップＳ４０３にて、状態判定部３１１がモータ４００の駆動状態をstate[S1]に変更し、state[S2]処理を終了する。
【０１０１】
位置偏差xerrが位置偏差正常範囲内である場合（ステップＳ４０２：Ｎｏ）には、ステップＳ４０４にて、状態判定部３１１が位置偏差正常時間mm_cntと経過時間閾値MM_TMOとを比較する。
【０１０２】
位置偏差正常時間mm_cntが経過時間閾値MM_TMOより大きい場合（ステップＳ４０４：Ｙｅｓ）には、ステップＳ４０５にて状態判定部３１１が、モータ４００の駆動状態をstate[S1]に変更する。また、ステップＳ４０６にて位置偏差正常時間mm_cnをゼロにリセットし、state[S2]処理を終了する。
【０１０３】
位置偏差正常時間mm_cntが経過時間閾値MM_TMO以下の場合（ステップＳ４０４：Ｎｏ）には、ステップＳ４０７にて状態判定部３１１が、位置偏差正常時間mm_cnをカウントし、state[S2]処理を終了する。
【０１０４】
（発振判定処理）
図１０は、図６に示すステップＳ１０６の発振判定処理のフローチャートを例示する図である。
【０１０５】
発振検出部３１２は、まずステップＳ５０１にて、モータ４００の駆動状態がstate[S1]又はstate[S2]の何れかであるかを判断する。
【０１０６】
モータ４００の駆動状態がstate[S0]であり、state[S1]又はstate[S2]ではない場合（ステップＳ５０１：Ｎｏ）には、ステップＳ５０２にて、発振検出部３１２が位置偏差異常時間err_cntをゼロにリセットし、発振判定処理を終了する。
【０１０７】
モータ４００の駆動状態がstate[S1]又はstate[S2]である場合（ステップＳ５０１：Ｙｅｓ）には、ステップＳ５０３にて、発振検出部３１２が位置偏差異常時間err_cntをカウントする。次にステップＳ５０４にて、発振検出部３１２が、位置偏差異常時間err_cntと発振時間閾値TIME_THとを比較する。
【０１０８】
位置偏差異常時間err_cntが発振時間閾値TIME_TH以下の場合（ステップＳ５０４：Ｎｏ）には、発振検出部３１２は、モータ４００は発振状態にないと判定して発振判定処理を終了する。
【０１０９】
位置偏差異常時間err_cntが発振時間閾値TIME_THより大きい場合（ステップＳ５０４：Ｙｅｓ）には、発振検出部３１２は、モータ４００が発振状態であると判定し、発振判定処理を終了する。
【０１１０】
以上で説明した様に、本実施形態によれば、状態判定部３１１が位置偏差xerrと位置偏差閾値ERR_THとを比較してモータ４００の駆動状態を判定し、発振検出部３１２がモータ４００の駆動状態に基づいて発振を検出する。モータ制御部３００は、モータ４００の発振を検出するためにフィルタリング等の高度な処理を行う必要が無く、簡易な処理でモータ４００の発振を検出できる。また、高度な処理を行う高スペックなＣＰＵを必要としないため、低コストでモータ４００の発振を検出できる。
【０１１１】
以上、実施形態に係るモータ制御装置、画像形成装置、モータ制御方法及びプログラムについて説明したが、本発明は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。
【符号の説明】
【０１１２】
２００  画像形成装置
３００  モータ制御部（モータ制御装置）
３０３  位置比較器（位置偏差検出手段）
３０４  位置制御部（位置制御手段）
３０６  速度制御部（速度制御手段）
３０９  位置検出部（回転位置検出手段）
３１０  速度検出部（速度検出手段）
３１１  状態判定部（状態判定手段）
３１２  発振検出部（発振検出手段）
４００  モータ
５００  エンコーダ（回転検出手段）
【先行技術文献】
【特許文献】
【０１１３】
【特許文献１】特開２０１２−１１０２３０号公報
【図１】
2014180188.tif 000003
【図２】
2014180188.tif 000004
【図３】
2014180188.tif 000005
【図４】
2014180188.tif 000006
【図５】
2014180188.tif 000007
【図６】
2014180188.tif 000008
【図７】
2014180188.tif 000009
【図８】
2014180188.tif 000010
【図９】
2014180188.tif 000011
【図１０】
2014180188.tif 000012