"発電機が用いられる作業機械の運転状態を検出する検出手段と、前記運転状態をもとに、発電機の発電がオフの場合に設定されるエンジン目標回転数とオンの場合に設定されるエンジン目標回転数とを同一とするエンジン目標回転数設定手段と、発電機の発電がオフの場合に最大限出力することができる発電オフ時のエンジン目標出力を演算し、発電機の発電がオンとなる場合に、前記エンジン目標出力に発電機による発電量相当の出力を加えたエンジン目標出力を演算するエンジン目標出力演算手段と、を備えたことを特徴とする作業機械のエンジン制御装置。前記エンジン目標回転数設定手段は、発電オフから発電オンへの移行時には、所定の発電トルクに達するまでエンジン回転数が不変となるように制御することを特徴とする請求項1に記載の作業機械のエンジン制御装置。前記所定の発電トルクは、予め設定された最小発電トルクであることを特徴とする請求項2に記載の作業機械のエンジン制御装置。前記エンジンの回転数を用いて発電機の所定の発電出力を求める発電出力演算手段と、油圧ポンプの吸収馬力を設定するポンプ吸収馬力演算手段と、前記エンジンの駆動に連動して駆動する補機の馬力を求める補機馬力演算手段と、をさらに備え、前記エンジン目標回転数設定手段は、発電オフの場合に、設定されたポンプ吸収馬力と求められた補機馬力と前記発電機の所定の発電出力とを合算した出力に相当するエンジン目標出力、および少ない燃料消費率でエンジンが駆動するエンジン出力を示す目標マッチングルートから定められるエンジン目標回転数を設定し、発電オンの場合に設定されるエンジン回転数は前記エンジン目標回転数と同一となるように制御することを特徴とする請求項1または2に記載の作業機械のエンジン制御装置。前記所定の発電出力は、最小発電出力であることを特徴とする請求項4に記載のエンジン制御装置。発電機が用いられる作業機械の運転状態を検出する検出ステップと、前記運転状態をもとに、発電機の発電がオフの場合に設定されるエンジン目標回転数とオンの場合に設定されるエンジン目標回転数とを同一に設定するとともに、発電機の発電がオフの場合に、該発電機の発電機がオフの場合に最大限出力することができる発電オフ時のエンジン目標出力を演算して設定し、発電機の発電がオンとなる場合に、前記エンジン目標出力に発電機による発電量相当の出力を加えたエンジン目標出力を演算して設定する設定ステップと、を含むことを特徴とする作業機械のエンジン制御方法。ところで、ハイブリッド油圧ショベルなどの建設機械で、上部旋回体を電動旋回モータで駆動するものがある。ハイブリッド油圧ショベルでは、この電動旋回モータへキャパシタなどの蓄電装置から電力を供給放電して上部旋回体を旋回加速させ、上部旋回体を旋回減速させる際に電動旋回モータの回生によりキャパシタへ電力を供給充電させて、従来の油圧ショベルに比べて低い消費燃料率を達成している。さらに、ハイブリッド油圧ショベルでは、作業機の負荷などに応答して、エンジンの駆動によって駆動する発電機を発電作用発電オンさせて、発電機により発電された電力をキャパシタへ供給充電、あるいは、発電機により発電された電力を電動旋回モータの旋回加速のために供給したりする。また、発電機は、ハイブリッド油圧ショベルの負荷に応じてエンジンの出力を補うアシスト作用を行い、低い燃料消費率を達成している。この発電機は、通常の電動モータと同様に、小さなトルクで発電を行うと効率が悪い。このため、発電機は、発電を行う場合、予め設定した最小発電トルク以上で発電を行うようにしている。この結果、発電機が発電オフの状態から発電オンの状態に切り替わる場合、上述した発電機出力は不連続に変化する。この発電機出力の不連続な変化を含めたエンジン出力をもとにエンジン回転数制御を行うと、発電機出力は発電オフゼロの出力と最小発電トルク発電オンとの間で発電オン/オフが頻繁に切り換わるとマッチング点でのエンジン回転数マッチング回転数が頻繁に変動してしまう。オペレータは、そのエンジン回転数の変動にともなうエンジン音の変化を違和感として感じるという問題点が考えられる。この発明は、上記に鑑みてなされたものであって、発電機の発電オン/オフによる発電機出力が不連続に変動してもエンジン回転数の変動を抑えることができる作業機械のエンジン制御装置およびそのエンジン制御方法を提供することを目的とする。上述した課題を解決し、目的を達成するために、この発明にかかる作業機械のエンジン制御装置は、発電機が用いられる作業機械の運転状態を検出する検出手段と、前記運転状態をもとに、発電機の発電がオフの場合に設定されるエンジン目標回転数とオンの場合に設定されるエンジン目標回転数とを同一とするエンジン目標回転数設定手段と、発電機の発電がオフの場合に最大限出力することができる発電オフ時のエンジン目標出力を演算し、発電機の発電がオンとなる場合に、前記エンジン目標出力に発電機による発電量相当の出力を加えたエンジン目標出力を演算するエンジン目標出力演算手段と、を備えたことを特徴とする。また、この発明にかかる作業機械のエンジン制御装置は、上記の発明において、前記エンジン目標回転数設定手段は、発電オフから発電オンへの移行時には、所定の発電トルクに達するまでエンジン回転数が不変となるように制御することを特徴とする。また、この発明にかかる作業機械のエンジン制御装置は、上記の発明において、前記所定の発電トルクは、予め設定された最小発電トルクであることを特徴とする。また、この発明にかかる作業機械のエンジン制御装置は、上記の発明において、前記エンジンの回転数を用いて発電機の所定の発電出力を求める発電出力演算手段と、油圧ポンプの吸収馬力を設定するポンプ吸収馬力演算手段と、前記エンジンの駆動に連動して駆動する補機の馬力を求める補機馬力演算手段と、をさらに備え、前記エンジン目標回転数設定手段は、発電オフの場合に、設定されたポンプ吸収馬力と求められた補機馬力と前記発電機の所定の発電出力とを合算した出力に相当するエンジン目標出力、および少ない燃料消費率でエンジンが駆動するエンジン出力を示す目標マッチングルートから定められるエンジン目標回転数を設定し、発電オンの場合に設定されるエンジン回転数は前記エンジン目標回転数と同一となるように制御することを特徴とする。また、この発明にかかる作業機械のエンジン制御方法は、発電機が用いられる作業機械の運転状態を検出する検出ステップと、前記運転状態をもとに、発電機の発電がオフの場合に設定されるエンジン目標回転数とオンの場合に設定されるエンジン目標回転数とを同一に設定するとともに、発電機の発電がオフの場合に、該発電機の発電機がオフの場合に最大限出力することができる発電オフ時のエンジン目標出力を演算して設定し、発電機の発電がオンとなる場合に、前記エンジン目標出力に発電機による発電量相当の出力を加えたエンジン目標出力を演算して設定する設定ステップと、を含むことを特徴とする。この発明によれば、発電機の発電がオフの場合に設定されるエンジン目標回転数とオンの場合に設定されるエンジン目標回転数とを同一とするエンジン目標回転数の設定を行うとともに、発電機の発電がオフの場合に、発電機の発電がオフの場合に最大限出力することができる発電オフ時のエンジン目標出力を演算し、発電機の発電がオンとなる場合に、前記エンジン目標出力に発電機による発電量相当の出力を加えたエンジン目標出力を演算してエンジン目標出力を設定するようにしているので、発電機の発電オン/オフによる発電機出力が不連続に変動してもエンジン回転数の変動を抑えることができる。以下、添付図面を参照してこの発明を実施するための形態について説明する。[全体構成]まず、図1および図2は、作業機械としての一例であるハイブリッド油圧ショベル1の全体構成を示している。このハイブリッド油圧ショベル1は、車両本体2と作業機3とを備えている。車両本体2は、下部走行体4と上部旋回体5とを有する。下部走行体4は、一対の走行装置4aを有する。各走行装置4aは、履帯4bを有する。各走行装置4aは、右走行モータおよび左走行モータ走行モータ21によって履帯4bを駆動することによってハイブリッド油圧ショベル1を走行あるいは旋回させる。上部旋回体5は、下部走行体4上に旋回可能に設けられ、旋回モータ24が駆動することによって旋回する。また、上部旋回体5には、運転室6が設けられる。上部旋回体5は、燃料タンク7と作動油タンク8とエンジン室9とカウンタウェイト10とを有する。燃料タンク7は、エンジン17を駆動するための燃料を貯留する。作動油タンク8は、油圧ポンプ18からブームシリンダ14などの油圧シリンダ、走行モータ21などの油圧機器へ吐出される作動油を貯留する。エンジン室9は、エンジン17や油圧ポンプ18などの機器を収納する。カウンタウェイト10は、エンジン室9の後方に配置される。作業機3は、上部旋回体5の前部中央位置に取り付けられ、ブーム11、アーム12、バケット13、ブームシリンダ14、アームシリンダ15、およびバケットシリンダ16を有する。ブーム11の基端部は、上部旋回体5に回転可能に連結される。また、ブーム11の先端部は、アーム12の基端部に回転可能に連結される。アーム12の先端部は、バケット13に回転可能に連結される。ブームシリンダ14、アームシリンダ15、およびバケットシリンダ16は、油圧ポンプ18から吐出された作動油によって駆動する油圧シリンダである。ブームシリンダ14は、ブーム11を動作させる。アームシリンダ15は、アーム12を動作させる。バケットシリンダ16は、バケット13を動作させる。図2において、ハイブリッド油圧ショベル1は、駆動源としてのエンジン17、油圧ポンプ18、発電機19を有する。エンジン17としてディーゼルエンジンが用いられ、油圧ポンプ18として可変容量型油圧ポンプ例えば斜板式油圧ポンプが用いられる。エンジン17の出力軸には、油圧ポンプ18および発電機19が機械的に結合されており、エンジン17を駆動することで、油圧ポンプ18および発電機19が駆動する。なお、発電機19はエンジン17の出力軸に機械的に直結されていてもよいし、エンジン17の出力軸にかけられたベルトやチェーンなどの伝動手段を介して回転駆動するものであってもよい。油圧駆動系としては、コントロールバルブ20、ブームシリンダ14、アームシリンダ15、バケットシリンダ16、走行モータ21などを有し、油圧ポンプ18が油圧源となってこれらを駆動する。電動駆動系は、キャパシタ22、インバータ23、および旋回モータ24を備える。発電機19によって発電される電力あるいはキャパシタ22から放電される電力が、電力ケーブルを介して旋回モータ24に供給されて上部旋回体5を旋回させる。すなわち、旋回モータ24は、発電機19から供給発電される電気エネルギーまたはキャパシタ22から供給放電される電気エネルギーで力行作用することで旋回駆動し、旋回減速する際に旋回モータ24は回生作用することによって電気エネルギーをキャパシタ22に供給充電する。この発電機19としては、たとえばSRスイッチドリラクタンスモータが用いられる。発電機19は、エンジン17の出力軸に機械的に結合されており、エンジン17の駆動によって発電機19のロータ軸を回転させることになる。キャパシタ22は、たとえば、電気二重層キャパシタが用いられる。キャパシタ22に代えて、ニッケル水素バッテリやリチウムイオンバッテリであってもよい。旋回モータ24には、回転センサ25が設けられ、旋回モータ24の回転速度を検出し、電気信号に変換して、インバータ23内に設けられたハイブリッドコントローラ23aに出力する。旋回モータ24としては、例えば埋め込み磁石同期電動機が用いられる。回転センサ25として、たとえばレゾルバやロータリーエンコーダなどが用いられる。なお、ハイブリッドコントローラ23aは、CPU数値演算プロセッサなどの演算装置やメモリ記憶装置などで構成されている。ハイブリッドコントローラ23aは、発電機19や旋回モータ24、キャパシタ22およびインバータ23に備えられた、サーミスタや熱電対などの温度センサによる検出値の信号を受けて、キャパシタ22などの各機器の過昇温を管理するとともに、キャパシタ22の充放電制御や発電機19による発電エンジンのアシスト制御、旋回モータ24の力行回生制御を行う。油圧駆動系および電動駆動系は、車両本体2に設けられた運転室6に設けられる作業機レバー、走行レバー、旋回レバーなどの操作レバー26の操作に応じて駆動する。操作レバー26の操作量は、レバー操作量検出部27によって電気信号に変換される。レバー操作量検出部27は、圧力センサによって構成される。操作レバーの操作に応じて発生するパイロット油圧を圧力センサが検知し、圧力センサが出力する電圧等をレバー操作量に換算することによってレバー操作量を求める。レバー操作量は、電気信号としてポンプコントローラ33へ出力される。なお、操作レバー26が電気式レバーである場合には、レバー操作量検出部27は、ポテンショメータなどの電気的検出手段によって構成され、レバー操作量に応じて発生する電圧等をレバー操作量に換算してレバー操作量を求める。運転室6内には、燃料調整ダイヤルスロットルダイヤル28およびモード切替部29が設けられる。燃料調整ダイヤルスロットルダイヤル28は、エンジン17への燃料供給量を設定するためのスイッチであり、燃料調整ダイヤルスロットルダイヤル28の設定値は、電気信号に変換されてエンジンコントローラ30に出力される。エンジンコントローラ30は、CPU数値演算プロセッサなどの演算装置やメモリ記憶装置で構成される。エンジンコントローラ30は、燃料調整ダイヤルスロットルダイヤル28の設定値に基づいて、制御指令の信号を生成し、コモンレール制御部32が制御信号を受信し、エンジン17への燃料噴射量を調整する。すなわち、エンジン17は、コモンレール式による電子制御が可能なエンジンであり、燃料噴射量を適切にコントロールすることで狙いとする出力を出すことが可能であり、ある瞬間のエンジン回転数における出力可能なトルクを自由に設定することが可能である。モード切替部29は、ハイブリッド油圧ショベル1の作業モードをパワーモードまたはエコノミーモードに設定する部分であり、たとえば運転室6中に設けられる操作ボタンやスイッチ、またはタッチパネルで構成され、ハイブリッド油圧ショベル1のオペレータがそれらの操作ボタンなどを操作することで作業モードを切り替えることができる。パワーモードとは、大きな作業量を維持しながら燃費を抑えたエンジン制御およびポンプ制御を行う作業モードであり、エコノミーモードとは、さらに燃費を抑えつつ軽負荷作業で作業機3の動作速度を確保するようにエンジン制御およびポンプ制御を行う作業モードである。このモード切替部29による設定作業モードの切り替えでは、電気信号がエンジンコントローラ30、ポンプコントローラ33に出力される。なお、パワーモードでは、エンジン17の回転数および出力トルクが比較的高い領域でエンジン17の出力トルクと油圧ポンプ18の吸収トルクとをマッチングさせる。また、エコノミーモードでは、パワーモードの場合と比較して低いエンジン出力でマッチングさせる。ポンプコントローラ33は、エンジンコントローラ30、モード切替部29、レバー操作量検出部27から送信された信号を受信して、油圧ポンプ18の斜板角を傾倒制御して油圧ポンプ18からの作動油の吐出量を調整するための制御指令の信号を生成する。なお、ポンプコントローラ33には、油圧ポンプ18の斜板角を検出する斜板角センサ18aからの信号が入力される。斜板角センサ18aが斜板角を検出することで、油圧ポンプ18のポンプ容量を演算することができる。コントロールバルブ20内には、油圧ポンプ18のポンプ吐出圧力を検出するためのポンプ圧検出部20aが設けられている。検出されたポンプ吐出圧力は、電気信号に変換されてポンプコントローラ33に入力される。なお、エンジンコントローラ30とポンプコントローラ33とは、相互に情報の授受が行われるようにCANControllerAreaNetworkのような車内LANで接続されている。[エンジン制御の概要]まず、図3に示すトルク線図を参照してエンジン制御の概要について説明する。エンジンコントローラ30は、レバー操作量、作業モード、旋回速度、燃料調整ダイヤルスロットルダイヤル28の設定値などの情報運転状態を示す信号を取得し、エンジン出力指令値を求める。このエンジン出力指令値は、トルク線図上の等馬力曲線エンジン出力指令値曲線ELとなり、エンジンの出力を制限する曲線である。そして、作業機3に負荷がかかっている場合、エンジン出力をドループ線に拘束させず、エンジン出力指令値曲線ELとポンプ吸収トルク線PLとの交点マッチング点MP1でエンジン出力と油圧ポンプ出力とをマッチングさせて作業機3を動作させる。なお、このマッチング点MP1は、目標マッチングルートML上にもたせることが好ましい。この目標マッチング点MP1でのエンジン回転数は、目標マッチング回転数np1であり、たとえば、図3では1000rpm近傍となる。これにより、作業機3は十分な出力を得ることができるとともに、エンジン17は低回転数で駆動するため、燃料消費を低く抑えることができる。一方、作業機3の負荷が抜けた場合であって、作業機3の油圧シリンダ14,15,16への作動油流量が必要な場合、すなわち作業機3の動作速度の確保が必要な場合、エンジンコントローラ30は、レバー操作量、上部旋回体5の旋回回転数、燃料調整ダイヤルスロットルダイヤル28の設定値等の情報に対応した無負荷最大回転数np2たとえば図3では、2050rpm近傍を決定し、目標マッチング回転数np1と無負荷最大回転数np2との間のエンジン回転数範囲内でエンジンドループを制御してエンジン17を駆動させる。このような制御を行うことによって、作業機3の負荷がかかった状態から負荷が抜けた状態に移行した場合、低回転側のマッチング点MP1から高回転側のマッチング点MP2に移行することから、油圧ポンプ18から吐き出される作動油流量を十分に油圧シリンダ14,15,16に供給することができ、作業機3の動作速度を確保することができる。また、エンジン出力指令値曲線ELによってエンジン出力が制限されるため、無駄なエネルギーを消費しない。なお、無負荷最大回転数np2は、エンジンが出力可能な最大回転数に限らない。ここで、作業機3の負荷がさらに抜けた場合、そのままエンジン17を高回転域で駆動させると燃料消費され燃費が悪化することとなる。したがって、負荷が抜けた場合であって、たとえばバケット13のみの動作のように、油圧ポンプ18からの作動油の吐出流量および吐出圧力を多く必要としない場合、すなわちポンプ容量に余裕がある場合、図4に示すように、高回転域のドループ線DLを低回転域にシフトさせる制御を行う。上記のように、ポンプ容量は、斜板角センサ18aによって検出され、この検出値の大小によってドループ線をシフトする。たとえば、ポンプ容量が所定値よりも大きいと検出された場合には作動油流量を必要としているため、ドループ線DLを高回転域にシフトさせてエンジン回転数を上げ、ポンプ容量が所定値よりも小さいと検出された場合には作動油流量を必要としていないため、ドループ線DLを低回転域にシフトさせてエンジン回転数を下げる。このような制御を行うことによって、高回転域でのエンジン駆動による無駄な燃料消費を抑えることができる。[エンジン制御の詳細]図5は、エンジンコントローラ30あるいはポンプコントローラ33による全体制御フローを示している。エンジンコントローラ30あるいはポンプコントローラ33は、最終的にエンジン制御指令としてのエンジン回転数指令値とエンジン出力指令値を演算し、ポンプ制御指令としてポンプ吸収トルク指令値を演算する。無負荷最大回転数演算ブロック110は、図6に示した詳細制御フローによって、エンジン回転数指令値の上限値となる値である無負荷最大回転数D210np2を演算する。油圧ポンプ18のポンプ容量が最大の状態では、油圧ポンプ18の流量油圧ポンプ吐出流量はエンジン回転数とポンプ容量との積であり、油圧ポンプ18の流量油圧ポンプ吐出流量はエンジン回転数に比例するため、無負荷最大回転数D210と油圧ポンプ18の流量ポンプ最大吐出量は比例関係にあることになる。このため、まず、無負荷最大回転数D210の候補値として、各レバー値信号D100レバー操作量によって求めた回転数の総和を総和部212によって求める。各レバー値信号D100各レバー操作量を示す信号としては、旋回レバー値、ブームレバー値、アームレバー値、バケットレバー値、走行右レバー値、走行左レバー値、サービスレバー値がある。このサービスレバー値は、新たな油圧アクチュエータを接続できる油圧回路を有する場合における、この油圧アクチュエータを操作するレバー操作量を示す値である。各レバー値信号は、図6に示すようなレバー値無負荷回転数変換テーブル211で無負荷回転数に変換され、この変換された値を総和部212によって求めた総和の無負荷回転数が最小値選択部MIN選択218に出力される。一方、無負荷回転数リミット値選択ブロック210は、各操作レバー値信号D100の操作量、油圧ポンプ18の吐出圧力であるポンプ圧力D105,D106、およびモード切替部29によって設定された作業モードD104の4つの情報を用いて、作業機械1のオペレータが、現在どのような操作パターン作業パターンを実行しているかを判定し、予め設定されている操作パターンに対する無負荷回転数リミット値を選択し決定する。この決定された無負荷回転数リミット値は、最小値選択部218に出力される。この操作パターン作業パターンの判定とは、たとえば、アームレバーが掘削方向に傾倒しており、ポンプ圧力も、ある設定値よりも高い場合、ハイブリッド油圧ショベル1は重掘削作業を実行しようとしていると判定し、旋回レバーが傾倒しているとともにブームレバーが上げ方向に傾倒しているような複合操作の場合、ハイブリッド油圧ショベル1はホイスト旋回作業を実行しようとしていると判定するものである。このように、操作パターン作業パターンの判定とは、そのときにオペレータが実行しようとしている操作を推定することである。なお、ホイスト旋回作業とは、バケット13で掘削した土砂をブーム11を上げながら上部旋回体5を旋回させ、所望の旋回停止の位置でバケット13の土砂を排土するような作業である。他方、燃料調整ダイヤル28スロットルダイヤルD103の設定状態設定値からも無負荷最大回転数の候補値を決定する。すなわち、燃料調整ダイヤル28スロットルダイヤルD103の設定値を示す信号を受けて、設定値はスロットルダイヤル無負荷回転数変換テーブル213で、無負荷最大回転数の候補値に変換され、最小値選択部218に出力される。ここで、電気駆動の旋回モータ24を搭載したハイブリッド油圧ショベル1は、旋回の駆動源として油圧を必要としない。このため、油圧ポンプ18から吐出される作動油のうち、旋回の駆動分の油圧ポンプ18からの作動油吐出流量を減らしてもよい。したがって、燃料調整ダイヤル28スロットルダイヤルD103の設定値からスロットルダイヤル無負荷回転数変換テーブル213によって求められる無負荷回転数から、旋回モータ回転数D101から旋回モータ回転数無負荷回転数削減量変換テーブル214によって求められる無負荷回転数削減量を減算部215によって減じ、得られた回転数を無負荷最大回転数D210の候補値としている。なお、最大値選択部MAX選択217は、無負荷回転数削減量が燃料調整ダイヤル28スロットルダイヤルD103の設定値から求められる無負荷最大回転数よりも大きく、最大値選択部217へ入力される値が負の値となって、無負荷回転数リミット値選択ブロック210が出力する無負荷回転数リミット値との比較を行うための最小値選択部MIN選択218を通った結果、無負荷最大回転数が負の値にならないように、最大値選択部217でゼロ値216との最大値選択を行い、最小値選択部218へ負の値が与えられないようにしている。最小値選択部218は、レバー値信号D100から求めた無負荷回転数と、無負荷回転数リミット値選択ブロック210で求めた無負荷回転数リミット値と、旋回モータ回転数D101とから求めた無負荷回転数リミット値を考慮した、スロットルダイヤルD103の設定値から求めた無負荷回転数との3つの値のなかから最小値を選択し、無負荷最大回転数D210np2を出力する。図7はエンジン最小出力演算ブロック120の詳細制御フローである。図7に示すように、エンジン最小出力演算ブロック120は、エンジン出力指令値の下限となる値であるエンジン最小出力D220を演算する。レバー値エンジン最小出力変換テーブル220は、無負荷最大回転数の演算と同様に、各レバー値信号D100をエンジン最小出力に変換し、総和部221がこれらの総和を最小値選択部MIN選択223に出力する。一方、エンジン最小出力の最大値選択ブロック222は、モード切替部29によって設定される作業モードD103に対応した上限値を最小値選択部223に出力する。最小値選択部223は、各レバー値信号D100に対応したエンジン最小出力の総和と、作業モードD104に対応した上限値とを比較し、最小値を選択してエンジン最小出力D220として出力する。図8はエンジン最大出力演算ブロック130の詳細制御フローである。図8に示すように、エンジン最大出力演算ブロック130は、エンジン出力指令値の上限となる値であるエンジン最大出力D230を演算する。ポンプ出力リミット値選択ブロック230は、無負荷最大回転数演算ブロック110による演算と同様に、各レバー値信号D100の操作量とポンプ圧力D105,D106と作業モードD104の設定値の情報を用いて、現在の操作パターンを判定し、その操作パターン毎にポンプ出力リミット値を選択する。この選択されたポンプ出力リミット値に、図示しない回転数センサによって検出されたエンジン回転数D108からファン馬力演算ブロック234が演算したファン馬力が加算部238によって加算される。旋回モータ回転数D101および旋回モータトルクD102を入力パラメータとして用いて旋回馬力演算ブロック230が旋回馬力を演算し、エンジン回転数D108を用いてファン馬力演算ブロック234がファン馬力を演算する。旋回馬力とファン馬力は、それぞれ減算部235および加算部238を介して、ポンプ出力リミット値に加算される。また、発電機19の発電機出力D109は、減算部237を介してポンプ出力リミット値に加算される。これら加算された値以下、加算値と、燃料調整ダイヤル28スロットルダイヤルD103の設定値に応じてスロットルダイヤルエンジン出力リミット変換テーブル235によって変換したエンジン出力リミット値とが、最小値選択部MIN選択239に出力される。最小値選択部239は、加算値とエンジン出力リミット値のうちの最小値を選択し、エンジン最大出力D230として出力する。なお、ポンプ出力リミットはポンプ吸収馬力を意味する。発電機出力D109がゼロの時は、発電オフであり、結果的にエンジン目標出力演算ブロック140で求められるエンジン目標出力D240は、ファン馬力演算ブロック234で求められたファン馬力に演算器237から出力されるポンプ吸収馬力を加算したものとなる。なお、旋回馬力は、次式、旋回馬力kW=2π÷60×旋回モータ回転数×旋回モータトルク÷1000×係数設定値を演算することで求めることができる。また、ファンとは、エンジン17を冷却するためのラジエータの近傍に設けられたファン補機であり、ラジエータに向かって空気を送風させるものであり、エンジン17の駆動に連動して回転駆動するものである。ファン馬力に加えてエンジン17の駆動に連動して回転駆動するエアコンディショナー補機のエアコンディショナー馬力エアコン馬力を加算して演算してもよい。なお、エアコンディショナーは、運転室6の内部の空調を行うための空調機である。なお、ファン馬力は、次式、ファン馬力=ファン定格馬力×エンジン回転数/ファン定格時エンジン回転数^3を用いて簡易的に演算することで求められる。なお、旋回馬力および発電機出力のポンプ出力リミット値への加算は、図8に示すように減算となっている。ハイブリッド油圧ショベル1は、エンジン17という駆動源とは異なる電気という駆動源で電動駆動する旋回モータ24を用いるので、旋回馬力を求めてポンプ出力リミット値から旋回分を減算することが必要である。発電機出力は、発電機19が発電するときは、値の正負の符号を負と定義しており、、最小値選択部233で、ゼロ値232との比較が行われ、ポンプ出力リミット値に対して、負の値を減算するから実質的に加算となる。発電機19がエンジン17の出力アシストを行う場合は、発電機出力は、値の正負は正となる。発電機19が発電する時は、発電機出力は、負の値であるため、ゼロ値232との最小値選択を行った後に、ポンプ出力リミットから負の発電機出力を減算し、実質的にポンプ出力リミットに発電機出力を加算することとなる。すなわち、発電機出力D109が負の値となったときのみに加算が行われる。発電機19によるエンジン17のアシストは、エンジン回転数を、ある所定の回転数から高い回転数に上昇させる必要があるときに作業機3の応答性を高めるために行われるが、このときのエンジン出力としてエンジン17のアシスト分の出力を抜いてしまうと、作業機3の応答性の改善に繋がらないため、エンジン17をアシストしたからといってエンジン最大出力を減じることは行わない。つまり、正の発電機出力が最小値選択部233に入力されても、ゼロ値232との最小値選択により、最小値選択部233からはゼロが出力され。ポンプ出力リミットから減算が行われることなく、エンジン最大出力D230が求められる。図9はエンジン目標出力演算ブロック140の詳細制御フローである。図9に示すように、エンジン目標出力演算ブロック140は、エンジン目標出力D240を演算する。減算部243は、前回演算して求めた前回エンジン目標出力D240から固定値として設定されているエンジン出力加算用オフセット値241を減じる。減算部244は、この減算した値から、エンジン実出力演算ブロック242で演算したエンジン実出力を減算した偏差を求める。乗算部245は、この偏差に、あるゲイン-Kiを乗じた値を乗算し、積分部246がこの乗算値を積分する。加算部247は、この積分値に、エンジン最小出力演算ブロック120で演算して求められたエンジン最小出力D220を加算する。最小値選択部MIN選択248は、この加算値と、エンジン最大出力演算ブロック130で演算して求められたエンジン最大出力D230とのうちの最小値をエンジン目標出力D240として出力する。エンジン目標出力D240は、図5に示すようにエンジン制御指令のエンジン出力指令値として用いられ、エンジン目標出力D240は、図3あるいは図4に示すエンジン出力指令値曲線ELを意味する。なお、エンジン実出力演算ブロック242は、エンジンコントローラ30が指令している燃料噴射量とエンジン回転数、大気温度などにより予測したエンジントルクD107と図示しない回転数センサによって検出されたエンジン回転数D108とをもとに、次式エンジン実出力kW=2π÷60×エンジン回転数×エンジントルク÷1000を用いて演算しエンジン実出力を求める。図10はマッチング最小回転数演算ブロック150の詳細制御フローである。図10に示すように、マッチング最小回転数演算ブロック150は、作業時に最低限上昇させなければならないエンジン回転数であるマッチング最小回転数D150を演算する。マッチング最小回転数D150は、各レバー値信号D100を、レバー値マッチング最小回転数変換テーブル251で変換した各値がマッチング最小回転数D150の候補値となり、それぞれ最大値選択部MAX選択257に出力される。一方、無負荷回転数マッチング回転数変換テーブル252は、目標マッチング回転数np1と同じように、無負荷最大回転数np2で交わるドループ線DLと目標マッチングルートMLとの交点におけるエンジン回転数をマッチング回転数np2’として、無負荷最大回転数演算ブロック110で求められた無負荷最大回転数D210np2を変換し出力する図14参照。さらに、このマッチング回転数np2’から低速オフセット回転数を減算し、その結果得られた値は、マッチング最小回転数D150の候補値として最大値選択部MAX選択257に出力される。低速オフセット回転数を用いる意義とその値の大小については、後述する。また、旋回モータ回転数マッチング最小回転数変換テーブル250は、旋回モータ回転数D101をマッチング最小回転数D150の候補値として変換して最大値選択部257に出力する。旋回モータ回転数D101は、図2の旋回モータ24の旋回モータ回転数速度をレゾルバやロータリーエンコーダなどの回転センサで検出した値である。なお、この旋回モータ回転数マッチング最小回転数変換テーブル250は、図10に示すように旋回モータ回転数D101がゼロのときマッチング最小回転数を大きくし、旋回モータ回転数D101が大きくなるにしたがってマッチング最小回転数を小さくするような特性で旋回モータ回転数D101の変換を行う。ここで、発電機19は、最大に出力できるトルクの限界値発電機最大トルクが設定されているため、ある程度大きな出力で発電を行うには、エンジン回転数を上昇させる必要がある。このため、随時に要求される発電機出力の大きさから、最低限上昇させなければならないエンジン回転数を、発電機出力マッチング回転数変換テーブル256を用いて求め、この求められたエンジン回転数をマッチング最小回転数D150の候補値として最大値選択部MAX選択257に出力する。なお、発電機出力D109の後段に配置されるゲート255は、発電機出力D109が負であるので、発電機出力D109を正の値に変換するために設けられている。最大値選択部257は、これらのマッチング最小回転数のうちの最大値を選択してマッチング最小回転数D150として出力する。ここで、この実施の形態では、負荷が抜けた場合、エンジン回転数は、最大で無負荷最大回転数np2まで増加し、負荷が十分かかった場合、エンジン回転数は、目標マッチング回転数np1まで下がる。この場合、負荷の大小によってエンジン回転数は大きく変動することになる。このエンジン回転数の大きな変動は、ハイブリッド油圧ショベル1のオペレータにとってハイブリッド油圧ショベル1の力が出ていないように感じるといった違和感力不足感として、オペレータがとらえるおそれがある。したがって、図14に示すように、低速オフセット回転数を用い、この設定される低速オフセット回転数の大小によって、エンジン回転数の変動幅を変化させて違和感を除くことができる。すなわち、低速オフセット回転数を小さくすれば、エンジン回転数の変動幅は小さくなり、低速オフセット回転数を大きくすれば、エンジン回転数の変動幅は大きくなる。なお、上部旋回体2が旋回をしている状態や作業機3が掘削作業をしている状態などのハイブリッド油圧ショベル1の稼動状態によって、同じエンジン回転数の変動幅であってもオペレータの違和感の感じ方が異なる。上部旋回体2が旋回をしている状態では、作業機3が掘削作業をしている状態よりも多少エンジン回転数が下がってもオペレータは力不足とは感じにくいので、上部旋回体2が旋回している状態では、作業機3が掘削作業をしている状態よりもエンジン回転数がさらに下がるように設定しても問題はない。この場合、エンジン回転数が下がるため燃費は良くなる。なお、旋回に限らず、他のアクチュエータの動作に応じた、同様なエンジン回転数の変動幅設定は可能である。図14に示すトルク線図について補足説明する。図14のグラフ中に示す、HP1~HP5は図21に示す等馬力線Jに相当し、psは馬力単位psを示し、HP1~HP5へといくにつれて馬力が大きくなり、5本の曲線は例示的に示したものである。求められるエンジン出力指令値によって、等馬力曲線エンジン出力指令値曲線ELが求められ設定される。よって、この等馬力曲線エンジン出力指令値曲線ELは、HP1~HP5の5つに限らず無数存在し、その中から選択されるものである。図14は、馬力がHP3psとHP4psの間の馬力となる等馬力曲線エンジン出力指令値曲線ELが求められ設定されている場合を示している。図11は目標マッチング回転数演算ブロック160の詳細制御フローである。図11に示すように、目標マッチング回転数演算ブロック160は、図3に示した、目標マッチング回転数np1D260を演算する。目標マッチング回転数D260は、エンジン目標出力D240エンジン出力指令値曲線ELと目標マッチングルートMLとが交差するエンジン回転数である。目標マッチングルートMLは、あるエンジン出力でエンジン17が動作する際に燃料消費率が良い点を通るように設定されているため、この目標マッチングルートML上のエンジン目標出力D240との交点で目標マッチング回転数D260を決定するのが好ましい。このため、エンジン目標出力目標マッチング回転数変換テーブル267では、エンジン目標出力演算ブロック140で求められたエンジン目標出力D240エンジン出力指令値曲線ELの入力を受けて、エンジン目標出力D240エンジン出力指令値曲線ELと目標マッチングルートMLとの交点での目標マッチング回転数を求め、最大値選択部MAX選択269に出力する。しかし、図10に示したマッチング最小回転数演算ブロック150で行われる演算によれば、エンジン回転数の変動幅を小さくする場合、マッチング最小回転数D150が、エンジン目標出力目標マッチング回転数変換テーブル267にて求めたマッチング回転数よりも大きくなる。このため、最大値選択部MAX選択269で、マッチング最小回転数D150とエンジン目標出力D240から求めたマッチング回転数とを比較し、最大値を選択し目標マッチング回転数D260の候補値とすることで、目標マッチング回転数の下限を制限している。図14では、低速オフセット回転数を小とすれば、目標マッチングルートMLを外れるが、目標マッチング点は、MP1ではなくMP1’となって、目標マッチング回転数D260は、np1ではなくnp1’となる。また、無負荷最大回転数演算ブロック110で求めた無負荷最大回転数D210と同様に、目標マッチング回転数D260は、燃料調整ダイヤル28スロットルダイヤルD103の設定値によっても上限が制限される。すなわち、スロットルダイヤル目標マッチング回転数変換テーブル268は、燃料調整ダイヤル28スロットルダイヤルD103の設定値の入力を受けて、燃料調整ダイヤル28スロットルダイヤルD103の設定値に対応するドループ線トルク線図上で燃料調整ダイヤル28スロットルダイヤルD103の設定値に対応するエンジン回転数から引くことができるドループ線と目標マッチングルートMLとの交点のマッチング回転数に変換した目標マッチング回転数D260の候補値を出力し、この出力された目標マッチング回転数D260の候補値と、最大値選択部269で選択された目標マッチング回転数D260の候補値とが最小値選択部MIN選択270で比較され、最小値が選択されて、最終的な目標マッチング回転数D260が出力される。ここで、目標マッチング回転数D260は、基本的に、エンジン目標出力と目標マッチングルートMLとの交点における回転数であるが、エンジン最大出力D230は、図8に示すようにポンプ出力リミット値にファン馬力と発電機出力とを加算した値であり、このエンジン最大出力D230を用いて図9に示すようにエンジン目標出力D240が決定される。さらに、図11に示すように目標マッチング回転数演算ブロック160にエンジン目標出力D240が入力されて、目標マッチング回転数D260が決定される。また、発電機19が要求される発電機出力D109によって目標マッチング回転数D260の値は変化する。ここで、発電機19は、小さな発電トルクで発電を行うと効率が悪い。このため、発電機19が、発電を行う場合、予め設定した最小発電トルク以上で発電を行うように制御する。この結果、発電機19が発電しない状態発電オフから発電する状態発電オンに切り替わる際に、発電のオンとオフが最小発電トルクを境として切り替わるため発電機出力は不連続に変化する。つまり、エンジン目標出力D240と目標マッチングルートMLとの交点でマッチング点を定めることから、この発電機出力D109の不連続な変化に応じて、発電オン/オフの切り替えで目標マッチング回転数D260が大きく変動してしまう。このため、目標マッチング回転数演算ブロック160は、最小発電出力演算ブロック260がエンジン回転数D108を用いて、次式、最小発電出力kW=2π÷60×エンジン回転数×最小発電トルク値が負の設定値÷1000を演算し最小発電出力を求めて、要求される発電機出力が求められた最小発電出力よりも小さい場合、最小発電出力に対して足りない出力分をエンジン目標出力に加算部266によって加算し、この加算したエンジン目標出力を用いて、エンジン目標出力目標マッチング回転数変換テーブル267によって目標マッチング回転数の候補値として演算し、発電オン/オフに伴う回転数変動を防止する。なお、発電機出力D109の後段の最小値選択部MIN選択262は、要求される発電機出力がない場合エンジン17の出力アシストを行う場合などにゼロ出力を行うためにゼロ値261との比較を行う。したがって、エンジン目標出力D240に何も加算しないようになる。また、最大値選択部MAX選択265は、要求される発電機出力が最小発電出力以上である場合に最小発電出力に不足はないことから、エンジン目標出力D240に加算は不要となる。よって、最大値選択部265に負の値が入力され、ゼロ値264との比較で最大値であるゼロが選択されて、最大値選択部265はゼロ出力する。上記の最小発電出力を求めるための計算式に示すように、最小発電出力は負の値を示す。なぜならば、最小発電トルクが負の値と設定されているからである。図11に示すように、発電オフの場合は、最小発電出力が演算器263に入力されるが、最小発電出力は、負の値であり、演算器263においてマイナスとマイナスでプラスに転じる。そのプラスの最小発電出力は、エンジン目標出力D240と演算器266において加算される。そのようにして、目標マッチング回転数npa ́が求められる。発電オフ時は、図15に示すように、エンジン17はエンジン目標出力ELa上の目標マッチング回転数npa ́で駆動するが、発電オフであるから、エンジン目標出力ELaは、ポンプ吸収馬力にファン馬力を加えたものとなる。しかし、上記のように、目標マッチング回転数npa ́でエンジン17はマッチング点Ma ́で駆動するが、発電オン時は、要求される発電機出力D109が最小発電出力Pmに到達するまでは、その目標マッチング回転数npa ́のままでエンジン17が駆動し、発電機19は発電する。図12はエンジン回転数指令値演算ブロック170の詳細制御フローである。以下、図4に示すトルク線図を参照しながら説明する。図12に示すように、エンジン回転数指令値演算ブロック170は、2つの油圧ポンプ18の斜板角センサ18aが検出した斜板角をもとに求められたポンプ容量D110,D111をもとに、平均部271がポンプ容量D110,D111を平均した平均ポンプ容量を算出し、この平均ポンプ容量の大きさに応じて、エンジン回転数指令選択ブロック273が、エンジン回転数指令値D270無負荷最大回転数np2を求める。すなわち、エンジン回転数指令選択ブロック273は、平均ポンプ容量が、ある設定値閾値よりも大きな場合は、エンジン回転数指令値D270を無負荷最大回転数np2D210に近づけるようにする。つまり、エンジン回転数を増大させる。一方、平均ポンプ容量が、ある設定値よりも小さな場合は、後述するエンジン回転数nm1に近づけるよう、つまりエンジン回転数を減少させる。目標マッチング回転数np1D260と目標マッチング点MP1上のトルクとの交点からドループ線に沿って、エンジントルクをゼロのほうへ下ろした位置に相当するエンジン回転数を無負荷回転数np1aとして、その無負荷回転数np1aに下限回転数オフセット値Δnmを加えた値としてエンジン回転数nm1を求める。なお、目標マッチング回転数D260に対応する無負荷回転数への変換は、マッチング回転数無負荷回転数変換テーブル272によって変換される。したがって、エンジン回転数指令値D270は、ポンプ容量の状態によって、無負荷最小回転数nm1と無負荷最大回転数np2との間で決まる。下限回転数オフセット値Δnmは、あらかじめ設定した値であって、エンジンコントローラ30のメモリに記憶されている。具体的に説明すると、平均ポンプ容量が、ある設定値qcom1より大きな場合には、エンジン回転数指令値D270を無負荷最大回転数np2に近づけるようにし、平均ポンプ容量が、ある設定値qcom1よりも小さい場合には、次式、エンジン回転数指令値D270=目標マッチング回転数np1を無負荷回転数に変換した回転数np1a下限回転数オフセット値Δnmを用いて求める値に近づけるようにする。このようにして求められたエンジン回転数指令値D270によってドループ線を制御することができ、ポンプ容量に余裕がある場合平均ポンプ容量がある設定値より小の場合には、図4に示すように、エンジン回転数を下げるエンジン回転数をnm1無負荷最小回転数にすることが可能になり、燃料消費を抑えて燃費向上が可能になる。設定値qcom1は、あらかじめ設定した値であって、ポンプコントローラ33のメモリに記憶されている。なお、設定値qcom1は、エンジン回転数増加側とエンジン回転数減少側とに分けて2つの異なる設定値を設け、エンジン回転数が変化しない範囲を設けるようにしてもよい。図13はポンプ吸収トルク指令値演算ブロック180の詳細制御フローである。図13に示すように、ポンプ吸収トルク指令値演算ブロック180は、現在のエンジン回転数D108とエンジン目標出力D240と目標マッチング回転数D260とを用いてポンプ吸収トルク指令値D280を求める。ファン馬力演算ブロック280は、エンジン回転数D108を用いてファン馬力を演算する。なお、ファン馬力は先に述べた計算式を用いて求められるものである。減算部283は、エンジン目標出力演算ブロック140で求められたエンジン目標出力D240から、この求めたファン馬力を減算した出力ポンプ目標吸収馬力を、ポンプ目標マッチング回転数およびトルク演算ブロック284に入力する。ここで、エンジン目標出力D240からファン馬力のみでなく、発電機出力D109を減算した出力ポンプ目標吸収馬力を、ポンプ目標マッチング回転数およびトルク演算ブロック284に出力する。なお、要求される発電機出力の値の正負は、負であるから、最小値選択部MIN選択282でゼロ値281との比較で最小値が選択されて、選択された値が演算部283によってエンジン目標出力D240に加算されるということは、実質、エンジン目標出力D240から発電機出力D240を減算することになる。この目標マッチング回転数およびトルク演算ブロック284には、さらに、目標マッチング回転数演算ブロック160で求められた目標マッチング回転数D260が入力される。目標マッチング回転数D260は、油圧ポンプ18の目標マッチング回転数ポンプ目標マッチング回転数とされる。そして、ポンプ目標マッチング回転数およびトルク演算ブロック284では、次式に示すように、ポンプ目標マッチングトルク=60×1000×エンジン目標出力-ファン馬力/2π×目標マッチング回転数が演算される。求められたポンプ目標マッチングトルクは、ポンプ吸収トルク演算ブロック285に出力される。ポンプ吸収トルク演算ブロック285は、ポンプ目標マッチング回転数およびトルク演算ブロック284から出力されたポンプ目標マッチングトルクと、回転センサにて検出されたエンジン回転数D108と、目標マッチング回転数D260とが入力される。ポンプ吸収トルク演算ブロック285では、次式に示すようにポンプ吸収トルク=ポンプ目標マッチングトルク-Kp×目標マッチング回転数-エンジン回転数が演算され、演算結果であるポンプ吸収トルク値D280が出力される。ここで、Kpは、制御ゲインである。このような制御フローが実行されることにより、実際のエンジン回転数D108が目標マッチング回転数D260に比して大きい場合には、上記の式からわかるようにポンプ吸収トルク指令値D280は増加し、逆に、実際のエンジン回転数D108が目標マッチング回転数D260に比して小さい場合には、ポンプ吸収トルク指令値D280は減少することになる。一方、エンジンの出力は、エンジン目標出力D240が上限となるように制御しているため、結果的にエンジン回転数は、目標マッチング回転数D260近傍の回転数で安定しエンジン17が駆動することになる。ここで、上述した目標マッチング回転数演算ブロック160によって演算される目標マッチング回転数D260は、図15に示すように、発電オフの場合は、発電オフの場合におけるエンジン目標出力D240を示すエンジン出力指令値曲線ELaと目標マッチングルートMLとの交点が目標マッチング点Maとなり、そのとき目標マッチング回転数npaとなる。また、最小発電出力Pmの発電が行われる場合は、最小発電出力Pmを満たすためのエンジン目標出力D240を示すエンジン出力指令値曲線ELbとなり、エンジン出力指令値曲線ELbと目標マッチングルートMLとの交点が目標マッチング点Mbとなり、そのとき目標マッチング回転数npa’となる。図11に示したエンジン制御を行わなければ、最小発電出力Pm未満の発電では実際の発電出力が小さいため、発電のオン/オフによって目標マッチング点Ma,Mb間を頻繁に移行し、その際、目標マッチング回転数も頻繁に変化する。この実施の形態では、最小発電出力Pm未満の発電である場合、発電オフの際は予め目標マッチング回転数をnpa’にしているため、発電のオン/オフによって目標マッチング回転数が変動することがない。そして、発電オフ時の目標マッチング点は、エンジン出力指令値曲線ELaと目標マッチング回転数npa’との交点Ma’となる。したがって、図11に示したエンジン制御を行わなければ、発電機出力の増大とともに、マッチング点がMa→Mb→Mcのように移行していたが、この実施の形態では、発電機出力の増大とともに、マッチング点はMa’→Mb→Mcのように移行し、発電のオンオフが切り替わる程度の発電機出力の場合発電オンオフの移行時に目標マッチング回転数の変動はなく、ハイブリッド油圧ショベル1のオペレータが違和感を感じることがなくなる。また、エンジン回転数指令値演算ブロック170では、エンジン回転数指令値D270の最小値は、上述したように、エンジン回転数指令値=目標マッチング回転数np1を無負荷回転数に変換した回転数np1a下限回転数オフセット値Δnmの演算によって求められる値となり、目標マッチング回転数に対してエンジンのドループ線は、最低でも下限回転数オフセット値Δnmが加味された高い回転数のところで設定される。このため、本実施の形態によれば、油圧ポンプ18の実際の吸収トルクポンプ実吸収トルクがポンプ吸収トルク指令に対して多少ばらついた場合でも、ドループ線にはかからない範囲でマッチングすることになり、エンジン17のマッチング回転数が多少変動してもエンジン出力をエンジン出力指令値曲線EL上で制限しエンジン目標出力を一定に制御しているため、実際の吸収トルクポンプ実吸収トルクがポンプ吸収トルク指令に対してばらつきを生じてもエンジン出力の変動を小さくすることが可能となる。この結果、燃費のばらつきも小さく抑えることができ、ハイブリッド油圧ショベル1の燃費に対する仕様を満たすことができる。燃費に対する仕様とは、例えば、従来のハイブリッド油圧ショベルに比べて、燃費を10低減可能といった仕様である。すなわち、図16に示すように、従来は、ポンプ吸収トルク線PLと目標マッチング回転数との交点を目標マッチング点MP1としていたため、油圧ポンプの逐次の性能のばらつきが大きい場合、それに伴ってドループ線DL上でエンジン出力のばらつきも大きくなる。この結果、燃費のばらつきが大きく、ハイブリッド油圧ショベル1の燃費に対する仕様を満たすことが難しい場合があった。これに対し、本実施の形態によれば、図17に示すように、ポンプ吸収トルク線PLと、等馬力曲線であってエンジン出力の上限を示すエンジン出力指令値曲線ELとの交点を目標マッチング点MP1としており、油圧ポンプの逐次の性能のばらつきが大きい場合でも目標マッチング点MP1は、エンジン出力指令値曲線ELに沿ってばらつくこととなる。このため、エンジン出力のばらつきがほとんど無くなり、結果として、燃費のばらつきもほとんど無くなる。なお、従来のエンジン制御では、図18に示すように、エンジン17がアイドリング回転を行っている状態からエンジン回転数を上昇させて目標マッチング点MP1にエンジン出力が移動する過渡時は、エンジン出力は最大出力トルク線TL、および目標マッチング点MP1を通るドループ線DLを経由していたため、過渡時のエンジン出力は、図17中の囲み部Aで示すように目標エンジン出力よりも過剰に大きなものとなり、燃費が悪化していた。これに対し、本実施の形態によれば、図19に示すように、ポンプ吸収トルク線PLとエンジン出力指令値曲線ELとの交点を目標マッチング点MP1としているため、過渡時は、図19中の囲み部A ́で示すように、エンジン出力はエンジン出力指令値曲線ELに沿って目標マッチング点MP1に移行する。このため、過渡時であっても目標エンジン出力と同じエンジン出力が得られるため、燃費が向上する。"