4. 响应定义与提取
在OptiStruct的优化流程中,响应(Response)是连接“设计变量”与“优化目标/约束”的桥梁。设计变量改变结构形状或尺寸,求解器计算结构性能,而响应卡片则负责把求解结果中我们关心的那部分量提取出来,交给优化算法判断。因此,响应定义得是否正确、提取方式是否恰当,直接决定了优化能否收敛、结果是否可信。本节围绕质量、刚度(柔度)、频率、应力、位移这几类最常见的结构响应,说明它们在OptiStruct中的卡片设置方式与使用要点。
响应卡片的基本结构
OptiStruct中所有响应都通过DESRESP(设计响应)卡片定义,其基本格式为:
DESRESP, ID, TYPE, LABEL, ...
属性字段(如节点、单元、属性、工况等)
其中ID是响应的唯一编号,后续在DRESP1或目标/约束卡片中引用;TYPE决定提取哪一类物理量,例如MASS、COMP、FREQ、STRESS、DISP等;LABEL是用户可读的名称。属性字段则指定具体的对象范围,比如节点集、单元集、属性集或工况编号。理解这张卡片的字段含义,是正确设置所有响应的前提。
质量响应:MASS与VOLUME
质量响应用于控制结构总质量或指定区域的质量,是最基础的响应之一。典型设置如下:
DESRESP, 10, MASS, TOTAL_MASS
DESRESP, 11, VOLUME, PART_VOL
PSHELL, 100
第一条定义整体质量响应,不指定属性时默认统计整个模型;第二条通过PSHELL限定只统计属性号为100的壳单元区域体积。质量响应常用于“最小化质量”目标,或作为“质量不超过某值”的约束。需要注意的是,若模型包含非结构质量(如集中质量单元),应确认是否纳入统计范围,避免优化后实际质量与预期不符。
刚度响应:COMP(柔度)
刚度在OptiStruct中通常以柔度(Compliance)形式表达,柔度越小表示刚度越大。柔度响应通过COMP类型定义:
DESRESP, 20, COMP, STIFF_COMP
LOAD, 1
这里LOAD指定载荷工况编号。柔度响应一般作为最小化目标,或作为“柔度不超过上限”的约束。若模型有多个工况,可以分别定义多个柔度响应,再通过加权或分别约束的方式处理。需要强调的是,柔度是全局量,反映整体变形能,不能直接对应某个局部刚度,若关注局部刚度应改用位移响应。
频率响应:FREQ
频率响应用于提取模态分析得到的各阶固有频率,设置方式为:
DESRESP, 30, FREQ, MODE1_FREQ
MODE, 1
DESRESP, 31, FREQ, MODE2_FREQ
MODE, 2
MODE字段指定模态阶次。频率响应常用于避免共振,例如约束一阶频率不低于某值,或使某阶频率远离激励频率。实际使用中要注意:优化过程中结构拓扑或尺寸变化可能导致模态顺序发生交换,因此建议对关心的频段内多阶模态分别定义响应并同时约束,而不是只盯住“第一阶”。此外,频率响应通常需要配合模态分析工况(EIGRL或EIGRA)使用。
应力响应:STRESS
应力响应用于提取单元或节点的应力值,常见设置如下:
DESRESP, 40, STRESS, MAX_STRESS
PSHELL, 100
LOAD, 1
该响应统计属性100所辖单元在工况1下的最大应力。应力响应可作为约束,例如“最大应力不超过材料许用应力”。需要特别注意的是,OptiStruct中应力响应默认提取的是单元应力,对于壳单元通常取上/下表面及中面的组合值,具体取决于STRESS卡片的VONMISES或DIRECT等选项。若关注疲劳或局部屈服,应明确是取Von Mises等效应力还是某个方向的正应力,并在卡片中相应设置。
位移响应:DISP
位移响应用于提取指定节点的位移分量,设置方式为:
DESRESP, 50, DISP, TIP_DISP
NODE, 2001
COMP, 3
LOAD, 1
其中NODE指定节点号,COMP指定分量(1/2/3对应X/Y/Z平动,4/5/6对应转动),LOAD指定工况。位移响应常用于控制局部变形,例如“悬臂端Z向位移不超过2mm”。与柔度相比,位移响应更局部、更直观,适合对特定位置有明确变形要求的场景。
响应定义中的常见问题与检查要点
实际设置响应时,以下几类问题最容易导致优化失败或结果异常:一是响应ID重复或未被目标/约束卡片正确引用;二是工况编号与LOAD卡片不匹配,导致提取到空值;三是节点集或属性集范围过大或过小,使响应失去局部意义;四是频率响应未考虑模态交换,约束失效。建议在正式优化前,先用一次静力或模态分析验证各响应卡片能否正常输出,并检查响应值是否与手工估算或经验判断一致。
响应提取的验证与调试
响应卡片设置完成后,不建议直接进入优化。更稳妥的做法是先做一次“响应提取验证”:将优化任务暂时改为仅计算一次分析,在OUTPUT中请求输出各响应值,然后检查.out或.h3d文件中的响应结果。例如,质量响应应等于模型总质量或指定区域质量;柔度响应应等于载荷向量与位移向量的点积;一阶频率应与模态分析结果一致。若发现响应值为零或明显异常,优先检查工况编号、节点/属性集引用和分量设置。只有确认响应提取正确后,再将其接入目标函数或约束,才能保证优化过程稳定可靠。
DRESP2或加权方式组合,而不是只定义一个“综合响应”。这样在结果解读时能清楚看到每个工况的响应变化,便于判断约束是否真正起作用。