180 likes | 327 Views
SECTION 7 BEST PRACTICES. BEST PRACTICES. What’s in this section: Discontinuities Units Dummy Parts Joints Motions Forces Contacts Subroutines Simulation/Integrators Debugging Miscellaneous Tips. DISCONTINUITIES.
E N D
SECTION 7 BEST PRACTICES
BEST PRACTICES • What’s in this section: • Discontinuities • Units • Dummy Parts • Joints • Motions • Forces • Contacts • Subroutines • Simulation/Integrators • Debugging • Miscellaneous Tips
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 • A dummy part is any part with zero or very small mass. • Sometimes dummy parts are useful; but generally, avoid using them. • Avoid connecting dummy parts with compliant connections (BEAMs, BUSHINGs, and so on). If the mass of the dummy part = 0, then the acceleration, a = F/m = F/0 = infinite. Even if the mass is very small, a = F/m = very large number. Therefore, small masses/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 two or more parts can be combined or merged into a single part. • Avoid using many 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 very large mass/inertia so that it can behave like ground, or consider merging it to ground (for more information, see Knowledge Base Article 7902 at http://support.adams.com/kb/faq.asp?ID=kb7902.html).
JOINTS (CONT.) • When possible, create a FIXED joint at the center-of-mass (cm) of the lightest part, to minimize the reaction forces/torques. • Avoid redundant constraints. MSC.ADAMS eliminates them by looking at pivots in a constraint Jacobian, which are in no particular order. As a result, the physical meaning 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 Knowledge Base Article 9752 at http://support.adams.com/kb/faq.asp?ID=kb9752.html for more information). This is true for both GSTIFF and SI2_GSTIFF integrators. • Avoid using motion as a function of variables (that is, states). • In general, cubic splines (CUBSPL) may work better on motions than the Akima. The derivatives of the cubic are better than those of the Akima, so they're more useful in forces than in motions (see Knowledge Base Article 7534 at http://support.adams.com/kb/faq.asp?ID=kb7534.html for more information).
FORCES • If using data, approximate forces with smooth, continuous splines. • Don't define a spring damper 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 CONTACT statement in the ADAMS/Solver online help, and Knowledge Base Article 10170 (http://support.adams.com/kb/faq.asp?ID=kb10170.html) for a starting point. Adjustment of the properties to match experimental results is expected.
SUBROUTINES • If possible, use an MSC.ADAMS function over a subroutine. • If you receive errors in your model, eliminate user subroutines so they're not the source of the errors. • Verify that your compiler is compatible with the current version of MSC.ADAMS.
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’s 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 that ADAMS/Solver acts as a fixed-step integrator.
SIMULATION / INTEGRATORS (CONT.) • Spikes in results output may come from changes in step size. Reduce HMAX or try setting HINIT=HMAX. Run with SI2 instead. • ADAMS/Solver uses a body 3-1-3 rotation sequence (psi, theta, phi). Theta=0d (or 180d) is bad (Euler singularity). If the z-axis of part cm is parallel to z-axis of ground, there will be a Euler singularity. • For Euler Singularities, Theta=90D will have good pivots. Models will run better, and won't act like there is 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 using crawl-walk-run approach. • Test with a small model to isolate problems. • Have graphics for visualizing motion. • Look at damping terms as a source of errors. Incorrect sign and missing terms are typical mistakes. • Turn on DEBUG/EPRINT. • Turn gravity off, since it can accentuate modeling errors.
DEBUGGING (CONT.) • Models should have no warnings during simulation (for example, redundant constraints, splines, and so on). • Understand numerical methods (for example, understand your integrator). • Look for results which become very large in magnitude; this could indicate a discontinuity.
MISCELLANEOUS TIPS • 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're modeling an aircraft landing on runway. • Use a reasonable time scale. If duration of dynamic event time is short, consider using milliseconds units. • Extend the range of spline data beyond the range of need. • Don't write function expressions that can potentially divide by zero (for example, use the MAX function to prevent this: function =8/MAX(0.01,your_function).
MISCELLANEOUS TIPS (CONT.) • Add damping so frequencies can dissipate. • Avoid very high damping rates. The high damping cause a rapid decay in response, which is 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” (that is, a non-smooth function). Instead, try 2.2 for the exponent.