# 3.5.10: 壳体的双向渐进结构优化 (BESO for Shells)

在[\[7\]](https://manual-1-3.karamba3d.com/chinese_1_3_3/appendix/bibliography)中可以找到Karamba3D中使用壳体双向渐进结构优化算法的详细描述，图3.5.10.1为一个案例，该案例显示在一座矩形墙的每个上角处都承受两个点荷载。BESO过程的结果是图左侧所示的X形结构。

![图3.5.10.1：矩形板材在两个角荷载下的双向渐进结构优化（BESO）。](https://2244769574-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M9XteyGDAU3Odla53cC%2Fsync%2Fbc3394ffa3780e0015d443d642d853f529be775a.PNG?generation=1591871199939700\&alt=media)

#### 这些是控制优化过程的主要参数：

|                   | "                                                                                                             |
| ----------------- | ------------------------------------------------------------------------------------------------------------- |
| **"Model（模型）"**   | 需优化的模型。                                                                                                       |
| **"ElemIds"**     | 参与优化的壳体标识符列表。如果列表为空（默认），则包括所有壳体程序。                                                                            |
| **"LCases"**      | 需考虑的荷载工况列表。零是首个工况的索引。考虑几个工况的总影响等于将它们各自的影响添加到一个元件上。                                                            |
| **"TargetRatio"** | 结构中壳体的目标质量（优化后质量）与其初始质量的比值。在确定结构中壳体的初始质量时，不论激活状态如何，结构的所有壳体单元都要纳入计算。在目标结构中，只有被激活的元素质量被纳入计算。这样确保用户可以串联应用BESO组件。 |
| **"MaxIter"**     | 最大迭代次数。                                                                                                       |

#### &#x5728;**“Settings（设置）”**&#x5B50;菜单下，这些附加选项可用于进一步自定义优化过程：

|                 |                                                                                                                                                                                                                                                                                              |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **"ER"**        | 优化比率（evolutionary ratio）的缩写，它以两个连续的步骤定义优化结构体积$$V\_i$$和$$V\_{i+1}$$之间的比率：$$V\_{i+1} = V{i} \cdot (1\pm ER)$$。“ER”的符号取决于应添加还是删除元素。如果$$ER<0$$，这是默认值，“ER”将自动设置为：$$ER = (1-TargetRatio)/MaxIter + AR\_{max}/2$$。如&#x679C;**“ER”**&#x503C;太小，则无法&#x5728;**“MaxIter”**&#x6B65;骤中达到优化结构的目标质量。        |
| **"ARmax"**     | 每一步骤要添加的最大元素数量与所有壳体元素之间的比率。                                                                                                                                                                                                                                                                  |
| **"Nhist"**     | 用于计算收敛标准步骤间的迭代次数。                                                                                                                                                                                                                                                                            |
| **"Conv"**      | 两次迭代$$N\_{hist}$$周期之间质量的相对变化，除了下面是假定的收敛。                                                                                                                                                                                                                                                     |
| **"Rmin"**      | 为了避免形成棋盘图案，使用一种过滤方案来计算单体元素的适合程度（请参阅[\[7\]](https://manual-1-3.karamba3d.com/chinese_1_3_3/appendix/bibliography)，第3.3.2节）。$$R\_{min}$$以米为单位定义影响半径，从而确定元素的敏感程度。因此，重要的是根据平均元件尺寸选择该值。如果$$R\_{min} <0$$（默认值），则将$$R\_{min}$$设置为等于特征元素的长度，该元素的长度计算为$$(totalArea/numberOfElements)^{0.5} \cdot 2$$。 |
| **"Rexp"**      | 确定加权元素中心距离在$$R\_{min}$$内节点处的应变能以计算元素的灵敏度。其重量取决于$$w =(R\_{ij}/\sum R\_{ij})^{R\_{exp}}$$。在$$R\_{ij}=R\_{min}-R$$ 中，$$R$$ 是样本节点与元素中心之间的距离。$$\sum R\_{ij}$$是所有距离元素中心比$$R\_{min}$$距离近的节点中心距离总和。                                                                                                  |
| **"KillThick"** | 借助所谓的“soft kill（柔性终止）”算法，适用于壳体程序的BESO（双向渐进结构优化）。通过降低壳体厚度，使其变薄，而不是从模型中将其删除。在使&#x7528;**“KillThick（减少厚度）”**&#x8F93;入端口时，可选择默认值 0.00001 m 以外的其他值。                                                                                                                                               |

#### **“BESOShell”**&#x8FD0;算器的输出端口反馈以下数据：

|                 |                                                                                                                                    |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **"Model"**     | BESO优化产生的模型。                                                                                                                       |
| **"ModelHist"** | 中间模型列表——BESO过程的每个迭代步骤有一个中间模型列表。                                                                                                    |
| **"CHist"**     | 驱动BESO程序的结构体积加权顺应性历史。当输&#x5165;**“Quick Graph（快速图表）”**&#x8FD0;算器时，可检查BESO程序是否收敛：图表最后应为水平。如果不是这种情况，请尝试使用较小&#x7684;**“ER”**&#x503C;。 |
| **"VHist"**     | 列出要优化壳体体积变化值的列表。                                                                                                                   |
| **"Info"**      | 万一出现问题，反馈有关解决过程的信息。                                                                                                                |
