3. ACP模块与Workbench协同环境

ACP(Ansys Composite PrepPost)并不是一个独立于 Ansys 体系之外的软件,而是以“前后处理插件”的形式嵌入 Workbench 项目流程。理解 ACP-Pre、ACP-Post 与 Mechanical 三者的集成关系,是复合材料仿真能否顺利推进的前提。很多初学者在第一次做复合材料分析时,会把 ACP 当成一个独立建模工具,结果在数据传递环节反复出错——根本原因就是没有理清“谁负责什么、数据往哪里流”。

三个角色的分工

在 Workbench 的工程数据(Engineering Data)与项目原理图(Project Schematic)框架下,复合材料分析通常涉及三个核心单元:

  • ACP-Pre:负责复合材料铺层定义。在这里建立铺层坐标系、定义单向带/织物材料属性、创建铺层序列(Layup)、生成壳单元或实体单元的截面属性,并输出网格与铺层信息。
  • Mechanical:负责结构求解设置。接收 ACP-Pre 传递过来的网格与截面属性,施加边界条件、载荷、接触,调用求解器完成计算,输出位移、应力、应变等结果。
  • ACP-Post:负责复合材料结果后处理。读取 Mechanical 的求解结果,按铺层逐层显示纤维方向应力、层间剪切、失效准则(如 Tsai-Wu、Hashin、最大应力)等,是判断铺层是否安全的关键环节。

三者的关系可以概括为:ACP-Pre 定义“是什么材料、怎么铺”,Mechanical 回答“受力后怎么样”,ACP-Post 回答“每一层是否安全”。数据在它们之间单向流动,形成一条清晰的处理链。

数据传递路径

在 Workbench 项目原理图中,典型的复合材料分析流程是:Engineering Data → ACP-Pre → Mechanical → ACP-Post。数据传递的具体内容如下:

  • Engineering Data → ACP-Pre:传递材料本构参数,包括弹性模量 E1/E2/E3、剪切模量 G12/G13/G23、泊松比 ν12/ν13/ν23,以及强度参数 Xt/Xc/Yt/Yc/S 等。这些参数是铺层定义的基础。
  • ACP-Pre → Mechanical:传递网格模型、单元类型、截面属性(Shell Section 或 Solid Section)、铺层角度与厚度分布。Mechanical 中看到的“复合材料壳”实际上是由 ACP-Pre 生成的。
  • Mechanical → ACP-Post:传递求解后的位移场、应力场、应变场。ACP-Post 在此基础上按铺层逐层提取结果,并进行失效判据计算。

需要特别注意的是:ACP-Pre 与 Mechanical 之间的数据传递是“网格+截面”级别的,而不是简单的几何传递。这意味着如果 ACP-Pre 中的网格与 Mechanical 中的网格不一致,求解会直接报错。因此,通常建议在 ACP-Pre 中完成网格划分,再传递给 Mechanical,而不是反过来。

ACP-Pre / Mechanical / ACP-Post 集成关系与数据传递 Engineering Data 材料本构参数 ACP-Pre 铺层定义 / 截面属性 Mechanical 边界条件 / 求解 ACP-Post 逐层结果 / 失效判据 材料参数 网格+截面 位移/应力/应变 项目文件管理 .wbpj / .acp / 结果文件 关联 关键约束: 1. ACP-Pre 与 Mechanical 的网格必须一致,否则求解报错;建议在 ACP-Pre 中完成网格划分。 2. 材料参数在 Engineering Data 中定义,ACP-Pre 中引用,避免重复输入导致不一致。 3. ACP-Post 读取的是 Mechanical 的求解结果,需确保求解已成功完成且结果文件完整。

工程化建模入口

在 Workbench 中启动复合材料分析,最规范的入口是:从 Toolbox 中拖入 ACP-Pre 到项目原理图,再拖入 Static Structural(或 Modal、Harmonic Response 等)到 ACP-Pre 右侧,最后拖入 ACP-Post 到 Static Structural 右侧。这样系统会自动建立数据连接,无需手动配置。

如果先建立了 Static Structural,再想加入 ACP-Pre,则需要手动将 ACP-Pre 的“Setup”单元格与 Static Structural 的“Model”单元格连接。这种手动连接容易遗漏,导致 Mechanical 中看不到复合材料截面。因此,推荐“先 ACP-Pre,后 Mechanical,再 ACP-Post”的顺序。

在 ACP-Pre 中,建模的核心操作包括:

  1. 导入或创建几何模型(通常从 Mechanical 或 SpaceClaim 传递过来)。
  2. 定义铺层坐标系(Rosette),确定纤维参考方向。对于复杂曲面,可能需要多个 Rosette。
  3. 创建铺层序列(Layup),指定每层的材料、角度、厚度。例如:[0/45/-45/90]s 表示对称铺层,共 8 层。
  4. 生成壳单元截面(Shell Section)或实体单元截面(Solid Section),并分配给对应几何区域。
  5. 导出网格与截面数据到 Mechanical。

一个常见的教学示例参数:T300/Epoxy 单向带,E1=135 GPa,E2=10 GPa,G12=5 GPa,ν12=0.3,单层厚度 0.125 mm,铺层 [0/45/-45/90]s,总厚度 1 mm。在 ACP-Pre 中按此定义后,传递到 Mechanical 中即可看到壳截面属性。

项目文件管理

Workbench 项目文件以 .wbpj 为工程入口,内部包含多个子文件。复合材料分析涉及的关键文件包括:

  • .wbpj:Workbench 项目文件,记录项目原理图、单元连接关系、文件路径。
  • .acp:ACP-Pre 的铺层定义文件,保存 Rosette、Layup、Section 等信息。
  • .mechdb:Mechanical 的模型数据库,保存边界条件、载荷、求解设置。
  • .rst:求解结果文件,ACP-Post 读取此文件进行后处理。

工程实践中,建议将项目文件与几何文件、材料数据放在同一目录下,并使用相对路径。如果移动项目文件夹,Workbench 可能因绝对路径失效而找不到 ACP 文件。此时需要在 Workbench 中重新指定 ACP-Pre 的 Setup 文件路径。

实用建议:在项目初期就建立清晰的文件夹结构,例如 Project/Geometry/、Project/Material/、Project/ACP/、Project/Results/。每次修改铺层后,重新运行 ACP-Pre 并更新 Mechanical 中的模型,避免使用旧网格导致结果不一致。
常见错误:在 Mechanical 中直接修改网格或几何,而不回到 ACP-Pre 更新。这会导致 ACP-Post 读取的结果与铺层定义不匹配,失效判据计算出现异常。正确做法是:任何几何或网格变更,都从 ACP-Pre 重新导出。

理解 ACP-Pre、Mechanical、ACP-Post 的集成关系与数据传递路径,是后续所有复合材料仿真操作的基础。只有把“谁定义、谁求解、谁后处理”这条链理顺,才能在遇到报错时快速定位是材料参数、网格传递还是结果读取的问题。