Model Element |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Description |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Param_Static defines the solution control parameters for Static and Quasi-static analysis. These parameters control the accuracy the solution and the method to be used for solution. MotionSolve supports two distinct methods for static analyses:
The Maximum Kinetic Energy Attrition Method:
The Kinetic Energy Minimization method has following advantages:
The Maximum Kinetic Energy Attrition Method has following disadvantages:
The Force Imbalance Method:
The force imbalance method has the following advantages:
The force imbalance method has the following disadvantages:
The two methods, Maximum Kinetic Energy Attrition Method and Force Imbalance Method, are complementary. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Format |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<Param_Static { [ method = "MKEAM" ] [ max_ke_tol = "real" ] [ max_dq_tol = "real" ] [ max_num_iter = "integer" ] > | [ method = { "FIM_S" | "FIM_D" } ] [ max_imbalance = "real" ] [ max_error = "real" ] [ stability = "real" ] [ max_num_iter = "integer" ] [ compliance_delta = "real" ] } /> |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attributes |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
method |
Specifies the choice of the algorithm to be used for Static or Quasi-static simulation. For static equilibrium, choose one of the following:
MKEAM is a method based on minimization of maximum kinetic energy. FIM_S is a modified implementation which supports all MotionSolve elements except Force_Contact. For Quasi-static simulation, the MKEAM method is not applicable. However, there is an additional choice called FIM_D. FIM_D is a time integration based approach to quasi-static solution. It is not applicable for a pure static solution. In addition to the parameters specified in the Param_Static element, FIM_D also uses the parameters specified in the Param_Transient element to control the DAE integration (in particular, dae_constr_tol to control the error tolerance). FIM_D defaults to FIM_S when a pure static solution is required. In summary, both for static and quasi-static solutions, there are three choices of solvers. See Comments for their strengths and weaknesses. The default is FIM_D. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
max_ke_tol |
Applicable if MKEAM was chosen. Specifies the maximum allowable residual kinetic energy of the system at the static equilibrium point. This should be a small number. The default value for max_ke_tol is 10-5 energy units. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
max_dq_tol |
Applicable only if MKEAM was chosen. This specifies the upper limit for the change in system states at the static equilibrium point. The iterations are deemed to have converged when the maximum relative change in the states is smaller than this value. The default value for max_dq_tol is 10-3. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
max_num_iter |
Specifies the maximum number of iterations that are allowed before simulation stops. If max_ke_tol and max_dq_tol are not satisfied at this point, the equilibrium iterations should be considered as having failed. The default value for max_num_iter is 100. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
max_imbalance |
Applicable if force_imbalance was chosen. Specifies the maximum force imbalance in the equations of motion that is allowed at the solution point. This should be a small number. The default value for max_imbalance is 10-4 force units. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
max_error |
Applicable if force_imbalance was chosen. This specifies the upper limit for the change in residual of the system equations at the static equilibrium point. The iterations are deemed to have converged when the maximum residual in the equations of motion is smaller than this value. The default value for max_error is 10-4. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stability |
Specifies the fraction of the mass matrix that is to be added to the Jacobian (see discussion on Newton-Raphson method in the Comments section) to ensure that it is not singular. The Jacobian matrix can become singular when the system has a neutral equilibrium solution and the initial guess is close to it. To avoid this, a fraction of the mass matrix (known to be non-singular) is added to the Jacobian in order to make it non-singular. The value of stability does not affect the accuracy of the solution, but it may slow the rate of convergence of the Newton-Raphson iterations. stability should be a small number. The default value for stability is 1e-10. Note The square root of the value specified by stability is multiplied to the mass matrix and then added to the Jacobian to make it non-singular. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
compliance_delta |
Delta used during complaince matrix calculation (default = 0.001). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comments |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
For more details, refer to the following tables: Table 1 - Mapping between ADAMS and MotionSolve Modeling Elements Table 2 - Mapping between ADAMS and MotionSolve Command Elements Table 3 - Mapping between ADAMS and MotionSolve Functions Table 4 - Mapping between ADAMS and MotionSolve User Subroutines MotionSolve Quasi-statics refers to the Force Imbalance method.
Assume, a set of equations F(Q) = 0 is to be solved. Assume also that an initial guess Q* is available. Let Q be partitioned into two sets of coordinates Qt, Qr, where Qt are the translational coordinates, and Qr the rotational coordinates: QT = [ QtT, QrT ]. Let NORM(x) be a function that returns the infinity norm of any array x. In other words, the maximum of the absolute value of the components of x. If NORM(F(Q*)) < max_imbalance, Q = Q* is the solution. However, this does not always happen. It is much more common to find that NORM(F(Q*)) >> max_imbalance. The Newton-Raphson method is an iterative process for refining the initial guess Q* so that the equations F(Q) = 0 is satisfied. The algorithm proceeds as follows:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This example shows the default settings for the Param_Static element that uses the MKEAM method. <Param_Static method = "MKEAM" max_ke_tol = "1.000E-05" max_dq_tol = "0.001" max_num_iter = "100" /> This example shows the default settings for the Param_Static element that uses the FIM_S solution method. <Param_Static method = "FIM_S" max_residual = "1.000E-04" max_imbalance = "1.000E-04" max_num_iter = "50" /> |
Model Element |
|||||||||
Description |
|||||||||
EQUILIBRIUM defines the solution control parameters for Static and Quasi-static analysis. These parameters control the accuracy the solution and the method to be used for solution. MotionSolve supports two distinct methods for static analyses - a Maximum Kinetic Energy Attrition Method and a Force Imbalance Method. |
|||||||||
Declaration |
|||||||||
def EQUILIBRIUM(TYPE="", ERROR=0.0, IMBALANCE=0.0, KINETIC_ENERGY_ERROR=0.0, MAXIT=0, PATTERN="", STABILITY=0.0, METHOD=""): |
|||||||||
Attributes |
|||||||||
TYPE |
Type of the simulation to be carried out. Choose from STATIC or DYNAMIC equilibrium. |
||||||||
ERROR |
This specifies the upper limit for the change in residual of the system equations at the static equilibrium point. The iterations are deemed to have converged when the maximum residual in the equations of motion is smaller than this value. The default value for ERROR is 1e-4. |
||||||||
IMBALANCE |
Applicable if Force Imbalance method was chosen. Specifies the maximum force imbalance in the equations of motion that is allowed at the solution point. This should be a small number. The default value for IMBALANCE is 1e-4 force units. |
||||||||
KINETIC_ENERGY_ERROR |
Applicable if MKEAM method was chosen. Specifies the maximum allowable residual kinetic energy of the system at the static equilibrium point. This should be a small number. The default value for KINETIC_ENERGY_ERROR is 1e-5 energy units. |
||||||||
MAXIT |
Specifies the maximum number of iterations that are allowed before simulation stops. If ERROR and KINETIC_ENERGY_ERROR are not satisfied at this point, the equilibrium iterations should be considered as having failed. The default value for MAXIT is 75. |
||||||||
PATTERN |
This attribute controls the frequency of evaluation of the Jacobian matrix during corrector iterations.
Specify PATTERN only when the default setting does not work well. Frequent Jacobian iterations can slow down the simulations dramatically. When not specified, the integrator automatically determines when a new Jacobian is needed by examining the rate of convergence. |
||||||||
STABILITY |
Specifies the fraction of the mass matrix that is to be added to the Jacobian to ensure that it is not singular. The Jacobian matrix can become singular when the system has a neutral equilibrium solution and the initial guess is close to it. To avoid this, a fraction of the mass matrix (known to be non-singular) is added to the Jacobian in order to make it non-singular. The value of stability does not affect the accuracy of the solution, but it may slow the rate of convergence of the Newton-Raphson iterations. Stability should be a small number. The default value for STABILITY is 1e-10. |
||||||||
METHOD |
Specifies the choice of the algorithm to be used for Static or Quasi-static simulation. Choose from following:
MKEAM is not applicable for quasi-static analysis. |
||||||||
CommentsSee Param_Static |
|||||||||
ExampleThis example shows the default settings for the EQUILIBRIUM element that uses the MKEM solution method. EQUILIBRIUM(TYPE="DYNAMIC", ERROR=0.0001, IMBALANCE=0.0001, KINETIC_ENERGY_ERROR=1e-5, MAXIT=75, STABILITY=1e-010)
This example shows the default settings for the EQUILIBRIUM element that uses the FIM_S solution method. EQUILIBRIUM(TYPE="STATIC", ERROR=0.0001, IMBALANCE=0.0001, MAXIT=75, STABILITY=1e-010, METHOD="FIM_S") |