"作業機械の運転状態を検出する検出手段と、前記運転状態をもとに、作業機械の負荷が抜けた場合に最大限上げられるエンジンの回転数である無負荷最大回転数を演算する無負荷最大回転数演算手段と、前記運転状態をもとに、負荷が加わった場合に上げられるエンジンの回転数である目標マッチング回転数を前記無負荷最大回転数とは別に演算する目標マッチング回転数演算手段と、前記運転状態をもとに、最大限出力することができるエンジン目標出力を演算するエンジン目標出力演算手段と、前記エンジン目標出力の制限下で、前記無負荷最大回転数と前記目標マッチング回転数との間でエンジン回転数を制御するエンジン制御手段と、を備えたことを特徴とする作業機械のエンジン制御装置。予めエンジン回転数の変動幅を設定する変動幅設定手段と、前記無負荷最大回転数から前記変動幅分の回転数下げたエンジンの回転数を最小回転数制限値とし、前記運転状態をもとに、負荷が加わった場合に最低限上げなければならないエンジンの回転数であるマッチング最小回転数を演算するマッチング最小回転数演算手段と、を備え、前記エンジン制御手段は、前記エンジン目標出力の制限下で、前記無負荷最大回転数と前記マッチング最小回転数との間でエンジン回転数を制御することを特徴とする請求項1に記載の作業機械のエンジン制御装置。前記エンジン制御手段は、前記目標マッチング回転数に下限回転数オフセット値を加えたエンジン回転数をエンジン回転数指令値として出力することを特徴とする請求項1または2に記載の作業機械のエンジン制御装置。可変容量型油圧ポンプと、前記可変容量型油圧ポンプのポンプ容量を検出する容量検出手段と、を備え、前記エンジン制御手段は、前記ポンプ容量が閾値以上である場合、エンジン回転数を上げ、ポンプ容量が閾値未満の場合、エンジン回転数を下げたエンジン回転数指令値を出力することを特徴とする請求項1~3のいずれか一つに記載の作業機械のエンジン制御装置。前記マッチング最小回転数演算手段は、前記作業機械の旋回体の回転数を検出する回転数検出手段による検出値がゼロに近い場合にはマッチング最小回転数を上げ、前記回転数検出手段による検出値が大きくなるに従ってマッチング最小回転数を下げた値を最小回転数制限値とし、前記運転状態をもとに、作業機械に負荷が加わった場合に最低限上げなければならないエンジンの回転数であるマッチング最小回転数を演算することを特徴とする請求項2に記載の作業機械のエンジン制御装置。作業機械の運転状態を検出する検出ステップと、前記運転状態をもとに、作業機械の負荷が抜けた場合に最大限上げられるエンジンの回転数である無負荷最大回転数を演算する無負荷最大回転数演算ステップと、前記運転状態をもとに、作業機械に負荷が加わった場合に上げられるエンジンの回転数である目標マッチング回転数を前記無負荷最大回転数とは別に演算する目標マッチング回転数演算ステップと、前記運転状態をもとに、最大限出力することができるエンジン目標出力を演算するエンジン目標出力演算ステップと、前記エンジン目標出力の制限下で、前記無負荷最大回転数と前記目標マッチング回転数との間でエンジン回転数を制御するエンジン制御ステップと、を含むことを特徴とする作業機械のエンジン制御方法。予めエンジン回転数の変動幅を設定する変動幅設定ステップと、前記無負荷最大回転数から前記変動幅分の回転数下げたエンジンの回転数を最小回転数制限値とし、前記運転状態をもとに、作業機械に負荷が加わった場合に最低限上げなければならないエンジンの回転数であるマッチング最小回転数を演算するマッチング最小回転数演算ステップと、を含み、前記エンジン制御ステップは、前記エンジン目標出力の制限下で、前記無負荷最大回転数と前記マッチング最小回転数との間でエンジン回転数を制御することを特徴とする請求項6に記載の作業機械のエンジン制御方法。上述した目標マッチングルートMLを用いてエンジン制御を行う場合、図29のトルク線図に示すように、たとえば、目標マッチングルートML上の目標マッチング回転数n1でのマッチング点M1でマッチングさせるようとすると、無負荷時のエンジン回転数は、マッチング点M1を通るドループ線DL1に拘束された低回転数n2例えば、1100rpm近傍のところに定められる。そして、負荷がかかるとドループ線DL1に沿ってエンジントルクが増加してマッチング点M1でマッチングする。すなわち、目標マッチングルートML上でエンジン出力とポンプ吸収トルクとをマッチングさせようとすると、エンジン出力目標マッチング点M1とエンジン回転数無負荷時のエンジン回転数n2とがドループ線DL1によって連動して決まる。ここで、作業機械によって大きな岩を動かすなどの作業時に、作業機に負荷がかかった場合、図29に示すドループ線DL1に沿ってエンジントルクが上昇してマッチング点M1に移行する。ここで、作業機出力が得られて、作業には好都合であるが、大きな岩を動かし終えて負荷が抜けた直後でも、エンジンは、ドループ線DL1に拘束された低回転のエンジン回転数で駆動する。この低回転数で油圧ポンプが回転し、油圧ポンプの斜板の斜板角は、ある所定値最大容量よりは大きくならないため、油圧ポンプから吐き出される作動油流量が作業機の油圧シリンダに十分供給されない。したがって、このような場合に、オペレータの作業機を速く動かしして作業したいという意思に作業機が対応できず、操作上の違和感が生じるという問題点があった。この問題点を解決するための第1の方策として、図30のトルク線図に示すように、無負荷時のエンジン回転数を高回転数n11例えば、2050rpm近傍のところに設定し、エンジン回転数に対して油圧ポンプが吸収可能な最大トルクを示すポンプ吸収トルク線をPL1として設定するとする。そのようにすると、負荷が低い場合には、マッチング点M11でエンジン出力馬力とポンプ吸収馬力がマッチングする。したがって、油圧ポンプの斜板角が任意であってもエンジン回転数が高いため、油圧ポンプから作業機の油圧シリンダに吐き出される作動油流量が確保され、作業機速度の充足を図ることができる。その後、作業機に負荷が加わった場合、ドループ線DL2に沿ってエンジントルクが上昇し、マッチング点M1と同じ等馬力曲線EL1上のマッチング点M12でマッチングすることで所望とする作業機出力を得ることができる。しかし、このような制御を行うと、図28で示した等燃費曲線の目玉M1から外れた、燃費の悪い位置でエンジンが駆動するため、低燃費を図ることができないという問題が考えられる。また、上述した問題点を解決するための第2の方策として、図30のトルク線図に示すように、ポンプ吸収トルク線をPL2に設定し、マッチング点M12に替えて、目標マッチングルートML上にマッチング点M13を設定するとする。作業機に負荷がかかった場合、エンジンの出力は、マッチング点M11からドループ線DL2に沿ってマッチング点M13でマッチングする。この場合、等燃費曲線の目玉M1に近い位置でマッチングすることになるが、馬力の高い等馬力曲線EL2上のエンジン出力でエンジンが駆動することとなるため、必要以上のエネルギー消費が行われ、低回転かつ低出力のマッチング点M1に比して燃費は悪化することが考えられる。この発明は、上記に鑑みてなされたものであって、低燃費と作業性の向上とを両立することができる作業機械のエンジン制御装置およびそのエンジン制御方法を提供することを目的とする。上述した課題を解決し、目的を達成するために、この発明にかかる作業機械のエンジン制御装置は、作業機械の運転状態を検出する検出手段と、前記運転状態をもとに、作業機械の負荷が抜けた場合に最大限上げられるエンジンの回転数である無負荷最大回転数を演算する無負荷最大回転数演算手段と、前記運転状態をもとに、負荷が加わった場合に上げられるエンジンの回転数である目標マッチング回転数を前記無負荷最大回転数とは別に演算する目標マッチング回転数演算手段と、前記運転状態をもとに、最大限出力することができるエンジン目標出力を演算するエンジン目標出力演算手段と、前記エンジン目標出力の制限下で、前記無負荷最大回転数と前記目標マッチング回転数との間でエンジン回転数を制御するエンジン制御手段と、を備えたことを特徴とする。また、この発明にかかる作業機械のエンジン制御装置は、上記の発明において、予めエンジン回転数の変動幅を設定する変動幅設定手段と、前記無負荷最大回転数から前記変動幅分の回転数下げたエンジンの回転数を最小回転数制限値とし、前記運転状態をもとに、負荷が加わった場合に最低限上げなければならないエンジンの回転数であるマッチング最小回転数を演算するマッチング最小回転数演算手段と、を備え、前記エンジン制御手段は、前記エンジン目標出力の制限下で、前記無負荷最大回転数と前記マッチング最小回転数との間でエンジン回転数を制御することを特徴とする。また、この発明にかかる作業機械のエンジン制御装置は、上記の発明において、前記エンジン制御手段は、前記目標マッチング回転数に下限回転数オフセット値を加えたエンジン回転数をエンジン回転数指令値として出力することを特徴とする。また、この発明にかかる作業機械のエンジン制御装置は、上記の発明において、可変容量型油圧ポンプと、前記可変容量型油圧ポンプのポンプ容量を検出する容量検出手段と、を備え、前記エンジン制御手段は、前記ポンプ容量が閾値以上である場合、エンジン回転数を上げ、ポンプ容量が閾値未満の場合、エンジン回転数を下げたエンジン回転数指令値を出力することを特徴とする。また、この発明にかかる作業機械のエンジン制御装置は、上記の発明において、前記マッチング最小回転数演算手段は、前記作業機械の旋回体の回転数を検出する回転数検出手段による検出値がゼロに近い場合にはマッチング最小回転数を上げ、前記回転数検出手段による検出値が大きくなるに従ってマッチング最小回転数を下げた値を最小回転数制限値とし、前記運転状態をもとに、前記作業機械に負荷が加わった場合に最低限上げなければならないエンジンの回転数であるマッチング最小回転数を演算することを特徴とする。また、この発明にかかる作業機械のエンジン制御方法は、作業機械の運転状態を検出する検出ステップと、前記運転状態をもとに、作業機械の負荷が抜けた場合に最大限上げられるエンジンの回転数である無負荷最大回転数を演算する無負荷最大回転数演算ステップと、前記運転状態をもとに、作業機械の負荷が加わった場合に上げられるエンジンの回転数である目標マッチング回転数を前記無負荷最大回転数とは別に演算する目標マッチング回転数演算ステップと、前記運転状態をもとに、最大限出力することができるエンジン目標出力を演算するエンジン目標出力演算ステップと、前記エンジン目標出力の制限下で、前記無負荷最大回転数と前記目標マッチング回転数との間でエンジン回転数を制御するエンジン制御ステップと、を含むことを特徴とする。また、この発明にかかる作業機械のエンジン制御方法は、上記の発明において、予めエンジン回転数の変動幅を設定する変動幅設定ステップと、前記無負荷最大回転数から前記変動幅分の回転数下げたエンジンの回転数を最小回転数制限値とし、前記運転状態をもとに、作業機械に負荷が加わった場合に最低限上げなければならないエンジンの回転数であるマッチング最小回転数を演算するマッチング最小回転数演算ステップと、を含み、前記エンジン制御ステップは、前記エンジン目標出力の制限下で、前記無負荷最大回転数と前記マッチング最小回転数との間でエンジン回転数を制御することを特徴とする。この発明によれば、エンジン目標出力の制限下で、無負荷最大回転数と目標マッチング回転数との間でエンジン回転数を制御するようにしているので、低燃費と作業性の向上とを両立することができる。以下、添付図面を参照してこの発明を実施するための形態について説明する。実施の形態1[全体構成]まず、図1および図2は、作業機械としての一例である油圧ショベル1の全体構成を示している。この油圧ショベル1は、車両本体2と作業機3とを備えている。車両本体2は、下部走行体4と上部旋回体5とを有する。下部走行体4は、一対の走行装置4aを有する。各走行装置4aは、履帯4bを有する。各走行装置4aは、右走行モータと左走行モータ走行モータ21とによって履帯4bを駆動することによって油圧ショベル1を走行あるいは旋回させる。上部旋回体5は、下部走行体4上に旋回可能に設けられ、旋回油圧モータ31が駆動することによって旋回する。また、上部旋回体5には、運転室6が設けられる。上部旋回体5は、燃料タンク7と作動油タンク8とエンジン室9とカウンタウェイト10とを有する。燃料タンク7は、エンジン17を駆動するための燃料を貯留する。作動油タンク8は、油圧ポンプ18からブームシリンダ14などの油圧シリンダや旋回油圧モータ31、走行モータ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を有する。エンジン17としてディーゼルエンジンが用いられ、油圧ポンプ18として可変容量型油圧ポンプ例えば斜板式油圧ポンプが用いられる。エンジン17の出力軸には、油圧ポンプ18が機械的に結合されており、エンジン17を駆動することで、油圧ポンプ18が駆動する。油圧駆動系は、車両本体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の設定値、上部旋回体5の旋回速度旋回回転数などの情報運転状態を示す信号を取得し、エンジン出力指令値を求める。このエンジン出力指令値は、トルク線図上の等馬力曲線エンジン出力指令値曲線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選択214に出力される。一方、無負荷回転数リミット値選択ブロック210は、各操作レバー値信号D100の操作量、油圧ポンプ18の吐出圧力であるポンプ圧力D104,D105、およびモード切替部29によって設定された作業モードD103の4つの情報を用いて、作業機械1のオペレータが、現在どのような操作パターン作業パターンを実行しているかを判定し、予め設定されている操作パターンに対する無負荷回転数リミット値を選択し決定する。この決定された無負荷回転数リミット値は、最小値選択部214に出力される。この操作パターン作業パターンの判定とは、たとえば、アームレバーが掘削方向に傾倒しており、ポンプ圧力も、ある設定値よりも高い場合、油圧ショベル1は重掘削作業を実行しようとしていると判定し、旋回レバーが傾倒しているとともにブームレバーが上げ方向に傾倒しているような複合操作の場合、油圧ショベル1はホイスト旋回作業を実行しようとしていると判定するものである。このように、操作パターン作業パターンの判定とは、そのときにオペレータが実行しようとしている操作を推定することである。なお、ホイスト旋回作業とは、バケット13で掘削した土砂をブーム11を上げながら上部旋回体5を旋回させ、所望の旋回停止の位置でバケット13の土砂を排土するような作業である。他方、燃料調整ダイヤル28スロットルダイヤルD102の設定状態設定値からも無負荷最大回転数の候補値を決定する。すなわち、燃料調整ダイヤル28スロットルダイヤルD102の設定値を示す信号を受けて、設定値はスロットルダイヤル無負荷回転数変換テーブル213で、無負荷最大回転数の候補値に変換され、最小値選択部214に出力される。最小値選択部214は、レバー値信号D100から求めた無負荷回転数と無負荷回転数リミット値選択ブロック210で求めた無負荷回転数リミット値とスロットルダイヤルD102の設定値から求めた無負荷回転数との3つの値のなかから最小値を選択し、無負荷最大回転数D210np2を出力する。図7はエンジン最小出力演算ブロック120の詳細制御フローである。図7に示すように、エンジン最小出力演算ブロック120は、エンジン出力指令値の下限となる値であるエンジン最小出力D220を演算する。レバー値エンジン最小出力変換テーブル220は、無負荷最大回転数の演算と同様に、各レバー値信号D100をエンジン最小出力に変換し、総和部221がこれらの総和を最小値選択部MIN選択223に出力する。一方、エンジン最小出力の最大値選択ブロック222は、モード切替部29によって設定される作業モードD103に対応した上限値を最小値選択部223に出力する。最小値選択部223は、各レバー値信号D100に対応したエンジン最小出力の総和と、作業モードD103に対応した上限値とを比較し、最小値を選択してエンジン最小出力D220として出力する。図8はエンジン最大出力演算ブロック130の詳細制御フローである。図8に示すように、エンジン最大出力演算ブロック130は、エンジン出力指令値の上限となる値であるエンジン最大出力D230を演算する。ポンプ出力リミット値選択ブロック230は、無負荷最大回転数演算ブロック110による演算と同様に、各レバー値信号D100の操作量とポンプ圧力D104,D105と作業モードD103の設定値の情報を用いて、現在の操作パターンを判定し、その操作パターン毎にポンプ出力リミット値を選択する。この選択されたポンプ出力リミット値に、図示しない回転数センサによって検出されたエンジン回転数D107からファン馬力演算ブロック231が演算したファン馬力が加算部233によって加算される。その加算された値以下、加算値と、燃料調整ダイヤル28スロットルダイヤルD102の設定値に応じてスロットルダイヤルエンジン出力リミット変換テーブル232によって変換したエンジン出力リミット値とが、最小値選択部MIN選択234に出力される。最小値選択部234は、加算値とエンジン出力リミット値のうちの最小値を選択し、エンジン最大出力D230として出力する。なお、ファンとは、エンジン17を冷却するためのラジエータの近傍に設けられたファンであり、ラジエータに向かって空気を送風させるものであり、エンジン17の駆動に連動して回転駆動するものである。なお、ファン馬力は、次式、ファン馬力=ファン定格馬力×エンジン回転数/ファン定格時エンジン回転数^3を用いて簡易的に演算することで求められる。図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が指令している燃料噴射量とエンジン回転数、大気温度などにより予測したエンジントルクD106と図示しない回転数センサによって検出されたエンジン回転数D107とをもとに、次式エンジン実出力kW=2π÷60×エンジン回転数×エンジントルク÷1000を用いて演算しエンジン実出力を求める。図10はマッチング最小回転数演算ブロック150の詳細制御フローである。図10に示すように、マッチング最小回転数演算ブロック150は、作業時に最低限上昇させなければならないエンジン回転数であるマッチング最小回転数D150を演算する。マッチング最小回転数D150は、各レバー値信号D100を、レバー値マッチング最小回転数変換テーブル251で変換した各値がマッチング最小回転数D150の候補値となり、それぞれ最大値選択部MAX選択255に出力される。一方、無負荷回転数マッチング回転数変換テーブル252は、目標マッチング回転数np1と同じように、無負荷最大回転数np2で交わるドループ線DLと目標マッチングルートMLとの交点におけるエンジン回転数をマッチング回転数np2’として、無負荷最大回転数演算ブロック110で求められた無負荷最大回転数D210np2を変換し出力する図14参照。さらに、このマッチング回転数np2’から低速オフセット回転数を減算し、その結果得られた値は、マッチング最小回転数D150の候補値として最大値選択部MAX選択255に出力される。低速オフセット回転数を用いる意義とその値の大小については、後述する。また、旋回回転数マッチング最小回転数変換テーブル250は、旋回回転数D101をマッチング最小回転数D150の候補値として変換して最大値選択部255に出力する。旋回回転数D101は、図2の旋回油圧モータ31の旋回回転数速度をレゾルバやロータリーエンコーダなどの回転センサで検出した値である。なお、この旋回回転数マッチング最小回転数変換テーブル250は、図10に示すように旋回回転数D101がゼロのときマッチング最小回転数を大きくし、旋回回転数D101が大きくなるにしたがってマッチング最小回転数を小さくするような特性で旋回回転数D101の変換を行う。最大値選択部255は、これらのマッチング最小回転数のうちの最大値を選択してマッチング最小回転数D150として出力する。ここで、この実施の形態では、負荷が抜けた場合、エンジン回転数は、最大で無負荷最大回転数np2まで増加し、負荷が十分かかった場合、エンジン回転数は、目標マッチング回転数np1まで下がる。この場合、負荷の大小によってエンジン回転数は大きく変動することになる。このエンジン回転数の大きな変動は、油圧ショベル1のオペレータにとって油圧ショベル1の力が出ていないように感じるといった違和感力不足感として、オペレータがとらえるおそれがある。したがって、図14に示すように、低速オフセット回転数を用い、この設定される低速オフセット回転数の大小によって、エンジン回転数の変動幅を変化させて違和感を除くことができる。すなわち、低速オフセット回転数を小さくすれば、エンジン回転数の変動幅は小さくなり、低速オフセット回転数を大きくすれば、エンジン回転数の変動幅は大きくなる。なお、上部旋回体2が旋回をしている状態や作業機3が掘削作業をしている状態などの油圧ショベル1の稼動状態によって、同じエンジン回転数の変動幅であってもオペレータの違和感の感じ方が異なる。上部旋回体2が旋回をしている状態では、作業機3が掘削作業をしている状態よりも多少エンジン回転数が下がってもオペレータは力不足とは感じにくいので、上部旋回体2が旋回している状態では、作業機3が掘削作業をしている状態よりもエンジン回転数がさらに下がるように設定しても問題はない。この場合、エンジン回転数が下がるため燃費は良くなる。なお、旋回に限らず、他のアクチュエータの動作に応じた、同様なエンジン回転数の変動幅設定は可能である。図14に示すトルク線図について補足説明する。図14のグラフ中に示す、HP1~HP5は図28に示す等馬力線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を決定するのが好ましい。このため、エンジン目標出力目標マッチング回転数変換テーブル260では、エンジン目標出力演算ブロック140で求められたエンジン目標出力D240エンジン出力指令値曲線ELの入力を受けて、エンジン目標出力D240エンジン出力指令値曲線ELと目標マッチングルートMLとの交点での目標マッチング回転数を求め、最大値選択部MAX選択261に出力する。しかし、図10に示したマッチング最小回転数演算ブロック150で行われる演算によれば、エンジン回転数の変動幅を小さくする場合、マッチング最小回転数D150が、エンジン目標出力目標マッチング回転数変換テーブル260にて求めたマッチング回転数よりも大きくなる。このため、最大値選択部MAX選択261で、マッチング最小回転数D150とエンジン目標出力D240から求めたマッチング回転数とを比較し、最大値を選択し目標マッチング回転数D260の候補値とすることで、目標マッチング回転数の下限を制限している。図14では、低速オフセット回転数を小とすれば、目標マッチングルートMLを外れるが、目標マッチング点は、MP1ではなくMP1’となって、目標マッチング回転数D260は、np1ではなくnp1’となる。また、無負荷最大回転数演算ブロック110で求めた無負荷最大回転数D210と同様に、目標マッチング回転数D260は、燃料調整ダイヤル28スロットルダイヤルD102の設定値によっても上限が制限される。すなわち、スロットルダイヤル目標マッチング回転数変換テーブル262は、燃料調整ダイヤル28スロットルダイヤルD102の設定値の入力を受けて、燃料調整ダイヤル28スロットルダイヤルD102の設定値に対応するドループ線トルク線図上で燃料調整ダイヤル28スロットルダイヤルD102の設定値に対応するエンジン回転数から引くことができるドループ線と目標マッチングルートMLとの交点のマッチング回転数に変換した目標マッチング回転数D260の候補値を出力し、この出力された目標マッチング回転数D260の候補値と、最大値選択部261で選択された目標マッチング回転数D260の候補値とが最小値選択部MIN選択263で比較され、最小値が選択されて、最終的な目標マッチング回転数D260が出力される。図12はエンジン回転数指令値演算ブロック170の詳細制御フローである。以下、図4に示すトルク線図を参照しながら説明する。図12に示すように、エンジン回転数指令値演算ブロック170は、2つの油圧ポンプ18の斜板角センサ18aが検出した斜板角をもとに求められたポンプ容量D110,D111をもとに、平均部270がポンプ容量D110,D111を平均した平均ポンプ容量を算出し、この平均ポンプ容量の大きさに応じて、エンジン回転数指令選択ブロック272が、エンジン回転数指令値D270無負荷最大回転数np2を求める。すなわち、エンジン回転数指令選択ブロック272は、平均ポンプ容量が、ある設定値閾値よりも大きな場合は、エンジン回転数指令値D270を無負荷最大回転数np2D210に近づけるようにする。つまり、エンジン回転数を増大させる。一方、平均ポンプ容量が、ある設定値よりも小さな場合は、後述するエンジン回転数nm1に近づけるよう、つまりエンジン回転数を減少させる。目標マッチング回転数np1D260と目標マッチング点MP1上のトルクとの交点からドループ線に沿って、エンジントルクをゼロのほうへ下ろした位置に相当するエンジン回転数を無負荷回転数np1aとして、その無負荷回転数np1aに下限回転数オフセット値Δnmを加えた値としてエンジン回転数nm1を求める。なお、目標マッチング回転数D260に対応する無負荷回転数への変換は、マッチング回転数無負荷回転数変換テーブル271によって変換される。したがって、エンジン回転数指令値D270は、ポンプ容量の状態によって、無負荷最小回転数nm1と無負荷最大回転数np2との間で決まる。下限回転数オフセット値Δnmは、あらかじめ設定した値であって、エンジンコントローラ30のメモリに記憶されている。具体的に説明すると、平均ポンプ容量が、ある設定値qcom1より大きな場合には、エンジン回転数指令値D270を無負荷最大回転数np2に近づけるようにし、平均ポンプ容量が、ある設定値qcom1よりも小さい場合には、次式、エンジン回転数指令値D270=目標マッチング回転数np1を無負荷回転数に変換した回転数np1a下限回転数オフセット値Δnmを用いて求める値に近づけるようにする。このようにして求められたエンジン回転数指令値D270によってドループ線を制御することができ、ポンプ容量に余裕がある場合平均ポンプ容量がある設定値より小の場合には、図4に示すように、エンジン回転数を下げるエンジン回転数をnm1無負荷最小回転数にすることが可能になり、燃料消費を抑えて燃費向上が可能になる。設定値qcom1は、あらかじめ設定した値であって、ポンプコントローラ33のメモリに記憶されている。なお、設定値qcom1は、エンジン回転数増加側とエンジン回転数減少側とに分けて2つの異なる設定値を設け、エンジン回転数が変化しない範囲を設けるようにしてもよい。図13はポンプ吸収トルク指令値演算ブロック180の詳細制御フローである。図13に示すように、ポンプ吸収トルク指令値演算ブロック180は、現在のエンジン回転数D107とエンジン目標出力D240と目標マッチング回転数D260とを用いてポンプ吸収トルク指令値D280を求める。ファン馬力演算ブロック280は、エンジン回転数D107を用いてファン馬力を演算する。なお、ファン馬力は、先に述べた計算式を用いて求められるものである。減算部281は、エンジン目標出力演算ブロック140で求められたエンジン目標出力D240から、この求めたファン馬力を減算した出力ポンプ目標吸収馬力を、ポンプ目標マッチング回転数およびトルク演算ブロック282に入力する。この目標マッチング回転数およびトルク演算ブロック282には、さらに、目標マッチング回転数演算ブロック160で求められた目標マッチング回転数D260が入力される。目標マッチング回転数D260は、油圧ポンプ18の目標マッチング回転数ポンプ目標マッチング回転数とされる。そして、ポンプ目標マッチング回転数およびトルク演算ブロック282では、次式に示すように、ポンプ目標マッチングトルク=60×1000×エンジン目標出力-ファン馬力/2π×目標マッチング回転数が演算される。求められたポンプ目標マッチングトルクは、ポンプ吸収トルク演算ブロック283に出力される。ポンプ吸収トルク演算ブロック283は、ポンプ目標マッチング回転数およびトルク演算ブロック282から出力されたポンプ目標マッチングトルクと、回転センサにて検出されたエンジン回転数D107と、目標マッチング回転数D260とが入力される。ポンプ吸収トルク演算ブロック283では、次式に示すようにポンプ吸収トルク=ポンプ目標マッチングトルク-Kp×目標マッチング回転数-エンジン回転数が演算され、演算結果であるポンプ吸収トルク値D280が出力される。ここで、Kpは、制御ゲインである。このような制御フローが実行されることにより、実際のエンジン回転数D107が目標マッチング回転数D260に比して大きい場合には、上記の式からわかるようにポンプ吸収トルク指令値D280は増加し、逆に、実際のエンジン回転数D107が目標マッチング回転数D260に比して小さい場合には、ポンプ吸収トルク指令値D280は減少することになる。一方、エンジンの出力は、エンジン目標出力D240が上限となるように制御しているため、結果的にエンジン回転数は、目標マッチング回転数D260近傍の回転数で安定しエンジン17が駆動することになる。ここで、エンジン回転数指令値演算ブロック170では、エンジン回転数指令値D270の最小値は、上述したように、エンジン回転数指令値=目標マッチング回転数np1を無負荷回転数に変換した回転数np1a下限回転数オフセット値Δnmの演算によって求められる値となり、目標マッチング回転数に対してエンジンのドループ線は、最低でも下限回転数オフセット値Δnmが加味された高い回転数のところで設定される。このため、本実施の形態1によれば、油圧ポンプ18の実際の吸収トルクポンプ実吸収トルクがポンプ吸収トルク指令に対して多少ばらついた場合でも、ドループ線にはかからない範囲でマッチングすることになり、エンジン17のマッチング回転数が多少変動してもエンジン出力をエンジン出力指令値曲線EL上で制限しエンジン目標出力を一定に制御しているため、実際の吸収トルクポンプ実吸収トルクがポンプ吸収トルク指令に対してばらつきを生じてもエンジン出力の変動を小さくすることが可能となる。この結果、燃費のばらつきも小さく抑えることができ、油圧ショベル1の燃費に対する仕様を満たすことができる。燃費に対する仕様とは、例えば、従来の油圧ショベルに比べて、燃費を10低減可能といった仕様である。すなわち、図15に示すように、従来は、ポンプ吸収トルク線PLと目標マッチング回転数との交点を目標マッチング点MP1としていたため、油圧ポンプの逐次の性能のばらつきが大きい場合、それに伴ってドループ線DL上でエンジン出力のばらつきも大きくなる。この結果、燃費のばらつきが大きく、油圧ショベル1の燃費に対する仕様を満たすことが難しい場合があった。これに対し、本実施の形態1によれば、図16に示すように、ポンプ吸収トルク線PLと、等馬力曲線であってエンジン出力の上限を示すエンジン出力指令値曲線ELとの交点を目標マッチング点MP1としており、油圧ポンプの逐次の性能のばらつきが大きい場合でも目標マッチング点MP1は、エンジン出力指令値曲線ELに沿ってばらつくこととなる。このため、エンジン出力のばらつきがほとんど無くなり、結果として、燃費のばらつきもほとんど無くなる。なお、従来のエンジン制御では、図17に示すように、エンジン17がアイドリング回転を行っている状態からエンジン回転数を上昇させて目標マッチング点MP1にエンジン出力が移動する過渡時は、エンジン出力は最大出力トルク線TL、および目標マッチング点MP1を通るドループ線DLを経由していたため、過渡時のエンジン出力は、図17中の囲み部Aで示すように目標エンジン出力よりも過剰に大きなものとなり、燃費が悪化していた。これに対し、本実施の形態1によれば、図18に示すように、ポンプ吸収トルク線PLとエンジン出力指令値曲線ELとの交点を目標マッチング点MP1としているため、過渡時は、図18中の囲み部A ́で示すように、エンジン出力はエンジン出力指令値曲線ELに沿って目標マッチング点MP1に移行する。このため、過渡時であっても目標エンジン出力と同じエンジン出力が得られるため、燃費が向上する。実施の形態2実施の形態1では、上部旋回体2が油圧モータ旋回油圧モータ31で旋回し、作業機3が全て油圧シリンダ14,15,16で駆動するような構造を有した油圧ショベル1に対して本発明を適用した例であったが、本実施の形態2は、上部旋回体5を電動旋回モータで旋回させる構造を有した油圧ショベル1に対して本発明を適用した例である。以下、油圧ショベル1は、ハイブリッド油圧ショベル1として説明する。以下、特に断りがないかぎり、本実施の形態2と実施の形態1は共通する構成をとる。ハイブリッド油圧ショベル1は、実施の形態1に示した油圧ショベル1と比較すると、上部旋回体2、下部走行体4、作業機3といった主要構成は同一である。しかし、ハイブリッド油圧ショベル1は、図19に示すように、エンジン17の出力軸には、油圧ポンプ18とは別に発電機19が機械的に結合されており、エンジン17を駆動することで、油圧ポンプ18および発電機19が駆動する。なお、発電機19は、エンジン17の出力軸に機械的に直結されていてもよいし、エンジン17の出力軸にかけられたベルトやチェーンなどの伝達手段を介して回転駆動するものであってもよい。また、油圧駆動系の油圧モータの旋回油圧モータ31に替えて、電動駆動する旋回モータ24を用い、それに伴い電動駆動系として、キャパシタ22、インバータ23を備える。発電機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によるエンジン制御は、実施の形態1とほぼ同じであり、以下、異なる制御部分について説明する。図20は、このハイブリッド油圧ショベル1のエンジン制御の全体制御フローを示している。図5に示した全体制御フローと異なるところは、旋回油圧モータ31の旋回回転数D101に替えて、旋回モータ24の旋回モータ回転数D301、旋回モータトルクD302を入力パラメータとし、さらに発電機出力D303を入力パラメータとして加えている。旋回モータ24の旋回モータ回転数D301は、無負荷最大回転数演算ブロック110およびエンジン最大出力演算ブロック130、さらにマッチング最小回転数演算ブロック150に入力される。旋回モータトルクD302は、エンジン最大出力演算ブロック130に入力される。また、発電機出力D303は、エンジン最大出力演算ブロック130、マッチング最小回転数演算ブロック150、目標マッチング回転数演算ブロック160、およびポンプ吸収トルク指令値演算ブロック180に入力される。図21は、図6に対応する、実施の形態2における無負荷最大回転数演算ブロック110の制御フローを示している。電気駆動の旋回モータ24を搭載したハイブリッド油圧ショベル1は、旋回の駆動源として油圧を必要としない。このため、油圧ポンプ18から吐出される作動油のうち、旋回の駆動分の油圧ポンプ18からの作動油吐出流量を減らしてもよい。したがって、燃料調整ダイヤル28スロットルダイヤルD102の設定値からスロットルダイヤル無負荷回転数変換テーブル213によって求められる無負荷回転数から、旋回モータ回転数D301から旋回モータ回転数無負荷回転数削減量変換テーブル310によって求められる無負荷回転数削減量を減算部311によって減じ、得られた回転数を無負荷最大回転数D210の候補値としている。なお、最大値選択部MAX選択313は、無負荷回転数削減量が燃料調整ダイヤル28スロットルダイヤルD102の設定値から求められる無負荷最大回転数よりも大きく、最大値選択部313へ入力される値が負の値となって、無負荷回転数リミット値選択ブロック210が出力する無負荷回転数リミット値との比較を行うための最小値選択部MIN選択314を通った結果、無負荷最大回転数が負の値にならないように、最大値選択部313でゼロ値312との最大値選択を行い、最小値選択部314へ負の値が与えられないようにしている。図22は、図8に対応する、実施の形態2におけるエンジン最大出力演算ブロック130の制御フローを示している。このエンジン最大値出力演算ブロック130では、旋回モータ回転数D301および旋回モータトルクD302を入力パラメータとして用いて旋回馬力演算ブロック330が旋回馬力を演算し、エンジン回転数D107を用いてファン馬力演算ブロック335がファン馬力を演算する。旋回馬力とファン馬力は、それぞれ減算部331および加算部336を介して、ポンプ出力リミット値に加算される。また、発電機19の発電機出力D107は、減算部334を介してポンプ出力リミット値に加算される。なお、旋回馬力は、次式、旋回馬力kW=2π÷60×旋回モータ回転数×旋回モータトルク÷1000×係数設定値を演算することで求めることができる。なお、旋回馬力および発電機出力のポンプ出力リミット値への加算は、図22に示すように減算となっている。ハイブリッド油圧ショベル1は、エンジン17という駆動源とは異なる電気という駆動源で電動駆動する旋回モータ24を用いるので、旋回馬力を求めてポンプ出力リミット値から旋回分を減算することが必要である。発電機出力は、発電機19が発電するときは、値の正負の符号を負と定義しており、最小値選択部333で、ゼロ値332との比較が行われ、ポンプ出力リミット値に対して、負の値を減算するから実質的に加算となる。発電機19がエンジン17の出力アシストを行う場合は、発電機出力は、値の正負は正となる。発電機19が発電する時は、発電機出力は、負の値であるため、ゼロ値332との最小値選択を行った後に、ポンプ出力リミットから負の発電機出力を減算し、実質的にポンプ出力リミットに発電機出力を加算することとなる。すなわち、発電機出力D303が負の値となったときのみに加算が行われる。発電機19によるエンジン17のアシストは、エンジン回転数を、ある所定の回転数から高い回転数に上昇させる必要があるときに作業機3の応答性を高めるために行われるが、このときのエンジン出力としてエンジン17のアシスト分の出力を抜いてしまうと、作業機3の応答性の改善に繋がらないため、エンジン17をアシストしたからといってエンジン最大出力を減じることは行わない。つまり、正の発電機出力が最小値選択部333に入力されても、ゼロ値332との最小値選択により、最小値選択部333からはゼロが出力され。ポンプ出力リミットから減算が行われることなく、エンジン最大出力D230が求められる。図23は、図10に対応する、実施の形態2におけるマッチング最小回転数演算ブロック150の制御フローを示している。発電機19は、最大に出力できるトルクの限界値発電機最大トルクが設定されているため、ある程度大きな出力で発電を行うには、エンジン回転数を上昇させる必要がある。このため、随時に要求される発電機出力の大きさから、最低限上昇させなければならないエンジン回転数を、発電機出力マッチング回転数変換テーブル351を用いて求め、この求められたエンジン回転数をマッチング最小回転数D150の候補値として最大値選択部MAX選択352に出力する。なお、発電機出力D303の後段に配置されるゲート350は、発電機出力D303が負であるので、発電機出力D303を正の値に変換するために設けられている。図24は、図11に対応する、実施の形態2における目標マッチング回転数演算ブロック160の制御フローを示している。まず、目標マッチング回転数D260は、基本的に、エンジン目標出力と目標マッチングルートMLとの交点における回転数であるが、エンジン最大出力D230は、図22に示すようにポンプ出力リミット値にファン馬力と発電機出力とを加算した値であり、このエンジン最大出力D230を用いて図9に示すようにエンジン目標出力D240が決定される。さらに、図24に示すように目標マッチング回転数演算ブロック160にエンジン目標出力D240が入力されて、目標マッチング回転数D260が決定される。また、発電機19が要求される発電機出力D303によって目標マッチング回転数D260の値は変化する。ここで、発電機19は、小さな発電トルクで発電を行うと効率が悪い。このため、発電機19が、発電を行う場合、予め設定した最小発電トルク以上で発電を行うように制御する。この結果、発電機19が発電しない状態発電オフから発電する状態発電オンに切り替わる際に、発電のオンとオフが最小発電トルクを境として切り替わるため発電機出力は不連続に変化する。つまり、エンジン目標出力D240と目標マッチングルートMLとの交点でマッチング点を定めることから、この発電機出力D303の不連続な変化に応じて、発電オン/オフの切り替えで目標マッチング回転数D260が大きく変動してしまう。このため、目標マッチング回転数演算ブロック160は、最小発電出力演算ブロック362がエンジン回転数D107を用いて、次式、最小発電出力kW=2π÷60×エンジン回転数×最小発電トルク値が負の設定値÷1000を演算し最小発電出力を求めて、要求される発電機出力が求められた最小発電出力よりも小さい場合、最小発電出力に対して足りない出力分をエンジン目標出力に加算部365によって加算し、この加算したエンジン目標出力を用いて、エンジン目標出力目標マッチング回転数変換テーブル260によって目標マッチング回転数の候補値として演算し、発電オン/オフに伴う回転数変動を防止する。なお、発電機出力D303の後段の最小値選択部MIN選択361は、要求される発電機出力がない場合エンジン17の出力アシストを行う場合などにゼロ出力を行うためにゼロ値360との比較を行う。したがって、エンジン目標出力D240に何も加算しないようになる。また、最大値選択部MAX選択364は、要求される発電機出力が最小発電出力以上である場合に最小発電出力に不足はないことから、エンジン目標出力D240に加算は不要となる。よって、最大値選択部364に負の値が入力され、ゼロ値363との比較で最大値であるゼロが選択されて、最大値選択部364はゼロ出力する。図25は、図13に対応する、実施の形態2におけるポンプ吸収トルク指令値演算ブロック180の制御フローを示している。この場合、エンジン目標出力D240からファン馬力のみでなく、発電機出力D303を減算した出力ポンプ目標吸収馬力を、ポンプ目標マッチング回転数およびトルク演算ブロック282に出力する。なお、要求される発電機出力の値の正負は、負であるから、最小値選択部MIN選択381でゼロ値380との比較で最小値が選択されて、選択された値が演算部382によってエンジン目標出力D240に加算されるということは、実質、エンジン目標出力D240から発電機出力D303を減算することになる。ここで、上述した目標マッチング回転数演算ブロック160によって演算される目標マッチング回転数D260は、図26に示すように、発電オフの場合は、発電オフの場合におけるエンジン目標出力D240を示すエンジン出力指令値曲線ELaと目標マッチングルートMLとの交点が目標マッチング点Maとなり、そのとき目標マッチング回転数npaとなる。また、最小発電出力Pmの発電が行われる場合は、最小発電出力Pmを満たすためのエンジン目標出力D240を示すエンジン出力指令値曲線ELbとなり、エンジン出力指令値曲線ELbと目標マッチングルートMLとの交点が目標マッチング点Mbとなり、そのとき目標マッチング回転数npa’となる。図24に示したエンジン制御を行わなければ、最小発電出力Pm未満の発電では実際の発電出力が小さいため、発電のオン/オフによって目標マッチング点Ma,Mb間を頻繁に移行し、その際、目標マッチング回転数も頻繁に変化する。この実施の形態2では、最小発電出力Pm未満の発電である場合、発電オフの際は予め目標マッチング回転数をnpa’にしているため、発電のオン/オフによって目標マッチング回転数が変動することがない。そして、発電オフ時の目標マッチング点は、エンジン出力指令値曲線ELaと目標マッチング回転数npa’との交点Ma’となる。したがって、図24に示したエンジン制御を行わなければ、発電機出力の増大とともに、マッチング点がMa→Mb→Mcのように移行してしまうが、この実施の形態2では、発電機出力の増大とともに、マッチング点はMa’→Mb→Mcのように移行し、発電のオンオフが切り替わる程度の発電機出力の場合に目標マッチング回転数の変動はなく、ハイブリッド油圧ショベル1のオペレータが違和感を感じることがなくなる。"