CSI Software uses d’Alembert’s principal to automatically determine [acceleration loads] at each joint and element of a structure. These loads are used in the application of ground acceleration during time-history analysis. The [CSI Analysis Reference Manual] (chapter: Load Cases, section: Acceleration Loads) explains this topic in greater detail.
To manually apply acceleration loads, it is necessary to first convert the acceleration time-history record into its corresponding displacement record. Appendix J of Dr. Edward L. Wilson’s text Static and Dynamic Analysis of Structures outlines this process.
To summarize Appendix J, within each time increment, ground acceleration is idealized as linear (Figure 1).
Figure 1 - Ground acceleration record
Integration of acceleration and velocity, at each time step, yields expressions for ground velocity and displacement (Figure 2).
Unable to render embedded object: File (Figure 5.png) not found.
Figure 2 - Expressions for a, v, and d, derived through integration
Evaluation of these expressions at t = ∆t yields a set of recursive equations (Figure 3).
Unable to render embedded object: File (Figure 6.png) not found.
Figure 3 - Recursive equations characterizing ground motion
These expressions may then be used to translate a ground acceleration record into its corresponding displacement record.
The double integration procedure, previously described, should produce zero displacement at either end of the record. If non-zero displacement does exist, it is then necessary to apply a base line correction. Figure 4 presents a formulation for this process.
Unable to render embedded object: File (Figure 7.png) not found.
Figure 4 - Algorithm for zero displacement at record ends
Once the displacement time-history record has been produced, users may continue with manual acceleration-load application by defining a load pattern which applies, at joints of interest, joint-displacement unit values in the direction of simulated acceleration. It is also necessary to restrain these joints only in the direction of loading. Users may then create a time-history function which will envelope the response of these points, and finally, define a time-history load case which specifies both the displacement and the time function.