Overview
The Curve Fit App takes a monotonic (or backbone) force–deformation curve of a structural member, connection or component and idealises it with a bilinear (elastic + hardening) or, when membrane action is present, trilinear (elastic + hardening + membrane) model. It returns the key transition points: elastic stiffness Ke, yield Fy, plastic force Fp, hardening stiffness Ks, membrane-action onset Fma, peak/capping Fmax, Fc, and post-capping stiffness Kpc. Three smooth nonlinear models (Power, Richard–Abbott, Ramberg–Osgood) can also be fitted. Units are those of your data; D is deformation and F is force (or rotation and moment).
Using the app
- Load data — two columns (deformation, force) from .txt/.csv/.xlsx, pasted text, or an example. A (0, 0) point is added if missing.
- Curve type — auto-detected on load: if the curve at 90% of the peak index lies above the secant to the peak it is treated as “w/o membrane action”; otherwise “w/ membrane action”.
- Fitted model — choose the idealisation to draw. Post-yield fit chooses how Ks and the plastic force Fp are found: Equal area (default) or Tangent slope (section 5b). Fp from the selected fit is used by the bilinear and Ramberg–Osgood models; both slopes and both Fp values are always reported.
- Override values — tick to impose Ke, Fy, Dmax or Dma when automatic detection is poor. A value of 0 means “automatic”.
- Pre-processing — optional moving-average smoothing (window in points) and a deformation offset (useful when initial slip or seating gives a soft start).
- Check Ke — plots the individual elastic-stiffness estimates so you can judge which is reasonable.
- Save — figure as PNG/SVG, or all parameters and plotted curves as CSV.
1. Data preparation
- Points with a repeated deformation or force, and points where deformation reverses, are removed.
- Curves with fewer than 1000 points are densified by linear interpolation between consecutive points (step 0.01 over the first 10% of points, 0.1 thereafter) so that the area and stiffness calculations are well resolved.
- The hardening fit uses the curve capped at the peak force; the post-peak branch is used only for capping and post-capping quantities.
2. Elastic stiffness Ke
Three independent estimates are computed on the capped curve:
- 30% method — least-squares slope of the data from the origin up to the first point reaching 0.3 Fmax.
- Secant method — secant stiffness Ksec,i = Fi/Di; the running mean is kept up to the last point where Ksec,i deviates from the mean of the preceding values by 20–25% (or ≥ 20% if none fall in that band).
- Incremental method — incremental stiffness ΔF/ΔD from 0.1 Fmax onward; averaged up to where it deviates from the running mean by 30–40% (or ≥ 30%).
Ke = median(Ke,30%, Ke,sec, Ke,inc)
With membrane action, the 30% method uses 0.3 Fma instead of 0.3 Fmax, the incremental estimate is not used, and Ke is the mean of the remaining two.
3. Yield point
The yield point is where the response first departs from the elastic line F = KeD. Scanning points with F ≥ 0.1 Fmax, the first point with
(KeDi − Fi) / Fi ≥ 0.05
is found, and the point just before it is taken as (Dy, Fy).
4. Peak, capping and post-capping
- (Dmax, Fmax) is the maximum-force point (or the point nearest a user-set Dmax).
- If the curve continues past the peak and ends lower, the peak is also the capping point (Dc, Fc) and
Kpc = (Fmax − Fend) / (Dend − Dc)
The deformation at which the post-peak force first drops below 0.8 Fmax is also reported, together with F1/3Ke: the point where the secant line F = (Ke/3)D first meets the curve (searched past the peak if needed and interpolated between data points; “—” if the curve never drops to that line). (Capping and Kpc require the post-peak branch to extend at least 0.001 and 0.005 deformation units beyond the peak, thresholds set for rotations in radians.)
5. Equal-area hardening slope Ks and plastic force Fp
The hardening line passes through the target point (Dt, Ft) — the peak for curves without membrane action, or the membrane-action onset (Dma, Fma) otherwise:
L2(D) = Ft + Ks(D − Dt)
It intersects the elastic line L1(D) = KeD at D1. Trial slopes Ks = 0, 0.001Ke, … up to max[0.5Ke, (Ft − Fy)/(Dt − Dy)] are tested, and the one making the areas between the idealisation and the data balance is selected:
minKs | ∫DyD1 (L1 − F) dD + ∫D1Dt (L2 − F) dD |
The plastic force point (Dp, Fp) is the intersection of the two lines:
Fp = (Ft − KsDt) · Ke / (Ke − Ks), Dp = Fp / Ke
A regression hardening slope Ks,reg is also obtained by linear regression of the data over the final ~40% of the hardening branch before the target point (used by, and shown only for, the Richard–Abbott model).
5b. Tangent post-yield slope Ks,tangent
The line is anchored at the target point (Dt, Ft) — Fmax, or Fma with membrane action — and its slope is fitted by least squares, with the line forced through the anchor, to the data in the last p% of the range from Dy to Dt (default 25%; at least three points are used):
Ks,tangent = Σ (Di − Dt)(Fi − Ft) / Σ (Di − Dt)²
So it follows the slope of the curve just before the anchor rather than balancing areas. With Tangent slope selected, the plastic force point is the intersection with the elastic line:
Dp = (Ft − Ks,tangentDt) / (Ke − Ks,tangent), Fp = KeDp
The data points used for the fit are highlighted on the plot. If the slope is not lower than Ke, or the lines meet outside the curve, a message asks you to change the fitted portion or Ke.
6. Membrane action (trilinear)
When membrane action stiffens the response, a third branch runs from the onset point to the peak:
Kma = (Fmax − Fma) / (Dmax − Dma)
The onset Dma is where the curve's convexity flips. The curve is resampled up to the peak and the tangent stiffness Kt is taken from a local linear regression over ±2% of Dmax; the search starts after yield. Options:
- Stiffness recovery (default) — with Kmin the lowest tangent stiffness and Kend the stiffness near the peak, Dma is the last point before the peak with Kt ≤ Kmin + α(Kend − Kmin). Robust on long flat plateaus.
- Lowest tangent stiffness after yield — Dma = argmin Kt (the inflection point).
- Sharpest bend — maximum positive curvature κ = y″ / (1 + y′²)3/2 in normalised axes x = D/Dmax, y = F/Fmax.
- Original — the point farthest below the line from the origin to the peak (as in the desktop app, v1.2511).
If no clear stiffening is found, the original method is used and the results panel says so.
7. Nonlinear models
Each model has one shape exponent n, found by a grid search over n = 0.01 … 20 (step 0.01) minimising Σ|Fdata − Fmodel| at 51 equally spaced points, using the monotonic envelope of the data. The upper bound (Du, Fu) is the peak, or the membrane-action onset for curves with membrane action (unless Dmax is overridden).
Power model (three-parameter; Goldberg & Richard, as used by Kishi & Chen):
F = KeD / [1 + (D/D0)n]1/n, D0 = Fu / Ke
Richard–Abbott model (four-parameter):
F = (Ke − Kp)D / [1 + (D/D0)n]1/n + KpD, Kp = Ks,tan, D0 = (Fu − KpDu) / (Ke − Kp)
Ramberg–Osgood model (deformation as a function of force):
D = Dp (F/Fp) [1 + (F/Fp)n−1], 0 ≤ F ≤ Fu
References
- Elkady, A. (2022). Response characteristics of flush end-plate connections. Engineering Structures, 269, 114856. doi:10.1016/j.engstruct.2022.114856
- Goldberg, J.E. and Richard, R.M. (1963). Analysis of nonlinear structures. J. Structural Division, 89(4).
- Kishi, N. and Chen, W.F. (1990). Moment-rotation relations of semirigid connections with angles. J. Structural Engineering, 116(7).
- Richard, R.M. and Abbott, B.J. (1975). Versatile elastic-plastic stress-strain formula. J. Engineering Mechanics Division, 101(4).
- Ramberg, W. and Osgood, W.R. (1943). Description of stress-strain curves by three parameters. NACA Technical Note 902.
Web version of Fit App v1.2511. Additions relative to the desktop version: selectable membrane-action detection, the membrane-action rules for Ke, the tangent post-yield fit, and a fallback for Ks,reg (uses Ks when too few points are available).