エンジンとモータとからの出力を用いて車両を駆動制御するハイブリッド車両の制御装置において、エンジンを停止させる時に、算出済みの目標エンジン回転速度減少率に基づいてクランク角予測停止位置を算出し、クランク角予測停止位置に基づいてクランク角積算目標値を算出し、クランク角積算目標値と実クランク角とに基づいて目標エンジン回転速度減少率を再算出し、クランク角積算目標値と目標エンジン回転速度減少率とに基づいて目標クランク角を算出し、目標クランク角と実クランク角とからクランク偏差角を算出し、クランク角偏差角に基づいてモータのクランク角フィードバックトルクを算出し、モータの基本トルクとクランク角フィードバックトルクとを加算してモータのトルク指令値を算出する処理を周期的に実行することを特徴とするハイブリッド車両の制御装置。予め設定された上限値または下限値を超える目標エンジン回転速度減少率でクランク角停止制御が行われると予測される場合、目標クランク角停止位置と同等の目標クランク角停止位置になるようにクランク角積算目標値を再計算することを特徴とする請求項1に記載のハイブリッド車両の制御装置。予め設定された目標エンジン回転速度減少率上限値または下限値でクランク角停止制御を行っても目標クランク角停止位置と同等の目標クランク角停止位置まで達することができないと判定した時には、クランク角積算目標値を固定することを特徴とする請求項2に記載のハイブリッド車両の制御装置。目標エンジン回転速度に応じて目標エンジン回転速度減少率上限値と下限値とを変化させることを特徴とする請求項2または請求項3に記載のハイブリッド車両の制御装置。モータのトルク指令値を算出してからエンジン回転速度に反映されるまでの応答遅れ中のクランク角変化分を含むように、クランク角予測停止位置、クランク角積算目標値、目標エンジン回転速度減少率及び目標クランク角を算出することを特徴とする請求項1~請求項4のいずれれか一項に記載のハイブリッド車両の制御装置。しかし、前記特開2005-016505号公報の従来技術では、モータジェネレータとコントローラ間の通信に遅延時間がある湯合に、エンジンのクランク角が目標停止位置で停止しないという問題点がある。また、前記従来技術では、エンジン回転速度が所定回転速度以下になると共振を防ぐためにモータジェネレータの目標トルクを0にしているが、所定回転速度以下ではクランク角停止制御が動作せず目標停止位置に停止しないという問題点がある。さらに、前記従来技術では、目標クランク角移動量算出をエンジン停止処理開始時に行っているため、エンジン停止処理中にエンジン回転速度が急変した場合に、モータジェネレータが補正するためにフィードバックトルクを出力するため、駆動軸にトルクが出力されてドライバビリティの悪化につながるという問題点がある。この発明は、ハイブリッド車両において、目標クランク角停止位置でエンジンのクランクシャフトを停止させることができ、エンジン停止寸前でも正確に目標クランク角停止位置でエンジンのクランクシャフトを停止させることができるハイブリッド車両の制御装置を実現することを目的とする。この発明は、エンジンとモータとからの出力を用いて車両を駆動制御するハイブリッド車両の制御装置において、エンジンを停止させる時に、算出済みの目標エンジン回転速度減少率に基づいてクランク角予測停止位置を算出し、クランク角予測停止位置に基づいてクランク角積算目標値を算出し、クランク角積算目標値と実クランク角とに基づいて目標エンジン回転速度減少率を再算出し、クランク角積算目標値と目標エンジン回転速度減少率とに基づいて目標クランク角を算出し、目標クランク角と実クランク角とからクランク偏差角を算出し、クランク角偏差角に基づいてモータのクランク角フィードバックトルクを算出し、モータの基本トルクとクランク角フィードバックトルクとを加算してモータのトルク指令値を算出する処理を周期的に実行することを特徴とする。この発明は、算出済みの目標エンジン回転速度減少率に基づいて周期的にクランク角停止制御を行うため、目標エンジン回転速度減少率の急変を防ぎつつ目標クランク角停止位置でエンジンのクランクシャフトを停止させることができる。この発明は、クランク偏差角に基づいてモータのクランク角フィードバックトルクを算出するため、エンジン停止寸前でも正確に目標クランク角停止位置でエンジンのクランクシャフトを停止させるようにクランク角フィードバックトルクを加えることができる。この発明は、目標クランク角停止位置でエンジンのクランクシャフトを停止させることにより、その後、エンジンを最適クランク角で始動することができるため、エンジン始動に伴ってショックが発生するのを防止することができる。また、この発明は、エンジンを停止させた後に、クランクシャフトを最適クランク角の位置に移動させる必要がないので、クランクシャフトを回転させることによるトルク変動が発生することがない。さらに、エンジンを始動する際に、クランクシャフトを最適クランク角の位置に移動させる必要がないので、エンジンを始動するタイミングが遅くなることがない。したがって、エンジンを始動する際に、運転者に違和感を与えることがない。以下図面に基づいて、この発明の実施例を説明する。図1~図14は、この発明の実施例を示すものである。図1において、1はハイブリッド車両の制御装置である。ハイブリッド車両の制御装置1は、駆動系として、燃料の燃焼により駆動力を発生させるエンジン2の出力軸3と、電気により駆動力を発生するとともに駆動により電気エネルギを発生する第一のモータジェネレータ4及び第二のモータジェネレータ5と、ハイブリッド車両の駆動輪6に接続される駆動軸7と、出力軸3、第一のモータジェネレータ4、第二のモータジェネレータ5、及び駆動軸7にそれぞれ連結された動力伝達機構である差動歯車機構8と、を備えている。前記エンジン2は、アクセル開度アクセルペダルの踏み込み量に対応して吸入する空気量を調整するスロットルバルブ等の空気量調整手段9と、吸入する空気量に対応する燃料を供給する燃料噴射弁等の燃料供給手段10と、燃料に着火する点火装置等の着火手段11とを備えている。エンジン2は、空気量調整手段9と燃料供給手段10と着火手段11とにより燃料の燃焼状態を制御され、燃料の燃焼により駆動力を発生する。前記第一のモータジェネレータ4は、第1モータロータ軸12と第1モータロータ13と第1モータステータ14とを備えている。前記第二のモータジェネレータ5は、第2モータロータ軸15と第2モータロータ16と第2モータステータ17とを備えている。第一のモータジェネレータ4の第1モータステータ14は、第1インバータ18に接続されている。第二のモータジェネレータ5の第2モータステータ17は、第2インバータ19に接続されている。第1インバータ18と第2インバータ19との電源端子は、バッテリ20に接続されている。バッテリ20は、第一のモータジェネレータ4および第二のモータジェネレータ5との間で電力のやり取りが可能な蓄電手段である。第一のモータジェネレータ4と第二のモータジェネレータ5とは、それぞれ第1インバータ18と第2インバータ19とによりバッテリ20から供給される電気量を制御され、供給される電気により駆動力を発生するとともに、回生時の駆動輪6からの駆動力で電気エネルギを発生し、発生した電気エネルギをバッテリ20に充電する。前記差動歯車機構8は、第1遊星歯車機構21と第2遊星歯車機構22とを備えている。第1遊星歯車機構21は、第1サンギア23と、この第1サンギア23に噛み合う第1プラネタリギア24を支持する第1プラネタリキャリア25と、第1プラネタリギア24に噛み合う第1リングギア26とを備えている。前記第2遊星歯車機構22は、第2サンギア27と、この第2サンギア27に噛み合う第2プラネタリギア28を支持する第2プラネタリキャリア29と、第2プラネタリギア28に噛み合う第2リングギア30とを備えている。差動歯車機構8は、第1遊星歯車機構21と第2遊星歯車機構22との各回転要素の回転中心線を同一軸上に配置し、エンジン2と第1遊星歯車機構21との間に第一のモータジェネレータ4を配置し、第2遊星歯車機構22のエンジン2から離れる側に第二のモータジェネレータ5を配置している。第1遊星歯車機構21の第1サンギア23には、第一のモータジェネレータ4の第1モータロータ軸12を接続している。第1遊星歯車機構21の第1プラネタリキャリア25と第2遊星歯車機構22の第2サンギア27とは、結合してエンジン2の出力軸3にワンウェィクラッチ31を介して接続している。第1遊星歯車機構21の第1リングギア26と第2遊星歯車機構22の第2プラネタリキャリア29とは、結合して出力部32に連結している。出力部32は、歯車やチェーン等の出力伝達機構33を介して前記駆動軸7に接続している。第2遊星歯車機構22の第2リングギア30には、第二のモータジェネレータ5の第2モータロータ軸15を接続している。前記ワンウェイクラッチ31は、エンジン2の出力軸3が出力方向にしか回転しないように固定する機構であり、エンジン2の出力軸3が逆転することを防止する。第二のモータジェネレータ5の駆動パワーは、ワンウェイクラッチ31の反力を介して出力部32の駆動パワーとして伝達される。ハイブリッド車両は、エンジン2と第一のモータジェネレータ4と第二のモータジェネレータ5とが発生する動力を、第1遊星歯車機構21と第2遊星歯車機構22とを介して駆動軸7に出力し、駆動輪6を駆動する。また、ハイブリッド車両は、駆動輪6からの駆動力を、第1遊星歯車機構21と第2遊星歯車機構22とを介して第一のモータジェネレータ4と第二のモータジェネレータ5とに伝達し、電気エネルギを発生してバッテリ20を充電する。前記差動歯車機構8は、4つの回転要素34~37を設定している。第1回転要素34は、第1遊星歯車機構21の第1サンギア23からなる。第2回転要素35は、第1遊星歯車機構21の第1プラネタリキャリア25と第2遊星歯車機構22の第2サンギア27とを結合したものからなる。第3回転要素36は、第1遊星歯車機構21の第1リングギア26と第2遊星歯車機構22の第2プラネタリキャリア29とを結合したものからなる。第4回転要素37は、第2遊星歯車機構22の第2リングギア30からなる。差動歯車機構8は、4つの回転要素34~37の回転速度を直線で表すことができる共線図上において、4つの回転要素34~37を一端から他端に向かって順番に、第1回転要素34、第2回転要素35、第3回転要素36、第4回転要素37として設定している。4つの回転要素34~37間の距離の比は、k1:1:k2、で表される。第1回転要素34には、第一のモータジェネレータ4の第1モータロータ軸12を接続している。第2回転要素35には、エンジン2の出力軸3をワンウェイクラッチ31を介して接続している。第3回転要素36には、出力部32を接続している。この出力部32には、出力伝達機構33を介して駆動軸7を接続している。第4回転要素37には、第二のモータジェネレータ5の第2モータロータ軸15を接続している。これにより、差動歯車機構8は、出力軸3、第一のモータジェネレータ4、第二のモータジェネレータ5、及び駆動軸7にそれぞれ連結された4つの回転要素34~37を有し、エンジン2の出力軸3、第一のモータジェネレータ4、第二のモータジェネレータ5、及び駆動軸7との間で動力の授受を行う。よって、制御装置1は、4軸式の制御方式である。前記1遊星歯車機構21及び第2遊星歯車機構22からなる差動歯車機構8は、4つの回転要素34~37を、共線図において一端から他端に向かって順に、第一のモータジェネレータ4に連結された第1回転要素34、エンジン2の出力軸3に連結された第2回転要素35、駆動軸7に連結された第3回転要素36、第二のモータジェネレータ5に連結された第4回転要素37の順に並ぶとともに、それらの各回転要素34~37間の相互のレバー比を同順にk1:1:k2として設ける。ここで、第1遊星歯車機構21及び第2遊星歯車機構22からなる差動歯車機構8のギア比により定まる値k1、k2は下記のように定義される。k1=ZR1/ZS1k2=ZS2/ZR2ZS1:第1サンギア歯数ZR1:第1リングギア歯数ZS2:第2サンギア歯数ZR2:第2リングギア歯数前記ハイブリッド車両の制御装置1は、空気量調整手段9、燃料供給手段10、着火手段11、第1インバータ18、第2インバータ19を、制御部38に接続している。制御部38には、アクセル開度検出手段39と、車速検出手段40と、エンジン回転速度検出手段41と、バッテリ充電状態検出手段42と、クランク角検出手段43と、を接続している。前記アクセル開度検出手段39は、アクセルペダルの踏み込み量であるアクセル開度を検出する。前記車速検出手段40は、ハイブリッド車両の車速を検出する。前記エンジン回転数検出手段41は、エンジン2のエンジン回転速度を検出する。バッテリ充電状態検出手段42は、バッテリ20の充電状態SOCを検出する。前記クランク角検出手段43は、エンジン2のクランクシャフトの実クランク角を検出する。また、前記制御部38は、目標駆動力設定手段44と、目標駆動パワー設定手段45と、目標充放電パワー設定手段46と、目標エンジンパワー算出手段47と、目標エンジン動作点設定手段48と、モータトルク指令値演算手段49と、を備えている。前記目標駆動力設定手段44は、図2に示すように、アクセル開度検出手段39により検出されたアクセル開度と車速検出手段40により検出された車両速度とに応じて、ハイブリッド車両を駆動するための目標駆動力を、図8に示す目標駆動力検索マップにより検索して決定する。目標駆動力は、アクセル開度=0での高車速域ではエンジンブレーキ相当の減速方向の駆動力となるように負の値に設定し、車速が低い領域ではクリープ走行ができるように正の値に設定する。前記目標駆動パワー設定手段45は、アクセル開度検出手段39により検出されたアクセル開度と車速検出手段40により検出された車速とに基づいて、目標駆動パワーを設定する。この実施例においては、図2に示すように、目標駆動力設定手段44により設定された目標駆動力と車速検出手段40により検出された車速とを乗算して、目標駆動力でハイブリッド車両を駆動するのに必要な目標駆動パワーを設定する。前記目標充放電パワー設定手段46は、少なくともバッテリ充電状態検出手段42により検出されたバッテリ20の充電状態SOCに基づいて、目標充放電パワーを設定する。この実施例においては、バッテリ20の充電状態SOCに応じて、目標充放電パワーを、図9に示す目標充放電パワー検索テーブルにより検索して設定する。前記目標エンジンパワー算出手段47は、図2に示すように、目標駆動パワー設定手段45により設定された目標駆動パワーと目標充放電パワー設定手段46により設定された目標充放電パワーとから、目標エンジンパワーを算出する。この実施例においては、目標駆動パワーから目標充放電パワーを減算することにより、目標エンジンパワーを得る。前記目標エンジン動作点設定手段48は、目標エンジンパワーと制御装置1のシステム全体効率とから目標エンジン動作点目標エンジン回転速度と目標エンジントルクを設定する。この実施例においては、図10に示す目標エンジン動作点検索マップにより車速を考慮して検索して設定する。前記モータトルク指令値演算手段49は、第一のモータジェネレータ4、第二のモータジェネレータ5の、それぞれのトルク指令値を演算する。前記モータトルク指令値演算手段49による第一のモータジェネレータ4のトルク指令値、第二のモータジェネレータ5のトルク指令値は、図3に示すように、第1~第6算出部50~55により算出される。なお、図3の記載において、MG1は第一のモータジェネレータ4、MG2は第二のモータジェネレータ5を示している。前記第1算出部50は、目標エンジン動作点設定手段48により設定された目標エンジン回転速度と車速検出手段40により検出された車速とによって、エンジン回転速度が目標エンジン回転速度となった場合の第一のモータジェネレータ4の目標回転速度Nmg1t及び第二のモータジェネレータ5の目標回転速度Nmg2tを算出する。前記第2算出部51は、第1算出部50により算出された第一のモータジェネレータ4の目標回転速度Nmg1t及び第二のモータジェネレータ5の目標回転速度Nmg2tと、目標充放電パワー設定手段46により設定された目標充放電パワーと、目標エンジン動作点設定手段48により設定された目標エンジントルクとによって、第一のモータジェネレータ4の基本トルクTmg1iを算出する。前記第3算出部52は、第2算出部51により算出された第一のモータジェネレータ4の基本トルクTmg1iと目標エンジン動作点設定手段48により設定された目標エンジントルクとによって、第二のモータジェネレータ5の基本トルクTmg2iを算出する。前記第4算出部53は、目標エンジン動作点設定手段48により設定された目標エンジン回転速度とクランク角検出手段43により検出された実クランク角とによって、第一のモータジェネレータ4のクランク角フィードバックトルクTmg1fbを算出する。前記第5算出部54は、第2算出部51により算出された第一のモータジェネレータ4の基本トルクTmg1iと第4算出部53により算出された第一のモータジェネレータ4のクランク角フィードバックトルクTmg1fbとによって、第一のモータジェネレータ4のトルク指令値Tmg1を算出する。前記第6算出部55は、第3算出部52により算出された第二のモータジェネレータ5の基本トルクTmg2iによって、第二のモータジェネレータ5のトルク指令値Tmg2を算出する。ハイブリッド車両の制御装置1は、制御部38によって、目標エンジン動作点設定手段48で設定された目標エンジン動作点目標エンジン回転速度と目標エンジントルクでエンジン2が動作するように、空気量調整手段9と燃料供給手段10と着火手段11との駆動状態を制御する。また、制御部38は、エンジン2のエンジン回転速度が目標エンジン動作点設定手段48で設定された目標エンジン回転速度となるように、モータトルク指令値演算手段49で設定されたトルク指令値で第一のモータジェネレータ4及び第二のモータジェネレータ5の駆動状態を制御する。このハイブリッド車両の制御装置1は、エンジン回転速度が所定回転速度以下になると、クランク角停止制御を開始する。前回のクランク角停止制御で算出された目標エンジン回転速度減少率を使用し無ければ所定値で代用し、エンジン回転速度と目標エンジン回転速度減少率からクランク角停止位置を予測する。そして、制御装置1は、目標停止位置に停止させるためにクランク角が移動する総移動量を算出し、クランク角が総移動量だけ移動してエンジンがちょうど停止するように目標エンジン回転速度の減少率を求め、目標エンジン回転速度と減少率から目標クランク角を逆算し、実クランク角と目標クランク角の偏差からテーブル検索し、第一のモータジェネレータ4のクランク角フィードバックトルクを決定するように構成されている。図4~図7に示す制御フローチャートに沿って、この発明の制御内容を説明する。図4の制御フローチャートでは、運転者のアクセルペダル操作量アクセル開度とハイブリッド車両の車速とから目標エンジン動作点目標エンジン回転速度、目標エンジントルクを演算する。図5のフローチャートでは、目標エンジン動作点に基づいて第一のモータジェネレータ4と第二のモータジェネレータ5とのそれぞれの基本トルクを演算し、第一のモータジェネレータ4のクランク角フィードバックトルクを第一のモータジェネレータ4の基本トルクに加算し、第一のモータジェネレータ4と第二のモータジェネレータ5のそれぞれのトルク指令値を演算する。また、図6の制御フローチャートでは、クランク角積算目標値を算出して目標クランク角を計算し、実クランク角と目標クランク角の偏差から第一のモータジェネレータ4のクランク角フィードバックトルクを図12のクランク角フィードバックトルク検索テーブルから検索する。図7の制御フローチャートでは、図6中のステップ306におけるクランク角積算目標値算出のサブルーチンを実行する。なお、図4~図7に示されるフローチャートは制御周期ごとに実行される。また、図4~図7の記載において、MG1は第一のモータジェネレータ4、MG2は第二のモータジェネレータ5を示している。各種信号から目標駆動パワーと目標充放電パワーを算出し、目標エンジン動作点を決定する演算について、図4のフローチャートに沿って説明する。図4に示す目標エンジン動作点の算出において、制御プログラムがスタートすると100、ステップ101において、アクセル開度検出手段39が検出したアクセル開度、車速検出手段40が検出した車速、エンジン回転速度検出手段41が検出したエンジン回転速度、バッテリ充電状態検出手段42が検出したバッテリ20の充電状態SOC、クランク角検出手段43が検出した実クランク角の各種信号を取り込む。ステップ102では、図8に示す目標駆動力検出マップから、車速とアクセル開度に応じた目標駆動力を算出する。目標駆動力は、アクセル開度=0での高車速域ではエンジンブレーキ相当の減速方向の駆動力となるように負の値に設定し、車速が低い領域ではクリープ走行ができるように正の値に設定する。ついで、ステップ102で算出した目標駆動力と車速とを乗算して、目標駆動力でハイブリッド車両を駆動するのに必要な目標駆動パワーを算出し103、図9に示す目標充放電パワー検索テーブルから目標充放電パワーを算出する104。ステップ104では、バッテリ20の充電状態SOCを通常使用範囲内に制御するために、目標充放電パワーを図9に示す目標充放電パワー検索テーブルから算出する。バッテリ20の充電状態SOCが低い場合には、バッテリ20の過放電を防止するように目標充放電パワーを充電側に大きくしている。バッテリ20の充電状態SOCが高い場合には、過充電を防止するように目標充放電パワーを放電側に大きくしている。目標充放電パワーは、便宜上、放電側を正の値、充電側を負の値として取り扱う。ステップ105では、目標駆動パワーと目標充放電パワーとからエンジン2が出力すべき目標エンジンパワーを算出する。エンジン2が出力すべきパワーは、ハイブリッド車両の駆動に必要なパワーにバッテリ20の充電に必要なパワーを加算放電の場合は減算した値となる。ここでは、充電側の負の値として取り扱っているので、目標駆動パワーから目標充放電パワーを減算して、目標エンジンパワーを算出している。ステップ106では、図10に示す目標エンジン動作点検索マップから、目標エンジンパワーと車速に応じた目標エンジン動作点目標エンジン回転速度及び目標エンジントルクを算出し、リターンする107。前記目標エンジン動作点検索マップ図10は、等パワーライン上でエンジン2の効率に差動歯車機構8と第一のモータジェネレータ4及び第二のモータジェネレータ5とにより構成される動力伝達系の効率を加味した全体の効率が良くなるポイントを各パワー毎に選定して結んだラインを、目標エンジン動作ラインとして設定する。各目標エンジン動作ラインは、各車両速度毎図10においては、40km/h、80km/h、120km/hに設定する。目標エンジン動作ラインの設定値は、実験的に求めてもよいし、エンジン2、第一のモータジェネレータ4及び第二のモータジェネレータ5の効率から計算して求めてもよい。なお、目標エンジン動作ラインは、目標エンジンパワーが等しい時には車両速度が高くなるに連れて高回転側に移動する設定としている。次に、目標とする駆動力を出力しつつ、バッテリ20の充放電量を目標値とするための第一のモータジェネレータ4及び第二のモータジェネレータ5の目標トルク演算について、図5のモータトルク指令値算出の制御フローチャートに沿って説明する。なお、図5の記載において、MG1は第一のモータジェネレータ4、MG2は第二のモータジェネレータ5を示している。図5に示すモータトルク指令値の算出において、制御プログラムがスタート200すると、ステップ201において車速から第1遊星歯車機構21及び第2遊星歯車機構22が接続される駆動軸7の駆動軸回転速度Noを算出する。そして、エンジン回転速度Neが目標エンジン回転速度Netとなった場合の、第一のモータジェネレータ4の目標回転速度Nmg1tと第二のモータジェネレータ5の目標回転速度Nmg2tとを以下の式1、2により算出する。この演算式1、2は、第1遊星歯車機構21及び第2遊星歯車機構22の回転速度の関係から求められる。Nmg1t=Net-Nok1Net.........1Nmg2t=No-Netk2No.........2ここで、k1、k2は、前述するように第1遊星歯車機構21及び第2遊星歯車機構22のギア比により定まる値である。次に、ステップ202では、ステップ201で求めた第一のモータジェネレータ4の目標回転速度Nmg1tと第二のモータジェネレータ5の目標回転速度Nmg2t、及び目標充放電パワーPbatt、目標エンジントルクTetから、第一のモータジェネレータ4の基本トルクTmg1iを以下の計算式3により算出する。Tmg1i=Pbatt60/2π-Nmg2tTet/k2/Nmg1tNmg2t1k1/k2.........3この演算式3は、以下に示す、第1遊星歯車機構21及び第2遊星歯車機構22に入力されるトルクのバランスを表すトルクバランス式4、及び第一のモータジェネレータ4と第二のモータジェネレータ5で発電又は消費される電力とバッテリ20ヘの入出力電力Pbattが等しいことを表す電力バランス式5、から或る連立方程式を解くことにより導き出せる。Te1k1Tmg1=k2Tmg2.........4Nmg1Tmg12π/60Nmg2Tmg22π/60=Pbatt.........5次に、ステップ203で、第一のモータジェネレータ4の基本トルクTmg1iと目標エンジントルクTetから、第二のモータジェネレータ5の基本トルクTmg2iを以下の式6により算出する。Tmg2i=Tet1k1Tmg1i/k2.........6この式は上記式4から導き出したものである。次に、ステップ204で、クランク角停止制御に基づき第一のモータジェネレータ4のクランク角フィードバックトルクTmg1fbを算出する。これは、後述するクランク角停止制御において、エンジン2のクランクシャフトのクランク角を目標停止位置に停止させるために出力するフィードバックトルクである。ステップ205では、第一のモータジェネレータ4のクランク角フィードバックトルクTmg1fbを第一のモータジェネレータ4の基本トルクTmg1iに加算して第一のモータジェネレータ4のトルク指令値Tmg1を算出し、第二のモータジェネレータ5の基本トルクTmg2iから第二のモータジェネレータ5のトルク指令値Tmg2を算出し、リターンする206。制御部38は、このトルク指令値Tmg1、Tmg2に従って、第一のモータジェネレータ4及び第二のモータジェネレータ5を制御することにより、目標とする駆動力を出力しつつ、バッテリ20ヘの充放電を目標値とすることができる。また、制御部38は、目標停止位置にエンジン2のクランクシャフトのクランク角を停止させるように制御する。次に、エンジン2のクランク角を目標停止位置に停止させる第一のモータジェネレータ4のクランク角フィードバックトルク演算について、図6の制御フローチヤートに沿って説明する。なお、この制御フローチャートは、エンジン2の停止まで制御周期ごとに実行される。制御プログラムがスタート300すると、ステップ301では目標エンジン回転速度Nnがクランク角停止制御開始回転速度N1よりも低いか判定する301。NnがN1よりも低いステップ301:YES場合は、ステップ302に進む。NnがN1よりも高いステップ301:NO場合は、ステップ310に進み、第一のモータジェネレータ4のクランク角フィードバックトルクTmglfbに0を入力してクランク角停止制御を終了する。ステップ302では、ステップ301のYESの判定成立が初めての成立初回成立であるか判定する。ここでいう初回成立とは、クランク角停止制御が始まってからエンジン2が停止するまでの間で、初めて成立したことを指す。初回成立であるステップ302:YES場合は、ステップ303に進み、目標エンジン回転速度減少率前回値Cdpreに減少率所定値xCDpreを代入する。初回成立でないステップ302:NO場合は、ステップ304に進み、前回の制御で算出された目標エンジン回転速度減少率Cdtを目標エンジン回転速度減少率前回値Cdpreに代入する。所定の減少率xCDpreは、任意の減少率で良いが、後述の減少率上限値Cd1uから減少率下限値Cd1l、もしくは減少率上限値Cd2uから減少率下限値Cd2lまでの間が良い。ステップ305では、目標エンジン回転速度減少率前回値Cdpreと目標エンジン回転速度Nn、実クランク角An、応答遅れ時間Tdelayとエンジン目標回転速度減少率切り替え回転速度N2から、クランク角予測停止位置Apredを算出する。応答遅れ時間Tdelayは、第一のモータジェネレータ4のトルク指令を出してからエンジン回転速度に反映されるまでにかかる応答遅れ時間である。図11は、エンジン停止処理中の目標エンジン回転速度の推移である。図11において、T0はエンジン停止処理開始時間、TcはNn目標エンジン回転速度=N2エンジン目標回転速度減少率切り替え回転速度となった時間、Teはエンジン2が停止してクランク角停止処理が終了した時間である。また、目標エンジン回転速度減少率Cdtに制限を設けており、Nn>N2であれば減少率上限値Cd1u下限値Cd1lで、Nn≦N2であれば減少率上限値Cd2u下限値Cd2lで制限している。クランク角予測停止位置Apredの算出には、Nn>N2とNn≦N2で場合分けしており、Nn>N2の場合、N2≧Nnの場合、と計算し、Apredを算出する。式7、8において、utは、このクランク角停止制御が実行される制御周期である。ステップ306では、クランク角予測停止位置Apredと目標停止位置Atagからクランク角積算目標値Ai_tagを算出する。ステップ307では、クランク角積算目標値Ai_tagと実クランク角An、応答遅れ時間Tdelay、目標エンジン回転速度Nnから目標エンジン回転速度減少率Cdtを算出する。Ai_tagは、Cdtで表すと、と表現され、この式を変形すると、となり、Cdtを算出することができる。ステップ308では、クランク角積算目標値Ai_tagと実クランク角Anから、クランク偏差角Acを算出する。目標停止位置Atagに止めるための目標クランク角Atは、Nn>N2の場合、Nn≦N2の場合、そしてクランク偏差角AcはAc=An-At.........13となり、Acが算出される。ステップ309では、図12のようなクランク角フィードバックトルク検索テーブルを検索し、クランク偏差角Acから第一のモータジェネレータ4のクランク角フィードバックトルクTmg1fbを算出し、リターンする311。この第一のモータジェネレータ4のクランク角フィードバックトルクTmg1fbは、図5のステップ205で示すように、基本トルクTmg1iに加算され、第一のモータジェネレータ4のトルク指令値Tmg1を算出する。次に、図6中にあるステップ306のクランク角積算目標値算出を、図7の制御フローチャートに沿って説明する。制御プログラムがスタート400すると、ステップ401ではステップ430で後述するクランク角積算目標値固定フラグが成立しているかを判定する。成立しているステップ401:YES場合は、ステップ410に進み、前回のクランク角積算目標値を今回のクランク角積算目標値として処理を終了する。成立していないステップ401:NO場合は、ステップ402に進む。ステップ402では、クランク角積算目標基本値Ai_tagbを算出する。図6のステップ305で算出したクランク角予測停止位置Apred、目標クランク角停止位置Atagを基に、-AareaAtag180×m≦Apred≦-AareaAtag180×m1.........14となるようなmを検索し、Ai_tagb=Atag180×m.........15でAi_tagbを算出する。なお、本実施例では、目標クランク角停止位置と同等の停止位置が現れる間隔が180度ごとであるため、180×mとしている。また、Aareaは、クランク角積算目標値オフセットである。下記式16は、式14からAareaを除いたもので、この式16からmを検索してAi_tagbを求めると、図13の1のようにAtag180mからAtag180m1がAi_tagb=Atag180mと判定される範囲となる。このため、常に予測停止位置よりも早い目標停止位置を設定し、エンジン回転速度を早く低下させるようなクランク角停止制御を行ってしまう。ここにAareaの要素を追加してmを検索した結果が、図13の2である。この場合、Atag180m付近の範囲-AareaAtag180mから-AareaAtag180m1までがAi_tagb=Atag180mと範囲となるので、常に予測停止位置よりも早いもしくは遅い目標停止位置を設定されることが無い。Atag180×m≦Apred≦Atag180×m1.........16ステップ403では、クランク角積算下限値Ai_tagFを算出し、クランク角積算目標基本値Ai_tagbと比較する。図11に記載されている目標エンジン回転速度減少率上限値Cd1u、Cd2uを用いて、Nn>N2の場合、Nn≦N2の場合、とAi_tagFを算出する。Ai_tagb>Ai_tagFの場合ステップ403:YESは、ステップ404に進む。Ai_tagb≦Ai_tagFの場合ステップ403:NOは、目標エンジン減少率上限値を超える減少率でエンジン2を早く停止させなければクランク角積算目標値に達しないと判定し、ステップ420に進み、クランク角積算目標値の再計算を行う。ステップ404では、クランク角積算上限値Ai_tagSを算出し、Ai_tagbと比較する。図11に記載されている目標エンジン回転速度減少率下限値Cd1l、Cd2lを用いて、Nn>N2の場合、Nn≦N2の場合、とAi_tagSを算出する。Ai_tagb<Ai_tagSの場合ステップ404:YESは、Ai_tagbをAi_tagに代入して405、ステップ406に進む。Ai_tagb≧Ai_tagSの場合ステップ404:NOは、目標エンジン回転速度減少率下限値を下回る減少率でエンジン2をゆっくり停止させなければクランク角積算目標値に達さないと判定し、ステップ420に進み、クランク角積算目標値の再計算を行う。ステップ420においては、Ai_tagb≦Ai_tagFの場合、Ai_tag=Ai_tagb180.........21とし、Ai_tagb≧Ai_tagSの場合、Ai_tag=Ai_tagb-180.........22とし、目標エンジン回転速度減少率上限値もしくは下限値を超えた減少率でエンジン2のクランクシャフトが停止することを防止する。ステップ406では、クランク角積算目標値を固定するかを判定する。Ai_tagF>Ai_tag-180かつ、Ai_tagS<Ai_tag180が成立ステップ406:YESした場合は、クランク角積算目標値を180度変更すると、目標エンジン減少率上限値もしくは下限値を越える減少率で制御しなければならないと判定し、ステップ430に移行し、クランク角積算目標値固定フラグを成立させる。このフラグは、フラグ成立してからエンジンが停止するまでの間、保持されるものとする。Ai_tagF>Ai_tag-180かつ、Ai_tagS<Ai_tag180が不成立ステップ406:NOした場合は、リターンする407。本実施例のタイムチャートを示したのが、図14である。図14は、クランク角停止処理が開始されてから停止するまでにクランク角積算目標値が変更された場合のタイムチャートである。図14Aにおいて、Ai_tag1およびAi_tag2、Ai_tag3はクランク角積算目標値であり、Ai_tag2はAi_tag1に180度加算したものであり、Ai_tag3はAi_tag2に180度加算したものである。制御装置1は、時刻0で目標エンジン回転速度Nnがクランク角停止制御開始回転速度N1を下回り、クランク角停止制御を開始し、図6に示す制御フローチャートに従ってクランク角予測位置Apredを計算する。Apredが-AareaAi_tag1から-AareaAi_tag2の間に入っているため、クランク角積算目標値はAi_tag1と設定される。このクランク角積算目標値Ai_tag1から算出した目標クランク角と実クランク角とのクランク偏差角Acから、第一のモータジェネレータ4のクランク角フィードバックトルクTmg1fbを検索する。制御装置1は、この処理を制御周期ごとに実行し、エンジン停止時には目標停止位置にクランク角が停止するように制御する。時刻0からT1までは実クランク角>目標クランク角でAc>0のため、図14Bに示すように、第一のモータジェネレータ4のクランク角フィードバックトルクTmg1fbは負の値を出力している。時刻T1になったときに、クランク角予測位置Apredが-AareaAi_tag2よりも大きくなったため、クランク角積算目標値はAi_tag2に再設定される。そして、クランク角積算目標値から算出した目標クランク角と実クランク角とのクランク偏差角Acから、第一のモータジェネレータ4のクランク角フィードバックトルクを検索する。時刻T1から停止するまでは実クランク角≦目標クランク角でAc≦0のため、第一のモータジェネレータ4のクランク角フィードバックトルクは0もしくは正の値を示している。時刻T2になったときに、前記式17~20で算出されるAi_tagFとAi_tagSに、Ai_tagF>Ai_tag2-180、かつAi_tagS<Ai_tag180が成立するため、クランク角積算目標値固定フラグが成立する。これ以降、エンジン2が停止するまで、クランク角積算目標値はAi_tag2で固定される。以上のように、エンジン2と第一のモータジェネレータ4及び第二のモータジェネレータ5とからの出力を用いて車両を駆動制御するハイブリッド車両の制御装置1において、エンジン2を停止させる時に、算出済みの目標エンジン回転速度減少率に基づいてクランク角予測停止位置を算出し、クランク角予測停止位置に基づいてクランク角積算目標値を算出し、クランク角積算目標値と実クランク角とに基づいて目標エンジン回転速度減少率を再算出し、クランク角積算目標値と目標エンジン回転速度減少率とに基づいて目標クランク角を算出し、目標クランク角と実クランク角とからクランク偏差角を算出し、クランク角偏差角に基づいてモータのクランク角フィードバックトルクを算出し、モータの基本トルクとクランク角フィードバックトルクとを加算してモータのトルク指令値を算出する処理を周期的に実行する。このハイブリッド車両の制御装置1は、算出済みの目標エンジン回転速度減少率に基づいて周期的にクランク角停止制御を行うため、目標エンジン回転速度減少率の急変を防ぎつつ目標クランク角停止位置でエンジンのクランクシャフトを停止させることができる。また、ハイブリッド車両の制御装置1は、クランク偏差角に基づいて第一のモータジェネレータ4及び第二のモータジェネレータ5のクランク角フィードバックトルクを算出するため、エンジン停止寸前でも正確に目標クランク角停止位置でエンジン2のクランクシャフトを停止させるようにクランク角フィードバックトルクを加えることができる。このハイブリッド車両の制御装置1は、予め設定された上限値または下限値を超える目標エンジン回転速度減少率でクランク角停止制御が行われると予測される場合、目標クランク角停止位置と同等の目標クランク角停止位置になるようにクランク角積算目標値を再計算する。これにより、この制御装置1は、目標エンジン回転速度減少率に上下限制限を設けることにより、クランク角停止制御中の目標エンジン回転速度の急変を防ぐことができる。この結果、第一のモータジェネレータ4及び第二のモータジェネレータ5のクランク角フィードバックトルクの急変を防ぎ、駆動軸7に運転者の意図しないトルクが出力されることを防止することができる。このハイブリッド車両の制御装置1は、予め設定された目標エンジン回転速度減少率上限値または下限値でクランク角停止制御を行っても、目標クランク角停止位置と同等の目標クランク角停止位置までクランク角を達することができないと判定した時には、クランク角積算目標値を固定する。これにより、この制御装置1は、上限値または下限値を超える目標エンジン回転速度減少率でクランク角停止制御が行われることを防止しつつ、エンジン停止までクランク停止制御を行うことにより、正確に目標クランク角停止位置でエンジン2のクランクシャフトを停止させることができる。このハイブリッド車両の制御装置1は、目標エンジン回転速度に応じて目標エンジン回転速度減少率上限値と下限値とを変化させる。これにより、制御装置1は、クランク角停止制御を行いつつ、エンジン2が共振する回転速度域を短時間で通過させることができる。このハイブリッド車両の制御装置1は、第一のモータジェネレータ4及び第二のモータジェネレータ5のトルク指令値を算出してからエンジン回転速度に反映されるまでの応答遅れ中のクランク角変化分を含むように、クランク角予測停止位置、クランク角積算目標値、目標エンジン回転速度減少率及び目標クランク角を算出する。これにより、この制御装置1は、クランク角予測停止位置を正確に予測することができる。この結果、正確に目標クランク角停止位置でエンジン2のクランクシャフトを停止させることができる。