3. 多工况下的响应类型与目标函数构建

在OptiStruct的优化体系中,响应(Response)是连接“设计变量”与“优化目标/约束”的桥梁。单工况优化时,我们通常只关心一个柔度值或一个频率值;而多工况优化中,同一结构会同时承受弯曲、扭转、冲击、振动等不同载荷路径,此时必须为每个工况分别定义响应,再通过加权、包络或归一化策略把它们组合成统一的目标函数。本节围绕柔度、频率、位移、应力四类核心响应的定义方法,以及多工况加权目标函数的构建策略展开。

一、四类核心响应的定义方式

OptiStruct中响应通过DRESP1卡片定义,其RTYPE字段决定响应类型。理解每类响应的物理含义与提取方式,是构建目标函数的前提。

柔度响应(Compliance):柔度是结构在载荷作用下应变能的两倍,即 C = F·U,其中F为载荷向量,U为位移向量。柔度越小表示结构越刚。在OptiStruct中,柔度响应通过RTYPE=COMP定义,通常配合ATTB字段指定工况编号。柔度是拓扑优化中最常用的目标,因为它对设计变量的灵敏度计算稳定、数值光滑。需要注意的是,柔度响应必须与载荷工况绑定,一个工况对应一个柔度值。

频率响应(Frequency):频率响应通过RTYPE=FREQ定义,用于提取结构的固有频率。在模态分析中,OptiStruct会输出前若干阶模态,频率响应可以指定提取第几阶(通过MODE字段)。频率响应常用于约束结构的低阶频率不低于某阈值,避免共振。频率响应的灵敏度计算涉及特征值导数,对网格质量和约束条件较敏感,通常需要配合MINDIM等制造约束使用。

位移响应(Displacement):位移响应通过RTYPE=DISP定义,用于提取指定节点在指定方向的位移分量。定义时需要指定节点ID(NODE字段)和方向(COMP字段,1/2/3对应X/Y/Z)。位移响应常用于控制关键点的变形量,例如悬臂梁自由端挠度、支架安装点位移等。位移响应是局部量,对网格密度和节点位置敏感,定义时应选择具有工程意义的节点。

应力响应(Stress):应力响应通过RTYPE=STRESS定义,用于提取单元或节点的应力值。OptiStruct支持多种应力类型,包括VON(Von Mises应力)、MAXS(最大主应力)、MINS(最小主应力)等。应力响应通常用于约束结构最大应力不超过材料许用应力。由于应力是局部量且对网格敏感,在优化中常采用PNORM方法进行全局化处理,避免因单个单元应力奇异导致优化震荡。

定义响应时,建议先明确“这个响应要控制什么物理量”,再选择对应的RTYPE。柔度控制整体刚度,频率控制动态特性,位移控制局部变形,应力控制强度安全。四类响应可以同时存在于一个优化任务中,但目标函数通常只选其中一类或两类进行加权。

二、多工况加权目标函数的构建策略

多工况优化的核心难点在于:不同工况的响应量纲不同、数值量级差异大,直接相加会导致某一工况主导优化方向。因此需要引入加权策略。OptiStruct提供了多种目标函数构建方式,常用的有以下三种。

加权柔度法(Weighted Compliance):这是拓扑优化中最经典的多工况目标函数。假设有N个工况,每个工况的柔度为Ci,权重为wi,则目标函数为:

Minimize: C_total = Σ w_i · C_i
Subject to: Σ w_i = 1, w_i ≥ 0

权重wi反映各工况的重要程度。例如某支架需同时承受垂直载荷和侧向载荷,若垂直工况更关键,可设w1=0.7,w2=0.3。在OptiStruct中,通过DESOBJ卡片引用一个DRESP1组合,或使用DRESP2定义加权公式。需要注意的是,柔度值本身量级可能相差很大,建议先单独运行各工况,观察柔度数值范围,再调整权重使各工况贡献均衡。

归一化加权法:当各工况柔度差异过大时,直接加权会导致小柔度工况被忽略。此时可先对每个工况的柔度进行归一化处理:

C_i_norm = C_i / C_i_initial

其中Ci_initial为初始设计的柔度值。归一化后各工况柔度都在1附近,再按权重相加。这种方法在OptiStruct中可通过DRESP2结合DEQATN方程实现。归一化加权法能有效避免量级差异带来的数值问题,是多工况拓扑优化的推荐做法。

包络法(Envelope):对于位移或应力约束,有时需要控制所有工况中的最坏情况。包络法不进行加权求和,而是取各工况响应的最大值作为目标或约束:

Maximize: max(D_i) ≤ D_allow

OptiStruct中可通过DRESP2的MAX函数实现包络。包络法适用于安全关键结构,例如压力容器需保证任何工况下应力都不超过许用值。但包络函数不可导,优化时可能收敛较慢,建议配合BETA参数进行光滑化处理。

三、目标函数构建的实操要点

在实际操作中,构建多工况目标函数需要遵循以下流程。首先,在HyperMesh中完成各工况的载荷和边界条件定义,确保每个工况的SUBCASE编号清晰。然后,在OptiStruct面板中创建DRESP1响应,每个工况的柔度、位移或应力分别定义。接着,使用DRESP2定义加权组合,通过DEQATN方程描述权重关系。最后,在DESOBJ中引用该组合响应作为目标函数,并在DCONSTR中定义约束。

以一个悬臂梁多工况优化为例:梁长500mm,截面50mm×50mm,材料钢。工况1为自由端垂直向下力1000N,工况2为自由端侧向力500N。初始设计柔度C1=2.5J,C2=0.8J。若直接加权w1=0.5、w2=0.5,则工况1贡献占比约76%,工况2被弱化。采用归一化后,C1_norm=1.0,C2_norm=1.0,加权后各占50%,优化结果更均衡。最终优化后柔度C1=1.2J,C2=0.4J,总柔度下降约52%。

权重设置没有绝对标准,需结合工程经验。建议先进行灵敏度分析,观察各工况柔度对设计变量的敏感程度,再调整权重。若某工况柔度对设计变量不敏感,即使权重很大,优化效果也有限。

四、响应与目标函数的对应关系

为便于快速查阅,下表总结了四类响应与常用目标/约束的对应关系:

响应类型RTYPE典型目标典型约束注意事项
柔度COMP最小化总柔度柔度上限需绑定工况,灵敏度稳定
频率FREQ最大化低阶频率频率下限对网格敏感,需制造约束
位移DISP最小化关键点位移位移上限局部量,节点选择关键
应力STRESS最小化最大应力应力上限局部量,建议PNORM全局化

在多工况优化中,目标函数通常只选一类响应进行最小化或最大化,其余响应作为约束。例如以加权柔度为目标,同时约束频率不低于50Hz、关键点位移不超过2mm、最大应力不超过200MPa。这种“单目标+多约束”的配置在工程中最常见,也最容易收敛。

多工况响应定义与加权目标函数构建 工况1 垂直载荷 1000N 工况2 侧向载荷 500N 工况3 扭转载荷 200N·m 柔度响应 C₁ RTYPE=COMP 柔度响应 C₂ RTYPE=COMP 柔度响应 C₃ RTYPE=COMP 归一化 C₁/C₁₀ 消除量级差异 归一化 C₂/C₂₀ 消除量级差异 归一化 C₃/C₃₀ 消除量级差异 加权目标函数 C_total = w₁·C₁_norm + w₂·C₂_norm + w₃·C₃_norm 约束条件 频率 ≥ 50Hz 位移 ≤ 2mm · 应力 ≤ 200MPa 优化结果 总柔度下降 52% · 频率 58Hz · 最大位移 1.6mm · 最大应力 178MPa ■ 蓝色:工况定义 ■ 绿色:响应提取 ■ 橙色:归一化处理

上图展示了从三个工况出发,分别定义柔度响应、进行归一化处理、再按权重合成总目标函数的完整数据流。图中同时标注了约束条件与优化结果,便于理解各环节的输入输出关系。实际应用中,工况数量可能更多,但构建逻辑一致:先分后合,先归一后加权,先目标后约束。