有限要素法(finite element method)は,偏微分方程式の近似解を数値的に解く方法のひとつで,構造,伝熱,流体,電磁場などの解析に使用されています。ここでは,弾性体に外力が作用して変形している状態の変位と応力を求める構造分野の有限要素法を説明します。問題を解く段階で変位を未知数としますので,変位法と呼ばれる方法です。
任意の形状の弾性体の変位と応力を,弾性力学の基礎方程式を解いて求めるのはとても難しいことでほぼ不可能と言えます。一方,未知数である変位が多項式などある簡単な式で表現できると仮定して問題を解くことはできます。しかし,弾性体の形状が少しでも複雑となったら,仮定した簡単な式が真の解と程遠いものとなってしまい近似解が求まりません。
そこで問題の対象である弾性体を,要素と呼ばれる小さくてかつ簡単な形状に分割して,要素内では未知数である変位を,座標(x,y)の1次式や2次式など簡単な式で変化すると仮定して変位を求めます。先程「仮定した簡単な式が真の解と程遠いものになる」と述べましたが,小さい要素に分割するとそれぞれの要素内では仮定した簡単な式が真の解の近似式となり得ます。変位の変化が急な場所は要素分割を細かくすることで対処します。小さい要素で得られた変位を統合して,問題の対象である弾性体の変位を求めると,この変位は真の解の近似解となり得ます。また,仮定した簡単な式が適切なものであると,要素分割を無限に細かくするとこの近似解が真の解に近づくことが期待されます。
弾性体のひずみは変位を座標(x,y)で偏微分したものであるため,変位を簡単な式で仮定していることから微分可能なので,ひずみも簡単に求まります。そして応力は,ひずみにヤング率を乗じたものなので求まります。
以上が有限要素法の基本的な考え方です。対象物である弾性体を微小な領域に分割することと,微小な領域の中では未知数である変位を座標(x,y)の簡単な関数として仮定することがポイントです。
それでは,外力が作用する弾性体の変位と応力を有限要素法で求める方法を説明していきます。問題を簡単にするため二次元平面応力問題で話を進めていきます。二次元平面応力問題とは,薄い板に曲げモーメントは作用しなくて二次元的な力だけが作用した状態で,6つの応力成分 σx,σy,σz,τxy,τyz,τzx のうち,σz,τyz,τzx がゼロの状態をいいます。これを読めば二次元平面応力問題について三角形1次要素を使ってプログラミングができる程度の情報量を記載することを目標とします。
図1に示すような弾性体があり,表面の一部が固定されており,異なる表面の一部に外力が作用している問題を考えます。これを図2に示すように小さな領域に分割します。小さな領域を要素(element)といい,要素の頂点を節点(node)と言います。要素と節点で表現される弾性体を有限要素法モデルと言います。図1のような連続体の場合,未知数である変位は座標(x,y)の関数となり,外力と固定は連続体の表面に設定されます。図2のような有限要素法モデルの場合,未知数である変位は各節点毎に設定されその数は有限個となり,外力と固定は節点に対して設定されます。
図3,図4は一つの要素を取出したものです。今回説明する要素は三角形1次要素と呼ばれるもので,要素内の変位は(1)式で示されるような座標(x,y)に対して1次式で表されるものです。ひずみは変位を座標で微分したものなので要素内で一定値となり,応力も要素内で一定値となります。
節点には,i,j,kと名前を付けます。i,j,kの順序は反時計回りとします。各節点の変位を ui,vi,uj,vj,uk,vk とし,各節点に作用する力を fi,gi,fj,gj,fk,gk と定義します。
図2の有限要素法モデルでは,ある要素とその隣の要素は節点を共有することでつながっています。そして,節点を介して要素に作用する力が授受されると考えます。節点を介して力が授受されると書きましたが,連続体では節点と節点を結んだ線上で力が授受されるので,少し正確でない気がします。しかし,考察を深めていくと結果としてこの考え方でよいとされています。
節点に力が作用すると要素が変形し節点に変位が生じます。節点に作用する力と節点変位には次式で表される関係があります。(2)式は各成分を表示した形で,(2)’式はマトリクス表示したものです。この式の[k]を要素剛性マトリクスといいます。ばね定数をk,ばねの伸びをu,ばねに作用している力をfとすると,ku=f で表されますので,要素剛性マトリクス[k]はばね定数のようなものです。
[k]の具体的な値は,材料定数(ヤング率Eとポアソン比ν)とi,j,k節点の節点座標で決まります。次式となります。
ここで,hは三角形要素の板厚,Sは面積,[B]は変位-ひずみマトリクス,[D]は応力-ひずみマトリクスです。[B]Tは[B]マトリクスの行と列を入替えた転置マトリクスです。(3)式の導出は要素剛性マトリクスの導出のページで述べています。
今,Δを次式で定義します。
三角形要素の面積は次式で表されます。
変位-ひずみマトリクス[B]は次式で表されます。
応力-ひずみマトリクス[D]は次式で表されます。
ここでEはヤング率,νはポアソン比です。
これで,要素剛性マトリクスが計算できますね。次は全体マトリクスの構築です。
説明を簡単にするために,図5に示すような3つの要素で構成される有限要素法モデルを考えます。各節点に番号をつけ,各要素にも番号をつけます。要素番号は丸数字(①②③)で表記します。
有限要素法モデルでは,連続体が分割されて要素となって離散化されているため,境界条件は要素の辺ではなく節点に対して行います。この場合,節点1はx方向には動かない境界条件を(x方向の変位拘束),節点2はx方向にもy方向にも動かない境界条件(x方向の変位拘束とy方向の変位拘束)を設定しています。そして,節点5に外力Wを設定しています。
節点拘束について注意点があります。有限要素法モデルが剛体変位と回転しなくなるために十分な拘束をする必要があります。今回の場合,節点2についてx方向とy方向の変位を拘束しているので,有限要素法モデルが剛体変位することはありませんが,これだけでは節点2を中心として回転してしまいます。回転を防止するために節点1のx方向変位を拘束しています。拘束が十分でないと後述する逆マトリクスが求まらないことになります。
各要素の節点番号を決めます。節点番号は反時計回りにつけますので,要素①のi節点は1,j節点は2,k節点は3となります。同様にして各要素の節点番号は表1のようになります。
全体剛性マトリクスを[K],全体の変位ベクトルを{U},全体の外力ベクトルを{F}として,連立方程式を作ります。次式です。
ここで,U1は節点1のx方向変位,V1は節点1のy方向変位,F1は節点1に作用するのx方向の力,G1は節点1に作用するのy方向の力,.....です。
全体の変位ベクトル{U}に値を代入しましょう。
節点1はx方向変位が拘束されていますのでU1=0とします。同様にしてU2=0,V2=0です。V1,U3,V3,U4,V4,U5,V5 は,未知数ですのでそのままにしておきます。全体の変位ベクトル{U}は次式となります。
次は全体の外力ベクトルに値を代入ましょう。
節点5のy方向外力はWなのでG5=Wとします。節点1のy方向,節点3のx方向とy方向,節点4のx方向とy方向,節点5のx方向 には外力が作用していませんので,G1=0,F3=0,G3=0,F4=0,G4=0,F5=0 とします。
節点1のx方向変位は拘束されています。ということは,拘束支持しているものから何らかの反力(外力)を受けているはずです。しかし,この反力の値は今のところ未知数ですので,節点1のx方向外力はF1のままにしておきます。節点2のx方向外力,y方向外力についても同様にF2,G2のままにしておきます。全体の外力ベクトル{F}は次式となります。
いよいよ,全体の剛性マトリクス[K]の構築です。
最初に全成分にゼロを代入します。次のようになります。
全体の剛性マトリクスに要素①の剛性マトリクス成分を加えます。表1に示したように要素①は節点1,節点2,節点3からなりますので,節点1,節点2,節点3の座標と材料定数から要素剛性マトリクスを(3),(4),(6),(7)式を使って求めます。求めた要素剛性マトリクスを,全体剛性マトリクスの節点1,2,3に関する成分のところに足し合わせます。要素①の要素剛性マトリクスの成分をk①として表現すると,要素①の分を足し合わせた後の全体剛性マトリクスは以下のようになります。
全体の剛性マトリクスに要素②の剛性マトリクス成分を加えます。表1に示したように要素②は節点2,節点4,節点3からなりますので,求めた要素剛性マトリクスを,全体剛性マトリクスの節点2,4,3に関する成分のところに足し合わせます。要素②の分を足し合わせた後の全体剛性マトリクスは以下のようになります。
全体の剛性マトリクスに要素③の剛性マトリクス成分を加えます。表1に示したように要素③は節点3,節点4,節点5からなりますので,求めた要素剛性マトリクスを,全体剛性マトリクスの節点3,4,5に関する成分のところに足し合わせます。要素③の分を足し合わせた後の全体剛性マトリクスは以下のようになります。
全体剛性マトリクスができあがりました。全体剛性マトリクスには以下の特徴があります。
変位が未知数である行を上の方にもっていくために,1行目と10行目を入れ替えます。全体剛性マトリクスについては,1行と10行を入れ替えるのは当然としても,1列と10列も入れ替える必要があります。入れ替えた後の連立方程式を以下に記します。
さらに,3行と9行を入れ替えて,4行と8行を入れ替えます。そうすると未知数の変位が上の方に集まり,未知数の外力が下の方に集まります。連立方程式は次式となります。
未知数と既知数が分離できました。変位ベクトルを未知数の変位ベクトル{UA}と既知数の変位ベクトル{UB}に分けます。次に外力ベクトルを既知数の外力ベクトル{FA}と未知数の外力ベクトル{FB}に分けます。そして剛性マトリクスを4つのマトリクス[KA],[KB],[KC],[KD]に分けます。
そうすると,(17’)式は次式のようにあらわすことができます。
(18)式を次式のように分解します。
{UA}が未知数の変位ベクトルですので,これから{UA}を求めます。(19)式を変形します。
先ほど「[K]の逆マトリクスは存在しない。」と述べましたが,[KA]の逆マトリクスは計算することができます。(21)に対し左から[KA]の逆マトリクス[KA]-1を掛けると,未知数である変位ベクトル{UA}が求まります。
未知数だった各点の変位が求まりました。
{UB}の成分はすべてゼロだったのですが,これは図5において変位を拘束したためであります。変位の境界条件に強制変位を設定した場合,{UB}の成分は強制変位の値となりますのでゼロでなくなります。
次は拘束点に作用する反力の計算です。{UA}が既知となりましたので,(20)式の左辺の計算ができるようになりました。これで{FB}が求まり,すべての未知数が求まりました。
応力とひずみは要素ごとに計算します。
要素①について,節点変位{u}を抽出します。表1に示したように要素①は節点1,節点2,節点3からなりますので,要素①の変位ベクトル{u}は次式になります。
要素の変位ベクトルに,左から(6)式で示した変位-ひずみマトリクス[B]を掛算すると,ひずみベクトル{ε}が求まります。次式となります。この式の導出は,要素剛性マトリクスの導出のページで述べています。
これで各要素のひずみが求まりました。次は応力です。ひずみと応力は次の関係があります。
他の要素についても同様に応力とひずみを求めることができます。
以上の過程を踏むことで,弾性体の変位や応力を求めることができます。これが線形解析における有限要素法の手順です。
ここで述べた要素は三角形1次要素です。要素内の変位は(1)式で仮定したように座標の1次式で,応力とひずみは要素内で一定値としたものです。三角形1次要素で真の解に近づけようとすると,かなり細かな要素分割が必要です。要素内の変位を以下に示した2次式で仮定すると,応力とひずみは座標に対して1次式で変化することになり,近似の精度が高まります。このような要素を三角形2次要素と言い,表2にその形状を示します。三角形2次要素では粗い要素分割で真の解に近づけることができます。
四角形要素にも四角形1次要素と四角形2次要素があり,これらを表2に示します。三角形要素と同様に1次要素では変位は座標の1次式で変化すると仮定されており,2次要素では変位は座標の2次式で変化すると仮定されておりますが,仮定する式が若干異なります。
3次要素にすればより精度の高い変位の近似ができそうですが,計算が煩雑になるなどの理由から普及しませんでした。応力集中部に対しては,二次要素を使って要素分割を細かくする戦略がとられます。
以上は二次元問題の要素ですが,三次元問題の要素についても説明しておきます。三次元問題の要素を表3に示します。1次要素は変位の変化を1次式で近似し2次要素は変位の変化を2次式で近似していますが,四面体要素より六面体要素の方がより高い精度の式で近似しています。要素の自動分割(オートメッシャー)が普及していない時代は六面体要素が重宝していましたが,任意形状の立体をオートメッシャーを使って六面体要素で要素分割することは難しく,オートメッシャーが普及した現在では四面体2次要素が多く使われています。
1)戸川,有限要素法概論,培風館,(S56)
2)三好,有限要素法入門,培風館,(S53)
3)O.C.ツィエンキーヴィッツ,基礎工学におけるマトリックス有限要素法,吉識,山田 監訳,(S50)
仮想仕事の原理 を追加しました。