(57)【要約】【課題】  駆動対象が一定量駆動される毎にモータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるモータ制御を行うにあたり、モータ負荷の変動によらず安定して駆動対象を駆動できるようにすることを目的とする。【解決手段】  モータの駆動が開始されると、まず駆動開始時のＰＷＭ値が初期設定値であるｓｔａｒｔ＿ｐｗｍ１に設定され、その後一定周期で一定量ずつ徐々に増加していく。そして、エンコーダエッジを検出したとき、ＰＷＭ値を初期設定値にリセットして再び同様に上昇させていく。そして、２回目以降のエッジ検出時においては、エッジ検出時のＰＷＭ値に応じて、次のＰＷＭ初期値が設定される。例えば、負荷が大きくなって駆動速度が低下することによりエッジ検出時のＰＷＭ値がｄｅｔ＿ｐｗｍ＿ｍａｘより大きかった場合は、前回のＰＷＭ初期値より大きいＰＷＭ値が新たなＰＷＭ初期値となる。【選択図】  図４
2005094857.tif 000002
【特許請求の範囲】
【請求項１】
モータにより駆動される駆動対象が一定量駆動される毎に、前記モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるモータ制御方法であって、
前記駆動対象が前記一定量駆動される毎に、該一定量駆動された時の前記駆動力に応じて、前記駆動対象が目標駆動速度にて駆動されるよう、前記初期駆動力を設定変更する
ことを特徴とするモータ制御方法。
【請求項２】
モータにより駆動される駆動対象が一定量駆動される毎に、前記モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるモータ制御方法であって、
前記駆動対象が前記一定量駆動される毎に、該一定量駆動されるのに要した時間に応じて、前記駆動対象が目標駆動速度にて駆動されるよう、前記初期駆動力を設定変更する
ことを特徴とするモータ制御方法。
【請求項３】
モータにより駆動される駆動対象が一定量駆動される毎に、前記モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるモータ制御方法であって、
前記駆動対象が前記一定量駆動される毎に、該一定量駆動された時の前記駆動対象の駆動速度に応じて、前記駆動対象が目標駆動速度にて駆動されるよう、前記初期駆動力を設定変更する
ことを特徴とするモータ制御方法。
【請求項４】
請求項１記載のモータ制御方法であって、
前記駆動対象が前記一定量駆動される毎に、次の（ａ）又は（ｂ）の処理のうち少なくともいずれか一方を実行することを特徴とするモータ制御方法。
（ａ）該一定量駆動された時の前記駆動力が予め設定した駆動力上限閾値より大きい場合、前記初期駆動力を増加させる
（ｂ）該一定量駆動された時の前記駆動力が予め設定した駆動力下限閾値より小さい場合、前記初期駆動力を減少させる
【請求項５】
請求項２記載のモータ制御方法であって、
前記駆動対象が前記一定量駆動される毎に、次の（ａ）又は（ｂ）の処理のうち少なくともいずれか一方を実行することを特徴とするモータ制御方法。
（ａ）該一定量駆動されるのに要した時間が予め設定した経過時間上限閾値より長い場合、前記初期駆動力を増加させる
（ｂ）該一定量駆動されるのに要した時間が予め設定した経過時間下限閾値より短い場合、前記初期駆動力を減少させる
【請求項６】
請求項３記載のモータ制御方法であって、
前記駆動対象が前記一定量駆動される毎に、次の（ａ）又は（ｂ）の処理のうち少なくともいずれか一方を実行することを特徴とするモータ制御方法。
（ａ）該一定量駆動された時の前記駆動速度が予め設定した速度下限閾値より小さい場合、前記初期駆動力を増加させる
（ｂ）該一定量駆動された時の前記駆動速度が予め設定した速度上限閾値より大きい場合、前記初期駆動力を減少させる
【請求項７】
請求項４〜６のいずれかに記載のモータ制御方法であって、
前記（ａ）の処理における前記増加させる場合の増加量は、予め設定した一定の基準増加量であり、
前記（ｂ）の処理における前記減少させる場合の減少量は、予め設定した一定の基準減少量である
ことを特徴とするモータ制御方法。
【請求項８】
請求項４記載のモータ制御方法であって、
前記（ａ）の処理における前記増加させる場合の増加量は、前記駆動対象が前記一定量駆動された時の前記駆動力と前記駆動力上限閾値との差が大きくなるに従って連続的又は段階的に大きくなるように設定し、
前記（ｂ）の処理における前記減少させる場合の減少量は、前記駆動力下限閾値と前記駆動対象が前記一定量駆動された時の前記駆動力との差が大きくなるに従って連続的又は段階的に大きくなるように設定する
ことを特徴とするモータ制御方法。
【請求項９】
請求項５記載のモータ制御方法であって、
前記（ａ）の処理における前記増加させる場合の増加量は、前記駆動対象が前記一定量駆動されるのに要した時間と前記経過時間上限閾値との差が大きくなるに従って連続的又は段階的に大きくなるように設定し、
前記（ｂ）の処理における前記減少させる場合の減少量は、前記経過時間下限閾値と前記駆動対象が前記一定量駆動されるのに要した時間との差が大きくなるに従って連続的又は段階的に大きくなるように設定する
ことを特徴とするモータ制御方法。
【請求項１０】
請求項６記載のモータ制御方法であって、
前記（ａ）の処理における前記増加させる場合の増加量は、前記速度下限閾値と前記駆動対象が前記一定量駆動された時の前記駆動速度との差が大きくなるに従って連続的又は段階的に大きくなるように設定し、
前記（ｂ）の処理における前記減少させる場合の減少量は、前記駆動対象が前記一定量駆動された時の前記駆動速度と前記速度上限閾値との差が大きくなるに従って連続的又は段階的に大きくなるように設定する
ことを特徴とするモータ制御方法。
【請求項１１】
モータにより駆動される駆動対象が一定量駆動される毎に、その旨を示す駆動検知信号を出力する駆動検知手段と、
該駆動検知手段から前記駆動検知信号が出力される毎に、前記モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるための、駆動力制御信号を出力する制御手段と、
該制御手段からの前記駆動力制御信号に基づいて前記モータを回転駆動するモータ駆動手段と、
を備えたモータ制御装置であって、
前記駆動検知手段から前記駆動検知信号が出力される毎に、該出力時の前記駆動力に応じて、前記駆動対象が目標駆動速度にて駆動されるよう、前記初期駆動力を設定変更する初期駆動力変更手段を備えたこと
を特徴とするモータ制御装置。
【請求項１２】
モータにより駆動される駆動対象が一定量駆動される毎に、その旨を示す駆動検知信号を出力する駆動検知手段と、
該駆動検知手段から前記駆動検知信号が出力される毎に、前記モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるための、駆動力制御信号を出力する制御手段と、
該制御手段からの前記駆動力制御信号に基づいて前記モータを回転駆動するモータ駆動手段と、
を備えたモータ制御装置であって、
前記駆動検知手段から前記駆動検知信号が出力される毎に、該駆動検知信号が前回出力されてから今回出力されるまでの経過時間に応じて、前記駆動対象が目標駆動速度にて駆動されるよう、前記初期駆動力を設定変更する初期駆動力変更手段を備えたこと
を特徴とするモータ制御装置。
【請求項１３】
モータにより駆動される駆動対象が一定量駆動される毎に、その旨を示す駆動検知信号を出力する駆動検知手段と、
該駆動検知手段から前記駆動検知信号が出力される毎に、前記モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるための、駆動力制御信号を出力する制御手段と、
該制御手段からの前記駆動力制御信号に基づいて前記モータを回転駆動するモータ駆動手段と、
を備えたモータ制御装置であって、
前記駆動検知手段から前記駆動検知信号が出力される毎に、該出力時の前記駆動対象の駆動速度に応じて、前記駆動対象が目標駆動速度にて駆動されるよう、前記初期駆動力を設定変更する初期駆動力変更手段を備えたこと
を特徴とするモータ制御装置。
【請求項１４】
請求項１１記載のモータ制御装置であって、
前記駆動検知信号が出力される毎に、該出力時の前記駆動力が予め設定した駆動力上限閾値より大きいか否かを判断する駆動力判断手段を備え、
前記初期駆動力変更手段は、前記駆動力判断手段にて前記駆動力上限閾値より大きいと判断された場合、前記初期駆動力を増加させる
ことを特徴とするモータ制御装置。
【請求項１５】
請求項１１記載のモータ制御装置であって、
前記駆動検知信号が出力される毎に、該出力時の前記駆動力が予め設定した駆動力下限閾値より小さいか否かを判断する駆動力判断手段を備え、
前記初期駆動力変更手段は、前記駆動力判断手段にて前記駆動力下限閾値より小さいと判断された場合、前記初期駆動力を減少させる
ことを特徴とするモータ制御装置。
【請求項１６】
請求項１５記載のモータ制御装置であって、
前記駆動力判断手段は、更に、前記駆動検知信号出力時の前記駆動力が、少なくとも前記駆動力下限閾値以上である所定の駆動力上限閾値より大きいか否かを判断し、
前記初期駆動力変更手段は、前記駆動力判断手段にて前記駆動力上限閾値より大きいと判断された場合、前記初期駆動力を増加させる
ことを特徴とするモータ制御装置。
【請求項１７】
請求項１６記載のモータ制御装置であって、
前記駆動力下限閾値と前記駆動力上限閾値は相互に異なる値であり、
前記初期駆動力変更手段は、前記駆動力判断手段にて前記駆動検知信号出力時の前記駆動力が前記駆動力下限閾値以上であって且つ前記駆動力上限閾値以下である旨が判断された場合は、前記初期駆動力を、前回前記駆動検知信号が出力された時の設定値と同じ値に設定する
ことを特徴とするモータ制御装置。
【請求項１８】
請求項１２記載のモータ制御装置であって、
前記駆動検知信号が出力される毎に、前記経過時間が予め設定した経過時間上限閾値より長いか否かを判断する経過時間判断手段を備え、
前記初期駆動力変更手段は、前記経過時間判断手段にて前記経過時間上限閾値より長いと判断された場合、前記初期駆動力を増加させる
ことを特徴とするモータ制御装置。
【請求項１９】
請求項１２記載のモータ制御装置であって、
前記駆動検知信号が出力される毎に、前記経過時間が予め設定した経過時間下限閾値より短いか否かを判断する経過時間判断手段を備え、
前記初期駆動力変更手段は、前記経過時間判断手段にて前記経過時間下限閾値より短いと判断された場合、前記初期駆動力を減少させる
ことを特徴とするモータ制御装置。
【請求項２０】
請求項１９記載のモータ制御装置であって、
前記経過時間判断手段は、更に、前記経過時間が、少なくとも前記経過時間下限閾値以上である所定の経過時間上限閾値より長いか否かを判断し、
前記初期駆動力変更手段は、前記経過時間判断手段にて前記経過時間上限閾値より長いと判断された場合、前記初期駆動力を増加させる
ことを特徴とするモータ制御装置。
【請求項２１】
請求項２０記載のモータ制御装置であって、
前記経過時間下限閾値と前記経過時間上限閾値は相互に異なる値であり、
前記初期駆動力変更手段は、前記経過時間判断手段にて前記経過時間が前記経過時間下限閾値以上であって且つ前記経過時間上限閾値以下である旨が判断された場合は、前記初期駆動力を、前回前記駆動検知信号が出力された時の設定値と同じ値に設定する
ことを特徴とするモータ制御装置。
【請求項２２】
請求項１３記載のモータ制御装置であって、
前記駆動検知信号が出力される毎に、該出力時の前記駆動速度が予め設定した速度下限閾値より小さいか否かを判断する速度判断手段を備え、
前記初期駆動力変更手段は、前記速度判断手段にて前記速度下限閾値より小さいと判断された場合、前記初期駆動力を増加させる
ことを特徴とするモータ制御装置。
【請求項２３】
請求項１３記載のモータ制御装置であって、
前記駆動検知信号が出力される毎に、該出力時の前記駆動速度が予め設定した速度上限閾値より大きいか否かを判断する速度判断手段を備え、
前記初期駆動力変更手段は、前記速度判断手段にて前記速度上限閾値より大きいと判断された場合、前記初期駆動力を減少させる
ことを特徴とするモータ制御装置。
【請求項２４】
請求項２３記載のモータ制御装置であって、
前記速度判断手段は、更に、前記駆動検知信号出力時の前記駆動速度が、少なくとも前記速度上限閾値以下である所定の速度下限閾値より小さいか否かを判断し、
前記初期駆動力変更手段は、前記速度判断手段にて前記速度下限閾値より小さいと判断された場合、前記初期駆動力を増加させる
ことを特徴とするモータ制御装置。
【請求項２５】
請求項２４記載のモータ制御装置であって、
前記速度下限閾値と前記速度上限閾値は相互に異なる値であり、
前記初期駆動力変更手段は、前記速度判断手段にて前記駆動検知信号出力時の前記駆動速度が前記速度下限閾値以上であって且つ前記速度上限閾値以下である旨が判断された場合は、前記初期駆動力を、前回前記駆動検知信号が出力された時の設定値と同じ値に設定する
ことを特徴とするモータ制御装置。
【請求項２６】
請求項１４、１５、１７、１８、１９、２１、２２、２３又は２５のいずれかに記載のモータ制御装置であって、
前記初期駆動力変更手段が前記初期駆動力を増加させる場合の増加量は、予め設定した一定の基準増加量であることを特徴とするモータ制御装置。
【請求項２７】
請求項１５〜１７、請求項１９〜２１、又は請求項２３〜２５のいずれかに記載のモータ制御装置であって、
前記初期駆動力変更手段が前記初期駆動力を減少させる場合の減少量は、予め設定した一定の基準減少量であることを特徴とするモータ制御装置。
【請求項２８】
請求項１４、１５又は１７のいずれかに記載のモータ制御装置であって、
前記駆動力判断手段によって前記駆動検知信号出力時の前記駆動力が前記駆動力上限閾値より大きいと判断されたときに、該駆動力と前記駆動力上限閾値との差である第一差分値を演算する第一差分値演算手段と、
前記第一差分値に応じて前記初期駆動力の増加量を設定する増加量設定手段と、
を備え、
前記初期駆動力変更手段は、前記初期駆動力を増加させる場合、前記増加量設定手段にて設定された増加量だけ増加させる
ことを特徴とするモータ制御装置。
【請求項２９】
請求項１５〜１７のいずれかに記載のモータ制御装置であって、
前記駆動力判断手段によって前記駆動検知信号出力時の前記駆動力が前記駆動力下限閾値より小さいと判断されたときに、前記駆動力下限閾値と該駆動力との差である第二差分値を演算する第二差分値演算手段と、
前記第二差分値に応じて前記初期駆動力の減少量を設定する減少量設定手段と、
を備え、
前記初期駆動力変更手段は、前記初期駆動力を減少させる場合、前記減少量設定手段にて設定された減少量だけ減少させる
ことを特徴とするモータ制御装置。
【請求項３０】
請求項１８、１９又は２１のいずれかに記載のモータ制御装置であって、
前記経過時間判断手段によって前記経過時間が前記経過時間上限閾値より長いと判断されたときに、該経過時間と前記経過時間上限閾値との差である第一差分値を演算する第一差分値演算手段と、
前記第一差分値に応じて前記初期駆動力の増加量を設定する増加量設定手段と、
を備え、
前記初期駆動力変更手段は、前記初期駆動力を増加させる場合、前記増加量設定手段にて設定された増加量だけ増加させる
ことを特徴とするモータ制御装置。
【請求項３１】
請求項１９〜２１のいずれかに記載のモータ制御装置であって、
前記経過時間判断手段によって前記経過時間が前記経過時間下限閾値より短いと判断されたときに、前記経過時間下限閾値と該経過時間との差である第二差分値を演算する第二差分値演算手段と、
前記第二差分値に応じて前記初期駆動力の減少量を設定する減少量設定手段と、
を備え、
前記初期駆動力変更手段は、前記初期駆動力を減少させる場合、前記減少量設定手段にて設定された減少量だけ減少させる
ことを特徴とするモータ制御装置。
【請求項３２】
請求項２２、２３又は２５のいずれかに記載のモータ制御装置であって、
前記速度判断手段によって前記駆動検知信号出力時の前記駆動速度が前記速度下限閾値より小さいと判断されたときに、前記速度下限閾値と該駆動速度との差である第一差分値を演算する第一差分値演算手段と、
前記第一差分値に応じて前記初期駆動力の増加量を設定する増加量設定手段と、
を備え、
前記初期駆動力変更手段は、前記初期駆動力を増加させる場合、前記増加量設定手段にて設定された増加量だけ増加させる
ことを特徴とするモータ制御装置。
【請求項３３】
請求項２３〜２５のいずれかに記載のモータ制御装置であって、
前記速度判断手段によって前記駆動検知信号出力時の前記駆動速度が前記速度上限閾値より大きいと判断されたときに、該駆動速度と前記速度上限閾値との差である第二差分値を演算する第二差分値演算手段と、
前記第二差分値に応じて前記初期駆動力の減少量を設定する減少量設定手段と、
を備え、
前記初期駆動力変更手段は、前記初期駆動力を減少させる場合、前記減少量設定手段にて設定された減少量だけ減少させる
ことを特徴とするモータ制御装置。
【請求項３４】
請求項２８、３０又は３２のいずれかに記載のモータ制御装置であって、
前記第一差分値演算手段により演算された前記第一差分値が予め設定した第一差分閾値より大きいか否かを判断する第一差分判断手段を備え、
前記増加量設定手段は、前記第一差分判断手段によって前記第一差分値が前記第一差分閾値より大きいと判断されなかった場合に対して、該第一差分閾値より大きいと判断された場合の方が大きい値となるよう、前記増加量を設定する
ことを特徴とするモータ制御装置。
【請求項３５】
請求項２９、３１又は３３のいずれかに記載のモータ制御装置であって、
前記第二差分値演算手段により演算された前記第二差分値が予め設定した第二差分閾値より大きいか否かを判断する第二差分判断手段を備え、
前記減少量設定手段は、前記第二差分判断手段によって前記第二差分値が前記第二差分閾値より大きいと判断されなかった場合に対して、該第二差分閾値より大きいと判断された場合の方が大きい値となるよう、前記減少量を設定する
ことを特徴とするモータ制御装置。
【請求項３６】
請求項２８、３０又は３２のいずれかに記載のモータ制御装置であって、
前記増加量設定手段は、前記第一差分値演算手段により演算された前記第一差分値が大きいほど前記増加量も大きくなるように、該増加量を前記第一差分値に基づいて設定する  ことを特徴とするモータ制御装置。
【請求項３７】
請求項２９、３１又は３３のいずれかに記載のモータ制御装置であって、
前記減少量設定手段は、前記第二差分値演算手段により演算された前記第二差分値が大きいほど前記減少量も大きくなるように、該減少量を前記第二差分値に基づいて設定する  ことを特徴とするモータ制御装置。
【請求項３８】
請求項１１〜３７いずれかに記載のモータ制御装置であって、
前記初期駆動力変更手段は、前記駆動対象の駆動開始後、前記駆動検知手段から最初に前記駆動検知信号が出力された時は、前記設定変更を行わない
ことを特徴とするモータ制御装置。
【請求項３９】
請求項１１〜３８いずれかに記載のモータ制御装置であって、
前記モータ駆動手段は、入力されるＰＷＭ信号に対応した駆動力にて前記モータを回転駆動するよう構成され、
前記制御手段は、前記駆動力制御信号として、ＰＷＭデューティ値を示す前記ＰＷＭ信号を出力するよう構成され、前記駆動検知信号が出力される毎に、前記ＰＷＭデューティ値を前記初期駆動力に対応した初期ＰＷＭデューティ値から一定周期で一定量ずつ増加させる
ことを特徴とするモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの制御方法及び制御装置に関し、特に、駆動対象が一定量駆動される毎にモータの駆動力を初期値から一定周期で一定量ずつ増加させる制御に関する。
【背景技術】
【０００２】
従来より、ＤＣモータやＡＣモータの制御方法の一つとして、速度フィードバック制御や位置フィードバック制御などのいわゆる閉ループ制御方法が広く知られている。これらの閉ループ制御は、モータの回転量或いはその駆動対象の駆動量を検出するためにエンコーダ等を用い、そのエンコーダ等からの情報に基づいて上記各フィードバック制御を行うのが一般的である。
【０００３】
しかし、上記のようなエンコーダ等を用いたフィードバック制御を、微小速度で駆動対象を駆動させる場合（つまり微小速度でモータを回転させる場合）に適用すると、エンコーダ信号より演算して得られる駆動対象の速度が更新されず、対象が停止してしまうことが発生する。仮にある演算時に対象速度が目標値を上回っていた場合、制御器は駆動対象に対して減速動作となるよう制御出力を小さくするフィードバック処理が施されるが、微小速度で駆動させる場合、多くは駆動対象が移動するかしないかの小さな制御量で動作するため、フィードバックによる制御領域で完全停止に至ってしまう。一旦停止すると、エンコーダからの信号に変化が生じないため、速度を増速すべく制御出力を大きくする動作生じない。つまり、ある一定の速度以上を目標速度としない限り、制御性が崩れてしまうおそれがある。そのため、微小速度におけるフィードバック制御の適用は困難である。
【０００４】
微小速度で駆動対象を駆動させる例としては、例えばインクジェットプリンタにおいて、記録開始時に記録ヘッドの搭載されたキャリッジを初期位置に移動させて停止する場合や、記録終了後にキャリッジをホームポジションに戻して記録ヘッド（ノズル部）をキャッピングする場合などが挙げられる。このうち、記録終了後のキャッピングについて、図１６に基づいて説明する。
【０００５】
図１６は、インクジェットプリンタの記録機構の概略構成を示す説明図である。図１６に示す如く、インクジェットプリンタの記録機構１００は、ガイド軸１０１と、このガイド軸１０１に沿って往復移動可能なキャリッジ１０２と、このキャリッジ１０２に搭載される記録ヘッド１０３と、キャリッジ１０２に対してモータ１１０からの駆動力を伝達する移動ベルト１０４と、キャリッジ１０２の移動量・位置を検出するためのエンコーダ１０５と、を備えている。
【０００６】
モータ１１０（ＤＣモータ）は、ＣＰＵ１１２からの各種指令に従ってＡＳＩＣ１１１が駆動信号を出力することにより回転し、ガイド軸１０１に平行に設置された無端の移動ベルト１０４を駆動する。この駆動力がキャリッジ１０２に伝達され、キャリッジ１０２及び記録ヘッド１０３がガイド軸１０１に沿って往復移動する。キャリッジ１０２には図示しない複数色のインクタンクも各色毎に搭載されており、このインクタンクに貯留された各色のインクがそれぞれ記録ヘッド１０３のノズル部１０７から記録紙αに吐出される。
【０００７】
エンコーダ１０５は、移動検出対象（ここではキャリッジ１０２）の移動に伴って位相の異なる２種類のパルス信号を出力する周知のリニアエンコーダであって、詳細は図示しないものの、一定間隔で複数のスリットが形成されたエンコーダストリップがガイド軸１０１に沿って設置されている。そして、キャリッジ１０２の移動に伴って発生する２種類のパルス信号がＡＳＩＣ１１１に入力され、モータ１１０を制御する際の位置・速度情報などとして使用される。
【０００８】
そして、この記録機構１００は更に、記録ヘッド１０３の全てのノズル部１０７を覆ってインクの乾燥を防止するキャッピングを行うためのキャップ装置１０６を備えている。このキャップ装置１０６は、記録紙αへの記録（印字）が行われる記録領域の外側の待機領域に設けられており、外側（右側）に向かって上向きとなるように形成されたスロープ１２３と、このスロープ１２３上を移動可能なキャップ１２１と、キャップ１２１をスロープ１２３の下方に向かって引っ張るバネ１２２とを備えている。
【０００９】
一方、キャリッジ１０２は図示しないフックを備えており、キャリッジ１０２が待機領域内を矢印Ａ方向に移動すると、まずフックがキャップ１２１に引っ掛かる。そして、更にキャリッジ１０２が右端部に向かって移動すると、その移動に伴ってキャップ１２１がスロープ１２３に沿って右側に引っ張られ、ノズル部１０７が徐々にキャップ１２１に覆われていく。そして、キャリッジ１０２が右端のホームポジションに達すると、キャップ１２１がノズル部１０７を完全に覆うことになる。
【００１０】
このように、キャップ１２１がノズル部１０７を覆うキャッピングは、通常、記録紙αへの記録動作が終了して記録ヘッド１０３をホームポジションに戻すときに行われる。この場合、キャップ１２１がノズル部１０７を不完全に覆った状態になるとインクが乾燥してしまう。そのため、確実にキャッピングできるよう、記録動作が終了してキャリッジ１０２が記録領域から待機領域に入ってきたときに、一旦キャリッジ１０２を停止させ、その後微小速度でホームポジションまで移動させるようにしている。
【００１１】
尚、記録動作の開始時には、キャリッジ１０２をホームポジションから間隙調整領域まで移動させてその左端に当接させた後、所定距離だけ矢印Ａ方向に移動させて（戻して）一旦停止させることにより、記録開始の初期位置にセットするようにしている。その際も、キャリッジ１０２が間隙調整領域の左端に当接する勢いを抑制し、且つ、記録開始の初期位置セットを正確に行うために、その記録動作開始時には間隙調整領域では微小速度でキャリッジ１０２を移動させるようにしている。
【００１２】
尚、間隙調整領域は、図示しない間隙調整装置を動作させることが可能な領域であり、この間隙調整装置を動作させることにより、記録ヘッド１０３のノズル部１０７と記録紙αとの間隙（ギャップ）を調整することができるのである。
【００１３】
上記のインクジェットプリンタにおけるキャリッジ１０２の微小速度での駆動のように、モータが駆動対象を微小速度で駆動させる場合は、既述の通り、フィードバック制御を適用すると種々の問題が生じるおそれがある。
【００１４】
そこで、例えばＤＣモータを微小速度で制御する方法として、エンコーダからのパルス信号のエッジ（以下「エンコーダエッジ」という）が検出される毎に、ＤＣモータに与える駆動力を初期値から一定周期で一定量ずつ増加させていく方法が知られている。具体的には、ＤＣモータの通電電流をＰＷＭ制御によって制御するよう構成し、そのＰＷＭデューティ値（以下単に「ＰＷＭ値」という）を、エンコーダエッジ検出毎に初期値から一定周期で一定量ずつ増加させる方法である（例えば、特許文献１参照。）。
【００１５】
この制御方法を用いたＤＣモータの制御例を、図１７に基づいて説明する。図１７（ａ）は、ＤＣモータにより駆動される駆動対象を微小速度で駆動しながらある位置で減速を開始し、更に制動を開始して最終的に停止するまでの制御例である。このモータ制御が開始されると、ＰＷＭ値が予め設定した駆動開始時のＰＷＭ値（ｓｔａｒｔ＿ｐｗｍ１）に設定され、一定周期で一定量ずつ増加していく。
【００１６】
この増加の様子は、詳細には図１８に示す通りであり、エンコーダエッジが検出される毎に、即ち、エンコーダエッジ検出信号が出力される毎に、ＰＷＭ値（ｐｗｍ＿ｏｕｔ）がｓｔａｒｔ＿ｐｗｍ１にリセットされ、その後、一定周期Ｔｐ毎に、一定の駆動時ＰＷＭ増分値（ａｃｃｅｌ＿ｐａｒａｍ）ずつ増加していく。なお、ＰＷＭ値が更新される一定周期であるＰＷＭ値更新間隔Ｔｐは、詳細には、次式Ｔｐ＝ｐｗｍ＿ｐｅｒｉｏｄ＊（ｐｗｍ＿ｒｅｌｏａｄ＿ｃｏｕｎｔ＋１）で表される。ここで、ｐｗｍ＿ｐｅｒｉｏｄはＰＷＭ信号の周期であり、ｐｗｍ＿ｒｅｌｏａｄ＿ｃｏｕｎｔは、ＰＷＭ値がリセットされた後、再び更新されるまでの間に出力されるＰＷＭパルスの数を示す定加算タイミングである。
【００１７】
再び図１７（ａ）に戻って、上記の通り、ＰＷＭ値はｓｔａｒｔ＿ｐｗｍ１から一定周期Ｔｐで一定量（ａｃｃｅｌ＿ｐａｒａｍ）ずつ増加していくが、本例ではＰＷＭ値の上限値（ｐｗｍ＿ｌｉｍｉｔ）が設定され、これを越えることがないようにされているため、ＰＷＭ値がｐｗｍ＿ｌｉｍｉｔに到達するとそのままｐｗｍ＿ｌｉｍｉｔに維持される。そして、エンコーダエッジが検出されると、ＰＷＭ値はｓｔａｒｔ＿ｐｗｍ１にリセットされ、再び一定周期Ｔｐ毎に一定量ａｃｃｅｌ＿ｐａｒａｍずつ増加していくことになる。
【００１８】
そして、エンコーダエッジ検出時の駆動対象の位置が減速開始位置（ｄｅｃｅｌ＿ｐｏｓ）であったならば、ＰＷＭ値をｓｔａｒｔ＿ｐｗｍ１ではなく減速開始時ＰＷＭ値であるｓｔａｒｔ＿ｐｗｍ２にセットする。その後、図１８と同じ要領（但し一定周期毎にＰＷＭ値は減少）でＰＷＭ値が減少していき、所定の制動開始条件が成立すると、制動が開始される。
【００１９】
制動の開始時は、ＰＷＭ値が制動開始時ＰＷＭ値であるｓｔａｒｔ＿ｐｗｍ３にセットされ、その後、一定周期で一定量ずつＰＷＭ値が低下していき、プレーキ時ＰＷＭ出力値であるｓｔｏｐ＿ｐｗｍとなった後はそのＰＷＭ値を維持する。
【００２０】
ここで、通常の駆動時や減速時のようにＰＷＭ値が正（＋）の値のときは、ＤＣモータへの通電電流がそのＰＷＭ値に応じたデューティ比にてオン・オフされる。一方、ＰＷＭ値が負（−）の場合は、ＤＣモータの短絡回路が形成されると共にその短絡回路の導通・遮断がそのＰＷＭ値に応じたデューティ比にてなされることを示している。つまり、ＰＷＭ値が負の領域で小さくなっていくに従い、ＤＣモータ短絡回路の導通比率が大きくなって制動力も上昇していき、ｓｔｏｐ＿ｐｗｍとなったときに常時短絡された状態となり、制動力も最大となる。
【００２１】
上記のようなＤＣモータ制御方法によれば、駆動対象の駆動速度が上昇すると、エンコーダエッジ検出間隔も短くなって、駆動力（ＰＷＭ値）が十分に増加しないうちに再び初期値ｓｔａｒｔ＿ｐｗｍ１にリセットされる。つまり、速度が上昇すると必然的にモータの駆動力も低下していくような制御であるため、全体としてオープン制御ではあるものの、ある程度の安定した制御が実現されているのである。
【００２２】
そのため、図１６で説明したインクジェットプリンタの記録機構１００におけるモータ１１０においても、キャッピング動作時などのように微小速度で駆動・制御する場合は、上記のような、エンコーダエッジ検出毎にＰＷＭ値を初期値から一定周期で一定量ずつ増加させていくような制御方法が採用されている。
【特許文献１】特開２００３−７９１８９号公報（図３）
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、図１７（ａ）で説明したような、エンコーダエッジ検出毎にＰＷＭ値を一定の初期値（ｓｔａｒｔ＿ｐｗｍ１）にリセットする制御方法だと、ＤＣモータの負荷が変動したときに安定した動作（駆動）ができなくなるおそれがあった。
【００２４】
即ち、例えばＤＣモータの負荷が大きくなると、図１７（ｂ）に示すように、減速開始位置に到達するまでに要する時間が長くなってしまうおそれがある。図１７（ｂ）は、時刻ｔ１にてＤＣモータの負荷が増加し始める場合を示しており、図示の如く、時刻ｔ１以降はエンコーダエッジ検出間隔が長くなってくる。即ち、負荷が増加しているにも拘わらず、エンコーダエッジ検出毎にＰＷＭ値が初期値ｓｔａｒｔ＿ｐｗｍ１にリセットされてしまうため、必要なトルクを発生させるまでの時間が長くなり、結果として駆動対象の駆動速度が遅くなってしまうのである。
負荷の増加がさらに大きくなると、エンコーダエッジ検出毎に駆動対象が停止→駆動を繰り返すようになるおそれもあり、そうなると、振動や異音などの不具合が発生してしまう。
【００２５】
このようにＤＣモータの負荷が変化（増加）する場合の一例として、図１６で説明したインクジェットプリンタの記録機構１００におけるキャッピング動作時が挙げられる。既述の通り、記録機構１００におけるキャッピングは、キャリッジ１０２がホームポジションに戻る際にキャップ１２１をスロープ１２３に沿って右側に引っ張っていくことにより行われる。つまり、キャリッジ１０２がホームポジションに戻っていくにつれて、ＤＣモータにはバネ１２２に起因して負荷の増加が生じるのである。そのため、記録終了からキャッピング動作完了までの時間が長くなったり、キャッピング中に振動や異音が発生したり、場合によってはホームポジションに到達する前にキャリッジ１０２が停止してキャッピングが不完全になってしまうなどのおそれがある。
【００２６】
逆に、ＤＣモータ負荷の変動として、図１７（ｂ）とは逆に負荷が小さくなることも考えられる。その場合、エンコーダエッジの検出間隔は早くなるためＰＷＭ値は過度に上昇するおそれはないが、負荷が小さいにも拘わらず常にｓｔａｒｔ＿ｐｗｍ１以上のＰＷＭ値によってＤＣモータが制御されているため、ある一定速度以下に制御することが不可能となることが考えられる。そして、あまりにも負荷が軽すぎると、停止目標位置を過ぎて停止するなどの停止精度の悪化が生じる可能性がある。
【００２７】
本発明は上記課題に鑑みなされたものであり、モータにより駆動される駆動対象が一定量駆動される毎にモータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるモータ制御を行うにあたり、モータ負荷の増加或いは減少等の変動があっても安定して駆動対象を駆動することが可能なモータ制御方法及び制御装置を提供することを目的とする。
【課題を解決するための手段】
【００２８】
上記課題を解決するためになされた請求項１記載の発明は、モータにより駆動される駆動対象が一定量駆動される毎に、前記モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるモータ制御方法であって、駆動対象が一定量駆動される毎に、該一定量駆動された時のモータの駆動力に応じて、駆動対象が目標駆動速度にて駆動されるよう、初期駆動力を設定変更する。
【００２９】
即ち、駆動対象の一定量駆動後、モータの駆動力（モータに与えられる、駆動対象を駆動するための駆動力）が初期駆動力から一定周期で一定量ずつ増加していくと、次にまた駆動対象が一定量駆動されたときは、その一定量駆動されるのに要した時間が上記一定周期より短くない限り、モータの駆動力は当然ながら初期駆動力より増加していることになる。そこで、一定量駆動される毎にそのときのモータの駆動力を再び初期駆動力に設定するのである。
【００３０】
そして、本発明では、上記一定量駆動毎に毎回一定の初期駆動力にするのではなく、その一定量駆動されたときのモータの駆動力に応じて、初期駆動力を設定変更するのである。例えば、モータ負荷が大きくて駆動対象の駆動速度が遅い場合は、一定量駆動するのに要する時間も長くなり、その間、駆動力は一定周期で一定量ずつ増加していく。つまり、駆動速度が遅いほど、一定量駆動したときのモータの駆動力は大きくなっていることになる。一方、例えばモータ負荷が小さくて駆動対象の駆動速度が速い場合は、一定量駆動するのに要する時間は短くなる。つまり、駆動速度が速いほど、一定量駆動したときのモータの駆動力は小さいことになる。
【００３１】
そのため、例えば、一定量駆動した時のモータの駆動力が大きい（つまり速度が遅い）ほど初期駆動力を大きくするといったように、駆動対象が目標駆動速度にて駆動されるように初期駆動力を設定変更するのである。
【００３２】
従って、本発明（請求項１）のモータ制御方法によれば、駆動対象が一定量駆動する毎に、そのときのモータの駆動力に応じて初期駆動力を設定変更するため、モータ負荷の増加或いは減少等の変動が生じても安定して駆動対象を駆動することが可能となる。
【００３３】
尚、本発明でいう「モータ」とは、例えばＤＣモータ或いはＡＣモータであってもよく、ステップモータのように矩形パルスによってステップ状に駆動されるモータを除き、種々のモータを含むものとする。
【００３４】
そしてこの場合、初期駆動力の設定変更は、具体的には、例えば請求項４に記載のように、駆動対象が一定量駆動された時のモータの駆動力が予め設定した駆動力上限閾値より大きい場合に初期駆動力を増加させるか、若しくは、駆動対象が一定量駆動された時のモータの駆動力が予め設定した駆動力下限閾値より小さい場合に初期駆動力を減少させるか、の少なくともいずれか一方を実行するようにしてもよい。
【００３５】
このようにすれば、モータの負荷が大きい等の原因によって駆動対象の駆動速度が遅い場合は初期駆動力を増加させ、逆にモータ負荷が小さい等の原因によって駆動対象の駆動速度が速い場合は初期駆動力を減少させることができるため、モータ負荷の変動によらず、より安定して駆動対象を駆動することが可能となる。
【００３６】
そして、初期駆動力を上記条件に従って増加或いは減少させる際の具体的方法としては、例えば請求項７に記載のように、初期駆動力を増加させる場合は予め設定した一定の基準増加量だけ増加させ、減少させる場合は予め設定した一定の基準減少量だけ減少させるようにしてもよい。このように増加量を一定にすれば、初期駆動力の設定変更をより簡易的に行うことが可能となる。
【００３７】
また例えば、請求項８に記載のように、初期駆動力を増加させる場合は、駆動対象が一定量駆動された時のモータの駆動力と駆動力上限閾値との差が大きくなるに従って連続的又は段階的に大きくなるように増加量を設定し、初期駆動力を減少させる場合は、駆動力下限閾値と駆動対象が一定量駆動された時の駆動力との差が大きくなるに従って連続的又は段階的に大きくなるように設定するようにしてもよい。このようにすれば、そのときの駆動速度に応じたきめ細かな初期駆動力の設定変更が可能となり、駆動対象をより早く所望の速度（目標駆動速度）にすることが可能となる。
【００３８】
次に、請求項２記載の発明は、モータにより駆動される駆動対象が一定量駆動される毎に、前記モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるモータ制御方法であって、駆動対象が一定量駆動される毎に、該一定量駆動されるのに要した時間に応じて、駆動対象が目標駆動速度にて駆動されるよう、初期駆動力を設定変更する。
【００３９】
即ち、請求項１記載の発明が、駆動対象が一定量駆動されたときのモータの駆動力に応じて初期駆動力を設定変更したのに対し、本発明（請求項２）では、上記一定量駆動されるまでに要した時間（経過時間）に応じて初期駆動力を設定変更するのである。経過時間が長いほど駆動速度が遅いということであるため、この経過時間に応じて初期駆動力を設定すれば、請求項１と同様の効果が得られる。
【００４０】
そしてこの場合、初期駆動力の設定変更は、具体的には、例えば請求項５に記載のように、駆動対象が一定量駆動されるのに要した時間が予め設定した経過時間上限閾値より長い場合に初期駆動力を増加させか、若しくは、駆動対象が一定量駆動されるのに要した時間が予め設定した経過時間下限閾値より短い場合に初期駆動力を減少させるか、の少なくともいずれか一方を実行するようにしてもよい。このようにすれば、モータ負荷の変動によらず、より安定して駆動対象を駆動することが可能となる。
【００４１】
そして、初期駆動力を上記条件に従って増加或いは減少させる際の具体的方法としては、例えば既述の請求項７に記載したように行ってもよいし、また例えば、請求項９記載のように、初期駆動力を増加させる場合は、駆動対象が一定量駆動されるのに要した時間と経過時間上限閾値との差が大きくなるに従って連続的又は段階的に大きくなるように増加量を設定し、初期駆動力を減少させる場合は、経過時間下限閾値と駆動対象が一定量駆動されるのに要した時間との差が大きくなるに従って連続的又は段階的に大きくなるように減少量を設定するようにしてもよい。このようにすれば、そのときの駆動速度に応じたきめ細かな初期駆動力の設定変更が可能となり、駆動対象をより早く所望の速度（目標駆動速度）にすることが可能となる。
【００４２】
次に、請求項３記載の発明は、モータにより駆動される駆動対象が一定量駆動される毎に、前記モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるモータ制御方法であって、駆動対象が一定量駆動される毎に、該一定量駆動された時の駆動対象の駆動速度に応じて、駆動対象が目標駆動速度にて駆動されるよう初期駆動力を設定変更する。このようにすれば、駆動対象の一定量駆動毎にそのときの駆動速度がわかるため、この駆動速度に応じて初期駆動力を設定すれば、請求項１と同様の効果が得られる。
【００４３】
そしてこの場合、初期駆動力の設定変更は、具体的には、例えば請求項６に記載のように、駆動対象が一定量駆動された時の駆動速度が予め設定した速度下限閾値より小さい場合に初期駆動力を増加させるか、若しくは、駆動対象が一定量駆動された時の駆動速度が予め設定した速度上限閾値より大きい場合に初期駆動力を減少させるか、の少なくともいずれか一方を実行するようにしてもよい。このようにすれば、モータ負荷の変動によらず、より安定して駆動対象を駆動することが可能となる。
【００４４】
そして、初期駆動力を上記条件に従って増加或いは減少させる際の具体的方法としては、例えば既述の請求項７に記載したように行ってもよいし、また例えば、請求項１０記載のように、初期駆動力を増加させる場合は、速度下限閾値と、駆動対象が一定量駆動された時の駆動速度との差が大きくなるに従って連続的又は段階的に大きくなるように増加量を設定し、駆動対象が一定量駆動された時の駆動速度と速度上限閾値との差が大きくなるに従って連続的又は段階的に大きくなるように減少量を設定するようにしてもよい。このようにすれば、そのときの駆動速度に応じたきめ細かな初期駆動力の設定変更が可能となり、駆動対象をより早く所望の速度（目標駆動速度）にすることが可能となる。
【００４５】
次に、請求項１１記載の発明は、モータにより駆動される駆動対象が一定量駆動される毎にその旨を示す駆動検知信号を出力する駆動検知手段と、該駆動検知手段から駆動検知信号が出力される毎に、モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるための駆動力制御信号を出力する制御手段と、該制御手段からの駆動力制御信号に基づいてモータを回転駆動するモータ駆動手段と、を備えたモータ制御装置である。そして、初期駆動力変更手段が、駆動検知手段から駆動検知信号が出力される毎、つまり駆動対象が一定量駆動される毎に、該出力時のモータの駆動力に応じて、駆動対象が目標駆動速度にて駆動されるように初期駆動力を設定変更する。
【００４６】
このように構成された本発明（請求項１１）のモータ制御装置によれば、請求項１記載のモータ制御方法が実現され、請求項１と同様、モータ負荷の増加或いは減少等の変動が生じても安定して駆動対象を駆動することが可能となる。
【００４７】
尚、駆動検知手段は、駆動対象が一定量駆動されるのを直接みて駆動検知信号を出力するように構成されたものに限らず、例えばモータの回転量、或いはモータの回転によって直接的若しくは間接的に駆動されるものの駆動量に基づいて、駆動対象が一定量駆動されたか否か判断し駆動検知信号を出力するように構成されたものであってもよく、結果として駆動対象が一定量駆動する毎に駆動検知信号を出力できる構成であればよい。
【００４８】
そしてこの場合、更に、例えば請求項１４に記載のように、駆動検知手段から駆動検知信号が出力される毎に該出力時のモータの駆動力が予め設定した駆動力上限閾値より大きいか否かを判断する駆動力判断手段を備え、初期駆動力変更手段は、この駆動力判断手段にてモータ駆動力が駆動力上限閾値より大きいと判断された場合に初期駆動力を増加させるようにしてもよい。
【００４９】
また例えば、請求項１５に記載のように、駆動検知手段から駆動検知信号が出力される毎に該出力時のモータの駆動力が予め設定した駆動力下限閾値より小さいか否かを判断する駆動力判断手段を備え、初期駆動力変更手段は、この駆動力判断手段にてモータ駆動力が駆動力下限閾値より小さいと判断された場合に初期駆動力を減少させるようにしてもよい。
【００５０】
また例えば、請求項１６に記載のように、駆動力判断手段は、駆動検知信号出力時のモータの駆動力が駆動力下限閾値より小さいか否かを判断すると共にその駆動力下限値以上である駆動力上限閾値より大きいか否かも判断し、初期駆動力変更手段は、駆動力判断手段にてモータ駆動力が駆動力下限閾値より小さいと判断された場合は初期駆動力を減少させ、駆動力上限閾値より大きいと判断された場合は初期駆動力を増加させるようにしてもよい。
【００５１】
上記のように構成された請求項１４〜１６いずれかに記載のモータ制御装置によれば、請求項４記載のモータ制御方法を実現でき、請求項４と同様、モータ負荷の変動によらず、より安定して駆動対象を駆動することが可能となる。
【００５２】
そして、駆動力判断手段が駆動力上限閾値及び駆動力下限閾値の両方に基づく判断を行うよう構成された請求項１６記載のモータ制御装置は、更に、例えば請求項１７に記載のように、駆動力下限閾値と駆動力上限閾値は相互に異なる値であって、初期駆動力変更手段が、駆動検知信号出力時のモータの駆動力が駆動力下限閾値以上であって且つ駆動力上限閾値以下である旨が駆動力判断手段によって判断された場合、初期駆動力を、前回駆動検知信号が出力された時の設定値と同じ値に設定するよう構成されたものであってもよい。
【００５３】
このように構成されたモータ制御装置によれば、駆動力下限閾値と駆動力上限閾値との間に幅を持たせることで、初期駆動力を増加させる場合と、減少させる場合と、変更しない場合とをそれぞれ任意に設定することができるため、駆動対象の安定駆動を維持しつつ、初期駆動力の設定変更条件をよりフレキシブルに設定することが可能となり、制御の自由度が広がる。
【００５４】
ここで、請求項１４、１５又は１７のいずれかに記載のモータ制御装置は、例えば請求項２６に記載のように、初期駆動力変更手段が初期駆動力を増加させる場合の増加量は予め設定した一定の基準増加量であってもよく、このように構成されたモータ制御装置によれば、初期駆動力の設定変更をより簡易的に行うことが可能となる。
【００５５】
また、請求項１４、１５又は１７のいずれかに記載のモータ制御装置は、例えば請求項２８に記載のように、駆動力判断手段によって駆動検知信号出力時のモータの駆動力が駆動力上限閾値より大きいと判断されたときに、該駆動力と駆動力上限閾値との差である第一差分値を演算する第一差分値演算手段と、その第一差分値に応じて初期駆動力の増加量を設定する増加量設定手段と、を備え、初期駆動力変更手段は、初期駆動力を増加させる場合、増加量設定手段にて設定された増加量だけ増加させるように構成してもよい。
【００５６】
つまり、駆動検知信号出力時のモータの駆動力が駆動力上限閾値よりどれだけ大きいかによって初期駆動力の増加量を設定するのである。このようにすれば、そのときの駆動対象の駆動速度に応じたきめ細かな初期駆動力の設定変更が可能となり、駆動対象をより早く所望の速度（目標駆動速度）にすることが可能となる。
【００５７】
そして、このように第一差分値に応じて初期駆動力の増加量を設定する場合、より具体的には、例えば請求項３４に記載のように、その第一差分値が予め設定した第一差分閾値より大きいか否かを判断する第一差分判断手段を備え、増加量設定手段は、初期駆動力の増加量を、第一差分判断手段によって第一差分値が第一差分閾値より大きいと判断されなかった場合に対して第一差分閾値より大きいと判断された場合の方が大きい値となるように設定するようにしてもよいし、また例えば、請求項３６に記載のように、増加量設定手段は、第一差分値が大きいほど初期駆動力の増加量も大きくなるように、該増加量を第一差分値に基づいて設定するようにしてもよい。
【００５８】
前者（請求項３４）の場合、第一差分値が第一差分閾値より大きい場合は、小さい場合に比べて駆動対象の駆動速度が遅いということであるため、小さい場合よりも初期駆動力の増加量を大きく設定するのである。つまり、第一差分値の大きさに応じて増加量を段階的に大きくしていくのである。後者（請求項３６）の場合は、第一差分値に従って初期駆動力の増加量を連続的に変化させていくものであり、例えば第一差分値に比例して増加量が大きくなるように設定するといったことが可能となる。
【００５９】
一方、請求項１５〜１７いずれかに記載のモータ制御装置は、例えば請求項２９に記載のように、駆動力判断手段によって駆動検知信号出力時のモータの駆動力が駆動力下限閾値より小さいと判断されたときに、駆動力下限閾値と該駆動力との差である第二差分値を演算する第二差分値演算手段と、その第二差分値に応じて初期駆動力の減少量を設定する減少量設定手段と、を備え、初期駆動力変更手段は、初期駆動力を減少させる場合、減少量設定手段にて設定された減少量だけ減少させるように構成してもよい。
【００６０】
つまり、駆動検知信号出力時のモータの駆動力が駆動力下限閾値よりどれだけ小さいかによって初期駆動力の減少量を設定するのである。このようにすれば、請求項２８と同様、そのときの駆動対象の駆動速度に応じたきめ細かな初期駆動力の設定変更が可能となり、駆動対象をより早く所望の速度（目標駆動速度）にすることが可能となる。
【００６１】
そして、このように第二差分値に応じて初期駆動力の減少量を設定する場合、より具体的には、例えば請求項３５に記載のように、その第二差分値が予め設定した第二差分閾値より大きいか否かを判断する第二差分判断手段を備え、減少量設定手段は、初期駆動力の減少量を、第二差分判断手段によって第二差分値が第二差分閾値より小さいと判断されなかった場合に対して第二差分閾値より大きいと判断された場合の方が大きい値となるように設定するようにしてもよいし、また例えば、請求項３７に記載のように、減少量設定手段は、第二差分値が大きいほど初期駆動力の減少量も大きくなるように、該減少量を第二差分値に基づいて設定するようにしてもよい。
【００６２】
前者（請求項３５）の場合、第二差分値が第二差分閾値より大きい場合は、小さい場合に比べて駆動対象の駆動速度が速いということであるため、小さい場合よりも、初期駆動力の減少量を大きく設定するのである。つまり、第二差分値の大きさに応じて減少量を段階的に大きくしていくのである。後者（請求項３７）の場合は、第二差分値に従って初期駆動力の減少量を連続的に変化させていくものであり、例えば第二差分値に比例して減少量が大きくなるように設定するといったことが可能となる。
【００６３】
次に、請求項１２記載のモータ制御装置は、モータにより駆動される駆動対象が一定量駆動される毎にその旨を示す駆動検知信号を出力する駆動検知手段と、該駆動検知手段から駆動検知信号が出力される毎に、モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるための駆動力制御信号を出力する制御手段と、該制御手段からの駆動力制御信号に基づいて前記モータを回転駆動するモータ駆動手段と、を備えたモータ制御装置である。そして、初期駆動力変更手段が、駆動検知手段から駆動検知信号が出力される毎、つまり駆動対象が一定量駆動される毎に、該駆動検知信号が前回出力されてから今回出力されるまでの経過時間（つまり一定量駆動されるのに要した時間）に応じて、駆動対象が目標駆動速度にて駆動されるように初期駆動力を設定変更する。
【００６４】
このように構成されたモータ制御装置によれば、請求項２記載のモータ制御方法が実現され、請求項２と同様、モータ負荷の増加或いは減少等の変動が生じても安定して駆動対象を駆動することが可能となる。
【００６５】
そしてこの場合、更に、例えば請求項１８に記載のように、駆動検知信号が出力される毎に上記経過時間が予め設定した経過時間上限閾値より長いか否かを判断する経過時間判断手段を備え、初期駆動力変更手段は、この経過時間判断手段にて上記経過時間が経過時間上限閾値より長いと判断された場合に初期駆動力を増加させるようにしてもよい。
【００６６】
また例えば、請求項１９に記載のように、駆動検知信号が出力される毎に上記経過時間が予め設定した経過時間下限閾値より短いか否かを判断する経過時間判断手段を備え、初期駆動力変更手段は、この経過時間判断手段にて上記経過時間が経過時間下限閾値より短いと判断された場合に初期駆動力を減少させるようにしてもよい。
【００６７】
また例えば、請求項２０に記載のように、
経過時間判断手段は、上記経過時間が経過時間下限閾値より短い下否かを判断すると共にその経過時間下限閾値以上である経過時間上限閾値より長いか否かも判断し、初期駆動力変更手段は、経過時間判断手段にて上記経過時間が経過時間下限閾値より短いと判断された場合は初期駆動力を減少させ、経過時間上限閾値より長いと判断された場合は初期駆動力を増加させるようにしてもよい。
【００６８】
上記のように構成された請求項１８〜２０いずれかに記載のモータ制御装置によれば、請求項５記載のモータ制御方法を実現でき、請求項５と同様、モータ負荷の変動によらず、より安定して駆動対象を駆動することが可能となる。
【００６９】
そして、経過時間判断手段が経過時間上限閾値及び経過時間下限閾値の両方に基づく判断を行うよう構成された請求項２０記載のモータ制御装置は、更に、例えば請求項２１に記載のように、経過時間下限閾値と経過時間上限閾値は相互に異なる値であって、初期駆動力変更手段が、上記経過時間が経過時間下限閾値以上であって且つ経過時間上限閾値以下である旨が経過時間判断手段にて判断された場合、初期駆動力を、前回駆動検知信号が出力された時の設定値と同じ値に設定するように構成されたものであってもよい。
【００７０】
このように構成されたモータ制御装置によれば、経過時間下限閾値と経過時間上限閾値との間に幅を持たせることで、初期駆動力を増加させる場合と、減少させる場合と、変更しない場合とをそれぞれ任意に設定することができるため、駆動対象の安定駆動を維持しつつ、初期駆動力の設定変更条件をよりフレキシブルに設定することが可能となり、制御の自由度が広がる。
【００７１】
ここで、請求項１８，１９又は２１のいずれかに記載のモータ制御装置についても、上述した請求項２６に記載のように初期駆動力変更手段が初期駆動力を増加させる場合の増加量は予め設定した一定の基準増加量であってもよい。
【００７２】
また、請求項１８，１９又は２１のいずれかに記載のモータ制御装置は、例えば請求項３０に記載のように、経過時間判断手段によって上記経過時間が経過時間上限閾値より長いと判断されたときに、該経過時間と経過時間上限閾値との差である第一差分値を演算する第一差分値演算手段と、その第一差分値に応じて初期駆動力の増加量を設定する増加量設定手段と、を備え、初期駆動力変更手段は、初期駆動力を増加させる場合、増加量設定手段にて設定された増加量だけ増加させるように構成してもよい。
【００７３】
つまり、前回駆動検知信号が出力されてから今回出力されるまでの経過時間が経過時間上限閾値よりどれだけ大きいかによって初期駆動力の増加量を設定するのである。このようにすれば、そのときの駆動対象の駆動速度に応じたきめ細かな初期駆動力の設定変更が可能となり、駆動対象をより早く所望の速度（目標駆動速度）にすることが可能となる。そして、このように経過時間上限閾値との差である第一差分値に応じて初期駆動力の増加量を設定する場合についても、より具体的には、既述の請求項３４又は請求項３６に記載のように構成してもよい。
【００７４】
一方、請求項１９〜２１のいずれかに記載のモータ制御装置は、例えば請求項３１に記載のように、経過時間判断手段によって上記経過時間が経過時間下限閾値より短いと判断されたときに、経過時間下限閾値と該経過時間との差である第二差分値を演算する第二差分値演算手段と、第二差分値に応じて初期駆動力の減少量を設定する減少量設定手段と、を備え、初期駆動力変更手段は、初期駆動力を減少させる場合、減少量設定手段にて設定された減少量だけ減少させるように構成してもよい。
【００７５】
つまり、前回駆動検知信号が出力されてから今回出力されるまでの経過時間が経過時間下限閾値よりどれだけ短いかによって初期駆動力の減少量を設定するのである。このようにすれば、そのときの駆動対象の駆動速度に応じたきめ細かな初期駆動力の設定変更が可能となり、駆動対象をより早く所望の速度（目標駆動速度）にすることが可能となる。そして、このように経過時間下限閾値との差である第二差分値に応じて初期駆動力の減少量を設定する場合についても、より具体的には、既述の請求項３５又は請求項３７に記載のように構成してもよい。
【００７６】
次に、請求項１３記載の発明は、モータにより駆動される駆動対象が一定量駆動される毎にその旨を示す駆動検知信号を出力する駆動検知手段と、該駆動検知手段から駆動検知信号が出力される毎に、モータの駆動力を予め設定した初期駆動力から一定周期で一定量ずつ増加させるための駆動力制御信号を出力する制御手段と、該制御手段からの駆動力制御信号に基づいてモータを回転駆動するモータ駆動手段と、を備えたモータ制御装置である。そして、初期駆動力変更手段が、駆動検知手段から駆動検知信号が出力される毎、つまり駆動対象が一定量駆動される毎に、該出力時の駆動対象の駆動速度に応じて、駆動対象が目標駆動速度にて駆動されるように初期駆動力を設定変更する。
【００７７】
このように構成された請求項１３記載のモータ制御装置によれば、請求項３記載のモータ制御方法が実現され、請求項３と同様、モータ負荷の増加或いは減少等の変動が生じても安定して駆動対象を駆動することが可能となる。
【００７８】
そしてこの場合、更に、例えば請求項２２に記載のように、駆動検知信号が出力される毎に該出力時の駆動対象の駆動速度が予め設定した速度下限閾値より小さいか否かを判断する速度判断手段を備え、初期駆動力変更手段は、この速度判断手段にて駆動速度が速度下限閾値より小さいと判断された場合に初期駆動力を増加させるようにしてもよい。
【００７９】
また例えば、請求項２３に記載のように、駆動検知信号が出力される毎に該出力時の駆動速度が予め設定した速度上限閾値より大きいか否かを判断する速度判断手段を備え、初期駆動力変更手段は、この速度判断手段にて駆動対象の駆動速度が速度上限閾値より大きいと判断された場合に前記初期駆動力を減少させるようにしてもよい。
【００８０】
また例えば、請求項２４に記載のように、速度判断手段は、駆動検知信号出力時の駆動対象の駆動速度が速度上限閾値より大きいか否かを判断すると共にその速度上限閾値以下である速度下限閾値より小さいか否かも判断し、初期駆動力変更手段は、速度判断手段にて駆動対象の駆動速度が速度下限閾値より小さいと判断された場合は初期駆動力を増加させ、速度上限閾値より大きいと判断された場合は初期駆動力を減少させるようにしてもよい。
【００８１】
上記のように構成された請求項２２〜２４いずれかに記載のモータ制御装置によれば、請求項６記載のモータ制御方法を実現でき、請求項６と同様、モータ負荷の変動によらず、より安定して駆動対象を駆動することが可能となる。
【００８２】
そして、速度判断手段が速度上限閾値及び速度下限閾値の両方に基づく判断を行うよう構成された請求項２４記載のモータ制御装置は、更に、例えば請求項２５に記載のように、速度下限閾値と速度上限閾値は相互に異なる値であって、初期駆動力変更手段は、駆動検知信号出力時の駆動速度が速度下限閾値以上であって且つ速度上限閾値以下である旨が速度判断手段にて判断された場合は、初期駆動力を、前回駆動検知信号が出力された時の設定値と同じ値に設定するように構成されたものであってもよい。
【００８３】
このように構成されたモータ制御装置によれば、速度下限閾値と速度上限閾値との間に幅を持たせることで、初期駆動力を増加させる場合と、減少させる場合と、変更しない場合とをそれぞれ任意に設定することができるため、駆動対象の安定駆動を維持しつつ、初期駆動力の設定変更条件をよりフレキシブルに設定することが可能となり、制御の自由度が広がる。
【００８４】
ここで、請求項２２，２３又は２５のいずれかに記載のモータ制御装置についても、上述した請求項２６に記載のように初期駆動力変更手段が初期駆動力を増加させる場合の増加量は予め設定した一定の基準増加量であってもよい。
【００８５】
また、請求項２２，２３又は２５のいずれかに記載のモータ制御装置は、例えば請求項３２に記載のように、速度判断手段によって駆動検知信号出力時の駆動速度が速度下限閾値より小さいと判断されたときに、速度下限閾値と該駆動速度との差である第一差分値を演算する第一差分値演算手段と、その第一差分値に応じて初期駆動力の増加量を設定する増加量設定手段と、を備え、初期駆動力変更手段は、初期駆動力を増加させる場合、増加量設定手段にて設定された増加量だけ増加させるように構成してもよい。
【００８６】
つまり、駆動検知信号検出時の駆動速度が速度下限閾値よりどれだけ小さいかによって初期駆動力の増加量を設定するのである。このようにすれば、そのときの駆動対象の駆動速度に応じたきめ細かな初期駆動力の設定変更が可能となり、駆動対象をより早く所望の速度（目標駆動速度）にすることが可能となる。そして、このように速度下限閾値との差である第一差分値に応じて初期駆動力の増加量を設定する場合についても、より具体的には、既述の請求項３４又は請求項３６に記載のように構成してもよい。
【００８７】
一方、請求項２３〜２５のいずれかに記載のモータ制御装置は、例えば請求項３３に記載のように、速度判断手段によって駆動対象の駆動速度が速度上限閾値より大きいと判断されたときに、該駆動速度と速度上限閾値との差である第二差分値を演算する第二差分値演算手段と、第二差分値に応じて初期駆動力の減少量を設定する減少量設定手段と、を備え、初期駆動力変更手段は、初期駆動力を減少させる場合、減少量設定手段にて設定された減少量だけ減少させるように構成してもよい。
【００８８】
つまり、駆動検知信号検出時の駆動速度が速度上限閾値よりどれだけ大きいかによって初期駆動力の減少量を設定するのである。このようにすれば、そのときの駆動対象の駆動速度に応じたきめ細かな初期駆動力の設定変更が可能となり、駆動対象をより早く所望の速度（目標駆動速度）にすることが可能となる。そして、このように速度上限閾値との差である第二差分値に応じて初期駆動力の減少量を設定する場合についても、より具体的には、既述の請求項３５又は請求項３７に記載のように構成してもよい。
【００８９】
ところで、モータによる駆動対象の駆動開始時を考えると、駆動開始直後からちょうど上記一定量駆動したときに必ず駆動検知信号が出力されるとは限らない。即ち、駆動検知手段が例えばエンコーダにて構成されている場合であってエンコーダからのパルス信号が駆動検知信号として出力されるよう構成されている場合、駆動開始時の駆動対象の位置によっては、駆動開始後すぐにパルス信号（駆動検知信号）が出力されることも予想される。このような場合、モータの駆動力が初期駆動力からほとんど増加していない状態で駆動検知信号が出力されて再び初期駆動力から増加を開始することになり、駆動対象の駆動速度を所望の速度で駆動するまでの時間が長くなってしまう。
【００９０】
そこで、請求項１１〜３７いずれかに記載のモータ制御装置は、例えば請求項３８に記載のように、初期駆動力変更手段が、駆動対象の駆動開始後、駆動検知手段から最初に駆動検知信号が出力された時は初期駆動力の設定変更を行わないように構成されたものであるとよい。このように構成されたモータ制御装置によれば、駆動開始後の最初の駆動検知信号に対してはモータ駆動力を初期駆動力に戻すことなくそのまま一定周期毎の一定量増加を継続するため、起動時のトルクを十分に確保でき、駆動対象の駆動速度をより迅速に所望の目標駆動速度にすることが可能となる。
【００９１】
更に、請求項１１〜３８いずれかに記載のモータ制御装置は、例えば請求項３９に記載のように、モータ駆動手段が、入力されるＰＷＭ信号に対応した駆動力にてモータを回転駆動するよう構成されたものであって、制御手段が、駆動力制御信号としてＰＷＭデューティ値を示すＰＷＭ信号を出力するよう構成されたものであって駆動検知信号が出力される毎にＰＷＭデューティ値を上記初期駆動力に対応した初期ＰＷＭデューティ値から一定周期で一定量ずつ増加させるよう構成されたものであってもよい。モータの制御方法として、ＰＷＭ制御方法は一般によく知られた、電力変換効率の優れた方法であるため、本発明（請求項１１〜３８）をＰＷＭ制御法によってモータ制御を行う場合に適用するとより効果的である。
【発明を実施するための最良の形態】
【００９２】
以下に、本発明の好適な実施形態を図面に基づいて説明する。
［第１実施形態］
図１は、本発明が適用されたモータ制御装置の概略構成を示すブロック図である。図１のモータ制御装置１０は、例えば図１６で説明したインクジェットプリンタに搭載され、キャリッジ１０２を駆動するモータ１１０（ＤＣモータ）を制御するためのものである。そして、本実施形態では、モータ１１０の制御全体のうち、記録終了後に待機領域内でキャリッジ１０２が右側に移動してキャッピングが行われる際の微小速度制御について説明する。
【００９３】
本実施形態のモータ制御装置１０によるモータ１１０の微小速度制御は、基本的には、図１７で説明した制御方法と同様であり、駆動開始時はＰＷＭ値を所定の駆動開始時ＰＷＭ値（ｓｔａｒｔ＿ｐｗｍ１）に設定し、その後そのＰＷＭ値を一定周期Ｔｐ毎に一定の駆動時ＰＷＭ増分値（ａｃｃｅｌ＿ｐａｒａｍ）ずつ増加させていく、そして、エンコーダエッジを検出してエンコーダエッジ信号（ｅｎｃ＿ｔｒｇ）が出力されると、ＰＷＭ値を再び所定の初期値にリセットして、以後同様に一定周期Ｔｐ毎に一定値ａｃｃｅｌ＿ｐａｒａｍずつ増加させていく。ここで、本実施形態のモータ制御装置１０が従来と大きく異なるのが、エンコーダエッジ検出時のリセット後のＰＷＭ値を、常に一定のｓｔａｒｔ＿ｐｗｍ１にするのではなく、そのエッジ検出時のＰＷＭ値に応じて設定変更することである。このことを中心に、以下詳述する。
【００９４】
図１に示す如く、本実施形態のモータ制御装置１０は、インクジェットプリンタ全体の制御を統括するＣＰＵ１と、モータ１１０の回転速度や回転方向等を制御するＰＷＭ信号を生成するＡＳＩＣ２と、ＡＳＩＣ２にて生成されたＰＷＭ信号に基づいてモータ１１０を駆動するモータ駆動ドライバ回路１１とから構成されている。
【００９５】
モータ駆動ドライバ回路１１の詳細は図２に示す通りであり、４基のスイッチング素子Ｓ１〜Ｓ４によりＨブリッジ回路が構成されたものである。このＨブリッジ回路の各スイッチング素子Ｓ１〜Ｓ４を、ＡＳＩＣ２内の駆動用信号生成部８にて生成されたＰＷＭ信号に基づいてオン・オフ制御することにより、モータ１１０を駆動する。尚、各スイッチング素子Ｓ１〜Ｓ４は、例えばＦＥＴ等の半導体スイッチング素子が用いられる。
【００９６】
ＡＳＩＣ２の内部には、モータ１１０の制御に用いる各種パラメータを格納する動作モード設定レジスタ群３が備えられている。この動作モード設定レジスタ群３は、モータ１１０を起動するための起動設定レジスタ２１と、モータ１１０の回転方向を設定するための回転方向設定レジスタ２２と、モータ１１０をＰＷＭ制御する際のＰＷＭ信号の周波数（ｐｗｍ＿ｐｅｒｉｏｄ）を設定するＰＷＭ周波数設定レジスタ２３と、ＰＷＭ値を増加させる周期Ｔｐを決めるために必要となる既述の定加算タイミング（ｐｗｍ＿ｒｅｌｏａｄ＿ｃｏｕｎｔ）を設定する定加算タイミング設定レジスタ２４と、減速開始位置及び制動開始位置を設定するために必要な各種データを設定するための位置設定レジスタ群２５と、モータ１１０を駆動する際の各種ＰＷＭ値を設定するためのＰＷＭ値設定レジスタ群２６と、周期Ｔｐ毎に増加又は減少させる各種ＰＷＭ値を設定するためのＰＷＭ増減値設定レジスタ群２７と、ＰＷＭ値を制限する各種データを設定するための制限ＰＷＭ設定レジスタ群２８と、エンコーダエッジ検出時にＰＷＭ値を初期値にリセットする際にその初期値を補正するためのデータが設定されたＰＷＭ補正値設定レジスタ群２９と、エッジ検出時のＰＷＭ値のレベル判定に用いられる各閾値を設定するためのＰＷＭ閾値設定レジスタ群３０と、を備える。
【００９７】
このうち、位置設定レジスタ群２５には、減速開始位置（ｄｅｃｅｌ＿ｐｏｓ）と、制動開始位置を決めるために用いられる３つの設定値である、制動開始位置（ｂｒｅａｋ＿ｐｏｓ）、制動開始エンコーダ周期（ｓｅｔ＿ｅｎｃ＿ｐｅｒｉｏｄ）及び最大減速時間（ｓｅｔ＿ｄｅｃｅｌ＿ｔｉｍｅ）が、それぞれ設定される。本実施形態では、後述するように、エンコーダ１０５から得られる位置・周期情報に基づいて、制動開始位置に来たか、エンコーダエッジの周期が制動開始エンコーダ周期（ｓｅｔ＿ｅｎｃ＿ｐｅｒｉｏｄ）以上となったか、或いは減速開始後の経過時間が最大減速時間（ｓｅｔ＿ｄｅｃｅｌ＿ｔｉｍｅ）以上となったの３条件のうちいずれか一つが成立した場合に、制動を開始するよう設定されている。
【００９８】
また、ＰＷＭ値設定レジスタ群２６には、駆動開始時のＰＷＭ値（ｓｔａｒｔ＿ｐｗｍ１）と、減速開始時のＰＷＭ値（ｓｔａｒｔ＿ｐｗｍ２）と、制動開始時のＰＷＭ値（ｓｔａｒｔ＿ｐｗｍ３）と、ブレーキ時のＰＷＭ値（ｓｔｏｐ＿ｐｗｍ）とが設定されており、制限ＰＷＭ設定レジスタ群２８には、ＰＷＭ値の上限を示す最大ＰＷＭ出力値（ｐｗｍ＿ｍａｘ＿ｌｉｍｉｔ）と、ＰＷＭ値の下限を示す最小ＰＷＭ出力値（ｐｗｍ＿ｍｉｎ＿ｌｉｍｉｔ）とが設定されている。
【００９９】
また、ＰＷＭ補正値設定レジスタ群２９には、リセット後のＰＷＭ初期値を前回リセット時のＰＷＭ初期値からどれだけ増加させるかを示す初期ＰＷＭ補正値（＋）（ｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓ）と、逆にどれだけ減少させるかを示す初期ＰＷＭ補正値（−）（ｍｉｃｒｏ＿ｄｕｔｙ＿ｍｉｎｕｓ）とが設定されている。
【０１００】
また、ＰＷＭ閾値設定レジスタ群３０には、リセット後のＰＷＭ初期値を前回リセット時のＰＷＭ初期値から増加させるか否かを判断する基準となる高ＰＷＭデューティ検出閾値（ｄｅｔ＿ｐｗｍ＿ｍａｘ）と、逆に減少させるか否かを判断する基準となる低ＰＷＭデューティ検出（ｄｅｔ＿ｐｗｍ＿ｍｉｎ）とが設定されている。
【０１０１】
エンコーダエッジ検出部１３は、エンコーダ１０５からのパルス信号を取り込んでそのパルス信号のエッジ（例えば立ち上がりエッジ又は立ち下がりエッジのいずれか、若しくはその両方など）を検出してエンコーダエッジ検出信号（ｅｎｃ＿ｔｒｇ）を出力するものであり、その検出したエッジを位置カウンタ１４がカウントすることによって、キャリッジ１０２の位置をそのカウント値であるエンコーダエッジ数カウント値（ｅｎｃ＿ｃｏｕｎｔ）として検出する。
【０１０２】
周期・速度計測部１６は、エンコーダエッジ検出部１３からの上記カウント数（ｅｎｃ＿ｃｏｕｎｔ）に基づいて、エンコーダエッジ検出信号の周期であるエンコーダエッジ周期（ｅｎｃ＿ｐｅｒｉｏｄ）、及びキャリッジ１０２の駆動速度（ｅｎｃ＿ｖｅｌｏｃｉｔｙ）を演算し出力する。
【０１０３】
ここで、エンコーダ１０５からのパルス信号に対する、エンコーダエッジ検出信号と、エンコーダエッジカウント値と、エンコーダエッジ周期と、駆動速度との関係について、図３に基づいて説明する。図示の如く、エンコーダ１０５は位相の異なる二種類のパルス信号を出力するよう構成されており、このうち一方（Ａ相）のエッジが立ち上がることによって、エンコーダエッジ検出部１３からエンコーダエッジ検出信号（ｅｎｃ＿ｔｒｇ）が出力される。
【０１０４】
そして、このエンコーダエッジ検出信号に基づき、位置カウンタ１４にてエンコーダエッジカウント値（ｅｎｃ＿ｃｏｕｎｔ）がカウントされる。また、周期・速度計測部１６でも、エンコーダエッジ検出信号に基づいて、図示の如くエンコーダエッジ周期（ｅｎｃ＿ｐｅｒｉｏｄ）が得られ、その得られた周期及びエンコーダＡ相の図示しないスリットの間隔とに基づいて、駆動速度（ｅｎｃ＿ｖｅｌｏｃｉｔｙ）が得られる。
【０１０５】
加算タイミング生成部１８は、定加算タイミング設定レジスタ２４からの定加算タイミング（ｐｗｍ＿ｒｅｌｏａｄ＿ｃｏｕｎｔ）と、エンコーダエッジ検出部１３からのエンコーダエッジ検出信号（ｅｎｃ＿ｔｒｇ）とに基づいて、ＰＷＭ値を上記周期Ｔｐで増加させていくためのタイミング情報を生成して出力ＰＷＭデューティ生成部４へ出力する。  
【０１０６】
領域判定部１５は、位置カウンタ１４からの上記カウント数（ｅｎｃ＿ｃｏｕｎｔ）と、周期・速度計測部１６からの周期・速度信号と、位置設定レジスタ群２５に設定された各設定値とに基づいて、通常駆動させる領域にいるのか、減速させるべき領域にいるのか、或いは制動をかけるべき領域にいるのかを判断する。なお、その内部には減速時間計測タイマ１５ａ（ｄｅｃｅｌ＿ｔｉｍｅｒ）が設けられており、減速開始と共にこのタイマがスタートする。そして、計測時間が最大減速時間（ｓｅｔ＿ｄｅｃｅｌ＿ｔｉｍｅ）以上となったときにまだ制動を開始していなければ、制動を開始する。
【０１０７】
初期ＰＷＭデューティ補正部６は、エンコーダエッジ検出によりＰＷＭ値をリセットする際のリセット後のＰＷＭ初期値を補正するためのものである。本実施形態では、基本的にはリセット時のＰＷＭ初期値を前回リセット時のＰＷＭ初期値と同じものに設定するようにされているが、エンコーダエッジ検出時のＰＷＭ値が高ＰＷＭデューティ検出閾値（ｄｅｔ＿ｐｗｍ＿ｍａｘ）より大きい場合は、そのＰＷＭ初期値を、初期ＰＷＭ補正値（＋）だけ増加させるようにしている。また、エンコーダエッジ検出時のＰＷＭ値が低ＰＷＭデューティ検出閾値（ｄｅｔ＿ｐｗｍ＿ｍｉｎ）より小さい場合は、そのＰＷＭ初期値を、初期ＰＷＭ補正値（−）だけ減少させるようにしている。そして、その増加又は減少させるべき値に基づいて、前回のエンコーダエッジ検出時に出力ＰＷＭデューティ生成部４から出力されたＰＷＭ初期値を補正（増加、減少又は現状維持）させた上で、新たなＰＷＭ初期値として出力ＰＷＭデューティ生成部４へ出力する。
【０１０８】
出力ＰＷＭデューティ生成部４は、モータ１１０を駆動させるのに必要なＰＷＭ信号のＰＷＭ値を示すデータを生成して出力するものであり、ＰＷＭ値設定レジスタ群２６、ＰＷＭ増減値設定レジスタ群２７及び制限ＰＷＭ設定レジスタ群２８の各レジスタの設定値と、加算タイミング生成部１８からのタイミング情報と、エンコーダエッジ検出部１３からのエンコーダエッジ検出信号（ｅｎｃ＿ｔｒｇ）と、領域判定部１５からの領域情報とに基づいて、通常駆動時、減速時、制動時、ブレーキ（停止）時のそれぞれにおけるＰＷＭ値を生成する。そして、本実施形態では更に、エンコーダエッジ検出時にリセットされるＰＷＭ初期値を初期ＰＷＭデューティ補正部６から取得し、エッジ検出毎にその初期ＰＷＭデューティ補正部６から取得したＰＷＭ値をＰＷＭ初期値として出力する。
【０１０９】
駆動用信号生成部８は、出力ＰＷＭデューティ生成部４からのＰＷＭ値及び回転方向設定レジスタ２２に設定された回転方向に応じたＰＷＭ信号を生成してモータ駆動ドライバ回路１１へ出力する。これにより、モータ駆動ドライバ回路１１がモータ１１０を駆動し、モータ１１０は設定されたＰＷＭ値に対応した所望の駆動力にて駆動される。各種信号処理部１７は、エラー処理やＣＰＵ１に対する割り込み信号出力などを行うものである。この割り込み信号については後述する。
【０１１０】
クロック生成部１２は、エンコーダ１０５からのパルス信号よりも十分に短い周期のクロック信号を生成して、当該ＡＳＩＣ２内の各部に供給する。
上記のように構成された本実施形態のモータ制御装置１０におけるモータ１１０の制御について、図４に基づいて説明する。図４は、本実施形態のモータ制御例を示す説明図であり、（ａ）はモータ１１０の負荷が増加していく場合の制御例、（ｂ）はモータ１１０の負荷が減少していく場合の制御例である
まず、図４（ａ）に示す如く、駆動開始時のＰＷＭ初期値はｓｔａｒｔ＿ｐｗｍ１が設定され、その後、図１８に示したように一定周期Ｔｐでａｃｃｅｌ＿ｐａｒａｍずつ増加していく。そして、エンコーダエッジが検出される前にＰＷＭ値がｐｗｍ＿ｍａｘ＿ｌｉｍｉｔに達した場合は、その後エッジ検出まではそのｐｗｍ＿ｍａｘ＿ｌｉｍｉｔに保持される。そして、エンコーダエッジが検出されるとＰＷＭ値はリセットされるのだが、本実施形態では、駆動開始後最初にエンコーダエッジを検出したときは、再びｓｔａｒｔ＿ｐｗｍ１にリセットされる。そして、２回目以降のエッジ検出時から、そのエッジ検出時のＰＷＭ値に基づいて、リセット後のＰＷＭ初期値が設定される。
【０１１１】
具体的には、図４（ａ）における駆動開始後２回目のエンコーダエッジ検出時、ＰＷＭ値はｄｅｔ＿ｐｗｍ＿ｍａｘを越えている。そのため、リセット後のＰＷＭ初期値は、ｓｔａｒｔ＿ｐｗｍ１にｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓが加算された値となる。その後も同じ要領で、エンコーダエッジ検出時のＰＷＭ値がｄｅｔ＿ｐｗｍ＿ｍａｘを越えていたら、その前にエンコーダエッジが検出されたときにリセットされたＰＷＭ初期値に対して、ｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓを加算することにより、新たなＰＷＭ初期値とする。  
【０１１２】
一方、モータ負荷が大きくなって駆動速度が低下し、エンコーダエッジ検出時のＰＷＭ値がｄｅｔ＿ｐｗｍ＿ｍａｘより小さくなっても（時刻ｔ１）、ｄｅｔ＿ｐｗｍ＿ｍｉｎを越えていれば、その次のＰＷＭ初期値は、前回のＰＷＭ初期値がそのまま設定される。そのため、駆動速度が急に低下することなく、所望の駆動速度を維持することができる。
【０１１３】
そして、減速開始位置（ｄｅｃｅｌ＿ｐｏｓ）に来ると、ＰＷＭ初期値はｓｔａｒｔ＿ｐｗｍ２に設定され、その後、一定周期Ｔｐ毎に減速時ＰＷＭ減分値（ｄｅｃｅｌ＿ｐａｒａｍ）ずつ減少していく。その後、既述の３つの制動開始条件のうちいずれか一つでも満たされると、ＰＷＭ値をｓｔａｒｔ＿ｐｗｍ３に設定することにより制動が開始され、一定周期Ｔｐ毎に制動時ＰＷＭ増分値（ｂｒｅａｋ＿ｐａｒａｍ）ずつ増加（マイナス方向に）していく。
【０１１４】
なお、ＰＷＭ値がマイナスの範囲にあるときのモータ駆動ドライバ回路１１の動作は、具体的には、Ｈブリッジ回路を構成する４つのスイッチング素子Ｓ１〜Ｓ４（図２参照）のうち、グランドに接続された二つのスイッチング素子Ｓ２，Ｓ４のみを同時にオン・オフすることにより行う。即ち、両スイッチング素子Ｓ２，Ｓ４が共にオンとなった状態で制動がかかるため、そのオンデューティ比によって制動力を制御することができる。もちろん、ＰＷＭ値がマイナスの範囲にあるときのスイッチング動作は、スイッチング素子Ｓ２，Ｓ４ではなく、スイッチング素子Ｓ１，Ｓ３のオン・オフでも所望の制御動作が可能である。
【０１１５】
従って、制動開始後は、両スイッチング素子Ｓ２，Ｓ４のオン比率が徐々に上昇していき、ＰＷＭ値がｓｔｏｐ＿ｐｗｍとなったときに、常時オン状態、つまりモータ１１０が両スイッチング素子Ｓ２，Ｓ４を介して常時短絡された状態となり、駆動対象（ここではキャリッジ１０２）が停止することになる。
【０１１６】
次に、図４（ｂ）の負荷が減少する場合について説明する。この場合、時刻ｔ２の直前のエンコーダエッジ検出時までは、図４（ａ）で説明した制御と全く同じであるため、ここでは詳細説明を省略する。
【０１１７】
時刻ｔ１あたりから負荷が徐々に減少していくと、駆動速度が高速化していくため、エンコーダエッジ検出時のＰＷＭ値は小さくなっていく。そして、時刻ｔ２におけるエンコーダエッジ検出時には、ＰＷＭ値はｄｅｔ＿ｐｗｍ＿ｍｉｎより小さくなっている。この場合、本実施形態では、リセット後の次のＰＷＭ初期値を、時刻ｔ２の前のエンコーダエッジ検出時の際に設定したＰＷＭ初期値に対し、初期ＰＷＭ補正値（−）（ｍｉｃｒｏ＿ｄｕｔｙ＿ｍｉｎｕｓ）だけ減算した値を、新たなＰＷＭ初期値とする。つまり、負荷が軽くて速度過大になるおそれがあるため、ＰＷＭ初期値を下げて速度を抑制するわけである。
【０１１８】
そして、エッジ検出時のＰＷＭ値がｄｅｔ＿ｐｗｍ＿ｍｉｎより小さい間は、同様の処理を行うことによって、ＰＷＭ初期値はエッジ検出毎にｍｉｃｒｏ＿ｄｕｔｙ＿ｍｉｎｕｓずつ減少していく。これにより駆動速度が抑制されると、再びエッジ検出時のＰＷＭ値が上昇していくことになる。
【０１１９】
次に、本実施形態のモータ制御装置１０における、ＣＰＵ１が実行する処理、及び、ＡＳＩＣ２にて実行される処理について、図５〜図９に基づいて説明する。まず、図５は、ＣＰＵ１が実行するＡＳＩＣ設定処理を示すフローチャートである。インクジェットプリンタにおいて記録動作が完了し、キャリッジ１０２が待機領域内で一旦停止した後、ホームポジションに移動するために本処理（図５〜図９）が実行される。
【０１２０】
このＡＳＩＣ設定処理が開始されると、まずステップ（以下「Ｓ」と略す）１１０にて、動作モード設定レジスタ群２内の各レジスタが設定される。具体的な設定項目は、図５に示す通りである。その後、Ｓ１２０にて、停止割り込み許可をＡＳＩＣ２へ出力する。この停止割り込み許可信号を受けたＡＳＩＣ２は、後述する図９の割り込み信号生成処理の際に停止割り込み信号を出力可能となる。
【０１２１】
そして、Ｓ１３０で起動設定レジスタ２１をセットすることで、モータ１１０の駆動、延いてはキャリッジ１０２の駆動が開始される。その後のモータ１１０の制御は、基本的にＡＳＩＣ２が行い、ＣＰＵ１は、Ｓ１４０にて停止割り込み信号の待機を行う。そして、後述する図９のＳ７９０の処理により停止割り込み信号が出力されると、Ｓ１４０で肯定判定されてＳ１５０に進み、停止割り込みフラグをクリアすると共に以後割り込み信号が入ってこないよう、割り込みマスク処理を行う。
【０１２２】
次に、ＡＳＩＣ２で実行されるモータ１１０の制御について説明する。まず、図６に、モータ１１０の起動から減速開始までの通常駆動処理を示す。ＣＰＵ１にて起動設定レジスタ２１がセットされると、まずＳ２１０にて、ＰＷＭ初期値を表す変数ｓｔａｒｔ＿ｐｗｍにｓｔａｒｔ＿ｐｗｍ１をセットし、そのｓｔａｒｔ＿ｐｗｍ（つまりｓｔａｒｔ＿ｐｗｍ１）を、実際に出力ＰＷＭデューティ生成部４から出力するＰＷＭ値ｐｗｍ＿ｏｕｔにセットして、そのＰＷＭ値の出力を開始する。
【０１２３】
続くＳ２２０では、ｅｎｃ＿ｔｒｇが１か否か、つまりエンコーダエッジが検出されたか否かを判断して、検出されるまではＳ２３０に進むことになる。Ｓ２３０では、ｐｗｍ＿ｏｕｔの更新タイミングであるか否かを判断する。これは即ち、一定周期ＴｐのＰＷＭ値の更新を行うタイミングであるか否かの判断であり、加算タイミング生成部１８からのタイミング情報に基づいて判断する。前回更新（つまりａｃｃｅｌ＿ｐａｒａｍだけ増加）してからＴｐが経過しない間は否定判定されてＳ２２０に戻るが、Ｔｐが経過してＰＷＭ値の更新タイミングになると、Ｓ２４０に進む。
【０１２４】
Ｓ２４０では、現在のｐｗｍ＿ｏｕｔにａｃｃｅｌ＿ｐａｒａｍを加えたものを新たなｐｗｍ＿ｏｕｔとし、続くＳ２５０にて、その新たなｐｗｍ＿ｏｕｔがｐｗｍ＿ｍａｘ＿ｌｉｍｉｔより大きいか否か判断する。そして、ｐｗｍ＿ｍａｘ＿ｌｉｍｉｔ以下であればＳ２２０に戻ることになるが、ｐｗｍ＿ｍａｘ＿ｌｉｍｉｔを越えていたら、Ｓ２６０に進み、現在のｐｗｍ＿ｏｕｔにｐｗｍ＿ｍａｘ＿ｌｉｍｉｔをセットする。つまり、ｐｗｍ＿ｏｕｔは最大ｐｗｍ＿ｍａｘ＿ｌｉｍｉｔに制限されるのである。
【０１２５】
そして、エンコーダエッジが検出されると、Ｓ２２０からＳ２７０に進み、減速開始位置（ｄｅｃｅｌ＿ｐｏｓ）又は制動開始位置（ｂｒｅａｋ＿ｐｏｓ）に来たか否かを判断する。
【０１２６】
このＳ２７０の判断は、具体的には、領域判定部１５からの位置パルスの有無に基づいてなされる。図８は、領域判定部１５にて実行される位置検出パルス生成処理を示すフローチャートである。位置カウンタ１４からのカウント値が入力されることによりこの処理が開始されると、Ｓ６１０にて、そのカウント値に基づいて減速開始位置（ｄｅｃｅｌ＿ｐｏｓ）であるか否か判断する。ここでまだ減速開始位置でなければＳ６３０に進んで、制動開始位置（ｂｒｅａｋ＿ｐｏｓ）であるか否かを判断する。
【０１２７】
なお、減速開始位置にきたことが判断されていないにも拘わらず制動開始位置に来たことが判断される場合とは、通常駆動状態から減速期間を介さずに直接制動に移行するような制御を行う場合である。そのため、本実施形態のように減速期間を含める場合は、Ｓ６３０では常に否定判断されることになる。そして、減速開始位置に到達したら、Ｓ６２０に移行して減速位置パルスを発生する。
【０１２８】
Ｓ２７０において、ｄｅｃｅｌ＿ｐｏｓに到達していたら、図７の減速・停止処理に進むが、ｄｅｃｅｌ＿ｐｏｓに到達しない間は、Ｓ２８０に進み、そのときのＰＷＭ値（ｐｗｍ＿ｏｕｔ）がｄｅｔ＿ｐｗｍ＿ｍａｘより大きいか否か判断する。このとき、ｐｗｍ＿ｏｕｔがｄｅｔ＿ｐｗｍ＿ｍａｘより大きければ、Ｓ２９０に進み、ＰＷＭ初期値のリセットを行う。具体的には、現在のｓｔａｒｔ＿ｐｗｍ（つまり前回エッジ検出時のリセット後のＰＷＭ初期値）にｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓを加算したものを新たなｓｔａｒｔ＿ｐｗｍとするのである。
一方、エンコーダエッジ検出時のｐｗｍ＿ｏｕｔがｄｅｔ＿ｐｗｍ＿ｍａｘ以下であれば、Ｓ３００に進み、さらにｄｅｔ＿ｐｗｍ＿ｍｉｎより小さいか否か判断する。このとき、ｄｅｔ＿ｐｗｍ＿ｍｉｎより小さければ、Ｓ３１０に進み、ＰＷＭ初期値のリセットを行う。この場合は、現在のｓｔａｒｔ＿ｐｗｍからｍｉｃｒｏ＿ｄｕｔｙ＿ｍｉｎｕｓを減算したものを新たなｓｔａｒｔ＿ｐｗｍとする。Ｓ３００で否定される場合、即ち現在のｓｔａｒｔ＿ｐｗｍがｄｅｔ＿ｐｗｍ＿ｍｉｎ以上ｄｅｔ＿ｐｗｍ＿ｍａｘ以下の範囲にある場合は、そのままＳ３２０に進む。
【０１２９】
そして、Ｓ３２０にて、ｐｗｍ＿ｏｕｔとして、現在のｓｔａｒｔ＿ｐｗｍ（つまりＳ２９０又はＳ３１０の処理で補正された値、若しくは、前回エッジ検出時のｓｔａｒｔ＿ｐｗｍと同じ値）をセットする。
【０１３０】
次に、Ｓ２７０で肯定判定された場合の処理、即ち減速開始位置に来た場合の減速・停止処理について、図７に基づいて説明する。図７は、減速・停止処理を示すフローチャートである。図６のＳ２７０で肯定判定されることにより本処理に移行すると、まずＳ４１０にて、ｓｔａｒｔ＿ｐｗｍに、減速開始時ＰＷＭ値であるｓｔａｒｔ＿ｐｗｍ２をセットし、そのセット後のｓｔａｒｔ＿ｐｗｍをｐｗｍ＿ｏｕｔとして設定する。同時に、タイマ１５ａ（ｄｅｃｅｌ＿ｔｉｍｅｒ）の計時を開始する。
【０１３１】
Ｓ４２０では、既に述べた通り、ｅｎｃ＿ｃｏｕｎｔがｂｒｅａｋ＿ｐｏｓに等しくなること（つまり制動開始位置に到達したこと）、又は、ｅｎｃ＿ｐｅｒｉｏｄがｓｅｔ＿ｅｎｃ＿ｐｅｒｉｏｄ以上となること（つまりエンコーダエッジの周期が制動開始エンコーダ周期以上となること）、又は、タイマ１５ａの計時値がｓｅｔ＿ｄｅｃｅｌ＿ｔｉｍｅ（最大減速時間）以上となること、のうちいずれか一つでも成立すれば、Ｓ４７０に進んで制動を開始する。具体的には、ｓｔａｒｔ＿ｐｗｍに制動開始時ＰＷＭ値であるｓｔａｒｔ＿ｐｗｍ３をセットし、そのセット後のｓｔａｒｔ＿ｐｗｍを新たなｐｗｍ＿ｏｕｔとする。
【０１３２】
一方、制動開始に至らない間は、Ｓ４２０からＳ４３０に進み、図６のＳ２３０と同様、ｐｗｍ＿ｏｕｔの更新タイミングであるか否かを判断する。そして、更新タイミングになったら、Ｓ４４０にて、現在のｐｗｍ＿ｏｕｔからｄｅｃｅｌ＿ｐａｒａｍだけ減算したものを新たなｐｗｍ＿ｏｕｔとする。つまり、ＰＷＭ値を減少させるのである。そしてＳ４５０に移行し、その新たなｐｗｍ＿ｏｕｔがｐｗｍ＿ｍｉｎ＿ｌｉｍｉｔより小さいか否か判断して、小さくなければそのままＳ４２０に戻るが、小さい場合は、Ｓ４６０でｐｗｍ＿ｏｕｔをｐｗｍ＿ｍｉｎ＿ｌｉｍｉｔにセットする。
【０１３３】
制動を開始して上述したＳ４７０の処理が終わると、続くＳ４８０にて、Ｓ４３０と同様、ｐｗｍ＿ｏｕｔの更新タイミングであるか否かを判断する。そして、更新タイミングになると、Ｓ４９０に移行し、現在のｐｗｍ＿ｏｕｔにｂｒｅａｋ＿ｐａｒａｍを加算したものを新たなｐｗｍ＿ｏｕｔとする。そして、その新たなｐｗｍ＿ｏｕｔがｓｔｏｐ＿ｐｗｍより大きいか否かをＳ５００で判断し、大きくなければＳ４８０に戻るが、大きければ、Ｓ５１０でｐｗｍ＿ｏｕｔをｓｔｏｐ＿ｐｗｍにセットして、続くＳ５２０で停止パルスを発生する。これにより、モータ１１０は完全に停止することになる。
【０１３４】
次に、ＡＳＩＣ２内の各種信号処理部１７が実行する割り込み信号生成処理について、図９に基づいて説明する。本処理が開始されると、まずＳ７１０にて、位置パルスが発生したか否か判断する。これは、図８におけるＳ６２０又はＳ６４０、図７におけるＳ５２０の各処理においてそれぞれ対応するパルスが発生したか否かをみるものであり、いずれかの位置パルスが発生した場合、Ｓ７２０に進み、その種類を判断する。
【０１３５】
まず、減速位置パルスであった場合は、Ｓ７３０に進み、減速位置割り込みフラグをセットする。そして、Ｓ７５０で、ＣＰＵ１から減速位置割り込み許可を得ているか否かを判断する。本実施形態では、減速位置割り込み許可を得ていないため、ここではＳ７１０に戻ることになる。制動位置パルスであった場合、Ｓ７５０で制動位置割り込みフラグをセットし、Ｓ７６０で、ＣＰＵ１から制動位置割り込み許可を得ているか否か判断する。この場合も、本実施形態では制動位置割り込み許可を得ていないため、Ｓ７１０に戻る。  
【０１３６】
そして、停止位置パルスであった場合、Ｓ７７０で停止割り込みフラグをセットし、Ｓ７８０で、ＣＰＵ１から停止割り込み許可を得ているか否か判断する。ここでは、図５で説明したＡＳＩＣ設定処理により、停止割り込み許可がなされているため、Ｓ７９０に移行して、ＣＰＵ割り込み信号をＣＰＵ１へ出力する。
【０１３７】
以上詳述した本実施形態のモータ制御装置１０によれば、エンコーダエッジが検出される毎に、そのときのＰＷＭ値（ｐｗｍ＿ｏｕｔ）に応じて、次のＰＷＭ初期値を決めるようにしている（現状維持か、ｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓ加算か、ｍｉｃｒｏ＿ｄｕｔｙ＿ｍｉｎｕｓ減算か、のいずれか）。そのため、モータ１１０の負荷に変動が生じても、安定して駆動対象（本例ではキャリッジ１０２）を駆動させることができる。
【０１３８】
また、駆動開始後の最初のエンコーダエッジ検出時には、ＰＷＭ初期値の補正は行わずに駆動開始時と同じｓｔａｒｔ＿ｐｗｍ１に設定するため、駆動時のトルクを十分に確保でき、キャリッジ１０２の駆動速度をより迅速に所望の目標駆動速度にすることが可能となる。
【０１３９】
しかも、速度フィードバック制御や位置フィードバック制御などのいわゆる閉ループ制御ではなく、全体としてオープンループ制御であるため、閉ループ制御では困難な微小速度でのモータ制御をより良好に実現することができる。
【０１４０】
特に、本実施形態のようにインクジェットプリンタのキャリッジ駆動における、ホームポジションへの微小速度移動に適用すると、キャッピング動作時のモータ負荷の変動の影響が抑制され、キャッピングを確実に行うことができる。
【０１４１】
ここで、本実施形態の構成要素と本発明の構成要素の対応関係を明らかにする。本実施形態において、エンコーダ１０５は本発明の駆動検手段に相当し、出力ＰＷＭデューティ生成部４は本発明の制御手段に相当し、モータ駆動ドライバ回路１１は本発明のモータ駆動手段に相当し、初期ＰＷＭデューティ補正部６は本発明の初期駆動力変更手段に相当する。また、エンコーダエッジ検出時のＰＷＭ値がｄｅｔ＿ｐｗｍ＿ｍｉｎとｄｅｔ＿ｐｗｍ＿ｍａｘとの間の値となるような駆動速度が、本発明の目標駆動速度に相当するものである。また、図６の通常駆動処理において、Ｓ２８０及びＳ３００の処理はいずれも本発明の駆動力判断手段が実行する処理に相当する。
【０１４２】
［第２実施形態］
上記実施形態では、エンコーダエッジ検出時のＰＷＭ値がｄｅｔ＿ｐｗｍ＿ｍａｘより大きい場合、次のＰＷＭ初期値を、前回のＰＷＭ初期値に対してｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓだけ加算するようにし、逆に、ｄｅｔ＿ｐｗｍ＿ｍｉｎより小さい場合は、前回のＰＷＭ初期値に対してｍｉｃｒｏ＿ｄｕｔｙ＿ｍｉｎｕｓだけ減算するようにしたが、本実施形態では、上記加算及び減算の量を可変にしたものである。
【０１４３】
より具体的には、第１実施形態で説明した図６の通常駆動処理における、破線で囲んだＳ２８０〜Ｓ３１０の処理を、図１０に示す処理に置き換えればよい。以下、図１０に基づいて、本実施形態のＰＷＭ初期値の設定変更方法を説明する。図１０は、通常駆動処理におけるエンコーダエッジ検出時のＰＷＭ初期値設定変更方法を示すフローチャートであり、上記のように、図６の通常駆動処理における破線で囲んだ処理に置き換わるものである。
【０１４４】
図１０に示す如く、エンコーダエッジが検出されたときのＰＷＭ値（ｐｗｍ＿ｏｕｔ）がｄｅｔ＿ｐｗｍ＿ｍａｘより大きかった場合（Ｓ２８０；ＹＥＳ）、Ｓ８１０にて、ｐｗｍ＿ｏｕｔとｄｅｔ＿ｐｗｍ＿ｍａｘとの差であるΔＰを演算する。そして、Ｓ８２０にてそのΔＰがｐｗｍ＿ｍａｘ＿ｌｉｍｉｔの１０％より大きいか否かを判断し、大きければ、Ｓ８３０に進んで、ｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓを２倍したものをΔｄｕｔｙとする。そして、Ｓ８５０で、現在のｓｔａｒｔ＿ｐｗｍに上記Δｄｕｔｙを加算したものを新たなｓｔａｒｔ＿ｐｗｍとするのである。
【０１４５】
一方、Ｓ８２０で否定判断された場合は、肯定判定された場合に比べるとＰＷＭ値が小さくて駆動速度が早い状態であるため、Ｓ８４０にて、ｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓをそのままΔｄｕｔｙとする。そしてＳ８５０の演算を行って、次の新たなｓｔａｒｔ＿ｐｗｍを得るのである。つまり、Ｓ８２０で否定判定された場合に比べ、肯定判定された場合の方が、前回のＰＷＭ初期値に対する増加量が大きくなるのである。
【０１４６】
また、エンコーダエッジが検出されたときのＰＷＭ値（ｐｗｍ＿ｏｕｔ）がｄｅｔ＿ｐｗｍ＿ｍｉｎより小さかった場合（Ｓ３００；ＹＥＳ）、Ｓ８６０にて、ｄｅｔ＿ｐｗｍ＿ｍｉｎとｐｗｍ＿ｏｕｔとの差であるΔＰを演算する。そして、Ｓ８７０にてそのΔＰがｐｗｍ＿ｍｉｎ＿ｌｉｍｉｔの１０％より大きいか否かを判断し、大きければ、Ｓ８８０に進んで、ｍｉｃｒｏ＿ｄｕｔｙ＿ｍｉｎｕｓを２倍したものをΔｄｕｔｙとする。そして、Ｓ９００で、現在のｓｔａｒｔ＿ｐｗｍから上記Δｄｕｔｙを減算したものを新たなｓｔａｒｔ＿ｐｗｍとするのである。
【０１４７】
一方、Ｓ８７０で否定判断された場合は、肯定判定された場合に比べるとＰＷＭ値が大きくて駆動速度が遅い状態であるため、Ｓ８９０にて、ｍｉｃｒｏ＿ｄｕｔｙ＿ｍｉｎｕｓをそのままΔｄｕｔｙとする。そしてＳ９００の演算を行って、次の新たなｓｔａｒｔ＿ｐｗｍを得るのである。つまり、Ｓ８７０で否定判定された場合に比べ、肯定判定された場合の方が、前回のＰＷＭ初期値に対する減少量が大きくなるのである。
【０１４８】
上記のように制御が行われる場合の具体的な制御例を、図１１に示す。図１１に示す如く、駆動開始後の最初のエンコーダエッジ検出時にはＰＷＭ初期値を前回と同じｓｔａｒｔ＿ｐｗｍ１とするが、次のエンコーダエッジ検出時、そのときのＰＷＭ値（ｐｗｍ＿ｏｕｔ）と、ｄｅｔ＿ｐｗｍ＿ｍａｘとの差ΔＰ１を演算する。これは図１０のＳ８１０に相当する。そして、このΔＰ１がｐｗｍ＿ｍａｘ＿ｌｉｍｉｔの１０％より大きいか否か判断し（Ｓ８２０）、ここでは肯定判定されてΔｄｕｔｙ１＝ｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓ＊２に設定される（Ｓ８３０）。これにより、ＰＷＭ初期値は前回のｓｔａｒｔ＿ｐｗｍ１にΔｄｕｔｙ１だけ加算した値となる（Ｓ８４０）。
【０１４９】
更に、次のエンコーダエッジが検出されたときも同様に、ｐｗｍ＿ｏｕｔとｄｅｔ＿ｐｗｍ＿ｍａｘとの差であるΔＰ２を演算する。ここでは、このΔＰ２がｐｗｍ＿ｍａｘ＿ｌｉｍｉｔの１０％よりも小さいため、ｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓをそのままΔｄｕｔｙ２とする。このΔｄｕｔｙ２を前回のＰＷＭ初期値（ｓｔａｒｔ＿ｐｗｍ１＋Δｄｕｔｙ１）に加算したものが、新たなＰＷＭ初期値となる。
【０１５０】
エッジ検出時のＰＷＭ値がｄｅｔ＿ｐｗｍ＿ｍｉｎより小さい場合についても、図１０のＳ８６０〜Ｓ９００の処理に従った演算等を行うことで、エッジ検出時のＰＷＭ値をｄｅｔ＿ｐｗｍ＿ｍａｘとｄｅｔ＿ｐｗｍ＿ｍｉｎの間に持ってくることができる。
【０１５１】
従って、本実施形態によれば、エッジ検出時のＰＷＭ値がｄｅｔ＿ｐｗｍ＿ｍａｘよりどれだけ大きいか、或いはｄｅｔ＿ｐｗｍ＿ｍｉｎよりどれだけ小さいかに応じて、前回のＰＷＭ初期値に対する加算値（又は減算値）を２段階に分けて設定しているため、そのときのモータ駆動速度に適切に対応したＰＷＭ初期値設定変更が可能となる。
【０１５２】
これにより、駆動対象（本例ではキャリッジ１０２）をより安定して微小速度駆動させることができる。尚、ｐｗｍ＿ｍａｘ＿ｌｉｍｉｔ及びｐｗｍ＿ｍｉｎ＿ｌｉｍｉｔの１０％の値を判定閾値としたのはあくまでも一例であって、適宜設定すればよい。また、加算値（又は減算値）を２段階に分けたのもあくまでも一例であって、さらに他段階に分けて設定するようにしてもよい。
【０１５３】
尚、本実施形態において、Ｓ８２０の処理は本発明の第一差分値演算手段に相当し、Ｓ８２０の処理は本発明の第一差分判断手段に相当し、Ｓ８３０及びＳ８４０の処理が本発明の増加量設定手段に相当し、Ｓ８６０の処理は本発明の第二差分値演算手段に相当し、Ｓ８７０の処理は本発明の第二差分判断手段に相当し、Ｓ８８０及びＳ８９０の処理が本発明の減少量設定手段に相当する。
【０１５４】
［第３実施形態］
上記第２実施形態では、ＰＷＭ値とｄｅｔ＿ｐｗｍ＿ｍａｘとの差がｐｗｍ＿ｍａｘ＿ｌｉｍｉｔの１０％より大きいか否か、或いは、ｄｅｔ＿ｐｗｍ＿ｍｉｎとＰＷＭ値の差がｐｗｍ＿ｍａｘ＿ｌｉｍｉｔの１０％より大きいか否かによって、ＰＷＭ初期値の設定変更の量（加算値又は減算値）が可変となるようにしたが、本実施形態では、エッジ検出時のＰＷＭ値と上記各閾値との差に比例して上記加算値又は減算値を設定するようにしたものである。
【０１５５】
そして、本実施形態においても、第２実施形態と同様、より具体的には、第１実施形態で説明した図６の通常駆動処理における、破線で囲んだＳ２８０〜Ｓ３１０の処理を、図１２に示す処理に置き換えればよい。以下、図１２に基づいて、本実施形態のＰＷＭ初期値の設定変更方法を説明する。図１２は、通常駆動処理におけるエンコーダエッジ検出時のＰＷＭ初期値設定変更方法を示すフローチャートであり、上記のように、図６の通常駆動処理における破線で囲んだ処理に置き換わるものである。
【０１５６】
図１２に示す如く、エンコーダエッジが検出されたときのＰＷＭ値（ｐｗｍ＿ｏｕｔ）がｄｅｔ＿ｐｗｍ＿ｍａｘより大きかった場合（Ｓ２８０；ＹＥＳ）、Ｓ９１０にて、ｐｗｍ＿ｏｕｔとｄｅｔ＿ｐｗｍ＿ｍａｘとの差であるΔＰを演算する。そして、Ｓ９２０の演算式によって、ＰＷＭ初期値を演算する。即ち、前回のＰＷＭ初期値に対して加算する量を、ｍｉｃｒｏ＿ｄｕｔｙ＿ｐｌｕｓ＊（１＋ΔＰ＊１）倍とする。つまり、ΔＰに比例して加算値が変化するのである。
【０１５７】
また、エンコーダエッジが検出されたときのＰＷＭ値（ｐｗｍ＿ｏｕｔ）がｄｅｔ＿ｐｗｍ＿ｍｉｎより小さかった場合（Ｓ３００；ＹＥＳ）、Ｓ９３０にて、ｄｅｔ＿ｐｗｍ＿ｍｉｎとｐｗｍ＿ｏｕｔとの差であるΔＰを演算する。そして、Ｓ９４０の演算式によって、ＰＷＭ初期値を演算する。即ち、前回のＰＷＭ初期値に対して減算する量を、ｍｉｃｒｏ＿ｄｕｔｙ＿ｍｉｎｕｓ＊（１＋ΔＰ＊１）倍とする。つまり、ΔＰに比例して減算値が変化するのである。
【０１５８】
従って、本実施形態によれば、上記第２実施形態では加算値（又は減算値）を段階的・離散的に変化させたのに対し、連続的に変化させるようにしたため、そのときのモータ駆動速度により適切に対応したＰＷＭ初期値設定変更が可能となる。
【０１５９】
尚、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
例えば、上記各実施形態では、エンコーダエッジ検出時のＰＷＭ値に基づいて、その次のＰＷＭ初期値をどのように設定変更するかを決めたが、ＰＷＭ値に限らず、例えばエンコーダエッジ検出時の駆動速度（ｅｎｃ＿ｖｅｌｏｃｉｔｙ）に応じて設定変更してもよいし、また例えば、前回エンコーダエッジを検出してから今回再び検出するまでの周期（ｅｎｃ＿ｐｅｒｉｏｄ）に応じて設定変更するようにしてもよい。
【０１６０】
即ち、例えばエンコーダエッジ検出時の周期（ｅｎｃ＿ｐｅｒｉｏｄ）に応じて設定変更する場合、具体的には、図６の通常駆動処理におけるＳ２８０及びＳ３００の処理をそれぞれ、例えば図１３（ａ）又は図１３（ｂ）のように置き換えるとよい。
【０１６１】
まず、図１３（ａ）は、前回エンコーダエッジを検出してから今回再び検出するまでの周期（ｅｎｃ＿ｐｅｒｉｏｄ）に応じて設定変更する場合を示したものである。即ち、エンコーダエッジが検出されてＳ１０１０の処理に進むと、そのときのｅｎｃ＿ｐｅｒｉｏｄがｄｅｔ＿ｐｅｒｉｏｄ＿ｍａｘより大きいか否かを判断する。このｄｅｔ＿ｐｅｒｉｏｄ＿ｍａｘは、目標とする周期の例えば＋１０％と決めることができる。そして、ｄｅｔ＿ｐｅｒｉｏｄ＿ｍａｘより大きければＳ２９０に進んで次のＰＷＭ初期値が前回より大きくなるよう設定変更する。
【０１６２】
ｄｅｔ＿ｐｅｒｉｏｄ＿ｍａｘより小さい場合は、更にＳ１０２０に進み、ｅｎｃ＿ｐｅｒｉｏｄがｄｅｔ＿ｐｅｒｉｏｄ＿ｍｉｎより小さいか否かを判断する。このｄｅｔ＿ｐｅｒｉｏｄ＿ｍｉｎは、目標とする周期の例えば−１０％と決めることができる。そして、ｄｅｔ＿ｐｅｒｉｏｄ＿ｍｉｎより小さればＳ３１０に進んで、次のＰＷＭ初期値が前回より小さくなるよう設定変更する。尚、Ｓ１０１０の処理及びＳ１０２０の処理は、いずれも、本発明の経過時間判断手段が実行する処理に相当する。
【０１６３】
次に、図１３（ｂ）は、エンコーダエッジ検出時の駆動速度（ｅｎｃ＿ｖｅｌｏｃｉｔｙ）に応じて設定変更する場合を示したものである。即ち、エンコーダエッジが検出されてＳ１１００の処理に進むと、そのときのｅｎｃ＿ｖｅｌｏｃｉｔｙがｍｉｃｒｏ＿ｖｅｌｏ＿ｍｉｎより小さいか否かを判断する。このｍｉｃｒｏ＿ｖｅｌｏ＿ｍｉｎは、目標とする速度の例えば−１０％と決めることができる。そして、ｍｉｃｒｏ＿ｖｅｌｏ＿ｍｉｎより小さければＳ２９０に進んで次のＰＷＭ初期値が前回より大きくなるよう設定変更する。
【０１６４】
ｍｉｃｒｏ＿ｖｅｌｏ＿ｍｉｎより大きい場合は、更にＳ１１１０に進み、ｅｎｃ＿ｖｅｌｏｃｉｔｙがｍｉｃｒｏ＿ｖｅｌｏ＿ｍａｘより大きいか否かを判断する。このｍｉｃｒｏ＿ｖｅｌｏ＿ｍａｘは、目標とする周期の例えば＋１０％と決めることができる。そして、ｍｉｃｒｏ＿ｖｅｌｏ＿ｍａｘより小さればＳ３１０に進んで、次のＰＷＭ初期値が前回より小さくなるよう設定変更する。尚、１１００の処理及びＳ１１１０の処理は、いずれも、本発明の速度判断手段が実行する処理に相当する
このように、エッジ検出時の周期又は駆動速度に応じたＰＷＭ初期値設定変更によっても、上記第１実施形態と同様の効果を得ることができる。もちろん、第２実施形態及び第３実施形態においても同様に適用することができる。
【０１６５】
また、上記実施形態では、モータ駆動ドライバ回路１１として、図２のような、Ｈブリッジを構成する各スイッチング素子Ｓ１〜Ｓ４に対する駆動信号をそれぞれ駆動用信号生成部８から入力して動作するものを示したが、これに限らず、例えば図１４に示すモータ駆動ドライバ回路１１ｂや、或いは図１５に示すようなモータ駆動ドライバ回路１１ａのように構成してもよい。
【０１６６】
図１４に示したモータ駆動ドライバ回路１１ｂは、モータ１１０の通電電流を電流検出抵抗Ｒｄの電圧として検出することによりモータ１１０のトルクを検出し、その検出したトルクが、目標トルク指令と一致するようにモータ１１０の通電を制御するための制御信号を、ＤＣモータ駆動用ＩＣ８６内のトルク制御部８７が生成するように構成されている。  そして、駆動用信号生成部８ｂは、出力ＰＷＭデューティ生成部４からのＰＷＭ値に応じたＰＷＭ信号を生成すると共に、回転方向設定レジスタ２２の設定値及び起動設定レジスタ２１の設定値に従って、駆動方向（モータ１１０を回転すべき方向）指令、及びモータ１１０への通電を行うべきか否かを示す駆動指令を出力する。
【０１６７】
目標トルク指令（目標電流指令）は、ＰＷＭ生成部からのＰＷＭ信号を、抵抗Ｒ１，Ｒ２及びコンデンサＣ１から構成される積分回路で積分することにより得られるものである。尚、このＤＣモータ駆動用ＩＣ８６の内部も、図示はしないものの図２と同じようなＨブリッジ回路が形成されており、最終的には、トルク制御部８７からの制御信号に基づいてこのＨブリッジ回路を構成するスイッチング素子のスイッチング動作が制御されることになる。
【０１６８】
このように構成されたモータ駆動ドライバ回路１１ｂを用いれば、単にＰＷＭ信号に従って図２のモータ駆動ドライバ回路１１を駆動（スイッチング制御）するのに比べ、モータ駆動ドライバ回路１１内にてモータ１１０のトルクが一定になるよう制御されるため、安定したモータトルクによりキャリッジ１０２等を駆動することが可能となる。
【０１６９】
また、図１５に示したモータ駆動ドライバ回路１１ａは、図１４で説明したモータ駆動ドライバ回路１１ｂと比較して、抵抗Ｒ１，Ｒ２及びコンデンサＣ１で構成される積分回路がないだけであって、ＤＣモータ駆動用ＩＣは全く同じである。
【０１７０】
一方、駆動用信号生成部８ａは、起動設定レジスタ２１の設定値に基づいて駆動指令を生成し出力する。また、回転方向設定レジスタ２２の設定値にもとづいて、駆動方向指令を生成し出力する。ここまでは、図１４の駆動用信号生成部８ｂと同じである。
【０１７１】
そして、本実施形態の駆動用信号生成部８ａは、出力ＰＷＭデューティ生成部４からのＰＷＭ値に対し、電流値を表すデータとなるように所定のゲインを乗じ、それを図示しないＤ／Ａ変換器にてアナログ値の目標電流指令として、ＤＣモータ駆動用ＩＣ８６へ出力する。
【０１７２】
また、モータ１１０についても、ＤＣモータに限らずＡＣモータでも適用可能であり、ステップモータのような矩形パルスにより駆動されるモータを除くあらゆるモータに対して本発明を適用可能である。
【図面の簡単な説明】
【０１７３】
【図１】第１実施形態のモータ制御装置の概略構成を示すブロック図である。
【図２】駆動回路の概略構成を示す説明図である。
【図３】エンコーダからのパルス信号に対する、エンコーダエッジ検出信号、エンコーダエッジカウント値、エンコーダエッジ周期及び駆動速度の関係を説明するための説明図である。
【図４】第１実施形態のモータ制御例を示す説明図であり、（ａ）はモータ負荷が増加していく場合の制御例、（ｂ）はモータ負荷が減少していく場合の制御例である。
【図５】第１実施形態のＡＳＩＣ設定処理を示すフローチャートである。
【図６】第１実施形態の、モータの起動から減速開始までの通常駆動処理を示すフローチャートである。
【図７】第１実施形態の減速・停止処理を示すフローチャートである。
【図８】第１実施形態の位置検出パルス生成処理を示すフローチャートである。
【図９】第１実施形態の割り込み信号生成処理を示すフローチャートである。
【図１０】第２実施形態の通常駆動処理におけるエンコーダエッジ検出時のＰＷＭ初期値設定変更方法を示すフローチャートである。
【図１１】第２実施形態のモータ制御例を示す説明図である。
【図１２】第３実施形態の通常駆動処理におけるエンコーダエッジ検出時のＰＷＭ初期値設定変更方法を示すフローチャートである。
【図１３】通常駆動処理のフローチャートの変形例を示す説明図である。
【図１４】モータ駆動ドライバ回路の変形例を示す説明図である。
【図１５】モータ駆動ドライバ回路の変形例を示す説明図である。
【図１６】インクジェットプリンタの記録機構の概略構成を示す説明図である。
【図１７】従来のＤＣモータ制御方法を示す説明図であり、（ａ）はモータ負荷が一定の場合の制御例、（ｂ）はモータ負荷が増加していく場合の制御例である。
【図１８】エンコーダエッジ検出毎のＰＷＭ値リセット及び一定周期毎にＰＷＭ値が増加していくことを示す説明図である。
【符号の説明】
【０１７４】
１…ＣＰＵ、２…ＡＳＩＣ、３…動作モード設定レジスタ群、４…出力ＰＷＭデューティ生成部、６…初期ＰＷＭデューティ補正部、８，８ａ，８ｂ…駆動用信号生成部、１０…モータ制御装置、１１，１１ａ，１１ｂ…モータ駆動ドライバ回路、１２…クロック生成部、１３…エンコーダエッジ検出部、１４…位置カウンタ、１５…領域判定部、１５ａ…タイマ、１６…周期・速度計測部、１７…各種信号処理部、１８…加算タイミング生成部、２１…起動設定レジスタ、２２…回転方向設定レジスタ、２３…ＰＷＭ周波数設定レジスタ、２４…定加算タイミング設定レジスタ、２５…位置設定レジスタ群、２６…ＰＷＭ値設定レジスタ群、２７…ＰＷＭ増減値設定レジスタ群、２８…制限ＰＷＭ設定レジスタ群、２９…ＰＷＭ補正値設定レジスタ群、３０…ＰＷＭ閾値設定レジスタ群、８６…ＤＣモータ駆動用ＩＣ、８７…トルク制御部、１００…記録機構、１０１…ガイド軸、１０２…キャリッジ、１０３…記録ヘッド、１０４…移動ベルト、１０５…エンコーダ、１０６…キャップ装置、１０７…ノズル部、１１０…モータ、１２１…キャップ、１２２…バネ、１２３…スロープ、Ｃ１…コンデンサ、Ｒ１，Ｒ２…抵抗、Ｒｄ…電流検出抵抗、Ｓ１〜Ｓ４…スイッチング素子
【図１】
2005094857.tif 000003
【図２】
2005094857.tif 000004
【図３】
2005094857.tif 000005
【図４】
2005094857.tif 000006
【図５】
2005094857.tif 000007
【図６】
2005094857.tif 000008
【図７】
2005094857.tif 000009
【図８】
2005094857.tif 000010
【図９】
2005094857.tif 000011
【図１０】
2005094857.tif 000012
【図１１】
2005094857.tif 000013
【図１２】
2005094857.tif 000014
【図１３】
2005094857.tif 000015
【図１４】
2005094857.tif 000016
【図１５】
2005094857.tif 000017
【図１６】
2005094857.tif 000018
【図１７】
2005094857.tif 000019
【図１８】
2005094857.tif 000020