本発明に係る電動機の制御装置を含む装置の一例として、直流電源の直流電力をPWM変調することにより3相電力をモータに供給するインバータを備える車両用のインバータシステムについて説明する。以下に、本発明の第1乃至第3の実施形態に係るインバータシステムについて、図1乃至図9を参照して説明する。
(第1の実施形態)
(インバータシステムの構成)
以下、図1を参照して、本発明の第1の実施形態を適用したインバータシステムの構成と動作について説明する。図1は、本発明の第1の実施形態を適用したインバータシステムの概略構成図である。本インバータシステムは、図1に示すように、インターフェイス回路1、マイクロコンピュータ2、ドライブ回路3、インバータ4、電動機であるモータ5、直流電源6、コンデンサ7、電流センサ8および回転センサ9を主に備える。
ここで、インターフェイス回路1は、車速、アクセル開度、モータ5の回転子位相、モータ5の3相電流iu[A]、iv[A],iw[A]等の各種車両変数の信号をデジタル信号として入力する。マイクロコンピュータ2は、上記各種車両変数に応じて、モータ5を制御するPWM信号(on duty)tu[%]、tv[%]、tw[%]を生成する。ドライブ回路3は、上記PWM信号(on duty)tu[%]、tv[%]、tw[%]に応じてインバータ4を駆動する駆動信号を生成する。
インバータ4は、例えば、各相ごとに2個のスイッチング素子(例えば、IGBT等のパワー半導体素子)からなり、上記駆動信号に応じてスイッチング素子が開閉することにより、モータ5に所望の電流を流して駆動する。その他、直流電源6は、バッテリや燃料電池等である。コンデンサ7は電流リップ吸収用に設けられている。電流センサ8は、U相電流iu[A]およびV相電流iv[A]を検出する。W相電流iw[A]は、3相電流の合計値が0になることから、U相電流iu[A]およびV相電流iv[A]から演算される。回転センサ9は、レゾルバやエンコーダ等からなり、モータ5の回転子位相を検出する。上記車両用インバータシステムでは、基本的には、車速とアクセル開度に応じてトルク指令値を求め、当該トルク指令値に対応したトルクを発生するように、モータ5に流す電流を制御する。
次に、上記車両用インバータシステムの電流フィードバック制御について説明する。まず、回転センサ9で検出された回転子位相を微分して、モータ5の回転子角速度(電気角)ω[rad/s]を演算する。回転子位相をθ[rad]とすると、ω=dθ/dtである。次に、トルク指令値、回転子角速度ω[rad/s]および直流電源6の出力電圧である直流電圧Vdcから、dq軸電流目標値id*[A]、iq*[A]をtable参照で求める。次に、3相電流iu[A]、iv[A],iw[A]と回転子位相から、dq軸電流値id[A]、iq[A]を演算する。次に、dq軸電流目標値id*[A]、iq*[A]とdq軸電流値id[A]、iq[A]との偏差からdq軸電圧指令値vd[V]、vq[V]を演算する。なお、この部分に非干渉制御を加えることもある。
次に、dq軸電圧指令値vd[V]、vq[V]と回転子位相から、3相電圧指令値vu[V]、vv[V]、vw[V]を演算する。次に、3相電圧指令値vu[V]、vv[V]、vw[V]と直流電圧値vdcからPWM信号(on duty)tu[%]、tv[%]、tw[%]を演算する。上記のように求められたPWM信号(on duty)tu[%]、tv[%]、tw[%]によってインバータ4のスイッチング素子が開閉制御され、モータ5がトルク指令値で指示された所望のトルクで駆動される。このようにして、モータ5に対して電流フィードバックによるベクトル制御が行なわれる。
(制御装置10の構成)
次に、第1の実施形態に係る制御装置10の構成と動作について、図2を参照して説明する。図2は、本発明の第1の実施形態に係る制御装置10の制御モデルを示す図である。図2に示す制御装置10は、図1のマイクロコンピュータ2に含まれており、図2に示す機械系振動要素13は、図1のドライブ回路3、インバータ4およびモータ5等を含む機械系要素をモデル化したものである。機械系振動要素13は、最終トルク指令値T[Nm]および機械系振動要素13の伝達特性H(s)に基づいて、モータ回転数n[rpm]を出力する。ここで、機械系振動要素13の伝達特性H(s)を、下記(数1)式に示す。
但し、(数1)式において、s:ラプラス演算子、ξp:減衰定数、b1、b2:定数、J:慣性モーメント[kgm2]、ωp:振動角周波数[rad/s]である。
制御装置10は、図1に示した車速、アクセル開度などの車両情報に基づく第1のトルク指令である基本トルク指令値T*[Nm]に基づいて、機械系振動要素13に最終トルク指令値T[Nm]を出力する。具体的には、基本トルク指令値T*[Nm]を第2のトルク指令である制限後トルク指令値T’[Nm]に制限する第1のトルク制御手段である第1のトルク制限部11を備える。更に、第1のトルク制限部11から出力された制限後トルク指令値T’[Nm]の振動を減衰させる伝達特性G(z)を有する振動処理手段であるフィルタ処理部12を備えている。ここで、フィルタ処理部12の伝達特性G(z)は、下記(数2)式に示すように、時定数200[ms]のローパスフィルタである。
次に、第1のトルク制限部11の内部構造について説明する。第1のトルク制限部11は、モータ回転数n[rpm]からトルク制限値Tlim[Nm]を演算するトルク制限値演算部112を備える。更に、当該トルク制限値Tlim[Nm]を用いて、基本トルク指令値T*[Nm]を制限後トルク指令値T’[Nm]に制限するリミッタ部111を備える。ここで、モータ回転数n[rpm]とトルク制限値Tlim[Nm]の関係の一例を図3に示す。図3は、図1に示すトルク制限値演算部112におけるトルク制限値Tlim[Nm]の一例を示す図である。図3に示すように、トルク制限値演算部112は、モータ回転数n[rpm]毎のトルク制限値Tlim[Nm]をグラフ化し、記憶している。一方、リミッタ部111は、トルク制限値演算部112で演算されたトルク制限値Tlim[Nm]を用いて、基本トルク指令値T*[Nm]を制限後トルク指令値T’[Nm]に制限する。更に、制限後トルク指令値T’[Nm]をフィルタ処理部12へ出力する。
ここで、モータ回転数n[rpm]に振動が発生した場合について説明する。モータ回転数n[rpm]に振動が発生した場合、モータ回転数n[rpm]の振動に応じて、トルク制限値演算部112で演算されたトルク制限値Tlim[Nm]も変動する場合がある。上記のように、トルク制限値Tlim[Nm]により、基本トルク指令値T*[Nm]を制限後トルク指令値T’[Nm]に制限している。そのため、基本トルク指令値T*[Nm]が一定でも、トルク制限値Tlim[Nm]が変動した場合、制限後トルク指令値T’[Nm]も変動する。よって、モータ回転数n[rpm]に振動が発生した場合、基本トルク指令値T*[Nm]が一定であっても、制限後トルク指令値T’[Nm]が変動する場合がある(後述する図5の制限後トルク指令値T’[Nm]参照)。
従来の電気機器の制御装置および制振制御装置では、制限後トルク指令値T’[Nm]、すなわち、最終トルク指令値T[Nm]が変動することで、更に、モータ回転数n[rpm]の振動を誘起させてしまう場合があった。このため、当該振動を効果的に低減できない場合があった。しかし、本発明の第1の実施形態に係る制御装置10では、モータ回転数n[rpm]の振動を低減するため、フィルタ処理部12を備えている。これから、後述するように、モータ回転数n[rpm]の振動を効果的に低減している。なお、図3に示したように、トルク制限値演算部112が記憶するグラフには、正トルクリミットと負トルクリミットがある。以下、第1の実施形態では、当該正トルクリミットにより、基本トルク指令値T*[Nm]を制限後トルク指令値T’[Nm]に制限する場合について説明する。
次に、フィルタ処理部12の内部構造について、フィルタ処理部12は、フラグ判定部121と、判定手段であるリミッタ作動判定部122と、演算手段である演算部123と、記憶部124と、トルク判定部125と、出力手段である制御部126とを備える。リミッタ作動判定部122は、トルク制限値演算部112で演算されたトルク制限値Tlim[Nm]を用いて、リミッタ部111が基本トルク指令値T*[Nm]を制限後トルク指令値T’[Nm]に制限したか否か判定する。すなわち、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]を比較し、異なるか否か判定する。また、リミッタ作動判定部122は、制限後トルク指令値T’[Nm]の傾きが正か否か判定する。
演算部123は、制限後トルク指令値T’[Nm]およびフィルタ処理部12の伝達特性G(z)(以下、フィルタG(z)とする。)から第3のトルク指令であるフィルタ後トルク指令値T”[Nm](図4参照)を演算する。更に、演算部123は、フィルタ後トルク指令値T”[Nm]を最終トルク指令値T[Nm]へ代入する。また、演算部123は、制限後トルク指令値T’[Nm]を最終トルク指令値T[Nm]へ代入する。記憶部124は、フィルタG(z)およびフィルタ動作フラグを記憶する。フラグ判定部121は、フィルタ動作フラグが1か否か判定する。トルク判定部125は、演算部123によるフィルタ後トルク指令値T”[Nm]の演算の停止条件を判定する。すなわち、制限後トルク指令値T’[Nm]が最終トルク指令値T[Nm]以下か否か判定する。
制御部126は、フラグ判定部121、リミッタ作動判定部122、演算部123、記憶部124およびトルク判定部125の間のデータの入出力制御を実行する。更に、制御部126は、リミッタ作動判定部122の判定結果に基づいて、制限後トルク指令値T’[Nm]またはフィルタ後トルク指令値T”[Nm]を、最終トルク指令値T[Nm]として、機械系振動要素13へ出力する。すなわち、リミッタ作動判定部122が、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なると判定し、かつ、制限後トルク指令値T’[Nm]の傾きが正であると判定した場合、フィルタ動作フラグを1にする。更に、制御部126は、フィルタ動作フラグが1の場合のみ、演算部123にフィルタ後トルク指令値T”[Nm]を演算させ、フィルタ後トルク指令値T”[Nm]を出力する。また、制御部126は、制限後トルク指令値T’[Nm]が最終トルク指令値T[Nm]以下であるとトルク判定部125が判定した場合、フィルタ動作フラグを0に戻す。
(フィルタ処理部12で実行される制御方法)
次に、第1の実施形態に係る制御装置10のフィルタ処理部12で実行される制御方法について、図4を参照して説明する。図4は、図2に示すフィルタ処理部12で実行される制御方法を示すフローチャートである。本制御方法は、図4に示すフローチャートのプログラムをフィルタ処理部12に組み込み実現している。図4に示すように、まず、制御部126は、フィルタ動作フラグが1か否かフラグ判定部121に判定させる(ステップS101)。フィルタ動作フラグが1でないとフラグ判定部121が判定した場合(ステップS101:No)、制御部126は、リミッタ作動か否かリミッタ作動判定部122に判定させる(ステップS102)。すなわち、正トルクリミットより基本トルク指令値T*[Nm]が大きいため、モータ回転数n[rpm]に対応するトルク制限値Tlim[Nm]を用いて、基本トルク指令値T*[Nm]が制限されたか否か判定させる。具体的には、リミッタ作動判定部122は、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]を比較し、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なるか否か判定する。
次に、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異ならないとリミッタ作動判定部122が判定した場合(ステップS102:No)、ステップS106の制御処理へ移行する。ステップS106の制御処理において、制御部126は、フィルタ動作フラグが1か否かフラグ判定部121に判定させる。この場合、フィルタ動作フラグは1になっていないので、フィルタ動作フラグが1でないとフラグ判定部121は判定する(ステップS106:No)。フィルタ動作フラグが1でないとフラグ判定部121が判定した場合(ステップS106:No)、制御部126は、演算部123に制限後トルク指令値T’[Nm]を最終トルク指令値T[Nm]へ代入させる(ステップS108)。制御部126は、上記最終トルク指令値T[Nm]を出力する。これから、リミッタ作動するまで、すなわち、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なると判定するまで、最終トルク指令値T[Nm]として、制限後トルク指令値T’[Nm]を出力し続ける。その後、ステップS101に戻り、以下の制御処理を順次実行する。
その後、リミッタ作動したとリミッタ作動判定部122が判定した場合(ステップS102:Yes)、制御部126は、制限後トルク指令値T’[Nm]の傾きが正か否かリミッタ作動判定部122に判定させる(ステップS103)。制限後トルク指令値T’[Nm]の傾きが正でないとリミッタ作動判定部122が判定した場合(ステップS103:No)、ステップS106の制御処理へ移行する。この場合も、フィルタ動作フラグは1になっていないので、フィルタ動作フラグが1でないとフラグ判定部121は判定し(ステップS106:No)、ステップS108の制御処理へ移行する。ステップS108の制御処理において、上記と同様に、制御部126は、最終トルク指令値T[Nm]として、制限後トルク指令値T’[Nm]を出力する。これから、リミッタ作動しても、制限後トルク指令値T’[Nm]の傾きが正になるまで、最終トルク指令値T[Nm]として、制限後トルク指令値T’[Nm]を出力し続ける。その後、ステップS101に戻り、以下の制御処理を順次実行する。
その後、制限後トルク指令値T’[Nm]の傾きが正であるとリミッタ作動判定部122が判定した場合(ステップS103:Yes)、ステップS104の制御処理へ移行する。ステップS104の制御処理において、制御部126は、演算部123にフィルタG(z)を制限後トルク指令値T’[Nm]で初期化させる。ここで、初期化とは、フィルタG(z)の入力が制限後トルク指令値T’[Nm]で無限時間経過した状態にすることである。次に、制御部126は、記憶部124に記憶されたフィルタ動作フラグを1にする(ステップS105)。次に、制御部126は、フィルタ動作フラグが1か否かフラグ判定部121に判定させる(ステップS106)。上記のように、フィルタ動作フラグは1になっているので、フィルタ動作フラグが1であるとフラグ判定部121は判定し(ステップS106:Yes)、ステップS107の制御処理へ移行する。
ステップS107の制御処理において、制御部126は、制限後トルク指令値T’[Nm]およびフィルタG(z)からフィルタ後トルク指令値T”[Nm]を演算部123に演算させる。更に、制御部126は、演算部123にフィルタ後トルク指令値T”[Nm]を最終トルク指令値T[Nm]へ代入させる。制御部126は、上記最終トルク指令値T[Nm]を出力する。これから、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なると判定し、かつ、制限後トルク指令値T’[Nm]の傾きが正であると判定した場合、フィルタ動作フラグを1にする。そして、フィルタ動作フラグが1の場合のみ、フィルタ後トルク指令値T”[Nm]を出力する。その後、ステップS101に戻り、以下の制御処理を順次実行する。
その後、フィルタ動作フラグが1であるとフラグ判定部121が判定した場合(ステップS101:Yes)、ステップS109の制御処理へ移行する。ステップS109の制御処理において、制御部126は、制限後トルク指令値T’[Nm]が最終トルク指令値T[Nm]、すなわち、フィルタ後トルク指令値T”[Nm]以下か否かトルク判定部125に判定させる。制限後トルク指令値T’[Nm]が最終トルク指令値T[Nm]以下でないとトルク判定部125が判定した場合(ステップS109:No)、ステップS106の制御処理へ移行する。この場合、フィルタ動作フラグは1になっているので、フィルタ動作フラグが1であるとフラグ判定部121は判定し(ステップS106:Yes)、ステップS107の制御処理へ移行する。ステップS107の制御処理において、上記と同様に、制御部126は、最終トルク指令値T[Nm]として、フィルタ後トルク指令値T”[Nm]を出力する。これから、フィルタ動作フラグが1である限り、フィルタ後トルク指令値T”[Nm]を出力し続ける。その後、ステップS101に戻り、以下の制御処理を順次実行する。
その後、制限後トルク指令値T’[Nm]が最終トルク指令値T[Nm]以下であるとトルク判定部125が判定した場合(ステップS109:Yes)、制御部126は、フィルタ動作フラグを0に戻す(ステップS110)。次に、制御部126は、フィルタ動作フラグが1か否かフラグ判定部121に判定させる(ステップS106)。上記のように、フィルタ動作フラグは1になっていないので、フィルタ動作フラグが1でないとフラグ判定部121は判定し(ステップS106:No)、ステップS108の制御処理へ移行する。
ステップS108の制御処理において、制御部126は、フィルタG(z)によるフィルタ後トルク指令値T”[Nm]の演算を停止させる。更に、演算部123に制限後トルク指令値T’[Nm]を最終トルク指令値T[Nm]へ代入させる。制御部126は、上記最終トルク指令値T[Nm]を出力する。これにより、制限後トルク指令値T’[Nm]が最終トルク指令値T[Nm]以下になった場合には、フィルタ後トルク指令値T”[Nm]を出力する必要が無いので、フィルタ動作フラグを0に戻す。更に、フィルタ後トルク指令値T”[Nm]の演算を停止する。そして、フィルタ動作フラグが再度1になるまで、最終トルク指令値T[Nm]として、制限後トルク指令値T’[Nm]を出力し続ける。以降、ステップS101〜S110の制御処理を順次、繰り返し実行する。
図5は、図2に示すフィルタ処理部12における制限後トルク指令値T’[Nm]および最終トルク指令値T[Nm]の波形を示す図である。図5では、基本トルク指令値T*[Nm]を100[Nm]一定としている。しかし、図5に示すように、モータ回転数n[rpm]に振動が発生しているので、トルク制限値Tlim[Nm]が変動し、よって、制限後トルク指令値T’[Nm]も変動する。しかし、第1の実施形態に係るフィルタ処理部12は、制限後トルク指令値T’[Nm]およびローパスフィルタであるフィルタG(z)からフィルタ後トルク指令値T”[Nm]を演算し、最終トルク指令値T[Nm]として出力する。図5に示したように、最終トルク指令値T[Nm]であるフィルタ後トルク指令値T”[Nm]は、フィルタG(z)によって、制限後トルク指令値T’[Nm]より遅れて変動する。
これから、モータ回転数n[rpm]の振動に基づく制限後トルク指令値T’[Nm]の変動量を大幅に小さくしたフィルタ後トルク指令値T”[Nm]を出力することができる。よって、最終トルク指令値T[Nm]が変動することで誘起されるモータ回転数n[rpm]の振動を効果的に低減させることができる。また、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なると判定し、かつ、制限後トルク指令値T’[Nm]の傾きが正であると判定した場合、フィルタ後トルク指令値T”[Nm]を出力している。これから、上記の条件を満たした場合、すなわち、必要な場合、最終トルク指令値T[Nm]として、制限後トルク指令値T’[Nm]より遅れて変動するフィルタ後トルク指令値T”[Nm]を出力できる。一方、上記の条件を満たさない場合、すなわち、フィルタ後トルク指令値T”[Nm]を出力する必要がない場合、最終トルク指令値T[Nm]として、フィルタ後トルク指令値T”[Nm]を出力しない。代わりに、制限後トルク指令値T’[Nm]を出力できる。
また、制限後トルク指令値T’[Nm]が最終トルク指令値T[Nm]、すなわち、フィルタ後トルク指令値T”[Nm]以下であると判定した場合、フィルタ動作フラグを0にし、制限後トルク指令値T’[Nm]を出力する。これから、上記の条件を満たし、フィルタ後トルク指令値T”[Nm]を出力した後、フィルタ後トルク指令値T”[Nm]を出力する必要がなくなった場合には、フィルタ後トルク指令値T”[Nm]の演算を自動的に停止できる。そして、フィルタ後トルク指令値T”[Nm]の代わりに、制限後トルク指令値T’[Nm]を自動的に出力できる。本制御方法により、制限後トルク指令値T’[Nm]またはフィルタ後トルク指令値T”[Nm]を自動的に切替えて、最終トルク指令値T[Nm]として、機械系振動要素13へ出力することができる。
以上より、第1の実施形態に係る制御装置10では、車両情報に基づく基本トルク指令値T*[Nm]を制限後トルク指令値T’[Nm]に制限する第1のトルク制限部11を備える。制限後トルク指令値T’[Nm]は、モータ回転数n[rpm]に基づいて演算されたトルク制限値Tlim[Nm]で制限される。更に、第1のトルク制限部11から出力された制限後トルク指令値T’[Nm]の振動を減衰させるフィルタG(z)を有するフィルタ処理部12を備える。また、フィルタ処理部12は、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なるか否か判定するリミッタ作動判定部122を備える。更に、制限後トルク指令値T’[Nm]およびフィルタG(z)からフィルタ後トルク指令値T”[Nm]を演算する演算部123を備える。また、リミッタ作動判定部122の判定結果に基づいて、制限後トルク指令値T’[Nm]またはフィルタ後トルク指令値T”[Nm]を、最終トルク指令値T[Nm]として出力する制御部126とを備えている。これから、モータ回転数n[rpm]の振動に基づく制限後トルク指令値T’[Nm]の変動量を大幅に小さくしたフィルタ後トルク指令値T”[Nm]を出力することができる。よって、最終トルク指令値T[Nm]が変動することで誘起されるモータ回転数n[rpm]の振動を低減させることができる。
また、第1の実施形態に係る制御装置10では、リミッタ作動判定部122は、制限後トルク指令値T’[Nm]の傾きが正か否か判定する。制御部126は、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なると判定し、かつ、制限後トルク指令値T’[Nm]の傾きが正であると判定した場合、フィルタ後トルク指令値T”[Nm]を出力する。これから、必要な場合、最終トルク指令値T[Nm]として、制限後トルク指令値T’[Nm]より遅れて変動するフィルタ後トルク指令値T”[Nm]を出力できる。
(第2の実施形態)
次に、第2の実施形態に係る制御装置20について、第1の実施形態に係る制御装置10と異なる点を中心に図6乃至図7を参照して説明する。また、第2の実施形態に係る制御装置20について、第1の実施形態に係る制御装置10と同様の構造には同じ番号を付し、説明を省略する。図6は、本発明の第2の実施形態に係る制御装置20の制御モデルを示す図である。図6に示すように、第2の実施形態に係る制御装置20は、第1の実施形態に係る制御装置10に、第2のトルク制御手段である第2のトルク制限部22を追加した構成となっている。また、フィルタ処理部12の代わりに、振動処理手段であるフィルタ処理部21を備えている。更に、フィルタ処理部21は、フィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力している。
ここで、第2のトルク制限部22は、モータ回転数n[rpm]からトルク制限値Tlim[Nm]を演算するトルク制限値演算部222を備える。更に、当該トルク制限値Tlim[Nm]を用いて、フィルタ後トルク指令値T”[Nm]を制限後フィルタ後トルク指令値T1[Nm]に制限するリミッタ部221を備えている。リミッタ部221は、制限後フィルタ後トルク指令値T1[Nm]を、最終トルク指令値T[Nm]として機械系振動要素13へ出力するとともに、フィルタ処理部21へも出力する。なお、トルク制限値演算部222は、第1のトルク制限部11のトルク制限値演算部111と全く同じである。そのため、トルク制限値演算部222が記憶するグラフにも、正トルクリミットおよび負トルクリミットがある。
次に、フィルタ処理部21の内部構造について、フィルタ処理部21は、フラグ判定部121と、判定手段であるリミッタ作動判定部211と、演算手段である演算部212と、記憶部124と、トルク判定部214と、出力手段である制御部213とを備える。以下、第1の実施形態と異なるリミッタ作動判定部211、演算部212、トルク判定部214および制御部213のみ説明する。リミッタ作動判定部211は、トルク制限値演算部112で演算されたトルク制限値Tlim[Nm]を用いて、リミッタ部111が基本トルク指令値T*[Nm]を制限後トルク指令値T’[Nm]に制限したか否か判定する。すなわち、第1の実施形態のリミッタ作動判定部122と同様に、第1のトルク指令である基本トルク指令値T*[Nm]と第2のトルク指令である制限後トルク指令値T’[Nm]を比較し、異なるか否か判定する。しかし、第1の実施形態のリミッタ作動判定部122と異なり、リミッタ作動判定部211は、制限後トルク指令値T’[Nm]の傾きが正か否か判定しない。
演算部212は、第1の実施形態の演算部123と同様に、制限後トルク指令値T’[Nm]およびフィルタG(z)から第3のトルク指令であるフィルタ後トルク指令値T”[Nm]を演算する。しかし、第1の実施形態と異なり、最終トルク指令値T[Nm]として、フィルタ後トルク指令値T”[Nm]を出力しないので、演算部212は、フィルタ後トルク指令値T”[Nm]を最終トルク指令値T[Nm]へ代入しない。また、演算部212は、第1の実施形態の演算部123と同様に、制限後トルク指令値T’[Nm]を最終トルク指令値T[Nm]へ代入する。トルク判定部214は、第1の実施形態のトルク判定部125と同様に、演算部212によるフィルタ後トルク指令値T”[Nm]の演算の停止条件を判定する。しかし、第2の実施形態では、フィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力する。そこで、トルク判定部214は、制限後トルク指令値T’[Nm]が制限後フィルタ後トルク指令値T1[Nm]以下か否か判定する。
制御部213は、第1の実施形態の制御部126と同様に、フラグ判定部121、リミッタ作動判定部211、演算部212、記憶部124およびトルク判定部214の間のデータの入出力制御を実行する。更に、制御部213は、リミッタ作動判定部211の判定結果に基づいて、最終トルク指令値T[Nm]として、制限後トルク指令値T’[Nm]を機械系振動要素13へ出力する。または、リミッタ作動判定部211の判定結果に基づいて、フィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力する。すなわち、第1の実施形態と異なり、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なるとリミッタ作動判定部211が判定した場合、フィルタ動作フラグを1にする。更に、制御部213は、フィルタ動作フラグが1の場合のみ、演算部212にフィルタ後トルク指令値T”[Nm]を演算させる。そして、制御部213は、フィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力する。また、制御部213は、制限後トルク指令値T’[Nm]が制限後フィルタ後トルク指令値T1[Nm]以下であるとトルク判定部214が判定した場合、フィルタ動作フラグを0に戻す。
(フィルタ処理部21で実行される制御方法)
次に、第2の実施形態に係る制御装置20のフィルタ処理部21で実行される制御方法について、図7を参照して説明する。図7は、図6に示すフィルタ処理部21で実行される制御方法を示すフローチャートである。本制御方法は、図7に示すフローチャートのプログラムをフィルタ処理部21に組み込み実現している。図7に示すように、第2の実施形態に係るフローチャートは、第1の実施形態に係るフローチャートとほとんど同じである。第2の実施形態に係るフローチャートが、第1の実施形態と異なる点は、ステップS103の制御処理がない点と、ステップS206、S207およびS209の制御処理が異なる点だけである。そのため、ステップS201およびS202の制御処理は、ステップS101およびS102の制御処理と同じである。更に、ステップS208の制御処理はステップS108の制御処理と、ステップS210の制御処理はステップS110の制御処理と、同じである。そこで、第1の実施形態と異なる点を中心に説明する。
上記のように、第2の実施形態に係るフローチャートでは、第1の実施形態と異なり、ステップS103の制御処理がない。そのため、リミッタ作動したとリミッタ作動判定部211が判定した場合(ステップS202:Yes)、制御部213は、演算部212にフィルタG(z)を制限後トルク指令値T’[Nm]で初期化させる(ステップS203)。次に、制御部213は、第1の実施形態と同様に、記憶部124に記憶されたフィルタ動作フラグを1にする(ステップS204)。次に、制御部213は、第1の実施形態と同様に、フィルタ動作フラグが1か否かフラグ判定部121に判定させる(ステップS205)。上記のように、フィルタ動作フラグは1になっているので、フィルタ動作フラグが1であるとフラグ判定部121は判定し(ステップS205:Yes)、ステップS206の制御処理へ移行する。
ステップS206の制御処理において、制御部213は、制限後トルク指令値T’[Nm]およびフィルタG(z)からフィルタ後トルク指令値T”[Nm]を演算部212に演算させる。しかし、第1の実施形態と異なり、制御部213は、演算部212にフィルタ後トルク指令値T”[Nm]を最終トルク指令値T[Nm]へ代入させない。次に、制御部213は、フィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力する(ステップS207)。これから、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なると判定した場合、フィルタ動作フラグを1にする。そして、フィルタ動作フラグが1の場合のみ、フィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力する。その後、ステップS201に戻り、以下の制御処理を順次実行する。
その後、フィルタ動作フラグが1であるとフラグ判定部121が判定した場合(ステップS201:Yes)、ステップS209の制御処理へ移行する。ステップS209の制御処理において、制御部213は、制限後トルク指令値T’[Nm]が制限後フィルタ後トルク指令値T1[Nm]以下か否かトルク判定部214に判定させる。制限後トルク指令値T’[Nm]が制限後フィルタ後トルク指令値T1[Nm]以下でないとトルク判定部214が判定した場合(ステップS209:No)、ステップS206の制御処理へ移行する。一方、制限後トルク指令値T’[Nm]が制限後フィルタ後トルク指令値T1[Nm]以下であるとトルク判定部214が判定した場合(ステップS209:Yes)、ステップS210の制御処理へ移行する。ステップS210の制御処理において、ステップS110と同様の制御処理を実行する。以降、ステップS201〜S210の制御処理を順次、繰り返し実行する。
次に、第2の実施形態の制御装置20から出力される最終トルク指令値T[Nm]について説明する。第2の実施形態では、第1の実施形態と同様に、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異ならない場合、最終トルク指令値T[Nm]として、制限後トルク指令値T’[Nm]を出力する。一方、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なった場合、制限後トルク指令値T’[Nm]およびローパスフィルタであるフィルタG(z)からフィルタ後トルク指令値T”[Nm]を演算する。このため、フィルタ後トルク指令値T”[Nm]は、制限後トルク指令値T’[Nm]より遅れて変動する。また、制限後トルク指令値T’[Nm]の傾きが負の場合でも、フィルタ後トルク指令値T”[Nm]を演算する。そうすると、モータ回転数n[rpm]におけるフィルタ後トルク指令値T”[Nm]が、正トルクリミットより大きい場合がある。
そこで、第2の実施形態では、フィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力している。第2のトルク制限部22は、基本トルク指令値T*[Nm]を制限後トルク指令値T’[Nm]に制限したのと同様に、フィルタ後トルク指令値T”[Nm]を制限後フィルタ後トルク指令値T1[Nm]に制限する。具体的には、制限後トルク指令値T’[Nm]より遅れて変動するフィルタ後トルク指令値T”[Nm]と制限後トルク指令値T’[Nm]のうち低いほうのトルク指令値を、制限後フィルタ後トルク指令値T1[Nm]とする。そして、第2のトルク制限部22は、制限後フィルタ後トルク指令値T1[Nm]を、最終トルク指令値T[Nm]として機械系振動要素13へ出力する。更に、第2のトルク制限部22は、制限後フィルタ後トルク指令値T1[Nm]をフィルタ処理部21にも出力する。
このようにしても、第1の実施形態と同様に、モータ回転数n[rpm]の振動に基づく制限後トルク指令値T’[Nm]の変動量を小さくした最終トルク指令値T[Nm]を機械系振動要素13へ出力することができる。よって、最終トルク指令値T[Nm]が変動することで誘起されるモータ回転数n[rpm]の振動を効果的に低減させることができる。また、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なると判定した場合、フィルタ後トルク指令値T”[Nm]を出力している。これから、上記の条件を満たした場合、すなわち、必要な場合、制限後トルク指令値T’[Nm]より遅れて変動するフィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力できる。よって、必要な場合、制限後フィルタ後トルク指令値T1[Nm]を、最終トルク指令値T[Nm]として出力できる。一方、上記の条件を満たさない場合、すなわち、フィルタ後トルク指令値T”[Nm]を出力する必要がない場合、フィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力しない。代わりに、最終トルク指令値T[Nm]として、制限後トルク指令値T’[Nm]を出力できる。
また、制限後トルク指令値T’[Nm]が制限後フィルタ後トルク指令値T1[Nm]以下であると判定した場合、フィルタ動作フラグを0にし、制限後トルク指令値T’[Nm]を出力する。これから、上記の条件を満たし、フィルタ後トルク指令値T”[Nm]を出力した後、フィルタ後トルク指令値T”[Nm]を出力する必要がなくなった場合には、フィルタ後トルク指令値T”[Nm]の演算を自動的に停止できる。そして、フィルタ後トルク指令値T”[Nm]の代わりに、制限後トルク指令値T’[Nm]を自動的に出力できる。本制御方法により、制限後トルク指令値T’[Nm]またはフィルタ後トルク指令値T”[Nm]を自動的に切替えて、機械系振動要素13または第2のトルク制限部22へ出力することができる。
以上より、第2の実施形態に係る制御装置20は、フィルタ後トルク指令値T”[Nm]を制限する第2のトルク制限部22を備える。また、制御部213は、基本トルク指令値T*[Nm]と制限後トルク指令値T’[Nm]が異なると判定した場合、第2のトルク制限部22にフィルタ後トルク指令値T”[Nm]を出力している。これから、第1の実施形態と同様に、モータ回転数n[rpm]の振動に基づく制限後トルク指令値T’[Nm]の変動量を小さくした最終トルク指令値T[Nm]を機械系振動要素13へ出力することができる。よって、最終トルク指令値T[Nm]が変動することで誘起されるモータ回転数n[rpm]の振動を低減させることができる。また、必要な場合、制限後トルク指令値T’[Nm]より遅れて変動するフィルタ後トルク指令値T”[Nm]を第2のトルク制限部22へ出力できる。よって、必要な場合、制限後トルク指令値T’[Nm]より遅れて変動するフィルタ後トルク指令値T”[Nm]と制限後トルク指令値T’[Nm]のうち低いほうのトルク指令値を、最終トルク指令値T[Nm]として出力できる。
(第3の実施形態)
次に、第3の実施形態に係る制御装置30について、第1の実施形態に係る制御装置10と異なる点を中心に図8乃至図9を参照して説明する。また、第3の実施形態に係る制御装置30について、第1の実施形態に係る制御装置10と同様の構造には同じ番号を付し、説明を省略する。図8は、本発明の第3の実施形態に係る制御装置30の制御モデルを示す図である。第3の実施形態では、トルク演算手段であるフィルタ演算部32と、第3のトルク制御手段である第1のトルク制限部33を元々備えている制御装置に、本発明を適用した場合を示している。図8に示すように、第3の実施形態に係る制御装置30は、上記の制御装置に、振動処理手段であるフィルタ処理部31を追加した構成となっている。具体的には、基本トルク指令値T*[Nm]とフィルタ演算部32の間にフィルタ処理部31を追加する。更に、フィルタ処理部31は、第1のトルク制限部33またはフィルタ演算部32へ基本トルク指令値T*[Nm]を出力する。
ここで、フィルタ演算部32は、車両情報に基づく第1のトルク指令である基本トルク指令値T*[Nm]の振動を減衰させる伝達特性G(z)から第4のトルク指令である制限前トルク指令値T2[Nm]を演算する。第3の実施形態では、基本トルク指令値T*[Nm]は一定でなく、振動が発生している状態を前提としている。上記の振動を減衰させるフィルタ演算部32の伝達特性G(z)(以下、フィルタG(z)とする。)は、第1の実施形態に係るフィルタ処理部12の伝達特性G(z)と同じである。そして、フィルタ演算部32は、フィルタ処理部31および第1のトルク制限部33へ制限前トルク指令値T2[Nm]を出力する。
第1のトルク制限部33は、モータ回転数n[rpm]からトルク制限値Tlim[Nm]を演算するトルク制限値演算部332を備える。更に、当該トルク制限値Tlim[Nm]を用いて、基本トルク指令値T*[Nm]または制限前トルク指令値T2[Nm]を第5のトルク指令である最終トルク指令値T[Nm]に制限するリミッタ部331を備える。リミッタ部331は、機械系振動要素13およびフィルタ処理部31へ最終トルク指令値T[Nm]を出力する。なお、トルク制限値演算部332は、第1の実施形態に係る第1のトルク制限部11のトルク制限値演算部111と全く同じである。そのため、トルク制限値演算部332が記憶するグラフにも、正トルクリミットおよび負トルクリミットがある。
次に、フィルタ処理部31の内部構造について、フィルタ処理部31は、フラグ判定部121と、判定手段であるリミッタ作動判定部312と、フラグ記憶部311と、制御手段である制御部313とを備える。以下、第1の実施形態と異なるリミッタ作動判定部312、フラグ記憶部311および制御部313について説明する。リミッタ作動判定部312は、トルク制限値Tlim[Nm]を用いて、基本トルク指令値T*[Nm]または制限前トルク指令値T2[Nm]を、リミッタ部331が最終トルク指令値T[Nm]に制限したか否か判定する。すなわち、第1の実施形態と異なり、基本トルク指令値T*[Nm]または制限前トルク指令値T2[Nm]と最終トルク指令値T[Nm]を比較し、異なるか否か判定する。フラグ記憶部311は、第1の実施形態と同様に、フィルタ動作フラグを記憶するが、第1の実施形態と異なり、フィルタG(z)は記憶しない。
制御部313は、第1の実施形態の制御部126と同様に、フラグ判定部121、リミッタ作動判定部312、フラグ記憶部311の間のデータの入出力制御を実行する。更に、制御部313は、リミッタ作動判定部312の判定結果に基づいて、第1のトルク制限部33またはフィルタ演算部32へ、基本トルク指令値T*[Nm]を出力する。すなわち、第1の実施形態と異なり、制限前トルク指令値T2[Nm]と最終トルク指令値T[Nm]が異なるとリミッタ作動判定部312が判定した場合、制御部313は、フィルタ動作フラグを0に戻す。更に、制御部313は、フィルタ動作フラグが0の場合のみ、基本トルク指令値T*[Nm]を第1のトルク制限部33へ出力する。そして、基本トルク指令値T*[Nm]を制限させる。
一方、基本トルク指令値T*[Nm]と最終トルク指令値T[Nm]が異ならないとリミッタ作動判定部312が判定した場合、制御部313は、フィルタ動作フラグを1にする。更に、制御部313は、フィルタ動作フラグが1の場合のみ、基本トルク指令値T*[Nm]をフィルタ演算部32へ出力する。制御部313は、基本トルク指令値T*[Nm]およびフィルタG(z)から制限前トルク指令値T2[Nm]をフィルタ演算部32に演算させる。そして、制限前トルク指令値T2[Nm]をフィルタ演算部32から第1のトルク制限部33へ出力させる。
(フィルタ処理部31で実行される制御方法)
次に、第1の実施形態に係る制御装置30のフィルタ処理部31で実行される制御方法について、図9を参照して説明する。図9は、図8に示すフィルタ処理部31で実行される制御方法を示すフローチャートである。本制御方法は、図9に示すフローチャートのプログラムをフィルタ処理部31に組み込み実現している。図9に示すように、まず、制御部313は、フィルタ動作フラグが1か否かフラグ判定部121に判定させる(ステップS301)。フィルタ動作フラグが1であるとフラグ判定部121が判定した場合(ステップS301:Yes)、制御部313は、リミッタ作動か否かリミッタ作動判定部312に判定させる(ステップS302)。具体的には、リミッタ作動判定部312は、制限前トルク指令値T2[Nm]と最終トルク指令値T[Nm]を比較し、制限前トルク指令値T2[Nm]と最終トルク指令値T[Nm]が異なるか否か判定する。
次に、制限前トルク指令値T2[Nm]と最終トルク指令値T[Nm]が異ならないとリミッタ作動判定部312が判定した場合(ステップS302:No)、ステップS304の制御処理へ移行する。ステップS304の制御処理において、制御部313は、フィルタ動作フラグが1か否かフラグ判定部121に判定させる。この場合、フィルタ動作フラグは1になっているので、フィルタ動作フラグが1であるとフラグ判定部121は判定する(ステップS304:Yes)。フィルタ動作フラグが1であるとフラグ判定部121が判定した場合(ステップS304:Yes)、制御部313は、基本トルク指令値T*[Nm]をフィルタ演算部32へ出力する(ステップS305)。これから、リミッタ作動するまで、すなわち、制限前トルク指令値T2[Nm]と最終トルク指令値T[Nm]が異なると判定するまで、基本トルク指令値T*[Nm]をフィルタ演算部32へ出力し続ける。その後、ステップS301に戻り、以下の制御処理を順次実行する。
その後、リミッタ作動したとリミッタ作動判定部312が判定した場合(ステップS302:Yes)、制御部313は、フラグ記憶部311に記憶されたフィルタ動作フラグを0にする(ステップS303)。次に、制御部313は、フィルタ動作フラグが1か否かフラグ判定部121に判定させる(ステップS304)。上記のように、フィルタ動作フラグは1になっていないので、フィルタ動作フラグが1でないとフラグ判定部121は判定し(ステップS304:No)、ステップS306の制御処理へ移行する。ステップS306の制御処理において、制御部313は、基本トルク指令値T*[Nm]を第1のトルク制限部33へ出力する。これから、制限前トルク指令値T2[Nm]と最終トルク指令値T[Nm]が異なると判定した場合、フィルタ動作フラグを0にする。そして、フィルタ動作フラグが0の場合のみ、基本トルク指令値T*[Nm]を第1のトルク制限部33へ出力する。その後、ステップS301に戻り、以下の制御処理を順次実行する。
その後、フィルタ動作フラグが1でないとフラグ判定部121が判定した場合(ステップS301:No)、制御部313は、リミッタ作動か否かリミッタ作動判定部312に判定させる(ステップS307)。具体的には、リミッタ作動判定部312は、基本トルク指令値T*[Nm]と最終トルク指令値T[Nm]を比較し、基本トルク指令値T*[Nm]と最終トルク指令値T[Nm]が異なるか否か判定する。基本トルク指令値T*[Nm]と最終トルク指令値T[Nm]が異なるとリミッタ作動判定部312が判定した場合(ステップS307:Yes)、ステップS304の制御処理へ移行する。この場合、フィルタ動作フラグは1になっていないので、フィルタ動作フラグが1でないとフラグ判定部121は判定し(ステップS304:No)、ステップS306の制御処理へ移行する。ステップS306の制御処理において、上記と同様に、制御部313は、基本トルク指令値T*[Nm]を第1のトルク制限部33へ出力する。これから、フィルタ動作フラグが0である限り、基本トルク指令値T*[Nm]を第1のトルク制限部33へ出力し続ける。その後、ステップS301に戻り、以下の制御処理を順次実行する。
その後、基本トルク指令値T*[Nm]と最終トルク指令値T[Nm]が異ならないとリミッタ作動判定部312が判定した場合(ステップS307:No)、ステップS308の制御処理へ移行する。ステップS308の制御処理において、制御部313は、フィルタ演算部32のフィルタG(z)を最終トルク指令値T[Nm]で初期化させる。ここで、初期化とは、フィルタG(z)の入力が最終トルク指令値T[Nm]で無限時間経過した状態にすることである。次に、制御部313は、フラグ記憶部311に記憶されたフィルタ動作フラグを1にする(ステップS309)。次に、制御部313は、フィルタ動作フラグが1か否かフラグ判定部121に判定させる(ステップS304)。上記のように、フィルタ動作フラグは1になっているので、フィルタ動作フラグが1であるとフラグ判定部121は判定し(ステップS304:Yes)、ステップS305の制御処理へ移行する。
ステップS305の制御処理において、制御部313は、基本トルク指令値T*[Nm]をフィルタ演算部32へ出力する。これにより、基本トルク指令値T*[Nm]と最終トルク指令値T[Nm]が異ならない場合には、フィルタ動作フラグを1にする。そして、フィルタ動作フラグが再度0になるまで、基本トルク指令値T*[Nm]をフィルタ演算部32へ出力し続ける。以降、ステップS301〜S309の制御処理を順次、繰り返し実行する。これから、第3の実施形態では、第1の実施形態と異なり、リミッタ作動していない間、制御部313は基本トルク指令値T*[Nm]をフィルタ演算部32へ出力する。そして、制限前トルク指令値T2[Nm]をフィルタ演算部32から第1のトルク制限部33へ出力させる。一方、リミッタ作動した場合のみ、制御部313は基本トルク指令値T*[Nm]を直接第1のトルク制限部33へ出力する。
すなわち、第3の実施形態に係るフィルタ処理部31では、リミッタ作動しない限り、基本トルク指令値T*[Nm]の振動を減衰させるため、基本トルク指令値T*[Nm]をフィルタ演算部32へ出力する。更に、基本トルク指令値T*[Nm]およびフィルタG(z)から制限前トルク指令値T2[Nm]をフィルタ演算部32に演算させた後、制限前トルク指令値T2[Nm]を第1のトルク制限部33へ出力させる。一方、リミッタ作動している間、基本トルク指令値T*[Nm]の振動を減衰させず、基本トルク指令値T*[Nm]を直接第1のトルク制限部33へ出力し、基本トルク指令値T*[Nm]を制限させている。
このようにすることで、第1の実施形態と同様に、モータ回転数n[rpm]の振動に基づく最終トルク指令値T[Nm]の変動量を小さくして、機械系振動要素13へ出力することができる。よって、最終トルク指令値T[Nm]が変動することで誘起されるモータ回転数n[rpm]の振動を低減させることができる。また、制限前トルク指令値T2[Nm]と最終トルク指令値T[Nm]が異なると判定した場合、基本トルク指令値T*[Nm]を直接第1のトルク制限部33へ出力している。これから、上記の条件を満たした場合、すなわち、必要な場合、振動が減衰されていない基本トルク指令値T*[Nm]を直接第1のトルク制限部33へ出力できる。
一方、基本トルク指令値T*[Nm]と最終トルク指令値T[Nm]が異ならないと判定した場合、すなわち、不必要な場合、振動が減衰されていない基本トルク指令値T*[Nm]を直接第1のトルク制限部33へ出力しない。上記の場合、フィルタ動作フラグを1にし、基本トルク指令値T*[Nm]をフィルタ演算部32へ出力する。よって、フィルタ演算部32から第1のトルク制限部33へ、制限前トルク指令値T2[Nm]を出力させることができる。また、上記の条件を満たし、基本トルク指令値T*[Nm]を直接第1のトルク制限部33へ出力した後、フィルタ演算部32へ出力する必要がある場合には、自動的に出力先を変更することができる。
以上より、第3の実施形態に係る制御装置30では、車両情報に基づく基本トルク指令値T*[Nm]の振動を減衰させる伝達特性G(z)から制限前トルク指令値T2[Nm]を演算するフィルタ演算部32を備える。また、制限前トルク指令値T2[Nm]を最終トルク指令値T[Nm]に制限する第1のトルク制限部33を備える。最終トルク指令値T[Nm]は、モータ回転数n[rpm]に基づいて演算されたトルク制限値Tlim[Nm]で制限される。更に、リミッタ作動判定部312と、制御部313を含むフィルタ処理部31を備える。リミッタ作動判定部312は、第1のトルク制限部33から出力された最終トルク指令値T[Nm]と基本トルク指令値T*[Nm]が異なるか否か判定する。更に、最終トルク指令値T[Nm]と制限前トルク指令値T2[Nm]が異なるか否か判定する。
制御部313は、制限前トルク指令値T2[Nm]と最終トルク指令値T[Nm]が異なると判定した場合、基本トルク指令値T*[Nm]を第1のトルク制限部33へ出力し、基本トルク指令値T*[Nm]を制限させる。更に、制御部313は、基本トルク指令値T*[Nm]と最終トルク指令値T[Nm]が異ならないと判定した場合、制限前トルク指令値T2[Nm]をフィルタ演算部32から第1のトルク制限部33へ出力させる。これから、モータ回転数n[rpm]の振動に基づく最終トルク指令値T[Nm]の変動量を小さくして、機械系振動要素13へ出力することができる。よって、最終トルク指令値T[Nm]が変動することで誘起されるモータ回転数n[rpm]の振動を低減させることができる。また、上記のようにすることで、基本トルク指令値T*[Nm]の出力先を自動的に変更することができる。
なお、以上に述べた実施形態は、本発明の実施の一例であり、本発明の範囲はこれらに限定されるものでなく、特許請求の範囲に記載した範囲内で、他の様々な実施形態に適用可能である。例えば、第1の実施形態に係るフィルタ処理部12では、伝達特性G(z)をローパスフィルタとしているが、特にこれに限定されるものでなく、他の特性でも良い、例えば、伝達特性G(z)をノッチフィルタとしても良い。この場合、最終トルク指令値T[Nm]は、図10に示すような波形になる。また、例えば、伝達特性G(z)をランプ関数(レートリミッタ)としても良い。この場合、最終トルク指令値T[Nm]は、図11に示すような波形になる。
また、第2の実施形態に係るフィルタ処理部21では伝達特性G(z)をローパスフィルタとしているが、特にこれに限定されるものでなく、他の特性でも良い、例えば、伝達特性G(z)をノッチフィルタとしても良いし、ランプ関数(レートリミッタ)としても良い。同様に、第3の実施形態に係るフィルタ演算部32の伝達特性G(z)をローパスフィルタしているが、特にこれに限定されるものでなく、他の特性でも良い、例えば、伝達特性G(z)をノッチフィルタとしても良いし、ランプ関数(レートリミッタ)としても良い。
また、第1乃至第3の実施形態では、正トルクリミットで制限された場合について説明しているが、特にこれに限定されるものでなく、負トルクリミットで制限される場合にも適用可能である。この場合、各フィルタ処理部12、21、31で実行される制御処理の判定条件を逆にすれば良い。
また、第3の実施形態では、フィルタ処理部31からフィルタ演算部32へ基本トルク指令値T*[Nm]を出力しているが、特にこれに限定されるものでなく、フィルタ演算部32へ基本トルク指令値T*[Nm]を出力しても良い。この場合、フィルタ演算部32による制限前トルク指令値T2[Nm]の演算を開始させるトリガ信号をフィルタ処理部31からフィルタ演算部32へ出力すれば良い。