(57)【要約】【課題】電池の満充電容量を高精度に測定可能なニューラルネット型の車両用蓄電装置の満充電容量検出装置を提供すること。【解決手段】ニューラルネット演算により満充電容量を求めるために、電圧履歴及び電流履歴に加えて、満充電判定から所定容量放電時の開路電圧及び内部抵抗を用いて満充電容量をニューラルネット演算すると、ニューラルネット演算規模の増大を抑制しつつ高精度に満充電容量を演算することができる。【選択図】図７
2006226789.tif 000002
【特許請求の範囲】
【請求項１】
充放電可能な電池の直前の所定時間の電圧履歴及び電流履歴を検出して出力する電圧・電流履歴検出手段、及び、前記電圧履歴及び電流履歴を入力パラメータとして前記電池の満充電容量をニューラルネット演算する演算手段とを備える車両用蓄電装置の満充電容量演算装置において、
前記演算手段は、
前記電圧履歴及び電流履歴から最小自乗法により求めた近似式に基づいて前記電池の満充電状態からの所定放電量放電時における開路電圧及び内部抵抗を演算し、
前記電圧履歴及び電流履歴に加えて前記開路電圧及び内部抵抗を入力パラメータとして、出力パラメータとしての前記電池の満充電容量をニューラルネット演算することを特徴とする車両用蓄電装置の満充電容量演算装置。
【請求項２】
請求項１記載の車両用蓄電装置の満充電容量演算装置において、
前記演算手段は、
今回ニューラルネット演算して得た前記満充電容量と、あらかじめ記憶する前記電池の満充電容量の初期値との比率として電池劣化度（＝前記満充電容量／（初期の満充電容量））を演算することを特徴とする車両用蓄電装置の満充電容量演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ニューラルネットを用いた車両用蓄電装置の満充電容量演算装置に関する。
【背景技術】
【０００２】
車両用の二次電池（蓄電装置とも言う）では、走行状態の変動などによりその充放電状態が非常に広い範囲でばらつくため、二次電池の満充電容量を正確に検出することが困難であった。このため、過充電や過放電を防止するため二次電池の使用可能充放電範囲を狭く設定せざるを得ず電池の有効使用という観点からその改善が強く要望されていた。
【０００３】
この問題の解決案として、下記の特許文献１、２は、二次電池の満充電容量や寿命をニューラルネットワーク（ニューラルネットとも言う）を用いて演算するニューラルネット式電池状態演算方式を提案している。
【特許文献１】特開2003-24971号公報
【特許文献２】特開平9-243716号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した特許文献１、２によるニューラルネット式電池状態検出技術を用いた寿命や満充電容量による判定精度は、個々の電池の劣化進行による電池特性の演算関数を柔軟に変更し得るニューラルネット演算を用いるにもかかわらず実用上十分ではなかった。
【０００５】
もちろん、二次電池のありとあらゆる電気的な状態量をすべてニューラルネットに投入して大規模なニューラルネット演算を行うことにより満充電容量の演算精度を向上できる可能性は大きい。けれども車載可能なニューラルネット演算装置の回路規模及び演算規模にはコスト、消費電力及び演算速度の点で強い制約があり、このような大規模なニューラルネット演算装置の車載はほとんど不可能であった。
【０００６】
つまり、二次電池の満充電容量はその電圧や電流といった電気的な電池状態量の履歴に相関を有するため、あらかじめこれら履歴と満充電容量との関係を学習させたニューラルネットに上記履歴を入力してニューラルネット演算することにより車両用蓄電装置の満充電容量を演算することは、電池状態量の変動が大きい車両用蓄電装置の満充電容量演算において非常に有効と考えられるが、その実用化のためにはニューラルネット演算の規模増大を抑止しつつその検出精度を図ることが不可避であった。
【０００７】
本発明は上記問題点に鑑みなされたものであり、ニューラルネット演算の規模増大を抑止しつつ満充電容量検出精度の向上を実現した車両用蓄電装置の満充電容量演算装置を提供することをその目的としている。
【課題を解決するための手段】
【０００８】
上記課題を解決する本発明の車両用蓄電装置の満充電容量演算装置は、充放電可能な電池の直前の所定時間の電圧履歴及び電流履歴を検出して出力する電圧・電流履歴検出手段、及び、前記電圧履歴及び電流履歴を入力パラメータとして前記電池の満充電容量をニューラルネット演算する演算手段とを備える車両用蓄電装置の満充電容量演算装置において、前記演算手段が、前記電圧履歴及び電流履歴から最小自乗法により求めた近似式に基づいて前記電池の満充電状態からの所定放電量放電時における開路電圧及び内部抵抗を演算し、前記電圧履歴及び電流履歴に加えて前記開路電圧及び内部抵抗を入力パラメータとして、出力パラメータとしての前記電池の満充電容量をニューラルネット演算することを特徴としている。
【０００９】
すなわち、この発明は、直前の所定期間に所定タイミングでサンプリングした二次電池の電圧・電流ペアの群（すなわち電圧履歴及び電流履歴）に加えて、所定容量放電時の開路電圧及び内部抵抗という少ないデータにより、実用に耐える満充電容量検出精度が得られることを見い出したものである。すなわち、試験結果によれば、電池の電圧履歴及び電流履歴に所定容量放電時の開路電圧及び内部抵抗という少ないデータを追加するだけで満充電容量のニューラルネット演算精度を格段に向上できることが判明した。
【００１０】
したがって、本発明によれば、小規模のニューラルネット演算により実用上必要な演算時間内にて、ニューラルネット演算を用いない従来の満充電容量演算方式に比べて高精度に、しかも上記した従来のニューラルネット演算に比べても小演算規模でかつ高精度に満充電容量を検出することができる。これにより、車載電池の過充電や過放電を恐れることなく、その使用容量範囲を拡大することができ、その結果として従来より大幅に小容量の電池により必要な放電容量範囲を賄うことができ、車載電池スペースの縮小及び車体重量の軽減が可能となった。
【００１１】
なお、電圧履歴を構成する電圧（すなわち端子電圧）及び電流履歴（充放電電流）は、上述したように同一時点でサンプリングされた電圧・電流ペアとされる。満充電状態から所定容量放電時の開路電圧とは、満充電状態から初期時の満充電容量の０〜３０％放電した状態、更に好適には２〜２０％放電した状態、更に好適には３〜１０％放電した状態とされることができる。
【００１２】
ただし、この発明では、電圧履歴及び電流履歴と所定容量放電時の開路電圧及び内部抵抗とを少なくとも用いるが、更に別の状態量をニューラルネット演算のための入力パラメータとしてもよい。しかし、本発明の趣旨から言えば、この入力パラメータ追加によるニューラルネット演算量の増大の防止は実用上重要であり、追加は演算規模の増大が５０％を超えない範囲でなされるべきである。
【００１３】
更に、本発明では、直前の所定期間における電圧履歴及び電流履歴すなわちサンプリングされた電圧・電流のペアの群がニューラルネット演算のために記憶されるが、所定容量放電時の開路電圧及び内部抵抗は、この記憶している電圧・電流のペアの群を最小自乗法で処理するだけで求めることができ、回路規模特にデータ記憶量を節約することができるという利点を有している。
【００１４】
好適な態様において、前記演算手段は、今回ニューラルネット演算して得た前記満充電容量と、あらかじめ記憶する前記電池の満充電容量の初期値との比率として電池劣化度（＝前記満充電容量／（初期の満充電容量））を演算する。これにより、たとえばこの電池劣化度に基づいて電池寿命やその交換時期を判定することができる。
【発明を実施するための最良の形態】
【００１５】
本発明の車両用蓄電装置のニューラルネット演算方式を実施例を参照して図面に沿って具体的に説明する。
【実施例１】
【００１６】
（全体構成）
実施例１の車両用蓄電装置のニューラルネット演算方式について以下に説明する。まず、装置の回路構成を図１に示すブロック図を参照して説明する。
【００１７】
１０１は車載蓄電装置（以下、バッテリとも呼ぶ）、１０２はこの車載蓄電装置を充電する車載発電機、１０３は車載蓄電装置１０１から給電される車載電気負荷をなす電気装置、１０４は車載蓄電装置１０１の充放電電流を検出する電流センサ、１０５は車載蓄電装置１０１の状態を検出する電子回路装置である蓄電池状態検知装置、１０６は入力される電池の電圧及び電流を電圧履歴及び電流履歴として記憶して出力するとともに開路電圧の今回値及び／又は内部抵抗の今回値を演算して出力するバッファ部、１０７はバッファ部１０６及び後述する補正信号発生部１０９から入力される各種の入力信号をニューラルネット演算して満充電容量を演算して入力するニューラルネット部、１０８はニューラルネット部１０７などから読み込んだ信号に基づいて車載発電機１０２の発電量を制御する発電機制御装置、１０９は後述するキャリブレーションデータとしての所定容量放電時の開路電圧及び内部抵抗を演算してニューラルネット部１０７の入力データとして出力する補正信号発生部である。
【００１８】
すなわち、この実施例では、蓄電池状態検知装置１０５は、バッファ部１０６及びニューラルネット部１０７に加えて、所定容量放電時の開路電圧及び内部抵抗を演算してニューラルネット部１０７にキャリブレーション用の入力データとして出力する補正信号発生部１０９を有する点をその特徴としている。なお、バッファ部１０６、ニューラルネット部１０７及び補正信号発生部１０９は、この実施例ではマイコン装置によるソフトウエア演算により実現されるが、専用のハードウエア回路により構成されてよいことはもちろんである。
【００１９】
ただし、図１では、補正信号発生部１０９には、車載蓄電装置１０１の電圧と電流センサの電流が入力される回路として記載されているが、実際にはこの補正信号発生部１０９はバッファ部１０６及びニューラルネット部１０７と同じくマイコンソフトウエアにより構成されており、マイコンのRAM又はレジスタに保持される電圧・電流ペアの群を演算して所定容量放電時の開路電圧及び内部抵抗を演算する。
【００２０】
（バッファ部１０６）
バッファ部１０６は、ニューラルネット部１０７の前置信号処理回路であって、車載蓄電装置１０１の電圧と電流センサ１０４からの電流とを一定時間ごとに同時にサンプリングして電池の電圧履歴及び電流履歴として記憶し、各時点の電圧及び電流をニューラルネット部１０７に並列出力する。ニューラルネット部１０７の入力セルの数的限界や演算負担の軽減などのため、電池の電圧履歴及び電流履歴をなす電圧・電流のサンプリングデータは、現時点から遡行する所定時点までのデータにより構成される。
【００２１】
（補正信号発生部１０９）
補正信号発生部１０９は、満充電から所定容量放電時の開路電圧及び内部抵抗を演算し、この所定容量放電時の開路電圧及び内部抵抗をニューラルネット演算におけるキャリブレーションデータとしてニューラルネット部１０７に出力する。補正信号発生部１０９を図２のフローチャートに図示する。
【００２２】
補正信号発生部１０９は、走行を開始することにより開始され(ステップ601)、バッテリの電流・端子電圧を検出する(ステップ602) 。検出された電流・端子電圧に対して後述の満充電判定を行い(ステップ603)、満充電であれば、その後の充放電電流の積算をスタートし(ステップ604)、積算電流値（Ah）が所定放電量に達したかどうかを判定し(ステップ605）、達したらこの時の開路電圧を演算し(ステップ606) 、それを所定容量放電時の開路電圧として書き換える(ステップ607)、その後、この時の電池の内部抵抗を演算し(ステップ608) 、それを所定容量放電時の内部抵抗として書き換える(ステップ609) 。
【００２３】
ステップS603で説明した満充電判定について図３を参照して更に詳しく説明する。満充電判定は、電池の電圧・電流の二次元空間の所定領域としてあらかじめ記憶されており、入力される電流・電圧特性が、この所定領域（図３参照）に入ったら満充電と判定する。
【００２４】
ステップ606、608で説明した満充電から所定容量放電時の開路電圧及び内部抵抗を求める演算を図４を参照して更に詳しく説明する。
【００２５】
満充電から所定容量放電した時点直前の所定期間に入力された所定個数の電圧・電流ペアから最小自乗法により電圧と電流との関係を示す近似式を求め、この近似式の切片として開路電圧（電流が０であるとみなした場合の電池の電圧であり、開放電圧とも呼ばれる）と、この近似式の傾きとして内部抵抗を求め、これらを上記した所定容量放電時の開路電圧及び内部抵抗とする。なお、上記直線近似の精度を向上するために、電池の分極状態を過去の電流情報などから求めて分極指数として表し、この分極指数が所定の範囲内であるデータを選別することが好ましい。この種の最小自乗法を用いた直線近似式の創成と、この直線近似式を用いた開路電圧や内部抵抗の抽出自体は公知事項であるため、更なる説明は省略する。
【００２６】
（ニューラルネット部１０７）
ニューラルネット部１０７を図５に模式図示する。ただし、ニューラルネット部１０７は前述したように、実際には所定の演算インタバルで順次実施されるソフトウエア演算により構成されるため、図５に示す回路構成は機能的なものにすぎない。
【００２７】
図５に示す満充電容量演算用のニューラルネット部１０７は３階層のフィードフォワード型の誤差逆伝播方法により学習する形式であるが、この形式に限定されるものではない。入力層２０１は所定数の入力セルからなる。各入力セルはそれぞれ、バッファ部１０６からの電圧履歴データVi及び電流履歴データIiと、補正信号発生部１０９から入力されるキャリブレーションデータとしての所定容量放電時の開路電圧Vo及び内部抵抗ｒとを中間層２０２の各演算セルすべてに出力する。この実施例では、電圧履歴データVi及び電流履歴データIiはそれぞれ、一定インタバルでサンプリングされた５点のデータからなるがこれに限定されるものではない。たとえば、他のデータに対して電圧又は電流が所定量以上離れたデータとしてもよい。
【００２８】
中間層２０２の各演算セルは、入力層２０１の各入力セルから入力される各入力データに後述するニューラルネット演算を行い、演算結果である満充電容量を出力層２０３の出力セルに出力し、出力層２０３は満充電容量を外部に出力する。
【００２９】
ニューラルネット部１０７の入力層201のｊ番目のセルの入力データをINj、入力層201のｊ番目と中間層202のｋ番目のセルの結合係数をＷjkとすると中間層のｋ番目のセルへの入力信号は、
INPUTk(t)＝Σ( Wjk * INj )             ( j = 1 to ２ｍ+3 )
となる。中間層のｋ番目のセルからの出力信号は、
OUTk(t)＝ｆ(ｘ)＝ｆ( INPUTk(t) + b )
で表される。ｂは定数である。ｆ( INPUTk(t) + b) は INPUTk(t) + bを入力変数とするいわゆるシグモイド関数と呼ばれる非線形関数であり、
f (  INPUTk(t) + b )＝１／（１＋exp（−（ INPUTk(t) + b）））
で定義される関数である。中間層202のｋ番目のセルと出力層203のセルとの結合係数をＷkとすれば、出力層への入力信号は同様に、
INPUTｏ(t)＝Σ Wk * OUTk(t)
k＝1 to Q
で表される。 Qは中間層202のセル数である。時刻ｔにおける出力信号は、
OUT(t)＝L * INPUTｏ(t)
となる。Ｌは線形定数である。
【００３０】
この明細書で言う学習過程とは、時刻ｔにおける最終出力OUT(t)と、あらかじめ測定した後述の教師信号（即ち真値tar(t)）との間の誤差を最小にするように各セル間の結合係数を最適化することである。なお、出力OUT(t)は、出力層２０３が出力すべき出力パラメータであり、ここでは時点ｔにおけるＳＯＣである。
【００３１】
次に各結合係数の更新方法について説明する。
【００３２】
中間層のｋ番目のセルと出力層のセル間の結合係数Wkの更新は、
Wk ＝ Wk + △Wk
で行われる。ここで△Wkは以下で定義される。
【００３３】
△Wk = −η*∂Ek／∂Wk                      η；定数
= η* [ OUT(t) − tar(t) ]* [ ∂OUT(t)／∂Wk ]
= η* [ OUT(t) − tar(t) ]* L *[ ∂INPUTｏ(t)／∂Wk ]
= η* L* [ OUT(t) − tar(t) ] * OUTk(t)
で表される。Ekは教師データとネットワーク出力の誤差を表す量で次の式で定義される。
【００３４】
Ek＝[ OUT(t) − tar(t) ]×[ OUT(t) − tar(t) ]／2
次に、中間層202のｋ番目のセルと入力層201のｊ番目のセルの結合係数Ｗjkの更新ルールを説明する。結合係数Wjkの更新は以下の式で実現される。
【００３５】
Wjk ＝ Wjk ＋ △Wjk
ここで△Ｗjkは以下で定義される。
【００３６】
△Wjk ＝ −η*∂Ek／∂Wjk
＝ −η*[∂Ek／∂INPUTk(t) ] * [∂INPUTk(t)／∂Ｗjk ]
＝ −η*[∂Ek／∂OUTk(t) ] *[∂OUTk(t)／∂INPUTk(t) ] * INj
＝ −η*[∂Ek／∂OUT(t) ] * [∂OUT(t)／∂INPUTｏ] *
[∂INPUTｏ／OUTk(t) ] * ｆ’（INPUTk(t)＋ｂ）* INj
＝  −η*( OUT(t)−tar(t)) *Ｌ* Ｗk *ｆ’（INPUTk(t)＋ｂ）* INj
＝  −η* L * Wk * INj * ( OUTsoc(t)−tar(t))* f’(INPUTk(t)＋ｂ)
ここで、ｆ’（INPUTk(t)＋ｂ）は伝達関数fの微分値である。
【００３７】
こうして更新された新たな結合係数 Wk、Wjk で再び出力OUT(t)すなわち時点ｔにおけるＳＯＣを計算し、誤差関数Ekが所定の微小値以下になるまで結合係数を更新しつづける。このように誤差関数Ekを所定値以下になるよう結合係数を更新してゆく過程が学習過程である。
【００３８】
上記学習過程のフローチャートを図６を参照して説明する。ただし、ニューラルネット部１０７は現在の満充電容量を出力するものとする。
【００３９】
まず、ニューラルネット部１０７の各結合係数の適当な初期値を設定する（ステップ302）。これは例えば乱数などにより適当に決定すればよい。次に、学習用の所定の入力信号をニューラルネット部１０７の入力層201の各セルに個別に入力し（ステップ303）、この入力信号を上記した結合係数の初期値を用いてニューラルネット演算することにより出力パラメータとしてのSOCを算出する（ステップ304）。
【００４０】
次に、上記した方法で誤差関数Ｅｋを算出し（ステップ305）、この誤差関数が所定の微小値ｔｈより小さいか否か判定する（ステップ306）。誤差関数Ｅｋが所定の微小値ｔｈより大きければ、前記学習過程で定義された各結合係数の更新量△Ｗを計算し（ステップ307）、各結合係数を更新する（ステップ308）。
【００４１】
次に、再び上記した学習用の入力信号を入力層201の各セルに入力して出力パラメータとしてのSOCを計算する。次に、誤算関数Ｅｋを評価してそれが微小値ｔｈを下回れば学習を完了したと判定して（ステップ309）、この学習課程を終了する。誤差関数Ｅｋが微小値を下回ってなければ、結合係数を再び更新してSOC計算し、誤差関数Ｅｋの評価を実施し、誤差関数Ｅｋがこの微小値を下回るまでこの課程を繰り返す。
【００４２】
したがって、上記した学習課程として代表的な充放電パターンを幾つかの電池種類について製品の出荷前にニューラルネット部１０７にあらかじめ学習させておけば、あるいは学習結果をこのニューラルネット部１０７に書き込んでおけば、走行中の車載蓄電池の満充電容量を逐次算定することが可能となる。
【００４３】
満充電が判定されない場合や満充電から所定容量放電時の開路電圧が検出されない場合には、所定容量放電時の開路電圧として以前に求めた値が保持される。また、所定容量放電時の開路電圧及び内部抵抗が変化すればそれを更新して保持することにより、バッテリの劣化に応じて精度よく満充電容量の検出を行うことができる。
【００４４】
（試験結果）
上記学習済みのニューラルネット部１０７にて試験品のバッテリの満充電容量を測定した試験結果について以下に説明する。
【００４５】
種々の劣化状態をもつ初期満充電容量が27Ahの９個の車両用鉛蓄電池を試験品として用いた。各バッテリの現時点の満充電容量は0.2Cの放電条件で満充電状態から端子電圧が10.5Vとなるまで放電させてその電流積算値で求めた。これらの試験電池を車載の上記ニューラルネット部１０７に接続し、車両を１０．１５モード走行条件で走行させてニューラルネット演算を行って、満充電容量をニューラルネット演算した。ただし、上記した所定容量放電時の開路電圧及び内部抵抗は、満充電状態から5.0Ah放電した時点の開路電圧及び内部抵抗とした。電圧履歴及び電流履歴は、上記したように直前に所定のインタバルにてサンプリングした５点の電圧・電流ペアにより構成した。走行中、満充電判定を得た後、5Ah放電した時点から走行終了までにおいて得た各試験バッテリの満充電容量の検出誤差の平均値を以下に示す。
【００４６】
試験品１      満充電容量                  １８．２Ah
検出誤差                    ２．３Ah
試験品２      満充電容量                  ２１．８Ah
検出誤差                    ０．６Ah
試験品３      満充電容量                  １０．５Ah
検出誤差                    ０．６Ah
試験品４      満充電容量                  １０．０Ah
検出誤差                    ０．１Ah
試験品５      満充電容量                  １８．３Ah
検出誤差                    ２．１Ah
試験品６      満充電容量                  ２１．２Ah
検出誤差                    １．２Ah
試験品７      満充電容量                  ２４．３Ah
検出誤差                    ３．４Ah
試験品８      満充電容量                  ２７．６Ah
検出誤差                    ０．２Ah
試験品９      満充電容量                  ２５．１Ah
検出誤差                    ３．３Ah
次に、上記したニューラルネット部１０７において、入力パラメータとして電圧履歴及び電流履歴は用いるものの、キャリブレーションデータとしての所定容量放電時の開路電圧及び内部抵抗を用いない場合の満充電容量演算結果を以下に記載する。試験条件は上記と同じである。
【００４７】
試験品１      満充電容量                  １８．２Ah
検出誤差                    ３．９Ah
試験品２      満充電容量                  ２１．８Ah
検出誤差                    ２．８Ah
試験品３      満充電容量                  １０．５Ah
検出誤差                    ５．４Ah
試験品４      満充電容量                  １０．０Ah
検出誤差                    ５．７Ah
試験品５      満充電容量                  １８．３Ah
検出誤差                    ４．４Ah
試験品６      満充電容量                  ２１．２Ah
検出誤差                    ３．４Ah
試験品７      満充電容量                  ２４．３Ah
検出誤差                    １．７Ah
試験品８      満充電容量                  ２７．６Ah
検出誤差                    ２．８Ah
試験品９      満充電容量                  ２５．１Ah
検出誤差                    ２．７Ah
図７に所定容量放電時の開路電圧及び内部抵抗をキャリブレーションデータとして用いた場合と用いない場合とで、実際の満充電容量に対する検出誤差を図示する。入力データを１０点から１２点と僅か増加するのみで、格段に劣化バッテリの満充電容量演算精度を向上できることがわかった。その他、上記ニューラルネット演算により得た満充電容量が、あらかじめ記憶する初期の満充電容量に対して所定比率未満となった場合にバッテリが寿命となり、交換時期となると判定することができる。
【図面の簡単な説明】
【００４８】
【図１】実施例の装置の回路構成を示すブロック図である。
【図２】実施例の走行中における満充電から所定容量放電時の開路電圧及び内部抵抗の演算方法を示すフローチャートである。
【図３】実施例の満充電判定のための満充電領域を示す図である。
【図４】実施例の満充電から所定容量放電時の開路電圧及び内部抵抗を得るための近似式の例を示す図である。
【図５】満充電容量検出用のニューラルネットワーク部の構成を示すブロック図である。
【図６】図５のニューラルネット部のフローチャートである。
【図７】所定容量放電時の開路電圧及び内部抵抗を用いた場合と用いない場合とで満充電容量の検出誤差の比較結果を示す図である。
【符号の説明】
【００４９】
１０１      車載蓄電装置
１０２      車載発電機
１０４      電流センサ
１０５      蓄電池状態検知装置（演算手段）
１０６      バッファ部
１０７      ニューラルネットワーク部（ニューラルネット部）
１０８      発電機制御装置
１０９      補正信号発生部
２０１      入力層
２０２      中間層
２０３      出力層
【図１】
2006226789.tif 000003
【図２】
2006226789.tif 000004
【図３】
2006226789.tif 000005
【図４】
2006226789.tif 000006
【図５】
2006226789.tif 000007
【図６】
2006226789.tif 000008
【図７】
2006226789.tif 000009