> For the complete documentation index, see [llms.txt](https://manual.karamba3d.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://manual.karamba3d.com/jp/3-konpnentorifarensu/3.5-algorithms/3.5.3-analyze-nonlinear-wip.md).

# 3.6.3: 非線形解析 WIP

線形構造挙動とは、外部荷重が係数でスケーリングされると、物理応答量（変位、断面力、応力など）もその係数でスケーリングされることを意味します。このプロパティにより、異なる荷重の重ね合わせが可能になり、外部荷重の可能な組み合わせごとにモデルを再計算する必要がなくなります。実際の構造では、線形挙動の仮定は近似ですが、多くの場合で良好な近似です。非線形性には2つの主要な原因があります:

* **材料の非線形性**: 材料の応力-ひずみ関係が線形でない場合に発生します（例: ひび割れるコンクリート、降伏する鋼など）。
* 幾何学的非線形性: 以下の場合に効果を発揮します
  * 横変位が非常に大きくなり、軸方向（例えば梁の場合）または面内（シェルを考えてみてください）の変形に対するその影響を無視できなくなる場合、
  * 節点回転$$\alpha$$が、$$\alpha$$と$$\tan(\alpha)$$の差が重要になる値に達した場合。

{% hint style="info" %}
「**Analyze Nonlinear WIP**」コンポーネントを使用すると、幾何学的非線形性を扱うことができます。これは作業中です。これは、特にシェルの場合、一部の構造に対してアルゴリズムが許容可能な時間内に収束しない可能性があることを意味します。ただし、結果が返される場合、それは妥当なものです。
{% endhint %}

「**Analyze Nonlinear WIP**」コンポーネントを使用すると、3つのバリアントの反復解法アルゴリズムから選択できます。これらにはそれぞれ異なる利点と欠点があり、以下で説明します。アルゴリズムは小ひずみの仮定に基づいていますが、任意に大きな変位を許容します。

3つすべてのアルゴリズムの目標は、外部荷重と内部力が平衡する変位状態を見つけることです。既知の初期変位状態から開始して、与えられた荷重の下で構造がどのように変形するかを推測する必要があります。この推測は、内部力と外部力が通常一致しない2番目の変位状態につながります。残りの不均衡は、変位の変化に関する次の予測の基礎を形成し、というように続きます。残差力または変位の変化が与えられたしきい値を下回った場合に平衡に到達します。「**Analyze Nonlinear WIP**」コンポーネントが提供する3つのアルゴリズムは、変位増分の予測方法が異なります。

## **動的緩和法**

![図3.5.3.1: 「Analyze Nonlinear WIP」コンポーネントの動的緩和法オプション。](https://147116332-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fz9HWyQapP9tu9mJjh5O9%2Fuploads%2Fgit-blob-d4bc9cefc2edf3ba85b60beb92ba695720ff013c%2Fdynamicrelaxationcomponent.PNG?alt=media)

{% file src="/files/b8XVbIDZSZxAwBl5MZ5s" %}

図3.5.3.1は、先端でローカルy軸周りの曲げモーメント荷重を受ける片持ち梁を示しています。これは20の梁要素で構成されています。その応答を計算するには、「**DynamicRelaxation**」オプションが使用されます。このアルゴリズムは、各ノードに作用する残差力の方向に基づいて構造の次の動きを予測します。これは平衡にかなり確実に収束する堅牢な手続きですが、収束するには多数の反復が必要な場合があります。このコンポーネントには以下の入力プラグがあります:

|                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **「Model」**        | 解析される構造。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| **「nLoadSteps」**   | 荷重ステップとして作用する荷重ケースの数。デフォルトは1です。たとえば2に設定すると、アルゴリズムは荷重ケース0の平衡を見つけることから始まります。その後、荷重ケース0の荷重はそのまま残り、荷重ケース1の荷重が追加されて最終段階に到達します。これにより、荷重履歴をモデル化できます。残りの荷重ケースは、別々に、小変位の仮定の下で最終段階に追加されます。アクティブな曲げ構造の場合、最初の荷重ケースは変形した構造を引き起こすものとして機能し、残りの荷重ケースは変形構成に対する風荷重や活荷重などの追加アクションを構成します。「**モデルビュー**」コンポーネントの「**Display Scales**」サブメニューの変位のスケーリング係数は、小変位が仮定される荷重ステップにのみ作用します。全体の変位のうちの大変形シェアはスケーリングされず、実サイズで表示されます。                                                  |
| **「nLoadIncs」**    | 荷重ケースごとの増分数（デフォルトは5）。外部荷重はいくつかのステップで適用されます。ほぼ線形挙動の構造の場合、増分数は少ない数に設定できます。高度に非線形な問題の場合、より大きな値が有利な場合があります。荷重増分が小さいほど、アルゴリズムが平衡を見つけることが容易になります。反復数は通常、荷重ステップの数が増えるにつれて（したがってステップサイズが減少するにつれて）減少します。ただし、荷重ステップの数が与えられた構造挙動のタイプに対して高すぎる数に設定されている場合、全体的なパフォーマンスは低下する可能性があります。                                                                                                                                                                           |
| **「maxEquiIter」**  | 荷重増分ごとの最大平衡反復数を設定し、したがって計算時間に制限を設けます。デフォルトは200です。                                                                                                                                                                                                                                                                                                                                                                                                |
| **「EquiTol」**      | 現在の荷重ステップでの増分変化に対する残差力および変位の反復変化の許容差。デフォルト値は$$1E-7$$です。                                                                                                                                                                                                                                                                                                                                                                                          |
| **「maxLimitIter」** | Karamba3Dで実装されている動的緩和（DR）アルゴリズムを使用して取り組める問題の範囲は、安定した構造に限定されます。座屈やスナップスルーなどの現象の場合、初期不安定点を超えて平衡状態が存在する可能性があります。ただし、最後の既知の安定構成からの距離が大きいことが多いため、到達するのは困難です。そのような場合、DRアルゴリズムは最大平衡反復数内に平衡状態に収束しません。その後、発散につながった荷重増分を半分にすることによって、仮定された不安定点に近づこうとします。このように進むことで、いわゆる限界荷重を任意の精度で決定できます。「**maxLimitIter**」は、デフォルトで200に等しい限界荷重反復数の上限を設定します。残念ながら、発散はアルゴリズムの数値的問題によっても引き起こされる可能性があります。したがって、「**Analyze Nonlinear WIP**」コンポーネントによって決定される限界荷重係数は、下限推定のみを構成します。 |
| **「LimitTol」**     | 限界荷重を計算するための最小荷重増分しきい値を設定します。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| **「StepSizeFac」**  | DRアルゴリズムの予測変位増分をスケーリングするための係数。                                                                                                                                                                                                                                                                                                                                                                                                                   |

非線形計算中に多くのことが起こり得ます。何がどこで間違ったかを把握するため、「**DynamicRelaxation**」オプションのDRバリアントは以下の出力を生成します:

|               |                                                                                                                                                                                                                                                                                                                                                        |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **「Model」**   | 変位、応力、内部力が計算された構造。                                                                                                                                                                                                                                                                                                                                     |
| **「Disp」**    | 達成された最大変位（センチメートル）。                                                                                                                                                                                                                                                                                                                                    |
| **「Energy」**  | 構造に蓄えられた変形エネルギー（$$kN m$$）。                                                                                                                                                                                                                                                                                                                             |
| **「Info」**    | <p>解決プロセスに関する詳細。テキストの5列を出力します:</p><ul><li><strong>「Factor」</strong>: 現在の荷重ステップの荷重係数。</li><li><strong>「Step」</strong>: 現在の荷重ステップ</li><li><strong>「Iter」</strong>: 現在の荷重増分の反復数をカウントします。</li><li><strong>「Disp.Err」</strong>: 現在の荷重増分での最初の反復の変位変化に対する節点変位の反復変化の合計の比を出力します</li><li><strong>「Force.Err」</strong>: 現在の荷重増分に対する残差力の反復変化の合計の比を出力します。</li></ul> |
| **「Lambdas」** | 平衡に到達できた荷重係数について通知します。                                                                                                                                                                                                                                                                                                                                 |

## **Newton-Raphson法**

実際には、動的緩和（DR）手続きは、車の数値クラッシュテスト、壁に発射されるボルトなど、高度に非線形な問題に使用されます。その理由は、非線形効果をDRコードとして実装するのが比較的容易だからです。この実装の容易さは、高い計算コストの代償を伴います: 許容可能な精度で平衡に到達するには多くの反復が必要です。これを脱却する方法は、変位増分のより良い予測により多くの努力を投資することです。DR法では、ノードの残差力が次のノード位置を予測する基礎となります。Newton-RaphsonまたはArc-Length法などの方法は、変位予測を生成するために剛性マトリックスを使用します。反復ごとの計算コストは高くなりますが、DR法と比較して反復数を非常に小さくすることができます。一貫した剛性マトリックスを使用すると、最適条件下で2次収束を達成できます。これは、反復変位および力誤差について、各反復で小数点以下のゼロの数が2倍になることを意味します。「**Analyze Nonlinear WIP**」コンポーネントについては、これはまだ当てはまらず、「作業中」ラベルの理由の1つです。Newton-RaphsonまたはArc-Length法の詳細は、[\[6\]](broken://pages/-M9XuRDLyIWACDdqcL2-) の102ページ以降および214ページ以降にあります。

![図3.5.3.2: 「Analyze Nonlinear WIP」コンポーネントのNewton-Raphson法オプション](https://147116332-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fz9HWyQapP9tu9mJjh5O9%2Fuploads%2Fgit-blob-804129fe5be80f7fd271c12dc0f9c7c2a57a82e0%2Fnewtonraphsoncomponent.PNG?alt=media)

{% file src="/files/r3n4K7MqjeOgry2ZUZpQ" %}

図3.5.3.2は、前と同じ片持ち梁を「**NewtonRaphson**」オプションで解析した様子を示しています。「**Analyze Nonlinear WIP**」コンポーネントのNewton-Raphsonバリアントは、DRバージョンとほぼ同じ入力および出力プラグを持ちます。唯一の違いは、「**StepSizeFac**」入力が欠如していることです。Newton-Raphson手続きには不安定な構造に関してDR法と同じ制限があるため、前と同じように限界点に近づく区間半分割戦略が適用されます。

## **Arc-Length法**

![図3.5.3.3: 「Analyze Nonlinear WIP」コンポーネントのArc-Length法オプション](https://147116332-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fz9HWyQapP9tu9mJjh5O9%2Fuploads%2Fgit-blob-8f3995186a79b84773c1266aa97ff65f45250bb1%2Farclengthcomponent.PNG?alt=media)

{% file src="/files/R0mziTkdoeHuCx0GLZ4g" %}

多くの構造では、最初の不安定点に到達してもまだ終わりではありません。特に薄板およびシェル構造は、座屈後挙動を考慮すると大きな載荷予備力を示します。Arc-Length法は、これらの種類の状況に使用できます。図3.5.3.3は、不安定状態から安定した座屈後構成にスナップスルーするトラス構造の計算を示しています。

「**Arclength**」コンポーネントの最初の2つの入力は前と同じ意味を持ちます。ここでは、残りの入力プラグが解決プロセスをどのように制御するかの説明です:

|                      |                                                           |
| -------------------- | --------------------------------------------------------- |
| **「IniLoadFac」**     | 「**IniLoadFac**」を乗じた外部荷重の下での構造の変位は、目標変形増分の最初の推定値として機能します。 |
| **「MaxEquiIter」**    | 荷重増分ごとの最大反復数。                                             |
| **「TargetEquiIter」** | 各増分で使用される増分数を設定します。それに応じて荷重増分をスケーリングするために使用されます。          |
| **「EquiTol」**        | 反復から次の反復までの不均衡力および変位変化の許容差。                               |
| **「MaxLoadInc」**     | 最大荷重反復数。                                                  |
