7. 剛性マトリクスの性質
前々回に取り上げた骨組(片持ち梁)の剛性マトリクスを下に再掲します。 上の式を連立方程式に書き直すと、(これも前々回の繰返しですが)一つ目の方程式は下のようになります。
Pu = ( EA / L )・δu + 0・δv + 0・δθ
|
剛性マトリクスの「対角要素」 |
マトリクスの m 行目 m 列目の要素というのは、ちょうど、左上から右下にかけての対角線上に位置することになるので、これを対角要素と呼んでいます(下図の赤丸)。
では、剛性マトリクスにおける対角要素とは何かというと、さきほどの言い方を使えば「 m 番目の自由度の剛性に関する m 番目の自由度の関与」で、言い換えれば、「 m 番目の自由度の方向にモノを動かそうとする時に、その方向に加えるべき力」のことです。
片持ち梁の例を再び取り上げれば、その先端の節点に「垂直方向」の変位を与えようとした時に、その方向に力を加える替わりに「回転方向」の力(曲げモーメント)を加える、という手はたしかにあるのです。なぜなら、剛性マトリクスあるいは連立方程式を見れば分かるとおり、回転方向の力と垂直方向の変位は互いに関わりあっているからです。
しかし、「垂直方向に変位を与えよ」といわれたら、普通は誰だって「垂直方向に押して」みます。つまりその方向に力を加えます。それがもっとも「直接的」だからです。
そして、その時の剛性をあらわすものが剛性マトリクスの「対角要素」なのですが、これは結局何かといえば、「その自由度の剛性にかんする自分自身の関与の大きさ」であり、「その自由度の剛性を代表するような値」です。注)
ということになれば、「その値が 0 だったらおかしい」ことはたやすく想像できます。
剛性マトリクスの対角要素が 0 である、というのは、「その方向にモノを動かすためにその方向に加えるべき力が存在しない」ということですから、「変位量がさだまらない」であり、結論として、「これは不安定構造である」になります。これが「剛性マトリクスの逆マトリクスが存在しない」と同義であることは、前回すでにいいました。
さらにもう一つあります。「負であってはならない」です。なぜなら、この値が負であるということは、「ある方向に力を加えると、その力とは逆の方向にモノが動く」状態を意味するからです。
結論は以下のようになります。
剛性マトリクスの「対称性」 |
冒頭の剛性マトリクスを下に再掲します。
1 行目の 2 列と 3 列の値が 0 になっているのは、「水平方向の自由度と垂直・回転方向の自由度にはなんの因果関係もない」からでした。そしてその結果として、当然、 2 行目 1 列の値も 3 行目 1 列の値も全部 0 になります。
これをもう少し一般的な言い方にすれば、「自由度 m と自由度 n の間になんの因果関係もないならば、剛性マトリクスの m 行 n 列の値も n 行 m 列の値もともに 0 になる」です。
しかし、ここでいいたいのはそれではなく、 2 行目 3 列の値と 3 行目 2 列の値( -6EI / L2 )も同じになっていることの方です。これは決して偶然ではなく、「骨組とはそういうものだから」なんです。
これを一般的な言い方にすると、「自由度 n に単位の変形を与えるために自由度 m に加えるべき力と、自由度 m に単位の変形を与えるために自由度 n に加えるべき力は等しい」となります。しかし、この言い方はいささか回りくどいので、今度は「力」ではなく「変位」の方を主役にして次のように言い換えてみます。
まあ、これもなんだか分かりにくいですね。これは「自由度」という言葉が今ひとつピンとこないせいかもしれませんので、これを「節点」に置き換え、さらに「単位力」をたんなる「力」と言い換えてみます。
これをマックスウェルの相反定理といいますが、下の図で具体的に説明します。
上図左にあるのは、片持ち梁の中間の節点 A に P という荷重が作用して先端の節点 B に変位量 δB が生じている、という状態で、右にあるのは、同じ荷重 P が今度は先端の節点 B に作用して、その結果、節点 A に 変位量 δA が生じている、という状態です。
この時、「 δA と δB はかならず等しくなる」というのがマックスウェルの相反定理です。
だいぶ回り道をしましたが、そのようなわけで、
となります。このようなマトリクスのことを対称マトリクスと呼びます。
「じゃあ、対称だと何がそんなにいいのか?」ですが、これは主として、コンピュータの記憶効率の問題に関わってきます。
下図にあるように、「剛性マトリクスは対称である」ことが最初から分かっていますから、コンピュータプログラムでは、剛性マトリクスの全体をメモリに格納することをしなくても、対角要素とその上半分(あるいは下半分)だけを憶えておけばいいことになります。これはたんにメモリの節約だけでなく、演算処理の効率にも関わってきますので、規模の大きな骨組では結構バカにならない問題です。
話のついでに、転置マトリクスというものについても説明しておきます。
下図にあるように、マトリクス [ A ] の行と列をそっくり入れ替えたものを転置マトリクスといい、[ A ] T のように書きます( T は Transpose の略)。
これを使うと、
という言い方もできるわけです。
転置マトリクスというのは、これからの話にも時々出てきますので、一応、頭の隅に入れておいてください。