(57)【要約】【課題】モータの目標速度値と、その速度検出値との差分の演算結果から、一方の基準信号自身の誤差成分を相殺除去できるようにすると共に、精度の低い発振器を使用した場合であっても、他方の基準信号に同期した駆動指令値を制御対象に出力できるようにする。【解決手段】基準クロックを発生するオシレータ１と、モータに命令を発行するためのシステムクロックに同期したモータ目標速度信号を入力すると共に、基準クロックに基づいてモータ目標速度信号から当該モータの目標速度値を算出するカウント部２１と、モータ速度クロックを入力すると共に、基準クロックに基づいてモータの速度検出値を算出するカウント部３１と、モータの目標速度値とその速度検出値との差分を演算してモータ駆動指令値を作成する制御部５１と、基準クロックに基づいてモータ駆動指令値をモータ駆動指令信号に変換して出力する指令クロック生成部４１とを備えるものである。【選択図】  図４
2011172350.tif 000002
【特許請求の範囲】
【請求項１】
モータを速度制御するための第１の基準信号を発生する発振器と、
前記モータに命令を発行するための第２の基準信号に同期したモータ目標速度信号を入力すると共に前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記モータ目標速度信号から当該モータの目標速度値を算出する第１の信号入力部と、
前記モータから速度制御結果となるモータ速度信号を入力すると共に前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記モータ速度信号から当該モータの速度検出値を算出する第２の信号入力部と、
前記第１の信号入力部によって算出された前記モータの目標速度値と、前記第２の信号入力部によって算出された前記モータの速度検出値との差分を演算してモータ駆動指令値を作成する制御部と、
前記制御部によって作成された前記モータ駆動指令値及び、前記発振器によって発生された前記第１の基準信号からモータ駆動指令信号を生成して当該モータに出力する信号出力部とを備えることを特徴とするモータ駆動装置。
【請求項２】
前記第１の信号入力部は入力用の第１のカウンタを有し、
前記第１のカウンタは、
前記第２の基準信号に同期したモータ目標速度信号を入力し、当該モータ目標速度信号のクロック周期を前記第１の基準信号に基づいてカウントすることにより前記モータの目標速度値を出力し、
前記第２の信号入力部は入力用の第２のカウンタを有し、
前記第２のカウンタは、
前記モータ速度信号を入力し、当該モータ速度信号のクロック周期を前記第１の基準信号に基づいてカウントすることにより前記モータの速度検出値を出力し、
前記制御部は、
前記第１のカウンタから出力される前記モータの目標速度値と、前記第２のカウンタから出力される前記モータの速度検出値との差分を演算してモータ駆動指令値のクロック周期を決定し、
前記信号出力部は出力用のカウンタを有し、
前記出力用のカウンタは、
前記制御部によって決定された前記クロック周期のモータ駆動指令値を前記第１の基準信号を用いてカウントすることにより前記モータ駆動指令信号を当該モータに出力することを特徴とする請求項１に記載のモータ駆動装置。
【請求項３】
前記第１及び第２の信号入力部、制御部、信号出力部を実装する基板を備え、
前記第１の基準信号を発生する発振器が同一の前記基板内に実装され、
当該第１の基準信号が内部供給されることを特徴とする請求項２に記載のモータ駆動装置。
【請求項４】
前記第１及び第２の信号入力部、制御部、信号出力部を実装する基板を備え、
前記第１の基準信号を発生する発振器が前記基板外に実装され、
当該第１の基準信号が外部供給されることを特徴とする請求項２に記載のモータ駆動装置。
【請求項５】
モータを速度制御するための第１の基準信号及び、当該モータに命令を発行するための第２の基準信号に同期したモータ目標速度信号に基づいて前記モータを駆動する請求項１乃至４に記載のいずれかのモータ駆動装置が複数備えられることを特徴とするモータ駆動システム。
【請求項６】
モータの目標速度を設定するための目標速度値を受信する受信部と、
第１の基準信号を発生する発振器と、
前記モータに命令を発行するための第２の基準信号を入力すると共に、前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記第２の基準信号から当該第１の基準信号を補正するための補正値を算出する第１の信号入力部と、
前記モータから速度制御結果となるモータ速度信号を入力すると共に、前記発振器から第１の基準信号を入力し、前記第１の基準信号に基づいて前記モータ速度信号から当該モータの速度検出値を算出する第２の信号入力部と、
前記第２の信号入力部から算出された前記モータの速度検出値を前記第１の信号入力部から算出された補正値に基づいて補正し、補正後の速度検出値と、前記受信部によって受信された前記モータの目標速度値との差分を演算してモータ駆動指令値を作成する制御部と、
前記制御部によって作成された前記モータ駆動指令値及び、前記発振器によって発生された前記第１の基準信号からモータ駆動指令信号を生成して当該モータに出力する信号出力部とを備えることを特徴とするモータ駆動装置。
【請求項７】
前記第１の信号入力部は入力用の第１のカウンタを有し、
前記第１のカウンタは、
前記第２の基準信号を入力し、当該第２の基準信号のクロック周期を前記第１の基準信号に基づいてカウントすることにより当該第１の基準信号を補正するための補正値を出力し、
前記第２の信号入力部は入力用の第２のカウンタを有し、
前記第２のカウンタは、
前記モータ速度信号を入力し、当該モータ速度信号のクロック周期を前記第１の基準信号に基づいてカウントすることにより前記モータの速度検出値を出力し、
前記制御部は、
前記第２のカウンタから出力された前記モータの速度検出値を、前記第１のカウンタから出力された前記補正値に基づいて補正した後の速度検出値と、前記受信部からモータ速度目標値との差分を演算してモータ駆動指令信号のクロック周期を決定し、
前記信号出力部は出力用のカウンタを有し、
前記出力用のカウンタは、
前記制御部によって決定された前記クロック周期を前記第１の基準信号を用いてカウントすることにより前記モータ駆動指令信号を出力することを特徴とする請求項６に記載のモータ駆動装置。
【請求項８】
前記第１及び第２の信号入力部、制御部、信号出力部を実装する基板を備え、
前記第１の基準信号を発生する発振器が同一の前記基板内に実装され、
当該第１の基準信号が内部供給されることを特徴とする請求項７に記載のモータ駆動装置。
【請求項９】
前記第１及び第２の信号入力部、制御部、信号出力部を実装する基板を備え、
前記第１の基準信号を発生する発振器が前記基板外に実装され、
当該第１の基準信号が外部供給されることを特徴とする請求項７に記載のモータ駆動装置。
【請求項１０】
モータの速度制御をするための第１の基準信号、当該モータの目標速度を設定するための目標速度値及び、当該モータに命令を発行するための第２の基準信号に基づいて前記モータを駆動する請求項６乃至９に記載のいずれかのモータ駆動装置が複数備えられることを特徴とするモータ駆動システム。
【請求項１１】
制御対象をフィードバック制御するための第１の基準信号を発生する発振器と、
前記制御対象に命令を発行するための第２の基準信号に同期した制御目標信号を入力すると共に前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記制御目標信号から当該制御対象の制御目標値を算出する第１の信号入力部と、
前記制御対象から制御結果信号を入力し、かつ、前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記制御結果信号から当該制御対象の制御結果値を算出する第２の信号入力部と、
前記第１の信号入力部から算出された前記制御目標値と、前記第２の信号入力部から算出された前記制御結果値とを入力し、当該制御目標値と制御結果値との差分を演算して駆動指令値を作成する制御部と、
前記制御部によって作成された前記駆動指令値及び前記発振器によって発生された前記第１の基準信号から駆動指令信号を生成して当該制御対象に出力する信号出力部とを備えることを特徴とするマイクロコンピュータ。
【請求項１２】
制御対象に制御目標を設定するための制御目標値を受信する受信部と、
制御対象をフィードバック制御するための第１の基準信号を発生する発振器と、
前記制御対象に命令を発行するための第２の基準信号を入力すると共に、前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記第２の基準信号から当該第１の基準信号を補正するための補正値を算出する第１の信号入力部と、
前記制御対象から制御結果信号を入力すると共に、前記発振器から第１の基準信号を入力し、前記第１の基準信号に基づいて前記制御結果信号から当該制御対象の制御結果値を算出する第２の信号入力部と、
前記第２の信号入力部から算出された前記制御結果値を前記第１の信号入力部から算出された補正値に基づいて補正し、補正後の制御結果値と、前記受信部によって受信された前記制御目標値との差分を演算して駆動指令値を作成する制御部と、
前記制御部によって作成された前記駆動指令値及び、前記発振器によって発生された前記第１の基準信号から駆動指令信号を生成して当該制御対象に出力する信号出力部とを備えることを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、感光体ドラムや、現像器等を駆動制御するモータコントローラを備えたカラー複写機や、複合機、プリンター等に適用可能なモータ駆動装置、モータ駆動システム及びマイクロコンピュータに関するものである。
【背景技術】
【０００２】
従来から、カラー複写機や、複合機、プリンター等にはモータ駆動の感光体ドラムや、現像器等の画像形成手段を備えたものが使用される場合が多い。例えば、赤色（Ｒ）、緑色（Ｇ）及び青色（Ｂ）系の原稿画像データに基づいて色画像を形成するディジタルのカラー複写機の場合、カラー原稿画像がスキャナ等により読み込まれ、その原稿画像に係る原稿画像データが一旦、画像メモリに蓄えられる。その後、画像メモリから読み出された原稿画像データが画像処理され、画像処理後の原稿画像データはカラープリンタに転送される。
【０００３】
カラープリンタの中でも、電子写真方式を採用した画像形成装置によれば、ＲＧＢ系の原稿画像データを色変換した後のイエロー（Ｙ）色、マゼンタ（Ｍ）色、シアン（Ｃ）色及び黒（ＢＫ）色用の画像データに基づいてカラーのトナー像を形成する画像形成部が備えられる。画像形成部は、Ｙ，Ｍ，Ｃ，ＢＫ色の像形成出力機能を各々分担する画像形成ユニットを備え、各作像色毎に帯電器によって一様に帯電された感光体ドラムに、原稿画像データに基づいて静電潜像が、ポリゴンミラー等を使用した走査露光部により形成される。
【０００４】
この静電潜像は各作像色毎に現像器によって現像される。このような帯電、露光、現像を行い、感光体ドラム上に形成されたカラートナー像が、例えば、中間転写ベルト上で重ね合わされ、ここに重ね合わされたカラートナー像が転写部によって用紙に転写される。この用紙に転写されたトナー像は、定着装置により定着される。この結果、原稿画像データに基づくカラー画像を所定の用紙に形成することができ、原稿画像を複写することができる。
【０００５】
上述の感光体ドラムや、現像器等にはモータやソレノイドが備えられ、当該モータやソレノイド等がマイクロコンピュータにより駆動制御される場合が多い。例えば、モータ制御用の演算装置には、中央演算装置（Central Processing Unit：以下ＣＰＵという）やディジタル信号処理装置（Digital Signal Processor：以下ＤＳＰという）等が用いられている。ＣＰＵや、ＤＳＰ等の演算装置には、モータ回転要求精度により高精度な基準クロックを発生するオシレータが内蔵される場合が多い。
【０００６】
図１３は従来例に係るマイクロコンピュータ３００の構成例を示すブロック図である。図１３に示すマイクロコンピュータ３００はモータ駆動装置や、ソレノイド駆動装置等を構成するものであり、例えば、制御対象となるモータの目標速度値等の制御目標値DATA及び、モータ速度クロック等の制御結果信号Ｓ３を入力して、モータ駆動指令クロック等の駆動指令信号Ｓ４を出力するものである。
【０００７】
マイクロコンピュータ３００は、オシレータ１、インプットキャプチャ３、アウトプットコンペア４、受信器６（UART SPI USB）及び演算器１５を有して構成される。オシレータ１は所定の発振周波数の基準クロックＳ１を発生する。オシレータ１には高精度な基準クロックを発生する発振器や、特許文献１に見られるようなＣＲ発振器が使用される。一般に、ＣＲ発振器は温度や、湿度、固体誤差等により、源クロック信号の時間的なズレや揺らぎ等のジッタを原因として発振周波数が変動することが知られている。また、マイクロコンピュータ３００内にオシレータ１を実装せずに、基準クロックＳ１が外部供給される場合もある。
【０００８】
オシレータ１にはインプットキャプチャ３、アウトプットコンペア４及び演算器１５が接続される。インプットキャプチャ３は、モータやソレノイド等の制御対象から制御結果信号Ｓ３を入力すると共に、オシレータ１から基準クロックＳ１を入力し、基準クロックＳ１に基づいて制御結果信号Ｓ３から当該制御対象のモータ速度検出値等の制御結果値Ｄ３を算出する。
【０００９】
一方、受信器６は、図示しない上位の制御装置からモータ目標速度値等の制御目標値DATAを受信して当該制御目標値DATAをデコードし、デコード後の制御目標値Ｄ１を演算器１５に出力する。上述のインプットキャプチャ３及び受信器６には、演算器１５が接続される。演算器１５はオシレータ１から基準クロックＳ１を入力し、インプットキャプチャ３から算出された制御結果値Ｄ３と、受信器６によってデコードされた制御目標値Ｄ１との差分を演算して駆動指令値Ｄｍを作成する。
【００１０】
演算器１５にはアウトプットコンペア４が接続される。アウトプットコンペア４はＰＩ制御等に代表されるフィードバック制御を実施して、演算器１５によって作成された駆動指令値Ｄｍ、及び、オシレータ１によって発生された基準クロックＳ１から駆動指令信号Ｓ４を生成して当該制御対象に出力する。制御対象は駆動指令信号Ｓ４に基づいて回転動作や、往復動作等をするようになる。
【００１１】
図１４は従来例に係るモータ駆動装置３０１の構成例を示すブロック図である。図１４に示すモータ駆動装置３０１はマイクロコンピュータ３００を応用したものであり、オシレータ１、カウント部３１、指令クロック生成部４１、受信器６及び制御部５３を有して構成される。受信器６は受信部６１及びカウント演算部６２を有している。
【００１２】
オシレータ１は、制御対象となるモータ２０を速度制御するための所定の発振周波数の基準クロックＳ１を発生する。オシレータ１は、カウント部３１、指令クロック生成部４１及び制御部５３に接続される。
【００１３】
受信部６１は上位の制御装置等に接続され、当該制御装置からモータ２０を速度制御するための目標速度値DATA（Ｖ）を受信する。受信部６１にはカウント演算部６２が接続され、目標速度値DATA（Ｖ）が受信部６１からカウント演算部６２へ出力される。カウント演算部６２は、目標速度値DATA（Ｖ）をデコード（演算）等して目標速度カウント値Ｃ２を出力する。
【００１４】
カウント部３１は、モータ２０から速度制御結果となるモータ速度クロックＳ３１を入力すると共に、オシレータ１から基準クロックＳ１を入力し、基準クロックＳ１に基づいてモータ速度クロックＳ３１の周期をカウントし、当該モータ２０の速度検出カウント値Ｃ１を算出する。このモータ速度クロックＳ３１の周期をカウントすることは、モータ２０の回転速度の絶対値を測定することを意味している。
【００１５】
カウント部３１及びカウント演算部６２には制御部５３が接続される。制御部５３は、カウント演算部６２から出力される目標速度カウント値Ｃ２と、カウント部３１によって算出された速度検出カウント値Ｃ１との差分を演算してモータ駆動指令値Ｃｍを作成する。
【００１６】
制御部５３には指令クロック生成部４１が接続される。指令クロック生成部４１は、制御部５３によって作成されたモータ駆動指令値Ｃｍ及び、オシレータ１によって発生された基準クロックＳ１からモータ駆動指令クロックＳ４１を生成して当該モータ２０に出力する。例えば、指令クロック生成部４１は制御部５３から出力されるモータ駆動指令値Ｃｍのクロック周期を基準クロックＳ１を用いてカウントすることによりモータ駆動指令クロックＳ４１を生成する。これにより、モータ駆動指令クロックＳ４１をモータ２０に出力できるようになる。
【００１７】
ここでモータ速度クロックＳ３１の分解能をη［カウント／回転］とすると、モータ２０の回転速度［ｒｐｍ］の絶対値は、計算式＝（基準クロックＳ１の発振周波数／モータ速度クロックＳ３１の周期のカウント値／η）×６０で計算される。また、モータ２０の目標速度値DATA（Ｖ）は計算式＝基準クロックの発振周波数／速度検出カウント値Ｃ１）で計算される。目標速度到達時には、モータ駆動指令クロックＳ４１の周波数［ＫＨｚ］は、計算式＝（基準クロックＳ１の発振周波数／目標速度カウント値Ｃ２）で計算される。
【００１８】
図１５はモータ駆動装置３０１の動作例を示すフローチャートである。図１５に示すステップＳＴ51で受信部６１は、図示しない上位の制御装置からモータ２０の目標速度値DATA（Ｖ）を受信する。目標速度値DATA（Ｖ）はカウント演算部６２に出力され、カウント演算部６２で目標速度カウント値Ｃ２がデコードされる。目標速度カウント値Ｃ２は制御部５３に出力される。
【００１９】
次に、ステップＳＴ52で制御部５３は計算式＝基準クロックの発振周波数／目標速度カウント値Ｃ２を計算してモータ２０の目標速度値Ｒefを求める。例えば、モータ２０の目標速度値Ｒefは、計算式＝基準クロックの発振周波数／目標速度値DATA（Ｖ）により計算され、目標速度値Ｒefは２０ＭＨｚ／２ＫＨｚ＝１００００である。そして、ステップＳＴ53で指令クロック生成部４１は、モータ２０の駆動を始動するためのモータ駆動指令クロックＳ４１を出力して当該モータ２０の駆動を開始する。
【００２０】
その後、ステップＳＴ54で制御部５３は、モータ速度クロックＳ３１が制御開始速度に到達したか否かを判別する。モータ速度クロックＳ３１が制御開始速度に到達した場合は、ステップＳＴ55でカウント部３１はモータ速度クロックＳ３１をキャプチャする。カウント部３１は、モータ２０から速度制御結果となるモータ速度クロックＳ３１を入力して、当該モータ速度クロックＳ３１のクロック周期を基準クロックＳ１に基づいてカウントする。このカウントから得られるモータ２０の速度検出カウント値Ｃ１を発生する。速度検出カウント値Ｃ１は、カウント部３１から制御部５３へ出力される。
【００２１】
そして、ステップＳＴ56で制御部５３は速度検出カウント値Ｃ１からモータ２０の速度検出値Ｖ１を算出する。速度検出値Ｖ１は、計算式＝（基準クロックＳ１の発振周波数［ＭＨｚ］／モータ２０の速度検出カウント値Ｃ１）から求められる。
【００２２】
その後、ステップＳＴ57で制御部５３は目標速度値Ｒef（制御目標値）と速度検出値Ｖ１（制御結果値）との差分である速度エラー量をＤevi３としたとき、Ｄevi３＝Ｒef−Ｖ１を演算する。この演算はモータ駆動指令値Ｃｍを作成するためである。
【００２３】
そして、ステップＳＴ58で制御部５３は、速度エラー量Ｄevi３を指令クロック生成部４１に出力してフィードバック制御を実行する。このとき、制御部５３は、速度エラー量Ｄevi３を目標速度カウント値Ｃ２にフィードバックして、速度エラー量Ｄevi３がゼロとなるモータ駆動指令値Ｃｍを算出する。
【００２４】
その後、ステップＳＴ59で指令クロック生成部４１は制御部５３からモータ駆動指令値Ｃｍを入力し、当該モータ駆動指令値Ｃｍをモータ駆動指令クロックＳ４１に変換する。このとき、指令クロック生成部４１は、基準クロックＳ１を用いてモータ駆動指令値Ｃｍをカウントする。これにより、モータ駆動指令クロックＳ４１を生成することができる。
【００２５】
そして、ステップＳＴ60で指令クロック生成部４１はモータ駆動指令クロックＳ４１をモータ２０に出力する。モータ２０はモータ駆動指令クロックＳ４１に基づいて負荷１０を回転する。モータ２０に取り付けられた速度検出器３０は、モータ２０の回転速度を検出してモータ速度クロックＳ３１をカウント部３１に出力する。
【００２６】
その後、モータ駆動装置３０１は、ステップＳＴ61でフィードバック制御の終了を判別して制御を分岐する。このとき、モータ駆動装置３０１は、上位の制御装置から制御終了コマンド等の通知を受信する。制御終了コマンド等の通知を受信していない場合は、ステップＳＴ55に戻ってモータ速度クロックＳ３１をキャプチャしてフィードバック制御を継続する。なお、モータ駆動装置３０１が制御終了コマンドを受信した場合は、フィードバック制御を終了する。
【先行技術文献】
【特許文献】
【００２７】
【特許文献１】特開２００１−１１１３８９号公報（第３頁  図１）
【発明の概要】
【発明が解決しようとする課題】
【００２８】
ところで、特許文献１に見られるようなマイクロコンピュータ３００のＣＲ発振器を内蔵したモータ駆動装置３０１によれば、高精度な基準クロックを発生するオシレータ１に比べて、モータ回転速度の絶対値が厳しい、画像形成装置の感光体ドラムや、現像器等のモータ制御系において、基準クロックＳ１の発振精度がそのままモータ回転速度の絶対値に反映されてしまうという問題がある。
【００２９】
ＣＲ発振器を内蔵したマイクロコンピュータ３００によれば、基準クロックＳ１の周期を一定としてモータ速度検出値が演算されるので、オシレータ１に、誤差が混入した場合に、モータ２０の回転速度［ｒｐｍ］の絶対値に誤差が出現することとなる。例えば、目標速度到達時のモータ駆動指令クロックＳ４１の周波数［ＫＨｚ］は、計算式＝（基準クロックＳ１の発振周波数／目標速度カウント値Ｃ２）により計算され、そのモータ駆動指令クロックＳ４１の周波数［ＫＨｚ］は２０ＭＨｚ±２０％／１００００＝２ＫＨｚ±２０％＝１．６ＫＨｚ〜２．４ＫＨｚとなる。このようにモータ速度クロックＳ３１に２０％のバラツキがそのまま生じてしまう。
【００３０】
そこで、この発明は上述した課題を解決したものであって、制御対象の制御目標値と、その制御結果値との差分の演算結果から、基準信号自身の誤差成分を相殺除去できるようにすると共に、精度の低い発振器を使用した場合であっても、高精度な駆動指令値を制御対象に出力できるようにしたモータ駆動装置、モータ駆動システム及びマイクロコンピュータを提供することを目的とする。
【課題を解決するための手段】
【００３１】
上記課題を解決するために、請求項１に係るモータ駆動装置は、モータを速度制御するための第１の基準信号を発生する発振器と、前記モータに命令を発行するための第２の基準信号に同期したモータ目標速度信号を入力すると共に前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記モータ目標速度信号から当該モータの目標速度値を算出する第１の信号入力部と、前記モータから速度制御結果となるモータ速度信号を入力すると共に前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記モータ速度信号から当該モータの速度検出値を算出する第２の信号入力部と、前記第１の信号入力部によって算出された前記モータの目標速度値と、前記第２の信号入力部によって算出された前記モータの速度検出値との差分を演算してモータ駆動指令値を作成する制御部と、前記制御部によって作成された前記モータ駆動指令値及び、前記発振器によって発生された前記第１の基準信号からモータ駆動指令信号を生成して当該モータに出力する信号出力部とを備えることを特徴とするモータ駆動装置。
【００３２】
請求項１に係るモータ駆動装置によれば、発振器はモータを速度制御するための第１の基準信号を発生する。第１の信号入力部は、モータに命令を発行するための第２の基準信号に同期したモータ目標速度信号を入力すると共に、発振器から第１の基準信号を入力し、当該第１の基準信号に基づいてモータ目標速度信号から当該モータの目標速度値を算出する。第２の信号入力部は、モータから速度制御結果となるモータ速度信号を入力すると共に、発振器から第１の基準信号を入力し、当該第１の基準信号に基づいてモータ速度信号から当該モータの速度検出値を算出する。
【００３３】
制御部は、第１の信号入力部によって算出されたモータの目標速度値と、第２の信号入力部によって算出されたモータの速度検出値との差分を演算してモータ駆動指令値を作成する。これを前提にして、信号出力部が制御部によって作成されたモータ駆動指令値及び、発振器によって発生された第１の基準信号からモータ駆動指令信号を生成して当該モータに出力するようになる。
【００３４】
従って、モータの目標速度値と、その速度検出値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるので、精度の低い発振器を使用した場合（マイクロコンピュータ）であっても、第２の基準信号に同期したモータ駆動指令信号をモータに出力することができ、モータ速度制御を高精度に実行できるようになる。
【００３５】
請求項２に係るモータ駆動装置は、請求項１において、前記第１の信号入力部は入力用の第１のカウンタを有し、前記第１のカウンタは、前記第２の基準信号に同期したモータ目標速度信号を入力し、当該モータ目標速度信号のクロック周期を前記第１の基準信号に基づいてカウントすることにより前記モータの目標速度値を出力し、前記第２の信号入力部は入力用の第２のカウンタを有し、前記第２のカウンタは、前記モータ速度信号を入力し、当該モータ速度信号のクロック周期を前記第１の基準信号に基づいてカウントすることによりモータの速度検出値を出力し、前記制御部は、前記第１のカウンタから出力されるモータの目標速度値と、前記第２のカウンタから出力されるモータの速度検出値との差分を演算してモータ駆動指令値のクロック周期を決定し、前記信号出力部は出力用のカウンタを有し、前記出力用のカウンタは、前記制御部によって決定された前記クロック周期のモータ駆動指令値を前記第１の基準信号を用いてカウントすることにより前記モータ駆動指令信号を当該モータに出力することを特徴とするものである。
【００３６】
請求項３に係るモータ駆動装置は、請求項２において、前記第１及び第２の信号入力部、制御部、信号出力部を実装する基板を備え、前記第１の基準信号を発生する発振器が同一の前記基板内に実装され、当該第１の基準信号が内部供給されることを特徴とするものである。
【００３７】
請求項４に係るモータ駆動装置は、請求項２において、前記第１及び第２の信号入力部、制御部、信号出力部を実装する基板を備え、前記第１の基準信号を発生する発振器が前記基板外に実装され、当該第１の基準信号が外部供給されることを特徴とするものである。
【００３８】
請求項５に係るモータ駆動システムは、モータを速度制御するための第１の基準信号及び、当該モータに命令を発行するための第２の基準信号に同期したモータ目標速度信号に基づいて前記モータを駆動する請求項１乃至４に記載のいずれかのモータ駆動装置が複数備えられることを特徴とするものである。
【００３９】
請求項５に係るモータ駆動システムによれば、複数のモータを駆動する場合に、他の機能を追加することなく、第２の基準信号に同期したモータ目標速度信号に基づいて複数のモータ駆動装置により個々のモータを制御することができる。
【００４０】
請求項６に係るモータ駆動装置は、モータを速度制御するためのモータの目標速度値を受信する受信部と、第１の基準信号を発生する発振器と、前記モータに命令を発行するための第２の基準信号を入力すると共に、前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記第２の基準信号から当該第１の基準信号を補正するための補正値を算出する第１の信号入力部と、前記モータから速度制御結果となるモータ速度信号を入力すると共に、前記発振器から第１の基準信号を入力し、前記第１の基準信号に基づいて前記モータ速度信号から当該モータの速度検出値を算出する第２の信号入力部と、前記第２の信号入力部から算出された前記モータの速度検出値を前記第１の信号入力部から算出された補正値に基づいて補正し、補正後の速度検出値と、前記受信部によって受信された前記モータの目標速度値との差分を演算してモータ駆動指令値を作成する制御部と、前記制御部によって作成された前記モータ駆動指令値及び、前記発振器によって発生された前記第１の基準信号からモータ駆動指令信号を生成して当該モータに出力する信号出力部とを備えることを特徴とするものである。
【００４１】
請求項６に係るモータ駆動装置によれば、受信部は、モータを速度制御するためのモータの目標速度値を受信する。発振器は、第１の基準信号を発生する。第１の信号入力部は、モータに命令を発行するための第２の基準信号を入力すると共に、発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて第２の基準信号から当該第１の基準信号を補正するための補正値を算出する。
【００４２】
第２の信号入力部は、モータから速度制御結果となるモータ速度信号を入力すると共に、発振器から第１の基準信号を入力し、第１の基準信号に基づいてモータ速度信号から当該モータの速度検出値を算出する。制御部は、第２の信号入力部で算出されたモータの速度検出値を第１の信号入力部から算出された補正値に基づいて補正し、補正後の速度検出値と、受信部によって受信されたモータの目標速度値との差分を演算してモータ駆動指令値を作成する。これを前提にして、信号出力部が制御部によって作成されたモータ駆動指令値及び、発振器によって発生された第１の基準信号からモータ駆動指令信号を生成して当該モータに出力するようになる。従って、モータの目標速度値と、補正後のモータの速度検出値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるようになる。
【００４３】
請求項７に係るモータ駆動装置は、請求項５において、前記第１の信号入力部は入力用の第１のカウンタを有し、前記第１のカウンタは、前記第２の基準信号を入力し、当該第２の基準信号のクロック周期を前記第１の基準信号に基づいてカウントすることにより当該第１の基準信号を補正するための補正値を出力し、前記第２の信号入力部は入力用の第２のカウンタを有し、前記第２のカウンタは、前記モータ速度信号を入力し、当該モータ速度信号のクロック周期を前記第１の基準信号に基づいてカウントすることにより前記モータの速度検出値を出力し、前記制御部は、前記第２のカウンタから出力された前記速度検出値を、前記第１のカウンタから出力された前記補正値に基づいて補正した後の速度検出値と、前記受信部からモータ速度目標値との差分を演算してモータ駆動指令信号のクロック周期を決定し、前記信号出力部は出力用のカウンタを有し、前記出力用のカウンタは、前記制御部によって決定された前記クロック周期を前記第１の基準信号を用いてカウントすることにより前記モータ駆動指令信号を出力することを特徴とするものである。
【００４４】
請求項８に係るモータ駆動装置は、請求項７において、前記第１及び第２の信号入力部、制御部、信号出力部を実装する基板を備え、前記第１の基準信号を発生する発振器が同一の前記基板内に実装され、当該第１の基準信号が内部供給されることを特徴とするものである。
【００４５】
請求項９に係るモータ駆動装置は、請求項７において、前記第１及び第２の信号入力部、制御部、信号出力部を実装する基板を備え、前記第１の基準信号を発生する発振器が前記基板外に実装され、当該第１の基準信号が外部供給されることを特徴とするものである。
【００４６】
請求項１０に係るモータ駆動システムは、モータの速度制御をするための第１の基準信号、前記モータの目標速度を設定するためのモータの目標速度値、当該モータに命令を発行するための第２の基準信号に基づいて前記モータを駆動する請求項６乃至９に記載のいずれかのモータ駆動装置が複数備えられることを特徴とするものである。
【００４７】
請求項１０に係るモータ駆動システムによれば、複数のモータを駆動する場合に、他の機能を追加することなく、モータの個々の目標速度値及び同一の第２の基準信号に基づいて複数のモータ駆動装置により個々のモータを制御することができる。
【００４８】
請求項１１に係るマイクロコンピュータは、制御対象をフィードバック制御するための第１の基準信号を発生する発振器と、前記制御対象に命令を発行するための第２の基準信号に同期した制御目標信号を入力すると共に前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記制御目標信号から当該制御対象の制御目標値を算出する第１の信号入力部と、前記制御対象から制御結果信号を入力し、かつ、前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記制御結果信号から当該制御対象の制御結果値を算出する第２の信号入力部と、前記第１の信号入力部から算出された前記制御目標値と、前記第２の信号入力部から算出された前記制御結果値とを入力し、当該制御目標値と制御結果値との差分を演算して駆動指令値を作成する制御部と、前記制御部によって作成された前記駆動指令値及び前記発振器によって発生された前記第１の基準信号から駆動指令信号を生成して当該制御対象に出力する信号出力部とを備えることを特徴とするものである。
【００４９】
請求項１１に係るマイクロコンピュータによれば、発振器は制御対象をフィードバック制御するための第１の基準信号を発生する。第１の信号入力部は、制御対象に命令を発行するための第２の基準信号に同期した制御目標信号を入力すると共に発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて制御目標信号から当該制御対象の制御目標値を算出する。第２の信号入力部は、制御対象から制御結果信号を入力し、かつ、発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて制御結果信号から当該制御対象の制御結果値を算出する。
【００５０】
制御部は、第１の信号入力部から算出された制御目標値と、第２の信号入力部から算出された制御結果値とを入力し、当該制御目標値と制御結果値との差分を演算して駆動指令値を作成する。これを前提にして、信号出力部が制御部によって作成された駆動指令値及び発振器によって発生された第１の基準信号から駆動指令信号を生成して当該制御対象に出力するようになる。従って、制御対象の制御目標値と制御結果値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるので、精度の低い発振器を使用したマイクロコンピュータであっても、第２の基準信号に同期した駆動指令信号を制御対象に出力することができ、制御対象のタイミング制御を高精度に実行できるようになる。
【００５１】
請求項１２に係るマイクロコンピュータは、制御対象に制御目標を設定するための制御目標値を受信する受信部と、制御対象をフィードバック制御するための第１の基準信号を発生する発振器と、前記制御対象に命令を発行するための第２の基準信号を入力すると共に、前記発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて前記第２の基準信号から当該第１の基準信号を補正するための補正値を算出する第１の信号入力部と、前記制御対象から制御結果信号を入力すると共に、前記発振器から第１の基準信号を入力し、前記第１の基準信号に基づいて前記制御結果信号から当該制御対象の制御結果値を算出する第２の信号入力部と、前記第２の信号入力部から算出された前記制御結果値を前記第１の信号入力部から算出された補正値に基づいて補正し、補正後の制御結果値と、前記受信部によって受信された前記制御目標値との差分を演算して駆動指令値を作成する制御部と、前記制御部によって作成された前記駆動指令値及び、前記発振器によって発生された前記第１の基準信号から駆動指令信号を生成して当該制御対象に出力する信号出力部とを備えることを特徴とするものである。
【００５２】
請求項１２に係るマイクロコンピュータによれば、受信部は、制御対象に制御目標を設定するための制御目標値を受信する。発振器は、制御対象をフィードバック制御するための第１の基準信号を発生する。第１の信号入力部は、制御対象に命令を発行するための第２の基準信号を入力すると共に、発振器から第１の基準信号を入力し、当該第１の基準信号に基づいて第２の基準信号から当該第１の基準信号を補正するための補正値を算出する。
【００５３】
第２の信号入力部は、制御対象から制御結果信号を入力すると共に、発振器から第１の基準信号を入力し、第１の基準信号に基づいて制御結果信号から当該制御対象の制御結果値を算出する。制御部は、第２の信号入力部で算出された制御結果値を第１の信号入力部から算出された補正値に基づいて補正し、補正後の制御結果値と、受信部によって受信された制御目標値との差分を演算して駆動指令値を作成する。これを前提にして、信号出力部が制御部によって作成された駆動指令値及び、発振器によって発生された第１の基準信号から駆動指令信号を生成して当該制御対象に出力するようになる。従って、制御対象の制御目標値と、補正後の制御結果値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるようになる。
【発明の効果】
【００５４】
請求項１に係るモータ駆動装置によれば、モータの目標速度値と、その速度検出値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるので、精度の低い発振器を使用した場合（マイクロコンピュータ）であっても、第２の基準信号に同期したモータ駆動指令信号をモータに出力することができ、モータ速度制御を高精度に実行できるようになる。
【００５５】
請求項２及び請求項７に係るモータ駆動装置によれば、第１の基準信号を補正する別段の機能を準備することなく、第２の基準信号に同期したモータ駆動指令信号をモータに出力することができ、コストをかけずに精度の良いモータ制御を実行することが可能となる。
【００５６】
請求項５に係るモータ駆動システムによれば、複数のモータを駆動する場合に、他の機能を追加することなく、第２の基準信号に同期したモータ目標速度信号に基づいて複数のモータ駆動装置により個々のモータを制御することができる。しかも、個々のモータ駆動装置において、モータの目標速度値と、その速度検出値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるので、当該モータ駆動装置に精度の低い発振器を使用した場合であっても、第２の基準信号に同期したモータ駆動指令信号を個々のモータに出力することができ、複数のモータ速度制御を高精度に実行できるようになる。
【００５７】
請求項６に係るモータ駆動装置によれば、モータの目標速度値と、補正後の速度検出値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるようになる。
【００５８】
請求項３及び請求項８に係るモータ駆動装置によれば、内部供給される第１の基準信号に基づいて第２の基準信号に同期したモータ駆動指令信号をモータに出力することができ、第１の基準信号を補正する機能を別段準備する必要がなく、コストをかけずに精度の良いモータ制御を実行することが可能となる。
【００５９】
請求項４及び請求項９に係るモータ駆動装置によれば、外部供給される第１の基準信号に基づいて第２の基準信号に同期したモータ駆動指令信号をモータに出力することができる。
【００６０】
請求項１０に係るモータ駆動システムによれば、複数のモータを駆動する場合に、他の機能を追加することなく、モータの目標速度値及び同一の第２の基準信号に基づいて複数のモータ駆動装置により個々のモータを制御することができる。しかも、個々のモータ駆動装置において、モータの目標速度値と、補正後の速度検出値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるので、当該モータ駆動装置に精度の低い発振器を使用した場合であっても、第２の基準信号に同期したモータ駆動指令信号を個々のモータに出力することができ、複数のモータ速度制御を高精度に実行できるようになる。
【００６１】
請求項１１に係るマイクロコンピュータによれば、制御対象の制御目標値と、制御結果値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるので、精度の低い発振器を使用した場合であっても、第２の基準信号に同期した駆動指令信号を制御対象に出力することができ、制御対象のフィードバック制御を高精度に実行できるようになる。
【００６２】
請求項１２に係るマイクロコンピュータによれば、制御目標値と、補正後の制御結果値との差分の演算結果から第１の基準信号自身の誤差成分を相殺除去できるようになる。従って、上述したような効果が得られる。
【図面の簡単な説明】
【００６３】
【図１】本発明に係る第１の実施例としてのマイクロコンピュータ１００の構成例を示すブロック図である。
【図２】オシレータ１の発振周波数対温度の関係を示すグラフ図である。
【図３】マイクロコンピュータ１００の動作例を示すフローチャートである。
【図４】第２の実施例としてのモータ駆動装置１０１の構成例を示すブロック図である。
【図５】モータ駆動装置１０１の動作例を示すフローチャートである。
【図６】第３の実施例としてのモータ駆動システム１１０の構成例を示すブロック図である。
【図７】第４の実施例としてのマイクロコンピュータ２００の構成例を示すブロック図である。
【図８】マイクロコンピュータ２００の動作例を示すフローチャートである。
【図９】第５の実施例としてのモータ駆動装置２０１の構成例を示すブロック図である。
【図１０】モータ駆動装置２０１の動作例（その１）を示すフローチャートである。
【図１１】モータ駆動装置２０１の動作例（その２）を示すフローチャートである。
【図１２】第６の実施例としてのモータ駆動システム２２０の構成例を示すブロック図である。
【図１３】従来例に係るマイクロコンピュータ３００の構成例を示すブロック図である。
【図１４】従来例に係るモータ駆動装置３０１の構成例を示すブロック図である。
【図１５】モータ駆動装置３０１の動作例を示すフローチャートである。
【発明を実施するための形態】
【００６４】
以下、図面を参照しながら、この発明の実施の形態に係るマイクロコンピュータ、モータ駆動装置及びモータ駆動システムについて説明をする。
【実施例１】
【００６５】
＜第１のマイクロコンピュータ＞
図１に示す第１のマイクロコンピュータ１００は、モータやソレノイド、圧電素子等の制御対象をフィードバック制御するものであり、オシレータ１、インプットキャプチャ３，１１、アウトプットコンペア４及び演算器１５を有して構成される。
【００６６】
オシレータ１は発振器の一例を構成し、制御対象をフィードバック制御するための第１の基準信号（ＣＬＫ１：以下で基準クロックＳ１という）を発生する。オシレータ１には、例えば、ＬＣ発振器や、ＣＲ発振器等が使用される。この例で、オシレータ１にはインプットキャプチャ３、アウトプットコンペア４、インプットキャプチャ１１及び演算器１５が接続される。
【００６７】
インプットキャプチャ１１は第１の信号入力部の一例を構成し、制御対象に命令を発行するための第２の基準信号（ＣＬＫ２：以下でシステムクロックＳ２という）に同期した制御目標信号Ｓ１１を入力すると共に、オシレータ１から基準クロックＳ１を入力し、当該基準クロックＳ１に基づいて制御目標信号Ｓ１１から当該制御対象の制御目標値Ｄ11を算出する。制御目標信号Ｓ１１は規則性を有したパルス信号である。インプットキャプチャ１１は、パルス信号の幅や、パルス間隔等を計測する機能を有している。
【００６８】
システムクロックＳ２は、例えば、図示しない上位の制御装置から供給される。システムクロックＳ２は、例えば、上位の制御装置で水晶発振器や、位相固定ループ（ＰＬＬ）回路等を使用して発振される高精度な信号である。制御目標信号Ｓ１１は、例えば、システムクロックＳ２を分周し、又は、逓倍したキャリヤ信号で制御目標値Ｄ11をパルス幅（ＰＷＭ）変調して生成される。
【００６９】
インプットキャプチャ３は第２の信号入力部の一例を構成し、制御対象から制御結果信号Ｓ３を入力し、かつ、オシレータ１から基準クロックＳ１を入力し、当該基準クロックＳ１に基づいて制御結果信号Ｓ３から当該制御対象の制御結果値Ｄ３を算出する。制御結果信号Ｓ３は、例えば、ロータリーエンコーダや、タコジェネレータ等の速度検出器から出力されるパルス信号である。
【００７０】
インプットキャプチャ３，１１には、制御部の一例を構成する演算器１５が接続され、オシレータ１から基準クロックＳ１を入力すると共に、インプットキャプチャ１１から算出された制御目標値Ｄ11と、インプットキャプチャ３から算出された制御結果値Ｄ３とを入力し、当該制御目標値Ｄ11と制御結果値Ｄ３との差分を演算して駆動指令値Ｄｍを作成する。
【００７１】
演算器１５には信号出力部の一例を構成するアウトプットコンペア４が接続され、当該演算器１５によって作成された駆動指令値Ｄｍ及びオシレータ１によって発生された基準クロックＳ１から駆動指令信号Ｓ４を生成して当該制御対象に出力する。駆動指令信号Ｓ４は規則性を有したパルス幅（ＰＷＭ）信号である。ＰＷＭ信号は、例えば、システムクロックＳ２のデューティー比を変更した矩形波信号である。アウトプットコンペア４には、タイマ機能を有したカウンタが設けられ、予め設定された時刻に割り込みを発生して、駆動指令信号Ｓ４を制御対象に出力する。制御対象は駆動指令信号Ｓ４に基づいて回転動作や、往復動作等をするようになる。
【００７２】
ここで、図２を参照して、オシレータ１の発振周波数対温度の関係を説明する。図２において、縦軸は、オシレータ１の源クロック信号の源発振周波数［ＭＨｚ］である。横軸は機内の温度［℃］である。実線に示す曲線は、源クロック信号の発振周波数対温度の関係を示す特性グラフである。この特性グラフによれば、温度７５℃で発振周波数が８．０３２［ＭＨｚ］のピークとなっており。それを越えると発振周波数が８．０３２［ＭＨｚ］から徐々に下がってくる。また、温度７５℃以下でも、発振周波数が８．０３２［ＭＨｚ］から徐々に下がってくる。
【００７３】
この例では、温度＝２５℃で８．０［ＭＨｚ］を基準にして源クロック信号を２．５倍に逓倍した発振周波数２０［ＭＨｚ］の基準クロックＳ１を得ている。このように周波数変動、例えば、使用温度範囲が１０℃〜１３０℃で温度２５℃の発振周波数８．００［ＭＨｚ］を基準にして、温度７５℃で発振周波数＝８．０３２［ＭＨｚ］（＋４％）、温度１３０℃で発振周波数［ＭＨｚ］＝７．９６８（−４％）を伴った基準クロックＳ１を使用する。発振周波数２０［ＭＨｚ］での変動分は、±４％×２．５倍で±１０％である。このようなオシレータ１を使用した場合であっても、制御対象の制御目標値Ｄ11と、制御結果値Ｄ３との差分の演算結果から基準クロックＳ１自身の誤差成分を相殺除去できるようになる。
【００７４】
続いて、図３を参照して、マイクロコンピュータ１００の動作例について説明する。この例では、マイクロコンピュータ１００がモータや、ソレノイド、圧電素子等の制御対象をフィードバック制御する場合を前提とする。これを動作条件にして、マイクロコンピュータ１００では、図３に示すステップＡ１でオシレータ１が制御対象をフィードバック制御するための基準クロックＳ１を発生する。
【００７５】
一方、ステップＡ２で、インプットキャプチャ１１は、制御対象に命令を発行するためのシステムクロックＳ２に同期した制御目標信号Ｓ１１を入力する。そして、ステップＡ３でインプットキャプチャ１１は、オシレータ１で発生された基準クロックＳ１を入力して制御目標信号Ｓ１１から当該制御対象の制御目標値Ｄ11を算出する。
【００７６】
他方、ステップＡ４でインプットキャプチャ３は、制御対象から制御結果信号Ｓ３を入力する。そして、ステップＡ５でインプットキャプチャ３は、オシレータ１で発生された基準クロックＳ１を入力して制御結果信号Ｓ３から当該制御対象の制御結果値Ｄ３を算出する。
【００７７】
その後、ステップＡ６で、演算器１５は、先に算出された制御対象の制御目標値Ｄ11と当該制御対象の制御結果値Ｄ３との差分を演算して駆動指令値Ｄｍを作成する。そして、ステップＡ７で、アウトプットコンペア４は、先に作成された駆動指令値Ｄｍ及び、オシレータ１で発生された基準クロックＳ１から駆動指令信号Ｓ４を生成する。
【００７８】
その後、ステップＡ８でアウトプットコンペア４は、駆動指令信号Ｓ４を制御対象に出力する。なお、マイクロコンピュータ１００は、ステップＡ９でフィードバック制御の終了を判別して制御を分岐する。例えば、上位の制御装置から制御終了コマンド等の通知を受信する。制御終了コマンド等の通知を受信していない場合は、ステップＡ２，Ａ４に戻ってフィードバック制御を継続する。制御終了コマンドを受信した場合は、フィードバック制御を終了する。
【００７９】
このように、第１の実施例としてのマイクロコンピュータ１００によれば、モータや、ソレノイド、圧電素子等の制御対象をフィードバック制御するための駆動指令値Ｄｍを作成する演算器１５を備え、この演算器１５は、制御対象に命令を発行するためのシステムクロックＳ２に同期した制御目標信号Ｓ１１から基準クロックＳ１に基づいて算出される当該制御対象の制御目標値Ｄ11と、制御対象の制御結果信号Ｓ３から基準クロックＳ１に基づいて算出される制御結果値Ｄ３との差分を演算するようになる。
【００８０】
従って、制御対象の制御目標値Ｄ11と、制御結果値Ｄ３との差分の演算結果から基準クロックＳ１自身の誤差成分を相殺除去できるので、精度の低いオシレータ１を使用した場合であっても、システムクロックＳ２に同期した駆動指令信号Ｓ４を制御対象に出力することができ、制御対象のタイミング制御を高精度に実行できるようになる。以下でマイクロコンピュータ１００を応用したモータ駆動装置１０１について説明する。
【実施例２】
【００８１】
＜第１のモータ駆動装置＞
図４を参照して、第２の実施例としてのモータ駆動装置１０１の構成例について説明する。図４に示すモータ駆動装置１０１（モータコントローラ）は、マイクロコンピュータ１００の一例を構成するものであり、オシレータ１、カウント部２１，３１、指令クロック生成部４１及び制御部５１を有して、モータ２０を駆動するようになされる。モータ２０は直流（ＤＣ）モータ、交流（ＡＣ）モータ、ステッピングモータ等である。
【００８２】
この例ではオシレータ１は、制御対象となるモータ２０を速度制御するための所定の発振周波数の基準クロックＳ１を発生する。オシレータ１には、例えば、ＣＲ発振器が使用される。オシレータ１には、カウント部２１，３１、指令クロック生成部４１及び制御部５１が接続される。
【００８３】
カウント部２１は第１の信号入力部の一例を構成し、モータ２０に命令を発行するためのシステムクロックＳ２に同期したモータ目標速度信号（以下でモータ目標速度クロックＳ２１という）を入力すると共に、オシレータ１から基準クロックＳ１を入力し、当該基準クロックＳ１に基づいてモータ目標速度クロックＳ２１から当該モータ２０の目標速度値Ｒefを算出するための目標速度カウント値Ｃ２を算出する。目標速度カウント値Ｃ２は、モータ目標速度クロックＳ２１の周期をカウントすることで得られ、目標速度値Ｒefの絶対値が目標速度カウント値Ｃ２から得られる。モータ目標速度クロックＳ２１は、例えば、システムクロックＳ２を分周し、又は、逓倍したキャリヤ信号でモータの目標速度値Ｒefをパルス幅（ＰＷＭ）変調して生成される。
【００８４】
上述のカウント部２１は入力用の第１のカウンタの機能を有する。第１のカウンタ機能によれば、システムクロックＳ２に同期したモータ目標速度クロックＳ２１を入力し、当該モータ目標速度クロックＳ２１のクロック周期を基準クロックＳ１に基づいてカウントすることにより目標速度カウント値Ｃ２を出力する。
【００８５】
カウント部３１は第２の信号入力部の一例を構成し、モータ２０から速度制御結果となるモータ速度信号（以下でモータ速度クロックＳ３１という）を入力すると共にオシレータ１から基準クロックＳ１を入力し、当該基準クロックＳ１に基づいてモータ速度クロックＳ３１から当該モータ２０の速度検出値Ｖ１を算出するための速度検出カウント値Ｃ１を算出する。例えば、カウント部３１は入力用の第２のカウンタの機能を有する。第２のカウンタの機能によれば、モータ速度クロックＳ３１を入力し、当該モータ速度クロックＳ３１のクロック周期を基準クロックＳ１に基づいてカウントすることにより速度検出カウント値Ｃ１を出力する。モータ速度クロックＳ３１の分解能は、例えば、４５カウント／１回転に相当する。
【００８６】
カウント部２１，３１には制御部５１が接続され、オシレータ１から基準クロックＳ１を入力し、カウント部２１によって算出されたモータ２０の目標速度カウント値Ｃ２から目標速度値Ｒefを算出すると共に、カウント部３１によって算出された速度検出カウント値Ｃ１から速度検出値Ｖ１を算出する。制御部５１は、モータ２０の目標速度値Ｒefと速度検出値Ｖ１との差分を演算してモータ駆動指令値Ｃｍを作成する。
【００８７】
また、制御部５１は、カウント部２１から出力される目標速度カウント値Ｃ２と、カウント部３１から出力される速度検出カウント値Ｃ１との差分を演算してモータ駆動指令値Ｃｍのクロック周期を決定する。すなわち、モータ２０の目標速度と検出速度との差分（ｒｐｍ）を無くすためのモータ駆動指令値Ｃｍのクロック周期は、計算式＝［モータ目標速度クロックＳ２１のクロック周期のカウント数−モータ速度クロックＳ３１のクロック周期のカウント数］で計算される。この計算により、基準クロックＳ１の精度に依存する（左右される）ことなく、モータ２０を目標速度に合わせ込むことが可能となる。
【００８８】
制御部５１には信号出力部の一例を構成する指令クロック生成部４１が接続され、制御部５１によって作成されたモータ駆動指令値Ｃｍ及び、オシレータ１によって発生された基準クロックＳ１からモータ駆動指令信号（以下でモータ駆動指令クロックＳ４１という）を生成して当該モータ２０に出力する。例えば、指令クロック生成部４１は出力用のカウンタの機能を有する。このカウンタの機能によれば、制御部５１によって決定されたクロック周期のモータ駆動指令値Ｃｍを基準クロックＳ１を用いてカウントすることによりモータ駆動指令クロックＳ４１を当該モータ２０に出力する。
【００８９】
指令クロック生成部４１にはモータ２０が接続される。指令クロック生成部４１はモータ２０にモータ駆動指令クロックＳ４１を出力する。モータ２０はモータ駆動指令クロックＳ４１に基づいて負荷１０を回転する。モータ２０には速度検出器３０（タコジェネレータ：ＴＧ）が取り付けられ、モータ２０の回転速度を検出してモータ速度クロックＳ３１をカウント部３１に出力する。
【００９０】
この例では、カウント部２１，３１、指令クロック生成部４１及び制御部５１を実装する基板を備え、基準クロックＳ１を発生するオシレータ１が同一の基板内に実装され、当該基準クロックＳ１が内部供給されるものである。このように同一の基板内にオシレータ１を実装すると、内部供給される基準クロックＳ１に基づいてシステムクロックＳ２に同期したモータ駆動指令クロックＳ４１をモータ２０に出力することができ、基準クロックＳ１を補正する機能を別段準備する必要がなく、コストをかけずに精度の良いモータ制御を実行することが可能となる。
【００９１】
もちろん、カウント部２１，３１、制御部５１、指令クロック生成部４１を実装する基板外にオシレータ１を実装してもよい。このように基板外にオシレータ１を実装した場合であっても、外部供給される基準クロックＳ１に基づいてシステムクロックＳ２に同期したモータ駆動指令クロックＳ４１をモータ２０に出力することができる。
【００９２】
続いて、図５を参照して、モータ駆動装置１０１の動作例について説明する。この例でモータ駆動装置１０１は、モータ２０を速度制御するための基準クロックＳ１及びシステムクロックＳ２に同期したモータ目標速度クロックＳ２１に基づいてモータ２０を駆動する。
【００９３】
その際に、モータ目標速度クロックＳ２１は、上位の制御装置からモータ駆動装置１０１に対して指示され、モータ目標速度クロックＳ２１の信号波形と、速度検出器３０から出力されるモータ速度クロックＳ３１の信号波形とを合わせることで、モータ２０の回転速度を目標速度値Ｒefに合わせる方法を例に採る。
【００９４】
もちろん、制御に先立ち、オシレータ１からカウント部２１，３１及び指令クロック生成部４１には、モータ２０を速度制御するための、例えば、発振周波数＝２０ＭＨｚ±２０％の基準クロックＳ１が供給されている。
【００９５】
これらを動作条件にして、ステップＳＴ１でカウント部２１は、図示しない上位の制御装置からモータ目標速度クロックＳ２１を受信する。モータ目標速度クロックＳ２１は、モータ２０に命令を発行するためのシステムクロックＳ２に同期した信号であり、例えば、その周波数［ＫＨｚ］が２ＫＨｚである。
【００９６】
次に、ステップＳＴ２で指令クロック生成部４１は、モータ２０を始動するためのモータ駆動指令クロックＳ４１を出力して当該モータ２０の駆動を開始する。
【００９７】
その後、ステップＳＴ３で制御部５１はモータ速度クロックＳ３１が制御開始速度に到達したか否かを判別する。このとき、制御部５１は制御開始速度をＶthとし、現在のモータ２０の速度検出カウント値Ｃ１を与えるモータ２０の速度検出値Ｖ１とを比較してＶ１＞Ｖthとなった場合に、モータ２０の速度検出値Ｖ１が制御開始速度Ｖthに到達したと判断する。Ｖ１≦Ｖthの場合はモータ制御開始を待機する。
【００９８】
モータ検出速度Ｖｘが制御開始速度Ｖthに到達した場合は、ステップＳＴ４でカウント部２１はモータ目標速度クロックＳ２１をキャプチャする。このとき、カウント部２１はオシレータ１から基準クロックＳ１を入力すると共に、システムクロックＳ２に同期したモータ目標速度クロックＳ２１を入力し、当該モータ目標速度クロックＳ２１のクロック周期を基準クロックＳ１に基づいてカウントする。これにより、目標速度カウント値Ｃ２を制御部５１に出力することができ、モータ２０の目標速度値Ｒefを算出できるようになる。
【００９９】
次に、ステップＳＴ５で制御部５１は目標速度カウント値Ｃ２からモータ２０の目標速度値Ｒefを算出する。このとき、制御部５１は、計算式＝（基準クロックＳ１の発振周波数［ＭＨｚ］／モータ目標速度クロックＳ２１の周波数［ＫＨｚ］）を算出して目標速度値Ｒefを求める。この例でモータ２０の目標速度値Ｒefは、Ｒef＝２０ＭＨｚ／２ＫＨｚ＝１００００である。
【０１００】
また、ステップＳＴ６でカウント部３１はモータ速度クロックＳ３１をキャプチャする。このとき、カウント部３１は、モータ２０から速度制御結果となるモータ速度クロックＳ３１を入力すると共に、オシレータ１から基準クロックＳ１を入力し、当該モータ速度クロックＳ３１のクロック周期を基準クロックＳ１に基づいてカウントする。このカウントにより、モータ２０の速度検出カウント値Ｃ１を制御部５１に出力できるようになる。
【０１０１】
次に、ステップＳＴ７で制御部５１はモータ２０の速度検出カウント値Ｃ１から速度検出値Ｖ１を算出する。このとき、制御部５１は、計算式＝［基準クロックＳ１の発振周波数（ＭＨｚ］／モータ２０の速度検出カウント値Ｃ１］を算出して速度検出値Ｖ１を求める。
【０１０２】
その後、ステップＳＴ８で制御部５１は目標速度値Ｒef（制御目標値）と速度検出値Ｖ１（制御結果値）との差分である速度エラー量をＤevi１としたとき、Ｄevi１＝Ｒef−Ｖ１を演算する。この演算はモータ駆動指令値Ｃｍを作成するためである。
【０１０３】
そして、ステップＳＴ９で制御部５１は速度エラー量Ｄevi１を指令クロック生成部４１に出力してフィードバック制御を実行する。このとき、制御部５１は、速度エラー量Ｄevi１を目標速度カウント値Ｃ２にフィードバックして、速度エラー量Ｄevi１がゼロとなるモータ駆動指令値Ｃｍを算出する。
【０１０４】
その後、ステップＳＴ１０で指令クロック生成部４１は制御部５１からモータ駆動指令値Ｃｍを入力し、当該モータ駆動指令値Ｃｍをモータ駆動指令クロックＳ４１に変換する。例えば、指令クロック生成部４１は、制御部５１によって決定されたクロック周期のモータ駆動指令値Ｃｍを基準クロックＳ１を用いてカウントする。これにより、モータ駆動指令クロックＳ４１を生成することができる。
【０１０５】
そして、ステップＳＴ１１で指令クロック生成部４１はモータ駆動指令クロックＳ４１をモータ２０に出力する。モータ２０はモータ駆動指令クロックＳ４１に基づいて負荷１０を回転する。モータ２０に取り付けられた速度検出器３０は、モータ２０の回転速度を検出してモータ速度クロックＳ３１をカウント部３１に出力する。
【０１０６】
その後、モータ駆動装置１０１は、ステップＳＴ１２でフィードバック制御の終了を判別して制御を分岐する。例えば、上位の制御装置から制御終了コマンド等の通知を受信する。制御終了コマンド等の通知を受信していない場合は、ステップＳＴ４に戻ってフィードバック制御を継続する。
【０１０７】
その際に、制御部５１は目標速度値Ｒefと速度検出値Ｖ１（制御結果値）とを一致させるために、モータ目標速度クロックＳ２１とモータ駆動指令クロックＳ４１の周期及び位相を一致させるようにモータ駆動指令値Ｃｍを演算する。
【０１０８】
そして、目標速度到達時には、モータ駆動指令クロックＳ４１の周波数［ＫＨｚ］は、計算式＝［基準クロックＳ１の発振周波数／目標速度カウント値Ｃ２］＝２０ＭＨｚ±２０％／１００００＝２ＫＨｚとなり、オシレータ１の基準クロックＳ１の発振周波数２０ＭＨｚ±２０％の「±２０％」が関係しなくなる。
【０１０９】
これはモータ目標速度クロックＳ２１をカウントする基準クロックＳ１と、モータ速度クロックＳ３１をカウントする基準クロックＳ１とが同一なので、基準クロックＳ１の±２０％は相殺され、モータ目標速度クロックＳ２１から算出される目標速度カウント値Ｃ２の絶対値である目標速度値Ｒefと、目標速度到達時のモータ２０の速度検出カウント値Ｃ１の絶対値である速度検出値Ｖ１とが一致するようになる。なお、モータ駆動装置１０１が制御終了コマンドを受信した場合は、フィードバック制御を終了する。
【０１１０】
このように第２の実施例としてのモータ駆動装置１０１によれば、モータ２０を速度制御するためのモータ駆動指令値Ｃｍを作成する制御部５１を備え、この制御部５１は、システムクロックＳ２に同期したモータ目標速度クロックＳ２１から基準クロックＳ１に基づいて算出される当該モータ２０の目標速度カウント値Ｃ２から目標速度値Ｒefを算出し、モータ速度クロックＳ３１から基準クロックＳ１に基づいて算出される速度検出カウント値Ｃ１から速度検出値Ｖ１を算出し、目標速度値Ｒefと速度検出値Ｖ１との速度エラー量Ｄevi１（差分）を演算するようになる。
【０１１１】
従って、モータ２０の目標速度値Ｒefと、速度検出値Ｖ１との速度エラー量Ｄevi１の演算結果から基準クロックＳ１自身の誤差成分を相殺除去できるので、システムクロックＳ２を発生する発振回路よりも、精度の低いオシレータ１を使用した場合であっても、システムクロックＳ２に同期したモータ駆動指令クロックＳ４１をモータ２０に出力することができ、モータ速度制御を高精度に実行できるようになる。
【０１１２】
しかも、基準クロックＳ１を補正する別段の機能を準備することなく、システムクロックＳ２に同期したモータ駆動指令クロックＳ４１をモータ２０に出力することができ、コストをかけずに精度の良いモータ制御を実行することが可能となる。
【実施例３】
【０１１３】
＜第１のモータ駆動システム＞
続いて、図６を参照して、第３の実施例としてのモータ駆動システム１１０の構成例について説明する。図６に示すモータ駆動システム１１０はカラー複写機等の画像形成装置に適用して極めて好適である。
【０１１４】
この例で、カラー複写機等の上位の制御装置５０には、モータ駆動システム１１０を構成する、例えば、４個のモータ駆動装置＃１〜＃４が接続される。モータ駆動装置＃１〜＃４には、第１の実施例で説明したマイクロコンピュータ１００や、第２の実施例で説明したモータ駆動装置１０１等のいずれかが使用されるものである。
【０１１５】
イエロー（Ｙ）色用のモータ駆動装置＃１にはモータＭ１が接続される。モータ駆動装置＃１はモータＭ１にモータ駆動指令クロックＳ41yを出力して速度制御を実行する。モータＭ１には感光体ドラム１０Ｙが接続される。モータＭ１は、モータ駆動指令クロックＳ41yに基づいて感光体ドラム１０Ｙを回転する。モータＭ１には速度検出器Ｔ１が取り付けられる。速度検出器Ｔ１はモータＭ１の回転速度を検出してモータ速度クロックＳ31yをモータ駆動装置＃１に出力する。なお、他のマゼンタ（Ｍ），シアン（Ｃ），ブラック（ｋ）色用のモータ駆動装置＃２〜＃４の構成例については、モータ駆動装置＃１をモータ駆動装置＃２，＃３，＃４に、Ｙ色用のＹをＭ（ｍ），Ｃ（ｃ），Ｋ（ｋ）に、また、モータＭ１をモータＭ２，Ｍ３，Ｍ４に読み替えて参照されたい。
【０１１６】
ここで、モータ駆動装置＃１〜＃４における動作例を説明する。図６に示すモータ駆動装置＃１は、モータＭ１を速度制御するための基準クロックＳ１及びシステムクロックＳ２（ＣＬＫ２）に同期したモータ目標速度クロックＳ11yを入力すると共に、モータ速度クロックＳ31yを入力する。
【０１１７】
モータ駆動装置＃１では、システムクロックＳ２に同期したモータ目標速度クロックＳ11yから基準クロックＳ１に基づいて算出される当該モータＭ１の目標速度カウント値Ｃ２から目標速度値Ｒefを算出し、モータ速度クロックＳ31yから基準クロックＳ１に基づいて算出される速度検出カウント値Ｃ１から速度検出値Ｖ１を算出し、目標速度値Ｒefと速度検出値Ｖ１との速度エラー量Ｄevi１（差分）を演算する（図５参照）。
【０１１８】
モータ駆動装置＃１は、この速度エラー量Ｄevi１に生成されるモータ駆動指令クロックＳ41yをモータＭ１に出力するようになる。モータＭ１はモータ駆動指令クロックＳ41yに基づいて回転する。なお、他のＭ，Ｃ，Ｋ色用のモータ駆動装置＃２〜＃４の動作例については、モータ駆動装置＃１をモータ駆動装置＃２，＃３，＃４に、Ｙ色用のＹをＭ（ｍ），Ｃ（ｃ），Ｋ（ｋ）に、また、モータＭ１をモータＭ２，Ｍ３，Ｍ４に読み替えて参照されたい。
【０１１９】
このように第３の実施例としてのモータ駆動システム１１０によれば、モータ駆動装置＃１〜＃４には、本発明に係るマイクロコンピュータ１００や、モータ駆動装置１０１等のいずれかが使用され、４個のモータＭ１〜Ｍ４を駆動する場合に、他の機能を追加することなく、システムクロックＳ２に各々同期した個々のモータ目標速度クロックＳ11y，Ｓ11m，Ｓ11c，Ｓ11kに基づいて４個のモータ駆動装置＃１〜＃４により、個々のモータＭ１〜Ｍ４を制御することができる。
【０１２０】
しかも、個々のモータ駆動装置＃１〜＃４において、各モータＭ１〜Ｍ４の目標速度カウント値Ｃ２と、速度検出カウント値Ｃ１との差分の演算結果から基準クロックＳ１自身の誤差成分を相殺除去できる。従って、当該モータ駆動装置＃１〜＃４の各々に精度の低いオシレータ１を使用した場合であっても、システムクロックＳ２に同期したモータ駆動指令クロックＳ41yをモータＭ１に出力し、モータ駆動指令クロックＳ41mをモータＭ２に出力し、モータ駆動指令クロックＳ41cをモータＭ３に出力し、モータ駆動指令クロックＳ41kをモータＭ４に出力することができ、感光体ドラム１０Ｙ，１０Ｍ，１０Ｃ，１０Ｋを個々に駆動する４個のモータＭ１〜Ｍ４の速度制御を高精度に実行できるようになる。
【実施例４】
【０１２１】
＜第２のマイクロコンピュータ＞
続いて、図７を参照して、第４の実施例としてのマイクロコンピュータ２００の構成例について説明する。図７に示すマイクロコンピュータ２００は、第１の実施例と同様にしてモータやソレノイド、圧電素子等の制御対象をフィードバック制御するものであり、オシレータ１、インプットキャプチャ３，１２，アウトプットコンペア４、受信器６及び制御部２５を有して構成される。
【０１２２】
オシレータ１は発振器の一例を構成し、第１の実施例と同様にして制御対象をフィードバック制御するための基準クロックＳ１を発生する。オシレータ１には第１の実施例と同様なものが使用される。この例で、オシレータ１にはインプットキャプチャ３、アウトプットコンペア４、インプットキャプチャ１２及び制御部２５が接続される。
【０１２３】
受信器６（UART  SPI  USB）は、制御対象に制御目標を設定するための制御目標値DATAを受信する。制御目標値DATAは受信器６から制御部２５に出力される。インプットキャプチャ１２（第１の信号入力部）は、制御対象に命令を発行するためのシステムクロックＳ２（第２の基準信号）を入力すると共に、オシレータ１から基準クロックＳ１（第１の基準信号）を入力し、当該基準クロックＳ１に基づいてシステムクロックＳ２から当該基準クロックＳ１を補正するための補正値αを算出する。
【０１２４】
例えば、インプットキャプチャ１２は、システムクロックＳ２を入力し、当該システムクロックＳ２のクロック周期を所定時間（単位時間）、基準クロックＳ１に基づいてカウントしてカウント値を出力する。このカウント値は、システムクロックＳ２の周波数に依存している。
【０１２５】
このインプットキャプチャ１２はシステムクロックＳ２のカウント値と、基準クロックＳ１のカウント値の差分を演算する。この演算結果が、基準クロックＳ１を補正するための補正値αとなり、補正値αは制御部２５に出力される。
【０１２６】
インプットキャプチャ３（第２の信号入力部）は、第１の実施例と同様にして、制御対象から制御結果信号Ｓ３を入力すると共に、オシレータ１から基準クロックＳ１を入力し、基準クロックＳ１に基づいて制御結果信号Ｓ３から当該制御対象の制御結果値Ｄ３を算出する。制御結果信号Ｓ３は、第１の実施例と同様にして、ロータリーエンコーダや、タコジェネレータ等の速度検出器から出力されるパルス信号である。
【０１２７】
インプットキャプチャ３、受信器６、インプットキャプチャ１２には、制御部２５が接続される。制御部２５はオシレータ１から基準クロックＳ１を入力し、インプットキャプチャ３から算出された制御結果値Ｄ３をインプットキャプチャ１２から算出された補正値αに基づいて補正し、補正後の制御結果値Ｄ３と、受信器６によって受信された制御目標値DATAとの差分を演算して駆動指令値Ｄｍを作成する。
【０１２８】
アウトプットコンペア４（信号出力部）は第１の実施例と同様にして、制御部２５によって作成された駆動指令値Ｄｍ及び、オシレータ１によって発生された基準クロックＳ１から駆動指令信号Ｓ４を生成して当該制御対象に出力する。制御対象は駆動指令信号Ｓ４に基づいて回転動作や、往復動作等をするようになる。
【０１２９】
続いて、図８を参照して、マイクロコンピュータ２００の動作例について説明する。この例でも、マイクロコンピュータ２００がモータや、ソレノイド、圧電素子等の制御対象をフィードバック制御する場合を前提とする。これを動作条件にして、マイクロコンピュータ２００では、図８に示すステップＢ１でオシレータ１が制御対象をフィードバック制御するための基準クロックＳ１を発生する。
【０１３０】
次に、ステップＢ２で、受信器６は制御対象をフィードバック制御するための制御目標値DATAを受信する。制御目標値DATAは受信器６から制御部２５に出力される。一方、ステップＢ３で、インプットキャプチャ１２は制御対象に命令を発行するためのシステムクロックＳ２を入力する。
【０１３１】
ステップＢ４で、インプットキャプチャ１２は、オシレータ１で発生された基準クロックＳ１を入力し、当該基準クロックＳ１に基づいてシステムクロックＳ２から当該基準クロックＳ１を補正するための補正値αを算出する。このとき、インプットキャプチャ１２は、システムクロックＳ２を入力し、当該システムクロックＳ２のクロック周期を基準クロックＳ１に基づいてカウントしカウント値を出力する。このカウント値は、基準クロックＳ１を補正するための補正値αとなり、補正値αは制御部２５に出力される。
【０１３２】
他方、ステップＢ５で、インプットキャプチャ３は制御対象から制御結果信号Ｓ３を入力する。そして、ステップＢ６で、インプットキャプチャ３は、オシレータ１で発生された基準クロックＳ１を入力し、基準クロックＳ１に基づいて制御結果信号Ｓ３から当該制御対象の制御結果値Ｄ３を算出する。
【０１３３】
そして、ステップＢ７で、制御部２５はオシレータ１から基準クロックＳ１を入力し、受信器６で受信された制御目標値DATAをデコードした後の制御目標値Ｄ１を、インプットキャプチャ１２で算出された補正値αに基づいて補正する。又は、インプットキャプチャ３で算出された制御結果値Ｄ３を、インプットキャプチャ１２で算出された補正値αに基づいて補正する。この補正は、基準クロックＳ１の周波数変動の影響を取り除くためである。その後、ステップＢ８で、制御部２５は、例えば、補正後の制御目標値Ｄ１と、制御結果値Ｄ３との差分を演算する。そして、ステップＢ９で制御部２５は駆動指令値Ｄｍを作成する。
【０１３４】
その後、ステップＢ１０で、アウトプットコンペア４は、制御部２５で作成された駆動指令値Ｄｍ及び、オシレータ１で発生された基準クロックＳ１から駆動指令信号Ｓ４を生成して当該制御対象に出力する。なお、マイクロコンピュータ２００は、ステップＢ１１でフィードバック制御の終了を判別して制御を分岐する。例えば、上位の制御装置から制御終了コマンド等の通知を受信する。制御終了コマンド等の通知を受信していない場合は、ステップＢ２に戻ってフィードバック制御を継続する。制御終了コマンドを受信した場合は、フィードバック制御を終了する。
【０１３５】
このように、第４の実施例としてのマイクロコンピュータ２００によれば、制御対象をフィードバック制御するための駆動指令値Ｄｍを作成する制御部２５を備え、この制御部２５は、受信器６によって受信された制御目標値DATAと、補正値αによって補正された後の制御結果値Ｄ３との差分を演算するものである。
【０１３６】
従って、制御目標値と、補正後の制御結果値Ｄ３との差分の演算結果から基準クロックＳ１自身の誤差成分を相殺除去できるようになる。これにより、精度の低いオシレータ１を使用した場合であっても、システムクロックＳ２に同期した駆動指令信号Ｓ４を制御対象に出力することができ、制御対象のタイミング制御等のフィードバック制御を高精度に実行できるようになる。
【実施例５】
【０１３７】
＜第２のモータ駆動装置＞
図９を参照して、第５の実施例としてのモータ駆動装置２０１の構成例について説明する。図９に示すモータ駆動装置２０１は、マイクロコンピュータ２００の一例を構成し、モータ２０の回転速度の絶対値を精度良く補正するために、ＰＩ制御等のフィードバック制御をディジタル的に実行する。モータ駆動装置２０１は、オシレータ１、カウント部２２，３１、指令クロック生成部４２、制御部５２、受信部６１及びカウント演算部６２を有して、モータ２０をディジタル的に駆動するようになされる。制御部５２は、補正部５０１及び演算部５０２を有して構成される。
【０１３８】
この例ではオシレータ１は、第２の実施例と同様にして、制御対象となるモータ２０を速度制御するための所定の発振周波数の基準クロックＳ１を発生する。オシレータ１には第２の実施例で説明したものが使用される。オシレータ１は、カウント部２２，３１、指令クロック生成部４２及び演算部５０２に接続される。
【０１３９】
受信部６１は上位の制御装置等に接続され、当該制御装置から、モータ２０を速度制御するための目標速度値DATA（Ｖ）を受信する。受信部６１にはカウント演算部６２が接続され、目標速度値DATAが受信部６１からカウント演算部６２へ出力される。カウント演算部６２は、目標速度値DATAをデコード（演算）等して目標速度カウント値Ｃ２を出力する。受信部６１及びカウント演算部６２は受信器６を構成する。
【０１４０】
カウント部２２は上位の制御装置等から、モータ２０に命令を発行するためのシステムクロックＳ２を入力すると共に、オシレータ１から基準クロックＳ１を入力し、当該基準クロックＳ１に基づいてシステムクロックＳ２から当該基準クロックＳ１を補正するための補正値αを生成する。例えば、カウント部２２は、システムクロックＳ２を入力し、当該システムクロックＳ２のクロック周期を基準クロックＳ１に基づいてカウントしてカント値を出力する。このカウント値は、基準クロックＳ１を補正するための補正値αとなる。補正値αは補正部５０１に出力される。
【０１４１】
カウント部３１は、第２の実施例と同様にして、モータ２０から速度制御結果となるモータ速度クロックＳ３１を入力すると共に、オシレータ１から基準クロックＳ１を入力し、基準クロックＳ１に基づいてモータ速度クロックＳ３１から当該モータ２０の速度検出カウント値Ｃ１を算出する。
【０１４２】
カウント部２２及びカウント演算部６２には補正部５０１が接続される。補正部５０１は、カウント演算部６２から出力される目標速度カウント値Ｃ２を、カウント部２２から算出された補正値αに基づいて補正する。この補正は、基準クロックＳ１の周波数変動の影響を取り除くためである。補正部５０１には演算部５０２が接続される。演算部５０２は、補正後の目標速度カウント値Ｃ２と、カウント部３１によって算出された速度検出カウント値Ｃ１との差分を演算してモータ駆動指令値Ｃｍを作成する。このモータ２０の速度検出カウント値Ｃ１と補正後の目標速度カウント値Ｃ２との差分の演算により、制御部５２で、モータ駆動指令クロックＳ４１のクロック周期を決定できるようなる。
【０１４３】
演算部５０２には指令クロック生成部４２が接続される。指令クロック生成部４２は、演算部５０２によって作成されたモータ駆動指令値Ｃｍ及び、オシレータ１によって発生された基準クロックＳ１からモータ駆動指令クロックＳ４１を生成して当該モータ２０に出力する。例えば、指令クロック生成部４２は制御部５２によって決定されたモータ駆動指令値Ｃｍのクロック周期を基準クロックＳ１を用いてカウントすることによりモータ駆動指令クロックＳ４１を生成する。これにより、システムクロックＳ２に同期したモータ駆動指令クロックＳ４１をモータ２０に出力できるようになる。
【０１４４】
この例でも、カウント部２２，３１、制御部５２、指令クロック生成部４２を実装する基板を備え、基準クロックＳ１を発生するオシレータ１が同一の基板内に実装され、当該基準クロックＳ１が内部供給されるものである。このように同一の基板内にオシレータ１を実装すると、内部供給される基準クロックＳ１に基づいてシステムクロックＳ２に同期したモータ駆動指令クロックＳ４２をモータ２０に出力することができ、基準クロックＳ１を補正する機能を別段準備する必要がなく、コストをかけずに精度の良いモータ制御を実行することが可能となる。
【０１４５】
もちろん、カウント部２２，３１、制御部５２、指令クロック生成部４２を実装する基板外にオシレータ１を実装してもよい。このように基板外にオシレータ１を実装した場合であっても、外部供給される基準クロックＳ１に基づいてシステムクロックＳ２に同期したモータ駆動指令クロックＳ４２をモータ２０に出力することができる。
【０１４６】
続いて、図１０及び図１１を参照して、モータ駆動装置２０１の動作例について説明する。この例では、モータ目標速度値DATA（Ｖ）を従来方式と同様にデータで指示すると共に、既知の周波数のシステムクロックＳ２を入力し、基準クロックＳ１の環境変動を見て、その都度、基準クロックＳ１を補正してモータ２０の回転速度を合わせる方法を例に採る。この例では、モータ駆動装置２０１の動作例を補正値αの算出と、モータ駆動指令値Ｃｍの作成とに分けて説明する。
【０１４７】
［補正値αの算出例］
まず、図１０に示すステップＳＴ21で制御部５２は基準クロックＳ１の補正タイミングを待機する。補正タイミングは、使用温度・湿度等の環境変動等に基づいて決定され、基準クロックＳ１の補正タイミングに到達した場合は、ステップＳＴ22でカウント部２２はシステムクロックＳ２をキャプチャする。システムクロックＳ２は、上位の制御装置等からカウント部２２に出力される。
【０１４８】
そして、ステップＳＴ23でカウント部２２はシステムクロックＳ２のカウントを実行する。このとき、カウント部２２はオシレータ１から基準クロックＳ１を入力し、当該基準クロックＳ１でサンプリング時間を設定して、その時間内にシステムクロックＳ２の周期をカウントし、このシステムクロックＳ２の周波数に依存するカウント値を求める。
【０１４９】
次に、ステップＳＴ24でカウント部２２は基準クロックＳ１の補正値αを出力する。例えば、カウント部２２は、同じサンプリング時間内に基準クロックＳ１の周期をカウントし、この基準クロックＳ１の発振周波数に依存するカウント値を求める。カウント部２２は、システムクロックＳ２のカウント値と基準クロックＳ１のカウント値の差分を演算する。この演算結果が基準クロックＳ１を補正するための補正値αである。差分がゼロであれば、補正値αはゼロである。
【０１５０】
［モータ駆動指令値Ｃｍの作成例］
まず、図１１に示すステップＳＴ31で受信部６１は、図示しない上位の制御装置からモータ目標速度値DATA（Ｖ）を受信する。モータ目標速度値DATA（Ｖ）は、モータ２０に目標速度Ｖを設定するためのデータであり、例えば、モータ２０の目標速度Ｖ＝４５［ｒｐｍ］等である。
【０１５１】
次に、ステップＳＴ32で演算部５０２は補正値αを設定してモータ目標速度値DATA（Ｖ）からモータ２０の目標速度値Ｒefを算出する。このとき、演算部５０２は計算式＝（基準クロックＳ１の発振周波数［ＭＨｚ］×補正値α／モータ目標速度値）を算出して目標速度値Ｒefを求める。この例でモータ２０の目標速度値Ｒefは、Ｒef＝２０ＭＨｚ×α／２ＫＨｚ＝１００００×αである。
【０１５２】
次に、ステップＳＴ33で、指令クロック生成部４２は、モータ２０を始動するためのモータ駆動指令クロックＳ４２を出力して当該モータ２０の駆動を開始する。その後、ステップＳＴ34で制御部５２はモータ速度クロックＳ３１が制御開始速度に到達したか否かを判別する。このとき、制御部５２は制御開始速度をＶthとし、現在のモータ２０の速度検出カウント値Ｃ１に基づく速度検出値Ｖ１とを比較してＶ１＞Ｖthとなった場合に、モータ検出速度Ｖｘが制御開始速度Ｖthに到達したと判断する。Ｖ１≦Ｖthの場合はモータ制御開始を待機する。
【０１５３】
モータ速度クロックＳ３１が制御開始速度Ｖthに到達した場合は、ステップＳＴ35でカウント部３１はモータ速度クロックＳ３１をキャプチャする。このとき、カウント部３１は、モータ２０から速度制御結果となるモータ速度クロックＳ３１を入力して、当該モータ速度クロックＳ３１のクロック周期を基準クロックＳ１に基づいてカウントする。このカウントから得られるモータ２０の速度検出カウント値Ｃ１を発生する。速度検出カウント値Ｃ１は、カウント部３１から演算部５０２へ出力される。
【０１５４】
そして、ステップＳＴ36で演算部５０２は速度検出カウント値Ｃ１から速度検出値Ｖ１を算出する。このとき、演算部５０２は、計算式＝（基準クロックＳ１の発振周波数［ＭＨｚ］／モータ２０の速度検出カウント値Ｃ１）を算出して速度検出値Ｖ１を求める。
その後、ステップＳＴ37で演算部５０２は、補正後の目標速度値Ｒef（制御目標値）と速度検出値Ｖ１（制御結果値）との差分である速度エラー量をＤevi２としたとき、Ｄevi２＝Ｒef−Ｖ１を演算する。この演算はモータ駆動指令値Ｃｍを作成するためである。
【０１５５】
そして、ステップＳＴ38で演算部５０２は速度エラー量Ｄevi２を指令クロック生成部４２に出力してフィードバック制御を実行する。このとき、演算部５０２は、速度エラー量Ｄevi２を目標速度カウント値Ｃ２にフィードバックして、速度エラー量Ｄevi２がゼロとなるモータ駆動指令値Ｃｍを算出する。
【０１５６】
その後、ステップＳＴ39で指令クロック生成部４２は演算部５０２からモータ駆動指令値Ｃｍを入力し、当該モータ駆動指令値Ｃｍをモータ駆動指令クロックＳ４２に変換する。例えば、指令クロック生成部４２は、演算部５０２によって決定されたクロック周期のモータ駆動指令値Ｃｍを基準クロックＳ１を用いてカウントする。これにより、モータ駆動指令クロックＳ４２を生成することができる。
【０１５７】
そして、ステップＳＴ40で指令クロック生成部４２はモータ駆動指令クロックＳ４２をモータ２０に出力する。モータ２０はモータ駆動指令クロックＳ４２に基づいて負荷１０を回転する。モータ２０に取り付けられた速度検出器３０は、モータ２０の回転速度を検出してモータ速度クロックＳ３１をカウント部３１に出力する。
【０１５８】
その後、モータ駆動装置２０１は、ステップＳＴ41でフィードバック制御の終了を判別して制御を分岐する。例えば、上位の制御装置から制御終了コマンド等の通知を受信する。制御終了コマンド等の通知を受信していない場合は、ステップＳＴ35に戻ってモータ速度クロックＳ３１をキャプチャしてフィードバック制御を継続する。
【０１５９】
その際に、演算部５０２は補正後の目標速度値Ｒef（制御目標値）と速度検出値Ｖ１（制御結果値）とを一致させるために、目標速度カウント値Ｃ２とモータ駆動指令クロックＳ４２の周期及び位相を一致させるようにモータ駆動指令値Ｃｍを演算する。
【０１６０】
そして、目標速度到達時には、モータ駆動指令クロックＳ４２の周波数［ＫＨｚ］は、計算式＝（基準クロックＳ１の発振周波数／目標速度カウント値Ｃ２）＝２０ＭＨｚ±２０％／（１００００＋α）＝２ＫＨｚとなり、オシレータ１の基準クロックＳ１の発振周波数２０ＭＨｚ±２０％の「±２０％」が関係しなくなる。
【０１６１】
これはモータ２０の目標速度値Ｒefをカウントする基準クロックＳ１と、システムクロックＳ２をカウントする基準クロックＳ１とが同一なので、基準クロックＳ１の±２０％は相殺され、その目標速度値Ｒefとその速度検出値の各々の絶対値が一致するようになる。なお、モータ駆動装置１０１が制御終了コマンドを受信した場合は、フィードバック制御を終了する。
【０１６２】
このように第５の実施例としてのモータ駆動装置２０１によれば、モータ２０を速度制御するためのモータ駆動指令値Ｃｍを作成する制御部５２を備え、この制御部５２では、受信部６１によって受信されたモータ目標速度値が補正値αによって補正され、速度検出カウント値Ｃ１と補正後の目標速度カウント値Ｃ２との差分を演算するものである。
【０１６３】
この演算によって、補正後の目標速度カウント値Ｃ２と、モータ２０の速度検出カウント値Ｃ１との差分の演算結果から基準クロックＳ１自身の誤差成分を相殺除去できるようになる。これにより、システムクロックＳ２を発生する発振回路よりも、精度の低いオシレータ１を使用した場合であっても、システムクロックＳ２に同期したモータ駆動指令クロックＳ４２をモータ２０に出力することができ、モータ速度制御を高精度に実行できるようになる。
【０１６４】
しかも、基準クロックＳ１を補正する別段の機能を準備することなく、システムクロックＳ２に同期したモータ駆動指令クロックＳ４２をモータ２０に出力することができ、コストをかけずに精度の良いモータ制御を実行することが可能となる。
【実施例６】
【０１６５】
＜第２のモータ駆動システム＞
続いて、図１２を参照して、第６の実施例としてのモータ駆動システム２２０について説明する。図１２に示すモータ駆動システム２２０はカラー複写機等の画像形成装置に適用して極めて好適である。
【０１６６】
この例で、カラー複写機等の上位の制御装置５０には、第２のモータ駆動システム２２０を構成する、例えば、４個のモータ駆動装置＃１１〜＃４４が接続される。モータ駆動装置＃１１〜＃４４には、第４の実施例で説明したマイクロコンピュータ１００や、第５の実施例で説明したモータ駆動装置２０１等のいずれかが使用されるものである。
【０１６７】
Ｙ色用のモータ駆動装置＃１１にはモータＭ１が接続される。モータ駆動装置＃１１はモータＭ１にモータ駆動指令クロックＳ42yを出力して速度制御を実行する。モータＭ１には感光体ドラム１０Ｙが接続される。モータＭ１は、モータ駆動指令クロックＳ42yに基づいて感光体ドラム１０Ｙを回転する。モータＭ１には速度検出器Ｔ１が取り付けられる。速度検出器Ｔ１はモータＭ１の回転速度を検出してモータ速度クロックＳ31yをモータ駆動装置＃１１に出力する。
【０１６８】
なお、他のＭ，Ｃ，Ｋ色用のモータ駆動装置＃２２〜＃４４の構成例については、モータ駆動装置＃１１をモータ駆動装置＃２２，＃３３，＃４４に、Ｙ色用のＹをＭ（ｍ），Ｃ（ｃ），Ｋ（ｋ）に、また、モータＭ１をモータＭ２，Ｍ３，Ｍ４に読み替えて参照されたい。
【０１６９】
ここで、モータ駆動装置＃１１〜＃４４における動作例を説明する。図１２に示すモータ駆動装置＃１１では、モータＭ１を速度制御するための基準クロックＳ１が発生され、システムクロックＳ２（ＣＬＫ２）及びモータ目標速度値DATAyが入力されると共に、モータ速度クロックＳ31yが入力される。
【０１７０】
モータ駆動装置＃１１は、システムクロックＳ２と基準クロックＳ１との差分を補正値αとして、この補正値αで補正した基準クロックＳ１に基づいて算出される目標速度カウント値Ｃ２から、補正後の目標速度値Ｒefを算出する。また、モータ駆動装置＃１１は、モータ速度クロックＳ31yから基準クロックＳ１に基づいてカウント出力される速度検出カウント値Ｃ１から速度検出値Ｖ１を算出し、補正後の目標速度値Ｒefと速度検出値Ｖ１との差分として速度エラー量Ｄevi２（差分）が演算される（図９参照）。
【０１７１】
モータ駆動装置＃１１は、この速度エラー量Ｄevi２に基づいて生成されるモータ駆動指令クロックＳ42yをモータＭ１に出力するようになる。モータＭ１はモータ駆動指令クロックＳ42yに基づいて回転する。
【０１７２】
なお、他のＭ，Ｃ，Ｋ色用のモータ駆動装置＃２２〜＃４４の動作例については、モータ駆動装置＃１１をモータ駆動装置＃２２，＃３３，＃４４に、Ｙ色用のＹをＭ（ｍ），Ｃ（ｃ），Ｋ（ｋ）に、また、モータＭ１をモータＭ２，Ｍ３，Ｍ４に読み替えて参照されたい。
【０１７３】
このように第６の実施例としてのモータ駆動システム２２０によれば、モータ駆動装置＃１１〜＃４４には、本発明に係るマイクロコンピュータ２００や、モータ駆動装置２０１等のいずれかが使用され、４個のモータＭ１〜Ｍ４を駆動する場合に、他の機能を追加することなく、個々のモータ目標速度値DATAy，DATAm，DATAc，DATAkが設定され、システムクロックＳ２で基準クロックＳ１を補正して算出される補正後の目標速度値Ｒefに基づいて４個のモータ駆動装置＃１１〜＃４４により、個々のモータＭ１〜Ｍ４を制御することができる。
【０１７４】
しかも、個々のモータ駆動装置＃１１〜＃４４において、各モータＭ１〜Ｍ４の目標速度カウント値Ｃ２と、速度検出カウント値Ｃ１との差分の演算結果から基準クロックＳ１自身の誤差成分を相殺除去できる。従って、当該モータ駆動装置＃１１〜＃４４の各々に精度の低いオシレータ１を使用した場合であっても、システムクロックＳ２に同期したモータ駆動指令クロックＳ42yをモータＭ１に出力し、モータ駆動指令クロックＳ42mをモータＭ２に出力し、モータ駆動指令クロックＳ42cをモータＭ３に出力し、モータ駆動指令クロックＳ42kをモータＭ４に出力することができ、感光体ドラム１０Ｙ，１０Ｍ，１０Ｃ，１０Ｋを個々に駆動する４個のモータＭ１〜Ｍ４の速度制御を高精度に実行できるようになる。
【産業上の利用可能性】
【０１７５】
この発明は、感光体ドラムや、現像器等をモータで駆動するモータコントローラを備えたカラー複写機や、複合機、プリンター等に適用して極めて好適なものである。
【符号の説明】
【０１７６】
１  オシレータ（発振器）
３  インプットキャプチャ（第１の信号入力部）
４  アウトプットコンペア（信号出力部）
６  受信器
１１，１２  インプットキャプチャ（第２の信号入力部）
１５  演算器（制御部）
２１  カウント部（第１の信号入力部）
２２，３１  カウント部（第２の信号入力部）
３０  速度検出器
４１  指令クロック生成部（信号出力部）
５０  制御装置
２５，５１，５２  制御部
６１  受信部（受信器）
６２  カウント演算部（受信器）
１００，２００  マイクロコンピュータ
＃１〜＃４，＃１１〜＃４４，１０１，２０１  モータ駆動装置
５０１  補正部（制御部）
５０２  演算部（制御部）
【図１】
2011172350.tif 000003
【図２】
2011172350.tif 000004
【図３】
2011172350.tif 000005
【図４】
2011172350.tif 000006
【図５】
2011172350.tif 000007
【図６】
2011172350.tif 000008
【図７】
2011172350.tif 000009
【図８】
2011172350.tif 000010
【図９】
2011172350.tif 000011
【図１０】
2011172350.tif 000012
【図１１】
2011172350.tif 000013
【図１２】
2011172350.tif 000014
【図１３】
2011172350.tif 000015
【図１４】
2011172350.tif 000016
【図１５】
2011172350.tif 000017