(57)【要約】【課題】ラベリングの手法を改良して、凝固解析に必要な閉ループを検出するための時間を短縮することのできる凝固解析に用いるラベリング方法を提供する。【解決手段】各要素が溶融材料の状態を示している凝固解析画像から第１回目の走査として未凝固または凝固の状態を示している要素に仮ラベルを付与すると共に最初に仮ラベルを付与した要素と最後に仮ラベルを付与した要素の位置を判別するための情報を記憶し、最初に仮ラベルを付与した要素の位置（ｉ＝８，ｊ＝４）を出発点として第２回目の走査を行い、同じ未凝固または凝固の状態を示している要素が同じラベルとなるように仮ラベルを変更し、最後に仮ラベルを付与した要素（ｉ＝７，ｊ＝９）を変更した時点で第２回目の走査を終了する。【選択図】図４
2009183981.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素からなる有限要素モデルの各要素が溶融材料の状態を示している凝固解析画像を取得する段階と、
取得した前記凝固解析画像の各要素に対しあらかじめ決められた出発点から順に第１回目の走査を行い、未凝固または凝固の状態を示している要素に仮ラベルを付与し、当該仮ラベルを付与する要素の周囲の要素が前記未凝固または凝固の状態か否かを示す連続関係を調べて記憶すると共に最初に前記仮ラベルを付与した要素の位置と最後に前記仮ラベルを付与した要素の位置を判別するための情報を記憶する段階と、
前記第１回目としてすべての要素の走査を終了した後、前記最初に前記仮ラベルを付与した要素の情報に基づいて前記最初に前記仮ラベルを付与した要素の位置を出発点として第２回目の走査を行い、前記連続関係に基づいて同じ未凝固または凝固の状態を示している要素が同じラベルとなるように各仮ラベルを変更して行き、前記最後に前記仮ラベルを付与した要素の情報に基づいて前記最後に前記仮ラベルを付与した要素の仮ラベルの変更を行った時点で第２回目の走査を終了する段階と、
を有することを特徴とする凝固解析に用いるラベリング方法。
【請求項２】
前記最初に前記仮ラベルを付与した要素の位置を判別するための情報は、第１回目の走査において最初に前記仮ラベルを付与した要素の座標であり、
前記最後に前記仮ラベルを付与した要素の位置を判別するための情報は、仮ラベルを付与した要素数であり、前記第２回目の走査においては、前記第２回目の走査で検出した仮ラベルの付いていた要素数と前記仮ラベルを付与した要素数とが同じになった時点で第２回目の走査を終了することを特徴とする請求項１記載の凝固解析に用いるラベリング方法。
【請求項３】
前記最初に前記仮ラベルを付与した要素の位置を判別するための情報は、第１回目の走査において最初に前記仮ラベルを付与した要素の座標であり、
前記最後に前記仮ラベルを付与した要素の位置を判別するための情報は、最後に仮ラベルを付与した要素の座標であり、前記第２回目の走査においては、当該最後に仮ラベルを付与した要素の座標まで仮ラベルを変更した時点で第２回目の走査を終了することを特徴とする請求項１記載の凝固解析に用いるラベリング方法。
【請求項４】
前記仮ラベルは、前記未凝固または凝固の状態を示している要素を検出したときにその要素の周囲の要素であって既に走査が終了した要素に仮ラベルが付与されている場合には、当該周囲の要素の仮ラベルのうちあらかじめ決められた基準に合う仮ラベルと同じ仮ラベルを前記未凝固または凝固の状態を示していることを検出した要素に付与し、前記周囲の要素に仮ラベルがない場合には、その前に付けた仮ラベルと異なる仮ラベルを付与するものであり、
前記連続関係は、前記付与する仮ラベルとは異なる仮ラベルが周囲の要素にある場合に、当該異なる仮ラベルと仮ラベルを付与する要素とが同じ未凝固または凝固の状態を示していて連続しているものであると記録するものであることを特徴とする請求項１〜３のいずれか一つに記載の凝固解析に用いるラベリング方法。
【請求項５】
前記有限要素モデルが３次元の場合、当該３次元の前記有限要素モデルからなる前記凝固解析画像を連続した２次元の画像の組み合わせとみなして、２次元画像ごとに前記第１回目の走査および第２回目の走査を行って、前記２次元画像ごとにラベル付けを行うことを特徴とする請求項１〜４のいずれか一つに記載の凝固解析に用いるラベリング方法。
【請求項６】
前記連続関係は、前記仮ラベルを付与する要素の位置から３次元方向に既に走査を終えた要素との関係であることを特徴とする請求項５記載の凝固解析に用いるラベリング方法。
【請求項７】
複数の要素からなる有限要素モデルを使用して凝固解析を行い、各要素の状態を示す画像を出力する凝固解析手段と、
前記凝固解析画像の各要素に対しあらかじめ決められた出発点から順に第１回目の走査を行い、未凝固または凝固の状態を示している要素に仮ラベルを付与し、当該仮ラベルを付与する要素の周囲の要素が前記未凝固または凝固の状態か否かを示す連続関係を調べて記憶手段に記憶させると共に最初に前記仮ラベルを付与した要素の位置と最後に前記仮ラベルを付与した要素の位置を判別するための情報を記憶手段に記憶させ、
前記第１回目としてすべての要素の走査を終了した後、前記最初に前記仮ラベルを付与した要素の情報に基づいて前記最初に前記仮ラベルを付与した要素の位置を出発点として第２回目の走査を行い、前記連続関係に基づいて同じ未凝固または凝固の状態を示している要素が同じラベルとなるように各仮ラベルを変更して行き、前記最後に前記仮ラベルを付与した要素の情報に基づいて前記最後に前記仮ラベルを付与した要素の仮ラベルの変更を行った時点で第２回目の走査を終了することで、各要素にラベル付けを行うラベリング手段と、
を有することを特徴とする凝固解析装置。
【請求項８】
前記最初に前記仮ラベルを付与した要素の位置を判別するための情報は、第１回目の走査において最初に前記仮ラベルを付与した要素の座標であり、
前記最後に前記仮ラベルを付与した要素の位置を判別するための情報は、仮ラベルを付与した要素数であり、前記第２回目の走査においては、前記第２回目の走査で検出した仮ラベルの付いていた要素数と前記仮ラベルを付与した要素数とが同じになった時点で第２回目の走査を終了することを特徴とする請求項７記載の凝固解析装置。
【請求項９】
前記最初に前記仮ラベルを付与した要素の位置を判別するための情報は、第１回目の走査において最初に前記仮ラベルを付与した要素の座標であり、
前記最後に前記仮ラベルを付与した要素の位置を判別するための情報は、最後に仮ラベルを付与した要素の座標であり、前記第２回目の走査においては、当該最後に仮ラベルを付与した要素の座標まで仮ラベルを変更した時点で第２回目の走査を終了することを特徴とする請求項７記載の凝固解析装置。
【請求項１０】
前記仮ラベルは、前記未凝固または凝固の状態を示している要素を検出したときにその要素の周囲の要素であって既に走査が終了した要素に仮ラベルが付与されている場合には、当該周囲の要素の仮ラベルのうちあらかじめ決められた基準に合う仮ラベルと同じ仮ラベルを前記未凝固または凝固の状態を示していることを検出した要素に付与し、前記周囲の要素に仮ラベルがない場合には、その前に付けた仮ラベルと異なる仮ラベルを付与するものであり、
前記連続関係は、前記付与する仮ラベルとは異なる仮ラベルが周囲の要素にある場合に、当該異なる仮ラベルと仮ラベルを付与する要素とが同じ未凝固または凝固の状態を示していて連続しているものであると記録するものであることを特徴とする請求項７〜９のいずれか一つに記載の凝固解析装置。
【請求項１１】
前記有限要素モデルが３次元の場合、当該３次元の前記有限要素モデルからなる前記凝固解析画像を連続した２次元の画像の組み合わせとみなして、２次元画像ごとに前記第１回目の走査および第２回目の走査を行って、前記２次元画像ごとにラベル付けを行うことを特徴とする請求項７〜１０のいずれか一つに記載の凝固解析装置。
【請求項１２】
前記連続関係は、前記仮ラベルを付与する要素の位置から３次元方向に既に走査を終えた要素との関係であることを特徴とする請求項１１記載の凝固解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、凝固解析に用いるラベリング方法および凝固解析装置に関する。
【背景技術】
【０００２】
鋳造プロセスの凝固解析（コンピュータシミュレーション）に際して、未凝固領域を一つの閉ループとみなし、未凝固部分の溶湯の流れを解析する手法が従来より知られている（たとえば特許文献１）。
【０００３】
鋳造プロセスの凝固解析を有限差分法や有限要素法などの数値解析を用いたコンピュータシミュレーションによって行う場合、未凝固領域を閉ループとして検出するために、画像解析手法の一つであるラベリングを用いることが考えられる。これは、たとえば解析領域の断面を一枚一枚の画像とみなし、その画像内における未凝固要素一つひとつにラベリングを行い、その断面の前後の断面との関係を考慮することで、複数の要素からなる一つの３次元未凝固領域を一つの閉ループとして検出することが可能となる。なお、このようなラベリングの手法を凝固解析における閉ループの検出に直接用いた公開文献について発明者らは見知していない。
【０００４】
ラベリング手法としては、さまざまなものがあるが、たとえば、非特許文献１にあるような高速ラベリングの手法を使用することが可能である。
【０００５】
このラベリング手法によれば、解析モデルの画像内の全要素を走査して、ラベル化する要素を見つけ出し、仮のラベリング（ラベル付与）を行うと同時に、仮ラベルを付けた要素と隣接する要素に他のラベルがある否かを検出して、他のラベルがある場合にはそれらの関係表を作成する。そして、２回目の走査を行って、関係表に基づいて、先に付けた仮ラベルを対応する隣接要素のラベルに変換して本ラベル付けを行うというものである。
【特許文献１】特開平０８−２７１５００号公報の段落００２３
【非特許文献１】「ラスタ走査形ラベリングの高速化手法」奥山  良幸ら、誌名：電子情報通信学会論文誌Ｄ、Ｖｏｌ．Ｊ７３−Ｄ２  Ｎｏ．１  ｐｐ．３６−４５、発行日：１９９０年１月２０日
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の高速ラベリングの手法においても、ラベル付けのための走査は仮ラベル付けと本ラベル付けの最低２回は行わなければならない。このため、これを凝固解析の閉ループの検出に用いると、膨大な時間がかかるという問題があった。これは、凝固解析の場合、そもそも解析するために用いるモデルの要素数が多いのと、シミュレーションの時間の流れにおいて、解析時刻ごとに全要素を走査することになり、走査要素数が非常に多くなるためである。
【０００７】
そこで、本発明は、ラベリングの手法を改良して、凝固解析に必要な閉ループを検出するための時間を短縮することのできる凝固解析に用いるラベリング方法および凝固解析装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明の上記目的は、下記の手段によって達成される。
【０００９】
本発明の凝固解析に用いるラベリング方法は、複数の要素からなる有限要素モデルの各要素が溶湯の状態を示している凝固解析画像を取得する段階と、取得した前記凝固解析画像の各要素に対しあらかじめ決められた出発点から順に第１回目の走査を行い、未凝固または凝固の状態を示している要素に仮ラベルを付与し、当該仮ラベルを付与する要素の周囲の要素が前記未凝固または凝固の状態か否かを示す連続関係を調べて記憶すると共に最初に前記仮ラベルを付与した要素の位置と最後に前記仮ラベルを付与した要素の位置を判別するための情報を記憶する段階と、前記第１回目としてすべての要素の走査を終了した後、前記最初に前記仮ラベルを付与した要素の情報に基づいて前記最初に前記仮ラベルを付与した要素の位置を出発点として第２回目の走査を行い、前記連続関係に基づいて同じ未凝固または凝固の状態を示している要素が同じラベルとなるように各仮ラベルを変更して行き、前記最後に前記仮ラベルを付与した要素の情報に基づいて前記最後に前記仮ラベルを付与した要素の仮ラベルの変更を行った時点で第２回目の走査を終了する段階と、を有することを特徴とする。
【００１０】
本発明の凝固解析装置は、複数の要素からなる有限要素モデルを使用して凝固解析を行い、各要素の状態を示す画像を出力する凝固解析手段と、前記凝固解析画像の各要素に対しあらかじめ決められた出発点から順に第１回目の走査を行い、未凝固または凝固の状態を示している要素に仮ラベルを付与し、当該仮ラベルを付与する要素の周囲の要素が前記未凝固または凝固の状態か否かを示す連続関係を調べて記憶手段に記憶させると共に最初に前記仮ラベルを付与した要素の位置と最後に前記仮ラベルを付与した要素の位置を判別するための情報を記憶手段に記憶させ、前記第１回目としてすべての要素の走査を終了した後、前記最初に前記仮ラベルを付与した要素の情報に基づいて前記最初に前記仮ラベルを付与した要素の位置を出発点として第２回目の走査を行い、前記連続関係に基づいて同じ未凝固または凝固の状態を示している要素が同じラベルとなるように各仮ラベルを変更して行き、前記最後に前記仮ラベルを付与した要素の情報に基づいて前記最後に前記仮ラベルを付与した要素の仮ラベルの変更を行った時点で第２回目の走査を終了することで、各要素にラベル付けを行うラベリング手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ラベリングのために走査する要素数を少なくすることができるので、凝固解析に必要な閉ループを検出するための時間を短縮することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しつつ、本発明の実施形態を説明する。
【００１３】
図１は本発明を適用した本実施形態の凝固解析装置の機能構成を示すブロック図である。図２は本発明を適用した本実施形態の凝固解析手順全体のフローチャートであり、図３はこの凝固解析で行われるラベリングの手順を示すフローチャートである。
【００１４】
まず図１を参照して、本実施形態の凝固解析装置１は、有限要素モデルを用いて凝固解析を行う凝固解析部１０（凝固解析手段）と、この凝固解析部１０が解析した画像に対してラベリングを行うラベリング部１１（ラベリング手段）と、解析途中において必要なデータを記憶する記憶部１２（記憶手段）を有する。
【００１５】
凝固解析部１０は、複数の要素からなる有限要素モデルを用いて時々刻々と変化する溶湯の凝固状態を解析する。解析結果は、あらかじめ設定されている時間間隔ごとに画像データとして出力する。凝固解析自体は、既存のコンピュータシミュレーションによる有限差分法や有限要素法などの数値解析手法が用いられ、特に限定されない。
【００１６】
ラベリング部１１は、後述する手順に従って凝固解析部１０の解析結果である画像の要素にラベリングを行う。
【００１７】
記憶部１２は、凝固解析部１０から出力される凝固解析画像のデータ、ラベリングの際に使用するデータなどを記憶する。
【００１８】
このような各部からなる凝固解析装置１は、実際には、いわゆるワークステーションやパソコンなどと称されるコンピュータである。このコンピュータが凝固解析のためのシミュレーションプログラムを実行することで凝固解析部１０として機能し、後述するラベリングの処理手順を実施するプログラムを実行することでラベリング部１１として機能する。また、記憶部１２はコンピュータ内のＲＡＭなどである。
【００１９】
図２を参照して、コンピュータシミュレーションによる凝固解析全体の手順を説明する。この凝固解析の処理は上述した凝固解析装置１によって実行される。
【００２０】
まず、凝固解析部１０へ解析する金型形状や形成するワーク形状などを入力する（Ｓ１）。これには、金型の設計形状などをＣＡＤ装置やデーターベースなどから取得するとよい。
【００２１】
次に、凝固解析部１０へ解析条件を入力する（Ｓ２）。解析条件は、たとえば、溶湯となる金属および金型部材そのものの物性、温度条件、解析時間（進行時間のステップ）、有限要素モデル（メッシュモデル）の節点数（又はメッシュ間隔）などである。なお、この解析条件の入力は、この段階ではなく、コンピュータにあらかじめ入力して記憶させておいてもよい。
【００２２】
続いて、凝固解析部１０が解析を実行する（Ｓ３）。解析は、実行時間ｔを時間ステップΔｔずつ進めて溶湯の状態を解析するものである。解析結果である凝固解析画像は時刻ｔごとに記憶部１２へ出力される。なお、凝固解析画像は、作業者（人）が見て画像として認識できるものであってもよいが、必ずしもディスプレイなどに表示されて人が認識できる状態にする必要はなく、後述するラベリング処理が可能な画像データであればよい。
【００２３】
続いて、解析したその時刻ｔにおける凝固解析画像のラベリングを実行する（Ｓ４）。このラベリングの処理はラベリング部１１によって行われる。したがって、このＳ４においてラベリング部１１は、記憶部１２から凝固解析画像を取得する。このラベリングでは、未凝固状態となっている部分（つまり液相状態の部分）にラベル付けする。ラベル付けされた画像は再び記憶部１２へ記憶される。
【００２４】
そして凝固解析部１０がラベル付けされた画像からラベル付けされた連続する要素を一つひとつ閉ループとして認識する（Ｓ５）。凝固解析部１０は、閉ループとして認識された領域を、たとえば一つの圧力場として内部圧力を算出し、欠陥（たとえば引け巣の発生や成長）の予測などを行う。なお、内部圧力の算出や欠陥の発生や成長予測計算は、周知の技術であり、たとえば、熱移動方程式、連続の式、ダルシー則による運動方程式を解くことによって行われる。
【００２５】
その後、凝固解析部１０は全要素凝固したか否かを判断し（Ｓ６）、全要素が凝固していなければ、時間を１ステップ分（Δｔ）進めて（Ｓ７）、Ｓ３に戻り、以降の処理を繰り返して実行する。一方、全要素凝固したと判断される場合には、処理を終了する。
【００２６】
なお、このような凝固解析自体の処理は、たとえば、「コンピュータ伝熱・凝固解析入門（大中逸雄著  １９８５年  丸善株式会社発行）」に記載されている直接差分法による解析プログラムを使用することができ、また、欠陥の予測については、前記『コンピュータ伝熱凝固解析入門』に記載された閉ループ法を用いることができる。そのほか、凝固解析自体の処理は、未凝固部分を閉ループとみなして算出することを行っている処理であれば、後述するラベリング処理を利用することができ、特に限定されるものではない。
【００２７】
次に図３のフローチャートを参照して、ラベリング処理の手順を説明する。また、図４にラベリングを説明するための凝固解析画像例を示す。図４は分かりやすくするために２次元モデルの画像とした。３次元モデルに適応する場合については後述する。また、図４に示した画像においては、固相率（凝固率）が所定値以上の要素、すなわち凝固していると判断される要素を「空白」で示し、固相率が所定値未満である要素を「１」として示している。つまりここでは未凝固状態を示すものとして「１」となっている要素にラベリングを行うものである。
【００２８】
なお、実際の凝固解析においては、たとえば、各要素が固相率を示す値（０〜１の実数）であったり、固相率に応じた段階的な色変化などが用いられることが多い。このためラベリング処理は固相率のしきい値を設定しておいて、このしきい値未満（色の場合は指定した色）の固相率に対してラベル付けを行うことにするとよい。具体的には、たとえば流動性のかなり高い状態の部分を知るために固相率＝０．３未満の要素にラベル付けを行う、または、凝固が多少進んでいる状態を含めて未凝固として知るために固相率＝０．７未満の要素にラベル付けを行うなどである。このようにすることで、閉ループとして検出したいさまざまな固相率の未凝固要素の部分にラベル付けを行うことができる。
【００２９】
また、本実施形態では、付与するラベル（仮ラベル、本ラベル共に）自体に順番を付けている。ここでは、４、５、６…、と４から始まる自然数として、ラベルそのものが順番となるようにしている。これは、画像の未凝固要素を「１」としてあらわしたため、ラベルはそれと混合しない数字として４以降の自然数としたものである。このほかにたとえば、アルファベットなど順番付けを行うことのできるものであればどのようなものであってもよい。
【００３０】
このラベリング処理はラベリング部１１によって実行される。
【００３１】
まず、Ｓ３で出力された画像を記憶部１２から取得する（Ｓ１０）。これは図４（ａ）の画像である。上述のように未凝固部分の要素が１として示されている。
【００３２】
そして、仮ラベルを付与するための第１回目の走査を開始する（Ｓ１１）。この第１回目の走査は、あらかじめ決められた出発点の要素から順番に各要素を検査して行き、「１」である要素か否か判定するものである。ここでの出発点（スタート位置）は、図４（ａ）において、２次元の座標を（ｉ，ｊ）であらわせば、ｉ＝１，ｊ＝１の位置、つまり一番端の要素が第１回目の走査における出発点としている。走査方向は出発点から右方向へ進み１列が終わればその次の列を一番左から右へ走査するものとしている。
【００３３】
ここで、最初に「１」である要素が見つかったなら（Ｓ１２：Ｙｅｓ）、その要素の座標を第２回目の走査開始位置として記憶する（Ｓ１３）。そして、その要素に最初の仮ラベルを付与し、仮ラベルを付けた要素数をカウントアップし、ラベルテーブル（後述）に仮ラベルを記録して、付与した仮ラベルを現在値として記憶する（Ｓ１４）。
【００３４】
図４（ａ）では、ｉ＝８，ｊ＝４の位置の要素が最初に仮ラベルを付与すべき要素として検出される。したがって、このｉ＝８，ｊ＝４の位置の要素に仮ラベルとして、図４（ｂ）に示すように、「４」を付与することになる。そして図５に示すラベルテーブルのインデックス「４」の位置に対応する隣接ラベル欄に「４」を書き込む。
【００３５】
ラベルテーブルについての詳細は後述するが、ここで概要を説明しておく。図５は、ラベルテーブルの一例を示す図面である。このラベルテーブルは、左列にインデックス欄として順番にラベルが記載されている。右列に隣接ラベル欄として、実際に付与した仮ラベルが書き込まれる。このインデックス欄と隣接ラベル欄との対応が隣接する要素同士の仮ラベルとなり、それらの接続関係を表している。本実施形態では、図５（ａ）に示すように、ラベルテーブルの初期値として、インデックス欄と隣接ラベル欄には、ラベルの順番に同じ値をあらかじめ入れておくことにしている。これにより、初めて付与される仮ラベルの場合は、実際の処理としてはラベルテーブルへの書き込み処理は行わなくてもよいので、その分の処理速度が向上する。したがって、Ｓ１４の処理では、付与される仮ラベルが初めて付与される仮ラベルであるので、ラベルテーブルへの書き込み処理は行われない。
【００３６】
また、仮ラベルを付けた要素数をカウントアップするのは、最後に仮ラベルを付与した要素の情報として、第２回目の走査において終了時点を分かるようにするためである。また、付与した仮ラベルの値を現在値として記憶するのは、次に仮ラベルを付与する際に周囲の要素に仮ラベルがない場合に次の仮ラベルとして何を記載するかを判別するためである。なお、これらの記憶は記憶部１２へ記憶することとになる（以降の処理においても同様である）。
【００３７】
続いて走査を継続し、「１」の要素を検出したなら（Ｓ１５：Ｙｅｓ）、その要素の周囲の要素であって既に検索（走査）済みの要素にラベルが付与されているか否かを調べる（Ｓ１６）。ここで既に仮ラベルが付与されている要素があれば（Ｓ１６：Ｙｅｓ）、そのなかの最も仮ラベルの値が若い値をここで「１」を検出した要素の仮ラベルとして付与すると共に、仮ラベルを付けた要素数をカウントアップする（Ｓ１７）。このとき、仮ラベルの現在値は更新しない。
【００３８】
続いて、周囲の要素に付与されている仮ラベルの値と、ここで付与した仮ラベルの値とが異なる場合にラベルテーブルのインデックスにあるその異なる仮ラベルの値に対応する隣接ラベル欄に、今回付与した仮ラベルを書き込む（Ｓ１８）。
【００３９】
Ｓ１６において、「１」を検出した要素の周囲の要素であって既に検索済みの要素とは、図６に示すように、検出した要素「ａ」の左側の要素「ａＬ」、その上の要素「ａＵＬ」、検出した要素「ａ」の上の要素「ａＵ」とその隣にある要素「ａＵＲ」ということになる。
【００４０】
一方、Ｓ１６において周囲の要素に仮ラベルがない場合には（Ｓ１６：Ｎｏ）、Ｓ１２で記憶させた仮ラベルの現在値の次の順番の仮ラベルを付与し、仮ラベルを付けた要素数をカウントアップし、付与した仮ラベルを現在値として記憶する（現在値の記憶を更新する）（Ｓ１９）。
【００４１】
以降、走査を継続して、最終要素か否かを判断する（Ｓ２０）。ここで、最終要素でなければ、Ｓ１５へ戻り、最終要素（ｉ＝ｍ，ｊ＝ｎ、ただしｍ，ｎは行および列の最後の要素を示す自然数）となるまで走査を継続する。
【００４２】
Ｓ１５〜１９までの処理を図４で説明すると、図４（ａ）に示すように、ｉ＝６，ｊ＝５の位置の要素で「１」が検出される（Ｓ１５の処理）。そこで、この要素の周囲の要素であって既に走査済みの要素における仮ラベルの有無を検索すると（Ｓ１６の処理）、そのような要素はないので、このｉ＝６，ｊ＝５の位置の要素に仮ラベルとして、図４（ｂ）に示すように、先に現在値として記憶した仮ラベル「４」の次順位である「５」を付与する（Ｓ１９の処理）。そしてラベルテーブルのインデックス「５」の位置に「５」を書き込む（Ｓ１９の処理）（ここでも付与される仮ラベルは始めて付与される仮ラベルの値であるので実際の処理ではラベルテーブルへの書き込みは行わなくてよい）。
【００４３】
続いて走査が継続され、ｉ＝７，ｊ＝５の位置の要素で「１」が検出される（Ｓ１５の処理）。この要素の周囲の要素であって既に走査済みの要素における仮ラベルの有無を検索する（Ｓ１６の処理）。そうするとｉ＝６，ｊ＝５の位置に「５」、ｉ＝８，ｊ＝４の位置に「４」がある。したがって、図４（ｂ）に示すように、これらのうち若い順番の仮ラベル「４」をｉ＝７，ｊ＝５の位置の要素の仮ラベルとして付与する（Ｓ１７の処理）。そしてラベルテーブルには、ここで付与した仮ラベルとは異なる仮ラベルが隣接する要素にあるので、それを書き込むことになる。つまりインデックス「５」の位置の隣接ラベル欄に「４」を書き込むのである（Ｓ１８の処理）（ここで付与される仮ラベルは始めて付与される仮ラベルではないので実際にラベルテーブルへの書き込み（書き換え）が行われる）。
【００４４】
このような処理を最終要素となるまで継続してゆくことになる。そして、最終要素となった場合は（Ｓ２０：Ｙｅｓ）、ラベルテーブルの整理を行う（Ｓ２１）。この処理は、作成されたラベルテーブルから、隣接する仮ラベルの要素をすべて同じラベルに合わせる処理である。
【００４５】
ここで、このラベルテーブルについてさらに詳細に説明する。
【００４６】
ラベルテーブルは、まず、図５（ａ）に示すように、初期状態としてインデックスと同じラベルが隣接ラベルの欄に入っている（なお、隣接ラベル欄は空白でもよい）。そして、図５（ｂ）に示すように、第１回目の走査における仮ラベルの入力が行われる。隣接ラベルの欄への入力は、最初のラベル付与要素が検出されたとき、および周囲の要素に仮ラベルがないときは、インデックスと同じラベルが記録される。この処理は、前述のとおり、図５（ａ）に示した初期状態とした場合は、ラベルテーブルを何も変更しなくてよいため、わずかながら処理速度が向上する。しかし初期状態で隣接ラベル欄を空白とした場合には、対応する仮ラベルを書き込むことになる。
【００４７】
一方、周囲の要素に仮ラベルがあって、かつその仮ラベルが、付与された仮ラベルと異なるものがある場合（前記Ｓ１６の処理）は、インデックスにある異なるラベルと対応する位置の隣接ラベル欄に、付与した仮ラベルを書き込む。図５の画像例では、インデックス欄「５」に対して、隣接ラベル欄「４」と入れられている部分、同様にインデックス欄「６」、「７」、「９」に対して、隣接ラベル欄「５」、「６」、「８」と入れられている部分である。
【００４８】
そして、ラベルテーブルの整理（Ｓ２１の処理）は、インデックス欄と隣接ラベル欄を比較して、隣接する仮ラベルの対応関係を整理するのである。具体的には、図５（ｂ）を参照すれば、インデックスの「４」の要素はそのまま仮ラベル「４」の要素である。インデックスの「５」は隣接ラベル欄が「４」であるから。仮ラベル「５」の要素は「４」の要素と隣接していることが分かる。インデックスの「６」は隣接ラベル欄が「５」であるから、仮ラベル「６」の要素は「５」と隣接していることが分かる。そして、仮ラベル「５」の要素は「４」の要素と隣接しているから、結局仮ラベル「６」の要素は仮ラベル「４」の要素と連続するものであると分かる。そこで、この仮ラベル欄を「４」に変更する。これをすべての仮ラベル欄に対して実行することで、図５（ｃ）に示すように、隣接ラベル欄が連続する要素ごとに同じ仮ラベルの値となる。
【００４９】
このようにしてラベルテーブルの整理が終了したなら、続いて第２回目の走査を実施する。第２回目の走査は整理後のラベルテーブルを参照して、仮ラベルを本ラベルに変換してゆくための処理である。
【００５０】
図７は、第２回目の走査の手順を示すフローチャートである。
【００５１】
この第２回目の走査は、まず、先に記録された次回スタート座標から走査を開始する（Ｓ３０）。そして、仮ラベルの付与された要素があれば（Ｓ３１：Ｙｅｓ）、仮ラベルが付いている要素数をカウントアップし、整理後のラベルテーブルを参照して検出した仮ラベルの値のインデックスに対応した隣接ラベル欄のラベルの値に変更する（Ｓ３２）。
【００５２】
そして、仮ラベルが付いていた要素数が、記憶されている仮ラベルを付与した要素数と同じになった時点で（Ｓ３３：Ｙｅｓ）、ラベリングの処理を終了して、凝固解析のメインルーチンへ戻る。
【００５３】
一方、仮ラベルが付いていた要素数が仮ラベルを付与した要素数と同じでない場合は（Ｓ３３：Ｎｏ）、Ｓ３１に戻り、以降の処理を繰り返し実行することにある。
【００５４】
Ｓ３１〜３３を図４により説明する。第２回目の走査は、ｉ＝８，ｊ＝４の位置の要素である。ここの仮ラベルは「４」であるから、ラベルテーブルのインデックスが「４」のところは隣接ラベル欄も「４」であるので変更しない。走査を継続してゆくと、ｉ＝６，ｊ＝５の位置の要素の仮ラベルは「５」である。整理後のラベルテーブル（図５（ｃ））から「５」は「４」に変更する。走査を継続して、同様に、ｉ＝４，ｊ＝６の位置の要素は「６」から「４」に変更する。同様に、最後の仮ラベルを付与したｉ＝７，ｊ＝９の位置の要素の仮ラベル「８」を「５」に変更した時点で、処理を終了することになる。
【００５５】
以上のラベリング処理による効果を説明する。
【００５６】
第１に、第２回目の本ラベルの付与においては、最初に仮ラベルを付与した位置がスタート位置となっているので、第１回目のスタート位置からそこまでの間の要素は走査しなくてもよい。同様に、仮ラベルを付けた要素数をカウントしているので、第２回目の走査においては仮ラベルを付けた要素数と同じ数だけ本ラベルを付けた時点で走査を終了することができきる。したがって、第２回目の走査においては、走査にかかる時間が少なくなる。これは、凝固解析において未凝固部分にラベリングを施してゆくため、時間の進みに従って未凝固部分が少なくなることを考えれば、非常に大きな処理時間の短縮となる。しかも、第２回目の終了位置は仮ラベルを付与した要素数をカウントしておいて、第２回目の走査で仮ラベルのある要素をカウントして、それら比較するだけである。したがって、第２回目の走査終了位置を簡単な処理で見分けることができるので処理が簡単である。
【００５７】
第２に、第１回目の走査において仮ラベルを付与する際に、周囲の要素、特に斜め方向の要素（ａＵＬ、ａＵＲ）とも対比することで、仮ラベルを付与する要素の斜め方向に未凝固要素が連続する場合にも確実に一つの同じ閉ループとして認識させることができる。
【００５８】
以上説明したラベリング処理では、第２回目の走査を終了するために、最後に仮ラベルを付与した要素の情報として、仮ラベルを付与した要素数をカウントすることとしている。しかし、最後に仮ラベルを付与した要素の情報は、これに代えて、最後に仮ラベルを付与した要素の座標を記憶しておくようにしてもよい。これには、たとえば、最後に仮ラベルを付与した要素の座標を記憶するためのメモリ領域を確保しておき（これを終了座標記憶と称する）、仮ラベルを付与するごとに、この終了座標記憶を更新してゆけばよい。つまり、仮ラベルを付与したつど、そのメモリ領域を更新して行けば、一つのメモリ領域があれば、第１回目の走査が終了した時点で、そのメモリ領域に記憶されている座標が最後に仮ラベルを付与した要素の座標ということになる。
【００５９】
このようにした場合、上述したフローチャートにおけるＳ１４、Ｓ１７、およびＳ１９における「要素数カウントアップ」の処理は、その代わりに終了座標記憶を更新する処理となる。また、Ｓ２２における「仮ラベルの付いてた要素数をカウントアップする」処理は不要となり、Ｓ２３における「書き換えた要素数が仮ラベルを付与した要素数と同じになったか？」の判断は、終了座標記憶された座標まで走査したか否かを判断し、終了座標記憶された座標まで走査した時点で、この処理は終了となる。
【００６０】
このようにすることでも、前述の手順と同様に、仮ラベルを本ラベルに書き換える必要のある要素がすべて書き換わった時点で第２回目の走査を終了できる。しかも第１回目の走査においては仮ラベルを付与するたびにその座標の値を更新記憶するだけでよいので複数の要素の座標をすべて記憶させておく必要がない。そして第２回目の走査においては仮ラベルのある要素数をカウントする必要がない。
【００６１】
以上、２次元モデルの画像を例に説明したが、３次元モデルの場合も同様に処理することができる。つまり、３次元モデルの画像を取得して、第１回目の走査においては３次元モデルの最初のスタート位置として一番端の要素を指定して、ここから、３次元的に順次走査をしてゆけばよい。そして、第２回目の走査は、３次元的に最初に仮ラベルを付与した位置から始めて、仮ラベルを付与した要素数となった時点で終了することになる。
【００６２】
しかし、これだけでは、第２回目に走査する要素数は、３次元モデルにおける最初と最後の部分が減るだけとなる。そこで、さらに走査する要素数を減らすために、３次元モデルを２次元画像が複数接続されたものとみなして、各２次元画像ごとに処理する。これにより２次元画像ごとに第２回目の走査において検索する要素数を少なくして、いっそう処理時間の短縮を図ることにした。
【００６３】
図８は、３次元モデルの画像例を示す図である。ここでは、３次元座標としてｉ，ｊ，ｋとしている。なお、図８の画像例は３次元モデルの例を示すためのもので、後述するラベリングを説明する際の画像例における要素数とは異なる。
【００６４】
図示した３次元画像においては、２次元画像としてｉｊ平面をとることとし、このｉｊ平面がｋ方向に連なっているものとみなす。
【００６５】
基本的な処理手順は上述した２次元の場合と同じである。そこでまず、第１回目の走査として、ｋ＝１において、ｉ＝１、ｊ＝１の位置を出発点として走査を開始し、ｉｊ平面における仮ラベル付けを行う。ここで、ラベルを付与する要素が検出されたときに周囲の要素を検索する際には、ｉｊ平面だけではなく、ｋ方向の要素についても、検出されたラベルを付与する要素の周囲であって、既に走査が終了した要素を比較対象とする。これに従い、ラベルテーブルは、このｉｊｋの３方向に隣接する要素のラベルの関係が記載されることになる。
【００６６】
一方、各ｉｊ平面を走査したときにその平面でそれぞれ最初に仮ラベルを付けた要素の位置は、その平面における第２回目の走査時のスタート位置として記録されるのは２次元画像で行ったときと同じである。
【００６７】
そして、第２回目の走査は、ラベルテーブルを参照して、各ｉｊ平面においてスタート位置として記憶された座標の要素からスタートし、ラベル付けを行う要素数となった時点で終了する。
【００６８】
より具体的に、３次元モデルの凝固解析画像例を元にさらに説明する。図９〜１１は各ｉｊ平面の画像例であり、図１２はこの画像に対するラベリングの際に作成されるラベルテーブルの例である。
【００６９】
まず、図９（ａ）に示すように、ｋ＝１におけるｉｊ平面の画像を取得する。そして、ｉ＝１，ｊ＝１の位置から、このｉｊ平面における第１回目の走査を開始する。
【００７０】
ここで、最初に「１」である要素としてｉ＝８，ｊ＝２の位置の要素が検出されるので、仮ラベルとして、図９（ｂ）に示すように、「４」を付与することになる。また、その位置を第２回目の走査におけるスタート位置として記憶する。そしてラベルテーブルのインデックス「４」の位置に「４」を書き込む（ここでも初期状態として図１２（ａ）に示すように、インデックス欄と隣接ラベル欄に同じラベルを記録しておけば、ラベルテーブルへの書き込み処理は不要である）。以降前述の２次元モデルの場合と同様にしてすべての要素に対しラベルを付与すべきところに仮ラベルの付与とラベルテーブルの作成を行ってゆく（図９（ｂ）参照）。
【００７１】
続けて、図１０（ａ）に示すように、ｋ＝２におけるｉｊ平面の画像を取得する。そして、ｉ＝１，ｊ＝１の位置から、このｉｊ平面における第１回目の走査を開始する。このとき付与する仮ラベルは、ｋ＝１におけるｉｊ平面から継続した順番として最初に検出した「１」の要素に対して仮ラベルを付与する。そして、その位置を第２回目の走査におけるスタート位置として記憶する。図１０に示した例では、ｉ＝４，ｊ＝７の位置の要素に対して「９」を付与することになる。以降、２次元モデルの場合と同様にしてすべての要素に対しラベルを付与すべきところに仮ラベルの付与とラベルテーブルの作成を行ってゆく（図１２（ｂ）参照）。
【００７２】
続いて、図１１（ａ）に示すように、ｋ＝３におけるｉｊ平面の画像を取得する。上記同様に、ｉ＝１，ｊ＝１の位置からスタートして仮ラベルの付与およびラベルテーブルの作成をしてゆく。これをすべてのｋ断面におけるｉｊ平面について実行するのである（図１１（ｂ）参照）。
【００７３】
ここで、重要なのは、先に説明したとおり、ラベル付けを行う要素を検出したときに、その要素に対して周囲の要素であって既に走査が終わった要素を３次元方向について検索することである。
【００７４】
図１３および１４は、この３次元方向に検索する要素を説明するための図面であり、図１４は３次元的に示した図面、図１４（ａ）はｉｊ平面の図、図１４（ｂ）はｊｋ平面の図、図１４（ｃ）はｋｉ平面の図である。
【００７５】
３次元方向に検索する要素は、図１３および１４に示すように、仮ラベルを付与する要素（ドットハッチで図示した要素）に対して、ｋが一つ前の平面（ｋ−１）の要素の５個と、仮ラベルを付与する要素と同じｋの平面の周囲の要素４個（図６参照）の合計９個である。ここでｋが一つ前の平面（ｋ−１）の要素の５個は、図示するように、仮ラベルを付与する要素とｉ，ｊ座標が同じ要素と、このｉ，ｊの要素に対して上下及び左右の要素の４個を合わせた５個である。これは、３次元モデルを２次元平面として走査してゆく過程で一つ前の平面（ｋ−１）においては、仮ラベルを付与する段階でその平面（ｋ−１）において斜めの要素は検索済みであるので、一つ前の平面（ｋ−１）に対しては、上記５個の要素を検索するだけで、仮ラベルを付与する要素の周囲の要素であって既に走査を終わった要素として３次元的に加味されることになる。
【００７６】
このことは、たとえば、図１１（ｂ）のｉ＝４，ｊ＝６の要素に現れている。すなわち、図１１（ｂ）において、ｋ＝３の断面におけるｉ＝４，ｊ＝６の要素は、この要素に隣接する３次元方向の要素の仮ラベルとして最も若い値は、ｋ＝２の断面におけるｉ＝４，ｊ＝６の要素の「９」である（図１０（ｂ）参照）。したがって、ｋ＝３の断面におけるｉ＝４，ｊ＝６の要素には、この「９」が入る。そしてラベルテーブルは、隣接ラベル欄のインデックス欄「１４」のところに「９」が書き込まれることになる。そのほか同様に３次元方向の周囲の要素に仮ラベルがある場合には、それらの仮ラベルのより若い順位の仮ラベルの値が付与されることになる。
【００７７】
このようにして最終的なラベルテーブルができあがるので（図１２（ｂ）参照）、これを例示すれば、図１２（ｃ）に示すように、連続する要素に対して同じラベルが付与されるように整理される。
【００７８】
そして、この整理後のラベルテーブルを参照して、第２回目の走査を実行する。ここでも、前述した２次元画像における第２回目の走査と同様に行えばよい。そして、３次元モデルの場合には、平面においてラベル付けする要素がまったくない状態となっている場合には、第２回目の走査そのものを行わなくてもよいのである。これには、たとえば、第１回目の走査で、仮ラベルを付けた要素の数として記憶されている値が０となっている平面は、第２回目の走査を行わないようにすればよい。その他にも、たとえば、第２回目の走査出発点とするべき座標値が記憶されていない場合に第２回目の走査を行わないとすることもできる。
【００７９】
第２回目の走査によるラベリングの結果は、図９（ｃ）、図１０（ｃ）、および図１１（ｃ）に示すとおりである。この結果から、ラベル「４」の領域と「５」の領域があることが分かる。すなわち、３次元的には２つの閉ループ空間が存在することが分かるのである。
【００８０】
なお、この３次元モデルのラベリングにおいても、第２回目の走査終了時点は、仮ラベルを付けた要素数をカウントアップして判断してもよいし、仮ラベルを付与するごとにその要素の座標を更新記録して、最後に記憶されている座標を第２回目の走査終了時点としてもよい。
【００８１】
このように、３次元モデルの場合も、前述した２次元モデルでの処理と同じように、２次元画像ごとにラベリングすることが可能となる。したがって、２次元画像ごとに第２回目の走査における検索要素数を減らすことができる。また、ラベルを付与すべき要素が検出された際に、その周囲の要素を検索する対象を３次元的に広げているので、３次元的な閉ループの広がりも確実にラベリングして、３次元的な一つの閉ループとして認識できるようになる。
【００８２】
以上本発明を適用した実施形態を説明したが、本発明はこのような実施形態に限定されるものではない。たとえば、上述した実施形態では、未凝固領域の要素をラベリングすることとしたが、これは逆に、凝固領域の要素をラベリングするようにしてもよい。具体的には、たとえば、固相率＝０．５以上の要素をラベリングしたり、固相率＝０．８以上の要素をラベリングしたりするなどである。
【００８３】
また、上述した実施形態では、凝固解析として鋳造の場合を例に説明したが、本発明は、鋳造のほか、樹脂形成であっても同様に使用することができる。具体的には、たとえば溶融した樹脂を型内部へ射出して形成する射出成形の凝固解析にも、上述した実施形態と同じように処理することで利用することができる。この場合も、未凝固状態をラベリングすることもできるし、凝固状態をラベリングすることもできる。
【図面の簡単な説明】
【００８４】
【図１】本発明を適用した凝固解析装置の機能構成を示すブロック図である。
【図２】凝固解析手順を示すフローチャートである。
【図３】ラベリングの手順を示すフローチャートである。
【図４】ラベリングを説明するための凝固解析画像例を示す図である。
【図５】ラベルテーブルの一例を示す図面である。
【図６】２次元画像における周辺要素を説明するための説明図である。
【図７】図３に続くラベリングの手順を示すフローチャートである。
【図８】３次元モデルの画像例を示す図面である。
【図９】３次元モデルのラベリングを説明するための凝固解析画像例を示す図である。
【図１０】３次元モデルのラベリングを説明するための凝固解析画像例を示す図である。
【図１１】３次元モデルのラベリングを説明するための凝固解析画像例を示す図である。
【図１２】３次元モデルのラベルテーブルの一例を示す図面である。
【図１３】３次元方向に検索する要素を説明するための三次元で示した図面である。
【図１４】３次元方向に検索する要素を説明するための３方向の平面図である。
【符号の説明】
【００８５】
１  凝固解析装置、
１０  凝固解析部、
１１  ラベリング部、
１２  記憶部。
【図１】
2009183981.tif 000003
【図２】
2009183981.tif 000004
【図３】
2009183981.tif 000005
【図４】
2009183981.tif 000006
【図５】
2009183981.tif 000007
【図６】
2009183981.tif 000008
【図７】
2009183981.tif 000009
【図８】
2009183981.tif 000010
【図９】
2009183981.tif 000011
【図１０】
2009183981.tif 000012
【図１１】
2009183981.tif 000013
【図１２】
2009183981.tif 000014
【図１３】
2009183981.tif 000015
【図１４】
2009183981.tif 000016