材料力学仿真软件:MSC Nastran_(18).多体动力学分析
多体动力学分析
作为材料力学仿真软件中的核心工具,在工程领域得到了广泛应用

1. 多体动力学分析的基本原理
多体动力学分析的主要目标是将复杂的机械系统划分为多个相对独立的部分,并将其划分为刚性或柔性体。揭示这些刚性或柔性体之间的连接关系(如关节、约束等),从而揭示其动态行为。每个刚性或柔性体的运动可以用牛顿-欧拉方程描述;而连接关系则由约束方程定义。具体来说,多体动力学分析包括以下几个步骤:
系统建模 :定义系统中的各个刚性或柔性体,以及它们之间的连接关系。
动力学方程 :根据牛顿-欧拉方程和约束方程,建立系统的动力学方程。
数值求解 :使用数值方法求解动力学方程,获得系统的运动状态。
结果分析 :对求解结果进行后处理,分析系统的动态响应。
1.1 系统建模
在多体动力学分析中占据核心地位的是系统建模这一关键步骤。为了准确描述系统的运动学特性,在对各刚性或柔性单元进行建模时需要明确其几何参数和力学参数;随后通过约束关系将这些单元关联起来以构建完整的系统模型。在实际应用中通常采用旋转关节和平移关节等多种连接方式来实现系统的动态行为描述;其中最常见的是旋转关节和平移副以及球形副这几种基本连接形式
1.1.1 刚性体建模
刚性体建模主要涉及以下几个参数:
几何形状 :可以是简单的几何体(如立方体、圆柱体)或复杂的几何模型。
质量 :体的质量。
惯性矩 :体的惯性矩,用于描述体在旋转时的惯性。
质心位置 :体的质心相对于参考坐标系的位置。
1.1.2 柔性体建模
建立柔性体模型时需涉及材料的弹性系数、阻尼比等因素;常用有限元方法进行求解。
在实际应用中,建立柔性体模型通常遵循以下步骤:
第一步是定义物体的基本属性;
第二步是划分网格;
第三步是施加初始条件;
第四步是设置边界条件;
第五步是求解方程组;
第六步是验证结果的一致性。
定义网格 :使用有限元方法定义体的网格。
定义材料属性 :为每个网格单元定义材料属性,如弹性模量、泊松比等。
表征体的刚度特性和阻尼特性 :基于刚体动力学方程的求解过程能够表征响应特性和耗能特性。
1.2 动力学方程
多体系统的动力学方程可以通过基于牛顿-欧拉模型的方法进行构建。该模型不仅能够精确描述各物体的动力学行为,并且能够有效处理复杂的运动状态分析问题。其中的约束关系则用于定义物体之间的连接条件,在保证系统稳定性的前提下实现了精确的动力学模拟。
1.2.1 牛顿-欧拉方程
牛顿-欧拉方程可以表示为:
\mathbf{M} \ddot{\mathbf{q}} + \mathbf{C} \dot{\mathbf{q}} + \mathbf{K} \mathbf{q} = \mathbf{F}
其中:
\mathbf{M}是质量矩阵。
\mathbf{C}是阻尼矩阵。
\mathbf{K}是刚度矩阵。
\mathbf{q}是广义坐标向量。
\mathbf{F}是外力向量。
1.2.2 约束方程
约束方程可以表示为:
\mathbf{g}(\mathbf{q}, t) = 0
其中:
\mathbf{g}是约束函数。
\mathbf{q}是广义坐标向量。
t是时间。
1.3 数值求解
数值计算在多体动力学分析中扮演着核心角色,在解决动力学方程时往往采用迭代算法,在工程实践中常见的求解方法涵盖直接迭代法、Newton-Raphson法以及改进型混合算法等,在实际应用中这些算法各有优劣
显式时间积分法 :如中心差分法,适用于高速、短时的动态分析。
隐式时间积分法 :如Newmark法,适用于低速、长时间的动态分析。
1.4 结果分析
涵盖一系列对系统运动状态、应力和应变的后续分析工作。常见的分析方法主要包括:
时间历程分析 :分析系统在不同时间点的运动状态。
频域分析 :分析系统的频率响应特性。
2. 在MSC Nastran中的多体动力学分析
MSC Nastran集成了先进而全面的多体动力学分析功能。通过建立刚性体、柔性体、关节以及约束来实现多体系统的建模与分析过程。本节将深入讲解如何在 MSC Nastran 中进行二次开发以实现多体动力学分析。
2.1 定义刚性体
在 MSC Nastran 软件平台内, 刚性体的建立可通过构建节点集合并配置单元结构来完成. 以下是一个简单的刚性体定义示例:
BEGIN BULK
GRID, 1, 0.0, 0.0, 0.0
GRID, 2, 1.0, 0.0, 0.0
GRID, 3, 0.0, 1.0, 0.0
GRID, 4, 1.0, 1.0, 0.0
CQUAD4, 1, 1, 2, 4, 3
PBAR, 1, 0.1, 0.1
MAT1, 1, 1.0E7, 0.0, 0.0
PBUSH, 1, 1.0E6, 0.0, 0.0
MBODY, 1, 1, 2, 3, 4
2.2 定义柔性体
柔性体可以通过定义有限元模型来达成。下述提供一个简化的柔性体定义示例:
BEGIN BULK
GRID, 1, 0.0, 0.0, 0.0
GRID, 2, 1.0, 0.0, 0.0
GRID, 3, 0.0, 1.0, 0.0
GRID, 4, 1.0, 1.0, 0.0
CQUAD4, 1, 1, 2, 4, 3
PSHELL, 1, 1, 0.1, 0.1
MAT1, 1, 1.0E7, 0.0, 0.0
MBODY, 1, 1, 2, 3, 4
2.3 定义关节和约束
articulations and constraints can be achieved by establishing connections through defined relationships. 基于这些连接关系的定义, 我们可以构建一个简单的articulation示例: 例如, 在此示例中, 我们展示了如何通过指定关键参数来配置articulation组件.
BEGIN BULK
GRID, 1, 0.0, 0.0, 0.0
GRID, 2, 1.0, 0.0, 0.0
GRID, 3, 0.0, 1.0, 0.0
GRID, 4, 1.0, 1.0, 0.0
CQUAD4, 1, 1, 2, 4, 3
PSHELL, 1, 1, 0.1, 0.1
MAT1, 1, 1.0E7, 0.0, 0.0
MBODY, 1, 1, 2, 3, 4
MBODY, 2, 3, 4
MJOINT, 1, 1, 2, ROTA, 0.0, 0.0, 1.0
2.4 建立动力学方程
基于 MSC Nastran平台中...
BEGIN BULK
GRID, 1, 0.0, 0.0, 0.0
GRID, 2, 1.0, 0.0, 0.0
GRID, 3, 0.0, 1.0, 0.0
GRID, 4, 1.0, 1.0, 0.0
CQUAD4, 1, 1, 2, 4, 3
PSHELL, 1, 1, 0.1, 0.1
MAT1, 1, 1.0E7, 0.0, 0.0
MBODY, 1, 1, 2, 3, 4
MBODY, 2, 3, 4
MJOINT, 1, 1, 2, ROTA, 0.0, 0.0, 1.0
MASS, 1, 1.0
DAMP, 1, 0.1
2.5 数值求解
通过 MSC Nastran 的平台进行数值计算过程时,可以通过设置特定的参数配置以及选择不同的计算策略来实现有效的模拟分析.我们可以通过以下示例来说明基本的数值计算过程.
BEGIN BULK
GRID, 1, 0.0, 0.0, 0.0
GRID, 2, 1.0, 0.0, 0.0
GRID, 3, 0.0, 1.0, 0.0
GRID, 4, 1.0, 1.0, 0.0
CQUAD4, 1, 1, 2, 4, 3
PSHELL, 1, 1, 0.1, 0.1
MAT1, 1, 1.0E7, 0.0, 0.0
MBODY, 1, 1, 2, 3, 4
MBODY, 2, 3, 4
MJOINT, 1, 1, 2, ROTA, 0.0, 0.0, 1.0
MASS, 1, 1.0
DAMP, 1, 0.1
SOL 101
TIME 0.0, 10.0, 0.1
METHOD, 1, 1, 100
2.6 结果分析
通过在MSC Nastran软件中设置适当的输出参数配置并结合后续处理功能来实现的结果评估过程将有助于全面了解系统行为。例如,在实际操作中可以通过以下步骤进行结果分析:
BEGIN BULK
GRID, 1, 0.0, 0.0, 0.0
GRID, 2, 1.0, 0.0, 0.0
GRID, 3, 0.0, 1.0, 0.0
GRID, 4, 1.0, 1.0, 0.0
CQUAD4, 1, 1, 2, 4, 3
PSHELL, 1, 1, 0.1, 0.1
MAT1, 1, 1.0E7, 0.0, 0.0
MBODY, 1, 1, 2, 3, 4
MBODY, 2, 3, 4
MJOINT, 1, 1, 2, ROTA, 0.0, 0.0, 1.0
MASS, 1, 1.0
DAMP, 1, 0.1
SOL 101
TIME 0.0, 10.0, 0.1
METHOD, 1, 1, 100
SPC, 1, 123456, 0.0
SPC, 2, 123456, 0.0
3. 多体动力学分析的二次开发
多体动力学分析项目的二次开发工作可通过创建用户自编程序(User Subroutines)来实现这一目标
3.1 编写用户子程序
一般性地而言,在编写小子程序时通常会采用 Fortran 编写方式。例如,请参考以下是一个简单的 Fortran 子程序示例:
! 用户子程序:自定义材料属性
SUBROUTINE UMAT(STRESS, STATEV, DDSDDE, DDSDDT, &
SSE, SPD, SC_EQPS, &
NSIZE, NSTATV, PROPS, COORDS, DTIME, TEMP, PREDEF, &
KSTEP, KINC, STRAN, DSIG, &
TIME, DROT, PNEWDT, DEFORM, &
STRAIN, KCON, JSTEP, KSL, &
KEL, KSLID, KELSET, TIME, NOEL, LAYER, KSPT, KSTEP, KINC)
IMPLICIT NONE
! 输入参数
INTEGER, INTENT(IN) :: NSIZE, NSTATV, KSTEP, KINC, KCON, JSTEP, KSL, KEL, KSLID, KELSET, NOEL, LAYER, KSPT
REAL, INTENT(IN) :: STRESS(NSIZE), STATEV(NSTATV), DDSDDT(NSIZE), SSE, SPD, SC_EQPS, &
PROPS(*), COORDS(3), DTIME, TEMP, PREDEF(1,1), STRAN(NSIZE), DSIG(NSIZE), &
TIME(2), DROT(3,3), DEFORM(3,3), STRAIN(3,3)
! 输出参数
REAL, INTENT(OUT) :: DDSDDE(NSIZE, NSIZE), PNEWDT
! 局部变量
REAL :: E, NU, G, B, D
! 读取材料属性
E = PROPS(1)
NU = PROPS(2)
G = E / (2 * (1 + NU))
B = E / ((1 + NU) * (1 - 2 * NU))
! 计算刚度矩阵
DDSDDE = 0.0
DDSDDE(1,1) = B
DDSDDE(2,2) = B
DDSDDE(3,3) = B
DDSDDE(1,2) = B * NU
DDSDDE(1,3) = B * NU
DDSDDE(2,1) = B * NU
DDSDDE(2,3) = B * NU
DDSDDE(3,1) = B * NU
DDSDDE(3,2) = B * NU
DDSDDE(4,4) = G
DDSDDE(5,5) = G
DDSDDE(6,6) = G
! 计算时间步长
PNEWDT = 1.0
END SUBROUTINE UMAT
3.2 编译和链接用户子程序
在编写完用户的自定义子程序之后,在完成编译操作的基础上,请确保将该程序连接至MSC Nastran环境中以实现有效的数值模拟计算功能。
编译用户子程序 :使用Fortran编译器编译用户子程序。
链接用户子程序 :将编译后的用户子程序链接到MSC Nastran的求解器中。
3.2.1 编译用户子程序
使用gfortran编译器编译用户子程序:
gfortran -c umat.f90
3.2.2 链接用户子程序
将编译后的用户子程序链接到MSC Nastran的求解器中:
nastran -job=example -user=umat.o
3.3 定义自定义材料属性
在MSC Nastran的输入文件中定义自定义材料属性,并指定用户子程序:
BEGIN BULK
MAT1, 1, 1.0E7, 0.3, 0.0
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
MATUSER, 1, UMAT, 10
3.4 进行多体动力学分析
在完成了用户子程序的编译与链接操作后,在MSC Nastran环境中即可执行多体动力学分析。以下是一个完整的多体动力学分析示例:
BEGIN BULK
GRID, 1, 0.0, 0.0, 0.0
GRID, 2, 1.0, 0.0, 0.0
GRID, 3, 0.0, 1.0, 0.0
GRID, 4, 1.0, 1.0, 0.0
CQUAD4, 1, 1, 2, 4, 3
PSHELL, 1, 1, 0.1, 0.1
MAT1, 1, 1.0E7, 0.3, 0.0
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
MATUSER, 1, UMAT, 10
MBODY, 1, 1, 2, 3, 4
MBODY, 2, 3, 4
MJOINT, 1, 1, 2, ROTA, 0.0, 0.0, 1.0
MASS, 1, 1.0
DAMP, 1, 0.1
SOL 101
TIME 0.0, 10.0, 0.1
METHOD, 1, 1, 100
SPC, 1, 123456, 0.0
SPC, 2, 123456, 0.0
3.5 用户子程序的应用案例
为了深入掌握用户子程序在多体动力学分析中的应用,在此基础上进行详细说明是一个具体的案例分析。在此情况下研究的是由刚性体和柔性体组成的机械系统及其受外部载荷作用时的动态响应。
3.5.1 机械系统建模
首先,定义系统的刚性体和柔性体:
BEGIN BULK
GRID, 1, 0.0, 0.0, 0.0
GRID, 2, 1.0, 0.0, 0.0
GRID, 3, 0.0, 1.0, 0.0
GRID, 4, 1.0, 1.0, 0.0
CQUAD4, 1, 1, 2, 4, 3
PSHELL, 1, 1, 0.1, 0.1
MAT1, 1, 1.0E7, 0.3, 0.0
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
MATUSER, 1, UMAT, 10
MBODY, 1, 1, 2, 3, 4
MBODY, 2, 3, 4
MJOINT, 1, 1, 2, ROTA, 0.0, 0.0, 1.0
MASS, 1, 1.0
DAMP, 1, 0.1
3.5.2 定义外部载荷
定义外部载荷,例如在节点1上施加一个随时间变化的力:
LOAD, 1
FORCE, 1, 1, 10.0 * SIN(2 * 3.14159 * TIME)
3.5.3 定义求解参数
定义求解参数,包括求解类型、时间步长等:
SOL 101
TIME 0.0, 10.0, 0.1
METHOD, 1, 1, 100
3.5.4 定义边界条件
定义边界条件,例如固定节点1和节点2的某些自由度:
SPC, 1, 123456, 0.0
SPC, 2, 123456, 0.0
3.5.5 运行分析
将上述输入文件保存为example.bdf,然后使用以下命令运行分析:
nastran -job=example -user=umat.o
3.6 结果分析
在运行完成后,在完成运算后借助后处理工具(如Patran)进行数据整理与评估结果。以下是一些常见的数据分析方法:
动态过程研究:通过研究系统在各个时间节点的动力学特性来探讨其运行规律。具体涉及位移矢量、速度向量以及加速度向量等内容。
频域分析 :分析系统的频率响应特性,了解系统在不同频率下的动态行为。
3.6.1 时间历程分析
在Patran软件中,默认设置为时间历程分析模式。随后系统会自动加载当前项目下的example.op2文件内容,并根据预设的分析参数自动生成相关数据集。随后系统会自动识别出具有代表性的节点和变量参数(例如位移量、速度值等)。最后系统会自动生成并绘制出对应的时间历程曲线图示。
3.6.2 频域分析
在Patran软件中选择频域分析功能模块,并导入名为example.op2的运算结果文件。进一步筛选关注点区域(例如频率响应特性与振幅大小),最后生成频域响应图形。
3.7 总结
通过创建用户自定义程序,在MSC Nastran环境中可以开展多体动力学分析的二次开发工作。具体而言,在此环境下不仅可以自定义材料属性、载荷以及边界条件等关键参数的数值设置,并且还可以根据实际需求灵活配置相关的求解策略和输出结果形式。本文采用一个典型的机械系统案例展开讨论,并详细阐述了如何在MSC Nastran环境中进行多体动力学建模、求解以及结果分析的过程。这些内容旨在为工程实践中相关技术的应用提供参考依据和操作指导
4. 结语
本是一种关键的技术,在材料力学仿真领域得到了广泛应用。借助合理的建模与求解手段,则可精准预测复杂的机械系统动态行为。本文阐述了该领域的基本理论与常用方法,并详细描述了其在 MSC Nastran 中的具体实施流程。我们相信这些详尽的内容将有助于广大读者更深入地掌握这一技术及其实际应用。
