This tool extracts envelope curves from cyclic force–deformation data while treating the initial elastic stiffness separately from the post-elastic response.
- 1st-cycle envelope: groups peaks at similar deformation amplitudes and selects the largest positive force and most negative force in each group, using measured points only. Initial elastic stiffness is fitted separately. This usually represents the first-cycle response when repeated cycles lose strength, but the selection is based on force rather than cycle order.
- All-cycle peaks: retains individual deformation reversal points from the complete cyclic history beyond the elastic limit, including weaker repeated cycles.
- + and − envelopes: are calculated independently to retain directional asymmetry. The positive branch includes only nonnegative force at nonnegative deformation; the negative branch includes only nonpositive force at nonpositive deformation. Opposite-sign reversal points are excluded from both envelope selection and elastic stiffness fitting, while remaining visible in the raw cyclic response. Zero force is allowed at the origin or a branch endpoint.
- Envelope endpoints: each directional envelope ends at the measured point with the largest deformation magnitude having the matching force sign. The 1st-cycle branches are ordered outward from zero. All-cycle peaks follows the original data order after the elastic join; the maximum-deformation point is appended at the end when needed, even if it appeared earlier. This point is the last row of the saved envelope data.
- Average envelope: is calculated from the positive and negative envelope force magnitudes over their common deformation range and is displayed in both directions.
The reported Fmax is the maximum force magnitude on each envelope, and Dmax is the deformation magnitude at that same Fmax point. Negative-direction values are reported as magnitudes. The average Dmax and Fmax are the arithmetic means of the corresponding + and − values.
Fit parameters and envelope settings
Initial stiffness K0 is the slope of a least-squares line through the origin, F = K0X, fitted to points on the first outward loading excursion in each available direction. Only points with matching deformation and force signs are used. Both directions contribute to this single stiffness value. The summary table also reports Ke from separate fits to the positive and negative initial-loading points within that same limit, with their arithmetic mean in the Average column. If a direction has no usable elastic points, its Ke and the average are shown as unavailable (—). Stiffness units are force units divided by deformation units; the displacement limit uses the same units as your input X values.
- Elastic and post-elastic envelope: each branch follows its fitted Ke from the origin to the elastic displacement limit. Beyond this limit, the selected envelope joins the elastic endpoint to post-elastic points and the maximum-deformation endpoint. For 1st-cycle envelope, the outer-bound check applies to post-elastic samples; the elastic portion follows the fitted stiffness rather than raw fluctuations. Necessary post-elastic vertices can occur between deformation reversals. If a directional stiffness cannot be fitted, the combined K0 is used. If a branch ends within the elastic limit, its measured terminal point is retained and no post-elastic fit is made.
- Envelope method: 1st-cycle envelope connects the origin and the strongest measured force peaks in each amplitude group. Force extrema are detected with a noise threshold of 1% of the maximum |force|, so small early cycles are retained even when later deformation is much larger. No extrapolated elastic point is inserted, so the envelope cannot exceed the measured force peak. All-cycle peaks retains the individual detected deformation reversal points beyond the elastic limit, in their original order of appearance in each direction, without amplitude clustering or an outer-bound check. This preserves repeated-cycle strength changes, so raw force can exceed this curve between its vertices. Both methods join the same fitted elastic segment. Stiffness settings affect the envelope join, reported stiffness, and dashed elastic-fit line.
- Initial stiffness — Automatic elastic-region detection: fits the rising-force samples up to 40% of the first loading-excursion force peak in each available direction. If that window has fewer than two samples, it uses up to the first three loading samples. It uses this initial fit as the reference, then checks measured peak levels for two consecutive stiffness losses beyond the degradation threshold. The dashed line ends at the preceding amplitude level, or at the initial fitting-window limit if no sustained loss is found. Its extent is also bounded by the measured force range.
- Number of initial amplitude levels: applies only to Use first N amplitude levels. The Nth smallest detected amplitude level sets the elastic limit, and first-excursion loading points within that limit are used for the fit. Increasing N includes a wider deformation range; including post-elastic points can lower the fitted stiffness.
- Elastic displacement limit: applies only to Specify elastic displacement limit. Enter the maximum |X| to include in the stiffness fit, for example 0.0025 if that is the end of the elastic region in your input units. A smaller limit focuses on the early response but may leave too few initial-loading points; a larger limit may include inelastic behavior.
- Minimum reversal movement: sets the minimum deformation separation between a candidate reversal and the previous accepted reversal, as a percentage of the maximum |X| in the entire dataset. For example, 1% with max |X| = 0.05 gives a movement threshold of 0.0005. Increase it to suppress small noisy reversals; decrease it to retain small-amplitude cycles. This setting controls the plotted deformation reversals and the All-cycle peaks envelope. The 1st-cycle envelope and automatic initial-stiffness fit use force-based detection independently, so later large deformation does not hide the first loading excursion.
- Stiffness degradation threshold: applies only to automatic detection. A value of 5% looks for two consecutive amplitude levels whose median |F/X| is below 95% of the reference stiffness. A smaller percentage detects smaller stiffness losses and can shorten the displayed elastic region; a larger percentage tolerates more degradation and can extend it. This is a detection threshold, not a prescribed reduction in K0.
- Amplitude clustering tolerance: groups force peaks with similar |X| values using a percentage difference relative to the group's median amplitude, and uses that tolerance to match points to detected levels. At 12%, a point at |X| = 0.011 is within tolerance of a level at 0.010. Increase it to group cycles with more amplitude variation; decrease it to distinguish closely spaced levels. Too large a value can merge distinct loading amplitudes. This affects the amplitude table, elastic-fit display range, and initial 1st-cycle peak selection. The 1st-cycle post-elastic outer-bound check uses all raw points beyond the elastic limit regardless of this tolerance. All-cycle peaks is not clustered; tolerance can still affect its elastic join through the shared stiffness calculation.
Use the reversal markers and detected amplitude-level table to check that the settings capture your loading history, then compare the dashed elastic-fit line with the early response. Settings update the results automatically.
Disclaimer
This app is provided for research and educational purposes, as is, without warranty of accuracy, completeness, or fitness for a particular purpose. Extracted envelopes and fitted stiffness depend on the input data and selected settings. Users must independently check the results and exercise appropriate engineering judgment before using them in analysis or design.
Ahmed Elkady and the University of Southampton accept no liability for loss or damage arising from use of this app or its results.