03964.com

文档资料库 文档搜索专家

文档资料库 文档搜索专家

MSC.Software Confidential

MSC Lunch and Learn Series 2009

Contact in Adams

By Chris Davidson and Karsten Thielecke

Updated: 14-Feb-2011

MSC.Software Confidential

Agenda

Introduction Contact Types Supported CAD Formats Flexible Body Contact Geometry Engines for Contact Contact Calculation Impact Method Restitution Method Impact or Restitution Method? Adams Solver Contact at the Solver Level Friction Contact Post-processing Typical Values for Contact Parameters Best Practices

2/14/2011

2

MSC.Software Confidential

Introduction

A contact element is a type of force defined between two objects Frictional effects may be accounted for in contacts To get the most accurate representation from contacts, it is important to keep in mind that the solution can be strongly dependent on the contact parameters and solution settings

2/14/2011

3

MSC.Software Confidential

Contact Types

There are 12 types of contacts that can be defined in Adams View

2D Rigid Contacts 3D Rigid Contacts 2D Flexible Body Contacts 3D Flexible Body Contacts

Both types of Flex Body contact require that the C solver be selected under Settings > Solver > Executable You currently cannot model contact between 2D and 3D geometry, except for sphere to plane

2/14/2011

4

MSC.Software Confidential

Contact Types

2D Contacts

Curve to Curve, Point to Curve, Curve to Plane, Point to Plane

Definition of

Curve: defined in XY-Plane, Z-Values should be constant Outward Normal points toward the direction of possible Contact. This Normal can be flipped.

Point: defined by a marker Plane: Outward-Normal is defined in positive Z-Direction of Plane-Marker

Special Remark (User has to assure this, i.e. with constraints)

Curve to Curve: Curves should be in same Plane Point to Curve: Point should be in XY-Plane of Curve Curve to Plane: XY-Plane of Curve should be in line to Z-Axis of Plane Point to Plane: Point could move in 3D For 2D contact, an algorithm is used that compares curve normal and tangent vectors

2/14/2011

5

MSC.Software Confidential

Contact Types

3D Contacts

Solid to Solid Sphere to Plane Sphere to Sphere

Definition of

Solid: Ellipsoid Cylinder Frustum Link Plate Torus Extrusion Revolution Constructive, solid geometry (geometry combined from several geometries) Generic 3D Parasolid Geometry, including extrusion and revolution Shell files (.shl, .slp, and .stl). Enclosed volume only.

Sphere: Ellipsoid not supported, use Solid to Solid instead Plane: Outward-Normal is defined in positive Z-Direction of Plane-Marker

2/14/2011

6

MSC.Software Confidential

Supported CAD Formats

File type: Imported

Parasolid* IGES* Step* Stereolithography Render Shell DXF* DWG*

* Requires Adams/Exchange

Can be: Exported

Yes Yes Yes No No Yes Yes Yes

In Contact

Yes No No Yes Yes Yes No No

Yes Yes Yes Yes Yes Yes Yes Yes

See online help or KB article 1-36274281 for recommendations on working with specific CAD programs

2/14/2011

7

MSC.Software Confidential

Flexible Body Contact

2D Contacts

Flex Edge to Curve, Flex Edge to Plane, Flex Edge to Flex Edge

Definition of

Flex Edge: defined by a closed Edge of a Flexible Body Shell edges automatically detected (no need to anticipate contact regions) Curve: defined in XY-Plane, Z-Values should be constant Plane: Outward-Normal is defined in positive Z-Direction of Plane-Marker Flex Edge and Curve: Outward Normal points toward the direction of possible Contact. This Normal can be flipped.

Special Remark

Edges of planes are not considered for contact Point-to-plane and point-to-curve are also supported, where the point is on the flex body

Flex Edge to Curve Flex Edge to Plane Flex Edge to Flex Edge

2/14/2011

8

MSC.Software Confidential

Flexible Body Contact

3D Contacts

Flex Body to Solid, Flex Body to Flex Body

Definition of

Flex Body: Flexible Body is represented by a MNF-File (or MD DB). Solid: same as in 3D Rigid Contact

Special Remark

When a contact is created between a flex body and a solid geometry, it is mandatory that the rigid body is always the J geometry (Adams/View will not allow otherwise).

Flex Body to Flex Body

Flex Face to Solid

2/14/2011

9

MSC.Software Confidential

Flexible Body Contact

Limitations

Flexible bodies are based on linear theory and as a result cannot accurately capture large deformation (more than about 10%), plasticity, etc. Contact is approximated using the IMPACT function, which is a nonlinear spring-damper representation. For accurate capture of contact stresses, a nonlinear finite element program is recommended. Flexible bodies are based on a modal approach. This means that the solution is formed from a linear combination of mode shapes, the number of which are specified by the user when the flex body is created in an FE program. This effectively reduces the number of DOF to the number of modes, but it can lead to modal truncation effects. The user has to assure that the modal basis is sufficient for Flexible Body Contact Stresses can be recovered with an Adams/Durability license, assuming that stress mode shapes were stored in the modal neutral file (MNF) when the flex body was created. But the above limitations apply. The C++ Solver must be used and only the IMPACT contact method is supported

2/14/2011

10

MSC.Software Confidential

Flexible Body Contact

Modeling flex body contact requires an Adams/Flex license

The basic approach to flex body contact is:

For the purposes of calculating penetration volume (s), the surface nodes of the FE mesh are grouped into triangles. The nodes that get an applied force are the ones in the intersection volume. The total contact force is distributed among the nodes proportional to the penetration of each node. Since it is the total contact force that gets distributed, it does not matter if one body has more penetrating nodes than the other. See KB article 1-76507061 for more information

2/14/2011

11

MSC.Software Confidential

Flexible Body Contact

Some additional remarks on Flexible Body Contact

Same Modal Formulation is used for 2D and 3D Flex Body Contact 3D Flex Body Contact supports both 2D edge and Face Contacts If you want to treat the flex body as rigid, you can always change its inertia modeling method to “rigid” and the faceted Mesh-Surface is used For animations, it is possible to see force graphics of either the total contact force or the contact force of individual nodes (see KB article 1-68804836) It is possible to export loads to FE (Nastran, Ansys, etc) for component stress analysis using the FEMDATA statement.

2/14/2011

12

MSC.Software Confidential

Geometry Engines for Contact

Two 3D contact libraries are available under Settings>Solver>Contacts…

Default_Library: faster, uses internal triangular tessellation (faceting). The faceting tolerance can be changed with Settings > Solver > Contacts Parasolids: slower but more accurate; uses true Parasolid geometry

For info on how to view the actual tessellated geometry, see KB 1-KB10495

Default Library

Parasolid

2/14/2011

13

MSC.Software Confidential

Geometry Engines for Contact

All 2D Contacts are analytical calculated Analytical Representation for 3D Contacts

Plate Sphere (since Adams 2008r1, MD Adams R3) Cylinder (since Adams 2010, MD Adams 2010) Ellipsoid (since Adams 2010, MD Adams 2010) Box (since Adams 2010, MD Adams 2010)

Many facets used before No facets used now

Advantages

Analytical approach used to determine the intersection of solids Contact force response likely to be smoother (i.e. less spikes) Much faster than Parasolid Contact Geometry Library Run-time Performance is model dependent

2/14/2011

14

MSC.Software Confidential

Contact Calculation

Contact is a nearly discontinuous event. When two geometries come into contact:

A large normal force or an impulse is generated. The velocities of the bodies change sign. The accelerations are almost discontinuous, and have a large spike. This spike represents the impulse that was generated due to the contact.

Bodies usually separate because of the contact forces or impulses. Numerical integrators assume that the equations of motion are continuous. A contact event is, therefore quite hard for an integrator to solve through.

2/14/2011

15

MSC.Software Confidential

Contact Calculation

Adams/Solver (C++) contains a contact predictor that predicts the onset of contact and controls the integrator step size accordingly. The following paragraphs briefly summarize the contact prediction algorithm.

When Adams/Solver (C++) detects a new contact, it calculates the penetration and penetration velocity between the two geometries. From these two values, Adams/Solver (C++)

estimates a more refined contact time. Adams/Solver (C++) rejects the current time step and uses the refined step size to accurately sense the onset of contact. Furthermore, the integrator order is set to one, so that Adams/Solver (C++) does not use the time history of the system to predict the future behavior of the system.

This algorithm essentially ensures that:

The penetration for a new contact is small. The integrator is at first order when the contact event occurs. The integrator is taking small time steps.

2/14/2011

16

MSC.Software Confidential

Contact Calculation

Normal Force Calculation

There are two available contact force calculation methods available (in addition to user defined): Impact Restitution

2/14/2011

17

MSC.Software Confidential

Impact Method

This method makes use of the Adams solver “Impact” function (to be discussed later). If a contact between two bodies is defined, then a contact force will develop as the geometry of the two bodies begin to overlap (penetrate). For 3D, Adams will calculate the minimum distances from the centroid of the overlap volume to the nearest surface on each body. The distance between these two points is the penetration distance, g. A similar process is used for 2D. Body 2 Contact normal force is a function of g and dg/dt (stiffness and damping):

dg dt

g

N = kg e + STEP( g ,0,0, d max , c max )

Body 1

where

k = stiffness e = force exponent dmax = g at which to apply maximum damping coefficient (cmax)

2/14/2011

18

MSC.Software Confidential

Restitution Method

A simple coefficient of restitution is required (1.0 corresponds to perfectly elastic collision; 0.0 perfectly inelastic). A “penalty” value is also required, which has damping units. The penalty value works like a stiffness, but is not associated with a material property. In fact, for this formulation the ideal value would be infinity. Since this is not practical, the highest value should be chosen that will not sacrifice numerical robustness. The default value is a good place to start.

N = pε dg dt

Restitution force is important only for initial contact; velocities should reverse in one iteration of the integrator corrector.

The contact normal force is calculated as:

where

p = penalty ε = coefficient of restitution

For help in determining contact parameters, see KB articles 1-KB8470, 1-KB9629, and KB9155.

2/14/2011

19

MSC.Software Confidential

Impact or Restitution Method?

The restitution (or Poisson) method is designed with dynamic, intermittent contact in mind. It can be used in persistent contact conditions, but you may observe chattering or subtle violation of the unilateral contact constraint. The restitution method suffers less from numerical damping and may be more appropriate when energy loss is a key parameter. However, the impact method is more robust and MUCH less sensitive to error tolerances. For this reason, it is generally the recommended method. It is also the only method that can be used for contact with flex bodies.

2/14/2011

20

MSC.Software Confidential

Adams Solver

When simulations are run from inside Adams View, the input file (.adm) for Adams Solver is not written out (it’s all done internally in memory) There are two Adams solvers: Fortran (original) and C++ (newer) Each has its own though very similar sets of statements, functions, and commands:

Statements: Lines in the Adams Solver .adm file that define the model itself (e.g., JOINT statement). Mathematical functions that can be called by the solver (e.g., DX function to calculate distance between markers). Lines in a solver script file (.acf) that can change parameters in an.adm file and control a simulation (e.g., SIMULATE command).

Functions:

Commands:

21 2/14/2011

MSC.Software Confidential

Contact at the Solver Level

IMPACT Function

The Impact contact method makes use of the IMPACT function: Usage protocall: F = IMPACT( x, x, x1 , k , e, cmax , d ) &

where k = stiffness e = force exponent x1 = distance above which there is no force (i.e., no impact) d = x at which to apply maximum damping coefficient (cmax)

2/14/2011

22

MSC.Software Confidential

Contact at the Solver Level

BISTOP Function

The BISTOP function is similar to the IMPACT function but models two stops (i.e., limits of travel) instead of one:

Usage protocall: F = BISTOP( x, x, x1 , x2 , k , e, cmax , d ) &

where k = stiffness e = force exponent x1 = lower bound of x. x < x1 implies a positive force value x2 = upper bound of x. x > x2 implies a negative force value d = penetration at which to apply maximum damping coefficient (cmax)

2/14/2011

23

MSC.Software Confidential

Contact at the Solver Level

CONTACT Statement

Adams/Solver defines contacts through the CONTACT statement: Arguments for the CONTACT statement:

Argument

AUGMENTED_LAGRANGIAN FORMULATION

Description

Available only for Restitution contact. Uses iterative refinement to ensure penetration is minimal and that normal force is relatively insensitive to penalty value. No longer available for C solver.

COULOMB_FRICTION = off/on DAMPING = r

Specifies whether to consider friction. When using IMPACT method, specifies damping coefficient (normally about 1% of stiffness)

2/14/2011

24

MSC.Software Confidential

Contact at the Solver Level

CONTACT Statement (continued)

Argument

DMAX = r

Description

When using IMPACT method, specifies the penetration at which full damping is applied.

EXPONENT = r

When using IMPACT method, specifies the exponent on the contact force stiffness term. To be covered in “Friction Section” Specifies up to 30 user-defined constants to compute friction from a user-defined CNFSUB subroutine. Specifies the executable file (library) and user subroutine (function) in that file to calculate friction. ID(s) of the GRAPHICS statement(s) that defines the geometric entities (marker, etc) associated with the IPart that may come in contact. ID(s) of the GRAPHICS statement(s) that defines the geometric entities (marker, etc) associated with the JPart that may come in contact.

FRICTION_TRANSITION_VELOCITY = r FRICTION_FUNCTION = USER(r1,…, [r30]) FRICTION_ROUTINE = library::function IGEOM = id

JGEOM = id

2/14/2011

25

MSC.Software Confidential

Contact at the Solver Level

CONTACT Statement (continued)

Argument

IFLEX = id

Description

ID of the FLEX_BODY statement that defines the first of two flex bodies between which a contact is modeled.

JFLEX = id

ID of the FLEX_BODY statement that defines the second of two flex bodies between which a contact is modeled. Specifies a list of GRAPHICS IDs associated with IGEOM objects to be reversed in contact direction (to ensure contact side is facing in correct direction). Specifies the IMPACT method be used for contact. Specifies a list of GRAPHICS IDs associated with JGEOM objects to be reversed in contact direction (to ensure contact side is facing in correct direction). To be covered in “Friction Section” To be covered in “Friction Section”

IFLIP_GEOMETRY = id1, id2, …, idN

IMPACT JFLIP_GEOMETRY = id1, id2, …, idN

MU_DYNAMIC = r MU_STATIC = r

2/14/2011

26

MSC.Software Confidential

Contact at the Solver Level

CONTACT Statement (continued)

Argument

NORMAL_FUNCTION = USER(r1,…, [r30])

Description

Specifies us to 30 user-defined constants to compute contact normal force is a user-defined CNFSUB subroutine.

NORMAL_FUNCTION = library::function

Specifies the executable file (library) and user subroutine (function) in that file to calculate normal force. When using the Restitution method, specifies the penalty value, which defines the local stiffness properties. Specifies that the Restitution method be used for contact. When using the Restitution method, specifies the coefficient of restitution. To be covered in “Friction Section” When using the Impact method, specifies the contact stiffness.

PENALTY = r POISSON RESTITUTION_COEFFICIENT = r

STICTION_TRANSITION_VELOCITY = r STIFFNESS = r

2/14/2011

27

MSC.Software Confidential

Friction

Friction Regimes

?

static (stiction) transition dynamic

Regimes

For geometry in contact, the friction coefficient is calculated as shown

?s ?d

Static Regime: (abs(v) < Vs)

? = ? s STEP (abs(v), - V s , - 1, V s , 1)sgn (v )

Vs Vd v

Transition Regime: ? = STEP (abs (v), V s , ? s , Vd , ? d )sgn (v ) (Vs < abs(v) < Vd)

?s ?d

Dynamic Regime: (abs(v) > Vd)

? = ? d sgn (v )

Vs

Vs Vd

2/14/2011

28

MSC.Software Confidential

Friction

During contact, a contact point is always calculated, with corresponding unit normal curve or surface vectors on each part (their directions are opposite). For 2D contact, opposite unit friction vectors are calculated, which are oriented along the direction of slip (perpendicular to the normal surface vectors). For 3D contact: There is also frictional torque due to relative rotation of the two contacting parts.

ω

(2/3)R R

Adams calculates the penetration cross-section, then calculates the radius R of a circle with equivalent area. The friction moment is ?N times the friction radius, which is (2/3)R. *

For 2007 R1 and earlier releases, the friction radius was calculated as simply R.

2/14/2011

29

MSC.Software Confidential

Contact Post-processing

Contact Tracks

Contact tracks are post-processed data that Adams/View computes from Adams/Solver data. Adams/Solver records every penetration event for each contact pair and makes a special INCIDENT entry in the results file.

2/14/2011

30

MSC.Software Confidential

Contact Post-processing

Contact Tracks

When Adams/View (or PostProcessor) needs to plot data it first runs a macro on the command line like this:

Analysis collate_contacts contact_name = CONTACT_1 analysis_name = Last_Run tolerance = 1000

The tolerance setting is a variance calculation based on the location of contact events. If incidents at successive time steps seem to be close together, they are grouped as a track. The tolerance controls the “radius” of the variance calculation and can be thought of as a spherical region. Small tolerances yield more tracks; large tolerances fewer tracks.

2/14/2011

31

MSC.Software Confidential

Contact Post-processing

Differencing between Stiffness and Damping Portions

It can be important to know which portions of a contact force are coming from the stiffness and which are coming from the damping terms

2/14/2011

32

MSC.Software Confidential

Typical Values for Contact Parameters

Good starting point for contact parameters:

2/14/2011

33

MSC.Software Confidential

Best Practices

Split Geometry to Get Multiple Contact Points

Split the Geometry in multiple entities

Finding Equilibrium maybe easier Distributed Forces System in Balance and more Stable Still one Contact with multiple Solids on one Part

2/14/2011

34

MSC.Software Confidential

Best Practices

Environment Variable: MDI_ADAMS_SHELL_FILE_PATTERN

Use this Environment Variable

to export the tessellated geometry to review the exported shell files to replace your original geometry with these shell files

Shell files are not tessellated again Tessellation could be a time consuming process (i.e. complex Geometry)

Use this Feature to

get different faceting tolerances for different geometries use a finer tessellation in point of interest

2/14/2011

35

MSC.Software Confidential

Best Practices

Environment Variable: MDI_ADAMS_CONTACT_OUT

Use this Environment Variable

to control the export of intermediate contact events in the data for a contact model. The intermediate data will only be written to *.res file.

On: Enables intermittent contact output Off: Disables intermittent contact output (default value)

Use this Feature

to get additional output steps at contact incidents for review in Postprocessing or Debugging Handle with care

Results File can get huge

In combination with many output steps or long Simulation Times with a model containing a lot of Contacts

Performance of Solver will decrease because the additional output steps have to calculated and written out to the Results-File

2/14/2011

36

MSC.Software Confidential

Best Practices

Tips and Tricks from Tech Support

Modeling

Try 2D Approximation for Contact Modeling whenever possible - when applicable, represent the contact event using 2D elements. Choose from point-to-curve, curve-to-curve, or use the IMPACT function defined in a SFORCE, VFORCE, or GFORCE element. Try changing the Stiffness and Damping Parameters Modifying the damping-to-stiffness ratio can sometimes have a big effect on simulation time and can solve Convergence Problems of the Integrator. Have a close look which Portion in the Contact Force is deriving from the Stiffness and Damping Reduce Stiffness or Penalty by a Factor of 10 and see what happens Try using a bigger (unrealistic) dmax (i.e. 0.1) in combination with a bigger (even unrealistic) Damping Value and a value of e=1.5 for Units in mm. Reduce Damping. This decreases the duration of the contact and can help simulations. Run first with no Friction, then with Dynamic Friction only, finally with Static / Dynamic Friction. If you don’t need Static Friction, then turning it off will speed up the analysis. Don’t make the Stiction Transition Velocity too small. Rule of thumb: Vs > ERROR. Don’t put Stiction and Friction Transition Velocities too close together or make them too small. This cause a very small Step Size of the Integrator.

2/14/2011

37

MSC.Software Confidential

Best Practices

Tips and Tricks from Tech Support

Statics

Try modeling that Contacts are in Contact at beginning of Simulation if you want to start with Static Equilibrium or “build” a different Model for Statics (with additional Forces or Constraints active only in Static Solutions)

Integrator

Try using the SI2 Integrator with an error of 0.01 or HHT Integrator (C++ only) with its default Error Tolerance 1e-5 or even a smaller Error Tolerance. Start with an Initial Output Step Size of 0.001 to get a Graphical Feedback on the Model. If everything runs fine you can increase the Output Step Size from there. Try using the modified corrector, which removes Force from the Error Control. Set the maximum Integration Order to 2 for GStiff using Integrator/KMax = 2. Lower-Order Integrators are more stable than Higher-Order Integrators because of the Prediction for Contact Incidents is not using the History from previous Steps far away from the new Solution Set HMax to a small value to prevent the integrator from taking large steps. Try increasing HMax from i.e. 0.01 to 0.02 and setting Interpolate=On, which doesn’t force the Integrator’s Step to correspond to an Output Step – take care with this!

Output Data

Reduce the results file contents or switch it off. Contact tracks are saved to this file, which can result in a huge amount of data which may not be needed.

2/14/2011

38

MSC.Software Confidential

Best Practices

Tips and Tricks from Tech Support

Try use of Design Studies

Get the Model running with Default Contact Values Start with Soft Stiffness to make sure the Model just runs Then parameterize the Contact Parameters k, e, cmax and dmax Run a Design Study on each Parameter above using an order of Magnitude higher / lower (maybe just 3 runs?: x/10, x and x*10 ) Often one of the Parameters (e or c maybe?) don’t affect the Results. Then you know you can ignore them and focus on the others. Tune the other settings for simulation speed and robustness….

By the way:

You can also use Design Studies on Integrator Parameters to get a better Performance and to see what impact the Parameters have on the Results

2/14/2011

39

MSC.Software Confidential

Thank You!

2/14/2011

40

赞助商链接

相关文章:

- ADAMS函数简介_图文
*ADAMS*函数简介 ☆☆☆LOC_LOC 将一个参考坐标系下的坐标值(点选/输入任意)转化为另一参考坐标系下的坐标值(返回 值) 注:这个location是相对于In Frame ...

- Adams问题集
- 如何永久改变
*ADAMS*的启动路径在*Adams*的快捷方式上右击鼠标,选属性,再在起始位置上输入你想要得 路径就可以了。 5. 给圆柱掏孔需要选择孔的方向,结果就是...

- ADAMS小论文
*ADAMS*小论文_法律资料_人文社科_专业资料。分类号 _ TH16__ 密级 ___ U D C___ 小论文*ADAMS*的单缸内燃机曲柄连杆机 构建模与仿真 研 究 生 姓 名分类...

- ADAMS 函数说明 FUCTION BUILDER
- 1
*ADAMS*/View 函数及*ADAMS*/Solver 函数的类型及建立*ADAMS*/View 函数包括设计函数与运行函数两种类型,函数的建立对应有 表达式模式和运行模式两种。表达式模式下在...

- ADAMS介绍
*ADAMS*介绍_交通运输_工程科技_专业资料。3.2 多体动力学软件*ADAMS*的介绍*ADAMS*软件,即机械 系统 动力学自动分析软件*ADAMS*(Automatic DynamicAnalysis of Mech3...

- ADAMS操作入门
- 英文资料翻译:
*ADAMS*/View 使用入门 欢迎浏览 MDI 的网址 美国总部:http://www.*adams*.com 中国办事处:http://www.mdi.com.cn 目 录 第一章 弹簧挂锁设计问题...

- adams运动仿真教学
*adams*运动仿真教学_高等教育_教育专区。起重机的建模和仿真,如下图所示。 1)启动*ADAMS*1. 运行*ADAMS*,选择 create a new model; 2. modal name 中命名为 ...

- 网络收集的 adams+simulink仿真错误及解决方案
- 2。
*adams*_plant.dll,它其实就是*adams*_sub 的核心,*ADAMS*提供一个 S 函数,用于*adams*和 simulink 联合仿真的调度和通讯,如果 simulink 找不到它,则仿真就不...

- ADAMS+脚本仿真
- SYSTEM :指定
*ADAMS*/Solver 重载所有完整数据,包含模型定义(对象、工作 点、 关节等) 、模拟时间对状态值(位移、速度、力、自行定义的元素等 ) 、求解器 设定 ...

- Adams2013安装教程(含有注意事项,绝对成功)
*Adams*2013安装教程(含有注意事项,绝对成功)_计算机软件及应用_IT/计算机_专业资料。之前好多吧友给我留言了,我也没有办法解决。再次,对方法重新总结,大家参照这个 ...

更多相关标签: