02.04.2013 Views

Welcome to Adams/Solver Subroutines - Kxcad.net

Welcome to Adams/Solver Subroutines - Kxcad.net

Welcome to Adams/Solver Subroutines - Kxcad.net

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!