> 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.8-optimize-cross-section.md).

# 3.6.8: 断面最適化

「**Optimize Cross Section**」コンポーネントは、断面の載荷能力および必要に応じて構造の最大許容たわみを考慮して、梁およびシェルの最適な断面を自動選択するように設計されています。

<figure><img src="https://147116332-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fz9HWyQapP9tu9mJjh5O9%2Fuploads%2Fgit-blob-3c973b2f2ab082619fe91acb58d4562460a267e9%2FCrossSectionoptimization_1.png?alt=media" alt=""><figcaption><p>図3.6.8.1: 単純支持梁での「OptiCroSec」コンポーネントを使用した断面最適化。</p></figcaption></figure>

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

## 終局限界状態（ULS）における構造破壊を防ぐ設計

図3.6.8.1では、変位制限は指定されていないため、「**OptiCroSec**」コンポーネントは、「**LCasesUtil**」プラグを介して入力されたすべての指定された荷重ケースおよび組み合わせにわたって十分な載荷能力を確保するために、各要素の断面を決定できます。「**LCasesUtil**」にエントリがない場合、モデルに含まれるすべての荷重ケースおよび組み合わせがデフォルトになります。強度限界への設計を回避するために、目標最大検定比に負の値を入力できます。「**MaxUtil**」入力はデフォルトで「1.0」であり、検定比1.0での設計を意味します。

Karamba3Dソフトウェアは限界荷重設計のために以下のステップを実行します:

1. 初期断面を使用して、すべての梁に沿った「**nSamples**」点で断面力を計算します。
2. 各要素または事前定義された要素セットについて、アルゴリズムは「**MaxUtil**」入力プラグで指定された検定比値に基づいて、関連する断面ファミリーから最初の十分な断面を選択します。この選択はまた、ファミリー内の断面に割り当てられた材料も組み込みます。その結果、異なる材料を持つ断面ファミリーを使用することが可能です。
3. ステップ2の後に変更が必要ない場合、または設計反復の最大数（「**Util Iter**」）に達した場合、アルゴリズムは停止します。それ以外の場合、新しく選択された断面でステップ1から繰り返します。

この手続きは静的に不定な構造で反復的です。これは断面力が部材剛性に依存し、それが断面寸法および材料特性に起因するためです。

<figure><img src="https://147116332-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fz9HWyQapP9tu9mJjh5O9%2Fuploads%2Fgit-blob-ade914ec09deb3043673a607b2190ee1629f7b68%2FOptiCroSecShell_1.png?alt=media" alt=""><figcaption><p>図3.6.8.2: 片持ち壁での「OptiCroSec」コンポーネントを使用した断面最適化。</p></figcaption></figure>

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

図3.6.8.2は、シェル要素でモデル化された片持ちの最適化シナリオを示しており、重要なエッジで厚いシェル要素が得られます。「**OptiCroSec**」コンポーネントの「CroSecs」入力には、定数シェル断面ファミリーが含まれます。

シェル要素の場合、機械的検定比は、選択された強度仮説に従って、ある点の最大応力を材料強度と比較することによって計算されます（セクション [3.5.1](/jp/3-konpnentorifarensu/3.4-material/3.4.1-material-properties.md) 参照）。鋼の場合、Von Mises応力基準が適用可能です。シェルの最適化プロセスは梁と同じステップに従い、アルゴリズムは断面が設定された検定比しきい値（デフォルトは「1」（100%））を満たすと停止します。

ファミリー内の最大断面が不十分であることが判明した場合、「**OptiCroSec**」コンポーネントは図3.6.8.2に示すように警告を発行します。「Info」出力は、最大変位または検定比目標のいずれかに関する不十分さの理由を詳述します。出力プラグ「**MaxDispView**」および「**MaxUtilView**」は、それぞれ使用性限界状態（SLS）および終局限界状態（ULS）基準を満たさない要素のインデックスを提供します。これらのインデックスは、問題のある領域を強調表示するために「ModelView」コンポーネントの「View」入力プラグに直接入力できます（図3.6.8.3参照）。

## 使用性限界状態（SLS）での過度のたわみを制限する設計

### 最大変位の制御

全体の変位を制限する必要があるシナリオの場合、「**MaxDisp**」入力プラグは、終局限界状態を考慮する前に反復的な設計修正を開始します。この手続きは \[16] で参照されており、以下のステップを含みます:

* **最大変位の決定:** 「**LCasesDisp**」で指定された荷重ケースおよび荷重ケースの組み合わせの最大変位が決定されます。そこに何も指定されていない場合、「**LCasesUtil**」の荷重ケースおよび荷重ケースの組み合わせが使用されます。取得される変位には、すべての節点変位および要素の開始、中間、終了位置での梁変位が含まれます。
* **仮想荷重ケースを使用した適応:** 最大変位を示す荷重ケースについて、仮想荷重ケースが内部的に生成および計算されます。すべての仮想荷重ケースに対する最大変位荷重ケースによって生成される対応する仮想エネルギーは、「**MaxDisp**」入力で定義された制約を満たすように要素の断面のサイズ変更を導きます。これは3つのタイプの入力を解釈できます:

  * **数値**: 構造の変位ベクトルの絶対値と比較される変位制限を定義します。
  * **ベクトル**: これらは方向性の変位制限を指定し、ベクトルの長さが最大許容変位を定義します。
  * **平面**: これらは面内変位を制限し、グローバル原点からの平面の距離が変位制限を設定します。これは、床スラブのような構造の水平方向の動きを制御し、垂直方向の変位を無視する場合に便利です。

  図3.6.8.3は、垂直および水平荷重の組み合わせを受けるフレームを示しており、水平変位制限は0.03cm、垂直下向きの動きは0.29cmに制限されています。複数の変位基準が指定されている場合、Karamba3Dはすべての条件を同時に満たすことを試みます。
* **断面調整**: 変位制限を達成するための断面のサイズ変更は、「**Disp Iter**」で指定された事前定義された反復数内で実行されます。

<figure><img src="https://147116332-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fz9HWyQapP9tu9mJjh5O9%2Fuploads%2Fgit-blob-ca1a3346f9bb00f2c6a99df77a9579da35dc14e9%2Fcroseopti_disp_multiple.png?alt=media" alt=""><figcaption><p>3.6.8.3: 水平および垂直荷重下でのフレーム変位の最適化。複数の変位基準が同時に適用されます。詳細は「OptiDisp_Frame.gh」を参照してください。</p></figcaption></figure>

{% file src="/files/3A1MS1kgrdlrY2zx1ZW9" %}

Karamba3Dは、最大変位および載荷限界に対する安全レベルを統合するための2つの方法論をサポートしています:

* **簡略化されたアプローチ**: 終局限界状態レベルの外部荷重を使用する場合、これが最大変位要件を確認するために使用される荷重のおおよそ1.4倍であることに留意する必要があります。したがって、Karamba3Dで構造を設計する1つの方法は、特性荷重（通常、建築基準で与えられるもの）の下で材料検定比を$$1/1.4 \approx 0.7$$に制限し、結果として得られる変位を使用性設計に直接使用することです。このアプローチは、ULSおよびSLSの個別の荷重組み合わせを必要とせず、結果として得られる変位を使用性設計に直接使用します。
* **正確なアプローチ**: 設計コードで定義された荷重重ね合わせルールを実装し、SLSおよびULS条件に対して異なる安全係数を適用し、それぞれ「**LCasesDisp**」および「**LCasesUtil**」入力で構成します。

上記の手続きが収束しない場合があります。これは、最大変位の位置が絶えず変化するシステムに関連します: 同一のサブシステム（フレームなど）が同一の荷重で連続するシステムを想像してください: 最初の反復は最初のサブシステムでの最大変位を、2番目の反復は2番目のサブシステムでの最大変位を、というように扱います。サブシステムの数が最大反復数より大きい場合、一部は最適化されません。これが発生した場合、後続のセクションで説明されている代替方法を採用する必要があります。

### 仮想荷重ケースによる変位制御

指定された荷重下での構造変位を計算するために利用される仮想力の原理は、変位測定の目的の方向に単位荷重または単位荷重のセットを適用することから始まります。「仮想」という用語は、適用される力が概念的であり、二次理論効果や大変位現象を引き起こさないように大きさが無視できると仮定されることを示します。ただし、仮想荷重の数値は小さい必要はなく、通常は単純化のために1に標準化されます。

図3.6.8.4は、先端で集中荷重を受ける片持ち梁にこの原理を適用する様子を示しています。下向きの先端変位を制限するために、下向きの「1」キロニュートンの仮想荷重が適用されます。変位制限は、「**LCasesDisp**」入力に考慮する実際の荷重ケースを設定し、モデル内で認識されない「-」を荷重ケース名として入力することで強度に対する断面設計を無効にすることによって強制されます。「**MaxWork**」入力では、キロニュートン-センチメートルで測定される仮想荷重ケースごとの最大仮想仕事の目標を設定できます。値「1」は動きを1cmに制限します。「**MaxDisp**」からの出力は通常、適用されたファミリーの最大断面サイズが適切である場合に特に、保守的な変位制限を示します。さらに、並進荷重の代わりにモーメントを適用して、特定の構造点での回転変位を制御できます。

<figure><img src="https://147116332-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fz9HWyQapP9tu9mJjh5O9%2Fuploads%2Fgit-blob-a75bc64d8e9ee186c996dc7ff3e35b5b275773dc%2FVirtualLoad.png?alt=media" alt=""><figcaption><p>.4: 片持ち梁での変位制御のための仮想力の利用。</p></figcaption></figure>

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

## 反復収束および構造安全性の考慮事項

断面を最適化するための反復プロセスは、常に収束を保証するとは限りません。結果の検証は、「Utilization of Elements」コンポーネントを使用して達成でき、断面全体の載荷能力を考慮してEurocode 3に基づいて要素を評価します。「ModelView」コンポーネントの「Stress/Strength Ratio」出力は、圧縮下の座屈などの考慮事項を除いた、任意の断面点での応力-材料強度比を示します。

終局限界状態の考慮事項に関しては、塑性の下限定理により、材料が十分な塑性を示す場合（鋼など）、一部の要素が過剰検定比を示す可能性があっても、構造は任意の反復で与えられた荷重下で十分であることが保証されます。反復数が増加するにつれて、構造システムはより静定に近づきます。

プロファイル選択手続きは、ファミリーの断面が順序付けられていることを想定しています: 最も好まれるものから始まり、最も望まれない断面に降順します。Karamba3Dに付属する断面表「CrossSectionValues.bin」では、すべてのファミリーが高さに従ってランク付けされます。最小の高さの断面が最初に来て、最大の高さのものが最後に来ます。断面積をソート基準として使用する場合、最小重量（およびおおよそコスト）の構造が得られます。最小高さと最小重量の設計を切り替える方法については、セクション [3.3.11](/jp/3-konpnentorifarensu/3.3-cross-section/3.3.13-read-cross-section-table-from-file.md) を参照してください。プロファイルを面積で順序付けると、梁ごとに断面高さが大きく変動する構造になる可能性があります。

特定の梁断面が十分かどうかを確認するために、Karamba3DはEurocode 3 (EN 1993-1-1) に従って鋼梁の手続きを適用します（詳細は [\[5\]](broken://pages/-MCkEPufKvmRk8DHQDJm) 参照）。断面力の相互作用値$$k\_{yy}$$、$$k\_{yz}$$などは、EN 1993-1-1付録Bに従って計算されます。$$C\_{my}$$および$$C\_{mz}$$の値はデフォルトで最小0.9に制限されます。これは、横揺れが座屈を開始することを意味し、横揺れしないフレームの場合は安全側になります。入力プラグ「SwayFrame」が「False」に設定されている場合、0.9の制限は適用されません。

設計手続きは、軸力、二軸曲げ、ねじり、せん断力を考慮します。詳細はセクション [A.2.6](broken://pages/-MCkEPuemaDAtAo6cKE6) およびJukka Mäenpääの修士論文 [\[9\]](broken://pages/-MCkEPufKvmRk8DHQDJm) を参照してください。単一部材に対する座屈の影響をオフにしたり、座屈長さにユーザー定義の値を設定したりすることが可能です（セクション [3.1.10: 要素の修正](/jp/3-konpnentorifarensu/3.1-model/3.1.10-modify-element.md#buckling-property-for-cross-section-optimization) 参照）。

梁における圧縮軸力の悪影響は、グローバル（セクション [3.6.5](/jp/3-konpnentorifarensu/3.5-algorithms/3.5.5-buckling-modes.md) 参照）または個々の部材レベルで局所的に考慮できます。Karamba3Dで断面最適化に適用される手続きは部材レベルで機能します。この方法が有用な結果を提供するための重要な前提条件は、要素の現実的な座屈長さ$$l\_b$$の決定です。このために、以下の簡略化（常に安全側ではない）が適用されます: 要素の端点から始まり、その隣に進んで、3つ以上の要素に接続する最初のノードが追跡されます。座屈長さはこれら2つのノード間の距離として決定されます。並進に対して構造の残りの部分によって保持されている端点の場合、これは安全側にあります。梁が座屈する大きな部分（例: トラスのガーダー）の部材である場合、適用される座屈長さの決定は安全でない結果を生成します！グローバル座屈モードを計算することによって、これを常に確認する必要があります（セクション [3.6.5](/jp/3-konpnentorifarensu/3.5-algorithms/3.5.5-buckling-modes.md) 参照）。自由端の場合、座屈長さは2倍になります。細長い梁の圧縮軸力は、その許容最大応力を降伏限界以下に低減します。「ModelView」コンポーネントで利用率レベルを可視化すると、圧縮範囲で100%未満の値が表示されます。

Karamba3Dで適用される設計手続きは、横ねじれ座屈を考慮します。要素の横ねじれ座屈長さは、従来の座屈と同じ方法で計算されます。横ねじれ座屈の座屈長さは、「Modify Beam」コンポーネントの「BklLenLT」プロパティを介して手動で設定できます。

断面最適化の過程で、Karamba3Dは断面の局所座屈をチェックし、必要に応じて警告を発行します。局所座屈のチェックは、EN 1993-1-1に従ってクラス1から4への断面の分類を使用します。クラス4の断面は局所座屈の影響を受けやすいです。

断面の最適化中、軸力$$N\_{II}$$は、それぞれの荷重ケースおよび荷重ケースの組み合わせに対して行われた設定に従って更新されます。

## 「OptiCroSec」コンポーネントの包括的な入出力データの概要

### 入力構成の詳細

「**OptiCroSec**」コンポーネントには、構造断面の最適化を容易にするために、以下のように詳述されたいくつかの入力プラグがあります:

<table><thead><tr><th width="165">入力プラグ</th><th>説明</th></tr></thead><tbody><tr><td><strong>「Model」</strong></td><td>最適化される構造を指定します。</td></tr><tr><td><strong>「ElemIds」</strong></td><td>最適化のための特定の要素を識別します。指定されていない場合、モデル全体が最適化を受けます。</td></tr><tr><td><strong>「GroupIds」</strong></td><td>要素セット名または正規表現で定義可能な、一様な断面を持つべき要素のグループのIDをリストします。</td></tr><tr><td><strong>「CroSecs」</strong></td><td>「family」プロパティで識別される、好ましいものから最も好まれないものまでの順序付けられた断面ファミリーのリストを含みます。</td></tr><tr><td><strong>「MaxUtil」</strong></td><td>要素の目標検定比値を設定し、「1.0」は検定比1.0を表します。1.0未満の値は、不確実な初期設計段階の構造容量を予約するため、または特性荷重下で動作するために使用できます - その場合、この値は0.7未満である必要があります。</td></tr><tr><td><strong>「LCasesUtil」</strong></td><td>載荷能力を評価するための荷重ケースおよび組み合わせを指定し、終局限界状態を定義します。指定されていない場合、すべてのモデルケースが考慮されます。指定された名前の荷重ケースが存在しない場合、強度設計は行われません。</td></tr><tr><td><strong>「MaxDisp」</strong></td><td>最大構造たわみを制限します。数値、ベクトル、平面を受け入れ、各入力はすべての該当する変位荷重ケースに対して検証されます。<br>設計荷重で作業する場合、これらは使用性のために考慮すべきレベルよりおおよそ「1.4」倍上であることに留意してください。</td></tr><tr><td><strong>「LCasesDisp」</strong></td><td>最大節点および要素変位（開始、中間、終了）を制約する荷重ケースおよび組み合わせの名前を指定し、使用性限界状態を定義します。指定されていない場合、「<strong>LCasesUtil</strong>」設定がデフォルトになります。</td></tr></tbody></table>

「**Settings**」ボタンからアクセスできる追加の構成には以下が含まれます:

<table><thead><tr><th width="167">入力プラグ</th><th>説明</th></tr></thead><tbody><tr><td><strong>「MaxWork」</strong></td><td>実際のケースに対する各仮想荷重ケースの最大仮想仕事を設定します。</td></tr><tr><td><strong>「LCasesVirt」</strong></td><td>仮想荷重を指定する荷重ケースおよび荷重ケースの組み合わせの名前のリスト。</td></tr><tr><td><strong>「Util Iter」</strong></td><td>終局限界状態で十分な載荷能力を達成するための最大反復数を定義します。デフォルト値は5です。</td></tr><tr><td><strong>「Disp Iter」</strong></td><td>変位基準を満たすための最大反復数を指定します。最大変位の設計反復は、載荷能力の反復の前に来ます。</td></tr><tr><td><strong>「Disp Inc」</strong></td><td>進化する断面剛性による内部力の再分配を正確にモデル化するための、変位反復ごとの剛性マトリックス更新数を決定します。剛性マトリックスのセットアップおよび解決は計算量的に高価です。更新数が多いほど、断面剛性の変化による内部力の再分配をより正確にモデル化します。デフォルト値は2です。</td></tr><tr><td><strong>「Disp Tol」</strong></td><td>下から変位目標を達成するための許容係数を確立します。この値に指定された最大変位を乗じた値は、目標値と実際の変位値の間の許容差です。</td></tr><tr><td><strong>「NSamples」</strong></td><td>利用率評価のための梁に沿った点の数を指定し、デフォルトは3です。</td></tr><tr><td><strong>「Elast」</strong></td><td>弾性断面設計と塑性断面設計を切り替えます。「True」（デフォルト）に設定されている場合、断面設計は弾性範囲内で行われます。これは、与えられた荷重下で断面の最大結果応力が材料の降伏応力<span class="math">f_y</span>以下である必要があることを意味します。延性の高い材料（鋼など）の場合、断面の塑性容量を利用できます。断面形状に応じて、塑性容量は弾性容量より10%から20%高くなります。塑性断面設計を有効にするには、<strong>「Elast」</strong>を「False」に設定します。塑性断面設計を有効にすると、<strong>「モデルビュー」</strong>が100%を超える利用率レベルを報告しても驚かないでください。その理由は、Karamba3Dが線形弾性材料挙動を仮定するためです。</td></tr><tr><td><strong>「gammaM0」</strong></td><td>EN 1993-1-1に基づく、座屈によって破損が引き起こされない場合の材料安全係数。これは引張軸力またはゼロ座屈長さの場合に適用されます。デフォルト値は1.0です。一部のヨーロッパ諸国では、この係数は<strong>1.0</strong>を上回ります。gammaM0のデフォルト値はkaramba.iniファイルで設定できます。</td></tr><tr><td><strong>「gammaM1」</strong></td><td>EN 1993-1-1に基づく、座屈が破損を引き起こす場合の材料安全係数。これは圧縮軸力およびゼロでない座屈長さの場合に適用されます。デフォルト値は<strong>1.1</strong>であり、EN 1993-1-1の国家適用ドキュメントで異なる方法で指定される場合があります。gammaM1のデフォルト値はkaramba.iniファイルで設定できます。<strong>注意: Karamba3D 1.3.3では、gammaM1のデフォルト値は1.0でした！</strong></td></tr><tr><td><strong>「SwayFrame」</strong></td><td>横揺れ座屈の影響を受けやすいことを示し、保守的な設計結果を保証するためにデフォルトで「True」に設定されます。</td></tr></tbody></table>

### 出力データの説明

「**OptiCroSec**」コンポーネントの出力は、最適化された構造に関する重要なデータを提供します:

<table><thead><tr><th width="170">出力プラグ</th><th>説明</th></tr></thead><tbody><tr><td><strong>「Model」</strong></td><td>最適化された断面を持つ構造を返します</td></tr><tr><td><strong>「Info」</strong></td><td>最適化プロセス中に遭遇した問題を報告します。</td></tr><tr><td><strong>「Mass」</strong></td><td>最適化された構造の総質量を示します。</td></tr><tr><td><strong>「MaxDisp」</strong></td><td>最終設計反復後の最大変位を示します。</td></tr><tr><td><strong>「DEnergy」</strong></td><td>最適化後の構造の内部エネルギーを返します。</td></tr><tr><td><strong>「MaxUtilView」</strong></td><td>ファミリー内の最大断面が検定比ニーズに対して不十分であった要素インデックスをリストします。「ModelView」コンポーネントの「View」入力に直接接続できます。</td></tr><tr><td><strong>「MaxDispView」</strong></td><td>反復中に変位基準を満たさなかった要素インデックスをリストし、「ModelView」コンポーネントでの詳細な評価に役立ちます。「ModelView」コンポーネントの「View」入力に直接接続できます。</td></tr></tbody></table>

Karamba3Dで適用される設計手続きの目的は、もっともらしい断面選択をレンダリングすることです。これは、座屈長さの正しい決定などの仮定に基づいていることに留意してください。

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

{% file src="/files/7tii4y1JZIUJlsDLdVn1" %}

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

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

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

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

{% file src="/files/4zI8gWkXRXiDcxDkbwgN" %}

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

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

*追加の例は、Grasshopperのメインタブの Karamba3D > Help > Examples > Local Examples > Algorithms > Optimize Cross Section から確認できます。*
