- 积分
- 4
- 注册时间
- 2005-1-22
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 songshunguang 于 2009-5-29 10:42 编辑
这个是我从MSC官方论坛的Knowledge Base中看到的,是关于使用ADAMS以及ADAMS接触建模的一些建议和应注意的问题,希望对大家有所帮助。
"Rules of Thumb" for building robust models with ADAMS
DISCONTINUITIES
- Discontinuities are the root cause of most simulation problems. Avoid them.
- Examples of discontinuous functions: MIN, MAX, DIM, MOD, IF
- Discontinuous displacements and velocities cause corrector and integrator failures.
- Discontinuous accelerations cause integration failures (requires infinite force)
- Discontinuous forces cause corrector failures
UNITS - Widely separated magnitudes in a matrix can cause numeric difficulties (conditioning problems).
- Be careful when using inconsistent units.
- Choose units so that model states (displacements and velocities) are reasonable values. For example, choosing "mm" for displacements of a rocket which travels thousands of kilometers is a poor choice.
- Choose units so that stiffness values are not very large.
- Choose time units appropriate to the phenomena being studied.
DUMMY PARTS (any part with zero or very small mass) - Sometimes dummy parts are useful, but generally avoid using dummy parts.
- Avoid connecting dummy parts with compliant connections (BEAMs, BUSHINGs, etc.). If the mass of the dummy part = 0, then the acceleration, a = F/m = F/0 = infinite. If the mass is even very small, then a = F/m = very large number. Thus, small masses and/or moments of inertia introduce high frequencies into the system, which is usually undesirable since it has detrimental effects on the solver.
- If you must use dummy parts, then constrain all DOF, since with no DOF for the dummy part, a=F/m is not an issue.
- Dummy parts should be massless, 0.0 (or unassigned) not 1e-20.
JOINTS - Avoid using FIXED joints.
- A FIXED joint adds equations to your system that aren't necessary when those two (or more) parts can be combined or merged into a single part.
- Avoid using lots of FIXED joints to lock parts to ground.
- Enormous torques may develop due to large moment arms.
- If you must lock something to ground with a FIXED joint, consider assigning it a sizable mass and inertia so that it can behave like ground or better yet consider just merging it to ground (1-KB7902).
- Create FIXED joint between two parts at the center-of-mass (cm) of the lightest part, when feasible, to minimize magnitude of any reaction forces and/or torques.
- Avoid redundant constraints.
- ADAMS tries to eliminate them by looking at pivots in a constraint jacobian, which are in no particular order. It removes the offending entries as needed, and as a result the physical meaning of your constraint may be disregarded.
MOTIONS - Ideally, motions should impose continuous accelerations
- Avoid using splines in a motion (function based on time is ideal).
- If you must use splines as motion, use their velocity form (see 1-KB9752 for more information). This is true for both GSTIFF,I3 and GSTIFF,SI2 integrator formulations.
- Avoid using motion as a function of variables (i.e., states).
- Cubic splines (CUBSPL) may in general work better on motions than the Akima. The derivatives of the Akima are not as nice as those of the Cubic so they're useful in forces rather than motions (1-KB7534).
FORCES - If using data, approximate forces with smooth, continuous splines.
- Don't define a springdamper with spring length=0.
- Make sure velocities are correct in force expressions. For example, in this damping function: -c*vx(i, j, j __ ) the 4th term is missing. The 4th term defines the reference frame in which the time derivatives are taken, and this may be important.
CONTACTS - Contacts should penetrate before statics.
- Models with impacts should have slight penetration in model position when doing statics.
- All tires should penetrate the road. Models with tires should have slight penetration in model position when doing statics. For example, if only rear tires penetrate, the static position could be a "handstand".
- Contact properties are model dependent. See the CONTACT statement documentation and 1-KB10170 for a starting point. Some adjustment of the properties to match experimental results is expected.
SUBROUTINES - Always use an ADAMS function over a subroutine, if possible.
- If you receive errors in your model, eliminate user-subroutines so as they're not the source of error.
- Check that your compiler is compatible with the current version of ADAMS. The Hardware and Software specifications are available from the Adams support website (http://www.mscsoftware.com/products/adams_support.cfm).
SIMULATION/INTEGRATORS - Perform initial static first, when applicable. Note that a static solution may be more difficult to find than a dynamic solution. If you care only about the dynamic solution and cannot find static equilibrium, then either increase your error tolerance or forget about the static simulation.
- 15-20 static iterations is suspect.
- If GSTIFF won't start, it is most likely a problem with initial conditions.
- Don't let the integrator step over important events. Short duration events like an impulse can be captured by setting maximum time step, HMAX, to value less than impulse width.
- Use HMAX so solver acts like a fixed-step integrator.
- Spikes in results output may arise from changes in step size
- Reduce HMAX or try setting HINIT=HMAX
- Run with SI2 instead.
- ADAMS/Solver uses a body 313 rotation sequence (psi, theta, phi). Theta=0d (or 180d) is bad because it creates an Euler singularity, and thus an integrator restart. If the z-axis of part principal inertia axis is parallel to z-axis of ground there will be an Euler singularity. Note: the IM marker defines the inertia axes, but if the part has cross terms for inertia (Ixy, Iyz, etc.), then the z axis of the IM marker is not the same as the principal inertia axis. Many times there are no cross terms included, so IM = principal inertia axes. Furthermore, if no IM marker is specified, then the CM marker is used for the inertia properties reference frame. Thus, usually, you simply need to make sure the CM marker z-axis is not aligned with the z axis of ground. If this is the case at the beginning of the simulation, this is not a problem since ADAMS/Solver will fix this automatically.
- Regarding Euler Singularities...Theta=90D will have "healthy" pivots
- Models will run better, won't act like there's a discontinuity.
- Truncation (or round-off) errors accumulate when you let MAXIT go larger than 6
- The theory of GSTIFF says 2-3 iterations is desirable, it breaks down if it uses more than 4 or 5.
DEBUGGING - Try to understand mechanism from a physical standpoint.
- Use "building blocks" of concepts that worked in the past.
- Add enhancements to the model in a piece-by-piece manner using the "crawl-walk-run" approach.
- Test with small model to isolate problems.
- Have graphics for visualizing motion.
- Look at damping terms as a source of errors.
- Incorrect sign, missing terms are typical mistakes.
- Turn on DEBUG/EPRINT.
- Turn gravity off, since it can accentuate modeling errors.
- Models should have no warnings during simulation (e.g., redundant constraints, splines, etc.).
- Understand numerical methods (e.g., understand your integrator).
- Look for results which become very large in magnitude; this could indicate a discontinuity.
MISCELLANEOUS - Avoid very large numbers and very small numbers.
- Be wary when your model contains numbers like 1e+23 or 1e-20.
- Choose the right set of units.
- Length units of millimeters may not be appropriate if you are modeling an aircraft landing on runway.
- Use a reasonable time scale.
- If duration of dynamic event time is short, consider using MILLISECONDS time units.
- Extend the range of spline data beyond the range of need.
- Don't write function expressions that can potentially divide by zero.
- To avoid this use the MAX function, for example: FUNCTION= 8/MAX(0.01, your_function)
- Add damping so frequencies can die off.
- Avoid very high damping rates. The high damping causes a rapid decay in response, which can be difficult for an integrator to follow.
- Avoid toggles, dual solutions, or bifurcations.
- Don't use 1.0 for the exponent in IMPACT or BISTOP functions. This creates a "corner" (i.e. a non-smooth function). Try 2.2 for the exponent instead.
|
|