(57)【要約】  ハイブリッド型作業機械において、制御部（６０）は、エンジン（５０）の目標回転数と実回転数との偏差に基づいてエンジンの出力上限値を補正し、補正したエンジンの出力上限値に基づいて電動発電機（５２）と油圧駆動部（５４）と電気駆動部（５６）との出力値を決定する。あるいは、制御部（６０）は、エンジン（５０）の目標回転数と実回転数との偏差に基づいて電動発電機（５２）の出力下限値を補正し、補正した電動発電機（１２）の出力下限値に基づいて電動発電機（５２）と油圧駆動部（５４）と電気駆動部（５６）との出力値を決定する。
2010150382.tif 000002
【特許請求の範囲】
【請求項１】
エンジンの出力を油圧に変換し油圧駆動部に供給する油圧発生機と、
前記エンジンに接続され、電動機及び発電機の両方として機能する電動発電機と、
該電動発電機に電力を供給して電動機として機能させる蓄電器と、
該蓄電器からの電力により駆動され、且つ回生電力を発生して前記蓄電器に供給する電気駆動部と、
前記電動発電機の動作を制御する制御部と
を有するハイブリッド型作業機械であって、
前記制御部は、前記エンジンの目標回転数と実回転数との偏差に基づいて前記エンジンの出力上限値を補正し、補正した前記エンジンの出力上限値に基づいて前記電動発電機と前記油圧駆動部と前記電気駆動部との出力値を決定することを特徴とするハイブリッド型作業機械。
【請求項２】
請求項１記載のハイブリッド型作業機械であって、
前記制御部は、前記エンジンの目標回転数と実回転数との偏差に基づいて前記電動発電機の出力下限値を補正し、補正した前記電動発電機の出力下限値に基づいて前記電動発電機と前記油圧駆動部と前記電気駆動部との出力値を決定することを特徴とするハイブリッド型作業機械。
【請求項３】
請求項２記載のハイブリッド型作業機械であって、
前記制御部は、前記蓄電器の放電能力を考慮して前記電動発電機の出力下限値を補正することを特徴とするハイブリッド型作業機械。
【請求項４】
請求項１乃至３のうちいずれか一項記載のハイブリッド型作業機械であって、
前記制御部は、前記蓄電器の放電能力に基づいて前記油圧駆動部の出力を決定することを特徴とするハイブリッド型作業機械。
【請求項５】
エンジンの出力を油圧に変換し油圧駆動部に供給する油圧発生機と、
前記エンジンに接続され、電動機及び発電機の両方として機能する電動発電機と、
該電動発電機に電力を供給して電動機として機能させる蓄電器と、
該蓄電器からの電力により駆動され、且つ回生電力を発生して前記蓄電器に供給する電気駆動部と、
前記電動発電機の動作を制御する制御部と
を有するハイブリッド型作業機械であって、
前記制御部は、前記エンジンの目標回転数と実回転数との偏差に基づいて前記電動発電機の出力下限値を補正し、補正した前記電動発電機の出力下限値に基づいて前記電動発電機と前記油圧駆動部と前記電気駆動部との出力値を決定することを特徴とするハイブリッド型作業機械。
【請求項６】
請求項５記載のハイブリッド型作業機械であって、
前記制御部は、前記蓄電器の放電能力を考慮して前記電動発電機の出力下限値を補正することを特徴とするハイブリッド型作業機械。
【請求項７】
請求項５又は６記載のハイブリッド型作業機械であって、
前記制御部は、前記蓄電器の放電能力を考慮して前記油圧駆動部の出力を決定することを特徴とするハイブリッド型作業機械。
【請求項８】
エンジンにより油圧発生機を駆動して作業を行う作業機械の制御方法であって、
該内燃機関の出力の増加率を所定値に設定し、
該増加率の該所定値から求められる前記内燃機関の出力上限値と、前記油圧発生機に要求される油圧出力から求められた要求動力とを比較し、
前記要求動力が前記出力上限値を超えたときに、前記エンジンの出力が前記出力上限値以下になるように制御する
ことを特徴とする作業機械の制御方法。
【請求項９】
請求項８記載の作業機械の制御方法であって、
前記要求動力が前記出力上限値を越えたとき、越えた部分の出力を電動機の出力で補うことを特徴とする作業機械の制御方法。
【請求項１０】
請求項９記載の作業機械の制御方法であって、
前記電動機を蓄電装置からの電力と作業用の電動発電機からの回生電力とにより駆動することを特徴とする作業機械の制御方法。
【請求項１１】
請求項８記載の作業機械の制御方法であって、
前記エンジンの出力制御を所定の時間毎に行い、
前記エンジンの出力上限値を、前回のエンジンの出力に所定の割合の値を加えて算出することと特徴とする作業機械の制御方法。
【請求項１２】
請求項１１記載の作業機械の制御方法であって、
前記出力上限値を求める際に、さらに前記エンジンの回転数も考慮することを特徴とする作業機械の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は作業機械に係り、特に２つの動力源を併用して効率的に作業を行うハイブリッド型作業機械に関する。
【背景技術】
【０００２】
内燃機関の動力と電動機の動力を併用して効率的に動作するハイブリッド型の作業機械が開発され用いられるようになっている。ハイブリッド型の作業機械として、いわゆるパラレル方式の駆動形態をとるものが知られている。【０００３】
パラレル方式の駆動形態では、油圧ポンプと、発電機作用と電動機作用を行なう動力機とが、共通の動力源としての内燃機関（エンジン）にパラレルに接続される。油圧ポンプによって油圧アクチュエータが駆動されるとともに、動力機の発電機作用によって蓄電装置に充電が行われる。この蓄電装置からの電力により動力機を電動機として動作させてエンジンをアシストする。なお、動力機としては、一台で発電機作用と電動機作用の双方を行なう兼用機（電動発電機又は発電電動機と称する）を用いる場合があるが、別々の発電機と電動機を併用することもできる。【０００４】
上述のハイブリッド型作業機械において、油圧ポンプを駆動するための動力として、エンジンの出力とエンジンをアシストする電動発電機の出力とがある。したがって、エンジンの状態や電動発電機を駆動するための蓄電装置の状態を考慮しながらエンジンの出力と電動発電機の出力とを適切に配分する必要がある。【０００５】
そこで、ハイブリッド型ショベルにおいて、ポンプ要求パワーを求め、このポンプ要求パワーに応じて、発電電動機がエンジンアシストのために出すべき発電電動機パワーの配分を決定するとともに、エンジンの目標回転数と実際回転数の偏差が解消されるようにパワーの配分を補正することが提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２９０６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の特許文献１に開示されたパワーの配分では、補正後の発電電動機の出力限界を越えてポンプが出力する状態となるおそれがあり、パワー配分を補正したがために発電電動機に能力以上の出力が要求されて発電電動機が過負荷状態となるおそれがある。【０００８】
また、蓄電装置の蓄電量を考慮せずにパワー配分を補正しているため、発電電動機のアシスト運転によりエンジンの回転数を増大して目標回転数まで上げようとしても、アシスト運転に使用する電力が蓄電装置に蓄積されておらず、エンジンを十分にアシストできずにエンジンの回転数を迅速に目標回転数まで復帰させることができないおそれがある。【０００９】
本発明は上述の問題に鑑みなされたものであり、ハイブリッド型作業設機械において、エンジンの出力と電動発電機の出力を適切に配分することを目的とする。
【課題を解決するための手段】
【００１０】
上述の目的を達成するために、本発明の一実施態様によれば、エンジンの出力を油圧に変換し油圧駆動部に供給する油圧発生機と、該エンジンに接続され、電動機及び発電機の両方として機能する電動発電機と、該電動発電機に電力を供給して電動機として機能させる蓄電器と、該蓄電器からの電力により駆動され、且つ回生電力を発生して該蓄電器に供給する電気駆動部と、該電動発電機の動作を制御する制御部とを有するハイブリッド型作業機械であって、該制御部は、該エンジンの目標回転数と実回転数との偏差に基づいて該エンジンの出力上限値を補正し、補正した該エンジンの出力上限値に基づいて該電動発電機と該油圧駆動部と該電気駆動部との出力値を決定することを特徴とするハイブリッド型作業機械が提供される。【００１１】
上述のハイブリッド型作業機械において、該制御部は、該エンジンの目標回転数と実回転数との偏差に基づいて該電動発電機の出力下限値を補正し、補正した該電動発電機の出力下限値に基づいて該電動発電機と該油圧駆動部と該電気駆動部との出力値を決定することとしてもよい。また、該制御部は、該蓄電器の放電能力を考慮して該電動発電機の出力下限値を補正することとしてもよい。さらに、該制御部は、該蓄電器の放電能力に基づいて該油圧駆動部の出力を決定することとしてもよい。【００１２】
また、本発明によれば、  エンジンの出力を油圧に変換し油圧駆動部に供給する油圧発生機と、該エンジンに接続され、電動機及び発電機の両方として機能する電動発電機と、該電動発電機に電力を供給して電動機として機能させる蓄電器と、該蓄電器からの電力により駆動され、且つ回生電力を発生して該蓄電器に供給する電気駆動部と、該電動発電機の動作を制御する制御部とを有するハイブリッド型作業機械であって、該制御部は、該エンジンの目標回転数と実回転数との偏差に基づいて該電動発電機の出力下限値を補正し、補正した該電動発電機の出力下限値に基づいて該電動発電機と該油圧駆動部と該電気駆動部との出力値を決定することを特徴とするハイブリッド型作業機械が提供される。【００１３】
上述のハイブリッド型作業機械において、該制御部は、該蓄電器の放電能力を考慮して該電動発電機の出力下限値を補正することとしてもよい。また、該制御部は、該蓄電器の放電能力を考慮して該油圧駆動部の出力を決定することとしてもよい。【００１４】
また、本発明の他の実施態様によれば、エンジンにより油圧発生機を駆動して作業を行う作業機械の制御方法であって、該内燃機関の出力の増加率を所定値に設定し、該増加率の該所定値から求められる該内燃機関の出力上限値と、該油圧発生機に要求される油圧出力から求められた要求動力とを比較し、該要求動力が該出力上限値を超えたときに、該エンジンの出力が該出力上限値以下になるように制御することを特徴とする作業機械の制御方法が提供される。【００１５】
上述の作業機械の制御方法において、該要求動力が該出力上限値を越えたとき、越えた部分の出力を電動機の出力で補うことが好ましい。該電動機を蓄電装置からの電力と作業用の電動発電機からの回生電力とにより駆動することとしてもよい。また、該エンジンの出力制御を所定の時間毎に行い、該エンジンの出力上限値を、前回のエンジンの出力に所定の割合の値を加えて算出することとしてもよい。さらに、該出力上限値を求める際に、さらに該エンジンの回転数も考慮することとしてもよい。
【発明の効果】
【００１６】
上述の発明によれば、ハイブリッド型作業機械において、エンジンの出力と電動発電機の出力を適切に配分することができる。これにより、エンジンへの過大な出力要求や、エンジンの過負荷によるエンストを回避することができる。また、エンジンの回転数を迅速に目標回転まで上げることができる。
【図面の簡単な説明】
【００１７】
【図１】ハイブリッド型パワーショベルの側面図である。
【図２】図１に示すパワーショベルの駆動系の構成を表すブロック図である。
【図３】図１に示すパワーショベルの動力系をモデル化して示す図である。
【図４】電力（動力）の移動の方向性を出力極性としてとらえた極性を示す図である。
【図５】本発明の第１実施形態による制御を行うためのコントローラに含まれる制御部の機能ブロック図である。
【図６】エンジン出力上限値Ｐｅｎｇｍａｘの変化とエンジン実出力Ｐｅｎｇａｃｔの変化とエンジン実回転数Ｎｅｎｇａｃｔを対応させながら示すグラフである。
【図７】エンジン出力上限値Ｐｅｎｇｍａｘ２の算出方法を示す図である。
【図８】エンジン出力上限値Ｐｅｎｇｍａｘ１（ｔ１）と、エンジン実出力Ｐｅｎｇａｃｔ（ｔ１）と、エンジン出力上限値Ｐｅｎｇｍａｘ２（ｔ２）の関係を示すグラフである。
【図９】本発明の第１実施形態による制御を行うためのコントローラに含まれる制御部の変形例を示す機能ブロック図である。
【図１０】本発明の第２実施形態による制御を行うためのコントローラに含まれる制御部の機能ブロック図である。
【図１１】エンジン出力上限値Ｐｅｎｇｍａｘの変化とアシストモータ出力下限値Ｐａｓｍｍｉｎの変化とアシストモータ出力指令Ｐａｓｍｒｅｆの変化を対応させながら示すグラフである。
【図１２】アシストモータ出力下限値Ｐａｓｍｍｉｎ２の算出方法を示す図である。
【図１３】アシストモータ出力下限値Ｐａｓｍｍｉｎ１（ｔ２）と、アシストモータ出力指令Ｐａｓｍｒｅｆ（ｔ１）と、アシストモータ出力下限値Ｐａｓｍｍｉｎ２（ｔ２）の関係を示すグラフである。
【図１４】本発明の第３実施形態による制御を行うためのコントローラに含まれる制御部の機能ブロック図である。
【図１５】図１４に示す駆動制御部において行われる処理のフローチャートである。
【図１６】図１５に示すステップＳ８における処理のフローチャートである。
【図１７】電気負荷出力上限値Ｐｅｌｃｍａｘの算出モデルを示す図である。
【図１８】電気負荷出力下限値Ｐｅｌｃｍｉｎｅの算出モデルを示す図である。
【図１９】図１５に示すステップＳ９の処理のフローチャートである。
【図２０】油圧負荷出力上限値Ｐｈｙｄｍａｘの算出モデルを示す図である。
【図２１】図１５に示すステップＳ１０の処理のフローチャートである。
【図２２】バッテリ制御出力上限値Ｐｂａｔｍａｘ２の算出モデルを示す図である。
【図２３】バッテリ出力Ｐｂａｔｏｕｔの値をバッテリ充電率（ＳＯＣ）とバッテリ出力との関係を示すグラフ中に示す図である。
【図２４】バッテリ制御出力下限値Ｐｂａｔｍｉｎ２の算出モデルを示す図である。
【図２５】バッテリ出力Ｐｂａｔｏｕｔの値をバッテリ充電率（ＳＯＣ）とバッテリ出力との関係を示すグラフ中に示す図である。
【図２６】バッテリ出力Ｐｂａｔｏｕｔの値をバッテリ充電率（ＳＯＣ）とバッテリ出力との関係を示すグラフ中に示す図である。
【図２７】図５に示すステップＳ７の処理のフローチャートである。
【図２８】アシストモータ出力指令Ｐａｓｍｒｅｆの算出モデルを示す図である。
【図２９】本発明の第４実施形態による制御を行うためのコントローラに含まれる制御部の機能ブロック図である。
【図３０】油圧負荷実出力Ｐｈｙｄｏｕｔを決定する処理のフローチャートである。
【図３１】図３０に示す処理を単位時間毎に繰り返し行った際のエンジン出力の推移の一例を示すグラフである。
【発明を実施するための形態】
【００１８】
次に、本発明の実施形態について図面を参照しながら説明する。
【００１９】
まず、本発明が適用されるハイブリッド型作業機械の一例としてハイブリッド型パワーショベルについて説明する。
【００２０】
図１はハイブリッド型パワーショベルの側面図である。パワーショベルの下部走行体１には、旋回機構２を介して上部旋回体３が搭載されている。上部旋回体３からブーム４が延在し、ブーム４の先端にアーム５が接続される。さらに、アーム５の先端にバケット６が接続される。ブーム４、アーム５及びバケット６は、ブームシリンダ７、アームシリンダ８、及びバケットシリンダ９によりそれぞれ油圧駆動される。また、上部旋回体３には、キャビン１０及び動力源（図示せず）が搭載される。
【００２１】
図２は、図１に示すパワーショベルの駆動系の構成を表すブロック図である。図２において、機械的動力系は二重線、高圧油圧ラインは実線、パイロットラインは破線、電気駆動・制御系は一点鎖線でそれぞれ示されている。
【００２２】
機械式駆動部としてのエンジン１１と、アシスト駆動部としての電動発電機１２は、ともに増力機としての減速機１３の入力軸に接続されている。減速機１３の出力軸には、メインポンプ１４及びパイロットポンプ１５が接続されている。メインポンプ１４には、高圧油圧ライン１６を介してコントロールバルブ１７が接続されている。
【００２３】
コントロールバルブ１７は、油圧系の制御を行う制御装置である。コントロールバルブ１７には、下部走行体１用の油圧モータ１Ａ（右用）及び１Ｂ（左用）、ブームシリンダ７、アームシリンダ８、及びバケットシリンダ９が高圧油圧ラインを介して接続される。
【００２４】
電動発電機１２には、インバータ１８を介して蓄電器としてのバッテリ１９が接続されている。バッテリ１９には、インバータ２０を介して旋回用電動機２１が接続されている。旋回用電動機２１はパワーショベルにおける電気負荷である。旋回用電動機２１の回転軸２１Ａには、レゾルバ２２、メカニカルブレーキ２３、及び旋回減速機２４が接続される。パイロットポンプ１５には、パイロットライン２５を介して操作装置２６が接続される。操作装置２６には、油圧ライン２７及び２８を介して、コントロールバルブ１７及びレバー操作検出部としての圧力センサ２９がそれぞれ接続される。圧力センサ２９には、電気系の駆動制御を行うコントローラ３０が接続されている。
【００２５】
以上の構成を有するパワーショベルは、エンジン１１、電動発電機１２、及び旋回用電動機２１を動力源とするハイブリッド型の作業機械である。これらの動力源は、図１に示す上部旋回体３に搭載される。以下、各部について説明する。
【００２６】
エンジン１１は、例えば、ディーゼルエンジンで構成される内燃機関であり、その出力軸は減速機１３の一方の入力軸に接続される。エンジン１１は、作業機械の運転中は常時運転される。
【００２７】
電動発電機１２は、力行運転及び回生運転の双方が可能な電動機であればよい。ここでは、電動発電機１２として、インバータ２０によって交流駆動される電動発電機を示す。この電動発電機１２は、例えば、磁石がロータ内部に埋め込まれたＩＰＭ(Interior Permanent Magnet)モータで構成することができる。電動発電機１２の回転軸は減速機１３の他方の入力軸に接続される。
【００２８】
減速機１３は、２つの入力軸と１つの出力軸を有する。２つの入力軸には、エンジン１１の駆動軸と電動発電機１２の駆動軸がそれぞれ接続される。また、出力軸にはメインポンプ１４の駆動軸が接続される。エンジン１１の負荷が大きい場合には、電動発電機１２が力行運転を行い、電動発電機１２の駆動力が減速機１３の出力軸を経てメインポンプ１４に伝達される。これによりエンジン１１の駆動がアシストされる。一方、エンジン１１の負荷が小さい場合は、エンジン１１の駆動力が減速機１３を経て電動発電機１２に伝達されることにより、電動発電機１２が回生運転による発電を行う。電動発電機１２の力行運転と回生運転の切り替えは、コントローラ３０により、エンジン１１の負荷等に応じて行われる。
【００２９】
メインポンプ１４は、コントロールバルブ１７に供給するための油圧を発生する油圧ポンプである。メインポンプ１４で発生した油圧は、コントロールバルブ１７を介して油圧負荷である油圧モータ１Ａ、１Ｂ、ブームシリンダ７、アームシリンダ８、及びバケットシリンダ９の各々を駆動するために供給される。パイロットポンプ１５は、油圧操作系に必要なパイロット圧を発生するポンプである。
【００３０】
コントロールバルブ１７は、高圧油圧ラインを介して接続される下部走行体１用の油圧モータ１Ａ、１Ｂ、ブームシリンダ７、アームシリンダ８、及びバケットシリンダ９の各々に供給する油圧を運転者の操作入力に応じて制御することにより、これらを油圧駆動制御する油圧制御装置である。
【００３１】
インバータ１８は、上述の如く電動発電機１２と蓄電部１９との間に設けられ、コントローラ３０からの指令に基づき、電動発電機１２の運転制御を行う。これにより、インバータ１８が電動発電機１２の力行を運転制御している際には、必要な電力をバッテリ１９から電動発電機１２に供給する。また、電動発電機１２の回生を運転制御している際には、電動発電機１２により発電された電力を蓄電部１９に充電する。
【００３２】
バッテリ（蓄電器）を含む蓄電部１９は、インバータ１８とインバータ２０との間に配設されている。これにより、電動発電機１２と旋回用電動機２１の少なくともどちらか一方が力行運転を行っている際には、力行運転に必要な電力を供給するとともに、また、少なくともどちらか一方が回生運転を行っている際には、回生運転によって発生した回生電力を電気エネルギーとして蓄積するための電源である。
【００３３】
インバータ２０は、上述の如く旋回用電動機２１と蓄電部１９との間に設けられ、コントローラ３０からの指令に基づき、旋回用電動機２１に対して運転制御を行う。これにより、旋回用電動機２１が力行運転している際には、必要な電力が蓄電部１９から旋回用電動機２１に供給される。また、旋回用電動機２１が回生運転をしている際には、旋回用電動機２１により発電された電力が蓄電部１９に充電される。
【００３４】
旋回用電動機２１は、力行運転及び回生運転の双方が可能な電動機であればよく、上部旋回体３の旋回機構２を駆動するために設けられている。力行運転の際には、旋回用電動機２１の回転駆動力の回転力が減速機２４にて増幅され、上部旋回体３は加減速制御されながら回転運動を行う。また、上部旋回体３の慣性回転により、減速機２４にて回転数が増大されて旋回用電動機２１に伝達され、回生電力を発生させることができる。ここでは、旋回用電動機２１として、ＰＷＭ（Pulse Width Modulation）制御信号によりインバータ２０によって交流駆動される電動機を示す。この旋回用電動機２１は、例えば、磁石埋込型のＩＰＭモータで構成することができる。これにより、より大きな誘導起電力を発生させることができるので、回生時に旋回用電動機２１にて発電される電力を増大させることができる。
【００３５】
なお、蓄電部１９の充放電制御は、蓄電部１９におけるバッテリの充電状態、電動発電機１２の運転状態（力行運転又は回生運転）、旋回用電動機２１の運転状態（力行運転又は回生運転）に基づき、コントローラ３０によって行われる。
【００３６】
レゾルバ２２は、旋回用電動機２１の回転軸２１Ａの回転位置及び回転角度を検出するセンサである。レゾルバ２２は、旋回用電動機２１と機械的に連結することで旋回用電動機２１の回転前の回転軸２１Ａの回転位置と、左回転又は右回転した後の回転位置との差を検出することにより、回転軸２１Ａの回転角度及び回転方向を検出する。旋回用電動機２１の回転軸２１Ａの回転角度を検出することにより、旋回機構２の回転角度及び回転方向が導出される。
【００３７】
メカニカルブレーキ２３は、機械的な制動力を発生させる制動装置であり、旋回用電動機２１の回転軸２１Ａを機械的に停止させる。このメカニカルブレーキ２３は、電磁式スイッチにより制動／解除が切り替えられる。この切り替えは、コントローラ３０によって行われる。
【００３８】
旋回減速機２４は、旋回用電動機２１の回転軸２１Ａの回転速度を減速して旋回機構２に機械的に伝達する減速機である。これにより、力行運転の際には、旋回用電動機２１の回転力を増力させ、より大きな回転力として旋回体へ伝達することができる。これとは逆に、回生運転の際には、旋回体で発生した回転数を増加させ、より多くの回転動作を旋回用電動機２１に発生させることができる。
【００３９】
旋回機構２は、旋回用電動機２１のメカニカルブレーキ２３が解除された状態で旋回可能となり、これにより、上部旋回体３が左方向又は右方向に旋回される。
【００４０】
操作装置２６は、パワーショベルの運転者が、旋回用電動機２１、下部走行体１、ブーム４、アーム５、及びバケット６を操作するための入力装置であり、レバー２６Ａ及び２６Ｂとペダル２６Ｃを含む。レバー２６Ａは、旋回用電動機２１及びアーム５を操作するためのレバーであり、上部旋回体３の運転席近傍に設けられる。レバー２６Ｂは、ブーム４及びバケット６を操作するためのレバーであり、運転席近傍に設けられる。また、ペダル２６Ｃは、下部走行体１を操作するための一対のペダルであり、運転席の足下に設けられる。
【００４１】
操作装置２６は、パイロットライン２５を通じて供給される油圧（１次側の油圧）を運転者の操作量に応じた油圧（２次側の油圧）に変換して出力する。操作装置２６から出力される２次側の油圧は、油圧ライン２７を通じてコントロールバルブ１７に供給されるとともに、圧力センサ２９によって検出される。
【００４２】
レバー２６Ａ及び２６Ｂとペダル２６Ｃの各々が操作されると、油圧ライン２７を通じてコントロールバルブ１７が駆動され、これにより、油圧モータ１Ａ、１Ｂ、ブームシリンダ７、アームシリンダ８、及びバケットシリンダ９内の油圧が制御されることによって、下部走行体１、ブーム４、アーム５、及びバケット６が駆動される。
【００４３】
なお、油圧ライン２７は、油圧モータ１Ａ及び１Ｂを操作するために１本ずつ（すなわち合計２本）、ブームシリンダ７、アームシリンダ８、及びバケットシリンダ９をそれぞれ操作するために２本ずつ（すなわち合計６本）設けられるため、実際には全部で８本あるが、説明の便宜上、１本にまとめて表す。
【００４４】
レバー操作検出部としての圧力センサ２９では、レバー２６Ａの操作による、油圧ライン２８内の油圧の変化が圧力センサ２９で検出される。圧力センサ２９は、油圧ライン２８内の油圧を表す電気信号を出力する。この電気信号は、コントローラ３０に入力される。これにより、レバー２６Ａの操作量を的確に把握することができる。また、本実施形態では、レバー操作検出部として圧力センサを用いたが、レバー２６Ａの操作量をそのまま電気信号で読み取るセンサを用いてもよい。
【００４５】
コントローラ３０は、パワーショベルの駆動制御を行う制御装置であり、速度指令変換部３１、駆動制御装置３２、及び旋回駆動制御装置４０を含む。コントローラ３０は、ＣＰＵ（Central Processing Unit）及び内部メモリを含む演算処理装置で構成される。速度指令変換部３１、駆動制御装置３２、及び旋回駆動制御装置４０は、コントローラ３０のＣＰＵが内部メモリに格納された駆動制御用のプログラムを実行することにより実現される。
【００４６】
速度指令変換部３１は、圧力センサ２９から入力される信号を速度指令に変換する演算処理部である。これにより、レバー２６Ａの操作量は、旋回用電動機２１を回転駆動させるための速度指令（rad/s）に変換される。この速度指令は、駆動制御装置３２及び旋回駆動制御装置４０に入力される。
【００４７】
次に、本発明によるハイブリッド型作業機械の駆動制御について、上述のパワーショベルの駆動制御を例にとって説明する。
【００４８】
図３は上述のパワーショベルの動力系をモデル化して示す図である。図３のモデル図において、エンジン５０は上述のエンジン１１に相当し、アシストモータ５２は電動機及び発電機の両方の機能を有する電動発電機１２に相当する。油圧負荷５４は油圧により駆動される構成部品に相当し、上述のブームシリンダ７、アームシリンダ８、パケットシリンダ９、油圧モータ１Ａ，１Ｂを含む。ただし、油圧を発生させるための負荷として考えた場合、油圧負荷５４は、油圧を発生させる油圧ポンプとしてのメインポンプ１４に相当する。電気負荷５６は電動モータや電動アクチュエータ等のように電力で駆動される構成部品に相当し、上述の旋回用電動機２１を含む。バッテリ５８は、上述の蓄電部１９に設けられている蓄電器である。本実施形態ではバッテリ５８としてキャパシタ(電気二重層コンデンサ)を用いることとする。
【００４９】
油圧負荷５４には、油圧を発生する油圧ポンプ（上述のメインポンプ１４）で発生した油圧が供給される。エンジン５０はこの油圧ポンプに動力を供給して駆動する。すなわち、エンジン５０が発生した動力は油圧ポンプにより油圧に変換されて油圧負荷５４に供給される。
【００５０】
一方、油圧ポンプにはアシストモータ５２も接続されており、アシストモータ５２で発生した動力を油圧ポンプに供給して駆動することができる。すなわち、アシストモータ５２に供給された電力はアシストモータ５２により動力に変換され、その動力が油圧モータにより油圧に変換されて油圧負荷５４に供給される。この際、アシストモータ５２は電動機として動作する。
【００５１】
電気負荷５６には蓄電部１９のバッテリ５８から電力が供給され駆動される。電気負荷５６が駆動されている場合を力行運転と称する。電気負荷５６は、例えば電動機兼発電機のように回生電力を発生することができるもので、発生した回生電力は蓄電部に供給されてバッテリ５８に蓄積されるか、あるいはアシストモータ５２に供給されてアシストモータ５２を駆動する電力となる。
【００５２】
バッテリ５８は、上述のように電気負荷５６からの回生電力により充電される。また、アシストモータ５２がエンジン５０からの動力を受けて発電機として機能した場合、アシストモータ５２が発生した電力を蓄電部１９に供給してバッテリ５８を充電することもできる。アシストモータ５２が発生した電力は、電気負荷５６に直接供給して電気負荷５６を駆動することもできる。
【００５３】
以上のような構成において、電力に関連する部分を見ると、電力（動力）の移動に方向性があることがわかる。この方向性を出力極性としてとらえると、図４に示すうような極性となる。
【００５４】
アシストモータ５２に関して見ると、エンジン５０をアシストして油圧を発生させて動力を油圧負荷５４に供給する場合は、電力を動力として出力することとなる。このときのアシストモータ５２の出力極性を（＋）とする。一方、エンジン５０の駆動力でアシストモータ５２を駆動して発電する場合は、アシストモータ５２に動力が入力されることとなる。したがって、このときのアシストモータ５２の出力極性は（−）となる。
【００５５】
蓄電部１９のバッテリ５８に関して見ると、放電して電気負荷５６又はアシストモータ５２を駆動する場合は、出力極性を（＋）とする。一方、電気負荷５６から回生電力、あるいはアシストモータ５２の発電による電力が供給されて充電される場合がある。このときのバッテリ５８の出力極性は（−）となる。
【００５６】
電気負荷５６に関して見ると、電力が供給されて駆動されている場合、すなわち力行運転している場合の出力極性を（＋）とすると、回生電力を発生しているときの出力極性は（−）となる。
【００５７】
以上のように、ハイブリッド型パワーショベルにおいては、電力に関連する構成部品である、アシストモータ５２及び電気負荷５６の運転状態及び充電部１９のバッテリ５８の充電状態を考慮してそれらの出力極性を適宜調整することで、運転条件を決定する必要がある。特に、バッテリ５８が常時適度に充電されるような状態になるように、アシストモータ５２の出力極性を調整しながら、油圧負荷５４への出力と電気負荷５６への出力の配分を制御することが重要である。
【００５８】
ここで、制御に関する入力は以下の７つの変数となる。
【００５９】
１）エンジン実回転数Ｎｅｎｇａｃｔ
エンジン実回転数Ｎｅｎｇａｃｔは、エンジン５０の実際の回転数を示す変数である。エンジン５０はパワーショベルの運転時には常に駆動されており、エンジン実回転数Ｎａｃｔが検出されている。
【００６０】
２）油圧負荷要求出力Ｐｈｙｄｒｅｑ
油圧負荷要求出力Ｐｈｙｄｒｅｑは、油圧負荷５４が必要とする動力を示す変数であり、例えばパワーショベルを運転者が操作する際の操作レバーの操作量に相当する。
【００６１】
３）電気負荷要求出力Ｐｅｌｃｒｅｑ
電気負荷要求出力Ｐｅｌｃｒｅｑは、電気負荷５６が必要とする電力を示す変数であり、例えばパワーショベルを運転者が操作する際の操作レバーの操作量に相当する。
【００６２】
４）バッテリ電圧Ｖａｃｔ
バッテリ電圧Ｖａｃｔは、バッテリ５８の出力電圧を示す変数である。本実施形態ではバッテリとしてキャパシタ蓄電器を用いている。キャパシタの充電量は、キャパシタの端子間電圧の二乗に比例するから、出力電圧を検出することでバッテリ５８の充電状態（すなわち、充電率ＳＯＣ）を知ることができる。
【００６３】
５）エンジン実出力Ｐｅｎｇａｃｔ
エンジン実出力Ｐｅｎｇａｃｔは、エンジン５０の実際の出力を示す実測値であり、エンジン５０の回転数とトルクとの積から求められる。
【００６４】
６）エンジン目標回転数Ｎｅｎｇｒｅｆ
エンジン５０は常に予め設定された一定の回転数で駆動されるように駆動制御されている。この予め設定された一定の回転数がエンジン目標回転数Ｎｅｎｇｒｅｆである。
【００６５】
７）アシストモータ実回転数Ｎａｓｍａｃｔ
アシストモータ実回転数Ｎａｓｍａｃｔは、アシストモータ５２の実際の回転数を示す変数である。アシストモータ５２はエンジン５０に接続されているため、パワーショベルの運転時には常に駆動されており、アシストモータ実回転数Ｎａｓｍａｃｔが検出されている。
【００６６】
以上の７つの変数に基づいて、以下の出力を制御して最適な運転条件を達成する。
【００６７】
１）油圧負荷実出力Ｐｈｙｄｏｕｔ
油圧負荷要求出力Ｐｈｙｄｒｅｑに対して、実際に油圧負荷５４に供給する動力である。油圧負荷要求出力Ｐｈｙｄｒｅｑに対して常に要求された動力を供給すると、同時に駆動されている電気負荷５６の要求を満たせなくなったり、バッテリ５８の充電率ＳＯＣを適当な範囲内に維持できなくなってしまう。このため、実際に油圧負荷５４に供給する動力をある程度制限しなくてはならない場合がある。
【００６８】
２）電気負荷実出力Ｐｅｌｃｏｕｔ
電気負荷要求出力Ｐｅｌｃｒｅｑに対して、実際に電気負荷５４に供給する電力である。電気負荷要求出力Ｐｅｌｃｒｅｑに対して常に要求された電力を供給すると、同時に駆動されている油圧負荷５４の要求を満たせなくなったり、バッテリ５８の充電率ＳＯＣを適当な範囲内に維持できなくなってしまう。このため、実際に電気負荷５６に供給する電力をある程度制限しなくてはならない場合がある。
【００６９】
３）アシストモータ出力指令Ｐａｓｍｒｅｆ
アシストモータ５２の出力を指示する値である。アシストモータ出力指令Ｐａｓｍｒｅｆにより、アシストモータ５２が電動機として機能してエンジン５０をアシストして油圧負荷５４に動力を供給するか、あるいは、アシストモータ５２が発電機として機能して電気負荷５６に電力を供給するかバッテリ５８を充電するか、が指示される。
【００７０】
そこで、コントローラ３０に含まれる駆動制御装置３２が、エンジン実回転数Ｎａｃｔ、油圧負要求出力Ｐｈｙｄｒｅｑ、電気負荷要求出力Ｐｅｌｃｒｅｑ、バッテリ電圧Ｖａｃｔ、エンジン実出力Ｐｅｌｃａｃｔ、エンジン目標回転数Ｎｅｎｇｒｅｆ、及びアシストモータ実回転数Ｎａｓｍａｃｔに基づいて、油圧負荷実出力Ｐｈｙｄｏｕｔ、電気負荷実出力Ｐｅｌｃｏｕｔ、及びアシストモータ出力指令Ｐａｓｍｒｅｆを制御する。以下、説明の便宜上、駆動制御装置３２を制御部６０と称する。
【００７１】
図５は本発明の第１実施形態による制御を行うためのコントローラ３０に含まれる制御部６０の機能ブロック図である。制御部６０の制御機能の概要について図５を参照しながら説明する。
【００７２】
制御部６０は出力条件算出部６０ａと動力分配部６０−８とを備えている。出力条件算出部６０ａは、ブロック６０−１〜６０−１２で構成され、エンジン５０とバッテリ５８の出力条件である上下限値を算出する。
【００７３】
まず、制御部６０の出力条件算出部６０ａに入力されたエンジン実回転数Ｎａｃｔはブロック６０−１に入力される。ブロック６０−１は、入力されたエンジン実回転数Ｎａｃｔにおける出力の上限値Ｐｅｎｇｍａｘ１と下限値Ｐｅｎｇｍｉｎとを決定し、動力分配部であるブロック６０−８に入力する。ブロック６０−１は図５に示すように、エンジン５０の回転数と出力との関係において、上限値と下限値とを示すマップあるいは変換テーブルを有しており、このマップあるいは変換テーブルを参照しながら入力されたエンジン実回転数Ｎａｃｔにおける出力の上限値Ｐｅｎｇｍａｘと下限値Ｐｅｎｇｍｉｎとを決定する。マップあるいは変換テーブルは予め作成されてコントローラ３０のメモリに格納されている。なお、マップあるいは変換テーブルを用いることなく、上限値と下限値を表す式にエンジン実回転数Ｎａｃｔを代入して上限値Ｐｅｎｇｍａｘ１と下限値Ｐｅｎｇｍｉｎとを求めてもよい。
【００７４】
制御部６０に入力された油圧負荷要求出力Ｐｈｙｄｒｅｑ及び電気負荷要求出力Ｐｅｌｃｒｅｑは、動力分配部であるブロック６０−８に入力される。
【００７５】
制御部６０の出力条件算出部６０ａに入力されたバッテリ電圧Ｖａｃｔは、ブロック６０−２に入力される。ブロック６０−２では、入力されたバッテリ電圧Ｖａｃｔから、バッテリ５８の現在の充電率ＳＯＣａｃｔを求める。求めた現在の充電率ＳＯＣａｃｔは、ブロック６０−３、６０−４及び６０−７に出力される。本実施形態では、バッテリ５８としてキャパシタを用いるので、計測したバッテリ電圧（キャパシタの端子間電圧）から演算により容易に充電率ＳＯＣを求めることができる。
【００７６】
ブロック６０−３は、入力された現在の充電率ＳＯＣａｃｔと所定の最大充放電電流とから、現在放電できる放電電力の最大値（バッテリ出力上限値Ｐｂａｔｍａｘ１１）及び現在充電できる充電電力の最大値（バッテリ出力下限値Ｐｂａｔｍｉｎ１１）を求める。ブロック６０−３には、図５に示すように、充電率ＳＯＣに対してその充電率において一定の電流のもとで充放電可能な最大充電電力［ｋＷ］及び最大放電電力［ｋＷ］を表すマップ又は変換テーブルが格納されている。
【００７７】
すなわち、ブロック６０−３に示すマップは、ある充電率ＳＯＣにおいて、コンバータやキャパシタの能力で制限される充放電最大電流を流すときに決まる電力（充放電最大電流×キャパシタ電圧）を表している。充電率ＳＯＣは充放電電圧（キャパシタ電圧）の二乗に比例するため、ブロック６０−３内に示す最大充電電力及び最大放電電力は放物線を描くこととなる。
【００７８】
このように、ブロック６０−３は、このマップ又は変換テーブルを参照して現在の充電率ＳＯＣａｃｔにおいて所定の電流のもとで許容される最大充電電力（バッテリ出力上限値Ｐｂａｔｍａｘ１１）及び最大放電電力（バッテリ出力下限値Ｐｂａｔｍｉｎ１１）を求める。求めた最大放電電力（バッテリ出力上限値Ｐｂａｔｍａｘ１１）はブロック６０−５に出力され、求めた最大充電電力（バッテリ出力下限値Ｐｂａｔｍｉｎ１１）はブロック６０−６に出力される。
【００７９】
ブロック６０−４は、入力された現在の充電率ＳＯＣａｃｔと所定のＳＯＣ下限値及びＳＯＣ上限値とから、現在放電できる放電電力の最大値（バッテリ出力上限値Ｐｂａｔｍａｘ１２）及び現在充電できる充電電力の最大値（バッテリ出力下限値Ｐｂａｔｍｉｎ１２）を求める。ブロック６０−４には図５に示すように、充電率ＳＯＣに対して、ＳＯＣ下限値以下にならず、ＳＯＣ上限値以上とならないための最大放電電力［ｋＷ］及び最大充電電力［ｋＷ］を表すマップ又は変換テーブルが格納されている。
【００８０】
すなわち、ブロック６０−４に示すマップは、ある充電率ＳＯＣにおける適切な充放電電力を表している。ブロック６０−４に示すマップのうち、下限値は充電率がゼロとならないように余裕を持たせるために設定された充電率ＳＯＣである。充電率ＳＯＣがゼロ又はゼロに近い値になるまで減らしてしまうと、放電要求があった場合にすぐに放電できなくなってしまうため、ある程度充電された状態に維持しておくことが望ましい。そのため、充電率ＳＯＣに下限値（例えば３０％）を設けて下限値以下の充電率ＳＯＣのときには放電できないように制御する。したがって、最大放電電力（放電可能な最大電力）は充電率ＳＯＣの下限値においてゼロ（すなわち放電させない）であり、充電率ＳＣＯが大きくなるにつれて放電可能な電力に余裕が生じるので、最大放電電力を大きくしている。ブロック６０−４に示すマップでは、充電率ＳＯＣの上限値から最大放電電力が直線的に増加しているが、直線的な増加に限ることなく、放物線を描いて増加させてもよく、任意のパターンで増加するように設定してもよい。
【００８１】
一方、充電率ＳＯＣが１００％のときに、例えば電気負荷から回生電力が発生した場合、回生電力を蓄電器で直ちに吸収することができなくなるので、充電率ＳＯＣが１００％とならないように上限値（例えば９０％）を設けて上限値以上の充電率ＳＯＣのときには充電できないように制御する。したがって、最大充電電力（充電可能な最大電力）は充電率ＳＯＣの上限値においてゼロ（すなわち充電させない）であり、充電率ＳＣＯが小さくなるにつれて充電可能な電力に余裕が生じるので、最大充電電力を大きくする。ブロック６０−４に示すマップでは、最大充電電力が充電率ＳＯＣの上限値から直線的に増加しているが、直線的な増加に限ることなく、放物線を描いて増加させてもよく、任意のパターンで増加するように設定してもよい。
【００８２】
このように、ブロック６０−４は、このマップ又は変換テーブルを参照して現在の充電率ＳＯＣａｃｔにおいて許容される最大放電電力（バッテリ出力上限値Ｐｂａｔｍａｘ１２）及び最大充電電力（バッテリ出力下限値Ｐｂａｔｍｉｎ１２）を求める。求めた最大放電電力（バッテリ出力上限値Ｐｂａｔｍａｘ１２）はブロック６０−５に出力され、求めた最大充電電力（バッテリ出力下限値Ｐｂａｔｍｉｎ１２）はブロック６０−６に出力される。
【００８３】
ブロック６０−５は、ブロック６０−３から供給されたバッテリ出力上限値Ｐｂａｔｍａｘ１１と、ブロック６０−４から供給されたバッテリ出力上限値Ｐｂａｔｍａｘ１２のうち、小さいほうをバッテリ出力上限値Ｐｂａｔｍａｘ１として、動力分配部であるブロック６０−８に出力する。ここで、ブロック６０−５は最小値選択器の機能をはたす。
【００８４】
一方、ブロック６０−６は、ブロック６０−３から供給されたバッテリ出力下限値Ｐｂａｔｍｉｎ１１と、ブロック６０−４から供給されたバッテリ出力下限値Ｐｂａｔｍｉｎ１２のうち、大きいほうをバッテリ出力下限値Ｐｂａｔｍｉｎ１として、動力分配部であるブロック６０−８に出力する。ここで、バッテリ出力値がマイナスの場合が充電を表すため、バッテリ出力下限値の大きいほうということは、マイナスの値が小さいほう、すなわち、ゼロに近いほうの値を意味する。これにより、バッテリ１９の出力能力を超えた過度な充放電から確実に保護することができる。ここで、ブロック６０−６は最大値選択器の機能をはたす。
【００８５】
このようにして、現在のバッテリ５８の充電状態に応じた充放電可能な最大電力を求める。
【００８６】
ブロック６０−７は、入力された現在の充電率ＳＯＣａｃｔと所定のＳＯＣ目標値から、充電率ＳＯＣを目標値に近づけるためのバッテリ出力目標値Ｐｂａｔｔｇｔを求める。ブロック６０−７には、図５に示すように充電率に対して、その充電率においてＳＯＣ目標値に近づくバッテリ出力目標値Ｐｂａｔｔｇｔを表すマップ又は変換テーブルが格納されている。ブロック６０−７は、このマップあるいは変換テーブルを参照することで、充電率ＳＯＣを最適な目標値にするために、どのくらい充電をすべきかを示す充電電力又はどのくらい放電をするべきかを示す放電電力を求めることができる。
【００８７】
ブロック６０−７が参照するマップにおける縦軸の出力は充電も放電もしていないときをゼロとし、充電側がマイナスであり、放電側がプラスである。図５に示す例では、現在の充電率ＳＯＣａｃｔが目標値より小さい状態であり、バッテリ５８を充電すべきであり、充電電力の目標値、すなわちバッテリ出力目標値Ｐｂａｔｔｇｔが示されている。バッテリ出力目標値Ｐｂａｔｔｇｔがプラスの値の場合は目標放電電力を表し、マイナスの値の場合は目標充電電力を表す。ブロック６０−７で求められたバッテリ出力目標値Ｐｂａｔｔｇｔは、動力分配部であるブロック６０−８に出力される。
【００８８】
ブロック６０−９は、予め準備されているマップ又は変換テーブルから、入力された現在のアシストモータ実回転数Ｎａｓｍａｃｔにおけるアシストモータ５２の出力の下限値Ｐａｓｍｍｉｎと上限値Ｐａｓｍｍａｘとを求める。このマップ又は変換テーブルは図５に示すように、アシストモータ５２の回転数に対する出力の下限値及び上限値が示されている。上限値はアシストモータ５２がアシストする際の最大アシスト（電動）量を表し、下限値はアシストモータ５２が発電する際の最大発電量を表す。ブロック６０−９は、求めたアシストモータ５２の出力の下限値Ｐａｓｍｍｉｎと上限値Ｐａｓｍｍａｘとを動力分配部６０−８に出力する。
【００８９】
以上のような機能ブロックに加え、本実施形態では以下の機能ブロックが設けられている。以下に説明する機能ブロックは、特に、エンジン５０の回転数が低下した場合に、エンジン５０の出力上限値Ｐｅｎｇｍａｘを制限することでエンジン５０の負荷を低減してエンストを防止し、エンジン５０の回転数を迅速にエンジン目標回転数Ｎｅｎｇｒｅｆに復帰させるための制御を行なうために設けられている。
【００９０】
ブロック６０−１０は、入力されたエンジン目標回転数Ｎｅｎｇｒｅｆとエンジン実回転数Ｎｅｎｇａｃｔとの偏差Ｎｅｎｇｅｒｒを算出し、算出した偏差Ｎｅｎｇｅｒｒをブロック６０−１１に出力する。ブロック６０−１１は、入力されたエンジン実出力Ｐｅｎｇｍａｘとブロック６０−１１から供給される偏差Ｎｅｎｇｅｒｒとからエンジン出力の補正値１を算出し、算出した補正値１をブロック６０−１２に出力する。
【００９１】
ブロック６０−１２は、ブロック６０−１から供給されるエンジン出力上限値Ｐｅｎｇｍａｘ１とブロック６０−１１から供給される補正値１とを比較し、エンジン出力上限値Ｐｅｎｇｍａｘ１が補正値１以下の場合には、エンジン出力上限値Ｐｅｎｇｍａｘ１をそのままエンジン出力上限値Ｐｅｎｇｍａｘとして動力分配部６０−８に出力する。一方、エンジン出力上限値Ｐｅｎｇｍａｘ１が補正値１より大きい場合には、ブロック６０−１２は、エンジン出力上限値Ｐｅｎｇｍａｘ１ではなく、補正値１をエンジン出力上限値Ｐｅｎｇｍａｘとして動力分配部６０−８に出力する。すなわち、ブロック６０−１２は、エンジン出力上限値Ｐｅｎｇｍａｘを制限して補正値１を越えないようにする。
【００９２】
ここで、エンジン出力上限値Ｐｅｎｇｍａｘの制限に関してさらに詳しく説明する。
【００９３】
図６はエンジン出力上限値Ｐｅｎｇｍａｘの変化とエンジン実出力Ｐｅｎｇａｃｔの変化とエンジン実回転数Ｎｅｎｇａｃｔを対応させながら示すグラフである。図６のグラフにおいて、時刻ｔ０を過ぎてからエンジンへの負荷が増大し、このためエンジン実出力Ｐｅｎｇａｃｔが急激に増大している。エンジン負荷の増大に伴い、時刻ｔ０を過ぎてからエンジン実回転数Ｐｅｎｇａｃｔは目標回転数Ｐｅｎｇｒｅｆから低下し始める。エンジン実出力Ｐｅｎｇａｃｔの増大は、一制御周期後の時刻ｔ１まで続き、これに伴いエンジン実回転数Ｎｅｎｇａｃｔも低下し続けているが、エンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒは未だ閾値を越えていない。時刻ｔ０から時刻ｔ１までの間、エンジン実回転数Ｎｅｎｇａｃｔの低下により、ブロック６０−１で決定されるエンジン出力上限値Ｐｅｎｇｍａｘ１も徐々に低下し、エンジンの出力を抑制してエンジン実回転数Ｎｅｎｇａｃｔを上昇させようとしている。
【００９４】
エンジンの負荷の増大は時刻ｔ１を過ぎてからも続き、これに伴いエンジン実回転数Ｎｅｎｇａｃｔもさらに低下し、そのままエンジン実回転数Ｎｅｎｇａｃｔが低下し続けると、エンジンが負荷に負けてエンストを起すおそれがある。
【００９５】
そこで、本実施形態では、エンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒが閾値を越えた場合、エンジン出力上限値Ｐｅｎｇｍａｘを、ブロック６０−１で決定されるエンジン出力上限値Ｐｅｎｇｍａｘ１より低いエンジン出力上限値Ｐｅｎｇｍａｘ２に設定し、エンジンへの負荷を強制的に低減している。このエンジン出力上限値Ｐｅｎｇｍａｘ２が、ブロック６０−１１で算出される補正値１に相当する。
【００９６】
図６において、エンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒは、時刻ｔ１と時刻ｔ２の間（時刻ｔａ）で閾値を越えて低下し続けており、時刻ｔ２においてエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒは閾値より大きくなっている。そこで、本実施形態では、時刻ｔ２までのエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ１）ではエンジンへの負荷を十分低減することができないと判断し、エンジン出力上限値Ｐｅｎｇｍａｘを、それまでのエンジン出力上限値Ｐｅｎｇｍａｘ１から、エンジン出力上限値Ｐｅｎｇｍａｘ１より低いエンジン出力上限値Ｐｅｎｇｍａｘ２に強制的に変更する。すなわち、時刻ｔ２において、エンジン出力上限値Ｐｅｎｇｍａｘを、エンジン出力上限値Ｐｅｎｇｍａｘ１から、エンジン出力上限値Ｐｅｎｇｍａｘ１より低いエンジン出力上限値Ｐｅｎｇｍａｘ２に変更する。言い換えれば、エンジン出力上限値Ｐｅｎｇｍａｘを、エンジンの回転数から求められるエンジン出力上限値Ｐｅｎｇｍａｘ１よりもさらに低い値であるエンジン出力上限値Ｐｅｎｇｍａｘ２に設定することで、変更後のエンジン出力上限値Ｐｅｎｇｍａｘ２が動力分配部６０−８へ入力される。これにより、動力分配部６０−８で算出される油圧負荷Ｐｈｙｄｏｕｔが低減され、若しくは、アシスト出力指令Ｐａｓｍｒｅｆが増加されることで、エンジンの負荷を強制的に低減して、エンジンの回転数がエンジン目標回転数Ｎｅｎｇｒｅｆへ復帰することを促す。
【００９７】
時刻ｔ２から時刻ｔ３の間は、エンジン出力上限値Ｐｅｎｇｍａｘがエンジン出力上限値Ｐｅｎｇｍａｘ２に設定されることで、エンジンの負荷が減少するため、エンジン実回転数Ｎｅｎｇａｃｔは上昇に転じる。これにより、エンジン実回転数Ｎｅｎｇａｃｔが低下し続けてエンストを起こしてしまうような事態となることを回避することができる。時刻ｔｂで閾値内に実回転数が回復し、その後、時刻ｔ４においてはエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒは閾値未満となっているため、エンジンの極度の過負荷による回転数の低下は無くなったと判断し、エンジン出力上限値Ｐｅｎｇｍａｘを再びエンジン出力上限値Ｐｅｎｇｍａｘ１に設定して通常の制御に戻る。
【００９８】
ここで、エンジン出力上限値Ｐｅｎｇｍａｘ２の決定方法について、図７及び図８も参照しながら説明する。時刻ｔ１の後もエンジン実回転数Ｎｅｎｇａｃｔが低下し続けているということは、時刻ｔ１においてエンジン出力上限値Ｐｅｎｇｍａｘとして設定したエンジン出力上限値Ｐｅｎｇｍａｘ１により制限されたエンジン実出力Ｐｅｎｇａｃｔであっても負荷がかかり過ぎてエンジンの回転数が下がり続けていることを意味している。そこで、前回すなわち時刻ｔ１におけるエンジン実出力Ｐｅｎｇａｃｔ（ｔ１）から所定の値ΔＰ（ｔ１）を引いた値を時刻ｔ２におけるエンジン出力上限値Ｐｅｎｇｍａｘ２（ｔ２）として設定する。
【００９９】
この所定の値ΔＰ（ｔ１）は、図７に示すように、今回の（時刻ｔ２における）エンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒに所定のゲインＫ１を掛けて算出される。図８において、時刻ｔ２を基準にすると、一つ前の周期の値は、時刻ｔ１におけるエンジン実出力Ｐｅｎｇａｃｔ（ｔ１）に相当する。したがって、時刻ｔ２で算出されるエンジン出力上限値Ｐｅｎｇｍａｘ２（ｔ２）は、時刻ｔ１におけるエンジン実出力Ｐｅｎｇａｃｔ（ｔ１）から、時刻ｔ２におけるエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒに所定のゲインＫ１を掛けて算出された補正値であるΔＰ（ｔ１）を引いた値となる。
【０１００】
図８はエンジン回転数により決定されるエンジン出力上限値Ｐｅｎｇｍａｘ１を示すグラフであり、時刻ｔ２において決定されるエンジン出力上限値Ｐｅｎｇｍａｘ１（ｔ２）と、時刻ｔ１におけるエンジン実出力Ｐｅｎｇａｃｔ（ｔ１）と、時刻ｔ２において算出されるエンジン出力上限値Ｐｅｎｇｍａｘ２（ｔ２）の関係が示されている。時刻ｔ２より前の時刻ｔ１におけるエンジン実出力Ｐｅｎｇａｃｔ（ｔ１）は、時刻ｔ２におけるエンジン出力上限値Ｐｅｎｇｍａｘ１（ｔ２）より低い値である。そして、時刻ｔ２におけるエンジン出力上限値Ｐｅｎｇｍａｘ２（ｔ２）は、前回の時刻ｔ１におけるエンジン実出力Ｐｅｎｇａｃｔ（ｔ１）から補正量ΔＰ（ｔ１）を引いた値であるから、エンジン実出力Ｐｅｎｇａｃｔ（ｔ１）よりさらに低い値となる。
【０１０１】
前回の時刻ｔ１におけるエンジン実出力Ｐｅｎｇａｃｔ（ｔ１）であっても依然としてエンジン回転数が低下したので、時刻ｔ２におけるエンジン出力上限値Ｐｅｎｇｍａｘ２（ｔ２）を、エンジン実出力Ｐｅｎｇａｃｔ（ｔ１）よりも低い値に設定することで、変更後のエンジン出力上限値Ｐｅｎｇｍａｘ２が動力分配部６０−８へ入力される。これにより、動力分配部６０−８で算出される油圧負荷Ｐｈｙｄｏｕｔが低減され、若しくは、アシスト出力指令Ｐａｓｍｒｅｆが増加されることで、エンジンの負荷を強制的に低減し、エンジン回転数の復帰を促している。そして、補正量ΔＰ（ｔ１）は、時刻ｔ２におけるエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒに所定のゲインＫ１を掛けて算出された値であるから、時刻ｔ２におけるエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒの大きさが反映されている。すなわち、エンジン実回転数Ｎｅｎｇａｃｔがエンジン目標回転数Ｎｅｎｇｒｅｆより低くなった程度が補正量ΔＰ（ｔ１）に反映されており、したがって、時刻ｔ２におけるエンジン出力上限値Ｐｅｎｇｍａｘ２（ｔ２）は、エンジン実回転数Ｎｅｎｇａｃｔがエンジン目標回転数Ｎｅｎｇｒｅｆより低くなった程度に基づいて決定されることとなる。
【０１０２】
なお、図７に示すエンジン出力上限値Ｐｅｎｇｍａｘ２（ｔ）の算出は、図６に示すブロック６０−１１で行われる。そして、ブロック６０−１２において、ブロック６０−１１から供給されたエンジン出力上限値Ｐｅｎｇｍａｘ２（ブロック６０−１で決定されたエンジン出力上限値Ｐｅｎｇｍａｘ１より小さな値）がエンジン出力上限値Ｐｅｎｇｍａｘとして設定され、動力分配部６０−８に出力される。
【０１０３】
以上のように、動力分配部であるブロック６０−８には、エンジン出力限界値としてのエンジン出力上限値Ｐｅｎｇｍａｘ、エンジン出力下限値Ｐｅｎｇｍｉｎ、アシストモータ出力限界値としてのアシストモータ出力上限値Ｐａｓｍｍａｘ、アシストモータ出力下限値Ｐａｓｍｍｉｎ、バッテリ放電限界値としてのバッテリ出力上限値Ｐｂａｔｍａｘ１、バッテリ充電限界値としてのバッテリ出力下限値Ｐｂａｔｍｉｎ１、及びバッテリ出力目標値Ｐｂａｔｔｇｔが入力される。ブロック６０−８は、これら入力された値に基づいて、油圧負荷実出力Ｐｈｙｄｏｕｔ、電気負荷実出力Ｐｅｌｃｏｕｔ、及びアシストモータ出力指令Ｐａｓｍｒｅｆを決定し、コントローラ３０の各部に出力する。
【０１０４】
そこで、コントローラ３０は、油圧負荷実出力Ｐｈｙｄｏｕｔに基づいて油圧負荷５４に供給する油圧を制御し、電気負荷実出力Ｐｅｌｃｏｕｔに基づいて電気負荷５６に供給する電力を制御し、アシストモータ出力指令Ｐａｓｍｒｅｆに基づいてアシストモータ５２によるエンジン５０のアシスト量又はアシストモータ５２による発電量を制御する。
【０１０５】
以上のように、本実施形態では、エンジン５０の回転数が低下し続けた際に、エンジン５０の出力上限値Ｐｅｎｇｍａｘを下げることでエンジン５０の負荷を低減して回転数の復帰を促している。これは、特に、蓄電部１９のバッテリ５８の蓄電量が少なく、後述のようにアシストモータ５２のアシストによりエンジン５０の負荷を低減することができない場合に有効である。
【０１０６】
なお、上述の第１実施形態では、エンジン出力上限値Ｐｅｎｇｍａｘ２を算出する際に、前回のサイクルにおけるエンジン実出力Ｐｅｎｇａｃｔ（実測値）を用いているが、エンジン出力の実測値が得られないような場合は、図９に示すように、動力分配部６０−８が算出するエンジン想定出力を前回のサイクルにおけるエンジン実出力Ｐｅｎｇａｃｔ（実測値）の代りに用いることもできる。
【０１０７】
次に、本発明の第２実施形態について図１０を参照しながら説明する。図１０は本発明の第１実施形態による制御を行うためのコントローラ３０に含まれる制御部６０の機能ブロック図である。図１０において、図５に示す構成部品と同等な部品には同じ符号を付し、その説明は省略する。
【０１０８】
第２実施形態では、エンジン５０の回転数が低下し続けた際に、エンジン５０の負荷を低減するために、アシストモータ５２でエンジン５０をアシストする。このような制御を行なうために、ブロック６０−１３，６０−１４，６０−１５が設けられている。
【０１０９】
ブロック６０−１３は、動力分配部６０−８で算出したアシストモータ出力指令Ｐａｓｍｒｅｆを補正して、ブロック６０−９で決定されたアシストモータ出力下限値Ｐａｓｍｍｉｎ１より大きな値であるアシストモータ出力下限値Ｐａｓｍｍｉｎ２を決定するための機能ブロックである。
【０１１０】
ブロック６０−１４は、ブロック６０−１３で決定したアシストモータ出力下限値Ｐａｓｍｍｉｎ２がブロック６０−５で決定したバッテリ出力上限値Ｐｂａｔｍａｘ１より大きくならないように、アシストモータ出力下限値Ｐａｓｍｍｉｎ２を制限する機能ブロックである。
【０１１１】
ブロック６０−１５は、ブロック６０−１４から供給されるアシストモータ出力下限値Ｐａｓｍｍｉｎ２を、動力分配部に供給するアシストモータ出力下限値Ｐａｓｍｍｉｎとして設定する機能ブロックである。
【０１１２】
本実施形態ではエンジンへの負荷が増大してエンジンの回転数が低下し続けた場合に、ブロック６０−１５で設定された制限されたアシストモータ出力下限値Ｐａｓｍｍｉｎ（＝Ｐａｓｍｍｉｎ２）を動力分配部６０−８に供給する。これにより、動力分配部６０−８は、ブロック６０−９で決定されたアシストモータ出力下限値Ｐａｓｍｍｉｎ１に基づいて算出された値より大きな値のアシストモータ出力指令Ｐａｓｍｒｅｆを算出することができる。
【０１１３】
ここで、アシストモータ出力下限値Ｐａｓｍｍｉｎの制限に関してさらに詳しく説明する。
【０１１４】
図１１はアシストモータ出力下限値Ｐａｓｍｍｉｎ１の変化とアシストモータ出力指令Ｐａｓｍｒｅｆの変化とエンジン実回転数Ｎｅｎｇａｃｔの変化とを対応させながら示すグラフである。図１１のグラフは、時刻ｔ０を過ぎてからエンジンへの負荷が増大した場合のグラフで、時刻ｔ１ではエンジン負荷が大きいため、アシストモータ出力指令はアシスト（プラス）になっている。しかし、十分なアシストが行なわれていないため、エンジンが過負荷になり、エンジン回転数は低下している。したがって、このままエンジン実回転数Ｎｅｎｇａｃｔが低下し続けると、エンジンが負荷に負けてエンストを起すおそれがある。
【０１１５】
そこで、本実施形態では、エンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒが閾値を越えた場合、アシストモータ出力下限値Ｐａｓｍｍｉｎを、ブロック６０−９で決定されるアシストモータ出力下限値Ｐａｓｍｍｉｎ１より低いアシストモータ出力下限値Ｐａｓｍｍｉｎ２に設定し、アシストモータによりかかるエンジンへの負荷を強制的に低減している。このアシストモータ出力下限値Ｐａｓｍｍｉｎ２が、ブロック６０−１３で算出される補正値２に相当する。
【０１１６】
図１１において、エンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒは、時刻ｔ１と時刻ｔ２の間（時刻ｔａ）で閾値を越えて低下し続けており、時刻ｔ２においてエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒは閾値より大きくなっている。そこで、本実施形態では、時刻ｔ２までのアシストモータ出力下限値Ｐａｓｍｍｉｎ（＝Ｐａｓｍｍｉｎ１）では、アシストモータ５２によるエンジン５０への負荷を十分低減することができないと判断し、アシストモータ出力下限値Ｐａｓｍｍｉｎを、それまでのアシストモータ出力下限値Ｐａｓｍｍｉｎ１から、アシストモータ出力下限値Ｐａｓｍｍｉｎ１よりはるかに高いアシストモータ出力下限値Ｐａｓｍｍｉｎ２に強制的に変更する。すなわち、時刻ｔ２において、アシストモータ出力下限値Ｐａｓｍｍｉｎを、アシストモータ出力下限値Ｐａｓｍｍｉｎ１から、アシストモータ出力下限値Ｐａｓｍｍｉｎ１より高いアシストモータ出力下限値Ｐａｓｍｍｉｎ２に変更する。言い換えれば、アシストモータ出力下限値Ｐａｓｍｍｉｎを、アシストモータ実回転数Ｎａｓｍａｃｔから求められるアシストモータ出力下限値Ｐａｓｍｍｉｎ１よりも高い値であるアシストモータ出力下限値Ｐａｓｍｍｉｎ２に設定することで、エンジン５０への負荷を強制的に低減するか、あるいはアシストモータ５２を発電運転からアシスト運転へ変更してエンジン５０をアシストし、エンジンの回転数がエンジン目標回転数Ｎｅｎｇｒｅｆへ復帰することを促す。
【０１１７】
時刻ｔ２から時刻ｔ３の間は、アシストモータ出力下限値Ｐａｓｍｍｉｎがアシストモータ出力下限値Ｐａｓｍｍｉｎ２に設定されることで、エンジン５０の負荷が減少し且つアシストモータ５２によりアシストされるため、エンジン実回転数Ｎｅｎｇａｃｔは上昇に転じる。これにより、エンジン実回転数Ｎｅｎｇａｃｔが低下し続けてエンストを起こしてしまうような事態となることを回避することができる。時刻ｔｂで閾値内に実回転数が回復し、その後、時刻ｔ４ではエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇａｃｔとの偏差Ｎｅｎｇｅｒｒは閾値未満となっているため、エンジンの極度の過負荷による回転数の低下は無くなったと判断し、アシストモータ出力下限値Ｐａｓｍｍｉｎを再びアシストモータ出力下限値Ｐａｓｍｍｉｎ１に設定して通常の制御に戻る。
【０１１８】
ここで、アシストモータ出力下限値Ｐａｓｍｍｉｎ２の決定方法について、図１２及び図１３も参照しながら説明する。時刻ｔ１の後もエンジン実回転数Ｎｅｎｇａｃｔが低下し続けているということは、時刻ｔ１においてアシストモータ出力下限値Ｐａｓｍｍｉｎとして設定したアシストモータ出力下限値Ｐａｓｍｍｉｎ１により制限されたエンジン実出力Ｐｅｎｇａｃｔであっても負荷がかかり過ぎてエンジンの回転数が下がり続けていることを意味している。そこで、前回すなわち時刻ｔ１におけるアシストモータ出力指令Ｐａｓｍｒｅｆに所定の値ΔＰ（ｔ１）を加算した値を時刻ｔ２におけるアシストモータ出力下限値Ｐａｓｍｍｉｎ２（ｔ２）として設定する。
【０１１９】
この所定の値ΔＰ（ｔ１）は、図１２に示すように、今回の（時刻ｔ２における）エンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒに所定のゲインＫ２を掛けて算出される。図１２において、時刻ｔ２を基準にすると、一つ前の制御周期の値は、時刻ｔ１におけるアシストモータ出力指令Ｐａｓｍｒｅｆに相当する。したがって、時刻ｔ２で算出されるアシストモータ出力下限値Ｐａｓｍｍｉｎ２（ｔ２）は、時刻ｔ１におけるアシストモータ出力指令Ｐａｓｍｒｅｆに、時刻ｔ２におけるエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒに所定のゲインＫ２を掛けて算出された補正値であるΔＰ（ｔ１）を加えた値となる。
【０１２０】
図１３はアシストモータ回転数により決定されるアシストモータ出力上限値Ｐａｓｍｍａｘとアシストモータ出力下限値Ｐａｓｍｍｉｎ１を示すグラフであり、時刻ｔ２において決定されるアシストモータ出力下限値Ｐａｓｍｍｉｎ１（ｔ２）と、時刻ｔ１におけるアシストモータ出力指令Ｐａｓｍｒｅｆ（ｔ１）と、時刻ｔ２において算出されるエンジン出力上限値Ｐｅｎｇｍａｘ２（ｔ２）の関係が示されている。時刻ｔ２より前の時刻ｔ１におけるアシストモータ出力指令Ｐａｓｍｒｅｆ（ｔ１）は、時刻ｔ２におけるアシストモータ出力下限値Ｐａｓｍｍｉｎ１（ｔ２）より高い値である。そして、時刻ｔ２におけるアシストモータ出力下限値Ｐａｓｍｍｉｎ２（ｔ２）は、前回の時刻ｔ１におけるアシストモータ出力指令Ｐａｓｍｒｅｆ（ｔ１）に補正量ΔＰ（ｔ１）を加えた値であるから、アシストモータ出力指令Ｐａｓｍｒｅｆ（ｔ１）よりさらに高い値となる。
【０１２１】
前回の時刻ｔ１におけるアシストモータ出力指令Ｐａｓｍｒｅｆ（ｔ１）であっても依然としてエンジン回転数が低下したので、時刻ｔ２におけるアシストモータ出力下限値Ｐａｓｍｍｉｎ１（ｔ２）を、アシストモータ出力指令Ｐａｓｍｒｅｆ（ｔ１）よりも高い値に設定することで、アシストモータ５２の発電量を小さくしてエンジン５０への負荷を低減するか、あるいはアシストモータ５２をアシスト運転してエンジンをアシストすることで、エンジン回転数の復帰を促している。そして、補正量ΔＰ（ｔ１）は、時刻ｔ２におけるエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒに所定のゲインＫ２を掛けて算出された値であるから、時刻ｔ２におけるエンジン実回転数Ｎｅｎｇａｃｔとエンジン目標回転数Ｎｅｎｇｒｅｆとの偏差Ｎｅｎｇｅｒｒの大きさが反映されている。すなわち、エンジン実回転数Ｎｅｎｇａｃｔがエンジン目標回転数Ｎｅｎｇｒｅｆより低くなった程度が補正量ΔＰ（ｔ１）に反映されており、したがって、時刻ｔ２におけるアシストモータ出力指令Ｐａｓｍｒｅｆ２（ｔ２）は、エンジン実回転数Ｎｅｎｇａｃｔがエンジン目標回転数Ｎｅｎｇｒｅｆより低くなった程度に基づいて決定されることとなる。
【０１２２】
なお、図１２に示すアシストモータ出力下限値Ｐａｓｍｍｉｎ２の算出は、図１０に示すブロック６０−１３で行われる。ブロック６０−１３で算出されたアシストモータ出力下限値Ｐａｓｍｍｉｎ２は、ブロック６０−１４に供給される。ブロック６０−１４は、ブロック６０−１３で算出されたたアシストモータ出力下限値Ｐａｓｍｍｉｎ２がブロック６０−５で決定したバッテリ出力上限値Ｐｂａｔｍａｘ１より大きくならないように、アシストモータ出力下限値Ｐａｓｍｍｉｎ２を制限する。ブロック６０−１３で算出されたアシストモータ出力下限値Ｐａｓｍｍｉｎ２は、アシストモータ５２の発電運転を抑制してエンジン５０への負荷を低減するためのアシストモータ５２の最大発電量を示すものか、あるいは、アシストモータ５２をアシスト運転するためのアシストモータ５２の出力の最小値を示すものである。アシストモータ５２のアシスト運転は、バッテリ５８からの電力が供給されることにより行なわれる。ここで、バッテリ５８から供給できる電力を越えてアシストモータ５２をアシスト運転させると、バッテリ５２を正常な充電状態に維持することができなくなる。図１０に示すブロック６０−３及びブロック６０−５では、バッテリの最大放電量としてバッテリ出力上限値Ｐｂａｔｍａｘ１を決定しているので、ブロック６０−１４は、ブロック６０−１３から出力されるアシストモータ出力下限値Ｐａｓｍｍｉｎ２を、ブロック６０−５から出力されるバッテリ出力上限値Ｐｂａｔｍａｘ１により制限することにより、バッテリ５８にとって許容できる電力をアシストモータ５２に供給するような条件となるように制御している。
【０１２３】
そして、ブロック６０−１５において、ブロック６０−１４から供給されたアシストモータ出力下限値Ｐａｓｍｍｉｎ２（ブロック６０−９で決定されたアシストモータ出力下限値Ｐａｓｍｍｉｎ１より大きな値）がアシストモータ出力下限値Ｐａｓｍｍｉｎとして設定され、動力分配部６０−８に出力される。
【０１２４】
以上のように、動力分配部であるブロック６０−８には、エンジン出力限界値としてのエンジン出力上限値Ｐｅｎｇｍａｘ、エンジン出力下限値Ｐｅｎｇｍｉｎ、アシストモータ出力限界値としてのアシストモータ出力上限値Ｐａｓｍｍａｘ、アシストモータ発電限界値としてのアシストモータ出力下限値Ｐａｓｍｍｉｎ、バッテリ放電限界値としてのバッテリ出力上限値Ｐｂａｔｍａｘ１、バッテリ充電限界値としてのバッテリ出力下限値Ｐｂａｔｍｉｎ１、及びバッテリ出力目標値Ｐｂａｔｔｇｔが入力される。ブロック６０−８は、これら入力された値に基づいて、油圧負荷実出力Ｐｈｙｄｏｕｔ、電気負荷実出力Ｐｅｌｃｏｕｔ、及びアシストモータ出力指令Ｐａｓｍｒｅｆを決定し、コントローラ３０の各部に出力する。
【０１２５】
そこで、コントローラ３０は、油圧負荷実出力Ｐｈｙｄｏｕｔに基づいて油圧負荷５４に供給する油圧を制御し、電気負荷実出力Ｐｅｌｃｏｕｔに基づいて電気負荷５６に供給する電力を制御し、アシストモータ出力指令Ｐａｓｍｒｅｆに基づいてアシストモータ５２によるエンジン５０のアシスト量又はアシストモータ５２による発電量を制御する。
【０１２６】
以上のように、本実施形態では、エンジン５０の回転数が低下し続けた際に、アシストモータ５２の出力下限値Ｐａｓｍｍｉｎを高くすることでエンジン５０をアシストモータ５２でアシストにてエンジン５０の回転数の復帰を促している。ただし、アシストモータ出力下限値Ｐａｓｍｍｉｎが、バッテリ出力上限値Ｐｂａｔｍａｘ１より大きくならないように、アシストモータ出力下限値Ｐａｓｍｍｉｎ２を制限しているため、バッテリ５８の充電状態を見ながらアシストモータ５２でエンジン５０をアシストするように制御している。したがって、蓄電部１９のバッテリ５８の蓄電量が少なく、アシストモータ５２をアシスト運転することができない場合は、本実施形態によるエンジンの出力制御は行なわれない。
【０１２７】
次に、本発明の第３実施形態について図１４を参照しながら説明する。図１４は本発明の第３実施形態による制御を行うためのコントローラ３０に含まれる制御部６０の機能ブロック図である。図１４において、図５及び図１０に示す構成部品と同等な部品には同じ符号を付し、その説明は省略する。
【０１２８】
第３実施形態は、上述の第１実施形態と第２実施形態を組み合わせたものである。すなわち、エンジン５０の回転数が低下し続けた際に、第１実施形態のようにエンジンの出力上限値Ｐｅｎｇｍａｘを制限することでエンジン５０の負荷を低減し、また、第２実施形態のようにアシストモータ出力下限値Ｐａｓｍｍｉｎを高く設定することでエンジン５０の負荷を低減し、結果としてエンジン５０の回転数を上げて目標回転数に復帰するように制御する。
【０１２９】
図１４に示す各機能ブロックは図５及び図１０に示す機能ブロックと同じであり、その説明は省略する。
【０１３０】
ここで、制御部６０において、油圧負荷実出力Ｐｈｙｄｏｕｔ、電気負荷実出力Ｐｅｌｃｏｕｔ、及びアシストモータ出力指令Ｐａｓｍｒｅｆを決定する処理について説明する。図１５は制御部６０において行われる処理のフローチャートである。
【０１３１】
ステップＳ１において、マップ又は変換テーブルを用いてエンジン５０の現在の回転数を示すエンジン実回転数Ｎａｃｔから、現在のエンジン５０のエンジン出力上限値Ｐｅｎｇｍａｘ及びエンジン出力上限値Ｐｅｎｇｍｉｎが決定される。この処理はブロック６０−１により行われる。この際、エンジン出力上限値Ｐｅｎｇｍａｘ及びエンジン出力上限値Ｐｅｎｇｍｉｎを、マップ又は変換テーブルにおいて、エンジン５０の燃費効率の良い範囲に設定しておけば、エンジン５０の省エネ効果を得ることができる。
【０１３２】
次に、ステップＳ２において、現在のバッテリ電圧Ｖａｃｔから、バッテリ出力上限値Ｐｂａｔｍａｘ１及びバッテリ出力下限値Ｐｂａｔｍｉｎ１が決定される。この処理は、ブロック６０−２〜６０−６により行われる。
【０１３３】
まず、ブロック６０−２は、現在のバッテリ電圧Ｖａｃｔから演算により現在の充電率ＳＯＣａｃｔを求める。次に、ブロック６０−３は、マップあるいは変換テーブルを用いて現在の充電率ＳＯＣａｃｔから、所定の最大充電電流及び最大放電電流からバッテリ出力上限値Ｐｂａｔｍａｘ１１及びバッテリ出力下限値Ｐｂａｔｍｉｎ１１を決定する。同時に、ブロック６０−４は、マップあるいは変換テーブルを用いて現在の充電率ＳＯＣａｃｔから、ＳＯＣ下限値以下にならず、ＳＯＣ上限値以上とならないバッテリ出力上限値Ｐｂａｔｍａｘ１２及びバッテリ出力下限値Ｐｂａｔｍｉｎ１２を決定する。続いて、ブロック６０−５は、バッテリ出力上限値Ｐｂａｔｍａｘ１１とバッテリ出力上限値Ｐｂａｔｍａｘ１２のうち、値の小さいほうをバッテリ出力上限値Ｐｂａｔｍａｘ１として決定する。ここで、バッテリ出力上限値Ｐｂａｔｍａｘ１は最大放電電力を示し、バッテリ出力下限値Ｐｂａｔｍｉｎ１は最大充電電力を示す。また、ブロック６０−６は、バッテリ出力下限値Ｐｂａｔｍｉｎ１１とバッテリ出力下限値Ｐｂａｔｍｉｎ１２のうち、大きいほうをバッテリ出力下限値Ｐｂａｔｍｉｎ１として決定する。
【０１３４】
続いて、ステップＳ３において、予め準備されているマップ又は変換テーブルから、入力された現在のアシストモータ実回転数Ｎａｓｍａｃｔにおけるアシストモータ５２の出力の下限値Ｐａｓｍｍｉｎ１と上限値Ｐａｓｍｍａｘとを求める。このマップ又は変換テーブルは図５に示すように、アシストモータ５２の回転数に対する出力の下限値及び上限値が示されている。この処理はブロック６０−９で行なわれる。ブロック６０−９は、求めたアシストモータ５２の出力の下限値Ｐａｓｍｍｉｎ１と上限値Ｐａｓｍｍａｘとを動力分配部６０−８に出力する。
【０１３５】
次に、ステップＳ４において、エンジン目標回転数Ｎｅｎｇｒｅｆとエンジン実回転数Ｎｅｎｇａｃｔとの偏差Ｎｅｎｇｅｒｒを算出する。この処理はブロック６０−１０で行なわれる。算出された偏差Ｎｅｎｇｅｒｒは、ブロック６０−１１とブロック６０−１３に供給される。
【０１３６】
続いて、ステップＳ５において、エンジン出力上限値Ｐｅｎｇｍａｘ２を算出する。エンジン出力上限値Ｐｅｎｇｍａｘ２の算出は、図７に示す算出方法によりブロック６０−１１が行なう。すなわち、ブロック６０−１１は、入力されたエンジン実出力Ｐｅｎｇｍａｘとブロック６０−１１から供給される偏差Ｎｅｎｇｅｒｒとからエンジン出力の補正値１としてエンジン出力上限値Ｐｅｎｇｍａｘ２を算出し、算出したエンジン出力上限値Ｐｅｎｇｍａｘ２をブロック６０−１２に出力する。ブロック６０−１２は、ブロック６０−１から供給されるエンジン出力上限値Ｐｅｎｇｍａｘ１とブロック６０−１１から供給されるエンジン出力上限値Ｐｅｎｇｍａｘ２とを比較し、エンジン出力上限値Ｐｅｎｇｍａｘ１がエンジン出力上限値Ｐｅｎｇｍａｘ２以下の場合には、エンジン出力上限値Ｐｅｎｇｍａｘ１をそのままエンジン出力上限値Ｐｅｎｇｍａｘとして動力分配部６０−８に出力する。一方、エンジン出力上限値Ｐｅｎｇｍａｘ１がエンジン出力上限値Ｐｅｎｇｍａｘ２より大きい場合には、ブロック６０−１２は、エンジン出力上限値Ｐｅｎｇｍａｘ１ではなく、エンジン出力上限値Ｐｅｎｇｍａｘ２をエンジン出力上限値Ｐｅｎｇｍａｘとして動力分配部６０−８に出力する。すなわち、ブロック６０−１２は、エンジン出力上限値Ｐｅｎｇｍａｘを制限してエンジン出力上限値Ｐｅｎｇｍａｘ２を越えないようにする。
【０１３７】
続いて、ステップＳ６において、アシストモータ出力下限値Ｐａｓｍｍｉｎ２を算出し、算出したアシストモータ出力下限値Ｐａｓｍｍｉｎ２をアシストモータ出力下限値Ｐａｓｍｍｉｎとして動力分配部６０−８に供給する。アシストモータ出力下限値Ｐａｓｍｍｉｎ２の算出は、図１２に示す算出方法によりブロック６０−１３が行なう。すなわち、ブロック６０−１３は、動力分配部６０−８で算出したアシストモータ出力指令Ｐａｓｍｒｅｆを補正して、ブロック６０−９で決定されたアシストモータ出力下限値Ｐａｓｍｍｉｎ１より大きな値であるアシストモータ出力下限値Ｐａｓｍｍｉｎ２を算出する。算出されたアシストモータ出力下限値Ｐａｓｍｍｉｎ２は、ブロック６０−１４に供給される。ブロック６０−１４は、ブロック６０−１３で算出されたたアシストモータ出力下限値Ｐａｓｍｍｉｎ２がブロック６０−５で決定したバッテリ出力上限値Ｐｂａｔｍａｘ１より大きくならないように、アシストモータ出力下限値Ｐａｓｍｍｉｎ２を制限する。制限されたアシストモータ出力下限値Ｐａｓｍｍｉｎ２はブロック６０−１５に供給され、アシストモータ出力下限値Ｐａｓｍｍｉｎとして設定されて、動力分配部６０−８に供給される。
【０１３８】
続いて、ステップＳ７において、現在の充電率ＳＯＣａｃｔからバッテリ出力目標値Ｐｂａｔｔｇｔが決定される。この処理はブロック６０−７により行われる。
【０１３９】
次に、ステップＳ８において、電気負荷実出力Ｐｅｌｃｏｕｔが、エンジン５０及びバッテリ５８の要求出力の限界値に基づいて決定される。ステップＳ８における処理は動力分配部であるブロック６０−８で行われる。この処理については後述する。続いて、ステップＳ９において、油圧負荷実出力Ｐｈｙｄｏｕｔが、エンジン５０及びバッテリ５８の要求出力の限界値に基づいて決定される。ステップＳ９における処理は動力分配部であるブロック６０−８で行われる。この処理については後述する。
【０１４０】
次に、ステップＳ１０において、バッテリ出力Ｐｂａｔｏｕｔが、エンジン５０、電気負荷５６、及び、バッテリ５８の算出された出力に基づいて決定される。バッテリ出力Ｐｂａｔｏｕｔは、バッテリ５８への充放電電力である。ステップＳ１０における処理は動力分配部であるブロック６０−８で行われる。この処理については後述する。
【０１４１】
続いて、ステップＳ１１において、アシストモータ出力指令Ｐａｓｍｒｅｆが、電気負荷実出力Ｐｅｌｃｏｕｔとバッテリ出力Ｐｂａｔｏｕｔとの比較に基づいて決定される。ステップＳ１１における処理は動力分配部であるブロック６０−８で行われる。この処理については後述する。
【０１４２】
ステップＳ１１の処理が終了したら、制御部６０での処理は終了する。以上の制御部６０での処理により、油圧負荷実出力Ｐｈｙｄｏｕｔ、電気負荷実出力Ｐｅｌｃｏｕｔ、及びアシストモータ出力指令Ｐａｓｍｒｅｆが決定される。
【０１４３】
ここで、上述のステップＳ８における処理について詳細に説明する。図１６はステップＳ８における処理のフローチャートである。
【０１４４】
まず、ステップＳ８−１において、電気負荷５６に供給可能な最大電力である電気負荷出力上限値Ｐｅｌｃｍａｘを算出する。つまり、電気負荷出力上限値Ｐｅｌｃｍａｘは、電気負荷５６の力行運転時に供給できる最大電力であり、力行運転時の電力がプラスの値として設定される。ここで、油圧負荷５４は電気負荷５６に対する駆動力源としては機能しないため、油圧負荷出力要求Ｐｈｙｄｒｅｑは考慮されず０となるので、電気負荷出力上限値Ｐｅｌｃｍａｘは、エンジン出力上限値Ｐｅｎｇｍａｘ２で制限されたエンジン出力上限値Ｐｅｎｇｍａｘとアシストモータ出力下限値Ｐａｓｍｍｉｎ２で制限されたアシストモータ出力下限値Ｐａｓｍｍｉｎとのいずれか小さいほうと、バッテリ出力上限値Ｐｂａｔｍａｘ１との和である。すなわち、アシストモータ５２には、そのときの回転数Ｎａｓｍａｃｔによって決まる最大発電量としてアシストモータ出力下限値Ｐａｓｍｍｉｎ１がある。これは図１４のブロック６０−９決められる。したがって、エンジン５０からアシストモータ５２に供給する動力であるエンジン出力上限値Ｐｅｎｇｍａｘが、アシストモータ出力下限値Ｐａｓｍｍｉｎ１を越える場合は、アシストモータ５２の発電をアシストモータ出力下限値Ｐａｓｍｍｉｎ１以下に制限する必要がある。
【０１４５】
ここで、アシストモータ出力下限値Ｐａｓｍｍｉｎとして、通常はブロック６０−９で決定されるアシストモータ出力下限値Ｐａｓｍｍｉｎ１が設定されており、エンジン出力上限値Ｐｅｎｇｍａｘはアシストモータ出力下限値Ｐａｓｍｍｉｎ１で制限されている。しかし、エンジン５０の回転数が大きく低下する場合は、上述のように、アシストモータ出力下限値Ｐａｓｍｍｉｎとして、ブロック６０−１３で算出されたアシストモータ出力下限値Ｐａｓｍｍｉｎ２が設定され、エンジン出力上限値Ｐｅｎｇｍａｘはアシストモータ出力下限値Ｐａｓｍｍｉｎ２で制限されることとなる。なお、図１７は上述の電気負荷出力上限値Ｐｅｌｃｍａｘの算出モデルを示す図である。
【０１４６】
次に、ステップＳ８−２において、電気負荷要求出力Ｐｅｌｃｒｅｑと電気負荷出力上限値Ｐｅｌｃｍａｘを比較し、電気負荷要求出力Ｐｅｌｃｒｅｑが電気負荷出力上限値Ｐｅｌｃｍａｘ以下であるか否かを判定する。
【０１４７】
ステップＳ８−２において電気負荷要求出力Ｐｅｌｃｒｅｑが電気負荷出力上限値Ｐｅｌｃｍａｘより大きいと判定された場合（ステップＳ８−２のＮｏ）、処理はステップＳ８−３に進む。ステップＳ８−３では、電気負荷実出力Ｐｅｌｃｏｕｔの値を電気負荷出力上限値Ｐｅｌｃｍａｘの値に等しくし、その後処理を終了する。すなわち、電気負荷５６が要求する電力が、アシストモータ５２とバッテリ５８とで供給できる電力の最大値より大きい場合は、アシストモータ５２とバッテリ５８とで供給できる最大電力しか電気負荷５６に供給しないこととし、電気負荷に供給する電力に上限を設けている。
【０１４８】
一方、ステップＳ８−２において電気負荷要求出力Ｐｅｌｃｒｅｑが電気負荷出力上限値Ｐｅｌｃｍａｘ以下であると判定された場合（ステップＳ８−２のＹｅｓ）、処理はステップＳ８−４に進む。
【０１４９】
ステップＳ８−４では、電気負荷５６の回生運転時の最大電力が算出される。ここで、電気負荷５６は、回生運転時の電力をマイナスの値としているため、回生運転時の最大電力は電気負荷出力下限値Ｐｅｌｃｍｉｎとして算出される。電気負荷出力下限値Ｐｅｌｃｍｉｎは、エンジン出力下限値Ｐｅｎｇｍｉｎから油圧負荷出力要求Ｐｈｙｄｒｅｑを減算した値とアシストモータ出力上限値Ｐａｓｍｍａｘのいずれか大きいほうに、バッテリ出力下限値Ｐｂａｔｍｉｎ１を加算して求められる。図１８は上述の電気負荷出力下限値Ｐｅｌｃｍｉｎの算出モデルを示す図である。油圧負荷５４が要求する動力である油圧負荷要求出力Ｐｈｙｄｒｅｑに対してエンジン５０から供給する動力を最小として、その差分をアシストモータ５２がアシスト運転することで補うことで、アシストモータ５２は最大限の電力を消費してエンジン５０をアシストすることができる。しかし、アシストモータ５２には、その時の回転数Ｎａｓｍａｃｔにより決まる最大出力であるアシストモータ出力上限値Ｐａｓｍｍａｘがある。アシストモータ出力上限値Ｐａｓｍｍａｘは、図１４のブロック６０−９で決定される。したがって、油圧負荷要求出力Ｐｈｙｄｒｅｑからエンジン出力下限値Ｐｅｎｇｍｉｎを減算した値（すなわち、アシストモータ５２がエンジン５０をアシストできる最大出力）がアシストモータ出力上限値Ｐａｓｍｍａｘを越えた場合は、アシストモータ５２のアシストをアシストモータ出力上限値Ｐａｓｍｍａｘに制限しておく必要がある。そこで、ステップＳ４−８の処理では、油圧負荷要求出力Ｐｈｙｄｒｅｑからエンジン出力下限値Ｐｅｎｇｍｉｎを減算した値とアシストモータ出力上限値Ｐａｓｍｍａｘのいずれか小さいほうを選定し、アシストモータ５２で消費できる最大電力としている。
【０１５０】
次に、ステップＳ８−５において、電気負荷要求出力Ｐｅｌｃｒｅｑと電負荷出力下限値Ｐｅｌｃｍｉｎとを比較し、電気負荷要求出力Ｐｅｌｃｒｅｑが電負荷出力下限値Ｐｅｌｃｍｉｎ以上であるか否かを判定する。
【０１５１】
ステップＳ８−５において、電気負荷要求出力Ｐｅｌｃｒｅｑが電負荷出力下限値Ｐｅｌｃｍｉｎより小さいと判定された場合（ステップＳ８−５のＮｏ）、処理はステップＳ８−６に進む。ステップＳ８−６では、電気負荷実出力Ｐｅｌｃｏｕｔの値を電気負荷出力下限値Ｐｅｌｃｍｉｎの値に等しくし、その後、処理を終了する。すなわち、電気負荷５６が回生する電力が、アシストモータ５２で消費できる最大電力とバッテリ５８に蓄積できる最大電力の和より大きい場合は、電気負荷５６が回生する電力が、アシストモータ５２で消費できる最大電力とバッテリ５８に蓄積できる最大電力の和より大きくならないように上限を設けている。
【０１５２】
一方、ステップＳ８−５において、電気負荷要求出力Ｐｅｌｃｒｅｑが電負荷出力下限値Ｐｅｌｃｍｉｎ以上であると判定された場合（ステップＳ８−５のＹｅｓ）、処理はステップＳ８−７に進む。ステップＳ８−７では、電気負荷実出力Ｐｅｌｃｏｕｔの値を電気負荷要求Ｐｅｌｃｒｅｑの値に等しくし、その後処理を終了する。すなわち、電気負荷５６が回生する電力が、アシストモータ５２で消費できる最大電力とバッテリ５８に蓄積できる最大電力の和以下の場合は、電気負荷５６が回生する電力をそのまま出力するように設定している。このように、電気負荷実出力Ｐｅｌｃｏｕｔの値の算出に、エンジン出力上下限値Ｐｅｎｇｍａｘ，Ｐｅｎｇｍｉｎ及びバッテリ出力上下限値Ｐｂａｔｍａｘ，Ｐｂａｔｍｉｎを考慮することで、電気負荷５６を安定して制御することができる。
【０１５３】
次に、上述のステップＳ９の処理について詳細に説明する。図１９はステップＳ９の処理のフローチャートである。
【０１５４】
まず、ステップＳ９−１において、油圧負荷５４に供給可能な最大動力である油圧負荷出力上限値Ｐｈｙｄｍａｘを算出する。油圧負荷出力上限値Ｐｈｙｄｍａｘは、バッテリ出力上限値Ｐｂａｔｍａｘ１から電気負荷出力Ｐｅｌｅｃｏｕｔを減算した値とアシストモータ出力上限値Ｐａｓｍｍａｘのいずれか小さいほうを、エンジン出力上限値Ｐｅｎｇｍａｘに加算して算出される。アシストモータ５２には、そのときの回転数Ｐａｓｍａｃｔにより決まる最大出力としてアシストモータ出力上限値Ｐａｓｍｍａｘがあり、エンジン５０をアシストする際には、アシストモータ出力上限値Ｐａｓｍｍａｘを越えてアシストすることはできない。そこで、ステップＳ９−１では、バッテリ出力上限値Ｐｂａｔｍａｘ１から電気負荷出力Ｐｅｌｅｃｏｕｔを減算した値が、アシストモータ出力上限値Ｐａｓｍｍａｘより大きい場合は、アシストモータ出力上限値Ｐａｓｍｍａｘを採用して、アシストモータ５２のアシスト量を制限する。アシストモータ出力上限値Ｐａｓｍｍａｘは図１４のブロック６０−９において決定される値である。
【０１５５】
図２０は油圧負荷出力上限値Ｐｈｙｄｍａｘの算出モデルを示す図である。ここで、電気負荷実出力Ｐｅｌｃｏｕｔには極性があり、電気負荷出力上下限値Ｐｅｌｅｃｍａｘ，Ｐｅｌｅｃｍｉｎと同様に、プラスとマイナスの値をとる。電気負荷実出力Ｐｅｌｃｏｕｔがプラスの値のときは電気負荷５６の力行運転時に電力を供給することを意味し、油圧負荷５４に供給可能な動力は電気負荷５６に供給する電力を減算したものとなる。一方、電気負荷実出力Ｐｅｌｃｏｕｔがマイナスの値のときは電気負荷５６の回生運転時に回生電力を供給することを意味し、油圧負荷５４に供給可能な動力は電気負荷５６からの回生電力を加算したものとなる。電気負荷実出力Ｐｅｌｃｏｕｔのマイナスの値が減算されるため、自動的にマイナスとマイナスでプラスとなり、回生電力は加算されることとなる。
【０１５６】
次に、ステップＳ９−２において、油圧負荷要求出力Ｐｈｙｄｒｅｑと油圧負荷出力上限値Ｐｈｙｄｍａｘとを比較し、油圧負荷要求出力Ｐｈｙｄｒｅｑが油圧負荷出力上限値Ｐｈｙｄｍａｘ以下であるか否かが判定される。
【０１５７】
ステップＳ９−２において、油圧負荷要求出力Ｐｈｙｄｒｅｑが油圧負荷出力上限値Ｐｈｙｄｍａｘ以下ではない、すなわち、油圧負荷要求出力Ｐｈｙｄｒｅｑが油圧負荷出力上限値Ｐｈｙｄｍａｘより大きいと判定された場合（ステップＳ９−２のＮｏ）、処理はステップＳ９−３に進む。ステップＳ９−３では、油圧負荷実出力Ｐｈｙｄｏｕｔの値を油圧負荷出力上限値Ｐｈｙｄｍａｘに等しくし、その後処理を終了する。すなわち、油圧負荷５４が要求する動力が、エンジン５０から出力できる最大動力とアシストモータ５２から出力できる最大動力の和より大きい場合は、油圧負荷５４に供給する動力を、エンジン５０から出力できる最大動力とアシストモータ５２から出力できる最大動力の和までとして上限を設けている。
【０１５８】
一方、ステップＳ９−２において、油圧負荷要求出力Ｐｈｙｄｒｅｑが油圧負荷出力上限値Ｐｈｙｄｍａｘ以下であると判定された場合（ステップＳ９−２のＹｅｓ）、処理はステップＳ９−４に進む。ステップＳ９−４では、油圧負荷出力Ｐｈｙｄｏｕｔの値を油圧負荷要求出力Ｐｈｙｄｒｅｑの値に等しくし、その後処理を終了する。すなわち、油圧負荷５４が要求する動力が、エンジン５０から出力できる最大動力とアシストモータ５２から出力できる最大動力の和以下である場合は、油圧負荷５４が要求する動力をそのまま供給するように設定している。このように、油圧負荷実出力Ｐｈｙｄｏｕｔの値の算出に、エンジン出力上限値Ｐｅｎｇｍａｘ、及びバッテリ出力上限値Ｐｂａｔｍａｘ１を考慮することで、油圧負荷５４を安定して制御することができる。
【０１５９】
次に、上述のステップＳ１０の処理について詳細に説明する。図２１はステップＳ１０の処理のフローチャートである。ここで、バッテリ出力上限値Ｐｂａｔｍａｘ２は最大放電電力を示し、バッテリ出力下限値Ｐｂａｔｍｉｎ２は最大充電電力を示す。
【０１６０】
まず、ステップＳ１０−１において、上述のように決定された電気負荷５６への出力と油圧負荷５４への出力の状態において、バッテリ５８が放電可能な電力であるバッテリ制御出力上限値Ｐｂａｔｍａｘ２を算出する。バッテリ制御出力上限値Ｐｂａｔｍａｘ２は、電気負荷実出力Ｐｅｌｃｏｕｔと油圧負荷出力Ｐｈｙｄｏｕｔとの和からエンジン出力下限値Ｐｅｎｇｍｉｎを減算して算出される。図２２はバッテリ制御出力上限値Ｐｂａｔｍａｘ２の算出モデルを示す図である。バッテリ制御出力上限値Ｐｂａｔｍａｘ２は、電気負荷５６で消費できる電力と、アシストモータ５２で油圧系をアシストして消費することのできる電力との和となる。
【０１６１】
次に、ステップＳ１０−２において、ステップＳ２で決定したバッテリ出力上限値Ｐｂａｔｍａｘ１とバッテリ制御出力上限値Ｐｂａｔｍａｘ２とを比較し、バッテリ制御出力上限値Ｐｂａｔｍａｘ２がバッテリ出力上限値Ｐｂａｔｍａｘ１以上であるか否かを判定する。
【０１６２】
ステップＳ１０−２において、バッテリ制御出力上限値Ｐｂａｔｍａｘ２がバッテリ出力上限値Ｐｂａｔｍａｘ１以上であると判定された場合（ステップＳ１０−２のＹｅｓ）、処理はステップＳ１０−３に進む。ステップＳ１０−３では、バッテリ出力上限値Ｐｂａｔｍａｘの値をバッテリ出力上限値Ｐｂａｔｍａｘ１の値に等しくする。その後、処理はステップＳ１０−５に進む。
【０１６３】
一方、ステップＳ１０−２において、バッテリ制御出力上限値Ｐｂａｔｍａｘ２がバッテリ出力上限値Ｐｂａｔｍａｘ１以上ではない、すなわちバッテリ制御出力上限値Ｐｂａｔｍａｘ２がバッテリ出力上限値Ｐｂａｔｍａｘ１より小さいと判定された場合（ステップＳ１０−２のＮｏ）、処理はステップＳ１０−４に進む。ステップＳ１０−４では、バッテリ出力上限値Ｐｂａｔｍａｘの値をバッテリ制御出力上限値Ｐｂａｔｍａｘ２の値に等しくする。その後、処理はステップＳ１０−５に進む。
【０１６４】
ステップＳ１０−５では、バッテリ目標出力Ｐｂａｔｔｇｔとバッテリ出力上限値Ｐｂａｔｍａｘとを比較し、バッテリ目標出力Ｐｂａｔｔｇｔがバッテリ出力上限値Ｐｂａｔｍａｘ以下であるか否かを判定する。
【０１６５】
ステップＳ１０−５においてバッテリ目標出力Ｐｂａｔｔｇｔがバッテリ出力上限値Ｐｂａｔｍａｘ以下ではない、すなわちバッテリ目標出力Ｐｂａｔｔｇｔがバッテリ出力上限値Ｐｂａｔｍａｘより大きいと判定された場合（ステップＳ１０−５のＮｏ）、処理はステップＳ１０−６に進む。ステップＳ１０−６では、バッテリ出力Ｐｂａｔｏｕｔの値をバッテリ出力上限値Ｐｂａｔｍａｘの値に等しくし、その後処理を終了する。
【０１６６】
このように、電気負荷実出力Ｐｅｌｃｏｕｔと油圧負荷実出力Ｐｈｙｄｏｕｔとをもとに、バッテリ出力上下限値Ｐｂａｔｍａｘ２，Ｐｂａｔｍｉｎ２を求める。これにより、実際の負荷要求に応じたバッテリ５８の出力（充放電電力）の最大値を求めることができるので、実際の作業状況に対応してバッテリ５８の充放電を行なうことができる。
【０１６７】
また、電気負荷実出力Ｐｅｌｃｏｕｔと油圧負荷実出力Ｐｈｙｄｏｕｔとをもとに求められたバッテリ出力上下限値と、現在のバッテリ５８の充電状態に応じた充放電可能な最大電力とを対比して、バッテリ要求限界値を求める。これにより、バッテリ５８に過大な負荷がかかることを防止することができる。
【０１６８】
そして、バッテリ５８のバッテリ出力Ｐｂａｔｏｕｔがバッテリ要求限界値の範囲内に入るように、バッテリ要求限界値とバッテリ目標出力とを対比し、バッテリ目標出力がバッテリ要求限界値の範囲外の場合には、バッテリ目標出力の補正を行なう。これにより、より確実にバッテリ５８に過大な負荷がかかることを防止することができる。
【０１６９】
図２３はステップＳ１０−６の処理により決定されるバッテリ出力Ｐｂａｔｏｕｔの値を、バッテリ充電率（ＳＯＣ）とバッテリ出力との関係を示すグラフ中に示す図である。図２３のグラフには、図１４に示すブロック６０−５で決定されるバッテリ出力上限値Ｐｂａｔｍａｘ１が示されている。バッテリ出力上限値Ｐｂａｔｍａｘ１は、バッテリ出力上限値Ｐｂａｔｍａｘ１１とバッテリ出力上限値Ｐｂａｔｍａｘ１２の値の小さいほうの値であり、図中、２点鎖線が引かれている部分に相当する。また、図２３のグラフには、図１４に示すブロック６０−６で決定されるＰｂａｔｍｉｎ１も示されている。バッテリ出力下限値Ｐｂａｔｍｉｎ１は、バッテリ出力下限値Ｐｂａｔｍｉｎ１１とバッテリ出力下限値Ｐｂａｔｍｉｎ１２の値の大きいほうの値（ゼロに近いほう）であり、図中、２点鎖線が引かれている部分に相当する。
【０１７０】
実際のバッテリ出力Ｐｂａｔｏｕｔは、放電を示すプラス側では、２点鎖線で示されるＰｂａｔｍａｘ１より下側の領域に入るように決定される。一方、  実際のバッテリ出力Ｐｂａｔｏｕｔは、充電を示すマイナス側では、２点鎖線で示されるＰｂａｔｍｉｎ１より上側の領域に入るように決定される。
【０１７１】
また、図２３に示すグラフには、ブロック６０−７で参照されるバッテリ出力目標値Ｐｂａｔｔｇｔも示されている。本実施形態では、バッテリ５８の放電可能な最大値として設定するバッテリ出力上限値Ｐｂａｔｍａｘ１と、バッテリ５８の充電可能な最大値として設定するバッテリ下限値Ｐｂａｔｍｉｎ１とに加えて、バッテリ５８の現在の充電率ＳＯＣaｃｔも考慮して、バッテリ５８の実際の放電電力又は充電電力をバッテリ出力Ｐｂａｔｏｕｔとして決定する。
【０１７２】
ステップＳ１０−６の処理では、図２３に示すように、バッテリ５８の現在の充電率ＳＯＣａｃｔにおけるバッテリ目標出力Ｐｂａｔｔｇｔが、バッテリ出力制御上限値Ｐｂａｔｍａｘを超えているので、目標放電電力が放電電力の上限値を超えている。この場合、バッテリ目標出力Ｐｂａｔｔｇｔをバッテリ出力Ｐｂａｔｏｕｔとして設定すべきではない。したがって、実際のバッテリ出力Ｐｂａｔｏｕｔはバッテリ出力制御上限値Ｐｂａｔｍａｘに設定される。ここで、上述のステップＳ１０−２及びステップＳ１０−４において、バッテリ制御出力上限値Ｐｂａｔｍａｘ２がバッテリ出力上限値Ｐｂａｔｍａｘ１より小さため、バッテリ出力上限値Ｐｂａｔｍａｘの値はバッテリ制御出力上限値Ｐｂａｔｍａｘ２の値に等しく設定されている。したがって、図２３に示す例の場合、最終的にバッテリ出力上限値Ｐｂａｔｍａｘの値、すなわちバッテリ制御出力上限値Ｐｂａｔｍａｘ２の値が実際のバッテリ出力Ｐｂａｔｏｕｔとして設定される。
【０１７３】
一方、ステップＳ１０−５においてバッテリ目標出力Ｐｂａｔｔｇｔがバッテリ出力上限値Ｐｂａｔｍａｘ以下であると判定された場合（ステップＳ１０−５のＹｅｓ）、処理はステップＳ１０−７に進む。ステップＳ１０−７では、上述のように決定された電気負荷５６への出力と油圧負荷５４への出力の状態において、バッテリ５８が充電可能な電力であるバッテリ制御出力下限値Ｐｂａｔｍｉｎ２を算出する。バッテリ制御出力下限値Ｐｂａｔｍｉｎ２は、電気負荷実出力Ｐｅｌｃｏｕｔと油圧負荷出力Ｐｈｙｄｏｕｔとの和からエンジン出力上限値Ｐｅｎｇｍａｘを減算して算出される。図２４はバッテリ制御出力下限値Ｐｂａｔｍｉｎ２の算出モデルを示す図である。バッテリ制御出力下限値Ｐｂａｔｍｉｎ２は、電気負荷５６の回生電力とアシストモータ５２で発電する電力の和となる。
【０１７４】
続いて、ステップＳ１０−８において、バッテリ出力下限値Ｐｂａｔｍｉｎ１とバッテリ制御出力下限値Ｐｂａｔｍｉｎ２とを比較し、バッテリ制御出力下限値Ｐｂａｔｍｉｎ２がバッテリ出力下限値Ｐｂａｔｍｉｎ１以下であるか否かを判定する。
【０１７５】
ステップＳ１０−８においてバッテリ制御出力下限値Ｐｂａｔｍｉｎ２がバッテリ出力下限値Ｐｂａｔｍｉｎ１以下であると判定された場合（ステップＳ１０−８のＹｅｓ）、処理はステップＳ１０−９に進む。ステップＳ１０−９では、バッテリ出力下限値Ｐｂａｔｍｉｎの値をバッテリ出力下限値Ｐｂａｔｍｉｎ１の値に等しくする。その後、処理はステップＳ１０−１１に進む。
【０１７６】
一方、ステップＳ１０−８においてバッテリ制御出力下限値Ｐｂａｔｍｉｎ２がバッテリ出力下限値Ｐｂａｔｍｉｎ１以下ではない、すなわちバッテリ制御出力下限値Ｐｂａｔｍｉｎ２がバッテリ出力下限値Ｐｂａｔｍｉｎ１より大きいと判定された場合（ステップＳ１０−８のＮｏ）、処理はステップＳ１０−１０に進む。ステップＳ１０−１０では、バッテリ出力下限値Ｐｂａｔｍｉｎの値をバッテリ制御出力下限値Ｐｂａｔａｍｉｎ２の値に等しくする。その後、処理はステップＳ１０−１１に進む。
【０１７７】
次に、ステップＳ１０−１１では、バッテリ目標出力Ｐｂａｔｔｇｔとバッテリ出力下限値Ｐｂａｔｍｉｎとを比較し、バッテリ目標出力Ｐｂａｔｔｇｔがバッテリ出力下限値Ｐｂａｔｍｉｎ以上であるか否かを判定する。
【０１７８】
ステップＳ１０−１１においてバッテリ目標出力Ｐｂａｔｔｇｔがバッテリ出力下限値Ｐｂａｔｍｉｎ以上であると判定された場合（ステップＳ１０−１１のＹｅｓ）、処理はステップＳ１０−１２に進む。ステップＳ１０−１２では、バッテリ出力Ｐｂａｔｏｕｔの値をバッテリ目標出力Ｐｂａｔｔｇｔの値に等しくし、その後処理を終了する。図２５はステップＳ１０−１２の処理により決定されるバッテリ出力Ｐｂａｔｏｕｔの値をバッテリ充電率（ＳＯＣ）とバッテリ出力との関係を示すグラフ中に示す図である。
【０１７９】
図２５に示す例の場合、まず、バッテリ出力上限値Ｐｂａｔｍａｘ１がバッテリ制御出力上限値Ｐｂａｔｍａｘ２以下であるため、ステップＳ１０−２及びステップＳ１０−３の処理により、バッテリ制御出力上限値Ｐｂａｔｍａｘ１の値がバッテリ出力上限値Ｐｂａｔｍａｘとして設定される。また、バッテリ制御出力下限値Ｐｂａｔｍｉｎ２がバッテリ出力下限値Ｐｂａｔｍｉｎ１以下であるので、ステップＳ１０−８及びステップＳ１０−９の処理により、バッテリ出力下限値Ｐｂａｔｍｉｎ１の値がバッテリ出力下限値Ｐｂａｔｍｉｎとして設定される。ここで、バッテリ５８の現在の充電率ＳＯＣａｃｔにおけるバッテリ目標出力Ｐｂａｔｔｇｔは、バッテリ出力下限Ｐｂａｔｍｉｎ以上であり且つバッテリ出力上限値Ｐｂａｔｍａｘ以下であるので、バッテリ目標出力Ｐｂａｔｔｇｔを実際のバッテリ出力Ｐｂａｔｏｕｔとして設定可能である。したがって、ステップＳ１０−１２の処理により、バッテリ目標出力Ｐｂａｔｔｇｔの値がバッテリ出力Ｐｂａｔｏｕｔとして設定される。
【０１８０】
一方、ステップＳ１０−１１においてバッテリ目標出力Ｐｂａｔｔｇｔがバッテリ出力下限値Ｐｂａｔｍｉｎ以上ではない、すなわちバッテリ目標出力Ｐｂａｔｔｇｔがバッテリ出力下限値Ｐｂａｔｍｉｎより小さいと判定された場合（ステップＳ１０−１１のＮｏ）、処理はステップＳ１０−１３に進む。ステップＳ１０−１３では、バッテリ出力Ｐｂａｔｏｕｔの値をバッテリ出力下限値Ｐｂａｔｍｉｎの値に等しくし、その後処理を終了する。図２６はステップＳ１０−１２の処理により決定されるバッテリ出力Ｐｂａｔｏｕｔの値をバッテリ充電率（ＳＯＣ）とバッテリ出力との関係を示すグラフ中に示す図である。
【０１８１】
図２６に示す例の場合、バッテリ制御出力下限値Ｐｂａｔｍｉｎ２がバッテリ出力下限値Ｐｂａｔｍｉｎ１以下であるので、ステップＳ１０−８及びステップＳ１０−９の処理により、バッテリ出力下限値Ｐｂａｔｍｉｎ１の値がバッテリ出力下限値Ｐｂａｔｍｉｎとして設定される。ここで、バッテリ５８の現在の充電率ＳＯＣａｃｔにおけるバッテリ目標出力Ｐｂａｔｔｇｔは、バッテリ出力下限Ｐｂａｔｍｉｎ未満であるので、目標充電電力がバッテリの最大充電電力を超えており、バッテリ目標出力Ｐｂａｔｔｇｔを実際のバッテリ出力Ｐｂａｔｏｕｔとして設定すべきではない。したがって、ステップＳ１０−１３の処理により、バッテリ出力下限値Ｐｂａｔｍｉｎの値、すなわちバッテリ出力下限値Ｐｂａｔｍｉｎ１の値がバッテリ出力Ｐｂａｔｏｕｔとして設定される。
【０１８２】
このように、電気負荷実出力Ｐｅｌｃｏｕｔと油圧負荷実出力Ｐｈｙｄｏｕｔとをもとに、バッテリ出力上下限値Ｐｂａｔｍａｘ２，Ｐｂａｔｍｉｎ２を求める。これにより、実際の負荷要求に応じたバッテリ５８の出力（充放電電力）の最大値を求めることができるので、実際の作業状況に対応してバッテリ５８の充放電を行なうことができる。
【０１８３】
次に、上述のステップＳ１１の処理について詳細に説明する。図２７はステップＳ１１の処理のフローチャートである。
【０１８４】
処理が開始されると、ステップＳ１１−１において、アシストモータ５２の運転を指示するアシストモータ出力指令Ｐａｓｍｒｅｆを算出し、その後処理を終了する。アシストモータ出力指令Ｐａｓｍｒｅｆは、バッテリ出力Ｐｂａｔｏｕｔから電気負荷実出力Ｐｅｌｃｏｕｔを減算して算出される。このように、バッテリ出力と電気負荷実出力とを対比してアシストモータ出力指令を求めることで、ハイブリッド型作業機械の運転状態やバッテリ５８の充電状態に応じた、アシストモータ５２の電動発電機運転の制御を行なうことができる。その結果、バイブリッド型作業機械を安定して連続運転することができる。
【０１８５】
図２８はアシストモータ出力指令Ｐａｓｍｒｅｆの算出モデルを示す図である。アシストモータ５２の出力はバッテリ５８から放電する電力から電気負荷５６で消費される電力を引いて得られる電力に相当する。
【０１８６】
ここで、電気負荷５６の出力は極性を有しており、電気負荷５６が実際に電力を消費する場合は極性はプラスである。この場合、バッテリ５８が放電する電力から電気負荷５６で消費される電力である電気負荷出力を減算した値がプラスであれば、電力がアシストモータ５２に供給され、アシストモータ５２は電動機として機能する。一方、バッテリ５８が放電する電力から電気負荷５６で消費される電力である電気負荷出力を減算した値がマイナスであれば、エンジン５０からの動力がアシストモータ５２に供給され、アシストモータ５２は発電機として機能する。これにより、アシストモータ５２はマイナスになった分の電力を発電し、その電力が電気負荷５６に供給される。
【０１８７】
また、電気負荷５６が回生電力を発生する場合は、電気負荷５６の出力極性はマイナスである。この場合、マイナスの値を引くこととなるから、バッテリ５８が放電する電力に電気負荷５６で回生する電力が加算されることとなる。したがって、バッテリ５８が放電する電力と電気負荷５６で回生する電力との和がアシストモータ５２に供給され、アシストモータ５２は電動機として機能して、エンジン５０をアシストすることとなる。すなわち、電気駆動部の出力設定値である電気負荷実出力Ｐｅｌｃｏｕｔと、蓄電器出力設定値であるバッテリ出力Ｐｂａｔｏｕｔとの電気的な比較に基づいて、アシストモータ５２の制御が行われる。
【０１８８】
以上説明したように、本実施形態が適用されるハイブリッド型作業機械の一例であるハイブリッド型ショベルは、油圧発生機、電動発電機、蓄電器、電気駆動部、及び制御部を有する。油圧発生機は油圧モータであるメインポンプ１４に相当し、エンジン５０の出力を油圧に変換し油圧駆動部に供給する。電動発電機１２はアシストモータ５２に相当し、エンジン５０に接続され、電動機及び発電機の両方として機能する。蓄電器はバッテリ５８に相当し、電動発電機１２に電力を供給して電動機として機能させる。電気駆動部は、蓄電器及び電動発電機からの電力により駆動され、且つ回生電力を発生して蓄電器及び電動発電機の少なくとも一方に供給する。制御部６０は、エンジン５０の目標回転数Ｎｅｎｇｒｅｆと実回転数Ｎｅｎｇａｃｔとの偏差Ｎｅｎｇｅｒｒに基づいてエンジン５０の出力上限値Ｐｅｎｇｍａｘを補正し、補正したエンジンの出力上限値Ｐｅｎｇｍａｘに基づいて電動発電機１２の出力指令Ｐａｓｍｒｅｆと油圧負荷５４の実出力Ｐｈｙｄｏｕｔと電気負荷の実出力Ｐｅｌｃｏｕｔを算出する。これにより、エンジン５０の実回転数Ｎｅｎｇａｃｔが低下した際に、エンジン５０の出力上限値Ｐｅｎｇｍａｘを強制的に小さくなるように補正することで、エンジン５０の実回転数Ｎｅｎｇａｃｔを目標回転数Ｎｅｎｇｒｅｆに迅速に復帰させることができ、エンストの発生を防止することができる。
【０１８９】
また、制御部６０は、エンジン５０の目標回転数Ｎｅｎｇｒｅｆと実回転数Ｎｅｎｇａｃｔとの偏差Ｎｅｎｇｅｒｒに基づいて電動発電機５２の出力下限値Ｐａｓｍｍｉｎを補正し、補正した電動発電機５２の出力下限値Ｐａｓｍｍｉｎに基づいて電動発電機１２の出力指令Ｐａｓｍｒｅｆと油圧負荷５４の実出力Ｐｈｙｄｏｕｔと電気負荷の実出力Ｐｅｌｃｏｕｔを算出することもできる。これにより、エンジン５０の実回転数Ｎｅｎｇａｃｔが低下した際に、アシストモータ５２によるエンジン５０への負荷が小さくなるように、あるいはアシストモータ５２でエンジン５０をアシストするようにアシストモータ５２の出力下限値Ｐａｓｍｍｉｎを補正することで、エンジン５０の実回転数Ｎｅｎｇａｃｔを目標回転数Ｎｅｎｇｒｅｆに迅速に復帰させることができ、エンストの発生を防止することができる。
【０１９０】
また、上述の実施形態によれば、蓄電器出力設定値、電気負荷要求値、エンジン出力設定値、及び油圧負荷要求値を考慮して、電動発電機の動作及び出力を制御することができるため、動力源であるエンジンと蓄電器とを適正な出力範囲で使用することができる。また、電気負荷からの回生電力を効率よく利用することができ、且つ、蓄電器の充電率（ＳＯＣ）を効率的に目標値近辺に維持することがきる。
【０１９１】
ここで、エンジン（内燃機関）の回転数を一定にして出力を増大させるには、エンジンに供給する燃料の量を増大させる。エンジンの出力は供給される燃料の量に応じて変化（増大）するが、その応答は比較的鈍く、単位時間当たりの出力変化（出力増大率）には限度がある。すなわち、適正な燃焼効率を維持しながら出力を増大させるには、単位時間当たりの出力変化（出力増大率）を制限しなければならない。
【０１９２】
ところが、油圧モータあるいは油圧ポンプ等の油圧発生機が要求するエンジンの出力（すなわち、油圧作動部が必要とする油圧）は急激に増大することがあり、油圧発生機が要求する出力の増大率がエンジンの出力増大率の限度を越えてしまう場合がある。すなわち、エンジンの出力を急激に増大させようとし、エンジンに過大な量の燃料が供給されてしまうことがある。
【０１９３】
エンジンに過大な量の燃料が急激に供給された場合、エンジンでの燃焼効率が低下し、エンジン回転数が一時的に低下して出力が低下し、エンジンから黒煙が発生するおそれがある。あるいは、エンジンの出力低下により、油圧作動部を操作する際の操作感が悪化するおそれがある。さらに、最悪の場合、エンジンの回転数が低下し過ぎて停止（エンスト）してしまうおそれもある。
【０１９４】
そこで、以下に説明する第４実施形態による制御では、油圧負荷が急激に増大したときでも、エンジンの運転条件を適正に維持しながら、油圧負荷の増大に応じて油圧発生機に供給される動力を増大させることができる。
【０１９５】
図２９は本発明の第４実施形態による制御を行うためのコントローラに含まれる制御部の機能ブロック図である。図２９において、図５に示す構成部品と同等な部品には同じ符号を付し、その説明は省略する。
【０１９６】
まず、本実施形態による制御の基本的な概念について図２９を参照しながら説明する。
【０１９７】
出力上限値を決定するための処理は、単位時間毎に繰り返し行われるものであり、現在の時点においてどのくらいまでエンジン出力を増大させてよいか、すなわちエンジンに供給する燃料の量をどのくらいまで増やしてよいかを決定するための処理である。
【０１９８】
制御部６０には、エンジンの回転数に対する出力の上限値を示すテーブル情報あるいはマップ情報６０−１が格納されている。制御部６０にエンジン実回転数Ｎａｃｔの現在の値が入力されると、制御部６０はマップ情報６０−１を参照して現在のエンジン実回転数Ｎａｃｔにおける出力上限値Ｐｅｎｇｍａｘ１を求める。求められた出力上限値Ｐｅｎｇｍａｘ１は比較器として機能するブロック６０−１３に入力される。
【０１９９】
一方、制御部６０には、エンジン実出力Ｐｅｎｇａｃｔの前回の値が入力される。制御部６０は、エンジン実出力Ｐｅｎｇａｃｔの前回の値にエンジン出力の増加分リミットＰｅｎｇｉｎｃを加算して求めた出力上限値Ｐｅｎｇｍａｘ３を、ブロック６０−１３に入力する。
【０２００】
ここで、増加分リミットＰｅｎｇｉｎｃは、エンジンの運転条件を適正な範囲に維持しながらエンジンの出力を増大させることのできる値に設定されている。すなわち、エンジンに要求される出力が急激に増大しても、単位時間当たりの出力の増大量を制限してエンジンに供給される燃料の量の増大を制限するための出力制限値である。
【０２０１】
ブロック６０−１３は、入力された出力上限値Ｐｅｎｇｍａｘ１と出力上限値Ｐｅｎｇｍａｘ３とを比較し、値の小さなほうをエンジン出力上限値Ｐｅｎｇｍａｘ４としてブロック６０−１２に出力する。
【０２０２】
ブロック６０−１２は、ブロック６０−１３から供給されるエンジン出力上限値Ｐｅｎｇｍａｘ４とブロック６０−１１から供給されるエンジン出力上限値Ｐｅｎｇｍａｘ２（補正値１）とを比較し、エンジン出力上限値Ｐｅｎｇｍａｘ４がエンジン出力上限値Ｐｅｎｇｍａｘ２以下の場合には、エンジン出力上限値Ｐｅｎｇｍａｘ４をそのままエンジン出力上限値Ｐｅｎｇｍａｘとして動力分配部６０−８に出力する。一方、エンジン出力上限値Ｐｅｎｇｍａｘ４がエンジン出力上限値Ｐｅｎｇｍａｘ２より大きい場合には、ブロック６０−１２は、エンジン出力上限値Ｐｅｎｇｍａｘ４ではなく、エンジン出力上限値Ｐｅｎｇｍａｘ２をエンジン出力上限値Ｐｅｎｇｍａｘとして動力分配部６０−８に出力する。すなわち、ブロック６０−１２は、エンジン出力上限値Ｐｅｎｇｍａｘを制限してエンジン出力上限値Ｐｅｎｇｍａｘ４を越えないようにする。
【０２０３】
以上のように、エンジンの実際の出力がこのエンジン出力上限値Ｐｅｎｇｍａｘを越えないようにエンジンの運転を制御することで、エンジンにかかる負荷の急激な増大を防止することができる。これにより、エンジンが停止してしまったり（いわゆるエンスト）、エンジンの排気に黒煙が発生したりすることを回避することができる。また、エンジンに急激な負荷がかかって回転数が急激に低下することを防止することができ、油圧作動部分の操作感の悪化を回避することができる。
【０２０４】
図３０は上述の処理のフローチャートである。この処理は例えば０．１秒毎というように短い単位時間毎に行われる。また、図３１は図３０に示す処理を単位時間毎に繰り返し行った際のエンジン出力の推移の一例を示すグラフである。
【０２０５】
まず、ステップＳ１−１１において、エンジン実出力Ｐｅｎｇａｃｔの前回の値に増加分リミットＰｅｎｇｉｎｃを加えてエンジン出力上限値Ｐｅｎｇｍａｘ３が算出される。次に、ステップＳ１−１２において、エンジン実回転数Ｎａｃｔから求めたエンジン出力上限値Ｐｅｎｇｍａｘ１がエンジン出力上限値Ｐｅｎｇｍａｘ３より大きいか否かが判定される。
【０２０６】
エンジン出力上限値Ｐｅｎｇｍａｘ１がエンジン出力上限値Ｐｅｎｇｍａｘ３以下の場合、処理はステップＳ１−１３に進む。ステップＳ１−１３では、Ｐｅｎｇｍａｘ１をＰｅｎｇｍａｘ４として設定する処理が行われる。一方、エンジン出力上限値Ｐｅｎｇｍａｘ１がエンジン出力上限値Ｐｅｎｇｍａｘ３より大きい場合、処理はステップＳ１−１４に進む。ステップＳ１−１４では、Ｐｅｎｇｍａｘ３をＰｅｎｇｍａｘ４として設定する処理が行われる。
【０２０７】
ステップＳ１−３又はステップＳ１−４までの処理が、エンジン出力上限値Ｐｅｎｇｍａｘ４を決定する処理となる。このように決定されたエンジン出力上限値Ｐｅｎｇｍａｘ４は、エンジンの回転数が一定の場合に、現在のエンジンの出力において単位時間後に許容されるエンジン出力に相当し、且つエンジン回転数によって得られるエンジン出力の最大値で制限された値となる。Ｐｅｎｇｍａｘ４はエンジンの回転数が一定であるからエンジンの回転数に対応して一定の値となり、図３１において横軸に平行な直線となっている。Ｐｅｎｇｍａｘ３は、エンジン出力に増加分リミットＰｅｎｇｉｎｃを加算したものであるから、図５において△で示す曲線となる。したがって、エンジン出力上限値Ｐｅｎｇｍａｘ４は△で示す曲線で示されるＰｅｎｇｍａｘ３と横軸に平行な直線で示されるＰｅｎｇｍａｘ１のどちらか小さい値のほうとなる。図３１において、△で示す曲線で示されるＰｅｎｇｍａｘ３は凸上の曲線であり、その頂上部分が横軸に平行な直線で示されるＰｅｎｇｍａｘ１で切り取られたものがエンジン出力上限値Ｐｅｎｇｍａｘ４に相当する。
【０２０８】
ステップＳ１−１３又はステップＳ１−１４の処理が終了してＰｅｎｇｍａｘ４が決定されたら、処理はステップＳ１−１５に進む。ステップＳ１−１５では、エンジン出力上限値Ｐｅｎｇｍａｘ４がエンジン出力上限値Ｐｅｎｇｍａｘ２より大きいか否かが判定される。
【０２０９】
エンジン出力上限値Ｐｅｎｇｍａｘ４がエンジン出力上限値Ｐｅｎｇｍａｘ２以下の場合、処理はステップＳ１−１６に進む。ステップＳ１−１６では、Ｐｅｎｇｍａｘ４をＰｅｎｇｍａｘとして設定する処理が行われる。一方、エンジン出力上限値Ｐｅｎｇｍａｘ４がエンジン出力上限値Ｐｅｎｇｍａｘ２より大きい場合、処理はステップＳ１−１７に進む。ステップＳ１−１７では、Ｐｅｎｇｍａｘ２をＰｅｎｇｍａｘとして設定する処理が行われる。ステップＳ１−１５からＳ１−１６又はステップＳ１−１７までの処理が、エンジン出力上限値Ｐｅｎｇｍａｘを決定する処理となる。
【０２１０】
続いて、ステップＳ１−１８では、油圧負荷要求出力Ｐｈｙｄｒｅｑが上述のように決定したエンジン出力上限値Ｐｅｎｇｍａｘより大きいか否かが判定される。
【０２１１】
油圧負荷要求出力Ｐｈｙｄｒｅｑがエンジン出力上限値Ｐｅｎｇｍａｘ以下である場合、処理はステップ１−１９に進む。ステップＳ１−１９では、油圧負荷出力指令Ｐｈｙｄｏｕｔを油圧負荷要求出力Ｐｈｙｄｒｅｑに等しくする。すなわち、要求される出力が上限値を超えていないので、要求された出力が得られるようにエンジンの出力を設定してもよく、油圧負荷出力指令Ｐｈｙｄｏｕｔを油圧負荷要求出力Ｐｈｙｄｒｅｑに等しくしている。
【０２１２】
一方、油圧負荷要求出力Ｐｈｙｄｒｅｑがエンジン出力上限値Ｐｅｎｇｍａｘより大きい場合、処理はステップ１−２０に進む。ステップＳ１−２０では、油圧負荷出力指令Ｐｈｙｄｏｕｔをエンジン出力上限値Ｐｅｎｇｍａｘに等しくする。すなわち、要求される出力が上限値を超えているので、エンジン出力が上限値を超えないように油圧負荷出力指令Ｐｈｙｄｏｕｔをエンジン出力上限値Ｐｅｎｇｍａｘに等しくする。
【０２１３】
ステップＳ１−１８からステップＳ−１６又はステップＳ１−１７までの処理が、油圧負荷出力指令Ｐｈｙｄｏｕｔを決定する処理に相当する。
【０２１４】
図３１において、油圧作動部が要求する出力である油圧負荷要求出力Ｐｈｙｄｒｅｑが○で示されている。時刻ｔ１から時刻ｔ５までの間は、油圧負荷要求出力Ｐｈｙｄｒｅｑはエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ３）より小さいため、油圧負荷要求出力Ｐｈｙｄｒｅｑが油圧負荷出力指令Ｐｈｙｄｏｕｔとして設定されている。本実施形態では、エンジン１０は油圧ポンプ１２だけを駆動するため、油圧負荷出力指令Ｐｈｙｄｏｕｔはエンジン１０の実際の出力であるエンジン出力Ｐｅｎｇａｃｔに等しくなる。より具体的には、時刻ｔ１におけるエンジン実出力Ｐｅｎｇａｃｔに、増加分リミットＰｅｎｇｉｎｃを加算して時刻ｔ２におけるＰｅｎｇｍａｘを算出しているので、Ｐｅｎｇａｃｔが急激に変化しないｔ５時点までの間は、エンジン実出力Ｐｅｎｇａｃｔの曲線に平行して、増加分リミットＰｅｎｇｉｎｃを加えた曲線を形成する。ここで、時刻ｔ５までの間は、急激な要求出力の増加が無いため、油圧負荷要求出力Ｐｈｙｄｒｅｑに対してエンジンのエンジン実出力Ｐｅｎｇａｃｔとは重なった波形を示している。
【０２１５】
時刻ｔ５からｔ６までの間に油圧負荷要求出力Ｐｈｙｄｒｅｑが急激に増大したため、時刻ｔ６において油圧負荷要求出力Ｐｈｙｄｒｅｑがエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ３）を超えてしまっている。したがって、そこで、油圧負荷出力指令Ｐｈｙｄｏｕｔがエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ３）より大きくならないように、油圧負荷要求出力Ｐｈｙｄｒｅｑはエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ４＝Ｐｅｎｇｍａｘ３）に制限されている。
【０２１６】
時刻ｔ７においても時刻ｔ６と同様に、油圧負荷要求出力Ｐｈｙｄｒｅｑはエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ３）に制限されている。時刻ｔ８では、エンジン出力上限値Ｐｅｎｇｍａｘ１のほうがエンジン出力上限値Ｐｅｎｇｍａｘ３より小さいため、エンジン出力上限値ＰｅｎｇｍａｘはＰｅｎｇｍａｘ１となっている。したがって、油圧負荷出力指令Ｐｈｙｄｏｕｔがエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ４＝Ｐｅｎｇｍａｘ１）より大きくならないように、油圧負荷要求出力Ｐｈｙｄｒｅｑはエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ１）に制限されている。
【０２１７】
時刻ｔ７以降時刻ｔ１０までは、エンジン出力上限値Ｐｅｎｇｍａｘ１のほうがエンジン出力上限値Ｐｅｎｇｍａｘ３より小さいため、エンジン出力上限値Ｐｅｎｇｍａｘは引き続きＰｅｎｇｍａｘ１となっている。したがって、油圧負荷出力指令Ｐｈｙｄｏｕｔがエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ１）より大きくならないように、油圧負荷要求出力Ｐｈｙｄｒｅｑはエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ１）に制限されている。
【０２１８】
時刻ｔ１１から時刻ｔ１２までは、引き続きエンジン出力上限値Ｐｅｎｇｍａｘ１のほうがエンジン出力上限値Ｐｅｎｇｍａｘ３より小さいため、エンジン出力上限値Ｐｅｎｇｍａｘは引き続きＰｅｎｇｍａｘ１となっている。一方、油圧負荷要求出力Ｐｈｙｄｒｅｑはエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ１）より小さくなっており、油圧負荷要求出力Ｐｈｙｄｒｅｑが油圧負荷出力指令Ｐｈｙｄｏｕｔとして設定されている。
【０２１９】
時刻ｔ１３から時刻ｔ１４までは、エンジン出力上限値Ｐｅｎｇｍａｘ３のほうがエンジン出力上限値Ｐｅｎｇｍａｘ１より小さいため、エンジン出力上限値ＰｅｎｇｍａｘはＰｅｎｇｍａｘ３となっている。油圧負荷要求出力Ｐｈｙｄｒｅｑは、引き続きエンジン出力上限値Ｐｅｎｇｍａｘ（＝Ｐｅｎｇｍａｘ３）より小さくなっており、油圧負荷要求出力Ｐｈｙｄｒｅｑが油圧負荷出力指令Ｐｈｙｄｏｕｔとして設定されている。
【０２２０】
上述の説明でわかるように、図３１において★を結ぶ曲線が油圧負荷出力指令Ｐｈｙｄｏｕｔに相当し、エンジンの実際出力を表している。また、斜線を施した部分は、エンジン出力制限値Ｐｅｎｇｍａｘにより油圧負荷要求出力Ｐｈｙｄｒｅｑが制限された部分であり、エンジン１０の運転条件を適正に維持するために、エンジン出力の急激な増大を抑制した部分となる。
【０２２１】
以上説明したように、本実施形態によれば、油圧負荷が急激に増大したときでも、内燃機関の負荷を急激に増大することが無いように制御することができる。したがって、内燃機関の運転条件を適正な範囲に維持できるため、燃焼効率の低下、黒煙の発生、エンジン停止を回避できる。なお、第４実施形態で説明した急負荷時の補償機能は、第１実施形態で用いた図５に示す構成、第２実施形態の説明に用いた図１０に示す構成、及び第３実施形態の説明に用いた図１４の構成に設けられてもよい。
【０２２２】
なお、本願発明ではハイブリッド型作業機械の一例としてハイブリッド式ショベルを例に説明したが、トラックやホイルローダなどの作業機械にも適用することができる。
【０２２３】
以上、本発明の例示的な実施形態のハイブリッド型作業機械について説明したが、本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０２２４】
本出願は２００８年３月１２日出願の日本特許出願２００８−０６３０７０号に基づくものであり、その全内容はここに援用される。
【産業上の利用可能性】
【０２２５】
本発明は、２つの動力源を併用して効率的に作業を行うハイブリッド型作業機械に適用可能である。
【符号の説明】
【０２２６】
１  下部走行体
１Ａ、１Ｂ  走行機構
２  旋回機構
３  上部旋回体
４  ブーム
５  アーム
６  バケット
７  ブームシリンダ
８  アームシリンダ
９  バケットシリンダ
１０  キャビン
１１  エンジン
１２  電動発電機（アシストモータ）
１３  減速機
１４  メインポンプ
１５  パイロットポンプ
１６  高圧油圧ライン
１７  コントロールバルブ
１８  インバータ
１９  蓄電部
２０  インバータ
２１  旋回用電動機
２３  メカニカルブレーキ
２４  旋回減速機
２５  パイロットライン
２６  操作装置
２６Ａ、２６Ｂ  レバー
２６Ｃ  ペダル
２７  油圧ライン
２８  油圧ライン
２９  圧力センサ
３０  コントローラ
３１  速度指令変換部
３２  駆動制御装置
４０  旋回駆動制御装置
５０  エンジン
５２  アシストモータ
５４  油圧負荷
５６  電気負荷
５８  バッテリ
６０  制御部
６０ａ  出力条件算出部
６０−１〜６０−７  ブロック
６０−８  ブロック（動力分配部）
６０−９〜６０−１３  ブロック
【図１】
2010150382.tif 000003
【図２】
2010150382.tif 000004
【図３】
2010150382.tif 000005
【図４】
2010150382.tif 000006
【図５】
2010150382.tif 000007
【図６】
2010150382.tif 000008
【図７】
2010150382.tif 000009
【図８】
2010150382.tif 000010
【図９】
2010150382.tif 000011
【図１０】
2010150382.tif 000012
【図１１】
2010150382.tif 000013
【図１２】
2010150382.tif 000014
【図１３】
2010150382.tif 000015
【図１４】
2010150382.tif 000016
【図１５】
2010150382.tif 000017
【図１６】
2010150382.tif 000018
【図１７】
2010150382.tif 000019
【図１８】
2010150382.tif 000020
【図１９】
2010150382.tif 000021
【図２０】
2010150382.tif 000022
【図２１】
2010150382.tif 000023
【図２２】
2010150382.tif 000024
【図２３】
2010150382.tif 000025
【図２４】
2010150382.tif 000026
【図２５】
2010150382.tif 000027
【図２６】
2010150382.tif 000028
【図２７】
2010150382.tif 000029
【図２８】
2010150382.tif 000030
【図２９】
2010150382.tif 000031
【図３０】
2010150382.tif 000032
【図３１】
2010150382.tif 000033
【国際調査報告】
2010150382.tif 000034
2010150382.tif 000035
2010150382.tif 000036
2010150382.tif 000037
2010150382.tif 000038
2010150382.tif 000039