Example: Pull-Test for a Grouted Cable Anchor

Problem Statement


To view this project in 3DEC, use the menu command Help ► Examples…. Choose “BlockSel/ Cable/ pullout” and select “pullout.prj” to load. The data files used are shown at the end of this example.

The most common way to determine cable bolt properties is to perform pull-out tests on small segments of grouted cables in the field. Typically, segments from 10 to 50 cm in length are grouted into boreholes. The ends of these segments are pulled with a jack mounted to the surface of the tunnel, and connected to the cable via a barrel-and-wedge type anchor. The force applied to the cable and the deformation of the cable are plotted to produce an axial force/deflection curve. From this curve, the peak shear strength of the grout bond is normally determined and converted to a strength in tons/m cable length.

In this example, we simulate a pull-test on a single 15.2 mm diameter cable. The cable material properties are:

Table 1: Cable properties
cable area 181 mm^2
cable modulus 98.6 GPa
cable bond length 17.7 m
cable tensile capacity 0.5 MN

We select the following properties for the grout:

Table 2: Grout properties
grout bond stiffness 112 MN/m/m
grout cohesive strength 0.175 MN/m

These values are representative of a weak grout (e.g., see Hyett et al. 1992). Note that the cable length and grout strength are selected for rapid execution of the model. The purpose is to illustrate the performance of the cable elements.

The cable is divided into 10 segments. The pull force is applied by specifying a velocity for the first node.

FISH function pullf is used to monitor the pull force on the cable (pull force per cable length). The pull force is determined from the sum of reaction forces that develop on the block as the cable is pulled. Note that the reaction force is set to zero at the end of cycling, so the pull force calculation in pullf ends one step before cycling stops. The data file for this model is shown in pullout.dat

Figure 1 displays the axial force distribution in the cable at the end of the test. A plot of the total pull force versus displacement resulting from the test is shown in Figure 2. As this figure shows, the peak load is very similar to the input value for grout cohesive strength.


Figure 1: Axial force in the cable for the pull test.


Figure 2: Cable grout shear force in N/m versus cable displacement in meters (grout friction = 0).

The cable shear bond strength will, in general, increase with increasing effective pressure acting on the cable. In the above model that does not occur because the frictional strength of the grout was set to 0. To test the dependency on confining stress, the same model is run but a non-zero grout friction and perimeter are assigned. The friction angle of the grout is set to 30◦. The perimeter is set assuming the hole diameter is twice the cable diameter. Inline FISH is used to perform the calculation. The result of this test is shown in Figure 3. You can see that this bolt is indeed stronger than the bolt with zero frictional grout strength.


Figure 3: Cable grout shear force in N/m versus cable displacement in meters (grout friction = 30◦).


Hyett, A. J., W. F. Bawden and R. D. Reichert. “The Effect of Rock Mass Confinement on the Bond Strength of Fully Grouted Cable Bolts,” Int. J. Rock Mech. Min. Sci. & Geomech. Abstr., 29(5), 503-524 (1992).

Data Files


model new
model random 10000
model large-strain on

block create brick -1,1 -1,1 -2,0

block zone gen edgelength .5 
block zone cmodel assign elastic
block zone prop bulk 5e9 shear 3e9 density 2500

block gridpoint apply vel 0 0 0 range pos-x -1
block gridpoint apply vel 0 0 0 range pos-x 1
block gridpoint apply vel 0 0 0 range pos-y -1
block gridpoint apply vel 0 0 0 range pos-y 1
block gridpoint apply vel-z 0 range pos-z -2
block gridpoint apply vel-z 0 range pos-z 0

struct cable create by-line 0,0,-1.77  0,0,-0.01 seg 10
struct cable prop cross-sectional-area 181e-6 young 98.6e9 yield-tension 5e6 grout-stiffness 1.12e8 grout-cohesion 1.75e5

; apply velocity in local coordinates: x is axial
struct node fix velocity-x range pos-z -0.02 0.02
struct node ini velocity-x 0.05 range pos-z -0.02 0.02

; apply stress
block insitu stress -2e6 -2e6 0 0 0 0
fish def pullf
    local sum = 0.0
    loop foreach gpp block.gp.list
        sum = sum - block.gp.force.reaction.z(gpp)
    pullf = sum / 1.77 ; bolt length

fish hist pullf

struct node his disp-z pos 0 0 0
struct cable his grout-stress pos 0 0 -1

model save 'pullout-ini'
model cycle 10000

model save 'pullout'


model rest 'pullout-ini'

; add frictional strength - assume hole radius is twice cable radius
struct cable prop grout-friction 30.0 grout-perimeter [2.0*math.pi*2.0*math.sqrt(181e-6/math.pi)]
model cycle 10000

model save 'pullout-confined'