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