Notice: Undefined variable: fterm_desc_sub in /mnt/www/biblio_conv.php on line 353
挙動解析システム、挙動解析方法及び挙動解析プログラム
説明

挙動解析システム、挙動解析方法及び挙動解析プログラム

【課題】構造体の挙動を効率的に解析するための挙動解析システム、挙動解析方法及び挙動解析プログラムを提供する。
【解決手段】挙動解析装置20の制御部21は、縁付きブロック対角行列の縁部分を除いた各ブロック対角行列について、時間ステップのループの外側で、LU分解処理を実行して、下三角行列及び上三角行列を算出する。制御部21は、時間ステップのループ内において、接触がある場合には、接触条件を満足する縁部分に相当する行列の生成処理を実行する。制御部21は、生成した縁部分の行列のLU分解による要素l(i),u(i)を特定し、下三角行列及び上三角行列のそれぞれと合成して、処理対象の行列を生成する。制御部21は、処理対象の行列から、前進代入、後退代入を用いて速度修正量を算出し、変位{U}、速度{V}及び加速度{A}を更新することを繰り返して、この時間ステップの変位{U}、速度{V}及び加速度{A}を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、構造体の挙動を解析するための挙動解析システム、挙動解析方法及び挙動解析プログラムに関する。
【背景技術】
【0002】
制御回路や梁等の構造体の挙動についての解析シミュレーションを行なう場合、縁付きマトリクスで表示された方程式の解を求めることがある。この場合、公知のLU分解法を用いて計算を行なうための技術が開示されている(例えば、特許文献1参照)。この文献には、下の階層のインタフェースノードを階層の浅いほうから順番に上位ブロックに移動して縁付きブロック対角構造行列を生成し、LU分解時の回路全体の演算数と最上位ブロックの演算数とのいずれかが前の数より増加したところで、インタフェースノードの所属ブロックを決定し、回路を分割することが開示されている。これにより、回路の階層構造を保ったまま下位ブロックのノードを上位ブロックに移動することによって、潜伏性を利用して、行列計算にかかる計算時間を低減することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−97555号公報(第1頁、図1)
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、多数の構造体が集合した状態で他の構造体と接触することがある各構造体の挙動を解析する場合、ブロック対角行列を構成する行列数が多くなる。このため、LU分解法を用いる場合であっても、演算量が多くなるため、更なる工夫が必要となる。
本発明は、上記問題点を解決するためになされたものであり、構造体の挙動を効率的に解析するための挙動解析システム、挙動解析方法及び挙動解析プログラムを提供することにある。
【課題を解決するための手段】
【0005】
上記問題点を解決するために、請求項1に記載の発明は、複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、構造体の配置に関するデータを記憶する配置データ記憶手段と、隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、各構造体の平衡方程式を示すブロック対角行列をLU分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析する制御手段とを備えたシステムであって、前記制御手段が、各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する手段と、この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてLU分解して、前記分解行列データ記憶手段に記録する対角行列分解手段と、時間ステップループ内において、初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第1算出処理を実行し、接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をLU分解し、前記縁部分の行列をLU分解したLU分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第2算出処理を実行し、算出した挙動解析値が収束するまで前記接触判定処理、前記第1算出処理及び前記第2算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する手段と、前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する手段とを備えたことを要旨とする。
【0006】
請求項2に記載の発明は、請求項1に記載の挙動解析システムにおいて、前記配置データ記憶手段には、各構造体の種類に関する情報が更に記憶されており、前記物性値データ記憶手段には、種類毎に、構造体の物性値に関するデータが記憶されており、前記対角行列分解手段は、構造体の種類毎に、ブロック対角行列をLU分解した上三角行列及び下三角行列を前記分解行列データ記憶手段に記録し、前記制御手段は、前記第1算出処理及び前記第2算出処理において、前記配置データ記憶手段から、各構造体の種類を特定し、特定した種類のブロック対角行列に対応する上三角行列及び下三角行列を前記分解行列データ記憶手段から抽出し、前記構造体の配置に応じて並べることにより、縁部分がないブロック対角行列の上三角行列及び下三角行列を生成することを要旨とする。
【0007】
請求項3に記載の発明は、請求項1又は2に記載の挙動解析システムにおいて、節点が接触した場合の条件を示した各平衡方程式に対応付けて、上三角行列の行要素及び下三角行列の列要素を記憶する縁部分分解要素データ記憶手段を更に備え、前記制御手段は、時間ステップループの外側において、構造体において接触する可能性があるすべての節点が接触した場合の条件を示した平衡方程式を縁付きブロック対角行列の縁部分として生成し、この縁部分の行列と、ブロック対角行列に対応する上三角行列及び下三角行列とを用いて算出した下三角行列の行要素及び上三角行列の列要素を、対応する平衡方程式に対応付けて前記縁部分分解要素データ記憶手段に記憶し、前記時間ステップループ内において、接触があると判定した場合には、接触があると判定した節点が接触した場合の条件を示した平衡方程式に対応する下三角行列の行要素及び上三角行列の列要素を、前記縁部分分解要素データ記憶手段から取得して、これらを合成することにより行列を生成し、この行列をLU分解した縁部分上三角行列及び縁部分下三角行列を生成し、前記抽出した下三角行列の行要素及び上三角行列の列要素と、前記縁部分上三角行列及び縁部分下三角行列とを、縁部分がないブロック対角行列に対応する上三角行列及び下三角行列に合成して、前記合成上三角行列及び前記合成下三角行列を生成することを要旨とする。
【0008】
請求項4に記載の発明は、請求項1〜3のいずれか1項に記載の挙動解析システムにおいて、前記分解行列データ記憶手段には、時間刻み幅及びブロック対角行列に関連付けて、このブロック対角行列をLU分解した上三角行列及び下三角行列が記憶されており、前記制御手段は、時間刻み幅変更判定値を用いた接触条件に対応する時間刻み幅を記憶した時間刻み幅定義データ記憶手段に接続されており、前記対角行列分解手段は、変更可能な各時間刻み幅に応じたブロック対角行列を、時間ステップループの外側においてLU分解し、このLU分解した上三角行列及び下三角行列を、時間刻み幅及びブロック対角行列に関連付けて記録し、前記制御手段は、時間ステップループ内において、接触があると判定した場合には、隣接する構造体の時間刻み幅変更判定値を算出し、この時間刻み幅変更判定値を用いた接触条件に対応した時間刻み幅を、これ以降に用いる時間刻み幅として特定する手段を更に備え、前記第1算出処理において、特定した時間刻み幅及び前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、前記第2算出処理において、特定した時間刻み幅に関連付けた上三角行列及び下三角行列を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列として特定し、これら上三角行列及び下三角行列に、前記縁部分の行列をLU分解したLU分解要素を合成して合成上三角行列及び合成下三角行列を生成することを要旨とする。
【0009】
請求項5に記載の発明は、複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、構造体の配置に関するデータを記憶する配置データ記憶手段と、隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、各構造体の平衡方程式を示すブロック対角行列をLU分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、制御手段とを備えた挙動解析システムを用いて、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析する方法であって、前記制御手段が、各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する段階と、この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてLU分解して、前記分解行列データ記憶手段に記録する対角行列分解段階と、時間ステップループ内において、初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第1算出処理を実行し、接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をLU分解し、前記縁部分の行列をLU分解したLU分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第2算出処理を実行し、算出した挙動解析値が収束するまで前記接触判定処理、前記第1算出処理及び前記第2算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する段階と、前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する段階とを実行することを要旨とする。
【0010】
請求項6に記載の発明は、複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、構造体の配置に関するデータを記憶する配置データ記憶手段と、隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、各構造体の平衡方程式を示すブロック対角行列をLU分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、制御手段とを備えた挙動解析システムを用いて、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析するためのプログラムであって、前記制御手段を、各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する手段、この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてLU分解して、前記分解行列データ記憶手段に記録する対角行列分解手段、時間ステップループ内において、初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第1算出処理を実行し、接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をLU分解し、前記縁部分の行列をLU分解したLU分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第2算出処理を実行し、算出した挙動解析値が収束するまで前記接触判定処理、前記第1算出処理及び前記第2算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する手段、及び前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する手段として機能させることを要旨とする。
【0011】
(作用)
本発明によれば、制御手段は、各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する。制御手段は、この縁付きブロック対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてLU分解して、分解行列データ記憶手段に記録する。制御手段は、時間ステップループ内において、初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、接触がないと判定した場合には、各ブロック行列に対応する上三角行列及び下三角行列を、分解行列データ記憶手段から抽出し、これらを構造体の配置に応じて並べることにより生成した縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第1算出処理を実行し、接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をLU分解し、縁部分の行列をLU分解したLU分解要素を、縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第2算出処理を実行し、算出した挙動解析値が収束するまで接触判定処理、第1算出処理及び第2算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する。制御手段は、時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する。これにより、縁部分以外のブロック対角行列に対応する上三角行列及び下三角行列は、時間ステップループ内において毎回計算する必要がないため、演算量を少なくして、効率的に解析を行なうことができる。
【0012】
本発明によれば、制御手段は、構造体の種類毎に、ブロック対角行列をLU分解した上三角行列及び下三角行列を分解行列データ記憶手段に記録する。制御手段は、第1算出処理及び第2算出処理において、配置データ記憶手段から、各構造体の種類を特定し、特定した種類のブロック対角行列に対応する上三角行列及び下三角行列を分解行列データ記憶手段から抽出し、構造体の配置に応じて並べることにより、縁部分がないブロック対角行列の上三角行列及び下三角行列を生成する。これにより、同じ種類の構造体が複数ある場合には、同じ種類の構造体については1回のみLU分解の計算をすればよいので、演算量を少なくして、効率的に解析を行なうことができる。
【0013】
本発明によれば、制御手段は、時間ステップループの外側において、構造体において接触する可能性があるすべての節点が接触した場合の条件を示した平衡方程式を縁付きブロック対角行列の縁部分として生成し、この縁部分の行列と、ブロック対角行列に対応する上三角行列及び下三角行列とを用いて算出した下三角行列の行要素及び上三角行列の列要素を、対応する平衡方程式に対応付けて縁部分分解要素データ記憶手段に記憶し、時間ステップループ内において、接触があると判定した場合には、接触があると判定した節点が接触した場合の条件を示した平衡方程式に対応する下三角行列の行要素及び上三角行列の列要素を、縁部分分解要素データ記憶手段から取得して、これらを合成することにより行列を生成し、この行列をLU分解した縁部分上三角行列及び縁部分下三角行列を生成し、抽出した下三角行列の行要素及び上三角行列の列要素と、縁部分上三角行列及び縁部分下三角行列とを、縁部分がないブロック対角行列に対応する上三角行列及び下三角行列に合成して、合成上三角行列及び合成下三角行列を生成する。これにより、時間ステップループ内において、縁部分のLU分解要素を毎回、算出しなくてよいので、演算量を少なくして、効率的に解析を行なうことができる。
【0014】
本発明によれば、制御手段は、時間ステップループ内において、接触があると判定した場合には、隣接する構造体の時間刻み幅変更判定値を算出し、この時間刻み幅変更判定値を用いた接触条件に対応した時間刻み幅を、これ以降に用いる時間刻み幅として特定する。制御手段は、第1算出処理において、特定した時間刻み幅及び各ブロック行列に対応する上三角行列及び下三角行列を、分解行列データ記憶手段から抽出する。制御手段は、第2算出処理において、特定した時間刻み幅に関連付けた上三角行列及び下三角行列を、縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列として特定し、これら上三角行列及び下三角行列に、縁部分の行列をLU分解したLU分解要素を合成して合成上三角行列及び合成下三角行列を生成する。これにより、時間刻み幅変更判定値に応じて時間刻み幅を変更させるとともに、時間ステップループの内側での演算量を抑制して、効率的に解析を行なうことができる。
【発明の効果】
【0015】
本発明によれば、構造体の挙動を効率的に解析するための挙動解析システム、挙動解析方法及び挙動解析プログラムを提供することができる。
【図面の簡単な説明】
【0016】
【図1】第1の実施形態における挙動解析装置の構成を説明する説明図。
【図2】第1の実施形態における挙動解析対象の構造物を説明する説明図であって、(a)はモデル化した節点の平面配置図、(b)はモデル化した節点の垂直配置図、(c)は平面における節点素同士の関係方程式を示したモデル図。
【図3】実施形態の解析対称の構造物の挙動を表す方程式を説明する説明図。
【図4】LU分解を用いた方程式の算出方法を説明する説明図。
【図5】第1の実施形態における方程式についての説明図であり、(a)はLU分解についての説明図、(b)は接触を表す式がLU分解可能を検証する式の説明図、(c)は変位修正量及び加速度修正量の算出についての説明図。
【図6】第1の実施形態の挙動解析処理の処理手順の説明図。
【図7】第1の実施形態の挙動解析処理の結果を示す説明図であり、(a)、(b)、(c)は、それぞれ左側、中央、右側の構造体の挙動解析結果を示す。
【図8】第2の実施形態の挙動解析処理の処理手順の説明図。
【図9】変更例における非線形構造解析における定量化の説明図。
【発明を実施するための形態】
【0017】
(第1の実施形態)
以下、本発明の挙動解析システム、挙動解析方法及び挙動解析プログラムを具体化した第1の実施形態を図1〜図7に基づいて説明する。本実施形態では、複数配置された構造体の挙動を解析するための挙動解析システムについて説明する。本実施形態では、挙動を解析する対象の構造体は、隣接する構造体と予め定めた部分を介して接触し、他と接触しない限り独立した構造体として挙動する。この構造体の詳細については、後述する。
【0018】
本実施形態では、挙動解析システムとして、図1に示す挙動解析装置20を用いる。この挙動解析装置20は、構造体の挙動解析処理を行なうコンピュータである。この挙動解析装置20は、入力部11及び出力部12に接続されている。入力部11は、キーボードやマウス等であり、解析処理に用いる各種指示や各種データを入力するために用いられる。出力部12はディスプレイ等であり、解析結果を出力するために用いられる。
【0019】
挙動解析装置20は、制御部21、物性値データ記憶部22、配置位置データ記憶部23、時間定義データ記憶部24、初期値データ記憶部25を備える。更に、この挙動解析装置20は、対角行列LU分解データ記憶部26、縁部分LU分解データ記憶部27、挙動解析値データ記憶部28を備えている。
【0020】
制御部21は、構造体の挙動についての解析処理を実行する。この制御部21は、図示しないCPU、RAM及びROM等からなる制御手段として機能し、後述する処理(計算管理段階、LU分解計算時間段階、ステップ計算段階及び接触部計算段階等を含む処理)を行なう。そして、このための挙動解析プログラムを実行することにより、制御部21は、計算管理手段211、LU分解手段212、時間ステップ計算手段213及び接触部計算手段214等として機能する。
【0021】
計算管理手段211は、構造体の挙動を解析する処理の全体処理を管理する処理を実行する。計算管理手段211は、構造体をモデル化した節点に対してナンバリングを行なうためのルールを記憶している。このナンバリングのルールについての詳細は後述する。
LU分解手段212は、対角行列分解手段として機能し、対角行列分解段階を実行する。このLU分解手段212は、構造体の挙動を表す方程式についてLU分解処理を実行する。この方程式についてのLU分解処理及びLU分解の行列の解の算出についての詳細は、後述する。
【0022】
時間ステップ計算手段213は、各時間ステップ内における算出処理を管理しながら、LU分解した行列等を用いて、挙動解析値を算出する処理を実行する。このため、時間ステップ計算手段213は、現在の時間ステップを記憶するメモリを備える。更に、時間ステップ計算手段213は、この時間ステップにおける算出処理を終了させるか否かを判断する。本実施形態では、各時間ステップにおいて、後述する方程式の残差及び拘束条件の残差が、後述する収束判定値より小さくなった場合には、この時間ステップにおける算出処理を終了すると判定する。また、時間ステップ計算手段213は、これら残差が、収束判定値以上の場合には、反復回数を「1」増加させて、後述する処理を繰り返して実行する。
【0023】
更に、時間ステップ計算手段213は、LU分解によって生成した下三角行列L及び上三角行列Uを用いて、後述するように、方程式の解として速度修正量{dVn+1,(i+1)}を算出するための算出プログラムを記憶している。また、時間ステップ計算手段213は、算出した速度修正量{dVn+1,(i+1)}を用いて、変位{U}、速度{V}及び加速度{A}を算出するための後述する算出式を記憶している。そして、時間ステップ計算手段213は、算出した変位{U}、速度{V}及び加速度{A}を挙動解析値データ記憶部28に記録する。
【0024】
接触部計算手段214は、この時間ステップにおける接触部に関する方程式の算出処理を実行する。この場合、接触部計算手段214は、この時間ステップにおける縁部分の行列H(i)を特定する。この縁部分の行列H(i)の詳細については、後述する。
【0025】
物性値データ記憶部22は、物性値データ記憶手段として機能する。物性値データ記憶部22には、構造体の種類毎に、構造体の物性値に関するデータが記録されている。本実施形態では、物性値に関するデータとして、3次元形状の寸法、質量密度、ヤング率、ポアソン比、バネ剛性、減衰係数、断面積及び断面2次モーメント等に関するデータが含まれている。これら物性値は、解析する構造体の種類が特定された場合には、解析処理を実行する前に、入力部11を用いて入力される。本実施形態の構造体は、断面が六角柱形状をした長尺物である。各構造体には、径方向に突出するフランジ部が数箇所形成されている。そして、各構造体は、このフランジ部のみを介して、他の構造体と接触する。本実施形態では、構造体を構成する材料の物性値から、種類毎に算出された構造体の物性値が記録される。
【0026】
配置位置データ記憶部23は、配置データ記憶手段として機能する。この配置位置データ記憶部23には、容器に収容される構造体の配置位置に関するデータが記録されている。この配置位置データは、配置された構造体の位置データが、構造体の種類を特定する種類識別データと関連付けられている。本実施形態では、解析する構造体の配置位置は、解析処理を実行する前に、入力部11を用いて入力される。本実施形態では、容器内に複数の構造体が収容されており、図2(a)に示すように、他の構造体と、初期ギャップdの間隔で同心六角形上に配置される。
【0027】
時間定義データ記憶部24には、解析処理に用いる時間発展に関する定義データが記録される。この時間定義データには、時間刻み幅、終了時間ステップ及び収束判定値等に関するデータが含まれている。本実施形態では、時間刻み幅、終了時間ステップ及び収束判定値は、解析処理を実行する前に、入力部11を用いて入力される。ここで、時間刻み幅としては、例えば1.0×10-3が記録されている。終了時間ステップとしては、例えば、「15000」が記憶されている。収束判定値としては、例えば1.0×10-6が記憶されている。
【0028】
初期値データ記憶部25は、ギャップデータ記憶手段として機能する。この初期値データ記憶部25には、挙動解析に用いる各節点の初期ギャップd、各節点の初期位置{Xi}、各節点の変位{U}、速度{V}及び加速度{A}の初期値が記憶されている。更に、方程式で用いるニューマークのβ法におけるパラメータβ,γの値が記憶されている。本実施形態では、これら初期値は、解析処理を実行する前に、入力部11を用いて入力される。また、本実施形態では、各節点の初期変位U、各節点の初期速度V及び各節点の初期加速度Aとしては、すべて「0」を用いる。また、パラメータβ,γは、それぞれ1/4、1/2が記録されている。
【0029】
対角行列LU分解データ記憶部26は、分解行列データ記憶手段として機能する。対角行列LU分解データ記憶部26には、ブロック行列A(i)をLU分解したことによって得られる下三角行列L(i)と、上三角行列U(i)とに関するデータが記憶される。本実施形態では、構造体の種類毎にブロック行列A(i)が生成されるため、構造体の種類毎に下三角行列L(i)及び上三角行列U(i)が記憶される。
【0030】
縁部分LU分解データ記憶部27は、縁部分分解要素データ記憶手段として機能する。縁部分LU分解データ記憶部27には、縁部分の行列H(i)をLU分解したことによって得られる下三角行列の行要素l(i)と、上三角行列の列要素u(i)に関するデータが記憶されている。本実施形態では、接触する可能性がある構造体同士がすべて接触した場合の条件を表した行列H(i)をLU分解した要素l(i),u(i)が記憶されている。これら下三角行列の行要素l(i)と、上三角行列の列要素u(i)がLU分解要素に相当する。
【0031】
挙動解析値データ記憶部28は、挙動解析によって算出される各節点の算出値に関するデータを記憶する。本実施形態では、算出値として、時間ステップ毎に算出した変位{U}、速度{V}、加速度{A}を記憶する。この時間ステップ毎の算出値は、残差が収束するまで後述する処理を繰り返すことによって算出されるので、収束するまでは、時間ステップ毎の算出値は順次、更新されて記録される。
【0032】
(構造体のモデル化)
次に、挙動を解析するための構造体のモデル化及びその方程式について詳述する。
本実施形態では、各構造体を節点で示す有限要素法によってモデル化する。図2に表示されたすべての黒丸が、モデル化した各節点を表している。ここで、図2(a)及び図2(c)は平面図における節点の配置図であり、図2(b)は垂直面における節点の配置図である。図2(a)に示す平面上では、各構造体を、六角柱の側面を表す6つの節点と、中心を表す1つの節点とでモデル化する。また、側面の節点と中心の節点とは、図2(c)に示すように、バネ要素及びダッシュポット要素によって連結されているとしてモデル化する。
また、図2(b)に示すように、各構造体を、垂直面上では、中心軸方向に一列に整列する節点としてモデル化する。
【0033】
更に、構造体は、上述のように、フランジ部を介して、隣接する構造体及び容器の収容面に接触する可能性がある。そこで、フランジ部において、各構造体の表面の節点と、他の構造体の表面の節点とが、ギャップ要素によって連結されている構成でモデル化を行なう。なお、このギャップ要素には、図2(c)で示すように、バネ要素が付加されている。
【0034】
また、構造体は、容器の底面の支持板により支持されている構成でモデル化を行なう。
そして、このモデル化においては、構造体毎に、順次、各構造体に含まれる節点に対して、ナンバリングを行なう。具体的には、まず、1つの構造体における節点において、隣接する節点が連番となるようにナンバリングを行なう。この場合、各構造体について、同じルールを用いてナンバリングを行なう。ここでは、各構造体において隣接する節点が連番となるように、節点のナンバリングを行なう。例えば、上面から同一平面について連番が終了した後に、その下の節点についてナンバリングを行なう。そして、1つの構造体についてのナンバリングを完了した後で、その続き番号を用いて他の構造体のナンバリングを、同じルールを用いて行なう。
【0035】
(構造体の挙動を示す方程式)
このようにモデル化した構造体の挙動を示す方程式について、図3及び図4を用いて説明する。
接触による拘束条件がある場合、ラグランジュの未定乗数{Λ}を用いて、この拘束条件を導入することにより、平衡方程式(空間方向に離散した半離散式)を算出できる。ここで、{Λ}はラグランジュの未定乗数を並べたベクトルを表している。具体的には、まず、歪みエネルギー密度を使用したポテンシャルエネルギーVを示す方程式と、運動エネルギーKを示す方程式を用いて、拘束条件を{G(U)}=0とした場合のラグランジアンを算出する。
【0036】
そして、このラグランジアンの時間の区間[t1,t2]における作用積分Iを用いて、この時間の区間[t1,t2]の端点における変位ベクトルの変分{δU}が境界条件δU(t1)=δU(t2)=0を満たし、かつ変位ベクトルの変分{δU}とラグランジュの未定乗数の変分{δΛ}の任意性を利用する。これにより、拘束条件がある場合の慣性項を含む平衡方程式は、図3の式(1−1)により表せる。
【0037】
ここで、式(1−1)の左辺における[B]は、節点変位ベクトル{U}から歪みベクトル{ε}=(ε11,ε22,ε33,2ε23,2ε31,2ε12への変換行列である。また、{σ}は応力ベクトルを意味する。[M]は、質量行列であり、式(1−2)で表せる。ここで、ρは質量密度である。式(1−1)における{F}は、荷重ベクトルであり、式(1−3)で表せる。ここで、[N]は、節点変位ベクトル{U}から変位ベクトルu=Nへの変換行列であり、Sは、荷重が規定されている境界(ノイマン条件が規定されている境界)である。また、{b}は物体力ベクトルである。また、式(1−1)〜式(1−3)におけるVは、集合した構造体の全体領域を意味する。
【0038】
そして、式(1−1)の平衡方程式をニュートン・ラブソン法(Newton-Raphson法)によって線形化すると、式(1−4)のようになる。ここで、右辺のRは、平衡方程式の残差であり、式(1−5)で表せる。また、右辺のRは、拘束条件の残差であり、式(1−6)で表せる。更に、式(1−4)の[K]は、構造体の剛性行列であり、式(1−7)で表せる。ここで、[D]は、弾性テンソルを6×6に並べた行列である。更に、[H](=[∂G/∂U])は、拘束条件{G(U)}=0のヤコビアンである。なお、式(1−5)及び式(1−7)のVは、集合した構造体の全体領域を意味する。
【0039】
そして、この式(1−4)に、陰解法であるニューマークのβ法(Newmark-β法)の仮定を導入して、加速度修正量、変位修正量、速度修正量を用いることにより、接触による拘束条件がある構造体の挙動の方程式は、式(1−8)で表せる。ここでは、速度{V}を主未知変数として定式化しており、式(1−8)のdVは速度修正量を意味している。また、式(1−8)においてβとγはニューマークのβ法におけるパラメータであり、β=1/4かつγ=1/2のときは無条件安定となる。
【0040】
ここで、隣接する2つの構造体の接触をギャップ要素でモデル化し、一方の構造体iに含まれる第p番節点と、他方の構造体jに含まれる第q番節点によってギャップ要素が構成されると仮定する。この2つの節点の変位を{U},{U}とした場合、相対変位{Upq}={U}−{U}となる。そこで、初期位置を{X},{X}とした場合、位置(ベクトル){Xpq}=({X}−{X})/│{X}−{X}│の方向に、相対変位{Upq}が初期ギャップdだけ発生した場合に接触し、そうでなければ接触していないと判定する。従って、接触条件は式(1−9)で表せる。ここで、「・」は内積を表す。
【0041】
節点は構造体の側面を表しているため、実際には2つの節点が接触面を貫通することはなく接触面に留まる。従って、式(1−9)における不等号を除いた式({Upq}・{Xpq}+d=0)を満たす必要がある。式(1−8)においては、時刻歴応答の節点における速度{V}を主未知変数としているので、式(1−9)における不等号を除いた式を、節点の速度{Vpq}={V}−{V}で書き換えると、式(1−10)になる。
【0042】
そして、ギャップ要素による拘束条件の式(1−10)をラグランジュの未定乗数λを導入して、式(1−8)に組み込むと、式(1−11)になる。ここで、「λ」は、ラグランジュの未定乗数{Λ}のベクトルに含まれる1成分の値であり、式(1−11)においては、1成分のみを表している。ここで、右下の括弧付きの添え字は、各構造体の番号を示し、[A(n)]は、式(1−12)で示される。また、[M(n)]、[K(n)]及び[C(n)]は、第n番目の構造体の質量行列、剛性行列及び減衰行列をそれぞれ表している。従って、[A(i)]はギャップ要素の片方の第p番節点を含む構造体iに対応したブロック行列を示し、[A(j)]は、もう片方の第q番節点を含む構造体jに対応したブロック行列を表している。また、ベクトル{h(i)}は、拘束条件の式(1−10)におけるベクトル{V}に対応する係数を並べたものであり、式(1−13)で表せる。ただし、ベクトル{h(i)}の非ゼロ成分{Xpq}の位置は、構造体iに含まれる節点全体における第p番節点のナンバリングに依存する。
【0043】
ここで、接触している節点同士が複数ある場合には、接触している箇所の数の分だけラグランジュの未定乗数があり、これらに対応するベクトル{h(i)}を並べた方程式になる。この複数のベクトル{h(i)}を並べた場合の方程式は、図4の式(1−14)のように表せる。この式においては、第1ギャップ要素が第i構造体の節点pと第j構造体の節点qから構成され、第2ギャップ要素が第k構造体の節点rと第l構造体の節点sから構成される場合を表している。ここで、{h(i)}や{h(k)}は、それぞれ式(1−15)、式(1−16)により表される。従って、本実施形態の構造体の挙動解析を行なう場合には、式(1−14)の方程式を解くことになる。
【0044】
(構造体の挙動を示す方程式の算出方法)
次に、接触による拘束条件がある構造体の挙動の方程式の算出方法について、図4、図5(a)及び図5(b)を用いて説明する。ここでは、図4の式(1−14)の左辺の行列は、行列を表す大括弧やベクトルを表す中括弧の記号を省略し、拘束条件の係数ベクトル{h(i)}をまとめると、式(2−1)の左辺の全体行列Aで表せる。
【0045】
この全体行列Aは、相互に独立の未定乗数が含まれる縁付ブロック対角行列である。ここで、構造体の総数をNとし、隣接する構造体がフランジ部において接触している箇所の(すなわち閉じたギャップ要素の)総数をMとする。また、第i構造体の有限要素法モデルに含まれる総自由度数をn(i=1,…,N)とする。この場合、どこも接触しておらず、すべてのギャップ要素が開いている場合はM=0であり、全体行列Aは、単純なブロック対角行列A’(=A(1)+…+A(N))となる。
【0046】
次に、少なくともひとつのギャップ要素が閉じている場合(M≧1)について説明する。ここで、剛体運動を排除するような固定条件を付した剛体行列K(i)は正定値対称行列となる。また、質量行列M(i)も、その定義から半正定値対称行列となる。式(2−1)におけるブロック行列A(i)は、式(1−12)におけるnをiに変更した式であるため、以下の2つの性質が成り立つ。
【0047】
[性質1]A(i)は正定値対称行列
ただし、全体行列Aは拘束条件に対応する縁が存在するため、正定値にならない。
[性質2]rank(H(1)・・・H(N) )=M
【0048】
この[性質2]は、行列H=(H(1)・・・H(N) )のM個の行ベクトルが線形独立であることが必要であり、ひとつの節点が高々ひとつのギャップ要素にしか含まれなければ満たされるが、ひとつの節点が多くのギャップ要素に含まれている場合には満たされない。しかし、ギャップ要素の前後にダッシュポット要素を含むバネ要素を挿入するので、ひとつの節点が複数のギャップ要素に共有されることは稀であり、この[性質2]は満たされると考えられる。
【0049】
この[性質1]及び[性質2]を持つ全体行列Aは、必ず式(2−1)のように、LU分解可能である。そして、この式(2−1)の右辺を計算して、左辺の全体行列Aと比較すると、式(2−2)〜式(2−5)が成り立つ。ブロック行列A(i)は正定値対称行列であるから、LU分解(コレスキー分解)可能である。この場合、ブロック行列A(i)は、式(2−2)の右辺のようにLU分解される。
【0050】
ここで、式(2−1)のL(i)は下三角行列であるので、式(2−3)より、要素u(i)は前進代入により求められる。同様に、U(i)は上三角行列であるので、式(2−4)より、要素l(i)は前進代入により求められる。こうして求めた要素l(i)と要素u(i)とを式(2−5)に代入すれば、図5(b)の式(2−6)となる。このとき、ブロック行列A(i)は正定値対称行列であるので、行列A(i)-1も正定値対称行列であり、上述した[性質2]の仮定よりHの行ベクトルは線形独立だから、式(2−6)の右辺の行列も正定値対称行列となる。従って、式(2−6)の右辺の行列はLU分解可能であり、この右辺の行列をLU分解した下三角行列及び上三角行列をそれぞれL”、U”とした場合、L’=L”、U’=−U”と置くことができる。従って、[性質2]が満たされる場合には、全体行列Aを式(2−1)の形に分解できる。
【0051】
このとき、ブロック行列A(i)は変化しない(接触状況や変形に依存しない)。このため、ブロック行列A(i)のLU分解は、図5(a)に示すように、時間ステップループの外側で最初に1回だけ実行する。そして、算出した下三角行列L(i)及び上三角行列U(i)を記憶しておく。また、時間ステップの進行やその中の反復処理の進行に伴って接触状況が変化するたびに行列H(i)が更新されるので、それに合わせて、前進代入によって要素l(i)と要素u(i)を更新する。また、その都度、要素l(i)と要素u(i)とを、式(2−5)に代入して行列[L’U’]を算出し、この行列をLU分解して、行列L’、U’も更新する。本実施形態では、全てのギャップ要素が閉じた場合を想定して、全てのi=1,…,Nに対して、式(2−3)及び式(2−4)の行列H(i)を設定しておき、前進代入によって、要素l(i)と要素u(i)を算出する。そして、実際の接触状況に応じて、式(2−6)の右辺の行列を作成する際の総和の範囲を選択的に制限する。これにより、時間ステップループの内側では、式(2−6)のLU分解のみを行なうことにより、方程式の計算時間の短縮ができる。
【0052】
そして、LU分解によって得られた下三角全体行列L'''の解は、公知のように、前進代入によって求めることができる。更に、LU分解によって得られた上三角全体行列U'''の解は、公知のように、後退代入を用いて求めることができる。
【0053】
この方程式においては、時刻tn+1における反復回数「i+1」の速度修正量{dVn+1,(i+1)}が解として算出される。そして、この速度修正量{dVn+1,(i+1)}を用いて、変位修正量{dUn+1,(i+1)}及び加速度修正量{dAn+1,(i+1)}が、それぞれ図5(c)の式(3−1)及び式(3−2)によって算出できる。更に、この時間ステップ(i+1)における変位{U}、速度{V}、加速度{A}は、それぞれ、以下の式(3−3)、式(3−4)、式(3−5)で表せられる。
【0054】
{Un+1,(i+1)}={Un+1,(i)}+{dUn+1,(i+1)} …(3−3)
{Vn+1,(i+1)}={Vn+1,(i)}+{dVn+1,(i+1)} …(3−4)
{An+1,(i+1)}={An+1,(i)}+{dAn+1,(i+1)} …(3−5)
【0055】
(挙動解析処理)
次に、この挙動解析装置20を用いて、構造体の挙動を解析する処理について、図6を用いて説明する。
【0056】
まず、挙動解析装置20の制御部21は、入力データの読込処理を実行する(ステップS11)。具体的には、制御部21の計算管理手段211は、物性値データ記憶部22から物性値データを取得し、配置位置データ記憶部23から配置位置に関するデータを取得する。
【0057】
次に、挙動解析装置20の制御部21は、ナンバリング処理を実行する(ステップS12)。具体的には、制御部21の計算管理手段211は、配置位置データを用いて、配置された構造体に対して、節点のナンバリングを行なう。この場合、計算管理手段211は、記憶しているルールを用いて、かつ1つの構造体を表す節点が連番となるようにナンバリングを行なう。
【0058】
次に、挙動解析装置20の制御部21は、種類毎の構造体マトリクスの生成処理を実行する(ステップS13)。具体的には、制御部21の計算管理手段211は、物性値データを式(1−2)及び式(1−7)に代入して、構造体の種類毎に、この構造体の質量マトリクス[M]及び剛性マトリクス[K]を算出する。計算管理手段211は、算出した質量マトリクス[M]及び剛性マトリクス[K]と、物性値データの減衰係数と、初期値データのパラメータβ,γとを用いて、種類毎のブロック行列A(i)を算出する。
【0059】
次に、挙動解析装置20の制御部21は、縁付きマトリクスの生成処理を実行する(ステップS14)。具体的には、制御部21の計算管理手段211は、配置位置データを用いて、各種類の構造体のブロック行列A(i)を配置順番に並べて、ブロック対角行列A’を生成する。そして、計算管理手段211は、すべてのギャップ要素が閉じた場合の行列H(i)を、このブロック対角行列A’に加えて、全体行列Aを生成する。この場合、全体行列Aは、縁付きブロック対角行列となる。
【0060】
次に、挙動解析装置20の制御部21は、LU分解処理を実行する(ステップS15)。具体的には、図4で示す式(2−1)のように、制御部21のLU分解手段212は、ステップS14で生成した全体行列Aの各ブロック行列A(i)をLU分解することにより、各下三角行列L(i)と、各上三角行列U(i)とを算出して、対角行列LU分解データ記憶部26に記憶する。この場合、構造体の種類が同じであれば、同様な順序で節点のナンバリングをしているため、同じブロック行列A(i)であり、このブロック行列A(i)を分解した下三角行列L(i)及び上三角行列U(i)も同じになる。従って、LU分解手段212は、縁付きブロック対角行列である全体行列Aに用いられている構造体の種類毎に、ブロック行列A(i)について下三角行列L(i)及び上三角行列U(i)を算出する。そして、同じ種類の他の構造体のブロック行列A(i)については、LU分解の計算を行わずに、対応する種類の下三角行列L(i)及び上三角行列U(i)を、その構造体を示す識別子(番号)に関連付けて、対角行列LU分解データ記憶部26に記憶する。
【0061】
また、LU分解手段212は、全体行列Aの縁部分となる行列H(i)について、前進代入及び後退代入によって要素u(i)と要素l(i)とを算出する。具体的には、図5(a)に示すように、LU分解手段212は、行列H(i)と、上三角行列U(i)と、式(2−4)とを用いて、公知の前進代入によって、要素l(i)を算出する。また、LU分解手段212は、行列H(i)と、下三角行列L(i)と、式(2−3)とを用いて、公知の前進代入によって、要素u(i)を算出する。そして、LU分解手段212は、各接触を表す識別子に関連付けて、算出した要素l(i)と要素u(i)とを、縁部分LU分解データ記憶部27に記憶する。
そして、計算管理手段211は、現在の時間ステップとして「0」を、時間ステップ計算手段213のメモリに記憶する。
【0062】
そして、挙動解析装置20の制御部21は、終了時間前か否かの判定処理を実行する(ステップS16)。具体的には、制御部21の計算管理手段211は、時間定義データ記憶部24に記憶している終了時間ステップを取得し、現在の時間ステップtと比較する。計算管理手段211は、現在の時間ステップtが終了時間ステップより小さい場合には、終了時間前と判定する(ステップS16において「YES」)。
【0063】
この場合、挙動解析装置20の制御部21は、時間ステップの更新処理を実行する(ステップS17)。具体的には、制御部21の時間ステップ計算手段213は、現在の時間ステップtに「1」を加算して、メモリに記憶する。そして、反復回数を「i=0」として、以下のステップS18〜S23の反復回数「i+1」の処理を実行する。
【0064】
次に、挙動解析装置20の制御部21は、接触があるか否かの判定処理を実行する(ステップS18)。ここで、制御部21は、式(1−9)を満たすか否かを判定する。具体的には、制御部21の時間ステップ計算手段213は、初期値データ記憶部25から、初期ギャップd及び各節点の初期位置{Xi}を取得する。そして、時間ステップ計算手段213は、配置位置データ記憶部23の配置データから、接触する可能性がある節点同士(隣接する節点同士)を特定し、位置{Xpq}を算出する。
【0065】
次に、時間ステップ計算手段213は、現在の反復回数が「i=0」の場合には、初期値データ記憶部25から各節点の初期変位{U}(=0)を取得し、現在の反復回数が「1」以上の場合には、挙動解析値データ記憶部28から、反復回数が1つ前の各節点の変位{U}を取得する。そして、時間ステップ計算手段213は、取得した各節点の位置{Xpq}と変位{U}との内積を算出し、これに初期ギャップdを加算した値が、0以下であるか否かを判定する。
【0066】
ここで、式(1−9)を満たす節点同士が1つもないことにより、接触なしの場合(ステップS18において「NO」の場合)、挙動解析装置20の制御部21は、縁部分eがないブロック対角行列A’に対応する下三角全体行列L及び上三角全体行列Uを算出処理対象と特定する。具体的には、制御部21の時間ステップ計算手段213は、対角行列LU分解データ記憶部26から、各ブロック行列A(i)に対応する各下三角行列L(i)と上三角行列U(i)を抽出する。そして、時間ステップ計算手段213は、抽出した各下三角行列L(i)を各構造体の配置データに応じた対角要素として配置して、下三角全体行列Lを生成する。また、時間ステップ計算手段213は、抽出した上三角行列U(i)を各構造体の配置データに応じた対角要素として配置して、上三角全体行列Uを生成する。
そして、制御部21は、以下のステップS19,S20の処理をスキップする。
【0067】
一方、式(1−9)を満たす節点同士が少なくとも1つあることにより、接触ありの場合(ステップS18において「YES」の場合)、挙動解析装置20の制御部21は、接触条件を満足する縁部分の生成処理を実行する(ステップS19)。具体的には、制御部21の接触部計算手段214は、式(1−9)を満たすことにより接触したと判定された節点同士の行ベクトルを特定する。そして、図4の式(1−14)に示すように、この行ベクトルを並べた縁部分eの行列H(i)(及びこの行列H(i)に対応する転置行列H(i))を生成する。
【0068】
次に、挙動解析装置20の制御部21は、縁部分の行列H(i)のLU分解処理を実行する(ステップS20)。具体的には、制御部21のLU分解手段212は、ステップS19で生成した縁部分の行列H(i),H(i)に対応する要素l(i)と要素u(i)とを縁部分LU分解データ記憶部27から抽出する。LU分解手段212は、抽出した要素u(i)の行列を入れ替えて要素u(i)Tを生成し、この要素u(i)Tと、抽出した要素l(i)とを、式(2−5)に代入して、行列[L’U’]を算出する。そして、LU分解手段212は、この行列[L’U’]をLU分解することにより、行列L’及び行列U’を算出する。
【0069】
そして、LU分解手段212は、図5(a)に示すように、縁部分eがない全体行列Aを構成する各ブロック行列A(i)に対応する各下三角行列L(i)と上三角行列U(i)を対角行列LU分解データ記憶部26から抽出し、下三角全体行列Lと上三角全体行列Uとを生成する。
【0070】
更に、LU分解手段212は、図5(a)に示すように、生成した下三角全体行列Lに対して、抽出した要素l(i)と、算出した行列L’とを合成した下三角全体行列L'''を生成する。また、LU分解手段212は、生成した上三角全体行列Uに対して、抽出した要素u(i)Tと、算出した行列U’とを合成した上三角全体行列U'''を生成する。そして、LU分解手段212は、生成した下三角全体行列L'''及び上三角全体行列U'''を算出処理対象と特定する。
【0071】
次に、挙動解析装置20の制御部21は、前進代入、後退代入による置換処理を実行する(ステップS21)。具体的には、制御部21の時間ステップ計算手段213は、算出処理対象の下三角全体行列L(又は下三角全体行列L''')の解を、公知の前進代入によって算出する。また、この下三角全体行列L(又は下三角全体行列L''')の解を用いて、時間ステップ計算手段213は、算出処理対象の上三角全体行列U(又は上三角全体行列U''')の解を、公知の後退代入によって算出する。これにより、時間ステップ計算手段213は、速度修正量{dVn+1,(i+1)}を算出する。時間ステップ計算手段213は、式(3−1)及び式(3−2)に、算出した速度修正量{dVn+1,(i+1)}を代入することにより、変位修正量{dUn+1,(i+1)}及び加速度修正量{dAn+1,(i+1)}を算出する。
【0072】
そして、時間ステップ計算手段213は、挙動解析値データ記憶部28に既に変位{Un+1,(i)}、速度{Vn+1,(i)}及び加速度{An+1,(i)}が記録されている場合には、これらを取得する。なお、記録されていない場合には、これらの値は「0」と設定する。時間ステップ計算手段213は、取得した変位{Un+1,(i)}と変位修正量{dUn+1,(i+1)}とを式(3−3)に代入して、この反復回数「i+1」における変位{U}を算出する。時間ステップ計算手段213は、取得した速度{Vn+1,(i)}と速度修正量{dVn+1,(i+1)}とを式(3−4)に代入して、この反復回数「i+1」における速度{V}を算出する。時間ステップ計算手段213は、取得した加速度{An+1,(i)}と加速度修正量{dAn+1,(i+1)}とを式(3−5)に代入して、この反復回数「i+1」における加速度{A}を算出する。
【0073】
次に、挙動解析装置20の制御部21は、変位、速度、加速度の更新処理を実行する(ステップS22)。具体的には、制御部21の時間ステップ計算手段213は、算出した変位{Un+1,(i)}、速度{Vn+1,(i)}及び加速度{An+1,(i)}を、この時間ステップ(n+1)に関連付けて、挙動解析値データ記憶部28に記録される。この場合、時間ステップ計算手段213は、挙動解析値データ記憶部28に、この時間ステップに関連付けられた速度{V}、変位{U}及び加速度{A}が既に記録されている場合には、この値に上書きする。
【0074】
次に、挙動解析装置20の制御部21は、収束したか否かの判定処理を実行する(ステップS23)。ここで、制御部21は、方程式の残差Rと拘束条件の残差Rとが、収束判定値より小さくなったか否かを判定する。具体的には、制御部21の時間ステップ計算手段213は、算出した各節点の変位{U}、速度{V}及び加速度{A}を式(1−5)及び式(1−6)に代入し、残差R,Rを算出する。そして、算出した各残差R,Rを収束判定値と比較する。
【0075】
そして、残差R,Rが収束判定値より大きいために、収束していないと判定した場合(ステップS23において「NO」の場合)、挙動解析装置20の制御部21は、ステップS18以降の処理を繰り返して実行する。この場合、制御部21は、反復回数を「1」増加させるとともに、挙動解析値データ記憶部28において更新された各節点の変位{U}、速度{V}及び加速度{A}を用いて処理を実行する。
【0076】
一方、残差R,Rが収束判定値以下となっており、収束したと判定した場合(ステップS23において「YES」の場合)、挙動解析装置20の制御部21は、ステップS16以降の処理を繰り返して実行する。
【0077】
そして、ステップS16において、現在の時間ステップが終了時間ステップに到達した場合には、挙動解析装置20の制御部21は、終了時間前でないと判定する(ステップS16において「NO」)。
【0078】
次に、挙動解析装置20の制御部21は、解析結果の出力処理を実行する(ステップS24)。具体的には、制御部21の計算管理手段211は、解析結果終了画面を出力部12に表示する。この解析結果終了画面には、挙動を解析した構造体の配置図が、選択可能に表示されている。ここで、配置図上で、所望の構造体の節点と、出力する値(変位{U}、速度{V}、加速度{A})とが選択された場合、計算管理手段211は、選択された構造体の節点における値を、開始時間から終了時間まで実線で表示する。例えば、図7には、3本の構造体の上面側のフランジ部における変位の挙動解析結果を表示している。図7(a)は、図2(b)において振動を加えた収容面側に位置する左側の構造体、図7(b)は、図2において容器内の中央に位置した構造体、図7(b)は、図2において、振動を加えた収容面側の反対側に位置する右側の構造体を示す。なお、図7(a)〜図7(c)における白抜き点は、従来の方式によって算出した挙動解析結果である。
【0079】
本実施形態によれば、以下に示す効果を得ることができる。
(1)本実施形態では、挙動解析装置20の制御部21は、全体行列Aの縁部分を除いたブロック対角行列A’を構成する各ブロック行列A(i)について、時間ステップのループの外側で、LU分解処理を実行する(ステップS15)。制御部21は、時間ステップループ内において、接触がある場合には、接触条件を満足する縁部分の行列H(i)の生成処理を実行する(ステップS19)。制御部21は、縁部分の行列H(i)のLU分解による要素l(i),u(i)Tと行列L’、U’とを、ブロック対角行列A’に対応する行列L,Uに加えて、処理対象の全体行列L'''、U'''を特定し、変位{U}、速度{V}及び加速度{A}を更新することを繰り返して、この時間ステップの変位{U}、速度{V}及び加速度{A}を算出する。これにより、時間ステップ内においては、ブロック行列A(i)に対応するLU分解は行わず、縁部分に対応するLU分解のみを行なうので、演算量を少なくして、効率的に解析を行なうことができる。
【0080】
(2)本実施形態では、挙動解析装置20の制御部21は、縁付きブロック対角行列の縁部分を除いた各ブロック行列A(i)について、時間ステップのループの外側で、LU分解処理を実行する(ステップS15)。この場合、制御部21は、縁付きブロック対角行列を生成する全体行列Aに用いられている構造体の種類毎に、ブロック行列A(i)について下三角行列L(i)及び上三角行列U(i)を算出する。これにより、同じ種類の構造体が複数ある場合には、同じ種類の構造体については1回のみLU分解の計算をすれば、すべての構造体についてLU分解する必要がないので、演算量を少なくすることができる。更に、構造体の種類に対応するブロック行列A(i)を記憶すればよいので、必要なメモリサイズを小さくすることができる。
【0081】
(3)本実施形態では、挙動解析装置20の制御部21は、全てのギャップ要素が閉じた場合の行列H(i)についての要素l(i),u(i)を算出して、縁部分LU分解データ記憶部27に記憶する。制御部21は、接触条件を満足する縁部分の行列H(i)を生成し、これに対応する要素l(i),u(i)を、縁部分LU分解データ記憶部27から抽出し、これらl(i),u(i)を用いて、縁部分の行列H(i)のLU分解処理を実行する(ステップS20)。これにより、時間ステップループ内において、縁部分の行列H(i)の要素l(i),u(i)Tを毎回、算出しなくてよいので、演算量を少なくすることができる。
【0082】
(第2の実施形態)
次に、図8を用いて、本発明の第2実施形態について説明する。本実施形態においては、隣接する節点のめり込み量に応じて時間刻み幅を変更する構成であり、上記第1実施形態と同様な部分については、同一の符号を付し、その詳細な説明は省略する。
本実施形態の挙動解析装置20では、時間刻み幅Δtを変更可能とする。本実施形態では、以下の時間刻み幅Δtに変更可能な場合を想定する。
・標準(=dt)
・標準の1/10(=dt×0.1)
・標準の1/100(=dt×0.01)
・標準の1/1000(=dt×0.001)
・標準の1/10000(=dt×0.0001)
【0083】
具体的には、挙動解析装置20の制御部21のLU分解手段212は、設定した時間刻み幅Δt毎に、構造体の挙動を示す方程式についてのLU分解処理を実行する。
更に、本実施形態の制御部21の時間ステップ計算手段213は、現在の時間ステップループにおいて用いる時間刻み幅を記憶するメモリ(時間刻み幅定義データ記憶手段)を備える。
【0084】
また、本実施形態の初期値データ記憶部25に、時間ステップの時間刻み幅Δtを特定するための時間刻み幅変更閾値を記憶させておく。この時間刻み幅変更閾値は、隣接する節点におけるめり込み量に対応させて、複数の値が記録されている。本実施形態では、時間刻み幅変更閾値が大きくなるに従って、より小さい時間刻み幅Δtと関連付けられている。本実施形態では、時間刻み幅変更閾値に対して、上述のように、標準、標準の1/10、1/100、1/1000、1/10000が記憶されている。
【0085】
更に、本実施形態では、対角行列LU分解データ記憶部26には、下三角行列L(i)及び上三角行列U(i)が、構造体の種類毎だけでなく、時間ステップの時間刻み幅Δtにも関連付けて記憶される。
【0086】
(挙動解析処理)
次に、図8を用いて構造体の挙動を解析する処理について説明する。
まず、挙動解析装置20の制御部21は、第1実施形態と同様に、入力データの読込処理、ナンバリング処理、種類毎の構造体マトリクスの生成処理及び縁付きマトリクスの生成処理を実行する(ステップS11〜S14)。この縁付きマトリクスの生成処理において、挙動解析装置20の制御部21は、設定した各時間刻み幅Δtに応じた全体行列Aを生成する。
【0087】
次に、挙動解析装置20の制御部21は、LU分解処理を実行する(ステップS15)。ここで、制御部21のLU分解手段212は、設定した各時間刻み幅Δtに応じた全体行列Aの各ブロック行列A(i)をLU分解することにより、各下三角行列L(i)と、各上三角行列U(i)とを算出して、対角行列LU分解データ記憶部26に記憶する。従って、LU分解手段212は、縁付きブロック対角行列である全体行列Aに用いられている構造体の種類毎に、かつ時間刻み幅Δt毎に、ブロック行列A(i)について下三角行列L(i)及び上三角行列U(i)を算出する。そして、同じ種類の他の構造体のブロック行列A(i)については、LU分解の計算を行わずに、対応する種類の下三角行列L(i)及び上三角行列U(i)を、その構造体を示す識別子(番号)及び各時間刻み幅Δtに関連付けて、対角行列LU分解データ記憶部26に記憶する。
【0088】
また、LU分解手段212は、設定した各時間刻み幅Δtに応じた全体行列Aの縁部分となる行列H(i)について、前進代入及び後退代入によって要素u(i)と要素l(i)とを算出する。そして、LU分解手段212は、各接触を表す識別子及び各時間刻み幅Δtに関連付けて、算出した要素l(i)と要素u(i)とを、縁部分LU分解データ記憶部27に記憶する。
そして、計算管理手段211は、現在の時間ステップの「0」とともに、現在の時間刻み幅Δt(ここでは「標準」)を特定するデータを、時間ステップ計算手段213のメモリに記憶する。
【0089】
次に、挙動解析装置20の制御部21は、ステップS16と同様に、終了時間前か否かの判定処理を実行する(ステップS30)。ここで、計算管理手段211は、現在の時間ステップtが終了時間ステップより小さい場合には、終了時間前と判定する(ステップS30において「YES」)。この場合、挙動解析装置20の制御部21は、ステップS17,S18と同様に、時間ステップの更新処理、接触があるか否かの判定処理を実行する(ステップS31,S32)。
ここで、接触なしの場合(ステップS32において「NO」の場合)には、制御部21は、後述するステップS33〜S36の処理をスキップする。
【0090】
一方、接触ありの場合(ステップS32において「YES」の場合)、挙動解析装置20の制御部21は、めり込み量を用いて時間刻み幅Δtの特定処理を実行する(ステップS33)。具体的には、制御部21の時間ステップ計算手段213は、ステップS32において算出しためり込み量(各節点の位置{Xpq}と変位{U}との内積に初期ギャップdを加算した値の絶対値)と、初期値データ記憶部25に記憶された各時間刻み幅変更閾値とを比較する。そして、時間ステップ計算手段213は、めり込み量に対応する時間刻み幅変更閾値を特定し、この時間刻み幅変更閾値に関連付けられた時間刻み幅Δtを特定する。ここでは、時間刻み幅変更閾値として、めり込み量より小さい閾値の中で最大のものを特定する。
【0091】
次に、挙動解析装置20の制御部21は、特定した時間刻み幅Δtへの設定処理を実行する(ステップS34)。具体的には、時間ステップ計算手段213は、特定した時間刻み幅Δtを、メモリに記憶する。
【0092】
次に、挙動解析装置20の制御部21は、ステップS19、S20と同様に、接触条件を満足する縁部分の生成処理及び縁部分の行列H(i)のLU分解処理を実行する(ステップS35、S36)。この縁部分の行列H(i)のLU分解処理において、制御部21のLU分解手段212は、現在の時間刻み幅Δtをメモリから取得し、ステップS35で生成した縁部分の行列H(i),H(i)に対応し、かつ現在の時間刻み幅Δtの要素l(i)と要素u(i)とを縁部分LU分解データ記憶部27から抽出する。そして、LU分解手段212は、上記第1の実施形態と同様に、抽出した要素u(i)と要素l(i)とを用いて行列[L’U’]を算出し、この行列[L’U’]をLU分解することにより、行列L’及び行列U’を算出する。
【0093】
次に、LU分解手段212は、縁部分eがない全体行列Aを構成する各ブロック行列A(i)で、現在の時間刻み幅Δtに関連付けられた各下三角行列L(i)と上三角行列U(i)を対角行列LU分解データ記憶部26から抽出し、下三角全体行列Lと上三角全体行列Uとを生成する。
更に、LU分解手段212は、下三角全体行列L'''と上三角全体行列U'''とを生成して、これらを算出処理対象と特定する。
【0094】
次に、挙動解析装置20の制御部21は、ステップS21〜S23と同様に、前進代入、後退代入による置換処理、変位、速度、加速度の更新処理及び収束したか否かの判定処理を実行する(ステップS37〜S39)。そして、収束していないと判定した場合(ステップS39において「NO」の場合)、挙動解析装置20の制御部21は、ステップS32以降の処理を繰り返して実行する。一方、収束したと判定した場合(ステップS39において「YES」の場合)、挙動解析装置20の制御部21は、ステップS30以降の処理を繰り返して実行する。
【0095】
そして、挙動解析装置20の制御部21は、終了時間を経過したと判定した場合(ステップS30において「NO」の場合)、解析結果の出力処理を実行する(ステップS40)。
【0096】
本実施形態によれば、上記(1)〜(3)と同様の効果に加えて、以下に示す効果を得ることができる。
(4)本実施形態では、挙動解析装置20の制御部21は、LU分解処理(ステップS15)において、算出した各下三角行列L(i)と各上三角行列U(i)とを各時間刻み幅Δtに関連付けて対角行列LU分解データ記憶部26に記憶する。更に、制御部21は、各時間刻み幅Δtに関連付けて、算出した要素l(i)と要素u(i)とを、縁部分LU分解データ記憶部27に記憶する。そして、接触ありの場合(ステップS32において「YES」の場合)、制御部21は、めり込み量に応じた時間刻み幅Δtを特定し、特定した時間刻み幅Δtをメモリに記憶する(ステップS33,S34)。そして、制御部21は、縁部分の行列H(i)のLU分解処理(ステップS36)において、メモリに記憶した時間刻み幅Δtに関連付けられた各下三角行列L(i)と上三角行列U(i)を抽出し、下三角全体行列Lと上三角全体行列Uとを生成し、下三角全体行列L'''と上三角全体行列U'''とを生成して、これらを算出処理対象と特定する。これにより、めり込み量に応じて時間刻み幅Δtを変更させるとともに、時間ステップループの内側での演算量を抑制して、効率的に解析を行なうことができる。
【0097】
(5)本実施形態では、この時間刻み幅変更閾値は、隣接する節点におけるめり込み量であり、大きくなるに従って、より小さい時間刻み幅Δtと関連付けられて記憶されている。これにより、接触によって大きいめり込み量が算出された場合には、その時間ステップにおける時間刻み幅を小さくすることにより、より正確なシミュレーション結果を得ることができる。
【0098】
また、上記実施形態は、以下の態様に変更してもよい。
・ 上記第2実施形態においては、挙動解析装置20の制御部21は、変更可能な時間刻み幅Δtとして、標準、標準の1/10,1/100,1/1000,1/10000の5段階の等比数列の値を用いた。設定可能な時間刻み幅Δtは、複数の値で設定することが可能であり、これに限定されるものではない。例えば、公比は、「1/10」に限られるものではなく、標準、標準の1/2,1/4,1/8,1/16等の5段階を用いることも可能である。また、段階数も5段階に限られるものではない。更に、ユーザが予め任意に設定した値を、制御部21に保持させるようにしてもよい。
・ 上記第2の実施形態においては、挙動解析装置20の制御部21は、時間刻み幅Δtを特定する場合(ステップS33)、めり込み量に対応する時間刻み幅変更閾値に関連付けられた時間刻み幅Δtを特定した。時間刻み幅の特定方法は、これに限られない。例えば、めり込み量が閾値を超えた時間ステップの回数が予め定めた回数を超えたときに他の時間刻み幅Δtに変更してもよい。具体的には、時間刻み幅変更閾値及び規定回数に対応させて時間刻み幅Δtを記憶させておく。そして、制御部21は、めり込み量が、時間刻み幅閾値を規定回数超えた場合に、これに対応する時間刻み幅Δtに変更する。更に、時間刻み幅Δtは、めり込み量に基づいて変更したが、時間刻み幅Δtの変更を判定するための値(時間刻み幅変更判定値)は、めり込み量に限定されるものではない。例えば、接触時の反力を計算し、この大きさに基づいて変更するようにしてもよい。
【0099】
・ 上記各実施形態では、挙動解析装置20の制御部21は、時間ステップ毎の挙動解析値を、終了時間まで算出した後、解析結果の出力処理を実行した(ステップS24)。この場合、制御部21は、解析結果終了画面において選択された構造体の出力値を、ディスプレイ等の表示手段に出力した。制御部21が、解析結果を出力する出力部12は、これに限定されず、例えば、データを記憶するデータ記憶手段や紙に印刷する印刷手段であってもよい。
【0100】
・ 上記各実施形態においては、挙動解析装置20の制御部21は、時間積分のアルゴリズムとして、ニューマークのβ法を採用したが、HHT(Hilber-Hughes-Taylor)―α法を用いてもよい。
【0101】
・ 上記各実施形態においては、挙動解析装置20の制御部21は、ギャップを介して配置された構造体の挙動解析を行なった。挙動解析装置20の制御部21は、解析対象は、長尺物に限定されず、他の構造体との影響がない場合には独立に挙動し、他の構造体に対して予め決まった一部分を解してのみ影響を与える構造体(例えば、電気回路の構成等)であれば、挙動解析を行なうことができる。
【0102】
具体的には、本発明は、非線形性が時間的空間的に局所的である非線形構造解析の計算に適用することができる。この場合、本発明の構造解析は、次の2つの性質(a,b)を有するものを計算対象とする。
[性質a]系全体の中で時々刻々と非線形的に変化する部分(第1部分)が限定されている。
[性質b]系全体の中から上述の第1部分を取り除くと、残りは「変化しない部分(第2部分)」又は「第1部分よりも変化が少なく予め計算可能な部分(第2部分)」から構成される。
これらの性質を有する系では、全体の未知自由度を、以下の2つの自由度に分解することができる。
・時間経過に応じて非線形的に変化する自由度
・変化しない自由度(又は非線形的に変化する部分よりも変化が少なく予め計算可能な範囲で変化する自由度)
この場合、上記自由度の分解に応じて系全体の状態を記述する行列をブロックに分割できる。
【0103】
そこで、第2部分に対応するブロックの計算処理(LU分解など)は、繰り返し計算ループの外側で行なった結果を利用する。そして、第1部分に対応するブロックの計算処理を、繰り返し計算する時間ステップループの内側で行なう。これにより、計算処理量を削減し、計算精度を維持したまま、高速に計算することができる。上記各実施形態のような接触問題の挙動解析のように、解析対象によっては刻々と変化する自由度の選択自体が変化する場合があるが、この場合においても、繰り返し計算ループの中の処理が変化するだけで、本アルゴリズムは成立する。
【0104】
次に、これらの性質を有する系の定式化について説明する。
性質aと性質bとを満たす系の全体は、図9の式(5−1)のように表現することができる。式(5−1)において、A(t)は現在時刻tにおける系の性質、x(t)は現在時刻tにおける系の状態、b(t)は現在時刻tにおける系の外部からの入力である。このとき、性質aと性質bとに従って、系の状態x(t)を独立した小部分に相当する自由度x'(t)と、時々刻々と変化し得る部分に相当する自由度x''(t)に分割して、式(5−2)と表す。この分割に対応して系の性質を表現すると、A(t)は、式(5−3)のようになる。
【0105】
ここで、第2部分に対応する部分Aが正定値とすると、時間に依存しない不変なLU分解が可能であり、式(5−4)となる。定数行列L,Uを用いて、式(5−3)と式(5−4)から、式(5−5)及び式(5−6)を生成することができる。これらの式を用いると、式(5−7)がLU分解可能となる。そして、式(5−8)となる下三角行列L''(t)と上三角行列U''(t)が存在するならば、A(t)を、式(5−9)と表すことができる。従って、A=LのLU分解を、時間ステップループの外側で1回だけ実行しておき、時間ステップループの内側では、Lの前進代入処理及びUの後退代入処理、式(5−8)のLU分解のみを行なう。これにより、系全体の中で、時間経過に応じて変化する部分が相対的に小さければ、この一般化したアルゴリズムは計算時間の削減に有効である。
【0106】
更に、B(t),C(t)の代わりに、一旦、時間に依存しない行列(Bバー,Cバー)を用いて、式(6−1)及び式(6−2)とおくと、実際に非線形挙動をしている自由度に対応した簡単なバイナリ行列(B(t)チルダ,C(t)チルダ)を用いて、式(6−3)で表すことができる場合がある。このような場合には、L,Uの前進/後退代入処理も時間ステップループの外側で1回だけ実行しておき、時間ステップループの中では、式(5−8)のLU分解のみを実行する。
例えば、上記実施形態のような接触問題において適用できる。具体的には、非線形挙動をする要素がすべて非線形状態にあると仮定した方程式から構成される行列を、時間に依存しない行列とおくことができる。そして、各時間において、実際に非線形挙動によって接触した部分の方程式から構成されるバイナリ行列を用いれば、行要素L'(t)と列要素U'(t)の積を予め算出することができる。そこで、時間ステップループの外側で、行要素L'(t)及び列要素U'(t)を算出して縁部分分解要素データ記憶手段に記録し、時間ステップループの内側では、縁部分分解要素データ記憶手段から行要素L'(t)と列要素U'(t)を取得することにより、時間ステップループ内の計算時間を更に削減することができる。
【0107】
次に、上述した性質a,bを有する非線形構造の解析を効率的に計算するための非線形構造解析計算装置の構成について説明する。非線形構造解析計算装置は、制御手段、物性値データ記憶部22、対角行列LU分解データ記憶部26、挙動解析値データ記憶部28を備えている。非線形構造解析計算装置の制御手段は、非線形構造についての解析処理を実行し、後述する処理(計算管理段階、LU分解計算時間段階及びステップ計算段階等を含む処理)を行なう。そして、このための計算処理プログラムを実行することにより、制御手段は、計算管理手段211、LU分解手段212及び時間ステップ計算手段213等として機能する。
【0108】
計算管理手段211は、挙動を解析する処理の全体を管理する処理を実行する。ここで、計算管理手段は、解析対象における系を構成する構造体が複数ある場合には、1つの構造体において要素(解析対象要素)が連番となり、かつ隣接する要素が連番となるルールを用いて、系を構成する構造体の要素(解析対象要素)にナンバリングを行なう。
【0109】
LU分解手段212は、挙動を表す系の方程式についてLU分解処理を実行する。
時間ステップ計算手段213は、各時間ステップ内における算出処理を管理しながら、LU分解した行列等を用いて、解析結果の計算値を算出する処理を実行する。
【0110】
物性値データ記憶部22には、解析対象の系の平衡方程式に用いる物性値に関するデータが記憶されている。
対角行列LU分解データ記憶部26には、上記実施形態と同様に、ブロック行列A(i)をLU分解したことによって得られる下三角行列L(i)と、上三角行列U(i)とに関するデータが記憶されている。
挙動解析値データ記憶部28には、上記実施形態と同様に、挙動解析によって算出される各節点の算出値に関するデータを記憶する。
【0111】
次に、これらを適用した具体的な構造解析について、3つの例を参照して説明する。ここでは、一般的な接触問題、コネクタ要素による非線形な拘束問題、材料非線形問題を説明する。
<一般的な接触問題>
上記各実施形態において説明したように、接触する可能性がある節点群(接触部分)を予め限定することができる構造解析に適用可能である。また、一般的な接触問題のように、対象物において接触部分を予め正確に規定できない場合であっても、所定の範囲で接触を予想することができる場合が多い。例えば、立体物を対象とした場合、少なくとも対象物の表面でしか接触は起こり得ない。従って、解析対象の系を示す平衡方程式を、接触が予想される第1部分の方程式と、それ以外の第2部分の方程式とに分解する。そして、時間ステップループの内側においては、接触が予想される第1部分において実際に接触した場合の拘束条件を考慮した方程式のみを計算することによって、時間ステップループの内側で処理すべき行列処理を減らすことができる。
【0112】
<コネクタ要素による非線形な拘束問題>
コネクタ要素とは、例えばピン結合やヒンジ結合等、二つの対象物をジョイント(接続)するための特殊な要素であり、ジョイントされた二つの解析対象の構造物の相対的な運動を拘束する働きを持つものである。ジョイントされた各構造体の変形が小さい場合、各構造体は局所座標系において線形に振る舞う。一方、ジョイントによる拘束条件は、時間的及び空間的に非線形的に変化したり、相対的な運動(回転)に伴って荷重項が時間的及び空間的に非線形的に変化したりすることがある。従って、解析対象の系を示す平衡方程式を、時間的に依存する拘束条件を有するコネクタ要素(第1部分)についての方程式と、この部分以外の解析対象の構造物を構成する要素(時間的に依存しない第2部分)についての方程式とに分解する。この場合、第2部分の構成要素は、局所座標系で表す。
【0113】
そして、非線形構造解析計算装置の制御手段は、各対象物の局所座標系における方程式については、時間ステップループの外側で計算するとともに、ジョイントによる拘束条件における方程式を、時間ステップループの内側で計算する。
【0114】
具体的には、制御手段の計算管理手段211は、各対象物の局所座標系における方程式について、物性値データ記憶部22のデータを用いて解析対象系のコネクタ要素以外の構成要素の平衡方程式を示すブロック行列を生成する。
次に、制御手段の計算管理手段211は、コネクタ要素以外の構成要素を局所座標系で表した第2部分のブロック行列を対角要素として配置するとともに、コネクタ要素の拘束条件のブロック行列を縁部分として配置した縁付き対角行列を生成する。
【0115】
そして、制御手段のLU分解手段212は、この縁付き対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてLU分解して、対角行列LU分解データ記憶部26に記録する。
その後、制御手段の時間ステップ計算手段213は、各時間ステップループの内側において、この時間ステップにおける第2部分のブロック行列に対応する上三角行列及び下三角行列を、対角行列LU分解データ記憶部26から抽出する。
【0116】
次に、制御手段の時間ステップ計算手段213は、抽出した上三角行列及び下三角行列を配置することにより、この縁付きブロックにおいて縁部分を除いた行列に対する上三角行列及び下三角行列を生成する。
そして、時間ステップ計算手段213は、この時間ステップにおける拘束条件を満足する縁部分の行列を生成し、この縁部分の行列をLU分解する。
【0117】
次に、制御手段の時間ステップ計算手段213は、縁部分の行列をLU分解したLU分解要素を、縁部分を除いた行列に対する生成した上三角行列及び下三角行列に、それぞれ合成して合成上三角行列及び合成下三角行列を生成する。
そして、制御手段の時間ステップ計算手段213は、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、解析対象の計算値として算出する。
【0118】
次に、制御手段の時間ステップ計算手段213は、算出した計算値が収束するまで時間ステップの内側の演算処理を繰り返す。そして、この時間ステップにおける計算値を算出して挙動解析値データ記憶部28に記録した後、時間ステップループの処理を終了時間まで繰り返す。終了時間までの処理が完了すると、その後、制御手段は、終了時間まで、演算処理を繰り返すことにより、コネクタ要素の非線形構造解析結果を出力する。
【0119】
<材料非線形問題>
材料非線形問題は、弾塑性材料のように、応力と歪みの関係が線形的ではない材料の応力解析で現れる。例えば、弾性材料の場合、外力として加える荷重が大きくても対象物(解析対象の構造物)の変形は荷重に比例する。一方、弾塑性材料の場合には、荷重の大きさがある閾値を超えると、荷重の大きさと対象物の変形は比例せず、更に、荷重をゼロにしても元の状態には戻らない。しかし、実際にこのような塑性状態が起きるのは応力集中が起きる部分に限定される場合が多く、応力集中が起きる部分は亀裂部分の周辺等のようにある程度予想可能である場合が多い。従って、解析対象の系を示す平衡方程式を、応力集中が予想される「範囲」(時間的に依存する第1部分)についての方程式と、これ以外の構造体(時間的に依存しない第2部分)についての方程式とに分解する。
【0120】
このため、非線形構造解析計算装置の制御手段は、応力が集中する部分及びこの第1部分に接続する周辺部分(応力集中の影響を受けている第1部分)については、時間ステップループの内側で計算するとともに、その他の第2部分については、時間ステップループの外側で計算する。
【0121】
具体的には、制御手段の計算管理手段211は、応力集中の影響を受けていない第2部分の各要素の方程式について、物性値データ記憶部22のデータを用いて解析対象系の各解析対象要素の平衡方程式を示すブロック行列を生成し、特定した第2部分の各要素のブロック行列を対角要素として配置する。
次に、制御手段の計算管理手段211は、応力集中の影響を受けている第1部分についてのブロック行列を、第2部分のブロック行列を対角要素として配置した行列に対して、縁部分として配置することにより、縁付き対角行列を生成する。
【0122】
そして、制御手段のLU分解手段212は、この縁付き対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてLU分解して、対角行列LU分解データ記憶部26に記録する。
その後、制御手段の時間ステップ計算手段213は、各時間ステップループの内側において、各ブロック行列に対応する上三角行列及び下三角行列を、対角行列LU分解データ記憶部26から抽出する。
【0123】
次に、制御手段の時間ステップ計算手段213は、抽出した上三角行列及び下三角行列を配置することにより、この縁付きブロックにおいて縁部分を除いた行列に対する上三角行列及び下三角行列を生成する。
そして、時間ステップ計算手段213は、拘束条件を満足する縁部分の行列を生成し、この縁部分の行列をLU分解する。
【0124】
次に、制御手段の時間ステップ計算手段213は、縁部分の行列をLU分解したLU分解要素を、縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に、それぞれ合成して合成上三角行列及び合成下三角行列を生成する。
そして、制御手段の時間ステップ計算手段213は、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、解析対象の計算値として算出する。
【0125】
次に、制御手段の時間ステップ計算手段213は、算出した計算値が収束するまで時間ステップ内の処理を繰り返して、この時間ステップにおける計算値を算出して挙動解析値データ記憶部28に記録した後、時間ステップループの内側の処理を終了時間まで繰り返す。終了時間までの処理が完了すると、その後、制御手段は、終了時間まで、演算処理を繰り返すことにより、応力集中が加わった弾塑性材料の解析結果を出力する。
【0126】
次に、上記実施形態及び別例から把握できる技術的思想について、それらの効果とともに以下に追記する。
(ア) 時間経過に応じて、非線形的に変化する第1部分と、変化しない第2部分とを有した解析対象系についての非線形構造解析を計算する制御手段と、
前記第1部分及び前記第2部分の平衡方程式に用いる前記解析対象系の物性値に関するデータを記憶する物性値データ記憶手段と、
前記平衡方程式を示すブロック対角行列をLU分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段とを備えた非線形構造解析計算装置であって、
前記制御手段が、
前記物性値データを用いて、前記解析対象系の各解析対象要素の平衡方程式を示すブロック行列を生成し、
前記第2部分のブロック行列を対角要素として配置するとともに、前記第1部分のブロック行列を縁部分として配置した縁付き対角行列を生成する手段と、
前記縁付き対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてLU分解して、前記分解行列データ記憶手段に記録する対角行列分解手段と、
時間ステップループの内側において、
前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、前記上三角行列及び下三角行列を配置して生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列を生成し、
前記第1部分に応じた平衡方程式を満足する縁部分の行列を生成し、この縁部分の行列をLU分解し、
前記縁部分の行列をLU分解したLU分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に、それぞれ合成して合成上三角行列及び合成下三角行列を生成し、
前記生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、前記解析対象の計算値として算出する算出処理を実行し、
前記算出処理において算出した計算値が収束するまで前記算出処理を繰り返して、この時間ステップにおける計算値を算出する時間ステップ計算値算出手段と、
前記時間ステップループの内側の処理を終了時間まで繰り返して算出した前記計算値を出力する手段とを備えたことを特徴とする非線形構造解析計算装置。
【0127】
従って、(ア)に記載の発明によれば、非線形解析に必要な行列の変化に対し、変化しない第2部分のLU分解については、時間ステップループの外側で予め算出できるので、時間ステップループの内側において毎回計算する必要がない。このため、演算量を少なくして、効率的に非線形構造解析について計算を行なうことができる。
【0128】
(イ) 時間経過に応じて、非線形的に変化する第1部分と、前記第1部分よりも変化が少なく予め計算可能に変化する第2部分とを有した解析対象系についての非線形構造解析を計算する制御手段と、
前記第1部分及び前記第2部分の平衡方程式に用いる前記解析対象系の物性値に関するデータを記憶する物性値データ記憶手段と、
前記平衡方程式を示すブロック対角行列をLU分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段とを備えた非線形構造解析計算装置であって、
前記制御手段が、
前記物性値データを用いて、前記解析対象系の各解析対象要素の平衡方程式を示すブロック行列を生成し、
前記特定した第2部分のブロック行列を対角要素として配置するとともに、前記第1部分のブロック行列を縁部分として配置した縁付き対角行列を、前記第2部分の変化毎に生成する手段と、
前記縁付き対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてLU分解して、前記第2部分の各変化に対応付けて、前記分解行列データ記憶手段に記録する対角行列分解手段と、
時間ステップループの内側において、
この時間ステップにおける前記第2部分の変化に対応する前記各ブロック行列の上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、
これらを配置することにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列を生成し、
前記第1部分に応じた平衡方程式を満足する縁部分の行列を生成し、この縁部分の行列をLU分解し、
前記縁部分の行列をLU分解したLU分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列であって、この時間ステップにおける前記第2部分の変化に対応する上三角行列及び下三角行列に、それぞれ合成して合成上三角行列及び合成下三角行列を生成し、
前記生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、前記解析対象の計算値として算出する算出処理を実行し、
前記算出処理において算出した計算値が収束するまで前記算出処理を繰り返して、この時間ステップにおける計算値を算出する時間ステップ計算値算出手段と、
前記時間ステップループの内側の処理を終了時間まで繰り返して算出した前記計算値を出力する手段とを備えたことを特徴とする非線形構造解析計算装置。
【0129】
従って、(イ)に記載の発明によれば、非線形解析に必要な行列の変化に対し、予め計算可能な有限数だけ変化する第2部分のLU分解については、時間ステップループの外側で予め算出できるので、時間ステップループの内側において毎回計算する必要がない。このため、演算量を少なくして、効率的に非線形構造解析について計算を行なうことができる。
【0130】
(ウ)第1部分の平衡方程式に対応付けて、上三角行列の行要素及び下三角行列の列要素を記憶する縁部分分解要素データ記憶手段を更に備え、
前記制御手段は、
時間ステップループの外側において、
前記第1部分の平衡方程式から、前記第1部分の時間に依存しない行列を縁付きブロック対角行列の縁部分として生成し、
この縁部分の行列と、ブロック対角行列に対応する上三角行列及び下三角行列とを用いて算出した下三角行列の行要素及び上三角行列の列要素を、対応する平衡方程式に対応付けて前記縁部分分解要素データ記憶手段に記憶し、
前記時間ステップループの内側において、
この時間ステップにおいて実際に非線形挙動をしている自由度に対応したバイナリ行列に対応する下三角行列の行要素及び上三角行列の列要素を、前記縁部分分解要素データ記憶手段から取得して、これらを合成することにより行列を生成し、
前記行列をLU分解した縁部分上三角行列及び縁部分下三角行列を生成し、
前記生成した下三角行列の行要素及び上三角行列の列要素と、前記縁部分上三角行列及び縁部分下三角行列とを、縁部分がないブロック対角行列に対応する上三角行列及び下三角行列に合成して、前記合成上三角行列及び前記合成下三角行列を生成することを特徴とする(ア)又は(イ)に記載の非線形構造解析計算装置。
【0131】
従って、この(ウ)に記載の発明によれば、時間ステップループの内側において、縁部分のLU分解要素の一部を毎回、算出しなくてよいので、演算量を少なくして、効率的に解析を行なうことができる。
【符号の説明】
【0132】
11…入力部、12…出力部、20…挙動解析装置、21…制御部、22…物性値データ記憶部、23…配置位置データ記憶部、24…時間定義データ記憶部、25…初期値データ記憶部、26…対角行列LU分解データ記憶部、27…縁部分LU分解データ記憶部、28…挙動解析値データ記憶部、211…計算管理手段、212…LU分解手段、213…時間ステップ計算手段、214…接触部計算手段。

【特許請求の範囲】
【請求項1】
複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、
構造体の配置に関するデータを記憶する配置データ記憶手段と、
隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、
各構造体の平衡方程式を示すブロック対角行列をLU分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、
隣接する構造体の一部分と接触する場合がある構造体の挙動を解析する制御手段とを備えたシステムであって、
前記制御手段が、
各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する手段と、
この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてLU分解して、前記分解行列データ記憶手段に記録する対角行列分解手段と、
時間ステップループ内において、
初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、
接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第1算出処理を実行し、
接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をLU分解し、
前記縁部分の行列をLU分解したLU分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、
生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第2算出処理を実行し、
算出した挙動解析値が収束するまで前記接触判定処理、前記第1算出処理及び前記第2算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する手段と、
前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する手段とを備えたことを特徴とする挙動解析システム。
【請求項2】
前記配置データ記憶手段には、各構造体の種類に関する情報が更に記憶されており、
前記物性値データ記憶手段には、種類毎に、構造体の物性値に関するデータが記憶されており、
前記対角行列分解手段は、構造体の種類毎に、ブロック対角行列をLU分解した上三角行列及び下三角行列を前記分解行列データ記憶手段に記録し、
前記制御手段は、前記第1算出処理及び前記第2算出処理において、前記配置データ記憶手段から、各構造体の種類を特定し、特定した種類のブロック対角行列に対応する上三角行列及び下三角行列を前記分解行列データ記憶手段から抽出し、前記構造体の配置に応じて並べることにより、縁部分がないブロック対角行列の上三角行列及び下三角行列を生成することを特徴とする請求項1に記載の挙動解析システム。
【請求項3】
節点が接触した場合の条件を示した各平衡方程式に対応付けて、上三角行列の行要素及び下三角行列の列要素を記憶する縁部分分解要素データ記憶手段を更に備え、
前記制御手段は、
時間ステップループの外側において、構造体において接触する可能性があるすべての節点が接触した場合の条件を示した平衡方程式を縁付きブロック対角行列の縁部分として生成し、この縁部分の行列と、ブロック対角行列に対応する上三角行列及び下三角行列とを用いて算出した下三角行列の行要素及び上三角行列の列要素を、対応する平衡方程式に対応付けて前記縁部分分解要素データ記憶手段に記憶し、
前記時間ステップループ内において、接触があると判定した場合には、接触があると判定した節点が接触した場合の条件を示した平衡方程式に対応する下三角行列の行要素及び上三角行列の列要素を、前記縁部分分解要素データ記憶手段から取得して、これらを合成することにより行列を生成し、この行列をLU分解した縁部分上三角行列及び縁部分下三角行列を生成し、前記抽出した下三角行列の行要素及び上三角行列の列要素と、前記縁部分上三角行列及び縁部分下三角行列とを、縁部分がないブロック対角行列に対応する上三角行列及び下三角行列に合成して、前記合成上三角行列及び前記合成下三角行列を生成することを特徴とする請求項1又は2に記載の挙動解析システム。
【請求項4】
前記分解行列データ記憶手段には、時間刻み幅及びブロック対角行列に関連付けて、このブロック対角行列をLU分解した上三角行列及び下三角行列が記憶されており、
前記制御手段は、時間刻み幅変更判定値を用いた接触条件に対応する時間刻み幅を記憶した時間刻み幅定義データ記憶手段に接続されており、
前記対角行列分解手段は、
変更可能な各時間刻み幅に応じたブロック対角行列を、時間ステップループの外側においてLU分解し、このLU分解した上三角行列及び下三角行列を、時間刻み幅及びブロック対角行列に関連付けて記録し、
前記制御手段は、
時間ステップループ内において、接触があると判定した場合には、隣接する構造体の時間刻み幅変更判定値を算出し、この時間刻み幅変更判定値を用いた接触条件に対応した時間刻み幅を、これ以降に用いる時間刻み幅として特定する手段を更に備え、
前記第1算出処理において、特定した時間刻み幅及び前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、
前記第2算出処理において、特定した時間刻み幅に関連付けた上三角行列及び下三角行列を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列として特定し、これら上三角行列及び下三角行列に、前記縁部分の行列をLU分解したLU分解要素を合成して合成上三角行列及び合成下三角行列を生成することを特徴とする請求項1〜3のいずれか1項に記載の挙動解析システム。
【請求項5】
複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、
構造体の配置に関するデータを記憶する配置データ記憶手段と、
隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、
各構造体の平衡方程式を示すブロック対角行列をLU分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、
制御手段とを備えた挙動解析システムを用いて、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析する方法であって、
前記制御手段が、
各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する段階と、
この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてLU分解して、前記分解行列データ記憶手段に記録する対角行列分解段階と、
時間ステップループ内において、
初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、
接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第1算出処理を実行し、
接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をLU分解し、
前記縁部分の行列をLU分解したLU分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、
生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第2算出処理を実行し、
算出した挙動解析値が収束するまで前記接触判定処理、前記第1算出処理及び前記第2算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する段階と、
前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する段階とを実行することを特徴とする挙動解析方法。
【請求項6】
複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、
構造体の配置に関するデータを記憶する配置データ記憶手段と、
隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、
各構造体の平衡方程式を示すブロック対角行列をLU分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、
制御手段とを備えた挙動解析システムを用いて、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析するためのプログラムであって、
前記制御手段を、
各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する手段、
この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてLU分解して、前記分解行列データ記憶手段に記録する対角行列分解手段、
時間ステップループ内において、
初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、
接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第1算出処理を実行し、
接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をLU分解し、
前記縁部分の行列をLU分解したLU分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、
生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第2算出処理を実行し、
算出した挙動解析値が収束するまで前記接触判定処理、前記第1算出処理及び前記第2算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する手段、及び
前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する手段として機能させることを特徴とする挙動解析プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−101598(P2013−101598A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2012−225386(P2012−225386)
【出願日】平成24年10月10日(2012.10.10)
【出願人】(592131906)みずほ情報総研株式会社 (187)
【Fターム(参考)】