For anyone who has squinted at traditional dynamic cushion curves (static stress curves) supplied by material manufacturers and other sources, a versatile mathematical formula may sound like a welcome alternative. Two applications of such a formula are presented here, in which relative ease and precision have an inverse relationship. Both methods feature transparent calculations that can be evaluated and modified with new data at any time after the setup. These two approaches to cushion curve prediction constitute the author's modification of an existing formula proposed nearly thirty years ago, dramatically improving its effectiveness in cushion calculation. 1. Tight Formula This method requires multiple calculators to represent the anticipated behavior of a single material in multiple scenarios, so it is advisable to create these calculators only as they are needed rather than attempting to populate a complete set all at once. Each published ASTM D1596 generated curve of a given material is formulated individually in order to make off-chart predictions for that particular scenario. With this technique, the predictions interpolate the original curves with a remarkable line of fit and extrapolate with plausible growth rates. It appears to work equally well with open-cell foams relying on a structural component only, and with closed-cell foams that also involve air-displacement. Figure 1- A tight application of the proposed formula 2. Flexible Formula This technique is broader in scope. One dynamic application of the same formula can return a ballpark of a given material’s static load range at any other drop height, foam thickness or fragility level fed into it. This includes predicting new curves that are not provided by the manufacturer, such as 4.75” thick foam cushioning, or a 48” drop height. The cost of this flexibility is in precision. The heavier the static loading, the more the predicted curve is likely to deviate from the source curve’s path of observed behavior. As illustrated in the charts below, the direction of simulated change in the predicted curve will affect the direction of the error. In terms of fragility levels, the more cautious option is to simulate the curve of a smaller drop height than the one sampled, or that of a thicker foam than sampled, rather than the reverse. The faint gray curves in the charts below display the tight application of the same prediction formula, extrapolating the original curve more accurately than the simulation in white. Figure 2- Comparing an actual 24" drop (dark blue) to a 30" drop simulating 24” (white) Figure 3- Comparing an actual 30" drop (dark blue) to a 24" drop simulating 30” (white) There is no need to simulate a cushion curve that already exists. A simulation would provide a rough sketch of how the same material can be expected to behave in extreme or otherwise untested scenarios – in the empty spaces between existing cushion curves, or beyond their printed margins. As shown in these examples, the optimal static load is generally a more accurate value to take away from such a simulation. This is convenient, as the optimal static load is what we are all aiming for in cushioning art. The lower limit of static loading appears reasonably safe when shifting in either direction, and the upper limit of static loading gives a much looser estimate. The proposed formula has not been compared to first-hand observations with dynamic shock equipment. It is presented here as a tool for interpreting existing cushion curves and extrapolating from them when necessary to predict untested material behaviors with a reasonable expectation of accuracy. Comparing the R2 values of this formula’s predictions to a wide variety ASTM D1596 data would be an ideal next step. This article is organized into two parts. Part one begins with a snapshot of the proposed formula, followed by issues with traditional cushion curves and other resources it is attempting to address, a breakdown of the simplified stress-energy method for spreadsheets established several years ago, and finally a closer look at the minor change proposed here. Part two is a step-by-step tutorial for setting the formula up as a simple table generator or calculator, followed by a separate tutorial for testing the significance of its terms in a spreadsheet-engineering context. The final section is optional, but it will be useful to anyone wishing to check the formula’s R2 value and other regression analysis. Part 1 - Introducing the Formula It would seem that the charting tools in spreadsheet applications like Microsoft Excel should be useful in calculating cushion curve estimates, but none of the trendline formulas provided in the application produce anything close to a good fit when applied directly to sample cushion curve data. One scalable growth model, the polynomial, comes closer than the rest, but not close enough to use as a casual visualization, let alone an estimate formula. However, an ingenious solution to this problem has been around for years. Figure 4– Various Excel trendlines attempting to model a sampled cushion curve The Stress-Energy Method, presented in 1990 by Dr. Gary Burgess and more recently applied to spreadsheet functionality by Dr. Matthew Daum, is an elegant way to formulate cushion curves. While the accuracy of stress-energy as a way to simplify, shorten, or to some extent avoid established ASTM data collection procedures may require more research for widespread acceptance, it is nevertheless a powerful supplement to printed cushion curves. In the latter regard the method established by Burgess and Daum has only a minor difficulty that affects prediction. First, its interpolations are rough. While often close, the predicted curves do not quite fit the source curves where they should presumably be expected to overlap. Second, its extrapolations show a consistent exponential-type growth pattern regardless of the material’s tested behavior displayed in the source curves. It remains to be seen whether this consistent natural-exponential growth in peak deceleration shown among the heavier static loading should be interpreted as more valid than the typically more stabilized trend of many published cushion curves, but it is unlikely given the variety of cushioning materials available and their different behaviors under stress. Experimenting with the stress-energy exponential on sample curves produces varying but unsatisfactory results. The next four charts below compare predicted cushion curves in white against the original cushion curves on which they are modeled in blue. The first two are samples of Daum’s stress-energy exponential for spreadsheets applied to closed and open-cell foams respectively. Figure 5- Stress-energy exponential modeling a closed-cell polyethylene foam curve Figure 6- Stress-energy exponential modeling an open-cell polyurethane ester foam curve In contrast, the next two charts below illustrate my proposal here, which is to incorporate the stress-energy conversion into the polynomial growth model that looks better than other trendlines in direct charting attempts. Burgess and Daum’s procedure using a natural exponential appears slightly rough on its own, and the direct application of a polynomial is completely ineffective, but combined they are showing promising results. Each of the two formulas charted below is a simple square (or power-2) polynomial that could be expanded with additional terms for a more precise fit yet. Figure 7–Stress-energy polynomial modeling a polyethylene foam curve Figure 8- Stress-energy polynomial modeling a polyurethane ester foam curve These examples are comparing the two different stress-energy methods to existing cushion curves, not the original observed data from which the published curves were derived. Their respective regression statistics have not been compared in the context of direct application to observed ASTM data. In the latter context the method established by Daum may well achieve higher R2 ratings than the polynomial model. Nevertheless, there is no question that the polynomial is a more nimble function than the natural exponential as a vehicle for Burgess’ stress-energy data when seeking the line of best fit for published cushion curves. Motivation for the FormulaFor the past fifty years, the standard packaging industry format in which material manufacturers publish dynamic cushion curves from ADTM D1596 has been in sets of charts, each chart about 2” or 3” square, sometimes with bold lines describing the curves on minimally indexed fields. Intentionally or not, this serves to remind the interpreter that cushion curves only represent trends derived from linear regression of noisy drop-test data. Consequently they should only be taken as general reference or guidelines, not precise specifications for any given material. The same is true for any information based on published cushion curves, including the subject of this article. On the other side of the package design equation, the “known” factor of an object’s fragility level in G’s is typically going to be an estimate at best. Most objects will have multiple elements or areas with different sensitivities to shock and vibration. The object as a whole may only be estimated in broad terms, such as the ranged G scales suggested in MIL-HDBK-304C and Art In Transit: Studies in the Transport of Paintings.[I] Many times even the simple detail of the object’s actual weight is unknown to an off-site crate designer, and therefore must be also estimated at the time of fabricating the container’s cushioning. Given the roughness of those estimated factors, it is admittedly easy to read traditional cushion curves to a modest level of precision without manipulation. If only rough figures are needed for the package design, and only within the tested parameters available, the designer will have little issue referring to these traditional curves directly. However, there are other options for anyone interested in greater precision, or in stress scenarios not covered by testing. Reading Cushion Curves Interpreting a traditional cushion curve is pretty straightforward. Each curve in this chart represents a different thickness of a certain material at a certain drop height and number of drops. Set a straight edge or imaginary horizontal line that represents the estimated fragility of the object, expressed in the peak deceleration (shock) that an object can withstand without damage – 60 G’s in the example below – and observe where the selected cushion thickness curve intersects this line. These two intersections delineate the full range of effective static loads. The optimal static load is located on the x axis where the curve hits the lowest point on the y axis. Figure 10- Modified scan of cushion curve chart with 60 G's and 1" cushion highlighted. This material is no longer produced by the publishers of this chart. Once the effective range of static loads is determined from the appropriate cushion curve, divide the weight of the object by the minimum, optimal, & maximum static loads to get full range of effective load bearing areas, or load areas for short. A load area is the surface area of foam recommended to engage each side of the object or its inner packaging, expressed in square inches. The lightest effective static load will return the maximum load area, so the relative notions of “minimum” & “maximum” are inverted when converting a static loading psi into load area. Calculating these figures for an object is an important step in determining the best packing design for its handling scenario. Note that the full 60-G range of any cushion thicker than 1" extends well beyond the right margin of this chart. Programmed Resources The ideal solution of doing one’s own comprehensive material testing for a broader range of curves is an expensive proposition. Most shops do not have the resources to access dynamic cushion test equipment and follow ASTM D1596 standards. The time required is reason enough for a busy crate designer to stick with traditional printed curves or look into alternatives. Figure 11- Image from en.wikipedia.org/wiki/Package_testing Several resources over the years have incorporated dynamic cushion curves into hidden calculations in order to display the results more directly based on user inputs. Only a few of them will be mentioned here. The Cushion Design Calculator was a physical circular slide rule that discarded visual curves in favor of quick and direct reference to static loading figures under variable parameters for seven different materials. Its source data were based on curves published in MIL-HDBK-304B, 1978, efficiently organized onto small, overlapping circular scales. According to Paul J. Marcon’s article introducing the slide rule in Art In Transit, it performs calculations using logarithmic scales.[ii] Whether these logarithmic scales were connected with any project to enhance the source curves with broader scope than those printed in MIL-HDBK-304B is difficult to say without further investigation. The Canadian Conservation Institute planned to publish the rule for public distribution in 1991. It is currently out of print. In 1999 Marcon and Thomas J.K. Strang developed the cushion design software PadCAD. The program had a wide range of parameters for foam cushioning layouts that responded in part to the static load of the selected scenario. PadCAD is no longer supported by CCI, and it is incompatible with a 64-bit version of Windows, although anyone running a 32-bit version of Windows may still download the program from the CCI website’s archived files for free. A product key is helpfully provided on the download page. Despite lacking a working copy, we can still compare PadCAD’s calculation methods to those of the formula proposed here. According to the user’s manual, Strang wrote a TCL/TK script that scanned printed cushion curves & automatically charted predictions using a 10th-order polynomial.[iii] An optical cushion curve scanner/digitizer would be very helpful, but working recently with similar large polynomials have shown clear signs of overfitting and other issues when applied directly to cushion curves. Experiments with a 10th-order polynomial on a few published cushion curves reveal the familiar sort of eccentric behavior – particularly at the outer extremity of the curves where the static loads are heavier. The two charts below display the application of a 10th-order polynomial directly to a cushion curve without the intervention of the stress-energy conversion. It looks impressive along the original curve where many tightly spaced data points keep it in check. But as soon as the source data run out, the extrapolations go off the rails. The first example veers to the left at the lighter static loads, and grows in peak deceleration much too quickly at the heavier static loads. The sharp growth in peak deceleration at the light end of the curve should continue into the extrapolated curve rather than the slight drifting shown here, and there should be a more gentle trend or upward curve at the heavy end rather than the sudden turn. Figure 12- Distortion from the direct application of a higher-order polynomial The latter can just as easily become a sudden downward turn when applied to another stress scenario. The example below illustrates a 10th-order polynomial predicting impossible behavior in this foam as it is extrapolated into heavier static loading. These distortions are caused by an over-specified polynomial forced to fit a set of data points that it is not equipped to model directly. The reader is not advised to trust an extrapolation from this formula even though it displays a convincing range of interpolation. The user’s manual does not mention how this problem was avoided in PadCAD’s calculations. The hazards of overfitting in higher-order polynomials will be discussed in more detail later in this article. Package Designer is a cushion calculator developed by Frontier Engineering Inc. for the Wright-Patterson Air Force Base in support of the military packing design handbook, MIL-HDBK-304C.[iv] Much like PadCAD, Package Designer appears to have a wide variety of scenario input options, but the older version that is readily available also requires a 32-bit version of Windows. The latest version of the application referenced by the user’s manual 2.0 can be requested from the indicated representative at WPAFB by email. According to the manual, Package designer 1.0 had used cubic equations (power-3 polynomials) applied directly to data sampled from MIL-HDBK-304B cushion curves with predictably distorted results. The sharp corners in the midst of these curves indicate sudden redirections in the data arrays. They appear similar to what might happen if one used two different over-specified data sets on each curve, abutting them near the middles of the curves to attempt mitigating the severity of the inevitable distortions. Figure 13- Chart printed in MIL-HDBK-304B Figure 14- Chart generated from cubic equations in Package Designer 1.0 Version 2.0 replaced the cubic formula with an optical scanning software called Enguage to create accurate digitization of MIL-HDBK-304C cushion curves, possibly with interpolation functionality. Figure 15- Chart generated from optical scanning in Package Designer 2.0 If Package Designer attempts to interpolate or extrapolate from the scanned cushion curves, the prediction formula used is not listed among the several improvements between versions 1.0 and 2.0. Any information the reader has on Package Designer’s scenario parameters, and especially the formulas driving its static loading calculations, would be most welcome. Aside from the undeniable convenience they offer, any readymade cushion design program is likely to have one or more of the following shortcomings: a limited range of materials/scenarios/design parameters covered, however extensive; potential issues with its curve extrapolation formulas (and by extension some of its static loading ranges) if prediction is attempted at all; hidden or unalterable calculations and source data; and the most basic issue of limited availability, the latter sometimes due to lagging or discontinued support. For the time being anyway, only a DIY solution will have the flexibility, transparency and editable calculations that these resources tend to lack. The simple formula presented here is no substitute for the conveniently readymade scenario options and visual aids in a working cushion design program like PadCAD, but an intrepid designer can always encode it into a new proprietary application or widget as an improved primary calculation function. Or as the tutorial will show, it can also be generated as a simple one-off calculation as needed, and its results added to a growing collection of enhanced static loading data. Groundwork for a Simple and Reliable Alternative Nearly 25 years ago, Dr. Gary Burgess published the paper, Consolidation of Cushion Curves, Packing Technology and Science vol 3, 189-194 (1990). Burgess presented new terms of cushion behavior, dynamic stress vs. dynamic energy density, which could predict untested curves for a cushioning material with only a small set of ASTM D1596 samples as a data source. A table of no more than ten points of observed data could create a flexible curve to predict results under unlimited variations in drop height and cushion thickness, based on inherent properties of the material. A single exponential growth formula could be applied to any cushioning material involving air displacement, including closed-cell foams and corrugated cardboard pads. It also apparently showed some decent predictions for open-cell polyurethane foams. In his 2006 paper, A Simplified Process for Determining Cushion Curves: The Stress-Energy Method,[v] Dr. Matthew Daum presented a practical version of Burgess’ stress-energy formula for use in the commercial packing industry. The presentation shared his process of creating it using Microsoft Excel charting tools, particularly trendline formulas, rather than using a programming language. In 2013 Daum condensed his earlier article into Simplified Presentation of the Stress-Energy Method for General Commercial Use.[vi] This shorter piece was essentially a quick-start guide for implementing the formula. It included sample constants for thirty different cushion materials, and a couple of them are fairly common in the art handling field. Daum’s Simplified Stress-Energy Method for Use with Spreadsheets Whether using the formula on a computer or by hand, the stress-energy method requires an important mediating step from which it got its name. This step converts the array of observed data points in a cushion curve, static loading vs peak deceleration, along with a couple of known scenario parameters, drop height and cushion thickness, to create two new columns of data points: dynamic stress & dynamic energy density. Once the new columns are added to a table of source data, the prediction formula recommended by Daum is the exponential: y = AeBx Where: x = dynamic energy density = sh/t = multiply static load by drop height, then divide by cushion thickness. y = dynamic stress = Gs = multiply peak deceleration by static load. e = 2.71828 = a constant element of the natural exponential formula. A & B are dimensionless constants derived from a sequence of points taken along the curve through linear regression. The formula shown above solves for y, which is dynamic stress in this case, or G x s. Simply divide the column of y results by the new column of static loading to get predicted peak deceleration. Another way to express this formula is to solve directly for peak deceleration in one step: G = (AeB(sh/t))/s Evaluations of the Method 1. Simplified Stress-Energy Method Applied to ASTM D1596 Data: In 2010 Jay Singh, Lina Ignatova and Eric Olsen published a study of the stress-energy method to explore its accuracy with a view towards the potential of shrinking the quantity of samples taken during the time-intensive ASTM D1596 testing, potentially down to only 3-5 points per curve. While previous studies of the method conducted with unidentified materials found only 5% divergence from the curves of observed data (an excellent R2 rating of 0.95), this study compared the method against observed ASTM D1596 data of PolyPlank 1.7 lb. ProLam Laminated Polyethylene Plank with much greater divergence. The researchers couched this evaluation in terms of “thin picks,” “same picks” and “thick picks,” that is, the resulting thickness of material recommended by the predicted cushion curves, rather than the more elementary static loading values of concern to the present article. In the former terms, it found that predicted curves diverged in peak deceleration values from observed data by a range of +27% to -21% in the most extreme cases.[vii] Note that these were the outlying differences, not the average differences. It may be helpful to remember that individual data points recorded from drop testing will typically show differences in peak deceleration as well. 18% variation is an acceptable range under ASTM guidelines. The study did not dismiss the stress-energy method by any means. Among its conclusions were two unsurprising observations: Accurate predictions with the formula require a higher number of test samples than the extreme minimum of 3-5 data points per curve, and ASTM D1596 remains a more reliable analysis of a material’s cushioning characteristics than simulated predictions made through the looser application of the stress-energy method. In 2012 Kendalyn Paulin presented a thesis evaluating Daum’s simplified method through regression analysis resulting in generally very high R2 ratings among the materials tested.[viii] The research looked for a pattern in how the differences and percent-differences in y values tended to vary along the x axis, and included observations of how well the formula’s predicted curves fell within the range of variation in the original test data from which they were derived. By deliberately adding an 18% margin of error to the y values of the cushion curve generated from original ASTM data, Paulin demonstrated that the predicted curves had a tendency to at least fall within that margin in the middle and upper static loading of the observed test data, but not in the lower static loading where the predicted curves tended to show over 20% divergence. This effectively compared the prediction to its source with the noise inherent in the actual observed ASTM data in mind. Fuzzy numbers aside, these comparisons revealed that predicting peak deceleration tends to be safest near the optimal static load, somewhat safe in the heavier static loading, and riskier among the lighter static loading. This can be a misleading perspective for our purposes, however. Like the earlier study, this one tracked differences in G levels for a given psi static load rather than differences in static loading for a single G level. From the more practical perspective of treating static load as the unknown rather than the peak deceleration, an inversion of this observation can be made. Predicted curves tend to show greater differences in static loading among its higher values along the x axis while staying somewhat closer to the source data curve at the lower values. The problem of solving for y instead of x will appear once more, in the tutorial for creating a calculator from this formula. Paulin’s study also utilized the confidence interval as a tool for hedging the predicted curve’s bets, giving it a range of predicted readings rather than a sharp line. 90% and above is considered a statistically significant value rating, and the recommended value for the confidence interval is 95%. Regression analysis tools include statistics for sandwiching the predicted curve between upper and lower curves of probable accuracy. This in effect adds margins of error to the predicted curve, showing the range within which the reader can expect a 95% chance of accuracy. In terms of choosing the appropriate cushion specs for a packing scenario, the top margin with higher G’s represents a more cautious reading of the formula’s predicted static load range. Incidentally, the reader may find that Paulin’s study would provide a helpful supplement to understanding regression analysis in the specific context of cushion curve prediction, the subject of the final tutorial in this article. 2. Simplified Stress-Energy Method Applied to Data Sampled from Cushion Curves: Regression analysis may yet reveal that the stress-energy polynomial proposed in the present article has inferior R2 values compared to the established exponential model when applied to original ASTM data. Using the polynomial model on unfiltered test data is outside our current scope. However, a direct comparison of the two formulas can be made in the context of the alternative data source recommended in Daum’s papers; printed cushion curves. For the method’s accuracy and general validity, Daum makes no distinction between taking the source data from original ASTM procedures and “working backwards from existing published curves.”[x] Due to the much greater accessibility of the latter technique, it will be assumed in all visual comparisons. Regardless of its accuracy when applied to raw ASTM data, the simplified stress-energy method established by Daum does not perform very well when attempting to fit the much tighter tolerances of published cushion curves. The chart below illustrates a severe divergence from a set of sampled curves. Note the greater divergence among the thicker foams. Keep in mind that this is a tight application of the formula with each source curve sampled individually, not the looser application involving simulated curves. Figure 16– stress-energy exponential y=AeBx, (white) vs their source curves (blue) The established method also favors exponential growth in peak deceleration along the heavier static loads, after substantial dips among the thicker cushions. The more aggressively curved growth displayed here is always present in the stress-energy exponential prediction regardless of what the source curves are doing. In contrast, the published cushion curves from which these predictions are derived show much more stabilized growth among the heavier static loads after sharper dips in peak deceleration. The Solution: Stress-Energy Polynomials The chart below shows a slightly different version of Daum’s simplified stress-energy method applied to the same source curves as the previous chart, only with a polynomial replacing the exponential model. The polynomial consistently shows more flexibility in formulating the source data with greater precision than the natural exponential when that data is sampled from an existing cushion curve. It also tends to show a continuation of the source curve’s expected growth rate among heavier static loads as the prediction extrapolates beyond the source. The complexity of the polynomial can vary depending on the characteristics of the curve being described. Higher-order polynomials will often be required to fit the data points satisfactorily, but it is best to start with a simple power-2, also known as a square polynomial, and go from there. Figure 17- stress-energy polynomial y=Ax2 + Bx + m (white) vs their source curves (blue) Breaking the proposed formula down: y = Ax2 + Bx + m Where: x = dynamic energy density = sh/t = multiply the static load by the drop height, & divide by the foam thickness. y = dynamic stress = Gs = multiply the peak deceleration by the static load. A, B & m are coefficients derived from a sequence of points taken along the curve through linear regression. As shown here in the values of x & y, the familiar coordinates from a traditional cushion curve, static load and peak deceleration respectively, are not used in the polynomial directly, but rather converted into new variables. Also incorporated into the independent variable x are two constants from the shock scenario – drop height and cushion thickness. Unlike the cushion curve it is sourcing, the converted xy series will produce a simple ramp-shaped curve typically stretching from the lower left of a chart to the upper right. So far this remains the original data set, only now converted into the intermediary values Burgess labeled energy density and dynamic stress. When the converted xy values are then applied to the polynomial shown above, arbitrary x values (energy density) can be entered to return new y values (dynamic stress) beyond those of the original curve’s scope. This is how predictions can potentially be made for the material beyond the scope of its published curve. To convert the resulting predictions back to static loads vs peak deceleration for a new cushion curve chart, simply reverse the stress-energy formulation for the new set of coordinates: Predicted static load = xt/h = predicted energy density multiplied by foam thickness, then divided by drop height. Predicted peak deceleration = y/s = predicted dynamic stress divided by predicted static load. To solve directly for peak deceleration using the same notation: G = (A(sh/t)2 + B(sh/t) + m)/s The final series of points thus produced will look like the familiar cushion curve when plotted in a chart. Only now, it is possible to extend the range of this curve to higher & lower static loads than those provided by the manufacturer or ASTM. A final note about the polynomial solution: Any cushioning material will be more taxed near the margins of its recommended static loading range than within the central region. The bottom curve in the chart above looks like it may reach a 15 psi static load if the object is assigned an estimated durability of 100 G’s. This is not necessarily implausible for such a durable object, but it is not confirmed by testing either, and that is getting quite far from the dip. It would require extensive ASTM D1596 with a focus on higher G levels in order to evaluate how realistic it is to expect this slope to continue thus into ever heavier static loading. The best practice remains taking the necessary steps to give the object a static load near the bottom of the dip, that is, near the optimum. That may mean changing the type or density of foam used, or the ultimate size of the transport container. Daum’s 2007 paper cites a 1995 thesis study by Rougong Liu, Development of a Computer Aided Cushion Design Software, Michigan State University, wherein Liu utilized a polynomial for cushion curve calculations and discussed software developed in Qbasic programming language that automates cushion curve prediction. The paper is currently unavailable for review, and it is unclear whether Liu’s software had applied polynomials to Burgess’ stress-energy terms as proposed here, or directly to the published cushion curves being sourced as executed in PadCAD’s calculations. Daum countered that his own simplified stress-energy method is both more precise and easier to implement than the more complex polynomials.[x] His assessment about relative ease cannot be denied, but the claim to greater R2 value can be challenged as long as the polynomials adopt the stress-energy terms while sampling from published cushion curves. Summary Traditional printed cushion curves are easy to read and require no setup, but they are limited in scenario options, scope and precision. Automated cushion calculation programs are convenient and have diverse features, but those features may not be useful for every user or applicable to every geographic region. Such programs serve a minuscule market, and do not tend to remain available and supported forever. They may also have hidden calculations and source data that cannot be evaluated or updated, limited scenario options and scope, and unproven prediction formulas if prediction is attempted. The simplified stress-energy method established by Daum is easy to set up, especially when limiting the source data points to the suggested five or ten. Whether it is the most accurate prediction formula currently available when applied to original observed ASTM D1596 data is subject to further study in the packaging science community. However, it is not equipped to fit published cushion curves well. In the latter context it is somewhat stiff and unresponsive to the tighter tolerances and eccentric characteristics of existing curves. Daum’s method requires new calculations for each material or each individual curve depending on the accuracy desired. The ability to calculate simulations of hypothetical curves is one of this method's most powerful features. The alternative stress-energy polynomial proposed here, y = Ax2 + Bx + m, generates the line of best fit and a higher R2 value then the stress-energy polynomial when applied to data sampled from published cushion curves. It is scalable, so that better fits can be found for more eccentric cushion curves by increasing the terms of the polynomial. It is a simple formula to generate, but not as simple as Daum’s exponential model. Like the latter, it requires a new set of calculations for each material or each individual curve depending on the accuracy desired. Its powerful ability to calculate simulations of hypothetical curves is equal if not superior to that of the exponential model. It would take no small effort to formulate a full set of accurate cushion curves without the use of simulated curves. Its R2 value when applied to original observed ASTM D1596 data is currently untested by the author. Unlike full-featured software, the proposed stress-energy polynomial is itself limited to the single question of locating the correct static load for the scenario at hand. However, that is the most complex of the quantifiable calculations involved in cushion design. The remaining calculations offered by software are elementary (such as load area per side, suggested individual pad sizes, suggested pad configurations, material cost of the chosen cushioning, etc.), and can easily be added to a spreadsheet calculator. The polynomial’s agile handling of cushion curve data can also be programmed into new proprietary software if desired. Part 2 - Creating a Stress-Energy Polynomial Calculator The next section walks you through the creation of a static loading calculator step-by-step in Excel for a single material in a single shock scenario. Following that is a quick tutorial on making it a more flexible formula to calculate rough curves for untested scenarios – the second, broader method mentioned in the introduction. This calculator can presumably be set up in any spreadsheet application, whether or not the program includes visual charting tools. Some programs may use different syntax than that of the Excel functions presented here. It bears repeating that published cushion curves represent typical values, not material specifications. Likewise, basing a formula on these curves is merely a method of enhancing estimates of a material's likely behavior under assumed shock levels. It is not a guarantee of cushion performance regardless of packing technique and actual stresses encountered. Tight Formula Data Points: Pick your material to source for the calculator. The first thing needed is a drop height and foam thickness. Type the name of your chosen material in cell A1, the number of drops for this curve in A2, the drop height in inches in A3, and the foam thickness in inches in A4. For this tutorial we will use the 3" curve in the chart below. Cushion Curves by Sealed Air Now we will enter a set of coordinates representing a range of static load and peak deceleration in the scenario chosen. Getting this data can be as simple as using a ruler to locate a sequence of points along a selected cushion curve. I recommend getting at least 20 points. However, keep in mind that sampling more coordinates would increase the resolution of the data, and sampling them carefully will improve the accuracy of your cushion curve formula. Some error is unavoidable in this step, because we are attempting to map out precise coordinates from imprecise original graphics. For this step I blow the original graphs up digitally, decompressing distorted charts when necessary to make the x-y grid a consistent scale, and use vector graphics to tighten the line of the curve. Figure 18- Tracing fuzzy cushion curves with a fine line Vector graphics are scalable, so this affords me a decent reading to the hundredths of a G peak deceleration, or the thousandths of a psi static load. This precision is not a misguided attempt to ignore or compensate for imprecise factors elsewhere in the object’s risk scenario, but an attempt to increase my prediction formula's R2 value by giving it a smooth series of data points to work with. Figure 19- A fine grid facilitates locating points on the vector-based curve My source data sets generally follow the values of G in whole numbers, which produce a range of about 30-100 points per curve. Another reason for so many points is to mitigate small imprecisions in point location with a larger sample of information. Incidentally, there is a free optical data curve scanner from developers QT called Enguage Digitizer. After finding that the download was missing some .dll files, mixed product reviews discouraged further pursuit with the tool. The Package Designer 2.0 user’s manual mentions successful use of Enguage. It is a challenging set of terms for which to find relevant results in a search engine, but there may well be other optical curve scanning widgets available in the commercial market. Label two columns where your xy coordinates will be listed as static load and peak deceleration respectively, cells C1 and D1. Find a number of arbitrary points along the curve you are sampling and type their coordinates into the two-column list. You will want to find a bare minimum of 10 points, preferably several times that. I also recommend listing these points in sequence from the lowest to the highest static load; left to right on the chart, top to bottom in the list. For this tutorial we will sample 30 points, so you will fill out C2:C31 and D2[colon]D31 with coordinates. You can copy the values pictured here or find your own points on the same curve to get a feel for it. If you choose to plot your own points, choose the right curve so you can follow along: 3” foam. Results will vary slightly if you sample your own curve for this step, so in that case use your own calculator’s values moving forward rather than copying any others shown in subsequent illustrations. Be sure to include the optimal static load in your sequence of coordinates, which is located at the very lowest point of the curve. This will remain the most important static load in the final results displayed, and it will not come from the predicted curve. Once your G’s are listed next to their corresponding psi, you should have two columns of twenty numbers each. This is your primary source data, and you will want the interpolations of your predicted curve to match the curve these numbers describe as closely as possible. Note: For some packing situations this initial plotting of coordinates is as far as you would need to go for a precise reading. For example, if your object has a fragility level of 40 G’s, under the current parameters you can take its full static load range directly from this first array of numbers. Referring to the array pictured above, the minimum effective static load in this case is 0.508 psi, the maximum is 1.75 psi, and the optimal is 0.96 psi. For the sake of this tutorial we will assume that our object is a sturdy 100 G’s, and a tight budget is forcing us to check the higher effective static loading range, which in turn will afford much smaller amounts of foam than the optimal static load would call for. Insert a scatter chart into the worksheet and select this data to represent your original source curve. As you know, the x values need to come from the static load column, or C2:C31. The y values need to come from the peak deceleration column, or D2[colon]D31. You should see points appear that trace the cushion curve you have sampled from the original. I took these values from my own previous sampling of a curve, and to simplify this tutorial I erased about every other data point. For cushion curve charts I like to make the points invisible and connect them with a solid line. This is not an active trendline as far as Excel is concerned, but a simple graphic line connecting the dots. Stress-Energy Conversion: The most important step in this method is also the easiest. Label two more columns energy density and dynamic stress in columns E1 and F1 respectively. In cell E2 multiply the static load from the same row by our scenario’s drop height & divide by the foam thickness. Again, the formula for energy density is: sh/t, or static load x drop height / foam thickness. In cell F2 simply multiply the peak deceleration from the same row by its corresponding static load. Type the following into the cells indicated: Cell E2: =C2*$A$3/$A$4 Cell F2: =C2*D2 Select the two cells E2:F2 and hover the mouse pointer over the bottom right corner of the rightmost cell, F2. When you see a small black “+” appear, click & drag the symbol down through the next twenty-nine rows and let go at the bottom right corner of F31. This action is called flash fill in Excel, and it will come in handy. Now you should have four columns of numbers. Notice that the dollar signs in E2 told Excel to keep referencing those exact two cells when you copy/pasted or flash filled from the active cell. In contrast, the lack of dollar signs in the reference to cell C2 in this formula told Excel to continue referencing from the same row as each new cell in the E column. So instead of what you typed in cell E2, function in the new cell E31 will read, =C31*$A$3/$A$4. Each pair of columns shows a matching series of xy coordinates on their respective charts, but they do not inhabit the same chart. Insert a second scatter chart and plot the points listed in columns E2:E31 and F2:F31. The two new columns are what you will be sourcing in the prediction formula. This second chart is advisable because it will be the one with the valid R2 value for checking accuracy of the trendline. The cushion curve chart is not where the polynomial is doing its thing, and displaying the trendline there will not work. Stress-Energy Polynomial: Even a simple polynomial is a little long for a single cell in Excel, so I recommend breaking it down into component parts across multiple cells. Here is the basic formula again: y = Ax2 + Bx + m. First you need to get the coefficients A, B & m using Excel’s INDEX & LINEST functions. Move your charts down a few rows to reveal row 34. We will take a closer look at these functions later on, but for now just type them: Cell C34: =INDEX( LINEST(F2:F31, E2:E31^{1,2}), 1) Cell D34: =INDEX( LINEST(F2:F31, E2:E31^{1,2}), 2) Cell E34: =INDEX( LINEST(F2:F31, E2:E31^{1,2}), 3) Now you have a row of three numbers displaying the A, B & m coefficients for the polynomial. Now put it all together. The next four columns will be longer because we want to see what the calculator does with a larger range of values. Label the next two columns, G & H. Cell G1 can be called something like predicted energy and H1 predicted stress. Type the following underneath: Cell G2: 1 Cell G3: 2 Cell H2: =($C$34*G2^2)+($D$34*G2)+$E$34 Cell H3: =($C$34*G3^2)+($D$34*G3)+$E$34 Now select all four cells G2:H3 and flash fill through H31. Selecting two or more rows at once tells the flash fill tool how any numbers in cell references without “$” should be sequenced. In this case you told it to flash fill in whole numbers. You can do the same with decimals, or you can skip whole numbers. This 2-column by 30-row array of coordinates is your dynamic prediction for the cushion curve, but it is still in its stress-energy form, so you will not be able to read it just yet. The next step is to convert these values into new static load and peak deceleration values. Label columns I and J something like predicted psi and predicted G. Then type the following in the cells below: Cell I2: =G2*$A$4/$A$3 Cell J2: =H2/I2 Select and flash fill I2:J2 down to cell I31:J31. This is your new predicted cushion curve, which is now based on a formula that can extend it to estimated points beyond the range of the original. There is one more step before you compare the predicted curve to the original in the chart. We will now tweak the range of the new curve into realistic limits. I take it to 120 G’s peak deceleration maximum. 120 is among the more shock-resistant ratings we are likely to handle, but you can take it higher if you prefer. Notice that your column of predicted G’s is currently showing a range of precise numbers, but none of them are the traditional G values that we are accustomed using while reading cushion curves. Make the top predicted G cell J2 show the desired value by manipulating the corresponding number listed in the predicted energy column, G2. You can simply start typing different numbers into cell G2 until you get something close to 120 displayed in cell J2. To make the value in J2 climb, lower the value displayed in G2. We are pretty close to 120 already, but I will save you the trouble this time by saying that it is approximately 1.13. To limit your range of G’s from the low 120 to the high 120, or any other upper peak deceleration limits, change the independent values in the predicted energy column (G2:G31). You will recall that the numbers you entered in this column representing energy density were an arbitrary sequence of 1-30, and you can change them to anything you want. Excel has a handy tool for fine-tuning this sort of tweak, and it is called Goal Seek. In the images above, we have used Goal Seek to change the first G value in our range to get as close as possible to 120. This is the upper limit of peak deceleration that we are choosing to give this curve. Notice that the corresponding static load psi has changed along with it. Scroll to the bottom of these columns. The highest G value in this series is only 56 and change, so we need to extend the series until it reaches the target value of 120 G’s. Select the last four columns of data, and at least two rows. Then flash fill repeatedly if necessary until the G value displayed reaches or surpasses 120. I will give you the answer here and say that it needs to go down to row 75. Highlight cell J75 and use goal seek to make it display the closest possible value to 120 like we did at the top of this series. Before proceeding, scan the G values in the last column and make sure there is a good spread of values. What we are looking for in this case are numbers fairly close to 100, 60, 50 & 40. Remember that we want them to occur twice – descending towards the low point from the top of the column, and ascending from the low point towards the bottom. This series happens to have a scaling that we can work with, so we will not make it any longer. Once you are satisfied with your range of peak deceleration values, add a curve to your chart that sources the new predicted psi vs G coordinates. If you followed this tutorial correctly the new line drawn should be nearly identical to the line derived from the source curve, except that the predicted curve extends beyond the original in plausible vectors up to 120 G’s peak deceleration. This visual confirmation in a chart is a legitimate first step to checking the reliability of your new curve’s interpolated and extrapolated calculations. Should you want to check the R2 value of your predicted curve, it needs to be done in the stress-energy form; not when converted back into the predicted cushion curve. To do so, go back to the stress-energy chart that we created a few steps previously. Then right-click the points, anywhere along the curve, and select Add Trendline… from the context menu. It will initially appear as a straight line. This is the default trendline setting in Excel, as it assumes most people are looking for a linear trend in their data rather than a growth curve or a moving average. Click this line, and the Format Trendline tab should open in the chart formatting window on the right. Click the box for Display R-squared value on chart. You should now see the R2 value in the chart. We will refer back to this 0.9596 rating in just a moment. Now click the Polynomial option in the Trendline Options tab, keeping the Order at the default setting of 2. The R2 value displayed in the chart has now changed from 0.9596 to 1. The range of possible R2 values is 0-1. It is a linear regression statistic that measures the goodness of fit. In other words, it represents how closely the trendline described by your prediction formula intercepts the data points it is modeling. 1 is a perfect score, meaning that the formula describes a line passing through every point in your array of coordinates. An R2 of 1 will not always be possible, but when it is <1 you can always try a few higher powers until it gets closer. Incidentally, this R2 is not really a perfect 1. The chart just considers it close enough to call it 1. I do not recommend that you click Display Equation on chart because the polynomial Excel would display often has its coefficients rounded off to fewer decimal points. If we were to copy these simplified coefficients into our calculator as real values, the tiny differences would compound along the columns of independent variables, making the curve diverge from the source data unnecessarily. It is important to bear in mind that since this trendline is calculating points copied from a printed cushion curve, which was itself a trendline of observed test data, the R2 value displayed in chart 2 is really only measuring how well we plotted our coordinates from the printed cushion curve. As a result, the original ASTM-D1596 data from which the printed curve was derived is completely disconnected from this R2 value. Even if we do not do the physical testing ourselves, the next best thing for this formula would be getting access to raw data points from previous testing. Plotting our data points from a printed cushion curve as shown in this tutorial is a last resort for getting some data to work with. Moving forward, the R2 value will not indicate whether a polynomial is overfitting the data, so it is not the only statistic that bears checking. Overfitting can cause a line of poor fit to pass through every point, like a drunk driver swerving back and forth and still hitting every cone. There are other statistics that you can uncover in Excel for a more quantified assessment of your formula and look for signs of overfitting not visible in the chart. Understanding and using regression analysis is a bit more technical than the procedure for creating this calculator, so we will come back to it at the end of this article. Up next we will turn all of this data into a simple tool. Then we will look at a couple of variations on this procedure – higher-order polynomials, and the more flexible application of the formula mentioned in the introduction. Table vs Calculator The charts we just created are not the calculation tool, but merely visualizations of the data. The database we filled out, A1:J41, is technically the calculator, but it is a bit large and messy looking with a lot of redundant and otherwise unwanted values on display. For this reason I recommend either extracting a smaller table of results from the last two columns of the database, or creating a user-interface to simulate a simple calculator. With the latter you would be able to enter a known G value representing the relative fragility of the object and instantly see the appropriate range of static loads in response. A major caveat of the stress-energy polynomial method is that we cannot make the actual formula return a static load result when a known peak deceleration is entered. The formula itself is essentially a calculator that makes you enter the solution to get your problem in return. What we want to do instead is enter a known fragility level in the object, such as a painting that cannot withstand more than 50 G’s peak deceleration without damage, and see what the effective static load range for the chosen foam would be in the chosen thickness and estimated quantity and severity of shocks. The goal seek tool we used a moment ago cannot be automated as an in-cell function, and using goal seek on hundreds of cells per curve is not a viable option either. There is a way to simulate the goal seek tool by interpolation - that is, setting up a deliberate circular reference with limited cycles and scaling between a small group of cells. However, I think this amount of active calculation would become a memory sink in a large file of cushion curves. There is also a VBA option, but I prefer to avoid macros. So what I am going to show you is a relatively quick and easy work-around. The last two columns in the database we just created form a table of predicted cushion curve behavior within a limited range. One of many possible ways to simulate a calculator in the usual sense of the word is to extract only the important values from this long series ahead of time to create a smaller table that is easier to reference quickly. Another option is to make a set of simple conditional functions that can manage the smaller table of results in a more controlled format. You can increase the options to choose from if you prefer, but we will limit it to five levels here: 40, 50, 60, 100 & 120 G’s. I typically include 20 G’s at the fragile extreme, but as you can see in the chart, this particular curve does not happen to dip that low. We first need to fine-tune additional cells in the predicted energy column into values that result in values as close as possible to the desired set, just like we did for the 120 values at the top & bottom of the predicted G column. Scan cells J2:J41 looking for upper and lower values close to this U-shaped sequence: 100, 60, 50, 40, 40, 50, 60 & 100 respectively. Since the column now begins & ends with 120, the other values listed can be found in between. Highlight those cells as you find them, then go back and use the goal seek tool again to make them match the values being sought. Before the upper G values are tweaked: After the upper G values are tweaked using goal seek: Scroll down to row A60 and type 120, 100, 60, 50, & 40 into cells A60:A65 respectively. Each of these G values will have three different numbers next to them, the high, low & optimal static loads. In cell B60 type or copy/paste the predicted psi adjacent to the top 120 predicted G in cell J2, and in cell D60 type or copy/paste the optimal static load. In cell D60 type or copy/paste the predicted psi in cell J41. Continue this until cells B60:B65 and D60[colon]D65 are filled in with your high and low predicted psi’s, and cells C60:C65 all display the same value – the optimal static load. This will be the complete range of possible results in your calculator. These twenty cells do not look like much, but they may be all you will need in most cushion design situations. This is not to say that you are limited to this or any other set of figures for the peak deceleration values. You can focus on any set of G values you prefer for the table. I only recommend keeping it a small set, like five or six rows. The static loading values are labeled incorrectly in this table - the high and low psi labels should be swapped. Tip: For those G levels that the original printed curve includes, you have the option of entering the static loads that you took directly from the original printed curve rather than from the predicted curve. Either figure should be reliable within a few thousandths of a psi, but which value you enter here is up to you. The printed cushion curve we are sourcing in this tutorial allows the opportunity to sample the following peak deceleration levels, in this order: 50, 40, optimal, 40, 50 & 60. All of the static loads associated with these G’s can be taken directly from the printed curve if you prefer that to using the predicted curve exclusively. Before moving on, you can stop here and refer to this small table of figures when this particular scenario is called for, and you can put it together with other cushion curve tables like this to make a kind of super-table for a one-stop reference. Or you can go a little further and make a smaller interface that responds to G inputs. This is optional, and pretty basic Excel, so I won’t go into detail explaining it. Just highlight cells A68[colon]D68, give them borders, and enter the following. Cell B68: =IF(A68=120,B60,IF(A68=100,B61,IF(A68=60,B62,IF(A6 8=50,B63,B64)))) Cell C68: 0.96 (the optimal static load will not change with the G value, so just type or copy/paste it here) Cell D68: =IF(A68=120,D60,IF(A68=100,D61,IF(A68=60,D62,IF(A6 8=50,D63,D64)))) Cell A68 is where you will enter G’s peak deceleration, and cells C68:E68 is where the range of effective cushioning will be displayed. The user interface only requires four active cells, plus whatever labeling you want to give them. Typing any number other than those displayed in G60:G65 will return errors in the static load results. To avoid error messages, you can limit the input cell to the specific range of numbers from your table by using Excel’s Data Validation tool to turn it into an in-cell drop down menu. Now you have a working prediction calculator for one particular cushion curve, 3” (undisclosed foam type) @ 2-5 30” drops. And only this last row of four active cells needs to be visible in order to use. It looks silly sitting right there under the table it is referencing, but moving these four cells to a different worksheet would give you room to place many such calculators together on one page. Table or calculator, it is up to you. Either can be augmented with simple calculator to give you the minimum, optimal, and maximum effective load bearing area for each side of the object. As you probably know, the object’s estimated weight divided by the static load will provide the square inches of contact needed with foam cushioning. Comparing the load area to the area of each side of the object will help inform the packing approach and type of cushioning material needed. Higher-Order Polynomials With a power-2 polynomial under our belts we should get familiar with the larger polynomials that will become very useful in moderation. Here is an illustration showing the potential hazard of overfitting mentioned earlier, which is also called over-specifying. I took this image from the Wikipedia article on the subject. These observed data points describe a stable trend moving essentially in a straight line. It is not showing growth from the median up or down. The straight trendline is a simple linear formulation of the data. The squiggly trendline is a polynomial with too many terms. The polynomial technically has the higher R2 value of the two lines in this case because it is intersecting every point. But this does not make it the line of best fit. The straight line clearly draws the more useful analysis of the data, despite the fact that it does not actually intercept a single point. Any predictions based on this polynomial are going to shoot dramatically up or down as soon as the calculations extrapolate past the original data points. Note that it turns sharply downward after the last point in the top right of the chart. This is the trouble with the 10th-order polynomial on which PadCAD’s calculations were based according to the user’s manual. With that caution in mind, a polynomial can also have too few terms to fit the data. Despite the improvement it shows over the exponential model, a second-order polynomial will not fit every curve very well. In fact, a stickler for precision may use higher-order polynomials on nearly every third or fourth cushion curve. If you formulate a cushion curve and the R2 value is lower than expected, or the charted predicted cushion curve does not match the original cushion curve very well visually, try a higher polynomial. Higher-order polynomials have more terms, resulting in a larger number of coefficients, which in turn can trace more eccentric growth curves. A glance at some higher-order polynomials reveals the function’s basic pattern. There is always one additional coefficient (labeled m here) trailing the set of terms equal in number to the polynomial’s power: 3rd order polynomial: y = Ax3 + Bx2 + Cx + m 6th order polynomial: y = Ax6 + Bx5 + Cx4 + Dx3 + Ex2 + Fx + m n order polynomial: y = Axn + Bxn-1 + Cxn-2 + Dxn-3 + … + m Deliberate Overfitting: A final comment about complex polynomials: There are rare scenarios when you may want to experiment with overfitting deliberately in order to interpret a quirky cushion curve in a presumably realistic way. Ester foam is particularly tricky to formulate in certain scenarios, because its published cushion curves do not always reveal the location of a lowest point. The lack of a clear dip in the curve means that its optimal static load may be outside the chart’s range of observed data. Using a polynomial formula to extrapolate the optimal static load from a curve that shows no sign of one is admittedly a rough estimation at best. However, we know one thing about eccentric cushion curves like this: The areas above and inside the curve represent effective static loads, and those below and outside the curve do not. So an extrapolation that sends the curve dramatically upward at the lowest extremity is a more cautious and realistic assumption than the alternative. 2” ester foam is not magically so soft yet supportive that it will have negative psi static loads. Along those lines, an over-specified polynomial calculated to veer sharply upward at the low extremity should be a more cautious formula to use for extrapolating such scenarios than one that continues the observed trajectory ever downward into negative x & y coordinates. This cushion curve required a sixth-order polynomial to produce the sharp peak deceleration growth expected at the low static loads. Thanks to Burgess and Daum’s stress-energy conversion, this polynomial also extrapolates at a plausible rate of peak deceleration growth in the heavier static loads. One can either take the lowest observed extremity of such curves as the scenario’s optimal static load, or experiment with higher-order polynomials that extend the low point into a swoop back up into common sense G’s. That is up to the individual user. Flexible Formula for Simulated Curves As mentioned earlier, this alternate application of the stress-energy polynomial sacrifices accuracy, particularly at the heavier static loads to the right of the curve’s dip. What it gains in return is the ability to make rough estimates for cushion curves that do not exist - that have not been generated by testing. This is the more ambitious claim Burgess made for the stress-energy method, and it has interesting implications. The easiest way to illustrate this is to compare a real cushion curve taken directly from the source to a flexible prediction that is pretending the real curve was not available to sample from. From our experience with the previous tutorial, we know that the original curve for 3” 2.2 lb. Ethafoam @ 2-5 30” drops looks like this. What we will attempt now is to force a completely different curve to simulate this one by tweaking its variables. If you want to follow along, copy this array of coordinates for the same foam at 4” thickness instead of 3”: Create another database like the first one we made, except use this set of values for the original source curve. When you are ready to convert the predicted stress-energy array back into a predicted cushion curve, change the static load formula. Instead of referring to the original cells containing the foam thickness and drop height, enter a speculative foam thickness or drop height. In this case we will type this: Cell R2: =P2*3/24 In this example, the 24” drop height is the same, but the foam thickness has been changed from 3” to 4”. This changes the stress-energy formula’s constants just as it is about to show the results for the original curve’s constants. Again, we are looking at a cushion curve for 4” foam and tricking it to show how it might behave at 3” thickness instead. The black line in the chart above is the new simulation of the original curve (blue line) from a different scenario, and the predicted behavior of the different foam in a tight formula (red line). At the heavier end of 120 G’s peak deceleration, the black line of this simulated cushion curve is only 0.291203 psi off the target static load of 7.340508552. Not perfect, but not bad either. I have seen worse results when testing other scenarios this way, so the fit will not always be this close. Two examples of worse fitting simulations can be seen back in the first section of this article. Remember, we are simulating an existing curve in this example only to demonstrate the imprecision of such simulations. Obviously this device would only be useful when simulating a cushion curve that does not actually exist – an untested risk-vs-cushioning scenario. The catch is that we cannot analyze the statistics of a simulated cushion curve, so this application of the formula should be used with caution. Simulations would not work for a different material or a different number of drops. Only two scenario parameters can be tweaked in this way: drop height and cushion thickness. The number of drops (1st drop or 2-5 drops) must be the same, and the material itself (2 lb. ester, 2.2 lb. Ethafoam, 4.5 lb. Ethafoam) must also match. The need to source data from the same material you are simulating is obvious. The need to use the same number of drops is due to cushioning foams not having perfect memory, and typically behaving a little differently after the first major shock. Troublesome Predictions: A final stray thought about the improved fit of the stress-energy polynomial: As stated earlier, many curves require a third, fourth, or higher–order polynomial to fit the curve. Some curves will result in conflicted results regardless of the power. For example, a curve that requires a fourth-order polynomial to fit the lighter static loads may look odd in the heavier range. I am experimenting with variations of this method, but do not yet have definitive advice in such cases. You can use the curve with the higher G dip when in doubt. Or you can get your cushion’s load bearing area as close as possible to the optimal static load, through careful selection of foam density and thickness, thereby avoiding the need to make off-chart predictions for the complete range of effective static loads. This concludes the main tutorial. In the next section I will introduce regression analysis and the fine-tuning it allows. LINEST and Regression Analysis One element in the proposed cushion curve prediction calculator that remains opaque is the LINEST function from which the coefficients are derived. We have been referring to these as A, B and m in the basic power-2 polynomial. LINEST in Excel is a linear least squares curve fitting routine that produces uncertainty estimates for the fit values. In plain English, it is an array function that displays the metrics used to calculate the coefficients for the curve formula. This array can yield much more information about the polynomial’s characteristics than its resulting coefficients reveal. Array functions like LINEST display results in multiple cells from a command entered in a single cell. In order to bypass the array in the tutorial calculator above, we framed each LINEST function inside an INDEX function that instructed LINEST to display only one of the coefficients, and which one to display in each cell. For more on LINEST and INDEX I recommend searching Excel’s Help menu, and then searching key terms in your internet browser to see them explained differently. It is not necessary to bypass the LINEST array as we did in the tutorial. The polynomial can be constructed from cells in the LINEST array as easily as from the individual coefficient cells we created via the INDEX function. The normal array output of LINEST includes a useful packet of regression analysis - statistics on the probable accuracy of the curve formula and significance of it coefficients. To access the analysis, we will enter LINEST in its normal array mode. On your first tutorial worksheet scroll over to column M. Select a fifteen-cell array, 3 columns by 5 rows: M2:O6. In the formula bar at the top of the Excel window enter: =LINEST(F2:F21, E2:E21^{1,2},TRUE,TRUE) Now instead of just hitting Enter, hit Ctrl-Shift-Enter. The small array you highlighted should be populated with values. The top row comprises the three coefficients, A, B and m, calculated again from the same data we used in the tutorial. The cells below them are the regression analysis statistics. I have labeled them here: R2 (the left-hand cell in the third row) should be familiar by now. The R2 value is derived from the values in the bottom row: SSreg/(SSreg + SSres). Notice that the R2 value displayed on chart two from the tutorial was a perfect 1, where here it shows 0.99998. This value displayed in the regression analysis is the more reliable of the two statistics. A complete primer in regression analysis is beyond the scope of the present article. If anyone challenges the validity of the stress-energy polynomial through regression analysis, it would make a good companion article. Practical Application 1 – Check for Overfitting: However, there is one test using this array that will be especially useful because it determines whether any coefficients in the polynomial are insignificant - that is, statistically indistinct from zero. If there are, the polynomial is overfitting the data. For the following information I have Tushar Mehta’s helpful introduction to thank.[xi] The second row of the regression analysis displays three numbers. These are the SE (Standard Error) values of the coefficients in the first row. Go to row 8 under the array. In M8 divide the coefficient A by its corresponding standard error. Repeat for the other two coefficients. Cell M8: =M2/M3 Cell N8: =N2/N3 Cell O8: =O2/O3 The resulting values in M8:O8 are the observed t results. These three observed t results can be compared to the critical t value in order to test the significance of the coefficients. The critical t value must be derived from a formula including the degrees of freedom in the regression and a standard 95% confidence interval. Go down to row 10 and type the following: Cell M10: =TINV(0.05, N5) The referenced cell in this function, N5, is the df, or degrees of freedom value in the regression analysis array. Now compare the absolute value of each observed t value to that of the critical t value, ignoring any minus signs. If any observed t value is less than the critical t value, its related coefficient is insignificant. Replacing insignificant coefficients with zero in your calculator’s formula can sometimes improve its R2 value. All of these absolute critical t values are higher than the absolute critical t value. This means that all of these coefficients are significant, and the formula is not overfitting the source curve. If the visual line of fit is inconclusive when charted, and you are not deliberately over-specifying to corral an eccentric curve, this test will reveal whether your polynomial may be overthinking the problem, and make suggestions for fine-tuning it. Practical Application 2 – Fine Tune the Prediction: I would consider this step optional for this particular curve, because it is already an excellent fit. However, a second-order polynomial will not always fit this well. The same regression analysis elements can help you fine-tune the predicted curve without crossing the line. What we will be doing is pushing the polynomial into higher powers until we go too far, and then select the highest power that does not overfit the data. First let’s take a closer look at the cushion curve chart. Enlarging the chart, we begin to see where the prediction does not quite match the original sampled cushion curve. Make a note of the R2 value as well: 0.99998. Figure 20- A closer look at our first chart reveals slight divergence in predicted curve Personally I find this amount of variance more than acceptable. Since it will not always look this good with a power-2 polynomial, we will attempt to tighten this one up some more anyway. To save time, we will skip to a power-5 polynomial. Repeat the steps to create your coefficients and the stress-energy database, but give the polynomial more terms. Cell R2: =INDEX( LINEST(F2:F31, E2:E31^{1,2,3,4,5}), 1) Cell S2: =INDEX( LINEST(F2:F31, E2:E31^{1,2,3,4,5}), 2) Cell T2: =INDEX( LINEST(F2:F31, E2:E31^{1,2,3,4,5}), 3) Cell U2: =INDEX( LINEST(F2:F31, E2:E31^{1,2,3,4,5}), 4) Cell V2: =INDEX( LINEST(F2:F31, E2:E31^{1,2,3,4,5}), 5) Cell W2: =INDEX( LINEST(F2:F31, E2:E31^{1,2,3,4,5}), 6) Select a five-row by six-column array: R4:W8. In the formula window type: =LINEST(F2:F31, E2:E31^{1,2,3,4,5},TRUE,TRUE) Then hit Control/Shift/Enter all at once. Now you should see the selected array populated with the regression analysis. Go two more rows down. Cell R10: =R4/R5 Cell S10: =S4/S5 Cell T10: =T4/T5 Cell U10: =U4/U5 Cell V10: =V4/V5 Cell W10: =W4/W5 These are your observed t results. Now plug the degrees of freedom (df) into a 95% confidence interval to get the critical t value: Cell R12: =TINV(0.05, S6) The regression analysis should now look like this, minus my labels in red: Figure 21- Regression analysis for a 5th-order polynomial Ignoring minus signs, the each of the absolute observed t results is greater than the absolute critical t value. This is proof that the power-5 prediction formula is not overfitting the data. The R2 value is 0.99999921, which is much better than that of the 2nd-order polynomial, which was 0.99998. These two statistics suggest that this polynomial is a better fit for the source curve. The last thing we need to check before making that conclusion is the chart. Complete the remaining steps needed to create the new stress-energy database. There is no need to duplicate the first four columns of data points sampled from the published cushion curve. Just refer back to them with the new formula. Cell AA2: =($R$2*G2^5)+($S$2*G2^4)+($T$2*G2^3)+($U$2*G2^2)+( $V$2*G2)+$W$2 Since we already have a good range of static loading mapped out, we only need one more column to translate the new stress values back into G’s. Cell AB2: =AA2/I2 Now select AA2:AB2 and flash fill down to around 120 G’s, or until you run out of energy values from the first database, whichever comes first. Copy the first chart you made and paste it near these new columns. Edit the chart so that the predicted curve’s y axis is using the newest column of G values. Be closing it be sure to match the row numbers between the old x axis and the new y axis. Stop with whichever column ends first. The new chart should now look like this. I have enlarged it here to better show how tight the fit has become: Figure 22- Prediction curve using a power-5 polynomial Note how the predicted curve is now showing some more aggressive growth at the higher static loads, but not until the original data runs out. This implies a more realistic increase in deterioration of cushioning characteristics as the static load becomes heavier, but it does not have the exponential’s implausible tendency to follow the same shape of curve on every chart, and it does not increase in growth at the expense of fitting the source curve. Below is the 5th-order stress-energy polynomial compared to stress-energy exponential established by Daum (green) sampled from the same source curve. This is quite a difference. So if a power-5 polynomial produces a much tighter fit than a power-2, what about a power-6? It is a fair question, because we are taking this prediction curve to the tightest possible fit against the original curve in order to reveal hidden characteristics like that extra little growth rate we now see in the power-5, as well as getting the best possible fit in the dip. If you repeated the last several steps again for a 6th-order polynomial, the regression analysis would look like this: Figure 23- Regression analysis for a power-6 polynomial Not a bad start – the R2 value is now 0.999999216, which is slightly better than 0.99999921. What about overfitting? Generating the t values gives us this: Figure 24- This prediction formula is overfitting the data No fewer than four of the observed t results are lower in absolute terms than the critical t value. All four of those coefficients are insignificant, meaning that they are statistically indistinct from zero. Sometimes nulling those coefficients will give the R2 value a little boost. In this case it does not affect the extremely fine R2 value, but it does take the predicted curve way off track from the source curve. This is a clear distortion. Figure 25– Visual confirmation that the 6th-order polynomial is over-specifying the data So through regression analysis we have determined that the best polynomial to use for predicting untested scenarios on this particular cushion curve is a power-5, not a power-6, or anything lower than 5. Your results will not always be this tight. In fact, the predicted growth among either the lighter or heavier static loading might well take a sudden downward turn with a higher-power polynomial, despite values that look good in regression analysis. In such cases a better fitting polynomial needs to be found even at the sacrifice of some R2 value. 95% Confidence Interval: The original intent was to conclude these tutorials with one for charting a confidence interval. This would sandwich our predicted curve between a pair of related curves that together would delineate a band of variable width. According to the regression statistics, within this band there would be a 95% certainty of accurate prediction in relation to the source data. However, given that this predicted curve is based on another curve that is itself a fine line, there is an insufficient amount of noise in the sampled data to create an appreciable interval. In effect, the + and – interval curves would be no more than a few hundredths of a G off the center line, making the three lines appear right on top of each other in the chart. Surprisingly, increasing the threshold to 99% or 99.9999% confidence level did little to spread those margins out. There is no point in going to the trouble of generating confidence interval curves that cannot be distinguished in a screen-sized chart. There is also little significance in this fine margin. Like the R2 value, it is merely assessing how well the formula is fitting data points we took from the source curve. Were we to generate a polynomial prediction curve from original observed test data, then we would see a truly meaningful visualization of a statistically acceptable margin of error by creating confidence interval curves. Text & original images © Chris Barber, 2015 [i] Mervin Richard, Foam Cushioning Materials: Techniques for Their Proper Use, Art in Transit: Studies in the Transport of Paintings, pg. 276, table 1, National Gallery of Art, Washington DC, ed. Marion F. Mecklenburg, 1991 [ii] Paul J. Marcon, A Circular Slide Rule for Protective Package Design, Art in Transit: Studies in the Transport of Paintings, pg. 94, 1991 [iii] Paul J. Marcon & Thomas J.K. Strang, PadCAD User Manual, pg. 30, footnote 2, 1999 [iv] Avonta Miliner, Package Designer Software Manual, Software version 2.0, CDO Technologies, 2013 [v] Matthew Daum, “A Simplified Process for Determining Cushion Curves: The Stress-Energy Method," Dimensions.06, 2006 [vi] Matthew Daum, “Simplified Presentation of the Stress-Energy Method for General Commercial Use,” Journal of Testing and Evaluation, Vol 36, No. 1, 2007 [vii] Jay Singh, Lina Ignatova and Eric Olsen. "Evaluation of the Stress-Energy Methodology to Predict Transmitted Shock through Expanded Foam Cushions" Journal of Testing and Evaluation – ASTM, pg. 5, 2010 [viii] Kendalyn Paulin, Statistical Analysis of the Stress-Energy Methodology Applied to Cushion Curve Determination, 2012, All Thesis, Paper 1335 [ix] Daum, Dimensions.06, pg. 9 [x] Daum, Dimensions.06, pg. 1-2 [xi] Tushar Mehta, Trendline Coefficients and Regression Analysis, http://www.tushar-mehta.com/publish_...nalysis/16.htm |
||