You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将AeroProblem与DVConstraints的设计变量和约束添加至OpenMDAO?

用OpenMDAO替代pyOptSparse添加MACH-Aero设计变量与约束

目前MACH-Aero没有提供类似pyOptSparse中addVariablesPyOpt、addConstraintsPyOpt的单行函数,需要手动将AeroProblem、DVGeometry的设计变量和DVConstraints的约束映射到OpenMDAO模型中,具体实现方法如下:

1. 添加设计变量

AeroProblem设计变量

先通过getDesignVariables()获取AeroProblem的变量参数,再在OpenMDAO模型中逐个添加设计变量:

# 获取AeroProblem的设计变量元数据
ap_dvs = ap.getDesignVariables()
for dv_name, dv_info in ap_dvs.items():
    # 替换为你封装AeroProblem分析的组件路径,例如'aero_comp'
    prob.model.add_design_var(f'aero_comp.{dv_name}',
                             lower=dv_info['lower'],
                             upper=dv_info['upper'],
                             ref=dv_info.get('ref'),
                             ref0=dv_info.get('ref0'))

DVGeometry设计变量

先获取DVGeometry的变量名称和边界参数,再关联到几何变形组件的输出:

# 获取DVGeometry的设计变量名称
dvgeo_dv_names = DVGeo.getVarNames()
for dv_name in dvgeo_dv_names:
    # 替换为你封装几何变形逻辑的组件路径,例如'geo_comp'
    prob.model.add_design_var(f'geo_comp.{dv_name}',
                             lower=DVGeo.getLower(dv_name),
                             upper=DVGeo.getUpper(dv_name),
                             ref=DVGeo.getRef(dv_name),
                             ref0=DVGeo.getRef0(dv_name))

2. 添加DVConstraints约束

先封装DVConstraints的约束计算逻辑为OpenMDAO组件,输出约束值后,再添加约束到模型:

# 获取DVConstraints的约束元数据
dvcon_cons = DVCon.getConstraints()
for con_name, con_info in dvcon_cons.items():
    # 替换为你封装约束计算的组件路径,例如'constraint_comp'
    prob.model.add_constraint(f'constraint_comp.{con_name}',
                             lower=con_info['lower'],
                             upper=con_info['upper'],
                             ref=con_info.get('ref'),
                             ref0=con_info.get('ref0'))

注意事项

  • 需提前将AeroProblem分析、几何变形、约束计算逻辑分别封装为OpenMDAO的ExplicitComponent或ImplicitComponent,确保变量和约束的路径与代码中的组件名称匹配。
  • 若使用ref和ref0参数,需确认MACH-Aero返回的元数据中包含这些值,若没有可根据需求自行设置。

内容的提问来源于stack exchange,提问作者vishnu sankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:34:55