Welcome to Adams/Solver Subroutines - Kxcad.net
Welcome to Adams/Solver Subroutines - Kxcad.net
Welcome to Adams/Solver Subroutines - Kxcad.net
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Input Arguments<br />
<strong>Welcome</strong> <strong>to</strong> <strong>Adams</strong>/<strong>Solver</strong> <strong>Subroutines</strong><br />
id An integer variable that provides the identifier of the FLEX_BODY<br />
statement requesting information from the DMPSUB. From the identifier,<br />
<strong>Adams</strong>/<strong>Solver</strong> au<strong>to</strong>matically knows other information (such as the par<br />
argument) available in the corresponding statement.<br />
time A double-precision variable containing the current simulation time.<br />
par A double-precision array of constants taken, in order, from the USER<br />
parenthetical list of the FLEX_BODY statement.<br />
npar An integer variable that indicates the number of constants specified in the<br />
USER parenthetical list. The primary purpose of npar is <strong>to</strong> provide the<br />
DMPSUB evaluation subroutine with the number of values s<strong>to</strong>red in the par<br />
array.<br />
freq An array of natural frequencies for the modes in cycles per user-defined time.<br />
nmode The <strong>to</strong>tal number of modes associated with the FLEX_BODY statement.<br />
h The current integra<strong>to</strong>r step size. This is useful if you are using damping <strong>to</strong><br />
prevent integration problems.<br />
Output Argument<br />
cratios An array of damping ratios as a fraction of critical damping. There must be<br />
one value computed for each of the modes.<br />
Examples<br />
To control the modal damping of individual modes using a user-written subroutine, use CRATIO=USER<br />
according <strong>to</strong> <strong>Adams</strong> standard practice. The damping ratios for the selected modes are obtained through<br />
a call <strong>to</strong> the DMPSUB subroutine. For a model using units of seconds for time, this example illustrates:<br />
• 1% critical damping for modes less than 100 Hz.<br />
• 10% critical damping for modes greater or equal <strong>to</strong> 100 Hz but less than 1 kHz.<br />
• 100% critical damping for modes greater than or equal <strong>to</strong> 1 kHz.<br />
The following statement defines the constants <strong>Adams</strong>/<strong>Solver</strong> is <strong>to</strong> pass <strong>to</strong> the DMPSUB evaluation<br />
subroutine:<br />
FLEX_BODY/1, I=101, J=201<br />
, CRATIO=USER(.01,100,.1,1000,1)<br />
For the current example of this subroutine, see dmpsub.f.<br />
161