内燃機関の1燃焼サイクル中に、少なくともメイン噴射と前記メイン噴射に続くアフター噴射とを実行する燃料噴射システムに適用される燃料噴射制御装置において、前記アフター噴射により噴射された燃料の着火開始から燃焼終了までの燃焼期間中の所定時期における筒内酸素濃度を取得する酸素濃度取得手段と、前記酸素濃度取得手段が取得する前記筒内酸素濃度に基づいて、メイン噴射量およびアフター噴射量の少なくともいずれか一方を調整する噴射量調整手段と、を備えることを特徴とする燃料噴射制御装置。前記噴射量調整手段は、内燃機関の運転状態に基づいて設定される1燃焼サイクル中における総噴射量を変更せずに、前記筒内酸素濃度に基づいて前記メイン噴射量および前記アフター噴射量を調整することを特徴とする請求項1に記載の燃料噴射制御装置。前記酸素濃度取得手段は、気筒内に流入する吸気中の吸気酸素濃度と、気筒内から排出される排気中の排気酸素濃度と、気筒内における熱発生量とに基づいて前記筒内酸素濃度を算出することを特徴とする請求項1または2に記載の燃料噴射制御装置。筒内圧センサにより検出される筒内圧と、クランク角度と、筒内容積とから気筒内の熱発生率を算出し、算出した熱発生率を積算して前記熱発生量を算出する熱発生量算出手段を備え、前記酸素濃度取得手段は、前記筒内酸素濃度を算出するための前記熱発生量を前記熱発生量算出手段から取得する、ことを特徴とする請求項3に記載の燃料噴射制御装置。気筒内の燃焼状態に関連する物理量に基づいて前記熱発生量を推定する熱発生量推定手段を備え、前記酸素濃度取得手段は、前記筒内酸素濃度を算出するための前記熱発生量を前記熱発生量推定手段から取得する、ことを特徴とする請求項3に記載の燃料噴射制御装置。前記熱発生量推定手段は、エンジン回転数を含む前記物理量に基づいて前記熱発生量を推定することを特徴とする請求項5に記載の燃料噴射制御装置。気筒内の燃焼状態を表わすパラメータとして、前記筒内酸素濃度から算出する筒内酸素量と前記アフター噴射量との比を算出する燃焼状態算出手段を備え、前記噴射量調整手段は、前記燃焼状態算出手段が算出する前記比の値が前記比の目標値になるように、前記メイン噴射量および前記アフター噴射量のうち少なくともアフター噴射量を調整することを特徴とする請求項1から6のいずれか一項に記載の燃料噴射制御装置。前記噴射量調整手段は、前記比の目標値を予め設定していることを特徴とする請求項7に記載の燃料噴射制御装置。前記酸素濃度取得手段は、アフター噴射の着火時期における前記筒内酸素濃度を取得することを特徴とする請求項1から8のいずれか一項に記載の燃料噴射制御装置。前記酸素濃度取得手段は、メイン噴射の燃焼による熱発生率が低下し、アフター噴射の燃焼による熱発生率が上昇を開始するときをアフター噴射の着火時期とすることを特徴とする請求項9に記載の燃料噴射制御装置。メイン噴射により生じるスモークを低減するためには、メイン噴射による燃焼状態に基づいて、メイン噴射量およびアフター噴射量の少なくともいずれか一方を調整する必要がある。特許文献1では、メイン噴射に続いてアフター噴射を実行するときの筒内圧を検出してアフター噴射の噴射指令信号を可変制御するものの、筒内圧はスモーク発生に関連する燃焼状態を表わすものではない。したがって、特許文献1のように、筒内圧を検出するだけでは、スモークを低減するために、メイン噴射量およびアフター噴射量の少なくともいずれか一方を適切に調整することは困難である。特許文献2では、筒内圧とクランク角とから、燃焼状態を表わす燃焼パラメータとして、筒内圧の変化率、熱発生率、熱発生量等を算出しているものの、これらの燃焼パラメータは、燃焼によって生じる圧力、熱量の変化を表わしてはいるが、前述した特許文献1と同様に、スモーク発生に関連する燃焼状態を表わすものではない。したがって、特許文献2においても、スモークを低減するために、メイン噴射量およびアフター噴射量の少なくともいずれか一方を適切に調整することは困難である。アクセルを踏み込んだ加速時のような過渡運転状態においては、空気流量およびEGR量の応答が遅れてばらつくので、気筒内の燃焼状態がばらつく。したがって、特に、過渡運転状態において、筒内圧または筒内圧に基づいて算出した燃焼パラメータにより、メイン噴射量およびアフター噴射量の少なくともいずれか一方を調整してスモークを低減することは困難である。本発明は、上記課題を解決するためになされたものであり、運転状態に関わらず、排気中のスモークを低減する燃料噴射制御装置を提供することを目的とする。請求項1から10に記載の発明によると、酸素濃度取得手段は、アフター噴射により噴射された燃料の着火開始から燃焼終了までの燃焼期間中の所定時期における筒内酸素濃度を取得し、噴射量調整手段は、酸素濃度取得手段が取得する筒内酸素濃度に基づいて、メイン噴射量およびアフター噴射量の少なくともいずれか一方を調整する。この構成によれば、アフター噴射により噴射された燃料の着火開始から燃焼終了までの燃焼期間中の所定時期における気筒内の筒内酸素濃度から、メイン噴射による燃焼と、アフター噴射による所定時期までの燃焼とによる酸素の消費状態が分かる。気筒内のスモークの発生状態は、噴射量と気筒内の酸素濃度とにより決定されるので、気筒内の燃焼状態を表わす酸素の消費状態から、スモークの発生状態を高精度に推定できる。したがって、アフター噴射による燃焼期間中の所定時期における筒内酸素濃度に基づいて、メイン噴射量およびアフター噴射量の少なくともいずれか一方を調整することにより、気筒内の酸素を有効に消費して気筒内の燃焼状態を適切な状態に制御できる。これにより、排気中のスモーク量を低減できる。例えば、アフター噴射による燃焼期間中の所定時期における津内酸素濃度に対して、燃料が適切に燃焼しスモークを低減するための噴射量よりもアフター噴射量が多い場合には、筒内酸素濃度に合わせてアフター噴射量を減少させるか、メイン噴射量を減少させてアフター噴射を開始するときの筒内酸素濃度を増加することが考えられる。あるいは、メイン噴射量およびアフター噴射量の両方を適切に増減してもよい。このように、アフター噴射による燃焼期間中の所定時期における筒内酸素濃度に基づいて、メイン噴射量およびアフター噴射量の少なくともいずれか一方を調整するので、例えばアクセルペダルを踏み込んで加速する場合のような過渡運転状態において筒内酸素濃度がばらつく場合にも、筒内酸素濃度に基づいて、メイン噴射量およびアフター噴射量の少なくともいずれか一方の噴射量を調整し、気筒内の燃焼状態を適切な状態に制御できる。請求項2に記載の発明によると、噴射量調整手段は、内燃機関の運転状態に基づいて設定される1燃焼サイクル中における総噴射量を変更せずに、筒内酸素濃度に基づいてメイン噴射量およびアフター噴射量を調整する。このように、1燃焼サイクルにおける総噴射量を変更せずにメイン噴射量およびアフター噴射量を調整するので、排気中のスモーク量を低減しつつ、内燃機関の出力トルクの変動を防止できる。請求項3に記載の発明によると、酸素濃度取得手段は、気筒内に流入する吸気中の吸気酸素濃度と、気筒内から排出される排気中の排気酸素濃度と、気筒内における熱発生量とに基づいて筒内酸素濃度を算出する。熱発生量と気筒内の酸素濃度とは対応しており、熱発生量が増加するにしたがい気筒内の酸素濃度は低下する。したがって、1燃焼サイクルにおいて、燃焼開始時の気筒内の酸素濃度を示す吸気酸素濃度と、燃焼終了時の気筒内の酸素濃度を示す排気酸素濃度と、熱発生量とに基づいて、アフター噴射による燃焼期間中の所定時期における筒内酸素濃度を算出できる。請求項4に記載の発明によると、熱発生量算出手段は、筒内圧センサにより検出される筒内圧と、クランク角度と、筒内容積とから気筒内の熱発生率を算出し、算出した熱発生率を積算して熱発生量を算出し、筒内酸素濃度取得手段は、筒内酸素濃度を算出するための熱発生量を熱発生量算出手段から取得する。筒内圧センサにより検出される筒内圧に基づいて熱発生率を算出し、算出した熱発生率を積算して熱発生量を算出するので、熱発生量を高精度に算出できる。これにより、熱発生量に基づいて筒内酸素濃度を高精度に算出できる。請求項5に記載の発明によると、熱発生量推定手段は、気筒内の燃焼状態に関連する物理量に基づいて熱発生量を推定し、筒内酸素濃度取得手段は、筒内酸素濃度を算出するための熱発生量を熱発生量推定手段から取得する。この構成によれば、気筒内の燃焼状態に関連する物理量に基づいて熱発生量を算出するので、筒内圧センサを使用することなく、筒内酸素濃度を算出するための熱発生量を取得できる。したがって、燃料噴射システムの製造コストを低減できる。請求項6に記載の発明によると、熱発生量推定手段は、エンジン回転数を含む物理量に基づいて熱発生量を推定する。エンジン回転数またはエンジン回転数の変動は気筒内の熱発生量と密接な関係があるので、熱発生量を推定するための物理量にエンジン回転数を含むことにより、筒内圧センサを用いることなく、熱発生量を高精度に推定できる。請求項7に記載の発明によると、燃焼状態算出手段は、気筒内の燃焼状態を表わすパラメータとして、筒内酸素濃度から算出する筒内酸素量とアフター噴射量との比を算出し、噴射量調整手段は、燃焼状態算出手段が算出する比の値が筒内酸素量とアフター噴射量との比の目標値になるように、メイン噴射量およびアフター噴射量のうち少なくともアフター噴射量を調整する。このように、無次元である筒内酸素量とアフター噴射量との比に基づき、筒内酸素濃度から算出する筒内酸素量がどのような値であっても、アフター噴射による燃料の燃焼が最適となるようにアフター噴射量を容易に調整できる。請求項8に記載の発明によると、噴射量調整手段は、筒内酸素量とアフター噴射量との比の目標値を予め設定している。この構成によれば、内燃機関の運転中に筒内酸素量とアフター噴射量との比の目標値を算出する必要がないので、比の目標値と算出された比の値との差に基づいて、メイン噴射量およびアフター噴射量の少なくともいずれか一方を調整するときの応答性が向上する。請求項9に記載の発明によると、酸素濃度取得手段は、アフター噴射の着火時期における筒内酸素濃度を取得する。この構成によれば、アフター噴射による燃焼の影響を受けない着火時期における筒内酸素濃度を取得するので、アフター噴射量に対して筒内酸素量が不足するか否かを高精度に判定できる。その結果、筒内酸素濃度に基づいて、メイン噴射量およびアフター噴射量の少なくともいずれか一方を高精度に調整できる。請求項10に記載の発明によると、酸素濃度取得手段は、メイン噴射の燃焼による熱発生率が低下し、アフター噴射の燃焼により熱発生率が上昇を開始するときをアフター噴射の着火時期とする。この構成によれば、熱発生率の変化から着火時期を高精度に算出できるので、着火時期における筒内酸素濃度に基づいて、メイン噴射量およびアフター噴射量の少なくともいずれか一方の噴射量を高精度に調整できる。尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、またはそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。以下、本発明の実施形態を図に基づいて説明する。図1に、蓄圧式の4気筒のディーゼル内燃機関以下、エンジンともいう。を示す。エンジン10は、シリンダブロック12に形成されたシリンダ気筒14内にピストン16が収容され、シリンダ14内を往復動するピストン16の運動が、コンロッド18を介してエンジン10のクランク軸図示せずに回転運動として伝達される。シリンダブロック12の上端面には、ピストン16の上部に燃焼室20を形成するシリンダヘッド22が固定されている。シリンダヘッド22には、燃焼室20に開口する吸気ポート24と排気ポート26とが形成されている。吸気ポート24と排気ポート26とは、それぞれカム図示せずによって駆動される吸気弁28と排気弁30とで開閉される。吸気ポート24には、外気を吸入するための吸気管32が接続され、排気ポート26には、シリンダ14から排気を排出するための排気管34が接続されている、排気管34と吸気管32とはEGR管36で接続されている。EGR管36に設置されているEGR弁38が開弁することにより、排気管34から吸気管32に還流する排気のEGR量が制御される。吸気弁28が吸気ポート24を開く吸入行程の際に、ピストン16がシリンダ14内を降下して筒内負圧が生じると、吸気管32より吸入された外気とEGR管36を通って還流されるEGRガスとが、吸気ポート24を通って気筒内へ流入する。また、排気弁30が排気ポート26を開く排気行程の際に、ピストン16の上昇により筒内から押し出された排気が、排気ポート26を通って排気管34へ排出される。燃料噴射システム2は、高圧燃料を蓄圧するコモンレール40と、このコモンレール40に高圧燃料を圧送する燃料供給ポンプ図示せずと、コモンレール40に蓄圧された高圧燃料をエンジン10の各気筒内にそれぞれ噴射する複数の燃料噴射弁42と、電子制御ユニットECU:ElectronicControlUnit50とを備えている。コモンレール40は、燃料供給ポンプより供給された高圧燃料を目標レール圧まで蓄圧し、その蓄圧された高圧燃料が、燃料配管100を介して燃料噴射弁42に供給される。コモンレール40の目標レール圧は、ECU50により設定される。具体的には、アクセル開度および回転速度等からエンジン10の運転状態を検出し、その運転状態に適した目標レール圧が設定される。燃料噴射弁42は、ECU50によって電子制御される電磁弁と、この電磁弁の開弁動作によって燃料を噴射するノズルとを有し、このノズルの先端部が各気筒内に突き出た状態で、シリンダヘッド22に取り付けられている。ECU50は、CPU52、RAM54、ROM56と、図示しないフラッシュメモリ、入出力インタフェース等を有するマイクロコンピュータを中心に構成されている。ECU50は、クランク角センサ60、アクセル開度センサ62、燃圧センサ64、筒内圧センサ66、吸気圧センサ68、吸気温センサ70、空気量センサ72、酸素濃度センサ74、76、水温センサ78等から出力される出力信号を入力し、これらの出力信号に基づいてエンジン10の運転状態を検出する。また、ECU50は、ROM56またはフラッシュメモリ等の記憶装置に記憶された制御プログラムを実行することにより、各種エンジン制御処理を実行する。クランク角センサ60は、エンジン10のクランク軸と同期して回転するパルサ44の周囲に配置され、パルサ44が1回転する間に、パルサ44の外周部に設けられた歯部の数に相当する複数のパルス信号回転角信号を出力する。ECU50は、クランク角センサ60から出力される回転角信号に基づいて、エンジン10の回転速度NEおよび回転角度位置クランク角度θを検出する。アクセル開度センサ62は、運転者が操作するアクセルペダル図示せずの操作量踏込み量を表すアクセル開度に応じた信号を出力する。燃圧センサ64は、コモンレール40に取り付けられ、コモンレール40に蓄圧された燃料圧力レール圧に応じた信号を出力する。筒内圧センサ66は、エンジン10の少なくとも一つの気筒のシリンダヘッド22に取り付けられ、筒内圧に応じた信号を出力する。筒内圧センサ66の出力信号は、ローパスフィルタLPF80によりノイズを除去されてECU50に入力される。吸気圧センサ68は、吸気管32に取り付けられ、吸気管32内の吸気圧Pmに応じた信号を出力する。吸気温センサ70は、吸気管32に取り付けられ、吸気管32内を通過する吸気の温度吸気温Taに応じた信号を出力する。空気量センサ72は、吸気管32に取り付けられ、吸気管32内を通過する空気の流量空気量Gaに応じた信号を出力する。酸素濃度センサ74、76には、例えば空燃比を検出するA/Fセンサが使用されている。酸素濃度センサ74は、EGR管36が吸気管32と接続する箇所よりも吸気流れの下流側に設置されており、吸気管32およびEGR管36を通りシリンダ14内に流入する吸気中の酸素濃度に応じた信号を出力する。酸素濃度センサ76は、排気管34に設置されており、シリンダ14内から排気管34に排出される排気中の酸素濃度に応じた信号を出力する。水温センサ78は、シリンダブロック12に取り付けられ、シリンダブロック12内の冷却水の温度水温に応じた信号を出力する。ECU50は、エンジン10の運転制御として、噴射圧制御、燃料噴射制御等を実施する。噴射圧制御はコモンレール40に蓄圧される燃料圧力を制御するもので、燃圧センサ64によって検出される実レール圧が目標レール圧と一致するように、燃料供給ポンプの吐出量ポンプ吐出量をフィードバック制御する。燃料噴射制御は、燃料噴射弁42からの噴射量および噴射時期を制御するもので、エンジン10の運転状態に応じた最適な噴射量および噴射時期を演算し、その演算結果にしたがって燃料噴射弁42の燃料噴射を制御する。燃料噴射制御においては、エンジン10の運転状態に基づいて、メイン噴射の前後にパイロット噴射、プレ噴射、アフター噴射、ポスト噴射等の多段噴射を実施することもある。パイロット噴射は、主なトルクを生成するメイン噴射による着火の前に空気と微少量の燃料とを予め混合させておくために実施される。プレ噴射は、メイン噴射の前に微少量の燃料を噴射してメイン噴射の前に筒内で燃料を燃焼させておくことにより、メイン噴射での急激な燃焼を抑制する。これにより、燃焼音および振動を低減する。アフター噴射は、メイン噴射の後に微少量の燃料を噴射してメイン噴射で筒内に発生した未燃成分であるスモークを燃焼させることにより排気を浄化する。ポスト噴射は、微少量の燃料を噴射して図示しないDPFが捕集しているパティキュレート等を燃焼するために実施される。パイロット噴射、プレ噴射、メイン噴射、アフター噴射およびポスト噴射のうち、エンジン10の出力トルクを生成するのはパイロット噴射、プレ噴射、メイン噴射およびアフター噴射である。燃焼状態次に、メイン噴射量およびアフター噴射量の変化による気筒内の燃焼状態について説明する。図2は、エンジン10の出力トルクが変化しないように1燃焼サイクルにおけるメイン噴射量およびアフター噴射量の合計噴射量を一定にした条件で、メイン噴射量およびアフター噴射量を変化させたときの気筒内における燃焼状態を示している。図2において、符号200はメイン噴射による噴射領域を示しており、符号210はアフター噴射による噴射領域を示している。メイン噴射では主なトルクを発生するために多段噴射における他段の噴射よりも噴射量が多い。そのため、メイン噴射量が増減しても、燃料噴射弁42から遠い気筒内の外周部まで噴霧が到達するので、気筒内の外周部における燃焼領域200でメイン噴射による燃焼が継続する。すると、気筒内の外周部で継続して酸素が消費されるので、気筒内の外周部における酸素濃度が低下する。一方、気筒内の中央部ではメイン噴射による燃焼が発生していないので、燃焼に必要な酸素は殆ど消費されていないと考えられる。このように、気筒内の外周部においてメイン噴射による燃焼で酸素が殆ど消費されている状態で、アフター噴射の噴射量が多すぎると、図2のAに示すように、メイン噴射と同様に気筒内の外周部まで噴霧が到達するので、酸素濃度の低い燃焼領域210でアフター噴射による燃料が燃焼する。その結果、アフター噴射による燃焼領域210が不完全燃焼になり、スモークが発生する。そこで、図2のBに示すように、メイン噴射による燃焼が発生していない気筒内の中央部でアフター噴射による燃焼を発生させるために、アフター噴射量を減少し、メイン噴射量を増加することが考えられる。しかし、メイン噴射量が多すぎると、メイン噴射による燃焼時にメイン噴射の燃焼領域200において酸素が不足し、スモークが発生する。一方、アフター噴射量を減少することにより、気筒内の中央部の酸素が十分にある燃焼領域210でアフター噴射による燃焼が行われるものの、燃焼領域210が狭いために、メイン噴射の燃焼により燃焼領域200で発生したスモークを、アフター噴射の燃焼により燃焼させる効果が低い。したがって、図2のCに示すように、メイン噴射による燃焼時にメイン噴射の燃焼領域200において酸素が不足せず、メイン噴射後の酸素が十分に残っている気筒内の中央付近の燃焼領域210でアフター噴射による燃焼が生じ、メイン噴射の燃焼により発生したスモークをアフター噴射の燃焼により燃焼させることができるように、メイン噴射量およびアフター噴射量を調整する必要がある。噴射量調整本願発明者は、スモークを低減するために最適なメイン噴射量とアフター噴射量とを調整するために、アフター噴射による着火時期の筒内酸素濃度から算出する筒内酸素量と、アフター噴射量との比に着目した。図3のAに、アフター噴射による着火時期の筒内酸素量[g]とアフター噴射量[g]との比を、次式1に示すように気筒内の燃焼状態を表わす燃焼パラメータとしたときの、3種類の運転モードにおける燃焼パラメータとスモーク濃度[FSN]との関係を、3種類のモード毎に特性曲線300、302、304として示す。燃焼パラメータ=筒内酸素量[g]/アフター噴射量[g]13種類の運転モードは、例えば、エンジン回転数と噴射量との関係から規定される低負荷領域、中負荷領域、高負荷領域の3種類の運転モードを表わしている。図3のAから、3種類の各モードにおいて、スモーク濃度[FSN]が最低になる燃焼パラメータの値図中のパラメータ値Aが存在することが分かる。ここで、各モードの特性曲線300、302、304において、各モードにおける排気量とスモーク濃度との積に基づいてスモーク量を算出し、スモーク量の最低値をスモーク悪化率が0である基準値とし、燃焼パラメータが変化するときの基準値に対するスモーク悪化率[]を特性曲線300、302、304のそれぞれで算出して正規化した結果を図3のBに示す。図3のBから、燃焼パラメータとスモーク悪化率[]との関係は、3種類の運転モードにおいて共通の特性曲線310になり、同じ燃焼パラメータの値図3のA、Bに示すパラメータ値Aでスモーク悪化率[]が最低になっていることが分かる。図3のBにおいて、スモーク悪化率[]が最低になる値よりも燃焼パラメータが大きい範囲では、筒内酸素量に対してアフター噴射量が少なすぎることを表わしている。アフター噴射量が少なすぎると、アフター噴射による燃焼領域210が狭いことから、メイン噴射の燃焼により燃焼領域200で発生したスモークを、アフター噴射の燃焼により燃焼させる効果が低くなり、スモークが増加する。そして、1燃焼サイクルにおけるメイン噴射量およびアフター噴射量の合計噴射量を一定にする条件では、アフター噴射量が少なすぎることは、メイン噴射量が多すぎ、メイン噴射による燃焼領域200で酸素が不足してスモークが発生することを表わしている。一方、図3のBにおいて、スモーク悪化率[]が最低になる値よりも燃焼パラメータが小さい範囲では、筒内酸素量に対してアフター噴射量が多すぎることを表わしている。アフター噴射量が多すぎると、メイン噴射による燃焼で酸素が不足している燃焼領域200でアフター噴射による燃焼が行われ、アフター噴射による燃焼領域210でスモークが発生する。したがって、今回の燃焼サイクルにおいて算出した燃焼パラメータの値が、スモーク悪化率[]が最低になるときの燃焼パラメータの目標値からずれている場合、筒内酸素濃度から筒内酸素量を算出することにより、次回の燃焼サイクルにおいてスモーク発生量を最低にする最適なアフター噴射量を算出できる。そして、エンジン運転状態に基づいて設定されるメイン噴射量とアフター噴射量との合計噴射量を変化させないという条件から、算出したアフター噴射量に基づいてメイン噴射量を算出できる。筒内酸素濃度次に、筒内酸素濃度について説明する。ECU50は、筒内圧センサ66が検出する筒内圧に基づいて、1燃焼サイクルにおける熱発生率dQ/dθを次式2により算出する。式2において、Qは熱発生量を、Vは気筒内容積を、Pは筒内圧センサ66が検出した筒内圧を、θはクランク角センサ60が検出したクランク角度を、κは比熱比をそれぞれ示している。図4のAは、1燃焼サイクルにおける熱発生率dQ/dθの特性曲線320を示している。熱発生率dQ/dθ=VdP/dθκPdV/dθ/κ-12そして、ECU50は、1燃焼サイクルにおいて、燃料噴射が実行され燃焼が終了する所定のクランク角度までの熱発生率を積算して合計し、積算合計に対して、1燃焼サイクル中の各クランク角度までの熱発生量の積算値の割合を算出する。図4のBに示す熱発生量の特性曲線330は、熱発生量の合計に対する各クランク角度までの熱発生量の積算値の割合を示している。熱発生率の特性曲線320において、ピーク322、324、326はそれぞれパイロット噴射、メイン噴射、アフター噴射による熱発生率のピークを示している。したがって、ピーク324を過ぎてメイン噴射による熱発生率が低下し、アフター噴射により熱発生率が上昇を開始するときが、アフター噴射の着火時期であると判定できる。また、熱発生量と気筒内の酸素濃度とは対応しており、熱発生量が増加するにしたがい筒内酸素濃度は低下する。したがって、熱発生量の変化に基づき、1燃焼サイクルにおける燃焼開始時の筒内酸素濃度と燃焼終了後の筒内酸素濃度とから図4のCに示すように、1燃焼サイクルにおける筒内酸素濃度の特性曲線340を求めることができる。1燃焼サイクルにおける燃焼開始時の筒内酸素濃度は、吸気側に設置した酸素濃度センサ74によって検出し、燃焼終了後の筒内酸素濃度は排気側に設置した酸素濃度センサ76によって検出する。筒内酸素濃度の特性曲線340から、アフター噴射の着火時期における筒内酸素濃度を算出し、算出した筒内酸素濃度と気筒内に流入した吸気量とから、アフター噴射の着火時期における筒内酸素量を算出できる。そして、アフター噴射の着火時期における筒内酸素量と、前述したスモーク発生量を最低にする燃焼パラメータの目標値とから、スモーク発生量を最低にするアフター噴射量を算出し、算出したアフター噴射量からメイン噴射量を算出する。噴射量調整処理次に、スモークを低減するメイン噴射量およびアフター噴射量の調整処理を、図5のフローチャートに基づいて説明する。まず、ECU50は、エンジン運転状態を表わすエンジン回転数および噴射量を取得しS400、エンジン運転状態に応じて、スモークを低減するために予め設定しておいた燃焼パラメータの目標値を取得するS402。次に、ECU50は、空気とEGRガスとが合流した筒内に流入する吸気の吸気酸素濃度を吸気側に設置した酸素濃度センサ74から取得しS404、S400で取得した噴射量からアフター噴射量を取得しS406、筒内圧センサ66から筒内圧を取得するS408。ECU50は、取得した筒内圧とクランク角度とから式2に基づいて気筒内の熱発生率を算出しS410、メイン噴射の燃焼による熱発生率が低下し、アフター噴射の燃焼により熱発生率が上昇を開始するときを、アフター噴射の着火時期として算出するS412。次に、ECU50は、熱発生率を積算して熱発生量を算出しS414、排気側に設置した酸素濃度センサ76から排気酸素濃度を取得するS416。ECU50は、S404で取得した吸気酸素濃度と、S414で算出した熱発生量の特性と、S416で取得した排気酸素濃度とから、アフター噴射の着火時期における筒内酸素濃度を算出するS418。ECU50は、空気量センサ72が検出する空気流量と、EGR弁38の開度から算出するEGR量とから気筒内に流入する吸気量を算出し、この吸気量とS418で算出した筒内酸素濃度とから、アフター噴射の着火時期における筒内酸素量を算出する。そして、ECU50は、この筒内酸素量とS406で取得したアフター噴射量との比を、今回の1燃焼サイクルにおける実際の燃焼パラメータの値X_nowとして算出するS420。ECU50は、S402で取得した燃焼パラメータの目標値X_targetと、S420で求めた燃焼パラメータの算出値X_nowとの差分ΔX=X_target-X_nowを算出しS422、差分ΔXが所定の閾値より小さいか否かを判定するS424。差分ΔXが所定の閾値より小さい場合S424:Yes、ECU50は、適正なアフター噴射量およびメイン噴射量が設定されていると判断し、本処理を終了する。差分ΔXが所定の閾値以上の場合S424:No、ECU50は、今回のアフター噴射量およびメイン噴射量は不適切であり、スモークを十分に低減できていないと判断する。そこで、ECU50は、今回のアフター噴射の着火時期における筒内酸素量と燃焼パラメータの目標値X_targetとに基づき、差分ΔXが0になるように、次回の燃焼サイクルにおけるアフター噴射量を設定しS426、エンジン運転状態から決定される1燃焼サイクルにおける総噴射量が一定になるように、設定したアフター噴射量から次回の燃焼サイクルにおけるメイン噴射量を設定するS428。尚、今回の燃焼サイクルにおけるメイン噴射量が次回の燃焼サイクルにおいて変化すると、アフター噴射の着火時期における筒内酸素濃度も変化するので、今回算出したアフター噴射量では、次回の燃焼サイクルにおいてスモーク発生量を十分に低減することはできないこともある。しかし、アフター噴射の着火時期における筒内酸素量とアフター噴射量との比である燃焼パラメータに基づいて、メイン噴射量およびアフター噴射量の調整を継続することにより、スモークを低減する最適なメイン噴射量およびアフター噴射量を設定できる。以上説明した上記実施形態では、アフター噴射の着火時期における筒内酸素濃度に着目し、気筒内のスモーク発生状態、つまり気筒内の燃焼状態を表わす燃焼パラメータとして、アフター噴射の着火時期における筒内酸素量とアフター噴射量との比を設定した。そして、燃焼パラメータに基づいて、スモークを極力低減するようにメイン噴射量およびアフター噴射量を調整した。これにより、メイン噴射およびアフター噴射により気筒内の酸素を効率よく消費して、スモークを極力低減できる。また、筒内圧センサ66が検出する筒内圧から熱発生率を算出するので、算出した熱発生率を積算して熱発生量を高精度に算出できる。また、筒内酸素濃度に基づいて、メイン噴射量およびアフター噴射量を調整するので、例えばアクセルペダルを踏み込んで加速する場合のような過渡運転状態において筒内酸素濃度がばらつく場合にも、筒内酸素濃度に基づいて、メイン噴射量およびアフター噴射量を調整し、気筒内の燃焼状態を適切な状態に制御できる。これにより、定常運転状態、過渡運転状態に関わらず、スモークを低減できる。また、アフター噴射の着火時期における筒内酸素量とアフター噴射量との比の目標値と、筒内酸素量とに基づいて、スモークを低減するアフター噴射量およびメイン噴射量を調整するので、スモークを低減するアフター噴射量およびメイン噴射量を調整するために、エンジン運転状態に適合させて多量のマップを記憶する必要がないので、マップを記憶する記憶容量を低減できる。上記実施形態では、燃料噴射システム2が本発明の燃料噴射システムに相当し、ECU50が本発明の燃料噴射制御装置に相当する。そして、ECU50は、酸素濃度取得手段、噴射量調整手段、熱発生量算出手段、および燃焼状態算出手段として機能する。また、図5のS410およびS414は熱発生量算出手段が実行する機能に相当し、S418は酸素濃度取得手段が実行する機能に相当し、S420は燃焼状態算出手段が実行する機能に相当し、S426およびS428は噴射量調整手段が実行する機能に相当する。S414で筒内圧センサ66が検出する筒内圧に基づいて熱発生量を算出するのではなく、気筒内の燃焼状態に関連する物理量として、エンジン回転数、エンジン回転数の変動量、噴射時期、噴射量、コモンレール圧、吸気酸素濃度、吸気量、吸気温度等の、気筒内の燃焼状態に関連する物理量に基づいて、物理モデルから熱発生量を推定してもよい。この場合、S408は不要である。そして、S410で気筒内の燃焼状態に関連する物理量に基づいて熱発生率を推定し、S410で推定した熱発生率からS412においてアフター噴射の着火時期を算出し、S410において推定した熱発生率を積算してS414において熱発生量を推定する。この場合、S410およびS414は熱発生量推定手段が実行する機能に相当し、ECU50は、熱発生量推定手段として機能する。燃焼状態に関連する物理量に基づいて熱発生量を高精度に推定するためには、燃焼状態に密接に関連するエンジン回転数を含む物理量に基づいて熱発生率および熱発生量を推定することが望ましい。[他の実施形態]上記実施形態では、多段噴射を実行する場合に、エンジン運転状態から算出されるエンジン2の出力トルクに関係する総噴射量を変化させず、スモークを極力低減するように、アフター噴射の着火時期における筒内酸素濃度に基づいてアフター噴射量およびメイン噴射量を調整した。これに対し、アフター噴射量およびメイン噴射量を調整するときの基準となる筒内酸素濃度を取得する時期は、アフター噴射が着火を開始する着火時期に限るものではなく、筒内酸素濃度を特定できるのであれば、アフター噴射の着火開始からアフター噴射による燃焼の終了までの燃焼期間中のいずれの所定時期でもよい。例えば、アフター噴射による熱発生率がピークになるときでもよい。また、スモークを低減するために、アフター噴射量およびメイン噴射量の両方を調整するのではなく、アフター噴射量またはメイン噴射量の一方だけを筒内酸素濃度に基づいて調整してもよい。例えば、アフター噴射の着火時期における筒内酸素濃度が所定濃度よりも低い場合には、メイン噴射量が多すぎてスモークが増加すると判断し、メイン噴射量だけを減少させてもよい。また、メイン噴射量は調整せず、アフター噴射の着火時期における筒内酸素濃度が高い場合にはアフター噴射量を増加し、筒内酸素濃度が低い場合にはアフター噴射量を減少させてもよい。尚、メイン噴射量およびアフター噴射量の一方だけを調整する場合、エンジンの出力トルクを極力変動させないために、アフター噴射量を調整することが望ましい。また、上記実施形態では、エンジン運転状態に応じて燃焼パラメータの目標値を設定したが、エンジン運転状態に関わらず同じ値の目標値を設定してもよい。また、予め燃焼パラメータの目標値を設定するのではなく、スモーク発生量を最低にする燃焼パラメータの値を、エンジン運転中に学習してもよい。また、酸素濃度センサ74、76からそれぞれ吸気酸素濃度、排気酸素濃度を検出する代わりに、空気流量、吸気温度、吸気圧、エンジン回転数、および噴射量等に基づいて、物理モデルから吸気酸素濃度、排気酸素濃度を推定してもよい。上記実施形態では、酸素濃度取得手段、噴射量調整手段、熱発生量算出手段、熱発生量推定手段、および燃焼状態算出手段を、制御プログラムにより機能が特定されるECU50により実現している。これに対し、上記複数の手段の機能の少なくとも一部を、回路構成自体で機能が特定されるハードウェアで実現してもよい。このように、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。