Tyre and Soil#
This page gives the tyre and soil model of the vehicles: the soil library, the surface selection, the sinkage, the tyre forces and the ruts. The Maxxum and the Polaris use the same functions with different parameters.
Scope and Assumptions#
The model computes the forces of one tyre on the ground in each physics step.
The inputs are the wheel load, the wheel speed, the speed of the contact point and the state of the ground.
The outputs are the sinkage, the longitudinal force, the lateral force, the rolling resistance torque and the rut depth.
The source files are AcresSoilModel.cpp, AcresVehicleModel.cpp and AcresSurfaceMap.cpp. These files are engine-free models.
The game has three ground models.
| Model | Condition | Content |
|---|---|---|
| Soil library | The surface is deformable and a soil class is active. | Seven soil classes, moisture and density effects, an inflated tyre. This is the default. |
| Legacy soil | The surface is deformable and the key soil.class is absent. |
One fixed Bekker soil with a rigid footprint. |
| Hard surface | The surface is not deformable. | A friction curve and a rolling resistance coefficient. |
The model makes these assumptions.
- The soil state is constant through the depth of the surface layer. The soil water model gives one water content for a layer of 0.3 m.
- A tyre contact is one patch with one mean ground pressure. The model does not compute a pressure distribution.
- The soil keeps no shear history. A rut changes the density and the sinkage only.
- The lateral force is a linear function of the slip angle. The tyre has no camber force and no aligning torque.
- The lateral force has priority in the friction circle. The longitudinal force gets the remainder.
- The parameters of the soil classes are typical values from the literature. They are not measurements of ACRE soils.
Symbols#
| Symbol | Quantity | Unit |
|---|---|---|
| \(N\) | Wheel load, normal to the ground | N |
| \(N_0\) | Static wheel load | N |
| \(b\) | Tyre section width | m |
| \(r\) | Unloaded tyre radius | m |
| \(p_i\), \(p_c\) | Inflation pressure and carcass pressure | Pa |
| \(p_g\) | Ground pressure below the flat part of the tyre, \(p_i + p_c\) | Pa |
| \(\delta\) | Tyre deflection | m |
| \(\theta\) | Volumetric water content of the soil | m³/m³ |
| \(\theta_r\), \(\theta_s\) | Residual and saturated water content | m³/m³ |
| \(S_e\) | Effective saturation | - |
| \(w\) | Gravimetric water content | kg/kg |
| \(\rho\) | Dry bulk density of the soil | Mg/m³ |
| \(\rho_l\), \(\rho_f\), \(\rho_m\) | Loose, firm and maximum density of a soil class | Mg/m³ |
| \(\gamma\) | Moist unit weight of the soil | N/m³ |
| \(\psi\) | Matric suction | Pa |
| \(\sigma_s\) | Suction stress | Pa |
| \(c'\), \(\phi'\) | Drained cohesion and friction angle | Pa, rad |
| \(c_d\) | Drained cohesion with the suction stress | Pa |
| \(c_u\) | Undrained strength | Pa |
| \(f_u\) | Undrained share | - |
| \(\tau(\sigma)\) | Shear strength at the normal stress \(\sigma\) | Pa |
| \(k_c\), \(k_\phi\), \(n\) | Bekker moduli and sinkage exponent | N/m^(n+1), N/m^(n+2), - |
| \(k\) | Bekker modulus for the tyre width, \(k_c / b + k_\phi\) | Pa/m^n |
| \(K\) | Shear deformation modulus (Janosi-Hanamoto) | m |
| \(CI\) | Cone index | Pa |
| \(\mu_r\), \(c_a\) | Friction and adhesion between rubber and soil | -, Pa |
| \(\xi\) | Surface wetness | - |
| \(z_0\) | Sinkage of a rigid wheel | m |
| \(z_s\), \(z_j\) | Sinkage without slip and with slip | m |
| \(z_{rut}\) | Depth of the rut at the contact point | m |
| \(l_f\), \(l\) | Length of the flat part and length of the contact | m |
| \(A\), \(p\) | Contact area and mean ground pressure | m², Pa |
| \(H\) | Shear capacity of the contact | N |
| \(F_s\) | Shear force of the soil on the tyre (thrust) | N |
| \(R_c\), \(R_b\) | Compaction resistance and bulldozing resistance | N |
| \(F_x\), \(F_y\) | Longitudinal and lateral force on the chassis | N |
| \(\omega\) | Wheel speed | rad/s |
| \(v_x\), \(v_y\) | Speed of the contact point along the wheel heading and to its right | m/s |
| \(s\) | Longitudinal slip | - |
| \(j\) | Shear displacement at the middle of the contact | m |
| \(h_r\) | Relaxation length of the shear displacement | m |
| \(\alpha\) | Slip angle | rad |
| \(\mu\) | Grip ratio, \(H / N\) on soil and the friction coefficient on a hard surface | - |
| \(\Delta t\) | Physics step, 1/120 | s |
Surface under a Wheel#
The function AAcresVehiclePawn::SampleSurface selects a surface template for each wheel in each physics step.
A template is one entry of the block surfaces in tractor.json. The selection uses this sequence.
- A surface that the user selects has priority. The keys 1 to 6 and the option
-VehicleSurface=select it. - If not, the surface is
mapped. The key 0 selectsmappedagain. - On the ACRE map, the surface map gives the class of the polygon at the contact point.
- Without the surface map file, the survey grid
surfaces.u8gives the surface of the cell. - On other maps, a road mask selects
gravelordry_soil.
The surface map is the file Content/Simulation/ACRE/surface_polygons.json. The class FSurfaceMap puts its 521 polygons into buckets of 2 m.
The polygon with the highest priority wins when polygons overlap. The later polygon in the file wins when the priorities are equal.
A point in no polygon is field soil. The contact point itself selects the class, thus a wheel changes its surface at the surveyed edge.
| Map Class | Priority | Template | Ground |
|---|---|---|---|
field |
dry_soil |
The soil class of the mapped soil unit, with the water and the ruts of the farm. | |
asphalt |
60 | asphalt |
Hard surface. |
concrete |
55 | concrete |
Hard surface. |
gravel |
40 | gravel |
Hard surface. |
dirt |
30 | dirt_track |
Bare soil with traffic compaction 0.7. |
grass_lane |
20 | sod_lane |
Sod with traffic compaction 0.6 and root cohesion 3 kPa. |
grass |
10 | sod |
Sod with traffic compaction 0.2 and root cohesion 6 kPa. |
The game then adds the live state of the ground. These rules apply to a wheel that touches the ground.
- Water and ruts. On the mapped surface,
FAcresFarmRuntime::Samplereplaces the template values with the farm state. The page Soil Water gives the water model. - Water content. The value is a bilinear blend of the four nearest cells of 4 m, plus the sub-grid value of the wheel tracks.
- Surface wetness. On soil, \(\xi\) is the largest of three values: the wetting of the layer, the rain film and the water depth divided by 2 mm.
- Surface wetness on a hard surface. \(\xi\) is the water depth divided by 2 mm, with a maximum of 1.
- Soil class. With
soil.classset toauto, the functionSoilLibraryClassAtreads the class at the contact point. - Tilled ground. Where an implement tilled the ground in this session, the density is the loose density of the class. The root cohesion and the traffic compaction are zero.
The function SoilLibraryClassAt uses these rules. The soil unit of a survey cell is in ACRE/soil_units.u8, and the wilting point of each unit is in ACRE/soils.json.
| Condition | Soil Class |
|---|---|
| The field has a texture preset from the menu. | The class of the preset. |
The option -VehicleSoilTexture= gives a texture group. |
The class of that group. |
| The field has a custom soil from the menu. | The class of the group of its wilting point. |
| The soil unit is fine: the wilting point is 0.19 m³/m³ or more. | silty_clay_loam |
| The soil unit is medium. | silt_loam |
| The soil unit is coarse: the wilting point is 0.10 m³/m³ or less. | sandy_loam |
| The point is outside the soil grid. | silt_loam |
The first condition that is true gives the class. When soil.class is a class identifier, all wheels use that class, but a texture preset of a field has priority.
The density of the undisturbed ground comes from the first value in this list that is larger than zero.
- The loose density of the class, on tilled ground.
- The density from the traffic compaction \(t_c\) of the template (function
DensityFromCompaction). - The key
soil.density_mg_m3. - The firm density of the class.
Soil Library#
The soil library is a table of seven texture classes in AcresSoilModel.cpp. The functions SoilClassAt and FindSoilClass read it.
The file Content/Simulation/soil_library.json is a copy of the table for other tools. The game does not read this file.
To change a class, change the table in the source file and build the game again. Then write the copy again with this command.
The identifier of a class is its name in lower case with underscores, for example silty_clay_loam.
Water retention, density and plasticity
| Parameter | Unit | Sand | Loamy Sand | Sandy Loam | Loam | Silt Loam | Silty Clay Loam | Clay |
|---|---|---|---|---|---|---|---|---|
| Sand content | % | 92 | 82 | 65 | 40 | 20 | 10 | 20 |
| Clay content | % | 3 | 6 | 10 | 20 | 18 | 34 | 55 |
| \(\theta_r\) | m³/m³ | 0.045 | 0.057 | 0.065 | 0.078 | 0.067 | 0.089 | 0.068 |
| \(\theta_s\) | m³/m³ | 0.43 | 0.41 | 0.41 | 0.43 | 0.45 | 0.43 | 0.38 |
| \(\alpha_{vg}\) | 1/m | 14.5 | 12.4 | 7.5 | 3.6 | 2.0 | 1.0 | 0.8 |
| \(n_{vg}\) | - | 2.68 | 2.28 | 1.89 | 1.56 | 1.41 | 1.23 | 1.09 |
| \(\rho_l\), loose | Mg/m³ | 1.45 | 1.40 | 1.30 | 1.25 | 1.15 | 1.10 | 1.00 |
| \(\rho_f\), firm | Mg/m³ | 1.60 | 1.58 | 1.52 | 1.45 | 1.45 | 1.40 | 1.25 |
| \(\rho_m\), maximum | Mg/m³ | 1.80 | 1.80 | 1.80 | 1.75 | 1.75 | 1.65 | 1.47 |
| Liquid limit | kg/kg | 0 | 0 | 0.20 | 0.30 | 0.31 | 0.41 | 0.45 |
| Plastic limit | kg/kg | 0 | 0 | 0.16 | 0.19 | 0.22 | 0.22 | 0.22 |
| Conductivity \(K_s\) | mm/h | 117.8 | 29.9 | 10.9 | 3.4 | 6.5 | 1.0 | 0.3 |
Strength, sinkage and shear deformation
| Parameter | Unit | Sand | Loamy Sand | Sandy Loam | Loam | Silt Loam | Silty Clay Loam | Clay |
|---|---|---|---|---|---|---|---|---|
| \(c'\), loose | kPa | 0.2 | 0.4 | 1.5 | 3.0 | 2.5 | 4.0 | 6.0 |
| \(c'\), firm | kPa | 0.5 | 1.0 | 3.0 | 5.0 | 6.0 | 10.0 | 15.0 |
| \(\phi'\), loose | deg | 30 | 30 | 29 | 30 | 29 | 25 | 20 |
| \(\phi'\), firm | deg | 36 | 35 | 34 | 34 | 33 | 29 | 24 |
| \(n\) | - | 0.95 | 0.85 | 0.66 | 1.01 | 0.87 | 0.73 | 0.50 |
| \(k_{c,ref}\) | kN/m^(n+1) | 10 | 8 | 6.9 | 0.06 | 20 | 41.6 | 13.19 |
| \(k_{\phi,ref}\) | kN/m^(n+2) | 2850 | 1600 | 752 | 5880 | 4000 | 2471 | 692.15 |
| Reference density | Mg/m³ | 1.50 | 1.45 | 1.30 | 1.45 | 1.45 | 1.40 | 1.25 |
| Reference \(S_e\) | - | 0.02 | 0.20 | 0.50 | 0.60 | 0.60 | 0.85 | 0.95 |
| \(K\), loose | cm | 2.5 | 2.5 | 2.2 | 2.0 | 2.0 | 1.8 | 1.5 |
| \(K\), firm | cm | 1.2 | 1.2 | 1.2 | 1.0 | 1.0 | 0.8 | 0.6 |
| Bulldozing share \(\beta_{class}\) | - | 1.0 | 0.8 | 0.5 | 0.2 | 0.15 | 0.1 | 0.1 |
| Structure factor \(S_t\) | - | 1 | 1 | 3 | 3 | 3 | 3 | 3 |
Interfaces and cone index
| Parameter | Unit | Sand | Loamy Sand | Sandy Loam | Loam | Silt Loam | Silty Clay Loam | Clay |
|---|---|---|---|---|---|---|---|---|
| \(\mu_r\), dry | - | 0.75 | 0.78 | 0.85 | 0.90 | 0.90 | 0.90 | 0.85 |
| \(\mu_r\), wet | - | 0.65 | 0.62 | 0.60 | 0.55 | 0.50 | 0.45 | 0.35 |
| \(c_a\) | kPa | 0 | 0 | 0.5 | 1.0 | 1.5 | 2.0 | 3.0 |
| Metal friction, dry | deg | 25 | 24 | 24 | 23 | 22 | 21 | 20 |
| Metal friction, wet | deg | 22 | 21 | 20 | 18 | 17 | 15 | 12 |
| Metal adhesion, peak | kPa | 0.3 | 0.5 | 2 | 4 | 5 | 8 | 10 |
| \(CI_{ref}\) | MPa | 0.425 | 0.50 | 1.00 | 1.20 | 1.20 | 1.30 | 1.50 |
| \(C_2\) | (kg/kg)² | 0.010 | 0.010 | 0.008 | 0.004 | 0.004 | 0.004 | 0.004 |
| \(C_3\) | kg/kg | 0.06 | 0.07 | 0.03 | 0 | 0 | 0 | 0 |
| Shape exponent \(q\) | - | 1 | 1 | 1 | 1.5 | 1.5 | 1.5 | 1.5 |
The density exponent of the cone index is 3 for all classes. The section References gives the source of each group of values.
Soil State#
The function SoilStateAt evaluates a soil class at a water content \(\theta\), a dry density \(\rho\), a surface wetness \(\xi\) and a root cohesion \(c_R\).
The result is the structure FSoilState. Moisture changes the soil through the equations below, not through a table.
Density Position#
The function limits the density to the range \(0.7\,\rho_l\) to \(\rho_m\). The density position \(P\) is 0 for loose soil and 1 for firm soil.
\(\Lambda\) is the looseness. The drained strength and the shear deformation modulus are linear in \(P\) between the loose value (index \(l\)) and the firm value (index \(f\)).
Water Content and Suction#
A compacted soil has less pore space. The saturated water content is not more than 95 % of the porosity, with the particle density 2.65 Mg/m³.
The suction follows the van Genuchten curve, with a maximum of 1.5 MPa. Here \(\rho_w g\) is 9806.65 N/m³ and \(m = 1 - 1/n_{vg}\).
The suction stress of Lu and Likos adds apparent cohesion. Its maximum is 150 kPa.
The root cohesion \(c_R\) comes from the surface template. Its range is 0 to 50 kPa.
Undrained Strength of Wet Fines#
A tyre loads the soil for a fraction of a second. A plastic soil with a low conductivity cannot drain in this time when it is near saturation. The undrained strength follows Wroth and Wood, as a function of the liquidity index \(LI\). \(LL\) and \(PL\) are the liquid limit and the plastic limit.
Here \(\operatorname{smoothstep}(t) = t^2(3 - 2t)\) for \(t\) between 0 and 1, and \(K_s\) is in mm/h.
A soil without plasticity has \(f_u = 0\), thus its undrained strength has no effect. The function SoilShearStrengthPa gives the shear strength.
The minimum makes sure that more water cannot increase the strength.
The fields CohesionPa and FrictionDeg of the state are one representative pair for a normal stress of 100 kPa.
Bekker Moduli#
Each class has Bekker moduli for one reference state. The function scales them with the bearing capacity of the current state (the form of Reece). The bearing capacity is that of a strip of width \(B = 0.5\) m, with the factors of Prandtl, Reissner and Vesic.
For \(\tan\phi\) below \(10^{-4}\), \(N_c = \pi + 2\). A saturated surface layer uses the buoyant unit weight.
\(Q_{ref}\) is the same expression for the reference density and the reference saturation of the class, without root cohesion. The exponent \(n\) does not change.
Cone Index#
The cone index uses the form of Ayers and Perumpral with a shape exponent \(q\). \(CI_{ref}\) is the value at the firm density and \(S_e = 0.6\).
The tyre model does not use the cone index. The HUD, the session log and the tests show it, and the tests compare the model with the Brixius equations.
Interfaces#
A rain film or a surface near saturation decreases the friction between rubber and soil.
The adhesion \(c_a\) is the class value. The state also contains the friction angle and the adhesion between soil and metal. The implement model uses these two values. The page Implement Mechanics gives their use.
\(w_{peak}\) is the plastic limit for a plastic soil. For other soils it is the water content at a suction of 33 kPa. The bulldozing share of the state is the class value multiplied by the looseness: \(\beta = \beta_{class}\,\Lambda\).
Example States#
This table shows the silt loam at its firm density of 1.45 Mg/m³, at four values of \(S_e\). The values are from soil_library.json.
| Quantity | Unit | 0.2 | 0.5 | 0.8 | 1.0 |
|---|---|---|---|---|---|
| Water content \(\theta\) | m³/m³ | 0.140 | 0.249 | 0.358 | 0.430 |
| Cohesion \(c\) | kPa | 38.2 | 14.1 | 8.8 | 7.6 |
| Friction angle \(\phi\) | deg | 33.0 | 33.0 | 33.0 | 23.0 |
| \(k_c\) | kN/m^(n+1) | 53.2 | 22.8 | 16.4 | 7.0 |
| \(k_\phi\) | kN/m^(n+2) | 10 646 | 4555 | 3280 | 1403 |
| Cone index | MPa | 6.00 | 1.73 | 0.64 | 0.29 |
| Rubber friction \(\mu_r\) | - | 0.90 | 0.90 | 0.80 | 0.50 |
Ruts and Compaction#
A wheel that sinks leaves a rut. The farm keeps the rut depth in a map with cells of 0.25 m (function FAcresFarmRuntime::Wheel).
The function goes across the footprint of the tyre in steps of 0.125 m. The footprint length is the contact length plus the travel of this step.
The rut keeps 65 % of the sinkage. The model assumes that the other 35 % comes back. No measurement supports this share.
A rut does not become less deep with time. Tillage removes the ruts of the cells that the implement works. The saved farm state contains the ruts, thus the ruts stay when you load the state. Without the farm, the game keeps a rut map for the vehicle with the same rule, and a reset clears it.
A rut changes the next pass in four ways.
- Density. The soil below the rut is denser, thus stronger (function
CompactedDensity). - Sinkage. The wheel is at the rut depth or deeper: \(z_w = \max(z_{rut},\ z_j)\).
- Resistance. The compaction resistance and the bulldozing resistance act only on the sinkage below the rut.
- Water. Standing water fills the ruts first. The farm also decreases the infiltration of a compacted cell.
The density follows from mass conservation in the layer of thickness \(H_c\) (soil.compaction_layer_m, 0.3 m).
Half of the rut volume is compaction. The other half moves to the sides of the rut.
The rear wheels of a vehicle that moves straight run in the ruts of the front wheels. This is the multipass effect of the model. The test "second pass in the rut" shows this effect on wet silt loam. The density increases from 1.250 to 1.306 Mg/m³, and the soil resistance decreases from 1398 N to 189 N.
Tyre on Hard Ground#
With an inflation pressure above zero, the tyre is an inflated membrane with the shape of a torus (function TyreDeflection).
The ground plane cuts the torus in an ellipse of area \(2\pi\delta\sqrt{r b / 2}\). This area carries the load at the pressure \(p_g\).
\(k_t\) is the vertical rate of the tyre. The suspension uses it, see Maxxum 150 Dynamics. On a hard surface, the contact area and the contact length are:
For the Maxxum at 80 kPa, \(k_t\) is 274 kN/m for a front tyre and 341 kN/m for a rear tyre. The rear tyre has a deflection of 5.0 cm at its static load of 17.1 kN.
Pressure and Sinkage#
The function TyreOnSoil puts the tyre on the soil state. It follows the flexible tyre and rigid wheel model of Wong.
First it computes the sinkage of a rigid wheel and the ground pressure below that wheel (Bekker).
The tyre is in one of two modes.
| Mode | Condition | Sinkage | Flat Length | Deflection |
|---|---|---|---|---|
| Flexible (1) | \(p_i > 0\) and \(p_g < p_{gcr}\) | \(z = (p_g / k)^{1/n}\) | \(l_f = \min\bigl(N / (b\,p_g),\ 1.6\,r\bigr)\) | \(\delta = r - \sqrt{r^2 - l_f^2 / 4}\) |
| Rigid (2) | All other conditions | \(z = z_0\) | \(l_f = 0\) | \(\delta = 0\) |
In the flexible mode, the bottom of the tyre is flat and the soil below it carries the pressure \(p_g\). A lower inflation pressure thus gives a larger contact and less sinkage on soft soil.
Slip sinkage. A tyre that slips digs into the soil. The model uses the relation of Lyasko.
\(z_{max}\) is soil.max_sinkage_m. \(\tilde{s}\) is the absolute slip after a lag over one contact length of travel (function SettleWheels).
Contact. The contact is the rear half of the flat part plus the front arc up to the soil surface. The model has no contact behind the flat part.
When \(r - \delta - z_j\) is not positive, the front arc term is \(r\).
Load and sinkage together. The sinkage extends the suspension, and this decreases the load. The function PrepareWheel solves the two quantities together.
It looks for the load \(N\) that the suspension gives when the compression decreases by \(\max(z_{rut},\ z_j(N))\).
The search is a bisection of the range 0 to \(6 N_0\) in 18 steps.
The wheel then is at the depth \(z_w = \max(z_{rut}, z_j)\), and the game applies the tyre forces at the bottom of the rut.
Motion Resistance#
The soil resistance acts on the axle, against the direction of travel. The function TyreOnSoil computes its two parts.
Compaction resistance. This is the compaction work of Bekker for each metre of travel. The work presses the rut from its depth before the pass to the sinkage without slip.
The slip sinkage is excavation, and the slip loss contains its energy. It increases only the entry angle, which is the square root factor.
Bulldozing resistance. A tyre pushes loose soil in front of it. The term acts on the new sinkage \(z_f = \max(0,\ z_j - z_{rut})\). It uses the local shear values of Terzaghi: \(\tfrac{2}{3}c\) and \(\tan\phi^* = \tfrac{2}{3}\tan\phi\).
\(N_c\) and \(N_q\) are the bearing factors for \(\phi^*\). The share \(\beta\) is zero at the firm density, thus firm soil does not bulldoze.
Force on the axle. The function SettleWheels applies the sum \(R = R_c + R_b\). The force decreases to zero near standstill.
A limit prevents that the force reverses the motion of the wheel in one step.
Rolling resistance of the tyre. The flexing of the tyre is a torque on the wheel, not a force on the axle.
\(k_h\) is tyre_hysteresis, \(a_r\) is the aspect ratio and \(\delta_h\) is the hard-ground deflection at the load \(N\).
For a rear tyre of the Maxxum at its static load, \(f\) is 0.030. The legacy soil model uses a different coefficient, see Legacy Soil Model.
Shear Capacity#
The shear capacity \(H\) is the largest shear force that the contact can give. The function TyreOnSoil computes it in three steps.
Lugs. The lugs carry the load on a share \(a_l\) of the contact (tyre_lug_area_ratio). They thus sink in at a higher pressure.
\(h_l\) is the lug height and \(e\) is the embedded fraction of the lugs.
Soil. The shear strength at the mean pressure has a cohesive part and a frictional part. Each part gets the grouser factor of Bekker.
Interface. Lugs that are not in the soil slide on the rubber. Wet plastic soil fills the space between the lugs, thus the factor \(1 - f_u\).
For a tyre without lugs, \(\eta_i = 1\) and \(H = \min(H_{soil}, H_{int})\).
Longitudinal Force#
The slip compares the speed of the tread with the speed of the contact point (function Slip). The floor of 0.2 m/s keeps the value finite near standstill.
The model keeps the shear displacement \(j\) of each wheel as a state. It increases with the slip speed and decreases while the tread rolls through the contact.
The driveline solve integrates this equation with the backward Euler method for each trial wheel speed.
In steady motion, \(j = s\,h_r\) and \(s_t = s\). At standstill the tyre acts as a spring, thus a parked vehicle does not vibrate. The shear force follows the Janosi-Hanamoto relation at the middle of the contact.
\(K_{tread}\) is tyre_tread_k_m. It is the shear compliance of the tread and the carcass, in series with the soil.
The friction circle then limits the force, and the motion resistance decreases the force on the chassis.
The functions are TyreForce and SettleWheels. A wheel that does not touch the ground has no tyre force.
Lateral Force and Combined Slip#
The function PrepareWheel computes the lateral force before the driveline solve. The slip angle uses a speed floor of 0.2 m/s.
\(C_\alpha\) is cornering_stiffness_per_load. The force follows its target with a relaxation length \(L_r\) (lateral_relaxation_m).
The lateral force and the longitudinal force share one friction circle. The lateral force has priority.
On soil, \(\mu N\) is the shear capacity \(H\). The same capacity thus limits traction, braking and cornering.
Hard Surfaces#
On asphalt, concrete and gravel the tyre does not sink. The grip ratio is the friction coefficient of the template, decreased by a water film (function HardSurfaceFriction).
| Surface | Dry Friction | Wet-to-Dry Ratio | Wet Friction | Rolling Coefficient |
|---|---|---|---|---|
asphalt |
0.90 | 0.6 / 0.85 = 0.706 | 0.635 | 0.015 |
concrete |
0.85 | 0.8 / 0.85 = 0.941 | 0.800 | 0.012 |
gravel |
0.65 | 0.85 | 0.553 | 0.035 |
The dry friction is \(\mu_0\), the wet-to-dry ratio is \(q_w\) and the wet friction is \(\mu\) at \(\xi = 1\).
The longitudinal force is a smooth friction curve of the transient slip. \(k_s\) is 9 for the Maxxum.
The curve reaches 95 % of \(\mu N\) at 20 % slip. The lateral force and the friction circle are the same as on soil.
The rolling resistance torque uses the coefficient rolling of the template.
Without a soil class (legacy), the wet factor is \(1 - 0.35\,\xi\) for all hard surfaces and the slip is the steady slip \(s\).
Standing Water#
Water on the ground slows each wheel. The game computes a drag force on the wet part of the tyre face (function WaterDrag).
\(\vec{v}_h\) is the horizontal velocity of the contact point, \(h_w\) is the water depth, \(\rho_w\) is 1000 kg/m³ and \(C_d\) is water_drag_cd.
The model has no buoyancy. The water depth comes from the template or from the soil water model.
Legacy Soil Model#
The legacy model runs when the key soil.class is absent and no option selects a class. The functions are SoilContact and JanosiForce.
The tyre is a rigid circle. Its deflection is a fixed share of the radius and does not depend on the load.
\(d_r\) is tire_deflection_ratio. The Bekker modulus decreases linearly with the saturation, and the pressure gives the sinkage.
The shear capacity is the Mohr-Coulomb strength with a suction term from the van Genuchten curve. \(\psi_{cap}\) is suction_cap_pa.
The shear force uses the steady slip, without the shear displacement state.
The soil resistance is a part of the rolling resistance torque in this model, not a force on the axle.
Worked Example#
This example is one rear tyre of the Maxxum (650/65R38, 80 kPa) at its static load on silt loam. The soil state is that of field F21 in the tutorial Drive the Maxxum Tractor: \(\theta = 0.224\), firm density, dry surface. The numbers come from the model functions.
| Quantity | Value |
|---|---|
| Load \(N\) | 17.12 kN |
| Effective saturation \(S_e\) | 0.433 |
| Suction \(\psi\), suction stress \(\sigma_s\) | 36.3 kPa, 15.7 kPa |
| Cohesion \(c\), friction angle \(\phi\) | 16.2 kPa, 33.0° |
| Bearing ratio \(\beta_Q\) | 1.27 |
| \(k_c\), \(k_\phi\) | 25.4 kN/m^(n+1), 5086 kN/m^(n+2) |
| Cone index | 2.26 MPa |
| Rigid-wheel pressure \(p_{gcr}\) | 186 kPa, thus the mode is flexible |
| Sinkage \(z_s = z_j\) | 1.08 cm |
| Flat length \(l_f\), deflection \(\delta\) | 0.263 m, 0.96 cm |
| Contact length \(l\), area \(A\), pressure \(p\) | 0.323 m, 0.210 m², 81.5 kPa |
| Compaction resistance \(R_c\), bulldozing \(R_b\) | 377 N, 0 N |
| Shear capacity \(H\) | 15.6 kN, thus \(\mu = 0.91\) |
| \(F_s / N\) at 5 %, 10 %, 15 %, 20 % slip | 0.30, 0.51, 0.64, 0.73 |
In the game, the same tyre showed a sinkage of 1.1 cm and a cone index of 2.42 MPa on this field. The game value includes the compaction of the rut.
Shared Use by the Polaris#
The Polaris uses the same contact model. Its function PrepareUtvWheel calls PrepareWheel with the wheel parameters of polaris.json.
| Part | Maxxum | Polaris |
|---|---|---|
| Surface selection, soil class, farm state | SampleSurface, soil block of tractor.json |
The same code and the same soil block |
| Suspension load | SuspensionLoad |
The same function, with its own rest and bump-stop values |
| Sinkage, shear capacity, motion resistance | TyreOnSoil |
The same function, with a sinkage limit of 0.2 m |
| Lateral force, friction circle | PrepareWheel |
The same function |
| Shear displacement, wheel speeds, ledger | SettleWheels and the shaft torque functions |
The same functions |
| Brake torque | \(1.5\,b_k\,N\,r\) | Hydraulic pressure multiplied by a torque gain |
| Driveline solve | SolveDriveline |
SolveUtvDriveline |
The page Polaris Ranger Dynamics gives the parameters and the driveline of the Polaris.
Verification#
The folder Tools/Terramechanics contains engine-free tests of this model. Build and run them from the repository root.
Expected Result
The last line is 49 passed, 0 failed.
The tests run the Maxxum on a planar test stand (VehicleBench.h) with the same model sources as the game.
| Test Group | Result |
|---|---|
| Drawbar test against Brixius (ASABE D497.7) | Firm loam: maximum distance 0.009 in net traction ratio for 5 % to 30 % slip. Tilled loam 0.034, wet silty clay loam 0.002, dry loose sand 0.21. |
| Tractive efficiency | The peak is 0.78 on firm loam at a pull of 0.40 of the weight. |
| Moisture | Net traction of silt loam at 15 % slip decreases from 0.69 to 0.38 from \(S_e\) 0.3 to saturation. The sinkage increases from 0.9 cm to 5.9 cm. |
| Step size | Steps of 1/60 s, 1/120 s and 1/240 s give the same steady state. |
| Static equilibrium | The sum of the wheel loads is the weight. A parked vehicle does not move. |
| Inflation | 60 kPa gives a sinkage of 2.8 cm, 160 kPa gives 5.7 cm on the test soil. |
| Slip sinkage in loose sand | The sinkage increases from 4.2 cm to 7.4 cm from 0 % to 40 % slip. |
| Sod | The sinkage is 1.8 cm on field soil, 1.0 cm on a grass lane and 1.2 cm on a grass verge. |
| Soil library copy | soil_library.json agrees with the source table. |
The study in Calibration/Tractor/soil_weather_results.md compares the game with these tests on one field in six soil states.
The rear slip of the game and of the test stand agree to 0.3 percentage points.
Note
The model gives approximately half the slip of the Brixius equations at rear tyre loads of 32 kN to 35 kN. This is an open question. Field data with measured slip are necessary to decide it.
Parameters#
Tyre Keys in tractor.json#
These keys are in the block vehicle.
| Name | Type | Unit | Default | Description |
|---|---|---|---|---|
front_radius_m |
number | m | 0.7066 | The unloaded radius of a front tyre (540/65R28). |
rear_radius_m |
number | m | 0.9051 | The unloaded radius of a rear tyre (650/65R38). |
front_width_m |
number | m | 0.54 | The section width of a front tyre. |
rear_width_m |
number | m | 0.65 | The section width of a rear tyre. |
front_inflation_kpa |
number | kPa | 80 | The inflation pressure of the front tyres. 0 selects a tyre with a fixed footprint. |
rear_inflation_kpa |
number | kPa | 80 | The inflation pressure of the rear tyres. |
tyre_carcass_kpa |
number | kPa | 20 | The carcass stiffness as a pressure \(p_c\). |
front_aspect_ratio |
number | - | 0.65 | The section height divided by the width, front. |
rear_aspect_ratio |
number | - | 0.65 | The section height divided by the width, rear. |
tyre_hysteresis |
number | - | 0.25 | The rolling resistance for each unit of relative deflection, \(k_h\). |
tyre_lug_height_m |
number | m | 0.04 | The lug height \(h_l\). 0 is a smooth tyre. |
tyre_lug_area_ratio |
number | - | 0.25 | The share of the contact that the lug faces cover, \(a_l\). |
tyre_tread_k_m |
number | m | 0.01 | The shear compliance of the tread and carcass, \(K_{tread}\). |
cornering_stiffness_per_load |
number | 1/rad | 5 | The cornering stiffness divided by the load, \(C_\alpha\). |
lateral_relaxation_m |
number | m | 0.6 | The relaxation length of the lateral force, \(L_r\). |
water_drag_cd |
number | - | 1.1 | The drag coefficient of a wheel in standing water. |
front_tire_stiffness_n_m |
number | N/m | 250000 | The vertical rate of a front tyre. The model uses it only when the inflation is 0. |
rear_tire_stiffness_n_m |
number | N/m | 400000 | The vertical rate of a rear tyre. The model uses it only when the inflation is 0. |
Block soil in tractor.json#
| Name | Type | Unit | Default | Description |
|---|---|---|---|---|
class |
string | auto |
A soil class identifier, or auto for the class of the mapped soil unit below each wheel. Without the key, the legacy soil model runs. |
|
density_mg_m3 |
number | Mg/m³ | 0 | The dry density of undisturbed ground. 0 selects the firm density of the class. |
compaction_layer_m |
number | m | 0.3 | The thickness of the layer that a rut compacts, \(H_c\). |
max_sinkage_m |
number | m | 0.35 | The sinkage limit \(z_{max}\). Both soil models use it. |
bekker_kc |
number | N/m^(n+1) | 20000 | Legacy: the cohesive modulus \(k_c\). |
bekker_kphi |
number | N/m^(n+2) | 2000000 | Legacy: the frictional modulus \(k_\phi\). |
bekker_n |
number | - | 1.1 | Legacy: the sinkage exponent \(n\). |
saturated_bekker_ratio |
number | - | 0.4 | Legacy: the factor \(q_{sat}\) of the modulus at saturation. |
cohesion_pa |
number | Pa | 3000 | Legacy: the cohesion \(c\). |
friction_degrees |
number | deg | 28 | Legacy: the friction angle \(\phi\). |
janosi_k_m |
number | m | 0.025 | Legacy: the shear deformation modulus \(K\). |
theta_residual |
number | m³/m³ | 0.06 | Legacy: the residual water content. |
theta_saturated |
number | m³/m³ | 0.43 | Legacy: the saturated water content. |
vg_alpha_m_inv |
number | 1/m | 2 | Legacy: the van Genuchten \(\alpha_{vg}\). |
vg_n |
number | - | 1.6 | Legacy: the van Genuchten \(n_{vg}\). |
suction_cap_pa |
number | Pa | 100000 | Legacy: the maximum suction \(\psi_{cap}\). |
tire_deflection_ratio |
number | - | 0.2 | Legacy: the deflection ratio \(d_r\). |
Block surfaces in tractor.json#
Each entry of the block is one surface template with these keys.
| Name | Type | Unit | Default | Description |
|---|---|---|---|---|
deformable |
boolean | true selects a soil model, false selects the hard-surface model. |
||
friction |
number | - | The dry friction coefficient \(\mu_0\) of a hard surface. | |
rolling |
number | - | The rolling resistance coefficient of a hard surface. | |
theta |
number | m³/m³ | The water content of the soil when the farm does not give one. | |
wetness |
number | - | The surface wetness \(\xi\) when the farm does not give one. | |
water_depth_m |
number | m | The depth of standing water when the farm does not give one. | |
traffic_compaction |
number | - | 0 | The position of the density between firm (0) and maximum (1), \(t_c\). |
root_cohesion_pa |
number | Pa | 0 | The root cohesion \(c_R\) of a sod. The permitted range is 0 to 50000. |
The shipped templates have these values. The index is the value of the surface columns of the session log.
| Index | Template | Deformable | Friction | Rolling | Theta | Wetness | Water Depth (m) |
|---|---|---|---|---|---|---|---|
| 0 | asphalt |
false | 0.9 | 0.015 | 0.2 | 0 | 0 |
| 1 | concrete |
false | 0.85 | 0.012 | 0.2 | 0 | 0 |
| 2 | gravel |
false | 0.65 | 0.035 | 0.2 | 0 | 0 |
| 3 | dry_soil |
true | 0.7 | 0.05 | 0.12 | 0 | 0 |
| 4 | wet_soil |
true | 0.7 | 0.05 | 0.38 | 0.85 | 0 |
| 5 | mud |
true | 0.7 | 0.05 | 0.43 | 1 | 0.12 |
| 7 | sod_lane |
true | 0.7 | 0.05 | 0.2 | 0 | 0 |
| 8 | sod |
true | 0.7 | 0.05 | 0.2 | 0 | 0 |
| 9 | dirt_track |
true | 0.7 | 0.05 | 0.2 | 0 | 0 |
Three templates have the two keys of the surface map.
| Template | Traffic Compaction | Root Cohesion (Pa) |
|---|---|---|
sod_lane |
0.6 | 3000 |
sod |
0.2 | 6000 |
dirt_track |
0.7 | 0 |
Index 6 is the selection mapped. The soil models do not use friction and rolling on a deformable surface.
Keys of a Soil Class#
The copy soil_library.json uses these keys for each class. The default column shows the class silt_loam.
| Name | Type | Unit | Default | Description |
|---|---|---|---|---|
id |
string | silt_loam |
The identifier for soil.class and -VehicleSoilClass=. |
|
sand_pct, clay_pct |
number | % | 20, 18 | The representative texture. For information only. |
theta_residual |
number | m³/m³ | 0.067 | \(\theta_r\) of the van Genuchten curve. |
theta_saturated |
number | m³/m³ | 0.45 | \(\theta_s\) of the van Genuchten curve. |
vg_alpha_per_m |
number | 1/m | 2 | \(\alpha_{vg}\). |
vg_n |
number | - | 1.41 | \(n_{vg}\). |
loose_density |
number | Mg/m³ | 1.15 | The density of tilled soil, \(\rho_l\). |
firm_density |
number | Mg/m³ | 1.45 | The density of settled soil, \(\rho_f\). |
max_density |
number | Mg/m³ | 1.75 | The compaction limit \(\rho_m\). |
liquid_limit, plastic_limit |
number | kg/kg | 0.31, 0.22 | The Atterberg limits. Both are 0 for a soil without plasticity. |
loose_cohesion_pa, firm_cohesion_pa |
number | Pa | 2500, 6000 | The drained cohesion at the two densities. |
loose_friction_deg, firm_friction_deg |
number | deg | 29, 33 | The drained friction angle at the two densities. |
bekker_n |
number | - | 0.87 | The sinkage exponent. |
bekker_kc |
number | N/m^(n+1) | 20000 | \(k_{c,ref}\) at the reference state. |
bekker_kphi |
number | N/m^(n+2) | 4000000 | \(k_{\phi,ref}\) at the reference state. |
reference_density |
number | Mg/m³ | 1.45 | The density of the reference state. |
reference_saturation |
number | - | 0.6 | The effective saturation of the reference state. |
loose_janosi_m, firm_janosi_m |
number | m | 0.02, 0.01 | The shear deformation modulus at the two densities. |
rubber_friction_dry, rubber_friction_wet |
number | - | 0.9, 0.5 | The friction between rubber and soil. |
rubber_adhesion_pa |
number | Pa | 1500 | The adhesion between rubber and soil, \(c_a\). |
metal_friction_dry_deg, metal_friction_wet_deg |
number | deg | 22, 17 | The friction angle between soil and metal. |
metal_adhesion_pa |
number | Pa | 5000 | The peak adhesion between soil and metal. |
cone_index_pa |
number | Pa | 1200000 | \(CI_{ref}\). |
cone_width, cone_peak |
number | (kg/kg)², kg/kg | 0.004, 0 | \(C_2\) and \(C_3\) of the cone index. |
cone_density_exponent |
number | - | 3 | The density exponent of the cone index. |
bulldozing_share |
number | - | 0.15 | The bulldozing share of loose soil, \(\beta_{class}\). |
structure_factor |
number | - | 3 | \(S_t\), the ratio of intact strength to remoulded strength. |
conductivity_mm_h |
number | mm/h | 6.5 | The saturated conductivity \(K_s\). |
field_capacity_theta, wilting_theta |
number | m³/m³ | 0.2301, 0.1018 | Derived: \(\theta\) at 33 kPa and at 1500 kPa. |
states |
list | Derived: the soil state at \(S_e\) 0.2, 0.5, 0.8 and 1.0. |
The shape exponent \(q\) of the cone index is in the source table only.
Constants in the Source Code#
| Constant | Value | Function |
|---|---|---|
| Slip speed floor | 0.2 m/s | Slip |
| Hard-surface slip stiffness \(k_s\) | 9 | FVehicleParameters::HardSlipStiffness |
| Rut share of the sinkage | 0.65 | FAcresFarmRuntime::Wheel |
| Maximum rut depth | 0.35 m | FAcresFarmRuntime::Wheel |
| Rut cell | 0.25 m | FAcresFarmRuntime::Wheel |
| Compaction share of the rut volume | 0.5 | CompactedDensity |
| Suction stress limit | 150 kPa | SoilStateAt |
| Undrained friction angle | 4° | SoilStateAt |
| Footing width \(B\) of the bearing measure | 0.5 m | SoilStateAt |
| Cone factor | 15 | SoilStateAt |
| Cone index limits | 20 kPa, 6 MPa | SoilStateAt |
| Particle density | 2.65 Mg/m³ | SoilStateAt |
| Maximum rolling coefficient | 0.45 | PrepareWheel |
| Water film for full wetness | 2 mm | FAcresFarmRuntime::Sample |
Command-Line Options#
| Name | Type | Unit | Default | Description |
|---|---|---|---|---|
-VehicleSurface= |
string | mapped |
The surface template for all wheels, or mapped. |
|
-VehicleSoilClass= |
string | from soil.class |
A soil class identifier or auto. |
|
-VehicleConfig= |
path | Content/Simulation/tractor.json |
The vehicle configuration file. |
Code Map#
| Item | File | Function |
|---|---|---|
| Surface template of a wheel | AcresVehicle.cpp |
AAcresVehiclePawn::SampleSurface |
| Surface class at a point | AcresSurfaceMap.cpp |
FSurfaceMap::ClassAt |
| Soil class at a point | AcresVehicle.cpp |
AAcresVehiclePawn::SoilLibraryClassAt, SoilTextureAt |
| Water, wetness and rut at a point | AcresFarmRuntime.cpp |
FAcresFarmRuntime::Sample |
| Soil library table | AcresSoilModel.cpp |
SoilClassAt, FindSoilClass, SoilClassFromTexture |
| Soil state | AcresSoilModel.cpp |
SoilStateAt, SoilShearStrengthPa, SoilThetaAtSuction |
| Density | AcresSoilModel.cpp |
CompactedDensity, DensityFromCompaction |
| Tyre deflection | AcresSoilModel.cpp |
TyreDeflection |
| Sinkage, resistance, capacity | AcresSoilModel.cpp |
TyreOnSoil |
| Hard-surface friction | AcresSoilModel.cpp |
HardSurfaceFriction |
| Load, lateral force, friction circle | AcresVehicleModel.cpp |
PrepareWheel |
| Slip | AcresSimModel.cpp |
Slip |
| Shear displacement and shear force | AcresVehicleModel.cpp |
ShearDisplacement, TyreForce, JanosiForce |
| Force on the chassis, slip sinkage state | AcresVehicleModel.cpp |
SettleWheels |
| Legacy soil | AcresVehicleModel.cpp |
SoilContact, Longitudinal |
| Water drag | AcresVehicleModel.cpp |
WaterDrag |
| Ruts | AcresFarmRuntime.cpp |
FAcresFarmRuntime::Wheel |
| Brixius reference for the tests | AcresSoilModel.cpp |
BrixiusTraction |
| Tests | Tools/Terramechanics/physics_tests.cpp |
Limitations#
- No measurement at ACRE calibrates the model. The soil classes use typical values of each texture class.
- The slip at high rear loads is lower than the Brixius equations give. The absolute slip is thus optimistic.
- Loose dry sand pulls approximately 0.2 of the weight less than the Brixius equations. That soil is outside their range.
- The soil is one layer. A wet surface on a dry layer shows only through the surface wetness.
- The rut depth does not decrease with time. Only tillage removes a rut.
- The rut share of 0.65 and the compaction share of 0.5 are assumptions.
- A hard surface gets its wetness from standing water only. The rain film has no effect there.
- When the user selects a soil surface with the keys 1 to 6 during a farm session, the wheels do not read the ruts.
- The hard-surface friction curve does not depend on the load. The tyre has no camber force and no aligning torque.
- The inflation sets the footprint through a membrane model, not through a measured load and deflection chart.
References#
- ASABE D497.7 (2011, reaffirmed 2015). Agricultural Machinery Management Data. American Society of Agricultural and Biological Engineers, St. Joseph, Michigan.
- Ayers, P. D. and Perumpral, J. V. (1982). Moisture and density effect on cone index. Transactions of the ASAE 25(5):1169-1172.
- Bekker, M. G. (1960). Off-the-Road Locomotion. University of Michigan Press, Ann Arbor.
- Bekker, M. G. (1969). Introduction to Terrain-Vehicle Systems. University of Michigan Press, Ann Arbor.
- Brixius, W. W. (1987). Traction prediction equations for bias ply tires. ASAE Paper 87-1622. American Society of Agricultural Engineers, St. Joseph, Michigan.
- Carsel, R. F. and Parrish, R. S. (1988). Developing joint probability distributions of soil water retention characteristics. Water Resources Research 24(5):755-769.
- De Baets, S., Poesen, J., Reubens, B., Wemans, K., De Baerdemaeker, J. and Muys, B. (2008). Root tensile strength and root distribution of typical Mediterranean plant species and their contribution to soil shear strength. Plant and Soil 305:207-226.
- Fountaine, E. R. (1954). Investigations into the mechanism of soil adhesion. Journal of Soil Science 5(2):251-263.
- Håkansson, I. (1990). A method for characterizing the state of compactness of the plough layer. Soil and Tillage Research 16:105-120.
- Janosi, Z. and Hanamoto, B. (1961). The analytical determination of drawbar pull as a function of slip for tracked vehicles in deformable soils. Proceedings of the 1st International Conference on the Mechanics of Soil-Vehicle Systems, Turin.
- Lu, N. and Likos, W. J. (2006). Suction stress characteristic curve for unsaturated soil. Journal of Geotechnical and Geoenvironmental Engineering 132(2):131-142.
- Lu, N., Godt, J. W. and Wu, D. T. (2010). A closed-form equation for effective stress in unsaturated soil. Water Resources Research 46, W05515.
- Lyasko, M. (2010). Slip sinkage effect in soil-vehicle mechanics. Journal of Terramechanics 47(1):21-31.
- McKyes, E. (1985). Soil Cutting and Tillage. Elsevier, Amsterdam.
- Pollen, N. and Simon, A. (2005). Estimating the mechanical effects of riparian vegetation on stream bank stability using a fiber bundle model. Water Resources Research 41, W07025.
- Rawls, W. J., Brakensiek, D. L. and Miller, N. (1983). Green-Ampt infiltration parameters from soils data. Journal of Hydraulic Engineering 109(1):62-70.
- Reece, A. R. (1965). Principles of soil-vehicle mechanics. Proceedings of the Institution of Mechanical Engineers 180(2A):45-66.
- Robertson, P. K. and Cabal, K. L. (2015). Guide to Cone Penetration Testing for Geotechnical Engineering, 6th edition. Gregg Drilling and Testing, Signal Hill, California.
- Terzaghi, K. (1943). Theoretical Soil Mechanics. John Wiley and Sons, New York.
- USDA Natural Resources Conservation Service (2008). Soil Quality Indicators: Bulk Density.
- van Genuchten, M. Th. (1980). A closed-form equation for predicting the hydraulic conductivity of unsaturated soils. Soil Science Society of America Journal 44(5):892-898.
- Vesic, A. S. (1973). Analysis of ultimate loads of shallow foundations. Journal of the Soil Mechanics and Foundations Division 99(SM1):45-73.
- Wong, J. Y. (2008). Theory of Ground Vehicles, 4th edition. John Wiley and Sons, Hoboken, New Jersey.
- Wroth, C. P. and Wood, D. M. (1978). The correlation of index properties with some basic engineering properties of soils. Canadian Geotechnical Journal 15(2):137-145.
- Wu, T. H., McKinnell, W. P. and Swanston, D. N. (1979). Strength of tree roots and landslides on Prince of Wales Island, Alaska. Canadian Geotechnical Journal 16(1):19-33.
- Zoz, F. M. and Grisso, R. D. (2003). Traction and Tractor Performance. ASAE Distinguished Lecture Series 27. American Society of Agricultural Engineers, St. Joseph, Michigan.
The values of each group in the soil library come from these sources.
| Group | Source |
|---|---|
| Water retention | Carsel and Parrish (1988), class means of the van Genuchten parameters. |
| Bekker moduli | Wong (2008), Table 2.3. Sand is a geometric mean of two sands. Loamy sand and silt loam are interpolations. |
| Shear deformation modulus | Wong (2008), Section 2.4. |
| Density states | Firm values agree with the soil survey of ACRE. Maximum values from USDA (2008). |
| Atterberg limits, drained strength | Typical values of the texture class. |
| Undrained strength | Wroth and Wood (1978). Conductivity from Rawls, Brakensiek and Miller (1983). |
| Suction stress | Lu and Likos (2006), Lu, Godt and Wu (2010). |
| Bearing factors | Prandtl and Reissner factors, Vesic (1973), Reece (1965). |
| Cone index | The form of Ayers and Perumpral (1982). The coefficients give the ASABE D497 reference values. |
| Rubber interface | Trends of Wong (2008), Table 1.3. The values are estimates. |
| Metal interface | Ranges of McKyes (1985) with the moisture trend of Fountaine (1954). The values are estimates. |
| Traffic compaction, root cohesion | Håkansson (1990), Wu and others (1979), Pollen and Simon (2005), De Baets and others (2008). |