A profile rail on a reciprocating axis. It failed after 8 months. The customer said it was too cheap. It wasn’t cheap — it was a standard 25 mm rail from a reputable maker. The problem was I’d sized it for the load, not the load at the actual contact point. This is the L10 calculation I do now, every time.
What L10 means
L10 is the travel distance at which 90% of bearings will still be running (10% have failed). It’s a statistical life, not a guaranteed life. The formula is:
L10 = (C / P)³ × 50 km
Where:
- C — dynamic load rating in N (from the manufacturer’s catalog, for that rail size and block type)
- P — equivalent dynamic load in N (the actual load the block sees)
- 50 km — the base rating life in km (ISO standard)
The cube is the killer. Double the load, life drops by 8x. That’s why sizing by “load rating” is misleading — a rail rated for 10,000 N carrying 5,000 N isn’t “halfway loaded.” It’s at 1/8 of its design life.
Calculating the equivalent load P
This is where people get it wrong. The load isn’t just the weight of the axis. It’s the combined load from:
- The weight of the moving carriage (mass × g)
- The cutting or processing force (if it’s a machine tool)
- The inertial force from acceleration (m × a)
- The moment loads (pitch, yaw, roll) if the load is offset from the block center
For a simple horizontal axis with a centered load, P = m × g + m × a. For m = 30 kg, g = 9.8, a = 2 m/s²: P = 30 × 9.8 + 30 × 2 = 294 + 60 = 354 N. That’s light.
But if the load is offset 100 mm from the block center, the moment adds to the effective load. The manufacturer gives moment ratings (M_yaw, M_pitch, M_roll) for each block. I check those against the actual moments. If the moment exceeds the rating, I need two blocks per rail (four total) instead of one per rail.
The example that bit me
The failed rail was a 25 mm profile rail, C = 25,000 N. I calculated P = 500 N (weight + acceleration). L10 = (25,000 / 500)³ × 50 = (50)³ × 50 = 125,000 × 50 = 6,250,000 km. That’s 6 million km — it should last decades.
But the actual P was 2,500 N. Why? The carriage was overhanging. The load (a spindle) was cantilevered 300 mm from the block center. The moment load wasn’t included in my calculation. The rail was taking a huge moment that I’d ignored. L10 = (25,000 / 2,500)³ × 50 = (10)³ × 50 = 50,000 km. At 2 m/s and 60% duty cycle, that’s about 8 months. That’s exactly when it failed.
The reference values I use
For standard profile rails (HIWIN/THK equivalent), C ratings approximate:
| Rail size | Dynamic C (N) | Static C₀ (N) | Typical use |
|---|---|---|---|
| 15 mm | 8,000 | 10,000 | Light axes, pick-and-place |
| 20 mm | 15,000 | 20,000 | Medium loads, 10-30 kg carriage |
| 25 mm | 25,000 | 35,000 | Standard, 30-80 kg |
| 30 mm | 38,000 | 55,000 | Heavy, 80-150 kg |
| 35 mm | 55,000 | 80,000 | Very heavy, machine tools |
The three checks I run
1. Static load rating C₀. If the machine slams into a hard stop, the instantaneous load can exceed C₀ and permanently deform the raceways. I check the worst-case impact load against C₀ with a 3x safety factor. For a 25 mm rail, C₀ = 35,000 N. An impact of 10,000 N is fine. 15,000 N is marginal.
2. Moment loads. If the load is offset, I calculate the moments and compare to the block’s moment ratings. Most single-block rails have a roll moment rating of about 50 N·m. An overhanging load of 30 kg at 300 mm gives 88 N·m. That exceeds the rating. I either use a longer block, two blocks per rail, or move the load closer to the rail.
3. L10 life at the actual duty cycle. I don’t just compute L10 in km. I convert it to years. At 1 m/s average speed, 20 hours/day, 250 days/year, that’s 1 × 3600 × 20 × 250 = 18,000,000 m = 18,000 km/year. If L10 is 50,000 km, that’s 2.8 years. For a machine that needs 10 years, I need L10 of 180,000 km. That means (C/P)³ ≥ 3600, so C/P ≥ 15. With P = 2,500 N, I need C ≥ 37,500 N. That’s a 30 mm rail, not 25 mm.
What I changed
I went from 25 mm to 30 mm rails, and used two blocks per rail (four blocks total) to spread the moment. The equivalent P dropped to about 1,200 N per block (the load was shared). L10 = (38,000 / 1,200)³ × 50 = (31.7)³ × 50 = 31,800 × 50 = 1,590,000 km. At 18,000 km/year, that’s 88 years. The rail will outlast the machine. It cost $200 more per axis. The failed rail cost $3,000 in downtime.
The number I check: equivalent load P including moments, then L10 = (C/P)³ × 50 km, converted to years at the actual duty cycle. If the life is under 5 years, I go up a rail size or add blocks. The cube is unforgiving — small load increases kill life fast. The rail that failed wasn’t too small on paper; I’d forgotten the moment.