以下、本発明における能動型防振装置について好適な実施形態を挙げ、添付の図面を参照しながら説明する。
[車両10の概略構成]
図1は、本発明の一実施形態における能動型防振装置200を搭載した車両10の概略構成図である。本図に示す車両10は、駆動源(原動機)としてのエンジン12を有するエンジン車両である。この車両10は、エンジン12に加えて、走行モータを有するハイブリッド車両であってもよい。
エンジン12は、その回転軸が車幅方向とされた状態において、エンジンマウント202f、202rを介して車体14に支持されている。エンジンマウント202f、202rは、アクチュエータ210を駆動することによりエンジン12からの振動(以下、エンジン振動)を能動的に抑制する能動型防振装置200の一部を構成する。
車両10は、能動型防振装置200に加え、エンジン12の制御に関連するエンジン制御系100と、バッテリ16とを有する。なお、車両10の基本的な構成要素については、例えば、上記した特許文献1、特開2011−252553号公報、又は特開2014−137003号公報と同様のものを用いることができる。
エンジン制御系100は、エンジン12に関連する構成要素として、クランクセンサ102と、上死点センサ(以下、TDCセンサ104)と、スタータモータ106と、外気温センサ108と、燃料噴射電子制御装置(以下、FI−ECU110)と、を含んで構成される。
クランクセンサ102は、図示しないクランクシャフトの回転位置(以下、クランク回転位置θcrk)を検出し、クランク回転位置θcrkを示す信号(以下、CRKパルス信号Scrk)をFI−ECU110に出力する。TDCセンサ104は、図示しないエンジンピストンが上死点に来たタイミング(以下、上死点タイミング)を検出し、上死点タイミングを示す信号(以下、TDCパルス信号Stdc)をFI−ECU110に出力する。
スタータモータ106は、エンジン12のモータリングに用いられ、バッテリ16からの電力に基づいてエンジン12に対して駆動力を伝達する。外気温センサ108は、外気温Tex(単位:℃)を検出してFI−ECU110及び後述するACM−ECU206にそれぞれ出力する。
FI−ECU110は、CRKパルス信号Scrk、TDCパルス信号Stdc等の各種入力信号に基づいてエンジン12を制御する。例えば、FI−ECU110は、CRKパルス信号Scrkに基づいて、単位時間当たりのエンジン12の回転数(以下、エンジン回転速度Ne;単位はrpm)を算出して用いる。後述する能動型防振装置200のACM電子制御装置(以下、ACM−ECU206)と同様、FI−ECU110は、図示しない入出力部、演算部及び記憶部を有する。
FI−ECU110は、エンジン12の気筒休止モード(気筒作動モード)を制御可能に構成される。この場合、FI−ECU110は、CRKパルス信号Scrkと、TDCパルス信号Stdcと、気筒の作動状態(全気筒作動モード又は気筒休止モード)を示す気筒信号ScyとをACM−ECU206に送信する。
[能動型防振装置200の構成]
能動型防振装置200は、エンジン12から車体14への振動伝達を抑制するための装置である。この能動型防振装置200は、上述のエンジンマウント202f、202r及びACM−ECU206に加え、電流センサ204f、204rを有する。
電流センサ204f、204rは、ACM−ECU206を介してバッテリ16からエンジンマウント202f、202rに供給される電流(以下、駆動電流Idf、Idr、或いは総称して駆動電流Id)を検出して、ACM−ECU206に出力する。
図2は、図1のエンジンマウント202f、202rの内部構成を示す図である。エンジンマウント202f、202rは、エンジン振動を能動的に抑制するいわゆるACM(Active Control Mount)として機能する。具体的には、エンジンマウント202f、202rはそれぞれ、アクチュエータ210、加振板212及びゴム板214を有する。
アクチュエータ210は、駆動軸216及びコイル218を有し、エンジン振動を相殺する相殺振動を生成する。駆動軸216は、コイル218の通電に伴う電磁力に応じて進退する。加振板212は、駆動軸216の進退に応じて進退して、エンジンマウント202f、202r内に封入された液体を付勢する。ゴム板214は、固定されている加振板212の動きに合わせて一体的に変位する。
ACM−ECU206は、アクチュエータ210を駆動制御する装置であり、入出力部220、演算部222及び記憶部224(図1)を有する。ACM−ECU206がアクチュエータ210を駆動させることにより、車体14へのエンジン振動の伝達を抑制するための振動抑制制御を行う。
入出力部220は、ACM−ECU206と他の各部との間の信号の入出力を行う。演算部222は、記憶部224に記憶されているプログラムを実行することにより、エンジンマウント202f、202rを制御する装置であり、例えば、中央処理装置(CPU)を含む。演算部222の詳細については、図3を参照して後述する。
記憶部224は、演算部222が利用するプログラム及びデータを記憶する。記憶部224は、揮発性メモリ又は不揮発性メモリからなるRAM(Random Access Memory)を備える。また、記憶部224は、RAMに加え、ROM(Read Only Memory)を有してもよい。
なお、本実施形態では、演算部222が用いるプログラム及びデータは、車両10の記憶部224に記憶されていることを想定している。しかしながら、例えば、入出力部220に含まれる無線装置を介して外部サーバ(いずれも不図示)からプログラム及びデータの一部を取得してもよい。
[演算部222の機能]
<全体概要>
図3は、図1及び図2のACM−ECU206の演算部222の機能を示すブロック図である。図3に示す演算部222の各部は、記憶部224に記憶されたプログラムの実行により実現される機能部である。
この演算部222は、エンジン状態変数算出部250と、指令値算出部252と、指令値補正部254と、目標電流波形算出部256と、アクチュエータ駆動制御部258と、内部温度推定部260と、内部温度調整部262と、補正実行判断部264を有する。
エンジン状態変数算出部250は、エンジン状態変数として、エンジン12が振動する振幅(以下、振動振幅Av)及びエンジン12が回転・振動する周期(以下、振動周期Pv)を算出する。なお、エンジン状態変数算出部250は、振動周期Pvに代えて周波数を算出してもよい。
指令値算出部252は、エンジン状態変数算出部250からの振動振幅Av及び振動周期Pvに基づいて、アクチュエータ210の動作指令値Cを算出する。ここで、指令値算出部252は、補正実行判断部264からの補正モードフラグFlgmodに応じて、後述する2種類の算出モードを切り替えながら動作指令値Cを算出することができる。
指令値補正部254は、指令値算出部252からの動作指令値Cと、外気温センサ108からの外気温Texと、内部温度調整部262からの計算用温度Tcalとに基づいて動作指令値Cを補正する。ここで、指令値補正部254は、補正実行判断部264からの補正モードフラグFlgmodに応じて、補正の実行状態(ON/OFF)を切り替えることができる。
目標電流波形算出部256は、指令値補正部254が補正した動作指令値Cに基づいて目標電流波形Wiを算出する。アクチュエータ駆動制御部258は、目標電流波形Wiに基づいて駆動電圧Vdを印加することで、アクチュエータ210を駆動する。
内部温度推定部260は、アクチュエータ駆動制御部258からの電圧デューティ比DUTに基づいてアクチュエータ210の内部温度Tacmを推定する。内部温度調整部262は、内部温度推定部260が推定した内部温度Tacmを必要に応じて調整することで、内部温度Tacmと同一の又は異なる温度(以下、計算用温度Tcal)を算出する。
補正実行判断部264は、ACM−ECU206の外部情報又は内部情報に基づいて、指令値補正部254による動作指令値Cの補正の実行要否を判断する。外部情報は、ACM−ECU206に入力される各種情報であり、例えば、外気温Tex、駆動電流Idを含む。内部情報は、ACM−ECU206が生成する各種情報であり、例えば、内部温度Tacm、振動周期Pv、ポイント数Np、補正モードフラグFlgmodを含む。
<エンジン状態変数算出部250の詳細>
図4は、図3のエンジン状態変数算出部250の機能を示す詳細なブロック図である。このエンジン状態変数算出部250は、エンジン振動振幅算出部270と、エンジン振動周期算出部272と、を含んで構成される。
エンジン振動振幅算出部270は、CRKパルス信号Scrk及びTDCパルス信号Stdcに基づいて振動振幅Avを算出する。具体的には、エンジン振動振幅算出部270は、CRKパルス信号Scrkの1周期における特定時点(例えば、立ち上がり時点又は立ち下がり時点)の間隔Dcrkの累積値∫Dcrkを算出する。次いで、エンジン振動振幅算出部270は、累積値∫Dcrkを上死点タイミングの間隔Dtdcで割って平均値Dcrkave(=(∫Dcrk)/Dtdc)を算出する。
そして、エンジン振動振幅算出部270は、各特定時点の間隔Dcrkと平均値Dcrkaveの偏差ΔDcrkを算出し、偏差ΔDcrkの最大値と最小値の差を振動振幅Avとする。振動振幅Avは、実際のエンジン振動振幅と高い相関性を持つため、エンジン振動振幅の代わりとして用いられる。
なお、エンジン振動振幅算出部270中の括弧内には、演算処理の入出力特性が模式的に示されている。具体的には、エンジン振動振幅算出部270がCRKパルス信号Scrk及びTDCパルス信号Stdcを主たる入力値として振動振幅Avを算出することを示している。「G」は関数を意味している。他の構成要素についても同様である。
エンジン振動周期算出部272は、CRKパルス信号Scrk及び気筒信号Scyに基づいて振動周期Pvを算出する。具体的には、エンジン振動周期算出部272は、CRKパルス信号Scrkの1周期における特定時点の間隔を振動周期Pvとして算出する。なお、気筒信号Scyは、気筒の作動状態に応じて振動周期Pvの変化を判定するために用いられる。
<指令値算出部252の詳細>
図5は、図3の指令値算出部252の機能を示す詳細なブロック図である。この指令値算出部252は、1次指令電流算出部280と、1次位相算出部282と、2次指令電流算出部284と、2次位相算出部286と、振動周期ポイント数算出部288と、2次電流乗数設定部290と、乗算器292と、を含んで構成される。
1次指令電流算出部280は、振動振幅Avと振動周期Pvの組合せ毎に1次指令電流Ic1(単位:A)を算出する。ここで、1次指令電流Ic1は、アクチュエータ210に供給する電流の指令値の1次成分である。より具体的には、1次指令電流算出部280は、振動振幅Avと振動周期Pvの組合せと1次指令電流Ic1の関係を規定したマップ(1次指令電流マップ)を有する。そして、1次指令電流算出部280は、この1次指令電流マップを参照することで、振動振幅Avと振動周期Pvの組合せに対応する1次指令電流Ic1を読み出して指令値補正部254に出力する。
1次位相算出部282は、振動振幅Avと振動周期Pvの組合せ毎に1次位相Pc1(単位;rad)を算出する。ここで、1次位相Pc1は、1次指令電流Ic1の位相である。より具体的には、1次位相算出部282は、振動振幅Avと振動周期Pvの組合せと1次位相Pc1の関係を規定したマップ(1次位相マップ)を有する。そして、1次位相算出部282は、この1次位相マップを参照することで、振動振幅Avと振動周期Pvの組合せに対応する1次位相Pc1を読み出して指令値補正部254に出力する。
2次指令電流算出部284は、振動振幅Avと振動周期Pvの組合せ毎に2次指令電流Ic2(単位:A)を算出する。ここで、2次指令電流Ic2は、アクチュエータ210に供給する電流の指令値の2次成分である。より具体的には、2次指令電流算出部284は、振動振幅Avと振動周期Pvの組合せと2次指令電流Ic2の関係を規定したマップ(2次指令電流マップ)を有する。そして、2次指令電流算出部284は、この2次指令電流マップを参照することで、振動振幅Avと振動周期Pvの組合せに対応する2次指令電流Ic2を読み出して指令値補正部254に出力する。
2次位相算出部286は、振動振幅Avと振動周期Pvの組合せ毎に2次位相Pc2(単位:rad)を算出する。ここで、2次位相Pc2は、2次指令電流Ic2の位相である。より具体的には、2次位相算出部286は、振動振幅Avと振動周期Pvの組合せと2次位相Pc2の関係を規定したマップ(2次位相マップ)を有する。そして、2次位相算出部286は、この2次位相マップを参照することで、振動振幅Avと振動周期Pvの組合せに対応する2次位相Pc2を読み出して指令値補正部254に出力する。
振動周期ポイント数算出部288は、振動周期Pvに応じて目標電流Itarのポイント数Np(単位:個)を算出する。ここで、ポイント数Npは、1波形当たりの目標電流Itarのプロット数であり、振動周期Pvに比例して増加する。より詳しくは、振動周期ポイント数算出部288は、振動周期Pvとポイント数Npの関係を規定したマップ(以下、ポイント数マップ300)を有する。そして、振動周期ポイント数算出部288は、図6に示すポイント数マップ300を参照することで、振動周期Pvに対応するポイント数Npを読み出して指令値補正部254に出力する。
2次電流乗数設定部290は、補正モードフラグFlgmodに応じて、2次指令電流算出部284の出力側に設けられた乗算器292の乗数を設定する。例えば、2次電流乗数設定部290は、振動周期Pvに対応する1次成分からなる動作指令値Cを算出する「第1算出モード」の場合には乗数を0に設定する。一方、振動周期Pvに対応する1次及び複数次成分(ここでは、2次)からなる動作指令値Cを算出する「第2算出モード」の場合には乗数を正値(例えば、1)に設定する。
<指令値補正部254の詳細>
図7は、図3の指令値補正部254の機能を示す詳細なブロック図である。ここでは、指令値補正部254は、内部温度Tacmに応じて1次指令電流Ic1を補正する。なぜならば、後述する目標電流波形Wiが同じであっても、内部温度Tacmの変化に応じて、アクチュエータ210による発生力Fが異なるためである。
指令値補正部254は、フラグ判定部310と、基準発生力算出部312と、発生力低下率算出部314と、発生力低下量算出部316と、補正値算出部318と、1次指令電流補正部320とを含んで構成される。
フラグ判定部310は、補正モードフラグFlgmodの値を参照し、温度補正の実行状態を判定する。フラグ判定部310は、温度補正が「ON」である場合に、1次指令電流Ic1を基準発生力算出部312に出力する。一方、フラグ判定部310は、温度補正が「OFF」である場合に、1次指令電流Ic1をそのまま目標電流波形算出部256に出力する。
基準発生力算出部312は、1次指令電流Ic1に基づいてアクチュエータ210の発生力Fの基準値(以下、基準発生力Fref)を算出する。
発生力低下率算出部314は、内部温度調整部262からの計算用温度Tcalと、基準温度Trefとの関係から、アクチュエータ210の発生力Fの低下度合いを示す発生力低下率Rfdwnを算出する。
発生力低下量算出部316は、基準発生力算出部312からの基準発生力Frefと、発生力低下率算出部314からの発生力低下率Rfdwnとの積を、発生力低下量Fdwnとして算出する(Fdwn=Fref・Rfdwn)。
補正値算出部318は、発生力低下量算出部316からの発生力低下量Fdwnを電流に換算した後、1次指令電流Ic1に対する補正値Icrt1を算出する。
1次指令電流補正部320は、温度補正が「ON」である場合、1次指令電流Ic1に対して、補正値Icrt1を加えることで1次指令電流Ic1を補正する(Ic1(補正後)=Ic1(補正前)+Icrt1)。
<目標電流波形算出部256の詳細>
図8は、図3の目標電流波形算出部256の機能を示す詳細なブロック図である。この目標電流波形算出部256は、1次目標電流波形算出部330と、2次目標電流波形算出部332と、波形合成部334と、ゼロ点補正部336と、を含んで構成される。
1次目標電流波形算出部330は、振動周期Pv、1次指令電流Ic1及び1次位相Pc1に基づいて1次目標電流波形Wi1(単位:A)を算出する。より具体的には、1次目標電流波形算出部330は、図9の目標電流波形マップ350を参照することで、振動周期Pvと1次指令電流Ic1の組合せに対応する目標電流配列Miを読み出す。そして、1次目標電流波形算出部330は、読み出した目標電流配列Miに1次位相Pc1を反映させて1次目標電流波形Wi1を算出する。
図9は、図8の1次目標電流波形算出部330が用いる目標電流波形マップ350を示す図である。目標電流波形マップ350は、振動周期Pvと1次指令電流Ic1の組合せ毎に設けられた目標電流配列Miの集合体に相当する。各々の目標電流配列Miは、目標電流Itarの時系列を示すデータセットであり、目標電流波形Wiを構成する。
2次目標電流波形算出部332は、振動周期Pv、2次指令電流Ic2及び2次位相Pc2に基づいて2次目標電流波形Wi2(単位:A)を算出する。より具体的には、2次目標電流波形算出部332は、図9のマップと同一の又は異なる目標電流波形マップ350を参照することで、振動周期Pvと2次指令電流Ic2の組合せに対応する目標電流配列Miを読み出す。なお、同一の目標電流波形マップ350を用いる場合、振動周期Pvの半分に相当する周期と、2次指令電流Ic2の組合せに対応する目標電流配列Miを読み出す点に留意する。
図10A〜図10Cは、図8の2次目標電流波形算出部332により2次目標電流波形Wi2を算出する第1、第2、第3状態を示す図である。
図10Aには、振動周期Pv及び2次指令電流Ic2に基づいて算出された2次目標電流波形Wi2が示されている。この2次目標電流波形Wi2は、1回の波形演算周期Pwc内において、読み出された目標電流配列Mi(振動周期Pvの半周期)を2回分だけ順次配置されてなる点に留意する。
図10Bには、図10Aの2次目標電流波形Wi2に対して2次位相Pc2を反映した状態が示されている。この2次目標電流波形Wi2は、図10Aに示す波形に対して、2次位相Pc2だけ遅れるように調整されている。これにより、図10Bの2次目標電流波形Wi2を構成する目標電流Itarのうち白丸で示した部分(右側)は、今回の波形演算周期Pwcからはみ出す。
図10Cには、図10Bではみ出した目標電流Itar(白丸)を、同じ波形演算周期Pwcの開始位置に平行移動させた状態が示されている。これにより、目標電流Itarの周期性が保証される。
波形合成部334は、1次目標電流波形Wi1と2次目標電流波形Wi2を合成することで目標電流波形Wi(合成目標電流波形)を算出する。以下、具体的な合成結果について、図11A〜図11Cを参照しながら説明する。
図11Aは、1次目標電流波形算出部330が算出した1次目標電流波形Wi1を示す。図11Bは、2次目標電流波形算出部332が算出した2次目標電流波形Wi2を示す。図11Cは、波形合成部334が1次目標電流波形Wi1と2次目標電流波形Wi2を合成して算出した目標電流波形Wiを示す。
図11Cの目標電流波形Wiに関して、1つの波形演算周期Pwcは、電流のボトム値からピーク値までの区間(以下、電流上がり区間Zup)と、電流のピーク値からボトム値までの区間(以下、電流下り区間Zdwn)と、に区分される。
ゼロ点補正部336は、目標電流波形算出部256が算出した目標電流波形Wiに対してゼロ点補正を行う。図11Cに示すように、波形演算周期Pwcの全区間において、目標電流波形Wiがゼロよりも大きくなる場合がある。ゼロ点補正は、目標電流波形Wiのボトム値(最小値)がゼロになるように目標電流波形Wi全体を下げる補正に相当する。ゼロ点補正を行った目標電流波形Wiは、後述する図18Aに示されている。
<アクチュエータ駆動制御部258の概要>
図12は、図3のアクチュエータ駆動制御部258の詳細を示すブロック図である。このアクチュエータ駆動制御部258は、次回目標電流値算出部360と、電圧デューティ比算出部362と、駆動回路364と、を含んで構成される。本図では、1組の電流センサ204及びアクチュエータ210を表記しているが、実際には、図1に示すように複数組設けられる。
次回目標電流値算出部360は、目標電流波形算出部256で算出された目標電流波形Wi(図11C)から順次選択した目標電流Itarを、次回目標電流Itarnxtとして算出する。
電圧デューティ比算出部362は、次回目標電流値算出部360からの次回目標電流値Itarnxtと、電流センサ204からの駆動電流Idに基づいて、電圧デューティ比DUTを算出する。電圧デューティ比DUTは、スイッチング周期Pswに対する駆動電圧Vdの印加時間Taの割合であり、下記の式(1)により定義される。
DUT=Ta/Psw (1)
図13は、アクチュエータ駆動制御部258が出力する駆動電圧Vdの一例を示す図である。スイッチング周期Pswは、波形演算周期Pwcの整数倍に相当する。また、駆動電圧Vdは、時間によらず変化しない固定電圧である。
電圧デューティ比算出部362は、例えばPID制御を用いる場合、下記の式(2)により電圧デューティ比DUTを算出する。
DUT(n)=P(n)+I(n)+D(n) (2)
上記式(2)において、PはP項(比例項)であり、IはI項(積分項)であり、DはD項(微分項)である。P、I、Dは、それぞれ下記の式(3)〜(5)で定義される。
P(n)=Kp{Itar(n+1)−Id(n)} (3)
I(n)=Ki{Itar(n)−Id(n)} (4)
D(n)=D(n−1)+Kd{Itar(n)−Id(n)} (5)
上記式(2)〜(5)において、「n」は今回のスイッチング周期Pswにおける値を示し、「n−1」は前回のスイッチング周期Pswにおける値を示し、「n+1」は次回のスイッチング周期Pswにおける値を示す。KpはP項ゲインであり、KiはI項ゲインであり、KdはD項ゲインである。
駆動回路364は、電圧デューティ比算出部362からの電圧デューティ比DUTを用いて、アクチュエータ210に駆動電圧Vdを印加する。ここでは、パルス幅変調(PWM:pulse width modulation)を用いるため、駆動電圧Vdは固定電圧である。なお、駆動回路364は、図12に示すようにアクチュエータ駆動制御部258に含まれてもよいし、エンジンマウント202f、202rの一部として構成してもよい。
図14は、図12の駆動回路364の一部を示す回路図である。この駆動回路364は、3つのスイッチング素子380a、380b、380cと、4つのダイオード382a、382b、382c、382dと、を含んで構成される。
Vinはバッテリ16(図1)からの入力電圧を示すと共に、Voutはバッテリ16側への出力電圧を示している。入力電圧Vinは、バッテリ16の出力電圧(バッテリ電圧Vbat)そのものではなく、図示しない昇圧回路により昇圧された電圧であってもよい。
スイッチング素子380a及びダイオード382aは、バッテリ16とコイル218の間で並列配置される。スイッチング素子380b及びダイオード382bは、コイル218とグラウンドの間で並列配置される。スイッチング素子380c及びダイオード382dは、コイル218とグラウンドの間に並列配置される。ダイオード382cは、バッテリ16とコイル218の間に配置される。
この駆動回路364は、スイッチング素子380a〜380cのオン・オフ動作に伴って、3つの通電経路(以下、ループ1〜3)を形成する。破線で示すループ1は、スイッチング素子380a、380cがオンとなり、スイッチング素子380bがオフとなった際のループである。実線で示すループ2は、スイッチング素子380b、380cがオンとなり、スイッチング素子380aがオフとなった際のループである。一点鎖線で示すループ3は、スイッチング素子380a〜380cがいずれもオフとなった際のループである。
<各々の演算項Kp、Ki、Kdの切替え>
図15は、図1〜図3のアクチュエータ210の目標電流波形Wi及び駆動電流Idの波形の例を示す図である。目標電流波形Wiは、アクチュエータ210が1回進退する動作周期(つまり、波形演算周期Pwc)を複数のポイントに分割して設定される。目標電流波形Wi(又は目標電流配列Mi)は、複数の目標電流Itarにより形成される。
目標電流Itarの区切りは、スイッチング素子380a〜380cのスイッチング周期Psw(単位:sec)に対応する。エンジンマウント202f、202rに対して、同一の又は異なる振幅で位相をずらすように目標電流Itarが設定される。
なお、上記した通り、アクチュエータ駆動制御部258は、駆動回路364によるループ1〜3を用いてアクチュエータ210を制御する。電流上がり区間Zup(図11C)にて駆動電流Idを増加させる際は、ループ1とループ2を交互に入れ替える。一方、電流下り区間Zdwn(図11C)にて駆動電流Idを減少させる際は、ループ3とループ2を交互に入れ替える。
つまり、ACM−ECU206は、ループ1〜3を以下のように切り替えると共に、ループ1〜3の種類に応じて演算項Kp、Ki、Kdを切り替える。これにより、図15に示す電流上がり区間Zup及び電流下り区間Zdwnを実現することができる。
Itar−Id≧0の場合 →ループ1
Itar−Id<0かつDUT>0の場合→ループ2
Itar−Id<0かつDUT≦0の場合→ループ3
<内部温度Tacmの推定方法>
続いて、本実施形態における内部温度Tacmの推定方法について説明する。ここでは、立ち下がり時の駆動電流Idを用いて内部温度Tacmを推定する。
(内部温度Tacmの推定モデル)
図16は、低温時及び高温時における目標電流波形Wiと駆動電流Idとの関係の一例を示す図である。本図では、目標電流波形Wi及び駆動電流Idが減少している際(換言すると、電流下り区間Zdwn)の様子が示されている。
低温時の駆動電流Idと高温時の駆動電流Idとでは、傾き(すなわち、駆動電流Idの時間微分値又は電流傾き偏差ΔI(単位:A/sec)が異なる。特に、ループ2により駆動電流Idが減少する際の傾きが大きく異なる。そこで、内部温度推定部260は、ループ2における駆動電流Idの傾きの変化(ここでは、電圧デューティ比DUTの変化度合い)を利用して内部温度Tacmを推定する。
図17は、本実施形態における温度推定の原理を説明するための図である。内部温度推定部260は、平均デューティ比DUTave及びポイント数Npを用いて内部温度Tacmを推定する。ここで、平均デューティ比DUTaveは、所定区間における電圧デューティ比DUTの平均である。
ここで、所定区間は、電流下り区間Zdwnの全部又は一部に設定される。電流下り区間Zdwnの一部とは、例えば、電圧デューティ比DUTが第1デューティ比閾値THdut1から第2デューティ比閾値THdut2(<THdut1)に下がるまでの区間に相当する。
内部温度Tacmが基準温度Tref以上である場合、電流下り区間Zdwnの平均デューティ比DUTaveは、内部温度Tacmに対して概ね線形的に変化する傾向がある。そこで、ACM−ECU206は、この傾向を考慮して、この平均デューティ比DUTaveから内部温度Tacmを推定する。
具体的には、ポイント数Np(ここでは、振動周期Pv1〜Pv3)に対応付けられた内部温度−平均デューティ比特性(以下、特性曲線500)を特定する(例えば、複数の特性曲線500a〜500cのうち1つの特性曲線500b)と共に、電圧デューティ比DUTに基づいて平均デューティ比DUTave(例えば、DUTave1)を特定する。
そして、特性曲線500において、平均デューティ比DUTaveに対応する内部温度Tacm(例えば、Tacm1)を、現在の内部温度Tacmとする。なお、平均デューティ比変化率Rdutaveは、平均デューティ比DUTaveが1増加したときの内部温度Tacmの変化量を示す。
特性曲線500から理解されるように、駆動電流Idの立ち下がり時(換言すると、ループ2とループ3を交互に実行する際)には、平均デューティ比DUTaveが内部温度Tacmに応じて略線形で変化する。なぜならば、内部温度Tacmが上昇すると、アクチュエータ210内のエアが膨張して駆動軸216とコイル218の間のエアギャップが広がり、コイル218のインダクタンスが減少して応答性が変化するためである。
一方、内部温度Tacmが基準温度Tref未満である場合、特性曲線500を1次直線に近似することが困難である。なぜならば、内部温度Tacmが低温のときには、ゴム板214(図2)の硬化度合いが大きくなり、内部温度Tacmと発生力Facmが比例しないためである。
なお、駆動電流Idの立ち上がり時(換言すると、ループ1とループ3を交互に実行する際)には、上記した応答性の変化は相対的に小さい。よって、平均デューティ比DUTaveは、内部温度Tacmにかかわらず略一定である。
(平均デューティ比DUTaveの算出方法)
図18Aは、目標電流波形Wiの一例を示す。図18Aの目標電流波形Wi(目標電流配列Mi)は、図11Cの目標電流波形Wiにゼロ点補正を行ったものである。図18Bは、図18Aの目標電流配列Miを用いた場合の電圧デューティ比DUTを示す図である。このため、図18A及び図18Bの横軸は同じである。図18Cは、図18Bの一部を拡大して示す図である。
アクチュエータ駆動制御部258は、算出対象区間Ztarにわたる電圧デューティ比DUTの平均値(以下、平均デューティ比DUTave)を算出する。ここで、算出対象区間Ztarは、電圧デューティ比DUTが、THdut1≦DUT≦THdut2の関係を満たす区間に相当する。
ここでは、アクチュエータ駆動制御部258は、算出対象区間Ztarにおける電圧デューティ比DUTから回帰直線510を算出した後、回帰直線510の最大値DUTmaxと最小値DUTminの平均値((DUTmax+DUTmin)/2)を、出力平均デューティ比DUTaveoutとして算出する。
<内部温度推定部260の詳細>
図19は、図3の内部温度推定部260の機能を示す詳細なブロック図である。この内部温度推定部260は、出力波形特定部530と、出力平均デューティ比算出部532と、基準平均デューティ比算出部534と、平均デューティ比変化率算出部536と、内部温度算出部538と、を含んで構成される。
出力波形特定部530は、アクチュエータ駆動制御部258の電圧デューティ比算出部362(図12)から個々の電圧デューティ比DUTを取得する。そして、出力波形特定部530は、個々の電圧デューティ比DUTを波形演算周期Pwc毎にまとめて、出力デューティ比配列Mioutとして出力する。
出力平均デューティ比算出部532は、出力波形特定部530からの出力デューティ比配列Mioutに基づいて、出力平均デューティ比DUTaveoutを算出する。図18A〜図18Cを参照して説明した算出方法を用いることができる。
基準平均デューティ比算出部534は、1次指令電流Ic1(図5)とポイント数Np(図5及び図6)に基づいて、基準平均デューティ比DUTaveref(図17)を算出する。より具体的には、基準平均デューティ比算出部534は、図20の基準平均デューティ比マップ550を参照することで、1次指令電流Ic1とポイント数Npの組合せに対応する基準平均デューティ比DUTaverefを読み出す。
図20は、図19の基準平均デューティ比算出部534が用いる基準平均デューティ比マップ550を示す。基準平均デューティ比マップ550は、1次指令電流Ic1とポイント数Npの組合せと基準平均デューティ比DUTaverefの関係を規定する。
図21は、ポイント数Npと平均デューティ比DUTaveとの関係の一例を示す図である。ここでは、ポイント数Npが奇数である場合と、偶数である場合の両方を示している。ポイント数Npは、エンジン回転速度Neの逆数(1/Ne)に概ね比例する。
本図に示すように、ポイント数Npが奇数である場合と偶数である場合とで、ポイント数Npと平均デューティ比DUTaveとの関係が異なっている。これは、ポイント数Npが奇数の場合と偶数の場合とで、ポイントの位置がずれるためと考えられる。この場合、ポイント数Npの偶奇性に応じた基準平均デューティ比マップ550を準備してもよい。
平均デューティ比変化率算出部536は、1次指令電流Ic1(図5)とポイント数Np(図5及び図6)に基づいて平均デューティ比変化率Rdutave(図17)を算出する。より具体的には、平均デューティ比変化率算出部536は、図22の平均デューティ比変化率マップ560を参照することで、1次指令電流Ic1とポイント数Npの組合せに対応する平均デューティ比変化率Rdutaveを読み出す。
図22は、図19の平均デューティ比変化率算出部536が用いる平均デューティ比変化率マップ560を示す。平均デューティ比変化率マップ560は、1次指令電流Ic1とポイント数Npの組合せと平均デューティ比変化率Rdutaveの関係を規定する。なお、基準平均デューティ比マップ550の場合と同様に、ポイント数Npの偶奇性に応じた平均デューティ比変化率マップ560を準備してもよい。
内部温度算出部538は、出力平均デューティ比DUTaveoutと、基準平均デューティ比DUTaverefと、平均デューティ比変化率Rdutaveと、基準温度Trefとに基づいて、アクチュエータ210の内部温度Tacmを算出する。具体的には、内部温度算出部538は、下記の式(6)に基づいて内部温度Tacmを算出する。なお、この式(6)は、特性曲線500(図17)には、内部温度Tacmが基準温度Tref以上において高いリニアリティがみられることを前提としている。
Tacm=(DUTaveout−DUTaveref)・Rdutave+Tref (6)
<第1及び第2算出モードを併用した温度補正>
(1.動作の概略)
補正実行判断部264は、波形演算周期Pwcおきに、補正モードフラグFlgmodの直近値を、指令値算出部252、指令値補正部254、及び内部温度調整部262に出力する。補正モードフラグFlgmodを共有することで、指令値算出部252は、他の構成部(指令値補正部254又は内部温度調整部262)との間で同期制御を行うことができる。
補正実行判断部264は、原則的には、温度補正「ON」かつ「第2算出モードの実行」を示す補正モードフラグFlgmodを出力するが、2種類のトリガ(切替トリガ、推定トリガ)を示す補正モードフラグFlgmodを一時的に出力することがある。ここで、「切替トリガ」は算出モードの切り替えのためのトリガであり、「推定トリガ」は直近に推定した内部温度Tacmを温度補正に反映させるためのトリガである。
指令値算出部252は、波形演算周期Pwcおきに補正モードフラグFlgmodを参照し、第1算出モード又は第2算出モードのいずれかに切り替えて、動作指令値Cを算出する。第1算出モードの場合には2次指令電流Ic2の乗数が0となり、第2算出モードの場合には2次指令電流Ic2の乗数が非0(基本的には1)となる。
指令値補正部254は、波形演算周期Pwcおきに補正モードフラグFlgmodを参照し、温度補正が常に「ON」であるとして動作指令値Cを補正する。
内部温度調整部262は、波形演算周期Pwcおきに補正モードフラグFlgmodを参照し、第1算出モード又は第2算出モードのいずれかに切り替えて、計算用温度Tcalを出力する。ここでは、内部温度調整部262は、第1算出モードの実行中に推定した内部温度Tacmを用いて計算用温度Tcalを算出する一方、第2算出モードの実行中に推定した内部温度Tacmを用いずに計算用温度Tcalを算出する。
(2.動作の具体例)
続いて、本実施形態における温度補正に関するACM−ECU206の動作の具体例について、図23及び図24を参照しながら説明する。
図23は、第1及び第2算出モードを併用した温度補正を模式的に示す図である。このタイムチャートは、上から順に、[1]算出モード(補正モードフラグFlgmod)、[2]温度バッファ(内部温度Tacm)、[3]補正値Icrt1の時系列を示す。なお、タイムチャートの横軸は、時間の代わりに、演算回数(単位:回)で表記している。
本図から理解されるように、温度補正の実行単位である「サイクル」は、Ncy個分の波形演算周期Pwcからなる。指令値算出部252は、各々のサイクルにつき、概ね中間部分にある第1算出モード(1次)と、残りの部分を占める第2算出モード(2次合成)とを組み合わせたシーケンスを実行する。
内部温度調整部262は、各々のサイクルにつき、第1算出モードに対応する波形演算周期Pwcにて推定した内部温度Tacmを、温度バッファ(バッファメモリ)に格納する。なお、内部温度調整部262は、第2算出モードの実行中であっても、所定の条件が成立した場合に限り、内部温度Tacmを温度バッファに格納してもよい。
内部温度調整部262は、各々のサイクルにつき、温度バッファに格納された内部温度Tacmの統計値(ここでは、平均値)を算出した後、計算用温度Tcalとして指令値補正部254に出力する。これにより、今回のサイクル(例えば、第1サイクル)で算出された計算用温度Tcalが、次回のサイクル(例えば、第2サイクル)における温度補正(補正値Icrt1)に反映されることになる。
図24は、図23における第1サイクル内での具体的な処理内容を示す図である。このタイムチャートは、上から順に、[1]目標電流波形Wi、[2]補正モードフラグFlgmod(切替トリガの状態)、[3]補正モードフラグFlgmod(推定トリガの状態)、[4]2次指令電流Ic2、及び[5]内部温度Tacmの推定実績、の時系列を示す。説明の便宜のため、本図では、最初の12個分の波形演算周期(#01〜#12)のみを表記している。
1〜4番目の電流波形において、補正実行判断部264は、切替トリガ及び推定トリガの両方を検出していないので、第2算出モード(2次合成)を継続して実行する。この場合、内部温度Tacmが温度バッファに格納されない状態が継続する。
補正実行判断部264は、5番目の電流波形を形成している途中に、切替トリガを示す補正モードフラグFlgmodを出力する。そうすると、指令値算出部252は、第2算出モードから第1算出モード(1次)への切替タイミングを検出し、2次指令電流Ic2に作用する乗数を、5番目(1)→6番目(0.5)→7番目(0)のように段階的に減少させる。
補正実行判断部264は、7番目の電流波形を形成している途中に、推定トリガを示す補正モードフラグFlgmodを出力する。そうすると、内部温度調整部262は、内部温度Tacmの推定タイミングを検出し、直近に推定した内部温度Tacmを温度バッファに格納させる。
また、指令値算出部252は、内部温度Tacmの推定タイミングから所定時間(例えば、波形演算周期Pwc)が経過した後、第1算出モードから第2算出モードに再び切り替える。これにより、指令値算出部252は、2次指令電流Ic2に作用する乗数を、7番目(0)→8番目(0.5)→9番目(1)のように段階的に増加させる。
10番目の電流波形を形成している途中に、2次指令電流Ic2の値が、1次指令電流Ic1と比べて無視できる程度に小さくなっている。この場合、内部温度調整部262は、直近に推定した内部温度Tacmを温度バッファに格納させる(10番目、11番目)。
以下、同様にして、第1サイクル内の動作を終了する。温度バッファには、3つの内部温度Tacm(50℃、51℃、51℃)が格納されているので、計算用温度Tcal=50.7[℃](3つの平均値)と求められる。
このように、指令値算出部252は、第2算出モードの実行中に、第1算出モードに一時的に切り替え可能であり、内部温度推定部260は、第1算出モードを一時的に実行している間に内部温度Tacmを推定し、指令値補正部254は、第2算出モードの再開後に、第1算出モードの実行中に推定された内部温度Tacmに応じて動作指令値Cを補正してもよい。これにより、第2算出モードの実行を継続しつつ、自動的かつ即時に補正の内容を反映させることができる。
また、指令値算出部252は、動作指令値Cの複数次成分に作用する乗数を段階的に変化させることで、第1算出モードから第2算出モードに(又は第2算出モードから第1算出モードに)切り替えてもよい。これにより、2つの算出モードを急に切り替える場合と比べて、動作指令値Cの補正に対する影響を緩和することができる。
また、指令値算出部252は、第1算出モード及び第2算出モードを含む算出モードを識別可能なフラグ(ここでは、補正モードフラグFlgmod)を取得可能に構成されてもよい。補正モードフラグFlgmodを共有することで、指令値算出部252と他の構成部(ここでは、指令値補正部254及び内部温度調整部262)との間で同期制御を行うことができる。
[能動型防振装置200による効果]
以上のように、この能動型防振装置200は、エンジン12(駆動源)と車体14との間に配置されたアクチュエータ210と、アクチュエータ210に能動的振動を生成させることでエンジン12から車体14への振動伝達を抑制するACM−ECU206(コンピュータ)と、を備える装置である。
ACM−ECU206は、[1]エンジン12の振動情報(振動振幅Av、振動周期Pv)からアクチュエータ210の動作指令値Cを算出する指令値算出部252と、[2]アクチュエータ210の内部温度Tacmに応じた補正値Icrt1を算出し、補正値Icrt1を用いて動作指令値Cを補正する指令値補正部254と、[3]補正した動作指令値Cに基づく電圧デューティ比DUTを用いてアクチュエータ210に駆動電圧Vdを印加するアクチュエータ駆動制御部258と、[4]所定区間の電圧デューティ比DUTの平均としての平均デューティ比DUTaveに基づいて、内部温度Tacmを推定する内部温度推定部260と、を備える。
そして、[5]指令値算出部252は、エンジン12の振動周期Pvに対応する1次成分からなる動作指令値Cを算出する第1算出モードと、振動周期Pvに対応する1次及び複数次成分からなる動作指令値Cを算出する第2算出モードとを切り替えて実行可能であり、[6]指令値補正部254は、第1算出モードの実行中に推定される内部温度Tacmを用いて、かつ、第2算出モードの実行中に推定される内部温度Tacmを用いずに動作指令値Cを補正する。
アクチュエータ210の内部温度Tacmに対する平均デューティ比DUTaveの関係を示す特性曲線500には、高い相関性及び高い再現性が部分的にみられる。そこで、この傾向を踏まえて動作指令値Cを補正することで、アクチュエータ210の内部温度Tacmを高精度に推定することができる。しかも、特性曲線500の相関性を低下させ得る複数次成分を含む動作指令値Cに基づく制御(つまり、第2算出モード)の実行中に内部温度Tacmを予め用いないことで、補正精度の低下を防止することができる。
[能動型防振装置200の変形例]
続いて、能動型防振装置200の変形例(ここでは、ACM−ECU206A)について、図25を参照しながら説明する。なお、本実施形態(ACM−ECU206)と同様の構成には同一の参照符号を付すると共に、その構成に関する説明を省略する場合がある。
<ブロック図>
図25は、変形例におけるACM−ECU206Aの演算部222の機能を示すブロック図である。この演算部222は、エンジン状態変数算出部250と、指令値算出部252と、指令値補正部254と、目標電流波形算出部256と、アクチュエータ駆動制御部258と、内部温度推定部260Aと、内部温度調整部262Aと、補正実行判断部264を有する。
内部温度推定部260Aは、内部温度推定部260(図3)と同様に、電圧デューティ比DUTに基づいてアクチュエータ210の内部温度Tacmを推定する。ここで、内部温度推定部260Aは、補正実行判断部264からの補正モードフラグFlgmodに応じて、推定の実行判断(ON/OFF)を切り替えることができる。
内部温度調整部262Aは、内部温度推定部260Aが推定した内部温度Tacmを必要に応じて調整し、計算用温度Tcalを算出する。ただし、内部温度調整部262Aには、補正実行判断部264からの補正モードフラグFlgmodが供給されない点で、内部温度調整部262(図3)の機能とは異なる。
<動作の概略>
補正実行判断部264は、波形演算周期Pwcおきに、補正モードフラグFlgmodの直近値を、指令値算出部252、指令値補正部254、及び内部温度推定部260Aに出力する。補正モードフラグFlgmodを共有することで、指令値算出部252は、他の構成部(指令値補正部254又は内部温度推定部260A)との間で同期制御を行うことができる。
<動作の具体例>
続いて、変形例におけるACM−ECU206Aの動作の具体例について、図23を参照しながら説明する。
内部温度推定部260Aは、各々のサイクルにつき、補正モードフラグFlgmodから特定される推定タイミングにて内部温度Tacmを推定し、この内部温度Tacmを内部温度調整部262Aに向けて出力する。内部温度調整部262Aは、内部温度推定部260Aから内部温度Tacmが出力される度に、所定の温度バッファ(バッファメモリ)に格納する。
内部温度調整部262Aは、各々のサイクルにつき、温度バッファに格納された内部温度Tacmの統計値を算出した後、計算用温度Tcalとして指令値補正部254に出力する。これにより、今回の第1サイクルで算出された計算用温度Tcalが、次回の第2サイクルにおける温度補正(補正値Icrt1)に反映されることになる。
<ACM−ECU206Aによる効果>
以上のように、ACM−ECU206Aの指令値算出部252は、第1算出モードと第2算出モードとを切り替えて実行可能であり、内部温度推定部260Aは、第1算出モードの実行中には内部温度Tacmを推定し、かつ、第2算出モードの実行中には内部温度Tacmを推定しない。
このように構成しても、本実施形態(ACM−ECU206)と同様の作用効果(内部温度Tacmの推定精度の向上)が得られる。また、第2算出モードの実行中に内部温度Tacmを予め推定しないことで、補正精度の低下を防止することができる。特に、内部温度Tacmの推定を省略することで、演算処理量の削減を図ることができる。
[補足]
なお、この発明は、上述した実施形態及び変形例に限定されるものではなく、この発明の主旨を逸脱しない範囲で自由に変更できることは勿論である。或いは、技術的に矛盾が生じない範囲で各々の構成を任意に組み合わせてもよい。
上記した実施形態では、エンジン車両である車両10に能動型防振装置200を搭載しているが、適用範囲はこれに限らない。例えば、ハイブリッド車両を含む車両全般であってもよいし、駆動源を備える移動体(船舶や航空機)、製造装置、ロボット又は家電製品に適用してもよい。
上記した実施形態では、内部温度推定部260(A)は、式(6)に基づいて内部温度Tacmを推定しているが、推定モデルはこれに限らない。例えば、高い相関性及び高い再現性があることを条件に、特性曲線500を2次以上の多項式関数や指数関数を含む非線形関数で近似した推定モデルを用いてもよい。