Calculate the spring rate (torque per angle) for helical torsion springs based on material properties and geometry. This tool helps engineers and designers determine the stiffness of a spring used in rotational applications.
Music Wire (ASTM A228)
Stainless Steel (302/304)
Hard Drawn Steel (ASTM A227)
Chrome Silicon (ASTM A401)
Phosphor Bronze
Custom Modulus
Mean Diameter (D):–
Spring Index (D/d):–
Rate per Degree:–
Rate per Turn (360°):–
Est. Metric Rate:–
Understanding Torsion Spring Calculations
Torsion springs are helical springs that exert a torque or rotary force when the ends are rotated relative to each other.
Unlike compression or extension springs which undergo shear stress, the wire in a torsion spring is subjected to bending stress.
This calculator helps determine the "Spring Rate," which represents how much torque the spring generates per unit of angular displacement.
The Spring Rate Formula
The fundamental formula for calculating the rate of a round-wire torsion spring (Imperial units) is derived from beam theory.
The industry-standard formula used by the Spring Manufacturers Institute (SMI) is:
R = (E × d⁴) / (10.8 × D × N)
Where:
R = Spring Rate (Inch-Pounds per Turn)
E = Young's Modulus of Elasticity (psi)
d = Wire Diameter (inches)
D = Mean Coil Diameter (inches) = OD – d
N = Number of Active Coils
10.8 = A constant factor for steel wire (derived from geometry and friction corrections)
Key Variables Explained
Young's Modulus (E)
Since torsion springs operate in bending, we use Young's Modulus (Elasticity) rather than the Shear Modulus used for compression springs.
Common values include 30,000,000 psi for Music Wire and Carbon Steel, and roughly 28,000,000 psi for Stainless Steel.
Spring Index (C)
The Spring Index is the ratio of the Mean Diameter to the Wire Diameter (C = D/d).
A standard manufacturing range is between 4 and 16. An index below 4 indicates a very tight spring with high stress concentrations,
while an index above 16 can lead to a flimsy spring that is difficult to control during coiling.
Direction of Wind
While not part of the rate calculation, the direction of wind (Left Hand or Right Hand) is critical for application.
Torsion springs should always be loaded in the direction that winds the coils tighter.
Loading against the wind increases the diameter and reduces the number of coils, altering the rate and potentially causing failure.
Calculating Torque
Once you have the Spring Rate, you can calculate the torque at a specific angle using the linear relationship (assuming the spring is not stressed beyond its elastic limit):
Torque (T) = Rate per Degree × Degrees of Deflection
For example, if your calculator shows a rate of 0.5 in-lbs/degree and you rotate the spring 90 degrees, the resulting torque is 45 in-lbs.
function updateModulus() {
var select = document.getElementById("materialType");
var input = document.getElementById("elasticity");
if (select.value !== "custom") {
input.value = select.value;
input.readOnly = false; // Allow edits even if preset selected, or keep readOnly based on preference. Here we allow fine tuning.
} else {
input.value = "";
input.focus();
}
}
function calculateSpringRate() {
// Get Input Values
var E = parseFloat(document.getElementById("elasticity").value);
var d = parseFloat(document.getElementById("wireDiameter").value);
var OD = parseFloat(document.getElementById("outerDiameter").value);
var N = parseFloat(document.getElementById("activeCoils").value);
// Elements for Output
var errorDiv = document.getElementById("errorMsg");
var resultBox = document.getElementById("resultBox");
var elMeanDia = document.getElementById("resMeanDia");
var elIndex = document.getElementById("resIndex");
var elRateDeg = document.getElementById("resRateDeg");
var elRateTurn = document.getElementById("resRateTurn");
var elMetric = document.getElementById("resMetric");
// Validation
errorDiv.style.display = "none";
resultBox.style.display = "none";
if (isNaN(E) || E <= 0) {
errorDiv.innerText = "Please enter a valid Young's Modulus.";
errorDiv.style.display = "block";
return;
}
if (isNaN(d) || d <= 0) {
errorDiv.innerText = "Please enter a valid Wire Diameter.";
errorDiv.style.display = "block";
return;
}
if (isNaN(OD) || OD <= 0) {
errorDiv.innerText = "Please enter a valid Outer Diameter.";
errorDiv.style.display = "block";
return;
}
if (isNaN(N) || N = OD) {
errorDiv.innerText = "Wire Diameter must be smaller than Outer Diameter.";
errorDiv.style.display = "block";
return;
}
// Calculation Logic
// 1. Calculate Mean Diameter (D)
var D = OD – d;
// 2. Calculate Spring Index (C)
var C = D / d;
// 3. Calculate Rate per Turn (R_turn) using SMI formula
// R = (E * d^4) / (10.8 * D * N)
// Note: 10.8 is the constant often used for steel.
// For purely theoretical physics (Beam theory), the constant is ~10.18 (derived from 64/2pi).
// We will use 10.8 as it is standard for practical spring design in Imperial units.
var numerator = E * Math.pow(d, 4);
var denominator = 10.8 * D * N;
var ratePerTurn = numerator / denominator; // in-lbs per turn
// 4. Calculate Rate per Degree
var ratePerDegree = ratePerTurn / 360;
// 5. Convert to Metric estimation (N-mm/degree)
// 1 in-lb = 112.985 N-mm
var rateMetric = ratePerDegree * 112.985;
// Display Results
elMeanDia.innerText = D.toFixed(4) + " in";
elIndex.innerText = C.toFixed(2);
elRateDeg.innerText = ratePerDegree.toFixed(4) + " in-lbs/deg";
elRateTurn.innerText = ratePerTurn.toFixed(2) + " in-lbs/turn";
elMetric.innerText = rateMetric.toFixed(2) + " N-mm/deg";
resultBox.style.display = "block";
}