(57)【特許請求の範囲】
【請求項１】
エンジンを車体に支承するとともに、前記エンジンの回転変動を検出するセンサからの出力に基づいて前記エンジンの振動状態を推定する制御手段がアクチュエータを伸縮駆動して、振動の伝達を抑制する能動型防振支持装置において、
前記制御手段は、
前記センサからの出力データを用いて前記エンジンの振動の伝達を抑制する目標電流値波形を算出し、その目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得するとともに、
前記アクチュエータの駆動タイミングにおけるエンジン回転速度により定まる所定時間に基づき前記エンジンの振動の周期長さを推定し、
前記推定された前記エンジンの振動の周期長さに対応するように、前記取得された目標電流値のデータの集合体を補正して前記アクチュエータに給電する前記目標電流値波形を補正し、
補正された後の前記目標電流値波形が、算出された前記目標電流値のピーク値を中心にして対称になることを特徴とする能動型防振支持装置。
【請求項２】
前記制御手段は、
前記エンジンの回転変動を検出する前記センサからの前記出力データを用いて、エンジン振動の振幅及び周期長さを推定する振動状態推定手段と、
前記振動状態推定手段で推定された前記振幅及び前記周期長さに基づいて、前記アクチュエータを駆動する前記目標電流値波形を算出する目標電流算出手段と、
前記目標電流算出手段で算出された前記目標電流値波形から一定のサンプリング周期により前記目標電流値のデータの集合体を取得する目標電流値集合体生成手段と、
前記アクチュエータの駆動タイミングにおけるエンジン回転速度により定まる前記所定時間に基づき前記エンジンの振動の周期長さを推定する駆動時振動周期推定手段と、
前記アクチュエータへの電力を給電制御する給電制御手段と、
前記駆動時振動周期推定手段において推定された前記エンジンの振動の周期長さに対応するように、前記取得された前記目標電流値のデータの集合体を補正して前記給電制御手段に出力する出力時補正手段と、
を備えることを特徴とする請求の範囲第１項に記載の能動型防振支持装置。
【請求項３】
前記出力時補正手段は、
エンジン回転速度が加速している場合は、前記駆動時振動周期推定手段において推定された前記エンジンの振動の周期長さに対応する個数の前記目標電流値のデータの集合体となるように、前記取得された前記目標電流値のデータの集合体の内、ピーク値の前後の所定数のデータを飛ばして出力し、
エンジン回転速度が減速している場合は、前記駆動時振動周期推定手段において推定された前記エンジンの振動の周期長さに対応する個数の前記目標電流値のデータの集合体となるように、前記取得された前記目標電流値のデータの集合体の内、ピーク値を所定数繰り返して出力することを特徴とする請求の範囲第２項に記載の能動型防振支持装置。
【請求項４】
エンジンの回転に基づく前記センサからのクランクパルス信号を計測し、前記エンジンの振動の周期における第１の振動周期に属するクランクパルス信号のデータを用いて、次の第２の振動周期において防振用の前記アクチュエータに流す前記目標電流値波形を算出し、次の第３の振動周期において前記算出された前記目標電流値波形を用いて前記アクチュエータを駆動制御する制御手段を備えた能動型防振支持装置であって、
前記制御手段は、
前記エンジンの振動の前記第２の振動周期において、
前記エンジンの振動の前記第１の振動周期に属する前記クランクパルス信号のデータを用いて、前記エンジン振動の前記第１の振動周期におけるエンジン振動の振幅及び周期長さを推定するとともに、前記推定された振幅及び前記周期長さに基づいて、前記アクチュエータを駆動する目標電流値波形を算出し、
更に、前記算出された目標電流値波形から一定のサンプリング周期により前記目標電流値のデータの集合体を取得し、
前記エンジンの振動の第３の振動周期において、
前記エンジン回転速度により定まる前記所定時間を検出し、前記検出された前記所定時間に基づき、前記第３の振動周期の周期長さに対応するように、前記取得された前記目標電流値のデータの集合体を補正して前記アクチュエータを駆動することを特徴とする請求の範囲第１項に記載の能動型防振支持装置。
【請求項５】
前記制御手段は、
前記センサからの出力データを用いて前記エンジンの振動の伝達を抑制する目標電流値波形を算出し、その目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得するとともに、
前記センサからの信号に基づく所定のタイミングで出力されている前記目標電流値のデータの集合体中の目標電流値のデータの位置に基づき、そのときの前記エンジンの振動の周期長さに対応するように、前記出力中の目標電流値のデータの集合体の未出力のデータ部分のデータ個数を調整して前記アクチュエータに給電することを特徴とする請求の範囲第１項に記載の能動型防振支持装置。
【請求項６】
周期的に繰り返されるエンジンの振動周期のうちの１つの周期において、前記エンジンの回転変動を検出するセンサからの当該周期における出力値を読み取る読取処理と、
次の周期において、前の周期で読み取った前記センサからの出力値に基づいて防振用のアクチュエータに給電するための目標電流値波形を演算する演算処理と、
その次の周期において、前の周期で算出した前記目標電流値波形に応じた電流を前記アクチュエータに出力して前記エンジンの振動を抑制する出力処理と、をサイクルとして繰り返して行う能動型防振支持装置における防振制御方法であって、
前記演算処理において、前記算出された目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得し、
前記出力処理において、前記エンジンの回転速度の加減速に基づいて各サイクルでの前記出力処理における前記目標電流値波形に応じた電流の出力ときに、そのときのエンジン回転速度により定まる所定時間を検出し、前記エンジンのそのサイクルでの振動の周期長さに対応するように、目標電流値のデータの個数を調整する目標電流値波形長さ調整処理を行い、
前記目標電流値波形長さ調整処理では、前の周期で算出した前記目標電流値波形のピーク値を中心にして波形が対称になるように、出力する前記目標電流値波形を調整することを特徴とする防振制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両のエンジンを車体に支承する能動型防振支持装置及びその防振制御方法に関する。
【背景技術】
【０００２】
特許文献１には、能動型防振支持装置の技術が開示されている。前記特許文献１に記載の従来技術では、エンジンの１つの振動周期におけるエンジン回転速度センサ、荷重センサ及び加速度センサの出力に基づいてアクティブ・コントロール・マウントのアクチュエータの可動部材に対する目標リフト量を算出する。そして、算出された目標リフト量に基づいて、その次の振動周期においてアクチュエータに出力する駆動電流を制御するデューティ集合体のデューティ比が決定される。このとき、デューティ集合体の始点のタイミングである位相遅れも併せて決定される。【０００３】
次いで、更に次の振動周期において、前記したエンジンの振動の周期長さＴ１、Ｔ２、Ｔ３・・・に対応して算出した第１、第２、第３・・・のデューティ集合体に基づいて、能動型防振支持装置のアクチュエータを駆動する。エンジン回転速度が増加してエンジンの振動の周期長さＴ１、Ｔ２、Ｔ３・・・が次第に短くなると、第１、第２、第３・・・のデューティ集合体の終わりにおいてアクチュエータに供給される電流が０にならず、その電流のピーク値が次第に増加して能動型防振支持装置が有効な防振機能を発揮できなくなるだけでなく、アクチュエータが発熱する可能性がある。そこで、特許文献１に記載の従来技術では、例えば、第１、第２のデューティ集合体のオーバーラップ量が閾値を超えた場合に、その第２のデューティ集合体のデューティ比を０にしてアクチュエータへの給電を停止するようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された技術では、例えば、第１、第２のデューティ集合体のオーバーラップ量が閾値を超えた場合に、その第２のデューティ集合体のデューティ比を０にしてアクチュエータへの給電を停止するようにしている。その結果、連続する複数のエンジンの振動周期において、アクチュエータへの電流出力が抜けてしまうことがあり、エンジン振動に対する防振制御が充分にできなくなってしまうという課題がある。【０００６】
そこで、本発明は、アクチュエータへの給電を停止することなく、エンジン振動に対する防振機能を発揮することができる能動型防振支持装置及びその防振制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求の範囲第１項に係る発明の能動型防振支持装置は、エンジンを車体に支承するとともに、エンジンの回転変動を検出するセンサからの出力に基づいてエンジンの振動状態を推定する制御手段がアクチュエータを伸縮駆動して、振動の伝達を抑制するものであって、制御手段は、センサからの出力データを用いてエンジンの振動の伝達を抑制する目標電流値波形を算出し、その目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得するとともに、アクチュエータの駆動タイミングにおけるエンジン回転速度により定まる所定時間に基づきエンジンの振動の周期長さを推定し、推定されたエンジンの振動の周期長さに対応するように、取得された目標電流値のデータの集合体を補正してアクチュエータに給電する目標電流値波形を補正し、補正された後の目標電流値波形が、算出された目標電流値のピーク値を中心にして対称になることを特徴とする。
【０００８】
請求の範囲第１項に記載の発明によれば、制御手段は、センサからの出力データを用いてエンジンの振動の伝達を抑制する目標電流値波形を算出し、その目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得する。そして、制御手段は、アクチュエータの駆動タイミングにおけるエンジン回転速度により定まる所定時間に基づきエンジンの振動の周期長さを推定し、推定されたエンジンの振動の周期長さに対応するように、取得された目標電流値のデータの集合体を補正してアクチュエータに給電する。
その結果、目標電流値のデータの集合体に含まれるデータ個数を、アクチュエータに給電する際のエンジンの振動の周期長さに適合した適切な個数に補正した後に出力できるので、能動型防振支持装置の制御を適切に行うことができる。【０００９】
請求の範囲第２項に係る発明の能動型防振支持装置は、請求の範囲第１項に記載の発明の構成に加え、更に、制御手段は、エンジンの回転変動を検出するセンサからの出力データを用いて、エンジン振動の振幅及び周期長さを推定する振動状態推定手段と、振動状態推定手段で推定された振幅及び周期長さに基づいて、アクチュエータを駆動する目標電流値波形を算出する目標電流算出手段と、目標電流算出手段で算出された目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得する目標電流値集合体生成手段と、アクチュエータの駆動タイミングにおけるエンジン回転速度により定まる所定時間に基づきエンジンの振動の周期長さを推定する駆動時振動周期推定手段と、アクチュエータへの電力を給電制御する給電制御手段と、駆動時振動周期推定手段において推定されたエンジンの振動の周期長さに対応するように、取得された目標電流値のデータの集合体を補正して給電制御手段に出力する出力時補正手段と、を備えることを特徴とする。【００１０】
請求の範囲第２項に記載の発明によれば、制御手段は、先に、目標電流値集合体生成手段において取得された目標電流値のデータの集合体に含まれるデータ個数を、駆動時振動周期推定手段において推定されたエンジンの振動の周期長さに対応するように、出力時補正手段によって適切な個数に補正した後に、給電制御手段へ出力できるので、能動型防振支持装置の制御を適切に行うことができる。【００１１】
請求の範囲第３項に係る発明の能動型防振支持装置は、請求の範囲第２項に記載の発明の構成に加えて、更に、出力時補正手段は、エンジン回転速度が加速している場合は、駆動時振動周期推定手段において推定されたエンジンの振動の周期長さに対応する個数の目標電流値のデータの集合体となるように、取得された目標電流値のデータの集合体の内、ピーク値の前後の所定数のデータを飛ばして出力し、エンジン回転速度が減速している場合は、駆動時振動周期推定手段において推定されたエンジンの振動の周期長さに対応する個数の目標電流値のデータの集合体となるように、取得された目標電流値のデータの集合体の内、ピーク値を所定数繰り返して出力することを特徴とする。【００１２】
請求の範囲第３項に記載の発明によれば、アクチュエータの駆動タイミングにおいて、エンジン回転速度が加速している場合は、出力時補正手段は、駆動時振動周期推定手段において推定されたエンジンの振動の周期長さに対応する個数の目標電流値のデータの集合体となるように、取得された目標電流値のデータの集合体の内、ピーク値の前後の所定数のデータを飛ばして出力するので、アクチュエータに対する次のエンジンの振動周期に対する目標電流値の出力とオーバーラップすることがなく適切にアクチュエータを駆動制御できる。逆に、エンジン回転速度が減速している場合は、出力時補正手段は、駆動時振動周期推定手段において推定されたエンジンの振動の周期長さに対応する個数の目標電流値のデータの集合体となるように、取得された目標電流値のデータの集合体の内、ピーク値を所定数繰り返して出力するので、次のエンジンの振動周期に対する目標電流値の出力との間に余分な無通電の期間を生じることを防止でき、適切にアクチュエータを駆動制御できる。その結果、駆動タイミングにおけるエンジン振動の周期長さに応じた目標電流値波形の出力ができ、アクチュエータを滑らかに駆動できる。
【００１３】
請求の範囲第４項に係る発明の能動型防振支持装置は、請求の範囲第１項に記載の発明の構成に加え、更に、エンジンの回転に基づくセンサからのクランクパルス信号を計測し、エンジンの振動の周期における第１の振動周期に属するクランクパルス信号のデータを用いて、次の第２の振動周期において防振用のアクチュエータに流す目標電流値波形を算出し、次の第３の振動周期において前記算出された目標電流値波形を用いて前記アクチュエータを駆動制御する制御手段を備えたものであって、
制御手段は、エンジンの振動の第２の振動周期において、エンジンの振動の第１の振動周期に属するクランクパルス信号のデータを用いて、エンジン振動の第１の振動周期におけるエンジン振動の振幅及び周期長さを推定するとともに、推定された振幅及び周期長さに基づいて、アクチュエータを駆動する目標電流値波形を算出し、更に、算出された目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得し、
エンジンの振動の第３の振動周期において、エンジン回転速度により定まる所定時間を検出し、検出された所定時間に基づき、第３の振動周期の周期長さに対応するように、取得された目標電流値のデータの集合体を補正してアクチュエータを駆動することを特徴とする。【００１４】
請求の範囲第４項に記載の発明によれば、制御手段は、エンジンの振動の第２の振動周期において、エンジン振動の第１の振動周期におけるエンジン振動の振幅及び周期長さを推定するとともに、推定された振幅及び前記周期長さに基づいて、アクチュエータを駆動する目標電流値波形を算出し、更に、算出された目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得する。そして、制御手段は、エンジンの振動の第３の振動周期において、エンジン回転速度により定まる所定時間を検出し、検出された所定時間に基づき、第３の振動周期の周期長さに対応するように、取得された目標電流値のデータの集合体を補正する。
その結果、目標電流値のデータの集合体に含まれるデータ個数を、アクチュエータに給電する際のエンジンの振動の周期長さに適切な個数に補正した後に出力できるので、能動型防振支持装置の制御を適切に行うことができる。【００１５】
請求の範囲第５項に係る発明の能動型防振支持装置は、請求の範囲第１項に記載の発明の構成に加え、更に、制御手段は、センサからの出力データを用いてエンジンの振動の伝達を抑制する目標電流値波形を算出し、その目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得するとともに、センサからの信号に基づく所定のタイミングで出力されている目標電流値のデータの集合体中の目標電流値のデータの位置に基づき、そのときのエンジンの振動の周期長さに対応するように、出力中の目標電流値のデータの集合体の未出力のデータ部分のデータ個数を調整してアクチュエータに給電することを特徴とする。【００１６】
請求の範囲第５項に記載の発明によれば、制御手段は、センサからの出力データを用いてエンジンの振動の伝達を抑制する目標電流値波形を算出し、その目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得するとともに、センサからの信号に基づく所定のタイミングで出力されている目標電流値のデータの集合体中の目標電流値のデータの位置に基づき、そのときのエンジンの振動の周期長さに対応するように、出力中の目標電流値のデータの集合体の未出力のデータ部分のデータ個数を調整してアクチュエータに給電する。従って、目標電流値のデータの集合体に含まれるデータ個数を、アクチュエータに給電する際のエンジンの振動の周期長さに適切な個数に補正した後に出力できる。その結果、能動型防振支持装置の制御を適切に行うことができる。【００１７】
請求の範囲第６項に係る発明は、周期的に繰り返されるエンジンの振動周期のうちの１つの周期において、エンジンの回転変動を検出するセンサからの当該周期における出力値を読み取る読取処理と、次の周期において、前の周期で読み取った前記センサからの出力値に基づいて防振用のアクチュエータに給電するための目標電流値波形を演算する演算処理と、その次の周期において、前の周期で算出した目標電流値波形に応じた電流をアクチュエータに出力して前記エンジンの振動を抑制する出力処理と、をサイクルとして繰り返して行う能動型防振支持装置における防振制御方法であって、演算処理において、算出された目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得し、出力処理において、エンジンの回転速度の加減速に基づいて前記エンジンの振動周期の各サイクルでの出力処理における目標電流値波形に応じた電流の出力ときに、そのときのエンジン回転速度により定まる所定時間を検出し、エンジンのそのサイクルでの振動の周期長さに対応するように、目標電流値のデータの個数を調整する目標電流値波形長さ調整処理を行い、目標電流値波形長さ調整処理では、前の周期で算出した目標電流値波形のピーク値を中心にして波形が対称になるように、出力する目標電流値波形を調整することを特徴とする。
【００１８】
請求の範囲第６項に記載の発明によれば、能動型防振支持装置は、エンジンの回転速度の加減速に基づいて前記エンジンの振動周期の各サイクルでの出力処理における目標電流値波形に応じた電流の出力のときに、そのときのエンジン回転速度により定まる所定時間を検出し、エンジンのそのサイクルでの振動の周期長さに対応するように、目標電流値のデータの個数を調整する。その結果、エンジンの回転変動に合わせて目標電流値のデータの個数を調整するので、能動型防振支持装置の制御を適切に行うことができる。
【発明の効果】
【００１９】
本発明によると、アクチュエータへの通電を停止することなく、エンジン振動に対する防振機能を発揮することができる能動型防振支持装置及びその防振制御方法を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】実施形態に係る能動型防振支持装置のアクティブ・コントロール・マウントの構造を示す縦断面図である。
【図２】図１のＡ部拡大図である。
【図３】能動型防振支持装置の構成を示す機能ブロック図である。
【図４】ＴＤＣパルス信号及びクランクパルス信号と同期させたＡＣＭ＿ＥＣＵのマイクロコンピュータにおけるＡＣＭ制御の演算処理サイクルの説明図であり、（ａ）は、演算処理のサイクルのタイムチャートであり、（ｂ）は、各演算処理サイクル内をクランクパルス信号に基づいて４つのステージＳＴＧに分割する方法を説明するタイミングチャートであり、（ｃ）は、（ａ）におけるＣＵＣＹＬ＝０の演算処理サイクルにおいて取得されたクランクパルス信号に対する、続く２つの演算処理サイクルにおける演算処理の内容を説明するタイミングチャートであり、（ｄ）は、出力された目標電流値波形に応じた電流に対するフィードバック制御を説明するタイミングチャートである。
【図５】アクチュエータの駆動タイミングにおけるアクティブ・コントロール・マウントＭＦ，ＭＲに対する目標電流値波形を例示し、（ａ）は、アクティブ・コントロール・マウントＭＦに対する目標電流値波形ＩＴＦｒの説明図、（ｂ）は、アクティブ・コントロール・マウントＭＲに対する目標電流値波形ＩＴＲｒの説明図である。
【図６】防振制御の流れを示すフローチャートである。
【図７】防振制御の流れを示すフローチャートである。
【図８】防振制御の流れを示すフローチャートである。
【図９】防振制御の流れを示すフローチャートである。
【図１０】防振制御の流れを示すフローチャートである。
【図１１】エンジン回転速度が加速する場合のクランクパルス間隔読み取り処理サイクルにおいて取得されたクランクパルス信号に基づき算出された位相遅れＰ１Ｆと、目標電流出力処理サイクルにおける位相遅れの調整処理、並びに、目標電流値波形を出力する際の目標電流値のデータの集合体の補正処理の説明図であり、（ａ）は、クランクパルス信号のタイムチャートとエンジン振動の周期の対応関係説明図、（ｂ）は、演算処理サイクルのタイムチャート、（ｃ）は、Ｆｒ側の目標電流値波形を出力する際の位相遅れの調整処理、並びに、目標電流値波形長さ調整処理の説明図である。
【図１２】エンジン回転速度の加速の場合の、目標電流出力処理サイクルにおけるＦｒ側の目標電流値波形に係る目標電流値のデータの集合体に含まれる目標電流値Ｆｒ＿ＩＣＭＤの出力制御の詳細説明図であり、（ａ）は、エンジン振動の第１の周期Ｃ１におけるクランクパルス信号のタイムチャート、（ｂ）は、第１の周期Ｃ１の周期長さＴ１の説明図、（ｃ）は、第１の周期Ｃ１の周期長さＴ１の区間でＣＲＫパルス間隔読取処理をしていることを示すタイムチャート、（ｄ）は、ＣＲＫパルス間隔読取処理サイクルにおける各ステージＳＴＧの分割を示すタイムチャート、（ｅ）は、エンジン振動の第３の周期Ｃ３におけるクランクパルス信号のタイムチャート、（ｆ）は、第３の周期Ｃ３の周期長さＴ３の説明図、（ｇ）は、第３の周期Ｃ３の周期長さＴ３の区間に対応して開始される目標電流出力処理をしていることを示すタイムチャート、（ｈ）は、第３の周期Ｃ３の周期長さＴ３における各ステージＳＴＧの分割を示すタイムチャート、（ｉ）は、エンジン振動の第１の周期Ｃ１に対応して算出された位相遅れＰ１Ｆ、周期長さＴ１の目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体と、エンジン振動の第３の周期Ｃ３において位相遅れがδ１に補正され、周期がＴ３’に補正され出力される実際の目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体との比較図である。
【図１３】エンジン回転速度の加速の場合の、駆動用パルス制御信号出力時補正部におけるＦｒ側の目標電流値波形に係る目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体の補正方法の説明図であり、（ａ）は、エンジン振動の第１の周期Ｃ１の周期長さＴ１に応じて生成されたＦｒ側の目標電流値Ｆｒ＿ＩＣＭＤのＮ１Ｆ個のデータと電流ピーク位置ＮＣＦを示す説明図、（ｂ）は、エンジン振動の第３の周期Ｃ３の推定された周期長さＴ３’に応じたデータ個数Ｎ２Ｆになるように電流ピーク位置ＮＣＦ前後のΔＮＦ個のデータを出力しないように特定する説明図、（ｃ）は、電流ピーク位置ＮＣＦ前後のΔＮＦ個のデータを飛ばして、出力された目標電流値Ｆｒ＿ＩＣＭＤの説明図である。
【図１４】エンジン回転速度の減速の場合の、目標電流出力処理サイクルにおけるＦｒ側の目標電流値波形に係る目標電流値のデータの集合体に含まれる電流ピーク位置の目標電流値のデータを所定個数繰り返す出力制御の詳細説明図であり、（ａ）は、エンジン振動の第１の周期Ｃ１の周期長さＴ１に応じて生成されたＦｒ側の目標電流値Ｆｒ＿ＩＣＭＤのＮ１Ｆ個のデータと電流ピーク位置ＮＣＦを示す説明図、（ｂ）は、エンジン振動の第３の周期Ｃ３の推定された周期長さＴ３’に応じたデータ個数Ｎ２Ｆになるように先ず電流ピーク位置ＮＣＦまでＦｒ側の目標電流値Ｆｒ＿ＩＣＭＤを出力する説明図、（ｃ）は、電流ピーク位置ＮＣＦの後にΔＮＦ個の電流ピーク位置ＮＣＦにおける目標電流値Ｆｒ＿ＩＣＭＤデータを追加して、その後、電流ピーク位置ＮＣＦより後に続くＦｒ側の目標電流値Ｆｒ＿ＩＣＭＤを出力する説明図である。
【図１５】エンジン回転速度の加速の場合のＦｒ側の目標電流値のＦｒ＿ＩＣＭＤの実際の出力をエンジン振動の５周期に亘り示した説明図である。
【図１６】エンジン回転速度の減速の場合のＦｒ側の目標電流値のＦｒ＿ＩＣＭＤの実際の出力をエンジン振動の５周期に亘り示した説明図である。
【図１７】実施形態の変形例における防振制御の流れの変更部分を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について、適宜図を参照しながら詳細に説明する。
（能動型防振支持装置の全体構成）
図１は、本実施形態に係わる能動型防振支持装置のアクティブ・コントロール・マウントの構造を示す縦断面図であり、図２は図１のＡ部拡大図である。
【００２２】
本実施形態に係わる能動型防振支持装置３０１は、上下方向に伸縮駆動することが可能で、車両のエンジンを車体フレームに弾性的に支承するために用いられるアクティブ・コントロール・マウントＭＦ，ＭＲを、エンジンの前後方向に２つ配置してなる。
なお、以下ではアクティブ・コントロール・マウントＭＦ，ＭＲを特に区別する必要がない場合は、単にアクティブ・コントロール・マウントＭと記載する。
【００２３】
ここで、エンジンは、例えば、クランクシャフト（図示せず）の一端にトランスミッションが結合されるとともに、クランクシャフトが車両の本体に横向きに配置される、いわゆる横置きのＶ型６気筒エンジンである。従って、エンジンはクランクシャフト方向が車両の左右方向に配置され、エンジンによるロール方向の振動を抑制するため、エンジンを挟んで、車両の前方側にアクティブ・コントロール・マウントＭＦが、車両の後方側にアクティブ・コントロール・マウントＭＲが対にして備えられている。
【００２４】
アクティブ・コントロール・マウントＭＦ，ＭＲは、エンジンの重心の高さより低い位置に取り付けられ、エンジンの前後方向のロール振動を抑制するとともに、エンジンを車両の車体に弾性支持（支承）する。
【００２５】
図１に示すように、能動型防振支持装置３０１は、アクティブ・コントロール・マウントＭ，Ｍ（図１では、代表的に１つのアクティブ・コントロール・マウントＭのみを表示）を制御するアクティブ・コントロール・マウント制御ＥＣＵ２００を備えている。以下では、アクティブ・コントロール・マウント制御ＥＣＵ２００は、「ＡＣＭ＿ＥＣＵ２００」と称する。
ＡＣＭ＿ＥＣＵ２００はエンジン回転速度Ｎｅや出力トルク等を制御するエンジン制御ＥＣＵ（以下、「エンジンＥＣＵ」と称する）１００とＣＡＮ通信等で接続されている。ここで、ＡＣＭ＿ＥＣＵ２００が請求の範囲に記載の「制御手段」に対応する。
【００２６】
（ＡＣＭの構成）
図１に示すように、アクティブ・コントロール・マウントＭは、軸線Ｌに関して実質的に軸対称な構造を有するもので、略円筒状の上部ハウジング１１と、その下側に配置された略円筒状の下部ハウジング１２と、下部ハウジング１２内に収容されて上面が開放した略カップ状のアクチュエータケース１３と、上部ハウジング１１の上側に接続したダイヤフラム２２と、上部ハウジング１１内に格納された環状の第１弾性体支持リング１４と、第１弾性体支持リング１４の上側に接続した第１弾性体１９と、アクチュエータケース１３に収容された環状の第２弾性体支持リング１５と、第２弾性体支持リング１５の内周側に接続した第２弾性体２７と、アクチュエータケース１３に収容され第２弾性体支持リング１５及び第２弾性体２７の下方に配置された駆動部（アクチュエータ）４１等から構成されている。
【００２７】
上部ハウジング１１下端のフランジ部１１ａと、下部ハウジング１２の上端のフランジ部１２ａとの間に、アクチュエータケース１３の外周のフランジ部１３ａと、第１弾性体支持リング１４の外周部１４ａと、第２弾性体支持リング１５の上面外周部１５ａとが重ね合わされてカシメにより結合される。このとき、フランジ部１２ａとフランジ部１３ａとの間に環状の第１フローティングラバー１６を介在させ、かつフランジ部１３ａの上面と第２弾性体支持リング１５の上面外周部１５ａ下面との間に環状の第２フローティングラバー１７を介在させることで、アクチュエータケース１３は、上部ハウジング１１及び下部ハウジング１２に対して上下方向に相対移動可能にフローティング支持される。
【００２８】
第１弾性体支持リング１４と、第１弾性体１９の上面側に設けられた凹部内に配置された第１弾性体支持ボス１８とは、厚肉のラバーで形成された第１弾性体１９の下端及び上端で、加硫接着によって接合されている。更に、第１弾性体支持ボス１８の上面にダイヤフラム支持ボス２０がボルト２１で固定されており、ダイヤフラム支持ボス２０に内周部を加硫接着によって接合されたダイヤフラム２２の外周部が、上部ハウジング１１に加硫接着により接合されている。
ダイヤフラム支持ボス２０の上面にはエンジン取付部２０ａが一体に形成され、エンジンに固定される（詳細な固定方法は、図示省略してある）。また、下部ハウジング１２の下端の車体取付部１２ｂが図示しない車体フレームに固定される。
【００２９】
上部ハウジング１１の上端のフランジ部１１ｂには、ストッパ部材２３の下端のフランジ部２３ａがボルト２４及びナット２５で結合されており、ストッパ部材２３の上部内面に取り付けたストッパラバー２６に、ダイヤフラム支持ボス２０の上面に突設したエンジン取付部２０ａが当接可能に対向する。
このような構造によって、アクティブ・コントロール・マウントＭにエンジンから大きな荷重が入力したとき、エンジン取付部２０ａがストッパラバー２６に当接することで、エンジンの過大な変位が抑制される。
【００３０】
第２弾性体支持リング１５の内周面には、膜状のラバーで形成された第２弾性体２７の外周部が加硫接着により接合されており、第２弾性体２７の中央部にその上部が埋め込まれるように可動部材２８が加硫接着により接合される。
【００３１】
そして、第２弾性体支持リング１５の上面と第１弾性体支持リング１４の下部との間に円板状の隔壁部材２９が固定されており、第１弾性体支持リング１４、第１弾性体１９及び隔壁部材２９により区画された第１液室３０と、隔壁部材２９及び第２弾性体２７により区画された第２液室３１とが、隔壁部材２９の中央に開口している連通孔２９ａを介して相互に連通する。
【００３２】
第２弾性体２７の外周部２７ａは、第２弾性体支持リング１５の下面外周部１５ｂ（図２参照）と後記するヨーク４４との間に挟持され、シール機能を有するようになっている。
また、第１弾性体支持リング１４と上部ハウジング１１との間に環状の連通路３２が形成されている。連通路３２は連通孔３３を介して第１液室３０に連通するとともに、環状の連通間隙３４を介して、第１弾性体１９とダイヤフラム２２により区画された第３液室３５に連通する。
【００３３】
図２に示すようにコイル組立体４３は、固定コア４２及びヨーク４４間に配置され、コイル４６とコイル４６の周囲を覆うコイルカバー４７とで構成される。コイルカバー４７には、下部ハウジング１２及びアクチュエータケース１３に形成された開口部１２ｃ，１３ｂを貫通して外部に延出するコネクタ４８が一体に形成され、そこにコイル４６に給電する給電線が接続される。
【００３４】
ヨーク４４は、コイルカバー４７の上面側に環状の鍔部を持ち、その鍔部の内周から下方に伸びる円筒部４４ａを有する、謂わば、フランジ付き円筒の形状である。コイルカバー４７の上面とヨーク４４の鍔部の下面との間にシール部材４９が配置され、コイルカバー４７の下面と固定コア４２の上面との間にシール部材５０が配置される。これらのシール部材４９，５０によって下部ハウジング１２及びアクチュエータケース１３に形成した開口部１２ｃ，１３ｂから駆動部４１の内部空間に水や塵が入り込むのを阻止することができる。
【００３５】
ヨーク４４の円筒部の内周面には、薄肉円筒状の軸受け部材５１が上下方向に摺動自在に嵌合しており、この軸受け部材５１の上端には径方向内向きに折り曲げられた上部フランジ５１ａが形成されるとともに、下端には径方向外向きに折り曲げられた下部フランジ５１ｂが形成されている。
下部フランジ５１ｂとヨーク４４の円筒部４４ａの下端との間には、セットばね５２が圧縮状態で配置されており、このセットばね５２の弾性力で軸受け部材５１の下部フランジ５１ｂを下方に付勢して、下部フランジ５１ｂの下面と固定コア４２との間に配された弾性体５３を介して、固定コア４２の上面に押し付けることで、軸受け部材５１がヨーク４４にて支持される。
【００３６】
軸受け部材５１の内周面には、略円筒状の可動コア５４が上下方向に摺動自在に嵌合する。更に、固定コア４２及び可動コア５４はそれぞれ軸線Ｌ上の中心部が中空になっており、そこに前記した可動部材２８の中心部（軸線Ｌ上）に接続して下方に伸びる略円柱状のロッド５５が挿通されている。ロッド５５の下端部にはナット５６が締結される。ナット５６は、中心部に上端が開口した中空部を有し、その中空部にロッド５５の下端側を収容している。ナット５６の上端部５６ａは、その下方よりもやや外径が大きく、上端部５６ａの上面が可動コア５４のばね座５４ａの下面と当接するようになっている。
【００３７】
また、可動コア５４のばね座５４ａと可動部材２８の下面との間には、圧縮状態のセットばね５８が配置され、このセットばね５８の弾性力で可動コア５４は下方に付勢され、可動コア５４の前記ばね座５４ａの下面がナット５６の上端部５６ａの上面に押し付けられて固定される。この状態で、可動コア５４の円筒部の円錐の周面形状の内周面と固定コア４２の円錐の周面形状の外周面とが、円錐の周面状のギャップｇを介して対向している。
ロッド５５に対し、ナット５６は固定コア４２の中心に形成された開口４２ａ内で上下位置を調整されて締結されており、この開口４２ａは、ゴム製のキャップ６０で閉塞される。
【００３８】
（アクティブ・コントロール・マウントの作用）
駆動部４１のコイル４６は、ＡＣＭ＿ＥＣＵ２００からの給電制御により励磁され、可動コア５４を吸引して可動部材２８を下方側に移動させる。この可動部材２８の移動に伴い、第２液室３１を区画する第２弾性体２７が下方に変形して第２液室３１の容積が増加する。逆に、コイル４６を消磁すると、第２弾性体２７が自己の弾性により上方に変形し、可動部材２８及び可動コア５４が上昇し、第２液室３１の容積が減少する。
【００３９】
しかして、車両の走行中に低周波数（例えば、７〜２０Ｈｚ）のエンジン、車体、サスペンションの連成系において車体の剛体振動とエンジン系の共振により発生する低周波振動であるエンジンシェイク振動が発生したとき、エンジンからダイヤフラム支持ボス２０及び第１弾性体支持ボス１８を介して入力される荷重で第１弾性体１９が変形して第１液室３０の容積が変化すると、連通路３２を介して接続された第１液室３０及び第３液室３５の間で液体が流通する。この状態で、第１液室３０の容積が拡大・縮小すると、それに応じて第３液室３５の容積は縮小・拡大するが、この第３液室３５の容積変化はダイヤフラム２２の弾性変形により吸収される。このとき、連通路３２の形状及び寸法、並びに第１弾性体１９のばね定数は、前記エンジンシェイク振動の周波数領域で低ばね定数及び高減衰力を示すように設定されているため、エンジンから車体フレームに伝達される振動を効果的に低減することができる。
なお、前記エンジンシェイク振動の周波数領域では、エンジンが定常回転の場合は、駆動部４１は駆動しない非作動状態に保たれる。
【００４０】
前記エンジンシェイク振動よりも周波数の高い振動、すなわちエンジンの図示しないクランクシャフトの回転に起因するアイドル時の振動や、エンジンの気筒の一部を休止してエンジンを駆動する気筒休止運転時の振動が発生した場合、第１液室３０及び第３液室３５を接続する連通路３２内の液体はスティック状態になって防振機能を発揮できなくなるため、アクティブ・コントロール・マウントＭＦ，ＭＲの駆動部４１，４１を駆動して防振機能を発揮させる。
【００４１】
ちなみに、アイドル振動は、アイドル回転状態でフロア、シート及びステアリング・ホイールが低周波振動を起こすもので、ブルブル振動は４気筒エンジンで、例えば、２０〜３５Ｈｚ、６気筒エンジンで、例えば３０〜５０Ｈｚであり、ユサユサ振動は５〜１０Ｈｚで燃焼不均一にて発生し、エンジンのロール振動が主な要因である。
【００４２】
そこで、駆動部４１，４１を駆動するため、図１に示すアクティブ・コントロール・マウントＭＦ，ＭＲを含む能動型防振支持装置３０１では、クランクパルスセンサ（エンジンの回転変動を検出するセンサ）Ｓａ（図１中に「ＣＲＫセンサＳａ」と表示し、以下、「ＣＲＫセンサＳａ」と称する）、ＴＤＣセンサ（エンジンの回転変動を検出するセンサ）Ｓｂに基づき、ＡＣＭ＿ＥＣＵ２００のマイクロコンピュータ２００ｂ（図３参照）において目標電流値波形を算出する。そして、マイクロコンピュータ２００ｂにおいて、前記算出した目標電流値波形からサンプリングされたＰＷＭ（Pulse Width Modulation）制御用の目標電流値（目標電流）を駆動回路１２１Ａ、１２１Ｂ（図３参照）に出力する。そして、コイル４６，４６に対する通電を制御する。
【００４３】
図２に示すように構成されるアクティブ・コントロール・マウントＭの駆動部４１は、コイル４６に電流が通電されていない状態のとき、可動部材２８は、第２弾性体２７の自己の弾性復元力によって上動する。そして、ナット５６が可動コア５４を押し上げ、可動コア５４と固定コア４２との間にギャップｇが形成される。
【００４４】
一方、ＡＣＭ＿ＥＣＵ２００からコイル４６に電流が通電されると、コイル４６が発生させた磁束線がヨーク４４、可動コア５４、更にギャップｇを上下に貫通して、固定コア４２、コイル４６に戻る閉じた回路を形成することによって、可動コア５４が下方に吸引され、移動する。このとき、可動コア５４は可動部材２８の下方に接続するロッド５５に固定されるナット５６を介して、可動部材２８を下方に移動させ、第２弾性体２７が下向きに変形する。その結果、第２液室３１（図１参照）の容積が増加するため、エンジン（図１参照）からの押し荷重で圧縮された第１液室３０の液体が隔壁部材２９の連通孔２９ａを通過して第２液室３１に流入し、エンジンから車両に伝達される荷重を低減することができる。
【００４５】
逆に、コイル４６への通電を止めると、可動コア５４は下への吸引力から解放され、下向きに変形していた第２弾性体２７が自身の弾性力で上方位置に戻ろうとし、ロッド５５に固定されるナット５６を介して、可動コア５４が上方に引っ張られ、移動する。その結果、ギャップｇが形成される。このとき、第２弾性体２７が上方に移動する結果、第２液室３１の容積が減少するため、エンジンからの引き荷重で減圧された第１液室３０へ隔壁部材２９の連通孔２９ａを通過して第２液室３１の液体が流入し、エンジンから車両に伝達される荷重を低減することができる。
【００４６】
以上のように、ＡＣＭ＿ＥＣＵ２００は、コイル４６へ通電する電流値を制御することで可動部材２８の上下動を制御でき、エンジンのロール振動を車体フレームに伝えないように防振機能を発揮することができる。
以下に、エンジンＥＣＵ１００とＡＣＭ＿ＥＣＵ２００の機能構成を詳細に説明する。
【００４７】
《エンジンＥＣＵの構成》
次に、図３を参照し、適宜図１、図２を参照しながらエンジンＥＣＵの構成を説明する。
図３は、能動型防振支持装置の構成を示す機能ブロック図である。
エンジンＥＣＵ１００は、ＥＣＵ電源回路１００ａ、マイクロコンピュータ１００ｂ、ＲＯＭ（図示せず）、各種センサからの信号接続用のインタフェース回路や、気筒休止ソレノイド１１１Ａ，１１１Ｂ，１１１Ｃを駆動する駆動回路（図示せず）や、ＡＣＭ電源スイッチ１１２を通電させるリレースイッチ１００ｃ、ＣＡＮ通信部１００ｄ等の各種インタフェース回路を含んで構成されている。
そして、エンジンＥＣＵ１００は、ＡＣＭ＿ＥＣＵ２００との専用信号線である、クランクパルス信号線１０５、ＴＤＣパルス信号線１０６、気筒休止信号線１０７で接続され、更に、ＡＣＭ＿ＥＣＵ２００及び他のＥＣＵ、例えば、操舵トルクを電動機の補助力でアシスト制御する電動パワステアリングＥＣＵ等と、バス型のＣＡＮ通信線１０４で接続されている。
【００４８】
マイクロコンピュータ１００ｂは、ＲＯＭに内蔵されたプログラムを読み出して実行することにより実現される機能部である、エンジン回転速度演算部２１０、要求出力演算部２１１、気筒数切替判定部２１２及び燃料噴射制御部２１３、エンジン制御パラメータ送受信部２１４を含んで構成されている。
【００４９】
エンジン回転速度演算部２１０は、ＣＲＫセンサＳａ、ＴＤＣセンサＳｂからの信号に基づいてエンジン回転速度Ｎｅを算出し、要求出力演算部２１１に出力する。
要求出力演算部２１１は、主に、アクセルペダルの踏み込み量を検出するアクセルポジション・センサＳ８からの信号や車速を検出する車速センサＳ１Ｖからの信号、エンジン回転速度演算部２１０で算出されたエンジン回転速度Ｎｅ等に基づいて、減速段を推定し、現在のエンジン出力トルクを推定し、要求トルクを算出したり、それに応じた吸気量を算出し、スロットルバルブ・アクチュエータＡＣ１を制御したりする。
【００５０】
なお、要求出力演算部２１１における要求トルクに応じた吸気量の算出に当たっては、例えば、水温センサＳ３からのエンジン冷却水の水温、スロットルポジション・センサＳ４からのスロットル開度、吸気温センサＳ５からの吸気温度、エアフローセンサＳ６からの吸気流速、圧力センサＳ７からの吸気圧等が用いられる。
【００５１】
気筒数切替判定部２１２は、例えば、エンジン回転速度や、車速や、要求出力演算部２１１で算出された現在の推定トルクや要求トルクを用いて、アイドリング状態や、出力トルクの小さい巡航状態を判別し、そのようなエンジンの運転状態と判別したとき、予め設定されたエンジン回転速度や要求トルク等をパラメータにした気筒数決定マップ（図示せず）に基づいて、運転状態の気筒数を切替え、バルブ休止機構の油圧アクチュエータ（図示せず）を動作させる気筒休止ソレノイド１１１Ａ，１１１Ｂ，１１１Ｃの内の１つまたは２つを通電状態にして、４気筒運転または３気筒運転の気筒休止状態に切替制御する。
【００５２】
ちなみに、気筒休止ソレノイド１１１Ａが通電したとき、６気筒の内の＃１、＃２、＃３気筒が気筒休止状態となり、気筒休止ソレノイド１１１Ｂが通電したとき、＃３気筒が気筒休止状態となり、気筒休止ソレノイド１１１Ｃが通電したとき、＃４気筒が気筒休止状態となる。従って、４気筒運転の場合は、気筒休止ソレノイド１１１Ｂ，１１１Ｃを通電状態とし、３気筒運転の場合は、気筒休止ソレノイド１１１Ａのみを通電状態とする。
また、気筒数切替判定部２１２は、気筒休止状態にしたとき、気筒休止対象の気筒を示す信号である気筒休止信号を、気筒休止信号線１０７を介してＡＣＭ＿ＥＣＵ２００の後記するエンジン回転モード判定部２３３に出力する。
【００５３】
燃料噴射制御部２１３は、要求出力演算部２１１において算出された要求トルクや、エンジン回転速度に応じて、燃料噴射量、具体的には、燃料噴射時間を設定し、ＣＲＫセンサＳａやＴＤＣセンサＳｂからパルス信号のタイミングとエンジン回転速度に応じて予め設定された噴射開始のタイミングマップ（図示せず）に基づいて、運転状態の気筒のインジェクタＦＩに対して燃料噴射の制御を行う。
燃料噴射制御部２１３は、Ｏ２センサＳ２からの排気ガス中の酸素濃度の信号に基づいて、燃料噴射量を調節し、排気ガス規制に適合するような燃焼状態に調節する。
【００５４】
ちなみに、エンジンＥＣＵ１００には、エンジンＥＣＵ１００で取得したエンジン回転速度や、車速や、エンジン推定出力トルク等のパラメータを、他のＥＣＵ、例えば、電動パワステアリングＥＣＵ（図示せず）等にバス型のＣＡＮ通信線１０４を介して出力したり、車両挙動安定化制御システムＥＣＵ（図示せず）から、加速時アンダステアを検出してエンジンの出力トルク抑制の指示信号を受信したりする、エンジン制御パラメータ送受信部２１４を有している。
また、バッテリＢからの電源が、イグニッション・スイッチ１１３（以下では「ＩＧ−ＳＷ１１３」と称する）が、イグニッション・オンの位置にターンされて、ＥＣＵ電源回路１００ａに給電された後、マイクロコンピュータ１００ｂが動作開始して、ＡＣＭ電源スイッチ１１２のソレノイドを通電状態にするリレースイッチ１００ｃを動作させるＡＣＭ電源リレー信号出力部２１５を含んでいる。
図３に示すようにＩＧ−ＳＷ１１３がイグニッション・オンの位置にターンされると、エンジンＥＣＵ１００、ＡＣＭ＿ＥＣＵ２００にも通電され、ＡＣＭ電源リレー信号出力部２１５がリレースイッチ１００ｃをオン状態にし、ＡＣＭ電源スイッチ１１２が通電状態となる。その結果、後記する駆動回路１２１Ａ，１２１ＢにバッテリＢからの直流電源が接続される。
【００５５】
《ＡＣＭ＿ＥＣＵの構成》
次に、図３から図５を参照しながらＡＣＭ＿ＥＣＵ２００について説明する。
【００５６】
ＡＣＭ＿ＥＣＵ２００は、ＥＣＵ電源回路２００ａと、マイクロコンピュータ２００ｂと、ＲＯＭ（図示せず）と、駆動回路１２１Ａ、１２１Ｂ、電流センサ１２３Ａ，１２３Ｂを含んで構成されている。
【００５７】
駆動回路１２１Ａ，１２１Ｂはスイッチング素子で構成され、駆動制御部（給電制御手段）２３９Ａ，２３９ＢにＰＷＭ制御のＯＮ，ＯＦＦを制御されてアクティブ・コントロール・マウントＭＦ、ＭＲの駆動部４１，４１（図１参照）へ給電する電流値を制御する。駆動回路１２１Ａ，１２１Ｂから給電される電流値は、電流センサ１２３Ａ，１２３Ｂでそれぞれ検出され、駆動制御部２３９Ａ，２３９Ｂに入力される。
【００５８】
マイクロコンピュータ２００ｂは、図３に示すようにＲＯＭに内蔵されたプログラムを読み出して実行することにより実現される機能部であるタイミング制御部２３０、ＣＲＫパルス読取時刻一時記憶部２３１、ＣＲＫパルス間隔演算部２３２、エンジン回転モード判定部２３３、振動状態推定部（振動状態推定手段）２３４、位相検出部２３５、目標電流演算部（目標電流算出手段）２３６、駆動用パルス制御信号生成部（目標電流値集合体生成手段）２３７、駆動用パルス制御信号出力時補正部（駆動時振動周期推定手段、出力時補正手段）２３８、及び駆動制御部２３９Ａ，２３９Ｂを含んで構成されている。
【００５９】
エンジンＥＣＵ１００からクランクパルス信号線１０５により入力されたクランクパルス信号（図３中、クランクパルス信号を「ＣＲＫパルス信号」と表示）は、ＣＲＫパルス読取時刻一時記憶部２３１及びタイミング制御部２３０に入力されるとともに、エンジンＥＣＵ１００からＴＤＣパルス信号線１０６により入力されたＴＤＣパルス信号は、ＣＲＫパルス読取時刻一時記憶部２３１及びタイミング制御部２３０に入力される。
【００６０】
（演算処理サイクルの説明）
先ず、図４を参照しながらＴＤＣパルス信号及びクランクパルス信号と同期させたＡＣＭ＿ＥＣＵ２００のマイクロコンピュータ２００ｂにおけるアクティブ・コントロール・マウントＭの制御（以下、「ＡＣＭ制御」と称する）の演算処理サイクルについて説明する。
図４は、ＴＤＣパルス信号及びクランクパルス信号と同期させたＡＣＭ＿ＥＣＵのマイクロコンピュータにおけるＡＣＭ制御の演算処理サイクルの説明図であり、（ａ）は、演算処理のサイクルのタイムチャートであり、（ｂ）は、各演算処理サイクル内をクランクパルス信号に基づいて４つのステージＳＴＧに分割する方法を説明するタイミングチャートであり、（ｃ）は、（ａ）における演算処理サイクル番号「０」の演算処理サイクルＣＵＣＹＬにおいて取得されたクランクパルス信号に対する、続く２つの演算処理サイクルにおける演算処理の内容を説明するタイミングチャートであり、（ｄ）は、出力された目標電流値波形に応じた電流に対するフィードバック制御を説明するタイミングチャートである。
【００６１】
ここで、ＣＲＫセンサＳａは、エンジンの図示しないクランクシャフトが発生するクランクパルスを検出するセンサである。本実施形態では、６気筒エンジンの場合、クランクパルスは、クランク角が６ｄｅｇ．毎に基本的に発生し、ＣＲＫセンサＳａはこのクランクパルスを検出してエンジンＥＣＵ１００に入力する。また、ＴＤＣセンサＳｂは、各気筒の上死点毎に１回、ＴＤＣパルス信号を出力するセンサであり、クランクシャフトの１回転につき３回、ＴＤＣパルス信号をエンジンＥＣＵ１００に入力する。そして、各気筒のＴＤＣパルス信号が入力される毎にＡＣＭ制御の演算処理サイクルＣＵＣＹＬ（図４の（ａ）参照）が次の演算処理サイクルＣＵＣＹＬに更新される。
【００６２】
図４の（ａ）では、「ＣＵＣＹＬ」と表示し、クランクパルス信号の所定個数、例えば、２０個、つまり、クランク角１２０ｄｅｇ．の区間に亘り繰り返しクランクパルス信号それぞれに対応させて、ＴＤＣパルス信号を受信した時点を基準に計数したマイクロコンピュータ２００ｂのクロックパルスの計数結果を記憶処理する後記するところの「ＣＲＫパルス間隔読取処理サイクル」である演算処理サイクルＣＵＣＹＬを示す。一連の連続する各「ＣＲＫパルス間隔読取処理サイクル」を識別するために、演算処理サイクル番号０〜５を付してある。以下、前記したクランク角１２０ｄｅｇ．の区間に亘るクランクパルス信号それぞれに対応させて、クロックパルスの計数結果を記憶処理することを「ＣＲＫパルス間隔読取処理」と称する。
【００６３】
図４の（ｂ）では、「ＳＴＧ」と表示し、タイミング制御部２３０において、ＴＤＣパルス信号を受信した時点を基準に計数した３０ｄｅｇ．分のクランクパルス信号毎に、ステージトリガ信号を発生させて１つの演算処理サイクルＣＵＣＹＬをステージ番号０〜３を付した４つのステージＳＴＧに分割することを示してある。ちなみに、ステージトリガ信号は、ステージ番号を示す情報も含んでいる。そして、この１つのステージＳＴＧに対応する時間を、以下では「ＳＴＧ時間」と称する。ＳＴＧ時間は、エンジン回転速度に応じて変化する。
【００６４】
なお、Ｖ型６気筒エンジンが全筒運転をしている場合、エンジン振動の周期は、クランク角１２０ｄｅｇ．に対応した時間周期であり、以下では、全筒運転をしている場合を例に説明する。このステージＳＴＧは、予め実験的にエンジン振動の周期がクランク角１２０ｄｅｇ．に対応した時間周期の場合、エンジン振動を抑制するために生成する後記する目標電流値波形のＴＤＣパルス信号を基準点とした出力時の位相遅れδ１（図４の（ｄ）参照）に対して、ステージ番号「０」の最初のステージ分のクランク角分をクランクシャフトが回転するのに要する時間より少し小さくなるように設定する。そのため、前記したように１つの演算処理サイクルＣＵＣＹＬを４個に分割することに限定されることなく、４個よりも大きい整数ｎ個のステージに分割するように、ステージＳＴＧに対応するクランク角を、６ｄｅｇ．の倍数で１２０ｄｅｇ．を割り切れるような、例えば、２４ｄｅｇ．（５個に分割）、１２ｄｅｇ．（１０個に分割）としても良い。
【００６５】
図４の（ｃ）は、図４の（ａ）における演算処理サイクル番号「０」の演算処理サイクルＣＵＣＹＬにおいて取得されたクランクパルス信号に対する続く２つの演算処理サイクルにおける演算処理の内容を説明したものである。演算処理サイクル番号「１」の演算処理サイクルＣＵＣＹＬは、演算処理サイクル番号「０」の演算処理サイクルＣＵＣＹＬにおいて取得されたクランクパルス信号に対しては、後記するエンジン振動の推定演算やＡＣＭ制御のための目標電流値波形の生成等を行う演算処理サイクル（図４の（ｃ）中に「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」と表示）であることを示している。更に後続の演算処理サイクル番号「２」の演算処理サイクルＣＵＣＹＬは、演算処理サイクル番号「０」の演算処理サイクルＣＵＣＹＬにおいて取得されたクランクパルス信号に対しては、目標電流値波形を出力制御する演算処理サイクル（図４の（ｃ）中に「目標電流出力処理サイクル」と表示）であることを示している。
ここで、「目標電流出力処理サイクル」が、請求の範囲に記載の「アクチュエータの駆動タイミング」に対応する。
以下、「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」にて行う処理を「ＥＮＧ振動推定演算＆目標電流演算処理」と称し、「目標電流出力処理サイクル」で行う処理を「目標電流出力処理」と称する。
【００６６】
そして、図４の（ｄ）の上段には、目標電流出力処理サイクルにおいて、前方側のアクティブ・コントロール・マウントＭＦを駆動制御するための目標電流値波形（図４の（ｄ）中に「Ｆｒ側目標電流値波形」と表示）及び目標電流値波形を出力する際のＴＤＣパルス信号を基準とした位相遅れδ１を示してある。また、図４の（ｄ）の下段には、目標電流出力処理サイクルにおいて、後方側のアクティブ・コントロール・マウントＭＲを駆動制御するための目標電流値波形（図４の（ｄ）中に「Ｒｒ側目標電流値波形」と表示）及び目標電流値波形を出力する際のＴＤＣパルス信号を基準とした位相遅れδ２を示してある。
【００６７】
ちなみに、この目標電流出力処理サイクルでは、出力された目標電流値波形に応じた電流に対するフィードバック制御が、駆動制御部２３９Ａ，２３９Ｂ（図３参照）で行われることを図４の（ｄ）中に「電流Ｆ／Ｂ」と表示して示してある。
なお、駆動制御部２３９Ａ，２３９Ｂの間では、ＴＤＣパルス信号を基準とした位相遅れδ１とδ２があるので、実際の目標電流出力処理サイクルは、位相遅れδ１、δ２だけ延長される。図４の（ｃ）は、前記したように「ＣＲＫパルス間隔読取処理サイクル」の長さで模式的に説明したものであり、「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」も、１つの演算処理サイクルＣＵＣＹＬの期間に演算処理を行うように制御されるが、「目標電流出力処理サイクル」だけは、１つの演算処理サイクルＣＵＣＹＬを超えて位相遅れδ１、δ２を考慮した制御がなされる。
このような演算処理サイクルＣＵＣＹＬ、ステージＳＴＧの分割の制御は、前記したタイミング制御部２３０においてなされるがその詳細は後記する。
【００６８】
（タイミング制御部）
次に、図３に戻って、図３を参照しながら適宜、図１、図４、図１１、図１３、図１４を参照して、前記した各機能ブロックの詳細な機能を説明する。
タイミング制御部２３０は、図３に示すようにクランクパルス信号及びＴＤＣパルス信号を読み込み、ＴＤＣパルス信号とクランクパルス信号に基づいてクランクパルスカウントの演算、演算処理サイクルＣＵＣＹＬの更新、ステージトリガ信号を発生させてステージＳＴＧの分割等をする。
【００６９】
そして、タイミング制御部２３０は、ＣＲＫパルス読取時刻一時記憶部２３１において、ＴＤＣパルス信号を受信した時点を起点に連続するクランクパルス信号２０個それぞれに対応させて、ＴＤＣパルス信号を受信した時点を基準に計数したマイクロコンピュータ２００ｂのクロックパルスの計数結果を読み込ませ、一時記憶させる処理、つまり「ＣＲＫパルス間隔読取処理サイクル」を行わせる。この「ＣＲＫパルス間隔読取処理サイクル」に引続いて、タイミング制御部２３０は、一時記憶されたクランクパルス信号と、それに対応させたＴＤＣパルス信号の受信時点からのクロックパルスの各計数結果とに基づいて、ＣＲＫパルス間隔演算部２３２、エンジン回転モード判定部２３３、振動状態推定部２３４、位相検出部２３５、目標電流演算部２３６、駆動用パルス制御信号生成部２３７における一連の詳細な演算処理を行わせる処理、つまり、「ＥＮＧ振動推定演算＆目標電流演算処理」を行わせる。
【００７０】
更に、タイミング制御部２３０は、駆動用パルス制御信号出力時補正部２３８、駆動制御部２３９Ａ，２３９Ｂにおける目標電流値波形の出力制御を行わせる処理、つまり、「目標電流出力処理」を行わせる。このとき、タイミング制御部２３０は、エンジンＥＣＵ１００から受信したＴＤＣパルス信号とクランクパルス信号をそのまま駆動用パルス制御信号出力時補正部２３８へ転送出力するとともに、ＴＤＣパルス信号を受信した時点を基準に前記した所定の個数分（例えば、３０ｄｅｇ．）のクランクパルス信号を計数した毎に発生させるステージ番号を示す情報も含んだステージトリガ信号も出力する。
【００７１】
このように、タイミング制御部２３０は、他の各機能部に、次々とパイプライン処理させる。つまり、１つの演算処理サイクルＣＵＣＹＬの間、ＣＲＫパルス読取時刻一時記憶部２３１で、（１）「ＣＲＫパルス間隔読取処理」が行われているとき、ＣＲＫパルス間隔演算部２３２、エンジン回転モード判定部２３３、振動状態推定部２３４、位相検出部２３５、目標電流演算部２３６、駆動用パルス制御信号生成部２３７において、（２）「ＥＮＧ振動推定演算＆目標電流演算処理」が行われ、駆動用パルス制御信号出力時補正部２３８、駆動制御部２３９Ａ，２３９Ｂにおいて、（３）「目標電流出力処理」が行われる。ただし、「目標電流出力処理」については、前記したように時間遅れδ１、δ２分だけは１つの演算処理サイクルＣＵＣＹＬの期間を超えて「目標電流出力処理」が完了するまで処理を行う。
この一連の処理が請求の範囲に記載の「サイクル」に対応する。
【００７２】
（ＣＲＫパルス読取時刻一時記憶部）
ＣＲＫパルス読取時刻一時記憶部２３１は、タイミング制御部２３０に制御されて、前記した「ＣＲＫパルス間隔読取処理サイクル」毎に、ＴＤＣパルス信号を受信した時点を起点に連続するクランクパルス信号２０個それぞれに対応させて、ＴＤＣパルス信号を受信した時点を基準に計数したマイクロコンピュータ２００ｂのクロックパルスの各計数結果を読み込み、一時記憶する。
【００７３】
（ＣＲＫパルス間隔演算部）
ＣＲＫパルス間隔演算部２３２は、タイミング制御部２３０に制御されて、ＣＲＫパルス読取時刻一時記憶部２３１によって一時記憶されたクランクパルス信号に対応させられた各クロックパルスの計数結果を読み出し、クランクパルス間隔時間を演算し、振動状態推定部２３４に出力する。
クロックパルスは一定の周期でマイクロコンピュータ２００ｂの中で発生されているので、クロックパルスの計数結果からクランクパルス間隔時間を演算することは容易にできる。
【００７４】
（振動状態推定部）
振動状態推定部２３４は、タイミング制御部２３０に制御されて、ＣＲＫパルス間隔演算部２３２で算出されたクランク角６ｄｅｇ．に対応する一連の時系列のクランクパルス間隔時間からクランク角速度を１９個算出し、それを受けて、一連の時系列のクランク角加速度を算出する。
【００７５】
次いで、振動状態推定部２３４は、一連の時系列のクランク角加速度に基づいてエンジンのクランク軸回りの一連の時系列のトルクを算出する。クランク角加速度を、ｄω／ｄｔ、エンジンのクランク軸回りの慣性モーメントをＩＥすると、エンジンのクランク軸回りのトルクＴｑは、次式（１）で算出される。
Ｔｑ＝ＩＥ×（ｄω／ｄｔ）  ・・・・・・・・・・・（１）
このトルクＴｑは、クランク軸が一定の回転角速度ωで回転していると仮定すると０になるが、エンジンの気筒の膨張行程では、ピストンの加速により回転角速度ωが増加し、圧縮行程ではピストンの減速により回転角速度ωが減少して、クランク角加速度ｄω／ｄｔが発生するため、そのクランク角加速度ｄω／ｄｔに比例したトルクＴｑが発生することになる。
【００７６】
トルクＴｑを演算した後に、一連の時系列のトルクＴｑを時間的に隣接するトルクＴｑの最大値及び最小値を判定し、トルクＴｑの最大値及び最小値の偏差、つまり、トルクＴｑの変動量として、エンジンを支持するアクティブ・コントロール・マウントＭの位置における振幅を演算する。
このとき、エンジン回転モード判定部２３３から入力されたエンジン振動モード情報に示された振動モードが複数ある場合は、そのモードに対応する周期の振幅を演算する。
エンジン回転速度Ｎｅに対する何次の振動モードであるかは、エンジン振動モード情報に示されている。また、そのときのエンジン回転速度Ｎｅから平均のクランクパルス間隔が分かる。そこで、一連の時系列のトルクＴｑからエンジン振動モードに対応するクランクパルス数の周期内でのトルクＴｑの最大値及び最小値を判定することにより、クランク角１２０ｄｅｇ．周期より短い周期の振動モードのトルクＴｑの変動量がわかり、エンジンを支持するアクティブ・コントロール・マウントＭの位置における振幅を演算することができる。
算出された各エンジン振動モードに対する振幅［トルクＴｑの最大側ピーク値と最小側ピーク値の幅（以下、「トルクＴｑのＰ−Ｐ値」と称する）］と、トルクＴｑのピークのタイミングは、位相検出部２３５及び目標電流演算部２３６に出力されるとともに、位相検出部２３５に一連の時系列のトルクＴｑを出力する。
【００７７】
また、振動状態推定部２３４は、ＣＲＫパルス間隔演算部２３２で算出されたクランクパルス間隔から、エンジン振動の周期を算出する。エンジン振動の周期とは、ＴＤＣパルス信号毎の間隔であり、クランク角１２０ｄｅｇ．毎の時間を示す。クランクパルス間隔は、クランク角６ｄｅｇ．毎の時間を示すので、エンジン振動の一周期分の周期は、クランクパルス間隔２０個分の時間を演算することになる。
【００７８】
（エンジン回転モード判定部）
エンジン回転モード判定部２３３は、タイミング制御部２３０に制御されて、ＣＲＫパルス読取時刻一時記憶部２３１が、前記したようにクランクパルス信号等を一時記憶処理している期間に、全筒運転状態か、２筒休止運転状態か、３筒休止運転状態かを判定し、また、アイドリング状態と判定したりし、判定結果に応じたエンジン振動モード情報を振動状態推定部２３４、位相検出部２３５に出力する。この、全筒運転状態か、２筒休止運転状態か、３筒休止運転状態かの判定や、アイドリング状態の判定は、エンジンＥＣＵ１００の気筒数切替判定部２１２から受信している休止気筒信号、エンジン回転速度信号、アクセルポジション・センサ信号等に基づいて、行うことができる。
【００７９】
ここで、エンジン振動モード情報とは、エンジン回転速度に同期した最小周期の振動を基本モードとしたとき、それに対し、２次等のより高次モード成分も考慮して、どのモードが最大成分であるか、その次にエンジン振動の伝達を抑制する上で考慮すべき振動モードはどの成分であるかを指示する情報である。
このエンジン振動モード情報は、全筒運転状態、２筒休止運転状態、３筒休止運転状態のエンジンの運転状態と、エンジン回転速度をパラメータにして、マップの形で予めＲＯＭに格納されている。
【００８０】
ちなみに、Ｖ型６気筒エンジンの場合、クランク軸の１回転で３回気筒の爆発があるので、エンジン回転速度に応じた基本モードの振動を「エンジン振動３次」と称し、エンジン振動３次の振動周波数は、エンジン回転速度が増加するに連れて増加する。
また、直列４気筒エンジンの場合は、１回転に２回気筒爆発があるので、エンジン回転速度に応じた基本モードの振動を「エンジン振動２次」と称し、Ｖ型６気筒エンジンにおける３気筒での運転状態、つまり、休筒運転時の場合は、１回転に１．５回気筒爆発があるので、エンジン回転速度に応じた基本モードの振動を「エンジン振動１．５次」と称する。
前記したように本実施形態の作用説明では、全筒運転の場合を例に説明するので、気筒休止運転の場合のエンジン振動に対するＡＣＭ制御についての詳細な説明は、省略する。
【００８１】
（位相検出部）
位相検出部２３５は、振動状態推定部２３４からのトルクＴｑのＰ−Ｐ値、トルクＴｑのピークのタイミング、一連の時系列のトルクＴｑ、ＣＲＫパルス読取時刻一時記憶部２３１から読み出したクランクパルス信号、それに対応させた各気筒のＴＤＣパルス信号を起点として計数したクロックパルスの計数の結果に基づいて、トルクＴｑのピークのタイミングとＴＤＣのタイミングを比較し、前方側のアクティブ・コントロール・マウントＭＦに対するＡＣＭ制御のための時間ベースの位相遅れＰ１Ｆ（図１１参照）の算出を行う。以下、位相遅れＰ１Ｆを「Ｆｒ側の位相遅れ」と称する。
また、算出された位相遅れＰ１Ｆを、振動状態推定部２３４で算出したエンジン振動の一周期分の平均のＳＴＧ時間（＝（Ｔ１）／４）（図１１参照）で割り、その商Ｓ１Ｆ（図１１参照）及びその余りの時間Ｐ’１Ｆ（図１１参照）を算出する。前記算出された商Ｓ１Ｆは、ステージＳＴＧの個数（以下、以下「ＳＴＧ個数」と称する）を意味する。
【００８２】
ここで、Ｔ１は、「ＣＲＫパルス間隔読取処理サイクル」におけるエンジン振動の周期長さであり、後記するエンジン振動の第１の周期（第１の振動周期）Ｃ１（図１１参照）の周期長さを示す。また、平均のＳＴＧ時間（（Ｔ１）／４）は、「ＣＲＫパルス間隔読取処理サイクル」において、クランクシャフトがクランク角３０ｄｅｇ．分を回転するのに要する平均時間である。
【００８３】
更に、位相検出部２３５は、その算出された位相遅れＰ１Ｆに前後のアクティブ・コントロール・マウントＭＦ，ＭＲの間の位相差である前記した周期長さＴ１の半分の値であるδ０（図５の（ｂ）参照）を加算してアクティブ・コントロール・マウントＭＲの位相遅れＰ１Ｒ（以下、「Ｒｒ側の位相遅れ」と称する）を算出する。位相検出部２３５は、Ｒｒ側の位相遅れＰ１Ｒに対しても、Ｆｒ側の位相遅れＰ１Ｆと同様に、振動状態推定部２３４で算出したエンジン振動の一周期分の平均のＳＴＧ時間（（Ｔ１）／４）で割り、その商Ｓ１Ｒ及びその余りの時間Ｐ’１Ｒの時間を算出する。
【００８４】
位相検出部２３５は、算出したＦｒ側及びＲｒ側のそれぞれに対する２組のデータ（ＳＴＧ個数Ｓ１Ｆ及び余りの時間Ｐ’１Ｆ）と（ＳＴＧ個数Ｓ１Ｒ及び余りの時間Ｐ’１Ｒ）を駆動用パルス制御信号出力時補正部２３８へ入力する。
【００８５】
（目標電流演算部）
目標電流演算部２３６は、振動状態推定部２３４から入力された、エンジン回転モード判定部２３３が指定したエンジン振動モードに対するアクティブ・コントロール・マウントＭの位置における振幅に基づいて、前後のアクティブ・コントロール・マウントＭＦ，ＭＲそれぞれに対する目標電流値波形を算出する。
これは、エンジン回転モード判定部２３３が出力する振動モード情報に対応させた複数の目標電流値波形のパターンが、予めＲＯＭに格納されており、振動モード情報を参照して特定の目標電流値波形のパターンを選択し、それをベースに、各振動モードの振幅に対応する電流値波形のゲインをそれぞれ設定し、合成して１つの電流値波形を設定する。電流値波形の長さは、振動状態推定部２３４において算出したエンジン振動の周期長さＴ１に合わせた時間長さに設定する。
【００８６】
図５は、アクチュエータの駆動タイミングにおけるアクティブ・コントロール・マウントＭＦ，ＭＲに対する目標電流値波形を例示し、（ａ）は、アクティブ・コントロール・マウントＭＦに対する目標電流値波形ＩＴＦｒの説明図、（ｂ）は、アクティブ・コントロール・マウントＭＲに対する目標電流値波形ＩＴＲｒの説明図である。ここで、図５の（ａ）の縦軸はアクティブ・コントロール・マウントＭＦに対するＡＣＭ制御のための目標電流値Ｆｒ＿ＩＣＭＤを示し、横軸は時間を示す。同様に、図５の（ｂ）の縦軸はアクティブ・コントロール・マウントＭＲに対するＡＣＭ制御のための目標電流値Ｒｒ＿ＩＣＭＤを示し、横軸は時間を示す。
【００８７】
なお、図５の（ａ），（ｂ）中の位相遅れδ１，δ２は、駆動用パルス制御信号出力時補正部２３８において設定される、アクティブ・コントロール・マウントＭＦ，ＭＲが実際に制御される際の位相遅れである。
ちなみに、目標電流演算部２３６で生成するアクティブ・コントロール・マウントＭＦ用の目標電流値波形ＩＴＦｒと、アクティブ・コントロール・マウントＭＲ用の目標電流値波形ＩＴＲｒとは、一般に異なる目標電流値波形である。目標電流演算部２３６では、アクティブ・コントロール・マウントＭＦ，ＭＲ用の２つの目標電流値波形ＩＴＦｒ，ＩＴＲｒのみが設定される。
また、図５中、二点鎖線で示した目標電流値波形ＩＴＦｒ，ＩＴＲｒは、次の演算処理サイクルで目標電流演算部２３６が設定する目標電流値波形ＩＴＦｒ，ＩＴＲｒを示したものである。
【００８８】
（駆動用パルス制御信号生成部）
次に、図３から図５を参照しながら、駆動用パルス制御信号生成部２３７について説明する。駆動用パルス制御信号生成部２３７は、前記した目標電流演算部２３６で設定された、目標電流値波形ＩＴＦｒ，ＩＴＲｒを、ＡＣＭ＿ＥＣＵ２００側の後記する駆動制御部２３９Ａ及び駆動回路１２１Ａ、並びに駆動制御部２３９Ｂ及び駆動回路１２１Ｂにおいて実際に目標電流をＰＷＭ制御する一定の周期長さＴＰＷＭ、例えば、５００μｓｅｃの周期間隔でサンプリングして、アクティブ・コントロール・マウントＭＦのＰＷＭ制御用の目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体とアクティブ・コントロール・マウントＭＲのＰＷＭ制御用の目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体を設定する。
ここで、一定の周期長さＴＰＷＭでサンプリングして、アクティブ・コントロール・マウントＭＦ，ＭＲのＰＷＭ制御用の目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体と目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体を設定することが、請求の範囲に記載の「算出された目標電流値波形から一定のサンプリング周期により目標電流値のデータの集合体を取得する」に対応する。また、目標電流値Ｆｒ＿ＩＣＭＤ，Ｒｒ＿ＩＣＭＤが、請求の範囲に記載の「目標電流値波形に応じた電流」に対応する。
【００８９】
図５に示すように目標電流値波形ＩＴＦｒ，ＩＴＲｒから周期長さＴＰＷＭでサンプリングされた白丸ドットを付した一連の目標電流値が、ＰＷＭ制御の周期毎の目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体であり、目標電流値Ｆｒ＿ＩＣＭＤのデータに対して、先頭からエンジン振動の半周期分である位相遅れδ０だけ遅れて出力される一連の目標電流値が目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体である。
従って、エンジン回転速度が高速になれば、目標電流値波形ＩＴＦｒ，ＩＴＲｒの時間幅は短くなり、それを一定の周期長さＴＰＷＭでサンプリングして、目標電流値Ｆｒ＿ＩＣＭＤ，Ｒｒ＿ＩＣＭＤのデータの集合体を設定するので、その目標電流値のデータの集合体を構成する目標電流値Ｆｒ＿ＩＣＭＤ，Ｒｒ＿ＩＣＭＤのそれぞれのデータの個数は少なくなる。
駆動用パルス制御信号生成部２３７は、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体と、目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体とを駆動用パルス制御信号出力時補正部２３８に出力し、駆動用パルス制御信号出力時補正部２３８の目標電流値一時記憶部２３８ａ，２３８ｂにそれぞれ一時記憶される。
【００９０】
更に、駆動用パルス制御信号生成部２３７は、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体、目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体のそれぞれに含まれるデータ個数Ｎ１Ｆ，Ｎ１Ｒを計数し、また、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体、目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体それぞれにおけるピーク電流値のデータが各データの集合体に含まれるデータの最初から何番目であるかを示すデータの集合体中の位置ＮＣＦ，ＮＣＲを取得する。以下、位置ＮＣＦ，ＮＣＲを「電流ピーク位置ＮＣＦ，ＮＣＲ」と称する。
その後、駆動用パルス制御信号生成部２３７は、周期長さＴ１、データ個数Ｎ１Ｆ，Ｎ１Ｒ、電流ピーク位置ＮＣＦ，ＮＣＲを、駆動用パルス制御信号出力時補正部２３８に出力する。駆動用パルス制御信号出力時補正部２３８において、入力された周期長さＴ１、データ個数Ｎ１Ｆ、電流ピーク位置ＮＣＦは、目標電流値一時記憶部２３８ａに一時記憶されるとともに、入力された周期長さＴ１、データ個数Ｎ１Ｒ、データの集合体中の位置ＮＣＲは、目標電流値一時記憶部２３８ｂに一時記憶される。
なお、エンジン振動の１つの周期Ｃ１に対する振動を抑制するように前後のアクティブ・コントロール・マウントＭＦ，ＭＲに対してそれぞれ生成される目標電流値波形は、基本的に目標電流値波形の長さは同じになるので、データ個数Ｎ１Ｆとデータ個数Ｎ１Ｒとは同じ値になり、電流ピーク位置ＮＣＦと電流ピーク位置ＮＣＲとは、同じ値になるのが一般的である。
【００９１】
（駆動用パルス制御信号出力時補正部）
再び、図３に戻って駆動用パルス制御信号出力時補正部２３８について説明する。
駆動用パルス制御信号出力時補正部２３８は、「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」において位相検出部２３５で算出されたＦｒ側及びＲｒ側それぞれの２組のデータ、つまり、ＳＴＧ個数Ｓ１Ｆ及び余りの時間Ｐ’１Ｆのデータと、ＳＴＧ個数Ｓ１Ｒ及び余りの時間Ｐ’１Ｒのデータが、入力される。また、「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」において、駆動用パルス制御信号生成部２３７から周期長さＴ１、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体と、目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体、前記したデータ個数Ｎ１Ｆ，Ｎ１Ｒ、電流ピーク位置ＮＣＦ，ＮＣＲが入力され、それぞれ目標電流値一時記憶部２３８ａ，２３８ｂに一時記憶される。
【００９２】
そして、駆動用パルス制御信号出力時補正部２３８は、タイミング制御部２３０に制御されて、「目標電流出力処理サイクル」において、エンジンＥＣＵ１００からのＴＤＣパルス信号とクランクパルス信号に基づき、エンジン振動の周期の最初のステージＳＴＧ分のクランクパルス間隔を読み取り、最初のＳＴＧ時間を演算する。ここで、最初のＳＴＧ時間とは、「目標電流出力処理サイクル」におけるステージ番号「０」の最初のステージＳＴＧに対応する時間長である（図４参照）。この最初のＳＴＧ時間は、マイクロコンピュータ２００ｂ（図３参照）において、発生させているクロックパルスを用いて容易に計数できる。その後、目標電流値一時記憶部２３８ａ，２３８ｂに一時記憶された余りの時間Ｐ’１Ｆ，Ｐ’１Ｒを読み出し、次式（２Ａ）、（２Ｂ）のように補正された余りの時間Ｐ”１Ｆ，Ｐ”１Ｒを算出する。
Ｐ”１Ｆ＝（Ｐ’１Ｆ）／［（Ｔ１）／４）］×（最初のＳＴＧ時間）・・・（２Ａ）
Ｐ”１Ｒ＝（Ｐ’１Ｒ）／［（Ｔ１）／４）］×（最初のＳＴＧ時間）・・・（２Ｂ）
【００９３】
駆動用パルス制御信号出力時補正部２３８は、タイミング制御部２３０に制御されて、「目標電流出力処理サイクル」において、タイミング制御部２３０から入力されるＴＤＣパルス信号とクランクパルス信号に基づいてＳＴＧ個数Ｓ１Ｆ分のクランクパルス間隔を計数し、ＳＴＧ個数Ｓ１Ｆ分のクランク角が経過した時をＦｒ側の「位相遅れ基準」として、アクティブ・コントロール・マウントＭＦに対して、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体を、Ｆｒ側の「位相遅れ基準」から補正された余りの時間Ｐ”１Ｆ経過後に、駆動制御部２３９Ａに出力する。
また、駆動用パルス制御信号出力時補正部２３８は、タイミング制御部２３０に制御されて、「目標電流出力処理サイクル」において、タイミング制御部２３０から入力されるＴＤＣパルス信号とクランクパルス信号に基づいてＳＴＧ個数Ｓ１Ｒ分のクランクパルス間隔を計数し、ＳＴＧ個数Ｓ１Ｒ分のクランク角が経過した時をＲｒ側の「位相遅れ基準」として、アクティブ・コントロール・マウントＭＲに対して、目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体を、Ｒｒ側の「位相遅れ基準」から補正された余りの時間Ｐ”１Ｒ経過後に、駆動制御部２３９Ｂに出力する。
【００９４】
つまり、図４に示すように「目標電流出力処理サイクル」において、ＴＤＣパルス信号受信のタイミングを起点にすると、位相遅れδ１で目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体を出力し、位相遅れδ２で目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体を出力することになる。
なお、ＳＴＧ個数Ｓ１Ｆ分のクランク角の経過及びＳＴＧ個数Ｓ１Ｒ分のクランク角の経過を検出するに当たって、ＴＤＣパルス信号とクランクパルス信号を用いる代わりに、タイミング制御部２３０から入力されるステージトリガ信号を用いて、ＳＴＧ個数Ｓ１Ｆ分のクランク角の経過（つまり、ＳＴＧ個数Ｓ１Ｆ分のＳＴＧ時間の経過）及びＳＴＧ個数Ｓ１Ｒ分のクランク角の経過（つまり、ＳＴＧ個数Ｓ１Ｒ分のＳＴＧ時間の経過）を検出するようにしても良い。
【００９５】
また、この「目標電流出力処理サイクル」において、駆動用パルス制御信号出力時補正部２３８は、少なくとも前記した最初のステージＳＴＧ以上の所定数のクランクパルス間隔、例えば、８個のクランクパルス間隔を読み込み、その８個のクランクパルス間隔分の時間ｔＣ３（図１３、図１４参照）を検出する。つまり、ＴＤＣパルス信号を起点とした所定のクランク角、例えば、４８ｄｅｇ．［＝（６ｄｅｇ．）×８］をクランクシャフトが回転するのに要する時間ｔＣ３を、マイクロコンピュータ２００ｂのクロックパルスの計数結果で算出する。そして、駆動用パルス制御信号出力時補正部２３８は、「目標電流出力処理サイクル」におけるＴＤＣパルス信号を起点としクランク角４８ｄｅｇ．分をクランクシャフトが回転するのに要する時間ｔＣ３に基づき、エンジン振動の周期長さ（後記するエンジン振動の第３の周期Ｃ３の周期長さＴ３に対応）としてＴ３’（図１２の（ｉ）参照）を次式（３）のように推定する。
以下では、時間ｔＣ３を算出する前提の前記所定のクランク角の値をＤＣ３とする。
Ｔ３’＝ｔＣ３×１２０／（ＤＣ３）  ・・・・・・・（３）
【００９６】
ここで、クランク角ＤＣ３は、クランクパルス信号（ここでは、６ｄｅｇ．毎に発生）の１つのステージＳＴＧ以上で、できるだけ大きい値の方が駆動タイミングにおけるエンジン振動の周期の推定精度が向上する。つまり、３０ｄｅｇ．以上の値とするのが望ましいが、駆動用パルス制御信号出力時補正部２３８から駆動制御部２３９Ａへの目標電流値Ｆｒ＿ＩＣＭＤを出力時の位相遅れδ１を考慮しても、ピーク電流位置ＮＣＦを出力する前に時間ｔＣ３を算出する必要があり、最大でも約６０ｄｅｇ．である。ここでは、クランク角ＤＣ３は、例えば、４８ｄｅｇ．（８個のクランクパルス間隔分）と設定して説明をする。
【００９７】
そして、駆動用パルス制御信号出力時補正部２３８は、推定したエンジン振動の第３の周期Ｃ３の周期長さＴ３’から、エンジン振動の第３の周期Ｃ３における周期長さＴ３’に適合した目標電流値波形を仮想的に想定した場合に、５００μｓｅｃの周期間隔でサンプリングしたときの、目標電流値Ｆｒ＿ＩＣＭＤのデータ個数Ｎ２Ｆと、目標電流値Ｒｒ＿ＩＣＭＤのデータ個数Ｎ２Ｒを次式（４Ａ），（４Ｂ）のように算出する。
Ｎ２Ｆ＝［（Ｎ１Ｆ）×（Ｔ３’）／（Ｔ１）］の整数部  ・・・・・（４Ａ）
Ｎ２Ｒ＝［（Ｎ１Ｒ）×（Ｔ３’）／（Ｔ１）］の整数部  ・・・・・（４Ｂ）
式（４Ａ），（４Ｂ）に式（３）を代入すれば、次式（５Ａ），（５Ｂ）のように表わされる。
Ｎ２Ｆ＝［（Ｎ１Ｆ）×（ｔＣ３×１２０／（ＤＣ３））／（Ｔ１）］の整数部
・・・・・（５Ａ）
Ｎ２Ｒ＝［（Ｎ１Ｒ）×（ｔＣ３×１２０／（ＤＣ３））／（Ｔ１）］の整数部
・・・・・（５Ｂ）
ここで、データ個数Ｎ２Ｆとデータ個数Ｎ２Ｒとは同じ値になるのが一般的である。
【００９８】
次いで、駆動用パルス制御信号出力時補正部２３８は、データ個数Ｎ１Ｆとデータ個数Ｎ２Ｆとの大小関係により、目標電流値一時記憶部２３８ａから目標電流値Ｆｒ＿ＩＣＭＤのデータを周期長さＴＰＷＭで読み出し、駆動制御部２３９Ａに出力するとき、並びに、目標電流値一時記憶部２３８ｂから目標電流値Ｒｒ＿ＩＣＭＤのデータを周期長さＴＰＷＭで読み出し、駆動制御部２３９Ｂに出力するときに、推定演算した周期長さＴ３’に対応したデータ個数Ｎ２Ｆ，Ｎ２Ｒとなるように、目標電流値のデータの集合体の波形長さ調整処理を行う。つまり、元のデータ個数Ｎ１Ｆ，Ｎ１Ｒからデータ個数Ｎ２Ｆ，Ｎ２Ｒとなるように、目標電流値のデータの集合体のデータを出力する際にデータ個数の調整をする。この目標電流値波形長さ調整処理の詳細な説明は、図６から図１０のフローチャートの説明の中で後記する。
ここで、駆動用パルス制御信号出力時補正部２３８が、請求の範囲に記載の「駆動時振動周期推定手段」、及び「出力時補正手段」に対応する。
【００９９】
（駆動制御部）
駆動制御部２３９Ａは、駆動用パルス制御信号出力時補正部２３８から位相遅れδ１で出力された目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体に対応するＰＷＭデューティ指令を生成して駆動回路１２１Ａへ出力する。駆動回路１２１ＡはＰＷＭデューティ指令に応じて通電制御し、アクティブ・コントロール・マウントＭＦの駆動部４１（図１参照）に給電する。電流センサ１２３Ａは、駆動回路１２１Ａから給電される電流値を計測して、駆動制御部２３９Ａに入力する。
駆動制御部２３９Ａは、目標電流値Ｆｒ＿ＩＣＭＤと計測された電流値の偏差を取り、偏差に応じて、次のＰＷＭ制御の周期長さＴＰＷＭの新たな目標電流値Ｆｒ＿ＩＣＭＤに対するＰＷＭデューティ指令を補正して駆動回路１２１Ａへ出力する。
このように、駆動制御部２３９Ａは、目標電流値Ｆｒ＿ＩＣＭＤに対するＰＷＭデューティ指令をフィードバックして出力することにより、アクティブ・コントロール・マウントＭＦの駆動部４１に給電する。
【０１００】
駆動制御部２３９Ｂも同様に、駆動用パルス制御信号出力時補正部２３８から位相遅れδ２で出力された目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体に対応するＰＷＭデューティ指令を生成して駆動回路１２１Ｂへ出力する。駆動回路１２１ＢはＰＷＭデューティ指令に応じて通電制御し、アクティブ・コントロール・マウントＭＲの駆動部４１（図１参照）に給電する。電流センサ１２３Ｂは、駆動回路１２１Ｂから給電される電流値を計測して、駆動制御部２３９Ｂに入力する。
駆動制御部２３９Ｂは、目標電流値Ｒｒ＿ＩＣＭＤと計測された電流値の偏差を取り、偏差に応じて、次のＰＷＭ制御の周期長さＴＰＷＭの新たな目標電流値Ｒｒ＿ＩＣＭＤに対するＰＷＭデューティ指令を補正して駆動回路１２１Ｂへ出力する。
このように、駆動制御部２３９Ｂは、目標電流値Ｒｒ＿ＩＣＭＤに対するＰＷＭデューティ指令をフィードバックして出力することにより、アクティブ・コントロール・マウントＭＲの駆動部４１に給電する。
【０１０１】
《能動型防振支持装置の制御方法》
次に、図６から図１４を参照しながら、適宜、図３を参照して能動型防振支持装置３０１の防振制御の方法について説明する。図６から図１０は、防振制御の流れを示すフローチャートである。図１１は、エンジン回転速度が加速する場合のクランクパルス間隔読み取り処理サイクルにおいて取得されたクランクパルス信号に基づき算出された位相遅れＰ１Ｆと、目標電流出力処理サイクルにおける位相遅れの調整処理、並びに、目標電流値波形を出力する際の目標電流値のデータの集合体の補正処理の説明図であり、（ａ）は、クランクパルス信号のタイムチャートとエンジン振動の周期の対応関係説明図、（ｂ）は、演算処理サイクルのタイムチャート、（ｃ）は、Ｆｒ側の目標電流値波形を出力する際の位相遅れの調整処理、並びに、目標電流値波形長さ調整処理の説明図である。
【０１０２】
図１１の（ａ）に示すように、エンジン回転速度が加速する場合、クランクパルス信号とエンジン振動の周期は、徐々に周期が短くなっていく様子が示されている。そして、図１１の（ａ）の下段に、ＴＤＣパルス信号（図示せず）を受信した時点を起点として２０個のクランクパルス信号に基づき、エンジン振動の周期が、具体的には第１の周期（第１の振動周期）Ｃ１の周期長さＴ１、第２の周期（第２の振動周期）Ｃ２の周期長さＴ２、第３の周期（第３の振動周期）Ｃ３の周期長さＴ３が、振動状態推定部２３４において算出されることを示している。
エンジン振動の周期Ｃ２のクランクパルス信号の間隔は、エンジン振動の周期Ｃ１のクランクパルス信号の間隔よりも短くなっており、エンジン振動の周期長さＴ３のクランクパルス信号の間隔は、エンジン振動の周期長さＴ２のクランクパルス信号の間隔よりも更に短くなっている。それに伴い、エンジン振動の第２の周期Ｃ２の周期長さＴ２は、エンジン振動の第１の周期Ｃ１の周期長さＴ１よりも短くなっており、エンジン振動の第３の周期Ｃ３の周期長さＴ３は、周期長さＴ２よりも更に短くなっている。
【０１０３】
図１１の（ｂ）には、演算処理サイクルを示し、エンジン振動の第１の周期Ｃ１においてＣＲＫパルス間隔読取処理をしたクランクパルス信号それぞれに対応するクロックパルスの計数結果に対して、エンジン振動の第２の周期Ｃ２においてＥＮＧ振動推定演算＆目標電流演算処理がなされ、エンジン振動の第３の周期Ｃ３に入ってから目標電流出力処理がなされることを示している。
図１２は、エンジン回転速度の加速の場合の、目標電流出力処理サイクルにおけるＦｒ側の目標電流値波形に係る目標電流値のデータの集合体に含まれる目標電流値Ｆｒ＿ＩＣＭＤの出力制御の詳細説明図であり、（ａ）は、エンジン振動の第１の周期Ｃ１におけるクランクパルス信号のタイムチャート、（ｂ）は、第１の周期Ｃ１の周期長さＴ１の説明図、（ｃ）は、第１の周期Ｃ１の周期長さＴ１の区間でＣＲＫパルス間隔読取処理をしていることを示すタイムチャート、（ｄ）は、ＣＲＫパルス間隔読取処理サイクルにおける各ステージＳＴＧの分割を示すタイムチャート、（ｅ）は、エンジン振動の第３の周期Ｃ３におけるクランクパルス信号のタイムチャート、（ｆ）は、第３の周期Ｃ３の周期長さＴ３の説明図、（ｇ）は、第３の周期Ｃ３の周期長さＴ３の区間に対応して開始される目標電流出力処理をしていることを示すタイムチャート、（ｈ）は、第３の周期Ｃ３の周期長さＴ３における各ステージＳＴＧの分割を示すタイムチャート、（ｉ）は、エンジン振動の第１の周期Ｃ１に対応して算出された位相遅れＰ１Ｆ、周期長さＴ１の目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体と、エンジン振動の第３の周期Ｃ３において位相遅れがδ１に補正され、周期長さがＴ３’に補正され出力される実際の目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体との比較図である。
【０１０４】
図６のステップＳ１では、タイミング制御部２３０に制御されて、ＣＲＫパルス読取時刻一時記憶部２３１において、図１１の（ａ），（ｂ）に示すようにエンジン振動の第１の周期Ｃ１のクランクパルス間隔を読み取る。具体的には、ＣＲＫパルス読取時刻一時記憶部２３１において、ＴＤＣパルス信号を受信した時点を起点にエンジン振動の第１の周期Ｃ１における連続するクランクパルス信号２０個それぞれに対応させて、ＴＤＣパルス信号を受信した時点を基準に計数したマイクロコンピュータ２００ｂのクロックパルスの計数結果を読み込み、一時記憶する処理、つまり「ＣＲＫ間隔読取処理サイクル」を行う。
ステップＳ２では、図１１の（ａ），（ｂ）に示すようにエンジン振動の第２の周期Ｃ２に対応する「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」の演算処理サイクルに、タイミング制御部２３０に制御されて、振動状態推定部２３４において、ステップＳ１にて読み取ったクランクパルス間隔からエンジン振動の周期長さＴ１を演算する。ちなみに、前記したようにエンジン振動の振幅も演算する。
具体的には、振動状態推定部２３４は、「ＣＲＫ間隔読取処理サイクル」にてＣＲＫパルス読取時刻一時記憶部２３１に記憶されたクランクパルス信号２０個に対応したクロックパルス数の計数結果を読み出し、図１１の（ａ），（ｂ）に示すエンジン振動の第２の周期Ｃ２に対応する「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」の演算処理サイクルに、クランクパルス間隔２０個分の時間を演算し、エンジン振動の第１の周期Ｃ１の周期長さＴ１を演算する。
【０１０５】
ステップＳ３では、タイミング制御部２３０に制御されて、位相検出部２３５において、エンジン振動の第１の周期Ｃ１での位相遅れＰ１Ｆ，Ｐ１Ｒを算出する。この算出も図１１の（ａ），（ｂ）に示すエンジン振動の第２の周期Ｃ２に対応する「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」の演算処理サイクルにおいてなされる。
【０１０６】
ステップＳ４では、タイミング制御部２３０に制御されて、位相検出部２３５において、位相遅れＰ１Ｆ，Ｐ１Ｒをエンジン振動の第１の周期Ｃ１の平均のＳＴＧ時間（Ｔ１／４）で割り、ＳＴＧ個数Ｓ１Ｆ，Ｓ１Ｒと、その余りの時間Ｐ’１Ｆ，Ｐ’１Ｒを算出する。つまり、Ｓ１Ｆ＝［Ｐ１Ｆ／（Ｔ１／４）の商］、Ｓ１Ｒ＝［Ｐ１Ｒ／（Ｔ１／４）の商］、Ｐ’１Ｆ＝［Ｐ１Ｆ／（Ｔ１／４）の余り］、Ｐ’１Ｒ＝［Ｐ１Ｒ／（Ｔ１／４）の余り］を算出する。この算出も図１１の（ａ），（ｂ）に示すエンジン振動の第２の周期Ｃ２に対応する「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」の演算処理サイクルにおいてなされる。
【０１０７】
ステップＳ５では、タイミング制御部２３０に制御されて、目標電流演算部２３６において、エンジン振動の第１の周期Ｃ１のＦｒ側及びＲｒ側両方の目標電流値波形ＩＴＦｒ，ＩＴＲｒを算出する。この算出も図１１の（ａ），（ｂ）に示すエンジン振動の第２の周期Ｃ２に対応する「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」の演算処理サイクルにおいてなされる。
ステップＳ６では、タイミング制御部２３０に制御されて、駆動用パルス制御信号生成部２３７において、ステップＳ５で算出された目標電流値波形ＩＴＦｒ，ＩＴＲｒから、周期長さＴＰＷＭでサンプリングして、目標電流値Ｆｒ＿ＩＣＭＤ，Ｒｒ＿ＩＣＭＤそれぞれのデータの集合体を取得して、駆動用パルス制御信号出力時補正部２３８において目標電流値一時記憶部２３８ａ，２３８ｂに一時記憶させる。この処理は、図１１の（ａ），（ｂ）に示すエンジン振動の第２の周期Ｃ２に対応する「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」の演算処理サイクルにおいてなされる。
【０１０８】
ステップＳ７では、タイミング制御部２３０に制御されて、駆動用パルス制御信号生成部２３７において、ステップＳ６で取得された目標電流値Ｆｒ＿ＩＣＭＤ，Ｒｒ＿ＩＣＭＤそれぞれのデータの集合体のデータ個数Ｎ１Ｆ，Ｎ１Ｒを計数し、また、それぞれの電流ピーク位置ＮＣＦ，ＮＣＲを取得し、周期長さＴ１と対応させて、データ個数Ｎ１Ｆ，Ｎ１Ｒ、電流ピーク位置ＮＣＦ，ＮＣＲを駆動用パルス制御信号出力時補正部２３８において目標電流値一時記憶部２３８ａ，２３８ｂに一時記憶させる。この処理は、図１１の（ａ），（ｂ）に示すエンジン振動の第２の周期Ｃ２に対応する「ＥＮＧ振動推定演算＆目標電流演算処理サイクル」の演算処理サイクルにおいてなされる。
【０１０９】
ステップＳ８では、タイミング制御部２３０に制御されて、駆動用パルス制御信号出力時補正部２３８が、エンジン振動の第３の周期Ｃ３における所定のクランク角ＤＣ３までの時間ｔＣ３の計時を開始する。具体的には、所定のクランク角ＤＣ３に対応する、例えば、ＴＤＣパルスを起点とした８個のクランクパルス間隔分のクロックパルスの計数を開始する。このステップＳ８以降の処理は、図１１の（ａ），（ｂ）に示すエンジン振動の第３の周期Ｃ３に対応する「目標電流処理サイクル」の演算処理サイクルにおいて、駆動用パルス制御信号出力時補正部２３８で行われる。
ステップＳ９では、エンジン振動の第３の周期Ｃ３の所定角度（最初のステージＳＴＧ（ステージ番号「０」のステージＳＴＧに対応する））分のクランクパルス間隔を読み取る。この処理は、図１１の（ａ），（ｂ）に示すエンジン振動の第３の周期Ｃ３に対応する「目標電流処理サイクル」の演算処理サイクルにおいてなされる。
【０１１０】
ステップＳ１０では、ステップＳ９で読み取った所定角度（最初のステージＳＴＧ）分のクランクパルス間隔から、エンジン振動の第３の周期Ｃ３の最初のＳＴＧ時間を演算する。この処理は、図１１の（ａ），（ｂ）に示すエンジン振動の第３の周期Ｃ３に対応する「目標電流処理サイクル」の演算処理サイクルにおいてなされる。ステップＳ１０の後、結合子（Ａ）に従って図７のステップＳ１１へ進む。
【０１１１】
ステップＳ１１では、余りの時間Ｐ’１Ｆ，Ｐ’１Ｒを補正する（式（２Ａ），（２Ｂ）参照）。
ステップＳ１２Ａでは、ＳＴＧ個数Ｓ１Ｆ分のステージＳＴＧが終了したのを位相遅れ基準として、余りの時間Ｐ”１Ｆを経過後に目標電流値Ｆｒ＿ＩＭＣＤを駆動制御部２３９Ａに出力する。具体的には、駆動用パルス制御信号出力時補正部２３８は、前方側のアクティブ・コントロール・マウントＭＦに対して、ＳＴＧ個数Ｓ１Ｆ分のステージＳＴＧが終了（つまり、ＳＴＧ個数Ｓ１Ｆ分のＳＴＧ時間を経過）したのを検出した時を、位相遅れ基準とし、余りの時間Ｐ”１Ｆ経過後に目標電流値Ｆｒ＿ＩＭＣＤのデータの集合体を駆動制御部２３９Ａに出力する。
ステップＳ１２Ｂでは、ＳＴＧ個数Ｓ１Ｒ分のステージＳＴＧが終了したのを位相遅れ基準として、余りの時間Ｐ”１Ｒを経過後に目標電流値Ｒｒ＿ＩＭＣＤを駆動制御部２３９Ａに出力する。具体的には、駆動用パルス制御信号出力時補正部２３８は、後方側のアクティブ・コントロール・マウントＭＲに対して、ＳＴＧ個数Ｓ１Ｒ分のステージＳＴＧが終了（つまり、ＳＴＧ個数Ｓ１Ｒ分のＳＴＧ時間を経過）したのを検出した時を、位相遅れ基準とし、余りの時間Ｐ”１Ｒ経過後に目標電流値Ｒｒ＿ＩＭＣＤのデータの集合体を駆動制御部２３９Ｂに出力する。
【０１１２】
このように駆動用パルス制御信号出力時補正部２３８における目標電流出力処理によって、図１２の（ｉ）に前方側のアクティブ・コントロール・マウントＭＦに対する目標電流値Ｆｒ＿ＩＣＭＤの出力の例で示すように、ＳＴＧ個数Ｓ１Ｆ分のＳＴＧ時間が経過した時を「位相遅れ基準」として設定する。
ちなみに、図１２の（ｉ）では、ＳＴＧ個数Ｓ１Ｆ＝１の場合を例示している。
そして、位相遅れ基準から、補正された余りの時間Ｐ”１Ｆ経過後に目標電流値Ｆｒ＿ＩＣＭＤを出力して、第３の周期Ｃ３の周期長さＴ３に対応した遅れ時間δ１として位相遅れの調整処理ができている。
具体的には、エンジン回転速度が増加しているので、ＳＴＧ個数Ｓ１Ｆと第１の周期Ｃ１の平均のＳＴＧ時間（（Ｔ１）／４）との積の結果よりも、第３の周期Ｃ３におけるＳＴＧ個数Ｓ１Ｆ分のＳＴＧ時間の方が短い時間になっている。そのため、エンジン回転速度の増加に合わせて、位相遅れが補正される。
【０１１３】
ステップＳ１３では、所定のクランク角ＤＣ３に達したか否かを判定する。つまり、所定の個数、例えば、８個のクランクパルス間隔を計数したか否かを判定する。所定のクランク角ＤＣ３に達したと判定された場合（Ｙｅｓ）は、ステップＳ１４へ進み、そうでない場合（Ｎｏ）は、ステップＳ１３を繰り返す。
ステップＳ１４では、所定のクランク角ＤＣ３に達した時までの時間ｔＣ３を取得する。
ステップＳ１５では、エンジン振動の第３の周期Ｃ３におけるデータ個数Ｎ２Ｆ，Ｎ２Ｒを推定する。データ個数Ｎ２Ｆ，Ｎ２Ｒの算出は、前記した式（５Ａ），（５Ｂ）に基づいてできる。
【０１１４】
ステップＳ１６では、データ個数Ｎ１Ｆがデータ個数Ｎ２Ｆより大きいか否か（「Ｎ１Ｆ＞Ｎ２Ｆ？」）を判定する。データ個数Ｎ１Ｆがデータ個数Ｎ２Ｆより大きいと判定された場合（Ｙｅｓ）は、ステップＳ１７へ進み、そうでない場合（Ｎｏ）は、ステップＳ３１へ進む。ここで、データ個数Ｎ１Ｆがデータ個数Ｎ２Ｆより大きいと判定された場合は、エンジンの回転速度が増加していることを意味する。逆に、データ個数Ｎ１Ｆがデータ個数Ｎ２Ｆ以下と判定された場合は、エンジンの回転速度が減少している、または等速であることを意味する。
【０１１５】
（エンジン回転速度の増加の場合の目標電流値波形長さ調整処理）
以下のステップＳ１７〜Ｓ２９は、エンジン回転速度が増加している場合の、駆動用パルス制御信号出力時補正部２３８における目標電流値波形長さ調整処理、つまり、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理、並びに目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理の流れを示す。特にステップＳ１９〜Ｓ２３は、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理を示し、ステップＳ２４〜Ｓ２８は、目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理を示す。そして、ステップＳ２９からステップＳ１９に戻って繰り返し、目標電流値Ｆｒ＿ＩＣＭＤ及びＲｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数の調整をする。
ちなみに、ステップＳ１３〜Ｓ２９までの処理は、目標電流値Ｆｒ＿ＩＣＭＤのデータが位相遅れδ１の後に、周期長さＴＰＷＭ、例えば、５００μｓｅｃの周期間隔で駆動制御部２３９Ａに出力するタイミングに遅れを生じさせることなく、また、目標電流値Ｒｒ＿ＩＣＭＤが位相遅れδ２の後に、周期長さＴＰＷＭで駆動制御部２３９Ｂに出力するタイミングに遅れを生じさせることなくなされる。
【０１１６】
ステップＳ１７では、データ個数の差ΔＮＦ（＝Ｎ１Ｆ−Ｎ２Ｆ），ΔＮＲ（＝Ｎ１Ｒ−Ｎ２Ｒ）を算出し、次いでステップＳ１８で、フラグＩＦＬＡＧＡ，ＩＦＬＡＧＢを初期化（＝０）し、結合子（Ｂ）に従って、図８のステップＳ１９へ進む。
ここで、フラグＩＦＬＡＧＡは、駆動用パルス制御信号出力時補正部２３８が、目標電流値一時記憶部２３８ａに記憶されている目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体を読み出して駆動制御部２３９Ａに出力する際に、ステップＳ１５で推定したデータ個数Ｎ２Ｆに適合するように所定の個数ΔＮＦ個だけ目標電流値波形長さ調整処理のためジャンプして出力した後か、その前かを示すためのフラグである。同様に、フラグＩＦＬＡＧＢは、目標電流値一時記憶部２３８ｂに記憶されている目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体を読み出して駆動制御部２３９Ｂに出力する際に、ステップＳ１５で推定したデータ個数Ｎ２Ｒに適合するように所定の個数ΔＮＲ個だけ目標電流値波形長さ調整処理のためジャンプして出力した後か、その前かを示すためのフラグである。
【０１１７】
ステップＳ１９では、フラグＩＦＬＡＧＡが０より大きいか否か（「ＩＦＬＡＧＡ＞０？」）を判定する。フラグＩＦＬＡＧＡが０より大きい場合（Ｙｅｓ）は、ステップＳ２１へ進み、そうでない場合は（Ｎｏ）はステップＳ２０へ進む。最初は、前記した目標電流値波形長さ調整処理のためジャンプして出力をする前なのでステップＳ２０へ進む。ステップＳ２０では、目標電流値Ｆｒ＿ＩＣＭＤの出力個数が［ＮＣＦ−（ΔＮＦ／２）］の整数部の示す位置に達したか否かをチェックする。［ＮＣＦ−（ΔＮＦ／２）］の整数部の示す位置、つまり、図１２の（ｉ）における「ＮＡｃｕｔ」と表示した位置に達した場合（Ｙｅｓ）はステップＳ２２へ進み、達していない場合（Ｎｏ）はステップＳ２１へ進む。目標電流値Ｆｒ＿ＩＣＭＤの出力を開始して間もない場合は、［ＮＣＦ−（ΔＮＦ／２）］の整数部の示す位置に達していないので、ステップＳ２１へ進み、目標電流値一時記憶部２３８ａから次の順番の目標電流値Ｆｒ＿ＩＣＭＤを読み出して駆動制御部２３９Ａへ出力する。その後ステップＳ２４へ進む。その後、説明は後記するがステップＳ２４〜Ｓ２９に到り、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックし、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了していない場合は、ステップＳ１９に戻る。
【０１１８】
ステップＳ２０においてＹｅｓでステップＳ２２へ進むと、目標電流値一時記憶部２３８ａから次の目標電流値Ｆｒ＿ＩＣＭＤとして読み出して駆動制御部２３９Ａ出力する目標電流値Ｆｒ＿ＩＣＭＤを、［ＮＣＦ＋（ΔＮＦ／２）］の整数部の示す順番、つまり、図１２の（ｉ）における「ＮＢｃｕｔ」と表示した位置のものにジャンプさせ、以降その後に続く目標電流値Ｆｒ＿ＩＣＭＤを目標電流値一時記憶部２３８ａから読み出して出力する。つまり、次の目標電流値Ｆｒ＿ＩＣＭＤの出力を、［ＮＣＦ＋（ΔＮＦ／２）］の整数部の示す順番のものにジャンプさせ、以降その後に続く目標電流値Ｆｒ＿ＩＣＭＤを出力する。その後、ステップＳ２３において目標電流値Ｆｒ＿ＩＣＭＤのデータの出力を、［ＮＣＦ−（ΔＮＦ／２）］の整数部の示す位置から［ＮＣＦ＋（ΔＮＦ／２）］の整数部の示す位置にジャンプさせたことを示すフラグＩＦＬＡＧＡを立てる（「ＩＦＬＡＧＡ＝１」）。
【０１１９】
その後、説明は後記するがステップＳ２４〜Ｓ２９に到り、ステップＳ２９で目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックする。目標電流値Ｒｒ＿ＩＣＭＤの出力が完了していない場合は、ステップＳ１９に戻り、フラグＩＦＬＡＧＡが立っているので（ＩＦＬＡＧＡ＞０）、ステップＳ１９ではＹｅｓとなりステップＳ２１へ進む。そして、ステップＳ２１において、次の順番の目標電流値Ｆｒ＿ＩＣＭＤを目標電流値一時記憶部２３８ａから読み出し、駆動制御部２３９Ａへ出力する。
【０１２０】
その結果、図１２の（ｉ）に破線で示すような目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体が目標電流値一時記憶部２３８ａに記憶されているが、実際には図１２の（ｉ）に実線で示すように位相遅れδ１をもって目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体が目標電流値一時記憶部２３８ａから読み出されて出力され始め、実線ＸＡの部分が終了すると位置ＮＡｃｕｔから位置ＮＢｃｕｔにジャンプして、実線ＸＢの部分が出力される形で目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体が駆動制御部２３９Ａに出力される。
【０１２１】
図１３は、エンジン回転速度の加速の場合の、駆動用パルス制御信号出力時補正部におけるＦｒ側の目標電流値波形に係る目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体の補正方法の説明図であり、（ａ）は、エンジン振動の第１の周期Ｃ１の周期長さＴ１に応じて生成されたＦｒ側の目標電流値Ｆｒ＿ＩＣＭＤのＮ１Ｆ個のデータと電流ピーク位置ＮＣＦを示す説明図、（ｂ）は、エンジン振動の第３の周期Ｃ３の推定された周期長さＴ３’に応じたデータ個数Ｎ２Ｆになるように電流ピーク位置ＮＣＦ前後のΔＮＦ個のデータを出力しないように特定する説明図、（ｃ）は、電流ピーク位置ＮＣＦ前後のΔＮＦ個のデータを飛ばして、出力された目標電流値Ｆｒ＿ＩＣＭＤの説明図である。
図１３に示すように、電流ピーク位置ＮＣＦ前後のΔＮＦ個のデータを飛ばして出力することにより、容易に電流ピーク位置ＮＣＦを時間軸の中心にして前後で対称な目標電流値Ｆｒ＿ＩＣＭＤの出力としているので、周期ずれΔＴに応じた適切な防振制御ができる。
図１３には、Ｆｒ側の目標電流値Ｆｒ＿ＩＣＭＤを代表的に記載したが、Ｒｒ側の目標電流値Ｒｒ＿ＩＣＭＤも位相遅れδ１の代わりにδ２（＝δ１＋δ０）として同様に出力時に制御できる。
【０１２２】
ステップＳ２１において、目標電流値一時記憶部２３８ａに記憶された目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体の読み出しが終了すると、図示省略してあるが、目標電流値一時記憶部２３８ａにはエンジン振動の第２の周期Ｃ２に対する目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体等が記憶され、駆動用パルス制御信号出力時補正部２３８と駆動制御部２３９Ａによるアクティブ・コントロール・マウントＭＦに対する駆動制御が開始されるが、このフローチャートでは、単純化のため、そのような制御は省略してある。
【０１２３】
次に、目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理を示すステップＳ２４〜Ｓ２９について説明する。
ステップＳ２４では、フラグＩＦＬＡＧＢが０より大きいか否か（「ＩＦＬＡＧＢ＞０？」）を判定する。フラグＩＦＬＡＧＢが０より大きい場合（Ｙｅｓ）は、ステップＳ２６へ進み、そうでない場合は（Ｎｏ）はステップＳ２５へ進む。最初は、前記した目標電流値波形長さ調整処理のためジャンプして出力をする前なのでステップＳ２５へ進む。ステップＳ２５では、目標電流値Ｒｒ＿ＩＣＭＤの出力個数が［ＮＣＲ−（ΔＮＲ／２）］の整数部の示す位置に達したか否かをチェックする。［ＮＣＲ−（ΔＮＲ／２）］の整数部の示す位置に達した場合（Ｙｅｓ）はステップＳ２７へ進み、達していない場合（Ｎｏ）はステップＳ２６へ進む。目標電流値Ｒｒ＿ＩＣＭＤの出力を開始して間もない場合は、［ＮＣＲ−（ΔＮＲ／２）］の整数部の示す位置に達していないので、ステップＳ２６へ進み、目標電流値一時記憶部２３８ｂから次の順番の目標電流値Ｒｒ＿ＩＣＭＤを読み出して駆動制御部２３９Ｂへ出力する。その後ステップＳ２９へ進み、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックし、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了していない場合(Ｎｏ)は、ステップＳ１９〜Ｓ２１またはステップＳ１９〜Ｓ２３を経てステップＳ２４に進む。
【０１２４】
ステップＳ２５においてＹｅｓでステップＳ２７へ進むと、目標電流値一時記憶部２３８ｂから次の目標電流値Ｒｒ＿ＩＣＭＤとして読み出して駆動制御部２３９Ｂ出力する目標電流値Ｒｒ＿ＩＣＭＤを、［ＮＣＲ＋（ΔＮＲ／２）］の整数部の示す順番のものにジャンプさせ、以降その後に続く目標電流値Ｒｒ＿ＩＣＭＤを目標電流値一時記憶部２３８ｂから読み出して出力する。つまり、次の目標電流値Ｒｒ＿ＩＣＭＤの出力を、［ＮＣＲ＋（ΔＮＲ／２）］の整数部の示す順番のものにジャンプさせ、以降その後に続く目標電流値Ｒｒ＿ＩＣＭＤを出力する。その後、目標電流値Ｒｒ＿ＩＣＭＤのデータの出力を、［ＮＣＲ−（ΔＮＲ／２）］の整数部の示す位置から［ＮＣＦ＋（ΔＮＦ／２）］の整数部の示す位置にジャンプさせたことを示すフラグＩＦＬＧＢを立てる（「ＩＦＬＧＢ＝１」）。その後、ステップＳ２９に進み、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックし、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了していない場合(Ｎｏ)は、ステップＳ１９に戻り、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了した場合（Ｙｅｓ）は、エンジン回転速度が増加の場合の、１周期分の防振制御は終了する。
【０１２５】
次に、図７に戻りステップＳ１６においてＮｏでステップＳ３１へ進んだ場合について説明する。
ステップＳ３１では、データ個数Ｎ１Ｆとデータ個数Ｎ２Ｆが同値か否か（「Ｎ１Ｆ＝Ｎ２Ｆ？」）を判定し、同値の場合（Ｙｅｓ）は、ステップＳ５５へ進み、目標電流値Ｆｒ＿ＩＣＭＤ，Ｒｒ＿ＩＣＭＤをそのまま出力する。データ個数Ｎ１Ｆとデータ個数Ｎ２Ｆとが同値の場合は、エンジンの回転速度が一定であることを意味する。従って、具体的には、目標電流値一時記憶部２３８ａに記憶されている目標電流値Ｆｒ＿ＩＣＭＤのデータを周期長さＴＰＷＭで読み出して、駆動制御部２３９Ａに出力すると共に、目標電流値一時記憶部２３８ｂに記憶されている目標電流値Ｒｒ＿ＩＣＭＤのデータを周期長さＴＰＷＭで読み出して、駆動制御部２３９Ｂに出力する。
【０１２６】
（エンジン回転速度の減少の場合の目標電流値波形長さ調整処理）
ステップＳ３１においてＮｏの場合は、エンジンの回転速度が減少していることを意味し、ステップＳ３２に進む。
以下のステップＳ３２〜Ｓ５４は、エンジン回転速度が減少している場合の、駆動用パルス制御信号出力時補正部２３８における目標電流値波形長さ調整処理、つまり、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理、並びに目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理の流れを示す。特にステップＳ３４〜Ｓ４３は、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理を示し、ステップＳ４４〜Ｓ５３は、目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理を示す。そしてステップＳ５４からステップＳ３４に戻って繰り返し、目標電流値Ｆｒ＿ＩＣＭＤ及びＲｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数の調整をする。
そして、ステップＳ３１〜Ｓ５４までの処理は、目標電流値Ｆｒ＿ＩＣＭＤが位相遅れδ１で周期長さＴＰＷＭ、例えば、５００μｓｅｃの周期間隔で駆動制御部２３９Ａに出力するタイミングに遅れを生じさせることなく、また、目標電流値Ｒｒ＿ＩＣＭＤが位相遅れδ２で周期長さＴＰＷＭで駆動制御部２３９Ｂに出力するタイミングに遅れを生じさせることなくなされる。
【０１２７】
ステップＳ３２では、データ個数の差ΔＮＦ（＝Ｎ２Ｆ−Ｎ１Ｆ），ΔＮＲ（＝Ｎ２Ｒ−Ｎ１Ｒ）を算出し、次いでステップＳ３３で、フラグＩＦＬＡＧＡ１，ＩＦＬＡＧＢ１，ＩＦＬＡＧＡ２，ＩＦＬＡＧＢ２を初期化（＝０）し、結合子（Ｃ）に従って、図９のステップＳ３４へ進む。
ここで、フラグＩＦＬＡＧＡ１は、駆動用パルス制御信号出力時補正部２３８が、目標電流値一時記憶部２３８ａに記憶されている目標電流値Ｆｒ＿ＩＣＭＤのデータを読み出して駆動制御部２３９Ａに出力する際に、ステップＳ１５で推定したデータ個数Ｎ２Ｆに適合するように所定の個数ΔＮＦ個だけ目標電流値波形長さ調整処理のため電流ピーク位置の目標電流値Ｆｒ＿ＩＣＭＤを追加し出力し始めた後か、その前かを示すためのフラグである。同様に、フラグＩＦＬＡＧＢ１は、目標電流値一時記憶部２３８ｂに記憶されている目標電流値Ｒｒ＿ＩＣＭＤのデータを読み出して駆動制御部２３９Ｂに出力する際に、ステップＳ１５で推定したデータ個数Ｎ２Ｒに適合するように所定の個数ΔＮＲ個だけ目標電流値波形長さ調整処理のため電流ピーク位置の目標電流値Ｒｒ＿ＩＣＭＤを追加し出力し始めた後か、その前かを示すためのフラグである。
【０１２８】
フラグＩＦＬＡＧＡ２、ＦＬＡＧＢ２は、前記した電流ピーク位置の目標電流値Ｆｒ＿ＩＣＭＤまたは目標電流値Ｒｒ＿ＩＣＭＤを追加し出力し始めて、所定の個数ΔＮＦ個またはΔＮＲ個数追加出力するのが完了した後かその前かを示すためのフラグである。
【０１２９】
ステップＳ３４では、フラグＩＦＬＡＧＡ１が０より大きいか否か（「ＩＦＬＡＧＡ１＞０？」）を判定する。フラグＩＦＬＡＧＡ１が０より大きい場合（Ｙｅｓ）は、ステップＳ４０へ進み、そうでない場合は（Ｎｏ）はステップＳ３５へ進む。最初は、前記した目標電流値波形長さ調整処理のため電流ピーク位置ＮＣＦの目標電流値Ｆｒ＿ＩＣＭＤをΔＮＦ個追加する処理を開始していないのでステップＳ３５へ進む。ステップＳ３５では、目標電流値Ｆｒ＿ＩＣＭＤの出力個数がステップＳ７で取得されたＮＣＦの位置（電流ピーク位置ＮＣＦ）に達したか否かをチェックする。電流ピーク位置ＮＣＦに達した場合（Ｙｅｓ）はステップＳ３７へ進み、達していない場合（Ｎｏ）はステップＳ３６へ進む。目標電流値Ｆｒ＿ＩＣＭＤの出力を開始して間もない場合は、電流ピーク位置ＮＣＦに達していないので、ステップＳ３６へ進み、目標電流値一時記憶部２３８ａから次の順番の目標電流値Ｆｒ＿ＩＣＭＤを読み出して駆動制御部２３９Ａへ出力する。その後、結合子（Ｄ）に従って図１０のステップＳ４４へ進む。その後、説明は後記するがステップ４４〜Ｓ５４に到り、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックし、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了していない場合は、ステップＳ３４に戻る。
【０１３０】
ステップＳ３５においてＹｅｓでステップＳ３７へ進むと、フラグＩＦＬＡＧＡ１を立てる（ＩＦＬＡＧＡ１＝１）。そして、ステップＳ３８では、電流ピーク位置ＮＣＦの目標電流値Ｆｒ＿ＩＣＭＤをΔＮＦ個追加するための追加個数ｍ１をカウントするためにｍ１を初期化（ｍ１＝０）する。次いで、ステップＳ３９では、目標電流値一時記憶部２３８ａから次の目標電流値Ｆｒ＿ＩＣＭＤの値として、電流ピーク位置ＮＣＦの目標電流値Ｆｒ＿ＩＣＭＤを読み出して駆動制御部２３９Ａへ出力する。ステップＳ３９の後ステップＳ４１へ進み、ｍ１をカウントアップする（ｍ１＝ｍ１＋１）。ステップＳ４２では、ｍ１がΔＮＦ以上か否かをチェックする。ｍ１がΔＮＦ未満の場合は、結合子（Ｄ）に従って、図１０のステップＳ４４へ進む。ｍ１がΔＮＦ以上の場合は、ステップＳ４３へ進み、フラグＩＦＬＡＧＡ２を立て（ＩＦＡＧＡ２＝１）、結合子（Ｄ）に従って、図１０のステップＳ４４へ進む。その後、図１０の説明は後記するがステップＳ４４〜Ｓ５４に到り、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックする。目標電流値Ｒｒ＿ＩＣＭＤの出力が完了していない場合は、結合子（Ｅ）に従って図９のステップＳ３４に戻り、このステップＳ３４では、フラグＩＦＬＡＧＡ１が立っている（ＩＦＬＡＧＡ１＞０）ので、ＹｅｓとなってステップＳ４０へ進む。
【０１３１】
ステップＳ４０では、フラグＩＦＬＡＧＡ２が０より大きいか否か（「ＩＦＬＡＧＡ２＞０？」）をチェックし、フラグＩＦＬＡＧＡ２が０より大きい場合（Ｙｅｓ）は、ステップＳ３６へ進み、そうでない場合（Ｎｏ）は、ステップＳ３９へ進む。ステップＳ４０において、ＹｅｓでステップＳ３６へ進んだ場合は、次の順番の目標電流値Ｆｒ＿ＩＣＭＤを目標電流値一時記憶部２３８ａから読み出し、駆動制御部２３９Ａへ出力する。その後、結合子（Ｄ）に従って、図１０の説明は後記するがステップＳ４４〜Ｓ５４に到り、ステップＳ５４において目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックする。目標電流値Ｆｒ＿ＩＣＭＤの出力が完了していない場合は、結合子（Ｅ）に従って図９のステップＳ３４に戻る。
【０１３２】
ステップＳ３６において、目標電流値一時記憶部２３８ａに記憶された目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体の読み出しが終了すると、図示省略してあるが、目標電流値一時記憶部２３８ａにはエンジン振動の第２の周期Ｃ２に対する目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体等が記憶される。そして、駆動用パルス制御信号出力時補正部２３８と駆動制御部２３９Ａによるアクティブ・コントロール・マウントＭＦに対する駆動制御が開始されるが、このフローチャートでは、単純化のため、省略してある。
【０１３３】
次に、目標電流値Ｒｒ＿ＩＣＭＤのデータの集合体に含まれるデータの出力個数調整の処理を示すステップＳ４４〜Ｓ５４について説明する。
【０１３４】
ステップＳ４４では、フラグＩＦＬＡＧＢ１が０より大きいか否か（「ＩＦＬＡＧＢ１＞０？」）を判定する。フラグＩＦＬＡＧＢ１が０より大きい場合（Ｙｅｓ）は、ステップＳ５０へ進み、そうでない場合は（Ｎｏ）はステップＳ４５へ進む。最初は、前記した目標電流値波形長さ調整処理のため電流ピーク位置ＮＣＲの目標電流値Ｒｒ＿ＩＣＭＤをΔＮＲ個追加する処理を開始していないのでステップＳ４５へ進む。ステップＳ４５では、目標電流値Ｒｒ＿ＩＣＭＤの出力個数がステップＳ７で取得されたＮＣＲの位置（電流ピーク位置ＮＣＲ）に達したか否かをチェックする。電流ピーク位置ＮＣＲに達した場合（Ｙｅｓ）はステップＳ４７へ進み、達していない場合（Ｎｏ）はステップＳ４６へ進む。目標電流値Ｒｒ＿ＩＣＭＤの出力を開始して間もない場合は、電流ピーク位置ＮＣＲに達していないので、ステップＳ４６へ進み、目標電流値一時記憶部２３８ｂから次の順番の目標電流値Ｒｒ＿ＩＣＭＤを読み出して駆動制御部２３９Ｂへ出力する。その後、ステップＳ５４に進み、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックし、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了していない場合は、ステップＳ３４に戻る。
【０１３５】
ステップＳ４５においてＹｅｓでステップＳ４７へ進むと、フラグＩＦＬＡＧＢ１を立てる（ＩＦＬＡＧＢ１＝１）。そして、ステップＳ４８では、電流ピーク位置ＮＣＲの目標電流値Ｒｒ＿ＩＣＭＤをΔＮＲ個追加するための追加個数ｍ２をカウントするためにｍ２を初期化（ｍ２＝０）する。次いで、ステップＳ４９では、目標電流値一時記憶部２３８ｂから次の目標電流値Ｒｒ＿ＩＣＭＤの値として、電流ピーク位置ＮＣＲの目標電流値Ｒｒ＿ＩＣＭＤを読み出して駆動制御部２３９Ｂへ出力する。ステップＳ４９の後ステップＳ５１へ進み、ｍ２をカウントアップする（ｍ２＝ｍ２＋１）。ステップＳ５２では、ｍ２がΔＮＲ以上か否かをチェックする。ｍ２がΔＮＲ未満の場合（Ｎｏ）は、ステップＳ５４へ進む。ｍ２がΔＮＲ以上の場合（Ｙｅｓ）は、ステップＳ５３へ進み、フラグＩＦＬＡＧＢ２を立てる（ＩＦＡＧＢ２＝１）。その後、ステップＳ５４に到り、ステップＳ５４において目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックする。目標電流値Ｒｒ＿ＩＣＭＤの出力が完了していない場合（Ｎｏ）は、結合子（Ｅ）に従って図９のステップＳ３４に戻り、ステップＳ３５〜Ｓ４３を経て、または、ステップＳ３５、Ｓ４０，Ｓ３６を経て、ステップＳ４４に到る。ステップＳ４４では、フラグＩＦＬＡＧＢ１が立っている（ＩＦＬＡＧＢ１＞０）ので、ＹｅｓとなってステップＳ５０へ進む。
【０１３６】
ステップＳ５０では、フラグＩＦＬＡＧＢ２が０より大きいか否か（「ＩＦＬＡＧＢ２＞０？」）をチェックし、フラグＩＦＬＡＧＢ２が０より大きい場合（Ｙｅｓ）は、ステップＳ４６へ進み、そうでない場合（Ｎｏ）は、ステップＳ４９へ進む。ステップＳ５０において、ＹｅｓでステップＳ４６へ進んだ場合は、次の順番の目標電流値Ｒｒ＿ＩＣＭＤを目標電流値一時記憶部２３８ｂから読み出し、駆動制御部２３９Ｂへ出力する。その後、ステップＳ５４へ進み、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了したか否かをチェックし、目標電流値Ｒｒ＿ＩＣＭＤの出力が完了していない場合は、ステップＳ３４に戻る。目標電流値Ｒｒ＿ＩＣＭＤの出力が完了している場合（Ｙｅｓ）は、エンジン回転速度が減少の場合の、１周期分の防振制御は終了する。
【０１３７】
図１４は、エンジン回転速度の減速の場合の、目標電流出力処理サイクルにおけるＦｒ側の目標電流値波形に係る目標電流値のデータの集合体に含まれる目標電流値Ｆｒ＿ＩＣＭＤの電流ピーク位置の目標電流値のデータを所定個数繰り返す出力制御の詳細説明図であり、（ａ）は、エンジン振動の第１の周期Ｃ１の周期長さＴ１に応じて生成されたＦｒ側の目標電流値Ｆｒ＿ＩＣＭＤのＮ１Ｆ個のデータと電流ピーク位置ＮＣＦを示す説明図、（ｂ）は、エンジン振動の第３の周期Ｃ３の推定された周期長さＴ３’に応じたデータ個数Ｎ２Ｆになるように先ず電流ピーク位置ＮＣＦまでＦｒ側の目標電流値Ｆｒ＿ＩＣＭＤを出力する説明図、（ｃ）は、電流ピーク位置ＮＣＦの後にΔＮＦ個の電流ピーク位置ＮＣＦにおける目標電流値Ｆｒ＿ＩＣＭＤデータを追加して、その後、電流ピーク位置ＮＣＦより後に続くＦｒ側の目標電流値Ｆｒ＿ＩＣＭＤを出力する説明図である。
【０１３８】
図１４に示すように、電流ピーク位置ＮＣＦの後に、ΔＮＦ個の電流ピーク位置ＮＣＦにおける目標電流値Ｆｒ＿ＩＣＭＤのデータを追加して出力することにより、容易に電流ピーク位置ＮＣＦを時間軸の中心にして前後で対称な目標電流値Ｆｒ＿ＩＣＭＤの出力としているので、周期ずれΔＴに応じた適切な防振制御ができる。
図１４には、Ｆｒ側の目標電流値Ｆｒ＿ＩＣＭＤを代表的に記載したが、Ｒｒ側の目標電流値Ｒｒ＿ＩＣＭＤも位相遅れδ１の代わりにδ２（＝δ１＋δ０）として同様に出力時に制御できる。
【０１３９】
フローチャートにおけるステップＳ１が請求の範囲に記載の「読取処理」に対応し、ステップＳ２〜Ｓ７が請求の範囲に記載の「演算処理」に対応し、ステップＳ８〜Ｓ５５が請求の範囲に記載の「出力処理」に対応し、ステップＳ１３〜Ｓ５５が請求の範囲に記載の「目標電流値波形長さ調整処理」に対応する。
図１１から図１４の能動型防振支持装置３０１（図１参照）の制御方法の作用説明では、駆動用パルス制御信号出力時補正部２３８におけるＦｒ側の目標電流値Ｆｒ＿ＩＣＭＤの出力制御を例示して説明したが、駆動用パルス制御信号出力時補正部２３８におけるＲｒ側の目標電流値Ｒｒ＿ＩＣＭＤの出力制御も同様に行なわれる。
【０１４０】
本実施形態によれば、エンジン回転速度が変動する場合は、駆動用パルス制御信号出力時補正部２３８は、周期長さＴ１であるエンジン振動の第１の周期Ｃ１に対して位相検出部２３５が算出した位相遅れＰ１Ｆ（図１１、図１２参照）を、前記したように、アクチュエータの駆動タイミングであるエンジン振動の第３の周期Ｃ３における周期長さＴ３に適合させた位相遅れδ１に補正し、更に、駆動制御部２３９Ａ，２３９Ｂに出力する目標電流値Ｆｒ＿ＩＣＭＤのデータ個数も周期Ｃ３における周期長さＴ３を推定した周期長さＴ３’に対応したデータ個数Ｎ２Ｆとして出力するので、連続する目標電流値波形が重なることが防止できる。
【０１４１】
エンジン回転速度の加速時には、位相検出部２３５において算出した位相遅れＰ１Ｆ（図１１参照）よりも、短い時間遅れδ１で目標電流値波形が出力されることになる。
具体的には、エンジン回転速度の加速時には、位相検出部２３５において算出した位相遅れＰ１Ｆ（図１１、図１２参照）よりも、短い時間遅れδ１で、かつ、短い波形長の目標電流値波形が出力されることになる。
【０１４２】
図１５は、エンジン回転速度の加速時におけるＦｒ側の目標電流値波形の出力をエンジン振動の５周期に亘り示した説明図である。駆動用パルス制御信号出力時補正部２３８は、周期長さＴ１であるエンジン振動の第１の周期Ｃ１に対して位相検出部２３５が算出した位相遅れＰ１Ｆ（図１１参照）を、前記したように、アクチュエータの駆動タイミングであるエンジン振動の第３の周期Ｃ３における周期長さＴ３に適合された位相遅れδ１に補正し、更に、目標電流値の波形長を短くして出力しているので、連続する目標電流値波形が重なることが防止できる。
従って、特許文献１に示された従来技術のように、駆動部４１への通電を停止することなく、充分なエンジン振動に対する防振機能を発揮することができる。
【０１４３】
なお、図１１、図１２を用いた説明では、エンジン回転速度の加速の場合を例に説明したが、逆にエンジン回転速度の減速の場合は、Ｆｒ側の目標電流値波形の出力を例に説明すると、エンジン回転速度が減少しているので、ＳＴＧ個数Ｓ１Ｆと第１の周期Ｃ１の平均のＳＴＧ時間（（Ｔ１）／４）との積の結果よりも、第３の周期Ｃ３のＳＴＧ個数Ｓ１Ｆ分のＳＴＧ時間の方が長い時間になる。その場合、駆動用パルス制御信号出力時補正部２３８は、周期長さＴ１であるエンジン振動の第１の周期Ｃ１に対して位相検出部２３５が算出した位相遅れＰ１Ｆ（図１１、図１２参照）よりも、長い時間遅れδ１で、かつ、長い波形長の目標電流値波形を出力することになる。そのため、エンジン回転速度の減速の場合にもエンジン回転速度の減少に合わせた適切な防振制御ができる。
【０１４４】
図１６は、エンジン回転速度の減速時におけるＦｒ側の目標電流値波形の出力をエンジン振動の５周期に亘り示した説明図である。位相検出部２３５において算出された位相遅れＰ１Ｆ（図１１参照）を、前記したように、アクチュエータの駆動タイミングであるエンジン振動の第３の周期Ｃ３における周期長さＴ３に適合された位相遅れδ１に補正し、更に、目標電流値の波形長を長くして出力していることを示している。
【０１４５】
これにより、実際に駆動制御部２３９Ａ，２３９Ｂ（図３参照）に出力される目標電流値波形を、出力時の実際のエンジン振動の周期長さＴ３や位相遅れに応じたように出力制御でき、エンジン回転速度の加減速による周期ずれを生じない滑らかな防振制御ができる。その結果、エンジン振動が効率よく抑制され、駆動回路１２１Ａ，１２１Ｂにおける無駄な発熱を抑制できる。
ちなみに、本実施形態では、第１の周期Ｃ１の平均のＳＴＧ時間（（Ｔ１）／４）をＳＴＧ個数Ｓ１Ｆと余りの時間Ｐ’１Ｆ、ＳＴＧ個数Ｓ１Ｒと余りの時間Ｐ’１Ｒを算出するときに用いることにより、エンジン回転速度が加速している場合、減速している場合のいずれの場合にも、安定なＳＴＧ個数Ｓ１Ｆと余りの時間Ｐ’１Ｆ、ＳＴＧ個数Ｓ１Ｒと余りの時間Ｐ’１Ｒを算出することができる。
【０１４６】
《変形例》
次に、前記した実施形態の変形例について図１７を参照しながら説明する。図１７は、
実施形態の変形例における防振制御の流れの変更部分を示すフローチャートである。
本変形例は、請求の範囲第５項に係る発明に対応する。前記した実施形態において、駆動用パルス制御信号出力時補正部２３８が所定のクランク角ＤＣ３に達した時までの時間ｔＣ３を取得する代わりに、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体の出力を駆動制御部２３９Ａに出力開始した時を起点として、クランクパルス間隔の計数と目標電流値Ｆｒ＿ＩＣＭＤのデータの出力個数Ｎｎｏｗの計数を開始する。そして、所定の個数ｍ０個のクランクパルス間隔を計数したときの目標電流値Ｆｒ＿ＩＣＭＤのデータの出力個数Ｎｎｏｗを検出して、エンジン振動の第３の周期Ｃ３における周期長さＴ３に対応するデータ個数Ｎ２Ｆ，Ｎ２Ｒを推定する。
【０１４７】
この所定個数ｍ０個のクランクパルス間隔を計数したときの目標電流値Ｆｒ＿ＩＣＭＤのデータの出力個数Ｎｎｏｗが分かれば、駆動用パルス制御信号出力時補正部２３８は、次式（６）によりエンジン振動の第３の周期Ｃ３に対応する目標電流値Ｆｒ＿ＩＣＭＤのデータ個数Ｎ２Ｆ，Ｎ２Ｒが推定できる。
Ｎ２Ｆ＝Ｎ２Ｒ＝｛［（Ｎｎｏｗ−１）×１２０／（６×ｍ０）］の整数部｝＋１
・・・（６）
ここで、（Ｎｎｏｗ−１）にサンプリング間隔ＴＰＷＭの５００μｓｅｃを乗じれば、エンジン振動の第１の周期Ｃ１における目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体でのデータの位置Ｎｎｏｗ個目までの所要時間に対応する。その所要時間は、エンジン振動の第３の周期Ｃ３における位相遅れ基準を起点とした所定の個数ｍ０個のクランクパルス間隔数、つまり、クランク角に換算して（６×ｍ０）ｄｅｇ．に対する所要時間に対応することになる。従って、（Ｎｎｏｗ−１）を比例計算、つまり、（Ｎｎｏｗ−１）／（６×ｍ０）に、１２０ｄｅｇ．を乗じ、その整数部に１を加算すれば、エンジン振動の第３の周期Ｃ３における周期長さＴ３に対応するデータ個数Ｎ２Ｆ，Ｎ２Ｒが得られる。
【０１４８】
本変形例では、実施形態の防振制御のフローチャートにおける図７のステップＳ１２Ｂの後のステップＳ１３〜Ｓ１５の代わりに、図１７に示すようにステップＳ６１〜Ｓ６５を挿入する。
ステップＳ１２Ａ，１２Ｂの後、ステップＳ６１へ進み、目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体の駆動制御部２３９Ａへの出力を開始したか否かをチェックする（「目標電流値Ｆｒ＿ＩＣＭＤを出力開始したか？」）。目標電流値Ｆｒ＿ＩＣＭＤのデータを出力開始した場合（Ｙｅｓ）は、ステップＳ６２へ進み、目標電流値Ｆｒ＿ＩＣＭＤを出力開始していない場合（Ｎｏ）は、ステップＳ６１を繰り返す。
ステップＳ６２では、目標電流値Ｆｒ＿ＩＣＭＤのデータの出力個数Ｎｎｏｗの計数を開始する。また、テップＳ６３では、クランクパルス間隔の計数ｍＦを開始する。
ステップＳ６４では、クランクパルス間隔の計数ｍＦが所定の個数ｍ０以上に達したか否かをチェックする。クランクパルス間隔の計数ｍＦが所定の個数ｍ０以上に達した場合（Ｙｅｓ）は、ステップＳ６５へ進み、そうでない場合は、ステップＳ６４を繰り返す。
【０１４９】
ステップＳ６５では、クランクパルス間隔の計数ｍＦが所定の個数ｍ０以上に達した時の目標電流値Ｆｒ＿ＩＣＭＤのデータの出力個数Ｎｎｏｗを取得し、エンジン振動の第３の周期Ｃ３における目標電流値Ｆｒ＿ＩＣＭＤ，Ｒｒ＿ＩＣＭＤそれぞれのデータの集合体のデータ個数Ｎ２Ｆ，Ｎ２Ｒを式（６）に基づいて推定する。その後、ステップＳ１６へ進む。
【０１５０】
このように、駆動用パルス制御信号出力時補正部２３８において、目標電流値Ｆｒ＿ＩＣＭＤのデータの出力開始を起点として、クランクパルス間隔の計数を開始して、所定の個数ｍ０のクランクパルス間隔の計数に達したときに、出力された目標電流値Ｆｒ＿ＩＣＭＤのデータの集合体中の位置Ｎｎｏｗを取得することによって容易に周期ずれに対応して駆動用パルス制御信号出力時補正部２３８から駆動制御部２３９Ａ，２３９Ｂに出力するデータ個数のうちの未出力のデータ部分のデータ個数を前記した実施形態と同様に調整処理できる。
【符号の説明】
【０１５１】
４１    駆動部（アクチュエータ）
１００  エンジンＥＣＵ（エンジン制御装置）
１００ａ，２００ａ  ＥＣＵ電源回路
１００ｂ  マイクロコンピュータ  
２００  ＡＣＭ＿ＥＣＵ（制御手段）
２００ｂ  マイクロコンピュータ
２３０  タイミング制御部
２３１  ＣＲＫパルス読取時刻一時記憶部
２３２  ＣＲＫパルス間隔演算部
２３３  エンジン回転モード判定部
２３４  振動状態推定部（振動状態推定手段）
２３５  位相検出部
２３６  目標電流演算部（目標電流算出手段）
２３７  駆動用パルス制御信号生成部（目標電流値集合体生成手段）
２３８  駆動用パルス制御信号出力時補正部（駆動時振動周期推定手段、出力時補正手段）
２３８ａ，２３８ｂ  一時記憶部
２３９Ａ，２３９Ｂ  駆動制御部（給電制御手段）
３０１  能動型防振支持装置
Ｍ，ＭＦ，ＭＲ  アクティブ・コントロール・マウント
Ｓａ    クランクパルスセンサ
Ｓｂ    ＴＤＣセンサ
【図１】
0005564042.tif 000002
【図２】
0005564042.tif 000003
【図３】
0005564042.tif 000004
【図４】
0005564042.tif 000005
【図５】
0005564042.tif 000006
【図６】
0005564042.tif 000007
【図７】
0005564042.tif 000008
【図８】
0005564042.tif 000009
【図９】
0005564042.tif 000010
【図１０】
0005564042.tif 000011
【図１１】
0005564042.tif 000012
【図１２】
0005564042.tif 000013
【図１３】
0005564042.tif 000014
【図１４】
0005564042.tif 000015
【図１５】
0005564042.tif 000016
【図１６】
0005564042.tif 000017
【図１７】
0005564042.tif 000018