技術コラム:OPTISHAPE-TSの理論

第27話 コンプライアンスの感度 その5
    「断面積を表す関数に対する感度の導出」

前回は設計変数を断面積を表す関数として、1次元片持ち梁におけるコンプライアンスの感度を求めようというところで、Lagrange 関数を定義するところまで話を進めました。 今回はその停留条件と断面積に対する微分を求めるために、変分法に基づいたアプローチを行うところを見ていきましょう。

*****

高校数学で習うような関数の微分を計算するとき、通常はあらかじめ覚えておいた公式を使って \begin{align} \require{physics} & f\qty(x) = x^3 + 3x + 1 && \to \dv{f}{x} = 3x^2 + 3 \\ & f\qty(x) = \sin x && \to \dv{f}{x} = \cos x \\ & f\qty(x) = \exp\qty(x) && \to \dv{f}{x} = \exp\qty(x) \end{align} のように機械的に求めてしまうことが多いかと思います。 しかし微分の定義に戻って考えてみると、たとえば上記の1番目の例の場合、\(x\) を微小な値 \(\hat{x}\) だけ増やしたときの関数 \(f\) の値 \begin{align} & f\qty(x + \hat{x}) \\ & = \qty(x + \hat{x})^3 + 3\qty(x + \hat{x}) + 1 \\ & = \qty(x^3 + 3x^2\hat{x} + 3x\hat{x}^2 + \hat{x}^3) + \qty(3x + 3\hat{x}) + 1 \\ & = \underbrace{x^3 + 3x + 1}_{f\qty(x)} + \underbrace{\qty(3x^2 + 3)}_{f^\prime\qty(x)}\hat{x} + 3x \hat{x}^2 + 1 \cdot \hat{x}^3 \end{align} を考えたときの \(\hat{x}\) の1次の項の係数 \(3x^2 + 3\) が1階微分に相当します。 より正確に言えば、この係数は勾配(傾き)であり、勾配と \(\hat{x}\) の積として微分が求められます。

変分の場合も同じで、ある関数があってそれがほんのわずかに変化したときに、勾配に相当する成分というものを考えることができます。 そのようなイメージを持ちながら、Lagrange 関数の微分(変分)について見てみましょう。

*****

Lagrange 関数の定義は \[ \mathscr{L}\qty(a, u, v) = f_\mathrm{C}\qty(a, u) + \qty{-\int_{0}^{l} a \sigma\qty(u) \varepsilon\qty(v) \dd{x} + \int_{0}^{l} abv \dd{x} + pv\qty(l)} \] のようになっていました。 第1項のコンプライアンスの定義は \[ f_\mathrm{C}\qty(a, u) = \int_{0}^{l} abu \dd{x} + pu\qty(l) \] となっていました。 また、第2項の中括弧でくくられた部分は状態方程式を表す等式制約になっていました。

まずはじめに、\(v\) に対する微分(変分)を考えてみましょう。 \(v\) が \(\hat{v}\) だけ変化したとき、Lagrange 関数は \begin{align} & \mathscr{L}\qty(a, u, v + \hat{v}) \\ & = f_\mathrm{C}\qty(a, u) - \int_0^la\sigma\qty(u)\varepsilon\qty(v + \hat{v}) \dd{x} \\ & \qquad + \int_0^l ab\qty(v + \hat{v}) \dd{x} + p\qty(v\qty(l) + \hat{v}\qty(l)) \\ & = f_\mathrm{C}\qty(a, u) - \int_0^la\sigma\qty(u)\qty{\varepsilon\qty(v) + \varepsilon\qty(\hat{v})} \dd{x} \\ & \qquad + \int_0^l \qty(abv + ab\hat{v}) \dd{x} + pv\qty(l) + p\hat{v}\qty(l) \\ & = f_\mathrm{C}\qty(a, u) - \int_0^la\sigma\qty(u)\varepsilon\qty(v) \dd{x} - \int_0^l a\sigma\qty(u)\varepsilon\qty(\hat{v}) \dd{x} \\ & \qquad + \int_0^l abv \dd{x} + \int_0^l ab\hat{v} \dd{x} + pv\qty(l) + p\hat{v}\qty(l) \\ & = \qty(f_\mathrm{C}\qty(a, u) - \int_0^la\sigma\qty(u)\varepsilon\qty(v) \dd{x} + \int_0^l abv \dd{x} + pv\qty(l)) \\ & \qquad + \qty(- \int_0^l a\sigma\qty(u)\varepsilon\qty(\hat{v}) \dd{x} + \int_0^l ab\hat{v} \dd{x} + p\hat{v}\qty(l)) \\ & = \mathscr{L}\qty(a, u, v) + \qty(- \int_0^l a\sigma\qty(u)\varepsilon\qty(\hat{v}) \dd{x} + \int_0^l ab\hat{v} \dd{x} + p\hat{v}\qty(l)) \end{align} のようになります。 ちょっと長く式が続いてしまっていますが、式変形をゆっくりゆっくりやっているためなので、ゆっくりゆっくり追ってみてください。 第2式から第3式への変形で出てきますが、ひずみ \(\varepsilon\) は \[ \varepsilon\qty(u) = \dv{u}{x} \] という定義になっていたので、 \[ \varepsilon\qty(u + \hat{u}) = \dv{x}\qty(u + \hat{u}) = \dv{u}{x} + \dv{\hat{u}}{x} = \varepsilon\qty(u) + \varepsilon\qty(\hat{u}) \] のように分解することができます。 最後の式の第2項 \[ - \int_0^l a\sigma\qty(u)\varepsilon\qty(\hat{v}) \dd{x} + \int_0^l ab\hat{v} \dd{x} + p\hat{v}\qty(l) \] が \(\hat{v}\) の1次の項で、いわゆる第1変分と呼ばれるものとなります。 Lagrange 関数の \(v\) に対する停留条件は、任意の \(\hat{v}\) に対してこの第1変分がゼロに等しくなるというものになります。

しかしこの式をよく見てみると、状態方程式の弱形式(前回の記事における式\((2)\) の中括弧の部分) \[ -\int_{0}^{l} a \sigma\qty(u) \varepsilon\qty(v) \dd{x} + \int_{0}^{l} abv \dd{x} + pv\qty(l) \quad\qty(= 0) \] で出てきた \(v\) が \(\hat{v}\) に変わっただけだということがわかります。 \(u\) が状態方程式の解であればどのような \(v\) であってもこの式はゼロとなるので、第1変分も任意の \(\hat{v}\) についてゼロとなります。

*****

つづいて \(u\) の微小な変化 \(\hat{u}\) に対する停留条件を考えてみます。 やることは先ほどと同じなので今回は途中の式変形を省略しますが、結果は \[ \mathscr{L}\qty(a, u + \hat{u}, v) = \mathscr{L}\qty(a, u, v) + \qty(\int_0^l ab\hat{u} \dd{x} + p\hat{u}\qty(l) - \int_0^l a\sigma\qty(\hat{u})\varepsilon\qty(v) \dd{x}) \] のようになります。 ここで応力 \(\sigma\) が \[ \sigma\qty(u) = E \varepsilon\qty(u) \] という定義になっていたことを思い出すと、 \[ \sigma\qty(\hat{u})\varepsilon\qty(v) = \qty{E \varepsilon\qty(\hat{u})}\varepsilon\qty(v) = \varepsilon\qty(\hat{u})\qty{E\varepsilon\qty(v)} = \sigma\qty(v)\varepsilon\qty(\hat{u}) \] が成り立つことから、\(u\) に対する第1変分は \[ \int_0^l ab\hat{u} \dd{x} + p\hat{u}\qty(l) - \int_0^l a\sigma\qty(v)\varepsilon\qty(\hat{u}) \dd{x} \] のように書き換えることができます。

ところがこの式もよく見てみると、状態方程式の弱形式で出てきた \(u\) が \(v\) に、\(v\) が \(\hat{u}\) に変わっただけとなっています。 したがって \(v\) が状態方程式の解であればこの項もゼロとなるのです。 設計変数が2次元だったとき(第25話)にお話しした自己随伴という性質がここでも顔を出していることがわかりますね。

*****

そして最後に、設計変数 \(a\) の微小な変化 \(\hat{a}\) に対する Lagrange 関数の第1変分を求めてみましょう。 これまでと同じような計算をしていき、自己随伴関係(\(v = u\))を用いると、結果として \[ \mathscr{L}\qty(a + \hat{a}, u, v) = \mathscr{L}\qty(a, u, v) + \int_0^l \qty{2bu - \sigma\qty(u) \varepsilon\qty(u)} \hat{a} \dd{x} \] のような式が得られます。 第1変分のうち \(\hat{a}\) の内積の相手になっている \[ 2bu - \sigma\qty(u)\varepsilon\qty(u) \] がいわゆる感度と呼ばれるものとなります。 物体力がない場合(\(b = 0\))にはひずみエネルギーの形となることも確認できますね。

*****

以上、設計変数である断面積が関数で表される場合にコンプライアンスの感度がどのように導出されるかを、要点だけかいつまみながら(かいつまみきれず数式がかなり増えてしまいましたが)眺めてみました。 簡単にまとめておくと、次のようになります。

  1. 評価関数の定義になんらかの状態方程式が関与する場合は、その方程式を等式制約として考慮して感度を求める必要があります。
  2. その方法にはいくつかの種類がありますが、設計変数が関数となる場合に用いられるのは実質的に Lagrange 乗数法に限られます。
  3. Lagrange 乗数法で感度を求める場合は、状態方程式に加えて随伴方程式を解く必要があります。ただし評価関数の種類によっては、自己随伴という性質のために随伴方程式を解く必要がなくなる場合があります。

OPTISHAPE-TSに実装されている形状最適化やトポロジー最適化、ビード最適化で設計変数となるような関数の場合は考えないといけないことがもう少し増えるのですが、どの構造最適化でも基盤となる考え方は変わりません。


★ご意見・ご感想はこちらへ★
https://www.quint.co.jp/cgi-bin/qrepo-impr.cgi


第26話第28話

OPTISHAPE-TSの理論 TOP



技術コラム
『OPTISHAPE-TSの理論』

  • ご意見・ご感想フォーム