pycba.vehicle.VehicleLibrary#

class VehicleLibrary[source]#

Bases: object

A repository of standard bridge design vehicles, grouped by region.

Access a vehicle through its region namespace:

cba.VehicleLibrary.AU.get_m1600(6.25)     # AS 5100.2 road
cba.VehicleLibrary.AU.get_300la()         # AS 5100.2 rail
cba.VehicleLibrary.US.get_hl93_truck()     # AASHTO LRFD
cba.VehicleLibrary.EU.get_lm71()           # Eurocode EN 1991-2 rail
cba.VehicleLibrary.UK.get_hb(units=45)     # BS 5400 / CS 454
cba.VehicleLibrary.CA.get_cl625()          # CSA S6
cba.VehicleLibrary.CN.get_jtg_vehicle()    # JTG D60

Each getter returns a Vehicle (axle point loads). Where a code pairs the vehicle with a lane / distributed load, that value is given in the getter’s docstring for use as BridgeAnalysis.run_load_model(..., w_lane=).

Regions#

AU

AS 5100.2 and the historical NAASRA models (M1600, S1600, A160, W80, 300LA / LA rail, T44, MS18, ABAG assessment trucks).

US

AASHTO LRFD (HL-93) and the AREA / AREMA Cooper E rail series.

EU

Eurocode EN 1991-2 (Load Model 1, rail Load Model 71).

UK

BS 5400 / CS 454 (HB abnormal vehicle).

CA

CSA S6 (CL-625).

CN

JTG D60 (standard vehicle).

Methods

get_validation_truck

A set of moving loads used for validation on a 20 m span against the textbook "Structural and Stress Analysis", 2nd edn., Megson, p.

plot_vehicle

Plot a vehicle's axles as scaled load arrows along its wheelbase.

class AU[source]#

Bases: object

Australian road & rail loads: AS 5100.2 and the historical NAASRA models.

abag_bdouble_aw = array([58.86 , 83.385, 83.385, 73.575, 73.575, 73.575, 73.575, 73.575,        73.575])#
abag_semitrailer_aw = array([ 58.86  ,  83.385 ,  83.385 , 110.3625, 110.3625,  73.575 ])#
classmethod get_abag_bdouble(iax)[source]#

One of the Australian Bridge Assessment Guidelines (ABAG) 68.5 t B-double trucks.

Parameters:

iax (int) –

The 0-based index of the variable axle spacing required:

  • 0: Variable spacings are 5.5 and 6.5 from front

  • 1: Variable spacings are 6.0 and 6.0 from front

  • 2: Variable spacings are 6.5 and 5.5 from front

Return type:

Vehicle

classmethod get_abag_semitrailer(iax)[source]#

One of the Australian Bridge Assessment Guidelines (ABAG) 45 t semi-trailer trucks.

Parameters:

iax (int) –

The 0-based index of the variable axle spacing required:

  • 0: Variable spacing is 4.4 m

  • 1: Variable spacing is 6.4 m

  • 2: Variable spacing is 8.4 m

  • 3: Variable spacing is 10.4 m

Return type:

Vehicle

static get_example_permit()[source]#

An example B-double type truck that might seek a network access permit.

Return type:

Vehicle

static get_m1600(middle_spacing)[source]#

The AS 5100.2 M1600 load model truck: the notional moving-traffic load, usually critical for short-to-medium spans once the dynamic load allowance is included. Accompanied by a 6 kN/m lane UDL (w_lane=6).

Parameters:

middle_spacing (float) – The variable middle axle-group spacing; min. 6.25 m.

Raises:

ValueError – If the spacing is less than the code minimum of 6.25 m.

Return type:

Vehicle

static get_s1600(middle_spacing)[source]#

The AS 5100.2 S1600 load model truck: the notional stationary-traffic load, critical for longer spans. Accompanied by a 24 kN/m lane UDL (w_lane=24).

Parameters:

middle_spacing (float) – The variable middle axle-group spacing; min. 6.25 m.

Raises:

ValueError – If the spacing is less than the code minimum of 6.25 m.

Return type:

Vehicle

static get_a160()[source]#

AS 5100.2 A160 individual axle load (cl 7.2): a single 160 kN axle.

Return type:

Vehicle

static get_w80()[source]#

AS 5100.2 W80 individual wheel load (cl 7.2): a single 80 kN wheel.

Return type:

Vehicle

static get_la_rail(axle_group_count=10, axle_group_spacing=12, axle_weight=300)[source]#

The AS 5100.2 LA rail load model, including the simulated locomotive. The default 300 kN axle weight is the 300LA; pass axle_weight for other variants (e.g. 250, 150).

Parameters:
  • axle_group_count (int) – The number of axle groups; enough to cover the adverse portion of the influence line for the component being examined.

  • axle_group_spacing (float) – Centre-to-centre group spacing, min. 12 m, max. 20 m (not a gap).

  • axle_weight (float) – The nominal axle weight. Default 300 kN (300LA).

Raises:

ValueError – If the group spacing is outside 12-20 m, or the group count < 1.

Return type:

Vehicle

static get_300la(axle_group_count=10, axle_group_spacing=12)[source]#

The AS 5100.2 300LA rail load model (get_la_rail() with 300 kN axles).

Return type:

Vehicle

static get_t44(variable_spacing=3.0)[source]#

NAASRA / AUSTROADS T44 design truck (the pre-M1600 Australian road load): a 48 kN steer axle and two tandem groups (4 x 96 kN), 432 kN total. Axles at 3.7 m (steer to first tandem), 1.2 m within each tandem, and a variable 3.0-8.0 m gap between the tandem groups. The companion L44 lane load is 12.5 kN/m plus a 150 kN concentrated load per 3 m lane.

Parameters:

variable_spacing (float) – The gap between the two tandem groups, 3.0-8.0 m (default 3.0).

Return type:

Vehicle

static get_ms18(rear_spacing=4.27)[source]#

NAASRA MS18 design truck - the metric form of the AASHTO HS20-44 truck: three axles of 35.6, 142.3 and 142.3 kN (8 / 32 / 32 kip). The front-to-drive spacing is fixed at 4.27 m; the rear (trailer) spacing is varied 4.27-9.14 m for the worst effect. The companion lane load is 9.34 kN/m plus an 80 kN (moment) / 115 kN (shear) concentrated load.

Parameters:

rear_spacing (float) – The variable rear-axle spacing, 4.27-9.14 m (default 4.27).

Return type:

Vehicle

class US[source]#

Bases: object

US road & rail loads: AASHTO LRFD (HL-93) and the AREA Cooper E series.

static get_hl93_truck(rear_spacing=4.3)[source]#

AASHTO LRFD HL-93 design truck (Art. 3.6.1.2.2): three axles of 35, 145 and 145 kN. The front-to-middle spacing is fixed at 4.3 m; the rear (middle-to-back) spacing is varied 4.3-9.0 m to maximise the effect. HL-93 is the truck (or the tandem, whichever governs) combined with the design lane load (w_lane=9.3 kN/m); the 33% dynamic load allowance applies to the truck only.

Parameters:

rear_spacing (float) – The variable middle-to-rear axle spacing, 4.3-9.0 m (default 4.3).

Return type:

Vehicle

static get_hl93_tandem()[source]#

AASHTO LRFD HL-93 design tandem (Art. 3.6.1.2.3): two 110 kN axles at 1.2 m. Combined with the design lane load (w_lane=9.3 kN/m); the heavier of the truck and tandem governs.

Return type:

Vehicle

static get_cooper(E=80.0)[source]#

AREA / AREMA Cooper E-series rail load: two locomotives in series (each a lead axle, four driving axles and a four-axle tender), conventionally followed by a uniform trailing load. The axle pattern is the standard Cooper E10 reference scaled linearly by the E-number E (the maximum driving-axle load, in kips); e.g. E=80 is the common Cooper E80.

Per locomotive the E10 axle loads are 5, 10, 10, 10, 10 (lead + four drivers) and 6.5 x 4 (tender), at spacings 8, 5, 5, 5, 9, 5, 6, 5 ft, with an 8 ft coupling between the two locomotives; values are returned in kN and m. The trailing uniform load is E/10 kip/ft - apply it as w_lane (about 1.46 * E kN/m; E80 ~ 117 kN/m).

Parameters:

E (float) – The Cooper E-number (maximum driving-axle load in kips). Default 80.

Return type:

Vehicle

class EU[source]#

Bases: object

European road & rail loads: Eurocode EN 1991-2.

static get_lm1(alpha_Q=1.0)[source]#

Eurocode EN 1991-2 Load Model 1 tandem system (TS), Lane 1 (Table 4.2): two 300 kN axles at 1.2 m. Accompanied by the Lane-1 UDL of 9 kN/m2, i.e. w_lane=27 kN/m over the 3 m notional lane.

Parameters:

alpha_Q (float) – National-Annex adjustment factor on the axle loads (default 1.0).

Return type:

Vehicle

static get_lm71(alpha=1.0)[source]#

Eurocode EN 1991-2 rail Load Model 71 (cl 6.3.2): four 250 kN axles at 1.6 m centres, with two 80 kN/m distributed loads acting on each side starting 0.8 m beyond the outer axles (use w_lane=80 for the distributed component).

Parameters:

alpha (float) – Classification factor (0.75-1.46; default 1.0).

Return type:

Vehicle

class UK[source]#

Bases: object

UK road loads: BS 5400 / CS 454.

static get_hb(units=45.0, inner_spacing=6.0)[source]#

BS 5400-2 / CS 454 HB abnormal vehicle (cl 6.3): a four-axle bogie, each axle units x 10 kN, at spacings 1.8, inner_spacing and 1.8 m.

Parameters:
  • units (float) – Number of HB units, typically 25-45 (250-450 kN/axle). Default 45.

  • inner_spacing (float) – The variable inner spacing; the code uses 6, 11, 16, 21 or 26 m for the worst effect. Default 6 m.

Return type:

Vehicle

class CA[source]#

Bases: object

Canadian road loads: CSA S6.

static get_cl625()[source]#

CSA S6 CL-625 design truck (cl 3.8.3.1.2): five axles of 50, 125, 125, 175 and 150 kN (625 kN total) at spacings 3.6, 1.2, 6.6 and 6.6 m. The CL-625 lane load is 80% of these axle loads superimposed on a w_lane=9 kN/m UDL.

Return type:

Vehicle

class CN[source]#

Bases: object

Chinese road loads: JTG D60.

static get_jtg_vehicle()[source]#

China JTG D60-2015 standard vehicle load (vehicle load, cl 4.3.1): five axles of 30, 120, 120, 140 and 140 kN (550 kN total) at spacings 3.0, 1.4, 7.0 and 1.4 m. The companion lane load is a span-dependent UDL (10.5 kN/m for Highway Class I) plus a concentrated load.

Return type:

Vehicle

static get_validation_truck()[source]#

A set of moving loads used for validation on a 20 m span against the textbook “Structural and Stress Analysis”, 2nd edn., Megson, p. 579.

Return type:

Vehicle

static plot_vehicle(vehicle, ax=None, title=None, units=None, color='tab:red', show=True)#

Plot a vehicle’s axles as scaled load arrows along its wheelbase.

Each axle is an arrow whose height scales with its load and is labelled with the load magnitude; the title reports the total axle load and the wheelbase.

Parameters:
  • vehicle (Vehicle) – The vehicle to draw (a pycba.bridge.Vehicle).

  • ax (matplotlib.axes.Axes, optional) – Axes to draw into; a new figure is created if omitted.

  • title (str, optional) – A title for the plot. The total axle load and wheelbase are appended.

  • units (str or pycba.units.UnitSystem, optional) – Display unit system for the labels (see pycba.set_units()). PyCBA is unit-agnostic, so this only relabels the axle loads and the axis - the values are not converted (the built-in models are in kN, m).

  • color (str) – Colour of the axle-load arrows.

  • show (bool) – Call matplotlib.pyplot.show() before returning when a new figure is created (default True).

Return type:

matplotlib.axes.Axes

Raises:

TypeError – If vehicle is not a Vehicle.