You are on page 1of 54

STOCHASTIC FINITE ELEMENT STUDY OF NON-SPHERICAL PEARS

Submitted by:

NAME: KEE MEW JONATHAN AH-FAT MATRIC NO: U025875H

DEPARTMENT OF MECHANICAL ENGINEERING NATIONAL UNIVERSITY OF SINGAPORE Session 2005/2006

Summary The non-destructive analysis of the vibration responses of spherically shaped fruits in order to evaluate their firmness by finite element simulations has been well studied over the years. In this report, the aim is to transpose such a method to the study of nonspherical fruits such as pears, strawberries, papayas, etc., to investigate the key factors governing the resonant frequencies registered for the sorting of such non-spherical fruits. An algorithm to generate pear models with random non-spherical shapes and their corresponding finite element meshes was developed based on the statistical Gaussian theory. The resonant frequencies of the artificial pears were calculated and, along with their corresponding mode shapes, were evaluated with regard to the different geometrical features and the material properties of the pears. Modal and stochastic finite element analyses were applied to reveal the extent of the effects of the geometrical features and the material aspects. One hundred 3D models of non-spherical pears were generated and modal analysis was carried out to find out the natural frequencies spectrums. Amongst them, twenty models were then selected such that their fo, the lowest spherical frequency, covered the whole range of frequencies for the 100 pears to implement the stochastic finite element simulations. Stochastic finite element analysis reveals that both the geometric features and the inner qualities of the pear affect the calculation of the firmness remarkably. It can be stated from the evaluations carried out that the sorting of non-spherical fruits should be preceded by a sorting according to the geometric property of the fruit before firmness is evaluated. The height was observed to affect the value of the firmness index of the models and in their case, the height can be used as a criterion of preliminary selection.

ACKNOWLEDGEMENT The author wishes to express sincere appreciation of the advices given by my supervisor, Prof HP Lee and the assistances by some other staffs of the Institute of High Performance Computing in carrying out this study successfully.

TABLE OF CONTENTS

SUMMARY ACKNOWLEDGEMENT TABLE OF CONTENTS LIST OF FIGURES & TABLES LIST OF SYMBOLS INTRODUCTION MATERIALS AND METHODS RESULTS AND DISCUSSION CONCLUSIONS LIST OF REFERENCES APPENDIX A - Program code for the pear model generation APPENDIX B

2 3 4 5 7 8 9 12 29 30

LIST OF TABLES 1. Summary of the first 14 mode shapes.

LIST OF FIGURES 1. Part of a pear contour.

2. 20 layers along pear length. 3. Sample of the models generated with their meshing 4. 5. 6. 7. 8. 9. Mode shape 1. Mode shape 2. Mode shape 3. Mode shape 4. Mode shape 5. Eigenfrequency against height of the 20 selected models.

10. Eigenfrequency against mass of the 20 selected models. 11. Variation of the 4th and 8th mode shapes vs height 12. Firmness index vs mass of 20 selected models 13. Firmness index vs height of 20 selected models 14. Eigenfrequency against Youngs modulus. 15. Eigenfrequency against Youngs modulus. 16. Eigenfrequency against density. 17. Eigenfrequency against density. 18. Maximum/minimum first 14 frequencies for one pear with material property variations.

19. Firmness against Young's modulus 20. Firmness against Density B1. Picture showing 3 of the 20 real pears. B2. Setup used for scanning pears. B3. Scanner. B4. Microtester. B5. Pears with their corresponding meshes. B6. Compressive behaviour of 4 of the real pears under gradual loading. B7. Extrapolation of the graph of firmness vs height of the models

LIST OF SYMBOLS E fo Nu Rho Youngs modulus, N/m2 lowest spherical eigenfrequency, kHz Poisson ratio density, kg/m3

Introduction The ability to determine the quality of the fruits harvested for consumption has been a necessity of prime importance in the food processing industry. Up until now, the nondestructive methods to gauge their quality, or the internal tissue quality, which is indicated by the material properties such as the density and Youngs modulus, would usually make use of their dynamic frequency responses. In such procedures, the fruit is given an external stimulus and the response signal is recorded and a firmness index of the fruit is calculated. This firmness index is closely related to the Youngs modulus of the fruit and The pears will eventually be sorted according to the firmness index [5,6]. However, for non-spherical fruits the sole observation of their frequency response in order to determine the firmness of the fruit can be misleading since the shape of the fruit bears a significant effect on these frequency responses [4]. And this effect may not be differentiated from the effect of internal tissue deterioration. All these uncertainties may weaken the efficiency of the selection process. Past studies on the subject have shown that the use of the firmness index as expressed as f o2 m 2 / 3 , where fo is the lowest spherical frequencies and m is the mass of the fruit, minimized the size effect of the fruit in terms of mass [5], that is the value of the firmness index obtained from this expression is not affected by varying masses of the fruits. Moreover, it was also demonstrated that the Youngs modulus bore a high degree of correlation with this firmness indicator [6]. However, in the case of non-spherical fruits, like pears, there are other geometric factors to consider apart from size effect whose influence on the firmness value is not minimized by the given expression for firmness index.

In the present study, finite element modal analysis is implemented to calculate the eigenfrequencies and the mode shapes (the pattern in which an object deforms when it vibrates) [3,7,8], while a stochastic finite element analysis reveals the whole range of effect of the multiple variations of parameters such as material properties of density and Youngs modulus. The overlap of the geometric effect with that from the material properties is evaluated. The stochastic analysis is the most suitable tool for the study of natural products which in essence contain a variety of uncertainties. The uncertainties could be geometrical or they may be the internal material properties. In a stochastic simulation, it is easy to cover the whole span of all the uncertainties to derive the relevant effect ranges. The aim of this study is to determine to what extent the non-spherical geometry affects the resonant frequencies and the mode shapes, and thus the firmness that is used for sorting of the fruits. Through this study, a more comprehensive understanding of the effects of the geometric feature and the internal material properties on the resonant frequencies, mode shapes, and firmness for non-spherical fruits will be yielded. Improved quality control methodology could also be derived from the current study.

Materials and methods 3D shape construction The basic requirement before starting to generate a random non-spherical pear is that the shape and overall volume of the pear will have to be randomly distributed, and still following the Gaussian normal distribution. Computer codes using the Patran Command language are developed for the software MSC.Patran [9] to construct the pear models.

Virtually, the model-to-be-made is first divided into four parts with one of the parts illustrated as in Figure 1; each contour line will be representing a quadrant of the fruit.

Figure 1: Part of a pear contour

The four quadrants were first divided equally into twenty layers.

Figure 2: 20 layers along pear length

The pear model is to be differentiated into a narrow top portion called the stem end and a more bulbous bottom portion otherwise known as the calyx end. These portions vary independently from each other with respect to their lengths. The shape of the models is to be determined by twenty one descriptors. The variations of the height and the radii of each layer are stepwise, so that two consecutive pears have a maximum of 10% difference between their heights or the radii of each of their layer. The contours in Figure 1 are then generated using B-Spline.

It can be observed from real-life pears that the central axis (from the pedicel at the fruit stalk to that part of the fruit called the remnants of the calyx and which is found at the bottom of the fruit) is not a straight line most of the time. Similarly, the central axis of the pear models also curve and skew up to an amount of 30. 10

Surfaces are then created out of these curves which will in turn be used to create a solid with the B-rep function in MSC.Patran.

Finite element mesh The mesh with hexahedral elements is then created from the solids with a fixed differentiation size of 3mm. Figure 3 shows typical virtual pears for the current study.

Figure 3: sample of the models generated and their meshing

The resulting 100 virtual pear models have heights ranging from 118cm to 140cm and masses ranging from 368g to 445g. The total number of nodes for these models was roughly 2500, while the number of elements was around 2200. The generation of the solids and the meshes has been performed by a set of codes with the Patran Command Language (PCL). A copy of the coding is to be found in the Appendix A. The finite element modal analysis is first carried out using MSC.Nastran [10] while the stochastic analysis is implemented with MSC.Robust Design [11]. In the modal analysis, the pear models are given a density of 860kg/m3 [1], a Youngs modulus of 3MPa (this value was chosen arbitrarily as the value of the Youngs modulus

11

varied widely from 2 to 6MPa according to the variety under investigation and tests carried out on real pears showed that for the Youngs modulus to be around this value) and a Poissons ratio of 0.3 [1].

Results and discussion General evaluation MSC.Patran is used in the present study to read in the codes to generate the solids and meshes for the pears. MSC.NastranTM is used to compute the natural resonant frequencies and the corresponding mode shapes. MSC.Robust DesignTM is an optimal design tool to use the Monte Carlo method to sample the specific data for the uncertain quantities. MSC.Nastran is then called to implement the calculations with the sampled data. It is understood, in the Monte Carlo method, that the more variables are input into a model, the more realistic the model becomes. In this case, the variables are set to be the material properties of the model. One of the main advantages of the Monte Carlo simulation is that the number of times the program has to select random values of the input variables to create a realistic solution is independent of the number of variables in the problem. Theoretically, any number of variables can be accounted for. The only cost is the number of samplings have to be increased to make the statistics correct. The amount of uncertainty in MSC.Robust DesignTM is quantified by using the Coefficient of Variation (CoV), which is the percentage ratio of the standard deviation to the average value. In the current study, the CoV is set at 5% of the average material properties of the pear and the variables follow a Gaussian distribution.

12

100 finite element pear models are generated and the first fourteen natural resonance frequencies along with their corresponding mode shapes are calculated from the FE modal analysis with MSC.Nastran. The first eigenfrequencies for the 100 pear models with the given material properties range from 130Hz to 166Hz. It is found from the modal analysis that the mode shapes for the whole 100 pears display a great degree of consistency for the 14 mode shapes. For the whole 100 pears, the first two modes being a bending and the 3rd mode shape an expansion of the stem. Figures 4 to 8 show the typical first five mode shapes. The 4th mode shape demonstrates either an elongation or a compression of the stem. The higher order modes either display an oblate-prolate (a type of deformation mostly undergone by sphere-shaped objects and involves a compression or elongation along one of the objects main axes) deformation or the combinations of the bending, compression and oblate-prolate. Generally, the higher order modes involve most of the time only the deformation of the calyx end.

13

Figure 4: mode shape 1

Figure 5: mode shape 2

14

Figure 6: mode shape 3

Figure 7: mode shape 4

15

Figure 8: mode shape 5

The extreme values obtained for the twenty pears throughout the first fourteen mode shapes and a brief description of their mode of deformation are tabulated in Table 1

16

Mode shape number 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Minimum frequency 0.13013 0.130592 0.201598 0.242573 0.263131 0.264362 0.282347 0.284647 0.31532 0.319537 0.321565 0.328887 0.330247 0.352917

Maximum Description of mode shape frequency 0.166439 0.166868 0.237297 0.276418 0.283474 0.287289 0.301926 0.302919 0.328227 0.330128 0.346596 0.347968 0.368048 0.392659 Bending of stem end Bending of stem end Expansion of stem end Elongation/Compression of stem end Complex Complex Oblate-prolate Oblate-prolate Expansion of the stem and calyx ends and the neck Oblate-prolate Complex Complex Complex Complex

Table 1: Summary of the first 14 mode shapes

Twenty models are then selected out of the 100 pear models so that their lowest frequencies cover the whole range of the first eigenfrequencies for the whole 100 pears. These values are then assessed against the masses and the heights of the pears as shown in Figures 9-10.

17

0.17 0.165 0.16 Eigenfrequency (kHz) 0.155 0.15 0.145 0.14 0.135 0.13 0.125 0.12 115

120

125

130

135

140

145

Height of the pears (mm)

Figure 9: eigenfrequency vs height of the 20 selected models

0.17 0.165 0.16 Eigenfrequency (kHz) 0.155 0.15 0.145 0.14 0.135 0.13 0.125 0.12 370

380

390

400

410

420

430

440

450

Mass of the pears (g)

Figure 10: eigenfrequency vs mass of the 20 selected models

18

As it can be seen from Figures 9-10, the height of the pears has a clear incidence on the lowest eigenfrequency while the effect of the mass of the models is less evident. It seems that the shorter the pear, the higher the first resonant eigenfrequency.

Effect of geometrical variations on the eigenfrequency 12 pears are then selected based on their similarity in mass. Their masses are roughly the mean value for the whole 100 pears. The selection of similar mass is to minimize the effect of mass difference so that the variation of the resonant frequencies can be observed as the shape differs from pear to pear while the mass remains more or less constant. It is found that the difference of shape shifts the first eigenfrequencies of the 12 pears from 131 Hz to 152 Hz. This range of variation almost covers the whole span of first

frequency change for the whole 100 pears (130 Hz to 166 Hz) while the mass of the 12 pears has a standard deviation of only 1.303g. This great variation in the first resonant frequencies for such a small variation in the mass indicates that there are some varying geometrical properties in the model which causes the frequencies to vary in turn. A set of 20 pears whose first eigenfrequencies cover the whole range of values of the whole 100 pears are chosen and their heights are compared against the values of their frequencies for the first 14th mode shapes. It is observed that the correlation between the height and the frequency is not uniform throughout the mode shapes. It is further observed that this variation in correlation ranged from 0.2 to 0.9; with mode shape 4 and mode shape 8 registering these two extreme values, respectively. Figure 11 gives the variations of the frequencies for these two modes versus the heights to illustrate the extent of the influence of the height along the successive mode shapes.

19

variation of frequencies of 2 mode shapes vs height


0.32 0.3 eigenfrequency 0.28 0.26 0.24 0.22 0.2 115 mode shape 4 mode shape 8

120

125

130 height

135

140

145

Figure 11: Variation of the 4th and 8th mode shapes vs height

Moreover, the given firmness index is observed to be less affected by the effect of mass, as shown in figure 12, as the correlation between the firmness index and mass is now 0.37, a marked decrease when compared to the correlation value of -0.55 between the eigenfrequency and mass. However, the height of the models still bears a high degree of correlation with the index as shown in figure 13. These trends show that the expression for the firmness index is still effective to a certain extent in minimizing the effect of mass even for non-spherical fruits, while the height of the fruits is still a factor for concern if a sorting system with only the firmness index as criterion of selection is used.

20

1.5

1.4

1.3 Firmness index

1.2

1.1

0.9

0.8 370

380

390

400

410

420

430

440

450

Mass of the pears (g)

Figure 12: Firmness index vs mass of 20 selected models


1.5

1.4

1.3 Firmness index

1.2

1.1

0.9

0.8 115

120

125

130

135

140

145

Height of the pears (mm)

Figure 13: Firmness index vs height of 20 selected models

21

Effect of material properties Stochastic finite element analysis is then implemented to evaluate the effect of the variations in the material properties, i.e., Youngs modulus and mass density. Each of the twenty selected pears is then run in MSC.Robust Design where their material properties are randomized to be a Gaussian distribution varying from 2.55MPa to 3.45MPa for the Youngs modulus and from 731kg/m3 to 989kg/m3 for the density. These parameters have been chosen as it is at these values that the coefficient of variation of these inputs gives a good approximation of a Gaussian distribution. In the stochastic finite element analysis, Monte Carlo sampling methods are used to randomly sample 100 values for the mass density and Youngs modulus. The corresponding eigenfrequencies obtained for the different values selected for the material properties are calculated with MSC.Nastran modal analysis. Very similar distribution patterns for the first eigenfrequencies are observed for all the twenty pears with the variations of the mass density and Youngs modulus for the whole twenty models. Figures 12 to 15 give the correlations of the first resonant frequency to the material properties for 2 pears.

22

23

Figure 14 & 15: first eigenfrequency vs Young's modulus

It is seen from these two figures that the variations of the density and the Youngs modulus have remarkable effects on the first eigenfrequencies. Within the range of concern, the values of Youngs modulus increased as the values of the first eigenfrequency also increased while the latter is seen to decrease as the value of the density decreased.

24

Figure 16 & 17: first eigenfrequency vs density

25

The separate effect of each property on the variation of the first 14 eigenfrequencies is observed. A graph of the extreme values under the different settings against the 14 successive mode shapes is plotted for easy visual comparison as shown in figure 16.

Figure 18: Maximum/minimum first 14 frequencies for one pear with material property variations

The graph is fairly similar for all the pears under observation and it can be seen that as was found earlier, the 2 material properties affected the frequencies to a similar extent. The firmness index is then calculated for each value of the density used and the corresponding first eigenfrequency obtained in the stochastic simulations of the 20 pears. The firmness index for each pear was assessed against the variations of the density and Youngs modulus. It is observed that there is a strong correlation between the firmness index and Youngs modulus, whereas the firmness is rather independent from the density as shown from the figures 19 and 20. 26

This observation agrees with the findings from the study done by Nourain et al., 2005.
Graph of Young's modulus vs firmness
1.2 1.15 1.1 Firmness 1.05 1 0.95 0.9 0.85 0.8 2.6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 Young's modulus (MPa)

Figure 19: Firmness against Young's modulus

Graph of Density vs Firmness


1.2

1 0.8 Firmness

0.6 0.4

0.2 0 0.00075

0.0008

0.00085 Density (g/cm3)

0.0009

0.00095

Figure 20: Firmness against density

27

From the aforementioned results, it is seen that the geometrical effect on the eigenfrequency of the models is quite significant since it causes the first eigenfrequency to shift from 130Hz to 160Hz when the height is concerned whereas the effect of either of the material properties causes a shift phase of around 20Hz in most cases for the first eigenfrequency. From the aforementioned results, it is seen that the geometrical effect on the eigenfrequency of the models is quite significant since it causes the first eigenfrequency to shift from 130Hz to 160Hz when the height is concerned whereas the effect of either of the material properties causes a shift phase of around 20Hz in most cases for the first eigenfrequency.

Test on Packham pears It has been intended from the very beginning that the current study of the dynamic response of the non-spherical pears was to be carried out mainly with the help of 3D finite element and stochastic analyses. This is because there were no suitable pears available on the market when the project was started. The testing performed eventually on real pears would only be carried as a means to complement the results of these computer simulations. The project was drawing to a close at the time of testing, and the only variety of pears available on the market was slightly smaller than the pear models in terms of height. Nevertheless, these pears still displayed behaviour similar to the pear models: the value of the resonant frequency and that of the firmness index was fairly affected by the height of the fruits. The standard deviation of these two properties was

28

comparable with that of the pear models. A detailed summary of the tests carried out can be found in Appendix B.

Conclusions In the present project, the effects of the different shapes and the material properties of the non-spherical pears are evaluated. From the finite element and the stochastic finite element simulations, it can be derived that the eigenfrequencies are quite sensitive to different internal material as well as the external geometrical properties of the fruit. It is seen that while the height of the pears have the most remarkable effect among the geometrical properties on the vibrational frequencies of the pears. Its influence, however, is not consistent throughout the other mode shapes of the pear other than the first mode shape. It can be concluded from this study that the sorting of the non-spherical pears may not be very effective if the effects of the variation of shape are not differentiated from the change that material degeneration would produce. It can be further said that for an effective quality control of non-spherical fruits, a preliminary sorting of these fruits according to their heights would be a recommended procedure since this particular feature has a prominent influence on the value of the first spherical frequencies. However, further numerical study in the future will be attempted on analysis of the high frequency modes to identify the one that is not affected so much by the geometrical properties. A new method could be suggested to make use of the higher eigenfrequency at which the effect of the height is the least as the sorting factor.

29

REFERENCES 1. Dewulf, W., Jancsk, P., Nicolai, B., De Roeck, G., and Briassoulis, D. 1999. Determining the Firmness of a Pear using Finite Element Modal Analysis." J. agric. Engng Res. 71, 217 224. Journal On-line. Available from http://www.idealibrary.com. 2. Jancsk P., Papadiamontopoulou E., De Baerdemaeker J., and Nicola B. 24 August 1998. Effect of Shape on Acoustic Response of Conference Pears a Finite Element Modelling Approach. AgENg Oslo98 conference 98-F-007. Available from http://www.agr.kuleuven.ac.be/aee/amc/staff/palj/ageng_98/jancsok.htm. Jancsk, P., Nicola, B., and De Baerdemaeker, J. Stochastic FE vibration analysis of fruits for quality measurement purposes," Department of Agro Engineering and Economics, Laboratory for Agro- Machinery and Processing, K. U. Leuven, Belgium. Available from http://www.biw.kuleuven.be/aee/amc/staff/palj/XXXI5.pdf. Jancsk, P., Nicola, B., Coucke, P., and De Baerdemaeker, J. 1997. 3D Finite Element Model Generation of Fruits Based on Image Processing." 3rd IFAC/ISHS Workshop on Mathematical and Control Application in Agriculture and Horticulture, p 131 135. September 28 October 2, 1997 Hannover, Germany. Lu, R., and Abbott, J.A. 1996. Finite Element Analysis of Modes of Vibration in Apples. Journal of Texture studies 27 (1996) 265 286. Nourain, J., Ying, Y., and Wang, J. 2005. Firmness of melon using its vibration characteristic and finite element analysis. J Zhejiang Univ SCI 2005 6B(6):483 490. Dewulf, W., Jancsk, P., Papadiamantopoulou, E., Nicola, B., and De Roeck, G. 1998. Monitoring the firmness of a Conference Pear using experimental modal analysis. Proceedings of ISMA23; Leuven, Belgium. 1998:1148 1497. Chen, H., and De Baerdemaeker, J. 1993. Finite Element Based Modal Analysis of Fruit Firmness. Trans. ASAE. 1993; 36(6): 1827 1833. MSC.Patran v2005 R2, Users guide, MSC.Software Corporation, 2005. MSC.Nastran v2005, Users guide, MSC.Software Corporation, 2005. MSC.Robust Design v2004 R2, Users guide, MSC.Software, 2005.

3.

4.

5.

6.

7.

8.

9. 10. 11.

30

Appendix A
/* * Purpose: Random shape generator * * Input: filename name of external file * * Output: none * */ $FUNCTION pear("hex", , 10) $FUNCTION pear(mesh_type, meshSize, iter_no) FUNCTION pear() INTEGER iter_no =30 $STRING mesh_type[] /* "tet", "hex" */ STRING mesh_type[80] = "hex" REAL percentage = 0.01 REAL meshSize = 2.0 $REAL R = 1 $REAL H = 1.8 $REAL r1, r2, h1 STRING filename[80], filename1[80], tmp_file[80] filename = "../../../../../Home15/cme/cae0010/shape/random.log" filename1 = "../../../../../Home15/cme/cae0010/shape/pear.log" tmp_file = "../../../../../Home15/cme/cae0010/shape/temp.log" LOGICAL msg_flag = TRUE /* TRUE: Will delete original curves in creation of chained curves */ LOGICAL option = TRUE REAL tol = 0.001 /* TRUE : r1 may be equal r2 */

/* The geometric tolerance. */

REAL rand_no(10000) STRING rand_str[20](10000) STRING pearShape_str[20](100) REAL pearShape_no(100) $INTEGER str_leng, str_pos $STRING str_sub[40], e_str[3] INTEGER i, j, dnum $STRING line_2point_created_ids[VIRTUAL] STRING asm_create_grid_xyz_created_ids[VIRTUAL] $STRING asm_line_2point_created_ids[VIRTUAL] $STRING asm_create_line_arc_created_ids[VIRTUAL] STRING sgm_curve_bspline_created_ids[VIRTUAL] $STRING sgm_curve_break_poi_created_ids[VIRTUAL]

STRING asm_delete_any_deleted_ids[VIRTUAL] $INTEGER sgm_create_curve_cha_segment_id $STRING sgm_create_curve_ch_created_ids[VIRTUAL] STRING sgm_surface_trimmed__created_id[VIRTUAL], sgm_solid_ids[VIRTUAL] LOGICAL debug REAL tmp_real STRING record[720], field[128], tmp_str[20] INTEGER status, channel, itoken INTEGER lrecl /* * Initialising values */ debug = FALSE /* * Open the random.log file */ status = text_open( filename , "OR", 0, 0, channel ) IF( status != 0 ) THEN write( "Unable to open file: "//filename ) ui_override_message( 38000217, "" ) pref_global_set_v2( TRUE, 3, str_from_real( tol ) ) RETURN status END IF i = 1 WHILE( text_read_string( channel, record, lrecl ) == 0 ) /* * Check for integers and blank tokens */ itoken = 0 REPEAT itoken += 1 field = str_token( record, " ", itoken, TRUE ) IF( field != "") THEN $ dump field $ rand_str(i) = field $ dump rand_no(i) rand_str(i) = field rand_no(i) = str_to_real(field) i = i+1 END IF UNTIL ( field == "" ) END WHILE

text_close( channel, "" ) /* * Open the pear.log file */ status = text_open( filename1 , "OR", 0, 0, channel ) IF( status != 0 ) THEN write( "Unable to open file: "//filename1 ) ui_override_message( 38000217, "" ) pref_global_set_v2( TRUE, 3, str_from_real( tol ) ) RETURN status END IF i = 1 WHILE( text_read_string( channel, record, lrecl ) == 0 ) /* * Check for integers and blank tokens */ itoken = 0 REPEAT itoken += 1 field = str_token( record, " ", itoken, TRUE ) IF( field != "") THEN pearShape_str(i) = field pearShape_no(i) = str_to_real(field) i = i+1 END IF UNTIL ( field == "" ) END WHILE text_close( channel, "" ) dnum = i - 1 $dump pearShape_str $dump pearShape_no $dump i-1

STRING x1[20](20), x2[20](20), x3[20](20) STRING y1[20](20), y2[20](20), y3[20](20) STRING x_1[20](20), x_2[20](20), x_3[20](20) STRING y_1[20](20), y_2[20](20), y_3[20](20)

FOR( i = 1 TO 20 ) x1(i) = str_from_real(rand_no(i) * percentage*pearShape_no(i) + pearShape_no(i)) y2(i) = str_from_real(rand_no(i+20) * percentage*pearShape_no(i+20) + pearShape_no(i+20)) x_1(i) = str_from_real(rand_no(i+40) * percentage*pearShape_no(i+40) - pearShape_no(i+40)) y_2(i) = str_from_real(rand_no(i+60) * percentage*pearShape_no(i+60) - pearShape_no(i+60)) END FOR

FOR( i = 1 TO 20 ) x2(i) = "0" y1(i) = "0" x_2(i) = "0" y_1(i) = "0" END FOR pearShape_no(81) = rand_no(81) * percentage*pearShape_no(81) pearShape_no(81) pearShape_no(82) = rand_no(82) * percentage*pearShape_no(82) pearShape_no(82) FOR( i = 1 TO 11 ) x3(i) = str_from_real(pearShape_no(81) * y3(i) = str_from_real(pearShape_no(81) * x_3(i) = str_from_real((pearShape_no(81) y_3(i) = str_from_real((pearShape_no(81)

+ +

(i-1) ) (i-1) ) * (i-1)) ) * (i-1)) )

END FOR FOR( i = 1 TO 9 ) x3(i+11) = str_from_real(pearShape_no(82) * pearShape_no(81) * 10 ) y3(i+11) = str_from_real(pearShape_no(82) * pearShape_no(81) * 10) x_3(i+11) = str_from_real((pearShape_no(82) pearShape_no(81) * 10)) y_3(i+11) = str_from_real((pearShape_no(82) pearShape_no(81) * 10 ))

i + i + * i + * i +

END FOR status = text_open( tmp_file , "NOW", 0, 0, channel ) FOR( i = 1 TO 20 ) status = text_write_string( channel , x1(i) ) END FOR FOR( i = 1 TO 20 ) status = text_write_string( channel , y2(i) ) END FOR FOR( i = 1 TO 20 ) tmp_real = str_to_real(x_1(i)) tmp_str = str_from_real(-tmp_real)

status = text_write_string( channel , tmp_str ) END FOR FOR( i = 1 TO 20 ) tmp_real = str_to_real(y_2(i)) tmp_str = str_from_real(-tmp_real) status = text_write_string( channel , tmp_str ) END FOR

tmp_str = str_from_real(pearShape_no(81)) status = text_write_string( channel , tmp_str ) tmp_str = str_from_real(pearShape_no(82)) status = text_write_string( channel , tmp_str ) text_close( channel, "" )

/***************************************************************/ /***************************************************************/ /***************************************************************/ IF ( iter_no > 1 ) THEN FOR ( j = 1 TO iter_no-1) /* * Open the temp.log file again */ status = text_open( tmp_file , "OR", 0, 0, channel ) IF( status != 0 ) THEN write( "Unable to open file: "//tmp_file ) ui_override_message( 38000217, "" ) pref_global_set_v2( TRUE, 3, str_from_real( tol ) ) RETURN status END IF i = 1 WHILE( text_read_string( channel, record, lrecl ) == 0 ) /* * Check for integers and blank tokens */ itoken = 0 REPEAT itoken += 1 field = str_token( record, " ", itoken, TRUE ) IF( field != "") THEN pearShape_str(i) = field pearShape_no(i) = str_to_real(field) i = i+1

END IF UNTIL ( field == "" ) END WHILE text_close( channel, "" ) dnum = i - 1 $dump pearShape_str $dump pearShape_no $dump i-1

$ STRING x1[20](20), x2[20](20), x3[20](20) $ STRING y1[20](20), y2[20](20), y3[20](20) $ STRING x_1[20](20), x_2[20](20), x_3[20](20) $ STRING y_1[20](20), y_2[20](20), y_3[20](20) FOR( i = 1 TO 20 ) x1(i) = str_from_real(rand_no(i + (82 * j)) * percentage*pearShape_no(i) + pearShape_no(i)) y2(i) = str_from_real(rand_no(i+20 + (82 * j)) * percentage*pearShape_no(i+20) + pearShape_no(i+20)) x_1(i) = str_from_real(rand_no(i+40 + (82 * j)) * percentage*pearShape_no(i+40) - pearShape_no(i+40)) y_2(i) = str_from_real(rand_no(i+60 + (82 * j)) * percentage*pearShape_no(i+60) - pearShape_no(i+60)) END FOR

FOR( i = 1 TO 20 ) x2(i) = "0" y1(i) = "0" x_2(i) = "0" y_1(i) = "0" END FOR pearShape_no(81) = rand_no(81) * percentage*pearShape_no(81) pearShape_no(81) pearShape_no(82) = rand_no(82) * percentage*pearShape_no(82) pearShape_no(82) FOR( i = 1 TO 11 ) x3(i) = str_from_real(pearShape_no(81) * y3(i) = str_from_real(pearShape_no(81) * x_3(i) = str_from_real((pearShape_no(81) y_3(i) = str_from_real((pearShape_no(81) END FOR FOR( i = 1 TO 9 )

+ +

(i-1) ) (i-1) ) * (i-1)) ) * (i-1)) )

x3(i+11) = str_from_real(pearShape_no(82) * pearShape_no(81) * 10 ) y3(i+11) = str_from_real(pearShape_no(82) * pearShape_no(81) * 10) x_3(i+11) = str_from_real((pearShape_no(82) pearShape_no(81) * 10)) y_3(i+11) = str_from_real((pearShape_no(82) pearShape_no(81) * 10 ))

i + i + * i + * i +

END FOR status = text_open( tmp_file , "NOW", 0, 0, channel ) FOR( i = 1 TO 20 ) status = text_write_string( channel END FOR FOR( i = 1 TO 20 ) status = text_write_string( channel END FOR FOR( i = 1 TO 20 ) tmp_real = str_to_real(x_1(i)) tmp_str = str_from_real(-tmp_real) status = text_write_string( channel END FOR FOR( i = 1 TO 20 ) tmp_real = str_to_real(y_2(i)) tmp_str = str_from_real(-tmp_real) status = text_write_string( channel END FOR

, x1(i) )

, y2(i) )

, tmp_str )

, tmp_str )

tmp_str = str_from_real(pearShape_no(81)) status = text_write_string( channel , tmp_str ) tmp_str = str_from_real(pearShape_no(82)) status = text_write_string( channel , tmp_str ) text_close( channel, "" )

END FOR END IF /***************************************************************/ /***************************************************************/ /***************************************************************/ STRING curve_no[2], c1[2], c2[2] STRING sgm_surface_2curve_created_ids[VIRTUAL] FOR( i = 1 TO 20 ) asm_const_grid_xyz( "1", "["//x1(i)//" "//x2(i)//" "//x3(i)//"]", "Coord 0", asm_create_grid_xyz_created_ids ) asm_const_grid_xyz( "2", "["//y1(i)//" "//y2(i)//" "//y3(i)//"]", "Coord 0", asm_create_grid_xyz_created_ids )

asm_const_grid_xyz( "3", "["//x_1(i)//" "//x_2(i)//" "//x_3(i)//"]", "Coord 0", asm_create_grid_xyz_created_ids ) asm_const_grid_xyz( "4", "["//y_1(i)//" "//y_2(i)//" "//y_3(i)//"]", "Coord 0", asm_create_grid_xyz_created_ids ) curve_no = str_from_integer(i) sgm_const_curve_bspline( curve_no, "Point 1 4 3 2", 3, TRUE, 1, TRUE, sgm_curve_bspline_created_ids ) asm_delete_point( "Point 1:10", asm_delete_any_deleted_ids ) END FOR sgm_create_surface_trimmed_v1( "1", "Curve 1", "", "", FALSE, TRUE, TRUE, TRUE, sgm_surface_trimmed__created_id ) sgm_create_surface_trimmed_v1( "21", "Curve 20", "", "", FALSE, TRUE, TRUE, TRUE, sgm_surface_trimmed__created_id ) FOR( i = 2 TO 20 ) curve_no = str_from_integer(i) c1 = str_from_integer(i-1) c2 = str_from_integer(i) sgm_const_surface_2curve( curve_no, "Curve "//c1, "Curve "//c2, sgm_surface_2curve_created_ids ) END FOR $dump $dump $dump $dump x1 y2 x_1 y_2

ge_const_solid_brep( "1", "Surface 1:21", FALSE, sgm_solid_ids )

INTEGER fem_num_nodes, fem_num_elems STRING fem_nodes_created[VIRTUAL], fem_elems_created[VIRTUAL]

STRING STRING R_str1 R_str2 R_str3 =

R_str1[20], R_str2[20], R_str3[20] asm_create_hpat_xyz_created_ids[VIRTUAL] = str_from_real(-70.0) = str_from_real(140) str_from_real(140*1.5)

STRING val_array_str[32](4) val_array_str(1) val_array_str(2) val_array_str(3) val_array_str(4) = = = = str_from_real(meshSize) "0.1" "0.2" "0.0"

IF( mesh_type == "tet" ) THEN

fem_create_mesh_sol_5( "Solid 1", "TetHybrid", "Tet4", 4, val_array_str, 49168, 0, 1, 0, 1, 0.0049999999, "", "#", "#", "Coord 0", "Coord 0", fem_num_nodes, fem_num_elems, fem_nodes_created, fem_elems_created ) asm_delete_point( "Point 1:100", asm_delete_any_deleted_ids ) asm_delete_surface( "Surface 1:100", asm_delete_any_deleted_ids ) asm_delete_curve( "Curve 1:100", asm_delete_any_deleted_ids )

ELSE IF ( mesh_type == "hex" ) THEN asm_const_hpat_xyz( "2", "<"//R_str2//" "//R_str2//" "//R_str3//">", "["//R_str1//" "//R_str1//" 0]", "Coord 0", asm_create_hpat_xyz_created_ids ) fem_mesh_solid_hex8( meshSize, "PARTIAL", asm_create_hpat_xyz_created_ids) asm_delete_point( "Point 1:100", asm_delete_any_deleted_ids ) asm_delete_surface( "Surface 1:100", asm_delete_any_deleted_ids ) asm_delete_curve( "Curve 1:100", asm_delete_any_deleted_ids ) END IF RETURN 0

END FUNCTION /* * Function that generates a hexahedral (HEX8) mesh from a given set of surfaces * which form a valid BREP solid. */ FUNCTION fem_mesh_solid_hex8( elem_size, method, tmp_solid_list) $FUNCTION fem_mesh_solid_hex8( brep_surface_list, elem_size, method) $FUNCTION fem_mesh_solid_hex8( brep_surface_list, elem_size, method, @ $ num_nodes, num_elems, nodes_created, elems_created ) /* INPUT: */ $STRING brep_surface_list[] solid to be meshed. */ REAL elem_size STRING method[] fully intersects with solid.

/* The list of surfaces representing the /* The required element size. */ /* "FULL": Retain only grids that

"PARTIAL": Retain grids that fully or partially intersects with solid. */

STRING tmp_solid_list[] /* OUTPUT: */ $INTEGER num_nodes $INTEGER num_elems $STRING nodes_created[] $STRING elems_created[] /* <RETURN>

/* /* /* /*

The The The The

number of nodes created. */ number of elements created. */ list of nodes created. */ list of elements created. */

0 = successful */

INTEGER i, status, handle, item(1) REAL limits(6), vector_xyz(3), origin_xyz(3), geotol STRING ret_list[VIRTUAL], ret_solid[VIRTUAL] LOGICAL debug = FALSE

/* Verify input element size. */ uil_app_asm.get_geo_tol( geotol ) /* Get the geometric tolerance of the model. */ IF ( elem_size <= geotol ) THEN write_line( "Invalid grid size!! TERMINATED." ) RETURN 99 END IF /* Verify input method. */ IF ( method != "full" && method != "partial" ) THEN RETURN -99

/* Initialise */ uil_quickpick.labels_off( ) ga_view_aa_set( 23., -34., 0. ) gu_fit_view( )

/* Labels off */ /* Iso 1 view */ /* Fit view */

/* Create a BREP solid from the list of BREP_SURFACE_LIST. */ /* status = ge_const_solid_brep( "", @ brep_surface_list, @ FALSE, @ ret_solid )

IF ( status != 0 ) THEN RETURN status */ ret_solid = "Solid 1" /* Set default answer for /* ui_override_message( ui_override_message( ui_override_message( messages 1000541, 1000034, 1000540, 1000541 and 1000034 */ "OK" ) "YESFORALL" ) "OK" ) */

/*

/* Get the maximum limits of the model */ gm_viewport_world_limits_get( limits ) origin_xyz(1) = limits(1) origin_xyz(2) = limits(3) origin_xyz(3) = limits(5) vector_xyz(1) = limits(2) - limits(1) vector_xyz(2) = limits(4) - limits(3) vector_xyz(3) = limits(6) - limits(5) dump vector_xyz dump origin_xyz */ /* Create a block bounding the limits of the model. */ $fem_mesh_solid_hex8( "Surface 2:6", 0.1, "FULL")

/* status = asm_const_hpat_xyz( "2", @ str_vector_from_xyz( vector_xyz ), @ str_point_from_xyz( origin_xyz ), @ "Coord 0", @ tmp_solid_list ) IF ( status != 0 ) THEN RETURN 0 */ /* Creating HEX8 mesh on TMP_SOLID_LIST */ INTEGER fem_create_mesh_solid_num_nodes INTEGER fem_create_mesh_solid_num_elems STRING fem_create_mesh_s_nodes_created[VIRTUAL] STRING fem_create_mesh_s_elems_created[VIRTUAL] STRING para[20](1) para(1) = str_from_real( elem_size ) status = fem_create_mesh_sol_5( tmp_solid_list, @ "IsoMesh", @ "Hex8", @ 1, para, @ 49152, 0, 1, 0, 1, 0., @ "", "#", "#", "Coord 0", "Coord 0", @ fem_create_mesh_solid_num_nodes, @ fem_create_mesh_solid_num_elems, @ fem_create_mesh_s_nodes_created, @ fem_create_mesh_s_elems_created ) IF ( status != 0 ) THEN RETURN status

/* Delete TMP_SOLID_LIST. Note: Patran needs to delete the original solid to which a mesh is associated with in order to associate the mesh to another solid. */

fem_disassoc_geo( TRUE, TRUE, tmp_solid_list ) asm_delete_solid( tmp_solid_list, ret_list )

/* Associating HEX8 elements with solid. Write associated elements to INT_ELEM_LIST. */ STRING all_elem[VIRTUAL], deleted_elem[VIRTUAL], int_elem_list[VIRTUAL], @ int_node_list[VIRTUAL]

all_elem = "Elem "//fem_create_mesh_s_elems_created lp_eval( ret_solid, 4, handle ) lp_sublist_attribute_get_int( handle, 2, item ) lp_eval_cleanup( handle ) sgm_assoc_element_solid_v1( all_elem, "Solid "//str_from_integer( item(1) ), 32 ) list_create_elem_ass_geo( 0, "Solid "//str_from_integer( item(1) ), @ "lista", int_elem_list ) IF ( debug ) THEN write_line( "...elements associated with BREP solid are:", int_elem_list ) END IF

/* Get the list of elements to be deleted. */ deleted_elem = "" IF ( method == "full" ) THEN /* These elements are those that do not intersect, or intersect partially with the BREP solid. */ str_create_boolean_list( all_elem, int_elem_list, "a-b", deleted_elem ) IF ( deleted_elem != "" ) THEN fem_delete_elem_and_node( deleted_elem, ret_list ) ELSE IF ( method == "partial" ) THEN /* These elements are those that do not intersect the BREP solid at all. */ list_get_node_ass_elem( int_elem_list, int_node_list )

uil_list_a.clear() list_create_elem_ass_node( 8, int_node_list, "lista", int_elem_list ) str_create_boolean_list( all_elem, int_elem_list, "a-b", deleted_elem ) IF ( deleted_elem != "" ) THEN fem_delete_elem_and_node( deleted_elem, ret_list ) ELSE write_line( "Invalid method!! TERMINATED!!" ) END IF /* Delete the BREP solid. */ asm_delete_solid( ret_solid, ret_list )

/* Refresh the graphics. */ repaint_graphics( )

/* Get output variables. */ /* elems_created = int_elem_list lp_eval( elems_created, 4, handle ) lp_sublist_count( handle, 1024, num_elems ) lp_eval_cleanup( handle ) list_get_node_ass_elem( elems_created, nodes_created ) lp_eval( nodes_created, 4, handle ) lp_sublist_count( handle, 512, num_nodes ) lp_eval_cleanup( handle ) */ /***** Extracting free element faces ******/

/* STRING free_elem_face[30](VIRTUAL), free_elem_face_list[VIRTUAL] INTEGER free_elem_face_count status = fem_get_hex8_free_faces( int_elem_list, free_elem_face, @ free_elem_face_count ) IF ( status != 0 ) THEN RETURN status

free_elem_face_list = "" FOR ( i = 1 TO free_elem_face_count )

free_elem_face_list = free_elem_face_list//free_elem_face(i)//" " END FOR

IF ( debug ) THEN write_line( "...number of free element faces:", free_elem_face_count ) write_line( "...the free element faces are:", free_elem_face_list ) END IF */

RETURN 0

END FUNCTION

/* * Function that converts Cartesian coordinates to a string representing a vector * in the form of "<x y z>". */ FUNCTION str_vector_from_xyz( xyz ) /*INPUT:*/ REAL xyz() /*RETURN:*/ STRING vector[50] vector = "<"//str_from_real(xyz(1))//" "//str_from_real(xyz(2))//" "// @ str_from_real(xyz(3))//">" RETURN vector

END FUNCTION

/* * Function that extracts the free element faces from a given list of * HEX8 elements. */ FUNCTION fem_get_hex8_free_faces( elem_list, free_face_array, free_face_count )

/* INPUT:*/ STRING elem_list[] /* OUTPUT:*/ STRING free_face_array[]() faces INTEGER free_face_count /* <RETURN>

/* The list of elements to be queried. */

/* The array containing the free element (dimension is free_face_count). */ /* The number of free element faces. */

0 = successful */

INTEGER elem_ids(VIRTUAL) INTEGER num_elems, elem_topo_codes(VIRTUAL), @ shape_code(VIRTUAL), nodes_per_elem(VIRTUAL), @ nodl(VIRTUAL), face_elem_ids(VIRTUAL), face_ids(VIRTUAL) INTEGER i, handle, item(1), status

/* Get all the element IDs from ELEM_LIST. */ lp_eval( elem_list, 4, handle ) lp_sublist_count( handle, 1024, num_elems ) IF (num_elems <= 0) THEN RETURN -1 status = SYS_ALLOCATE_ARRAY( elem_ids, 1, num_elems ) IF (status != 0) THEN RETURN status FOR (i = 1 TO num_elems) lp_sublist_attribute_get_int( handle, 1, item ) elem_ids(i) = item(1) /* Proceed to the next element. */ status = lp_sublist_next( handle ) IF (status != 0) THEN BREAK END FOR lp_eval_cleanup( handle )

/* Allocate element arrays */ status = SYS_ALLOCATE_ARRAY( IF (status != 0) THEN RETURN status = SYS_ALLOCATE_ARRAY( IF (status != 0) THEN RETURN status = SYS_ALLOCATE_ARRAY( IF (status != 0) THEN RETURN status = SYS_ALLOCATE_ARRAY( IF (status != 0) THEN RETURN status = SYS_ALLOCATE_ARRAY( elem_topo_codes, 1, num_elems ) status shape_code, 1, num_elems ) status nodes_per_elem, 1, num_elems ) status nodl, 1, 8*num_elems ) status face_elem_ids, 1, 6*num_elems )

IF (status != 0) THEN RETURN status status = SYS_ALLOCATE_ARRAY( face_ids, 1, 6*num_elems ) IF (status != 0) THEN RETURN status

status = db_get_elem_etop( num_elems, elem_ids, elem_topo_codes ) IF (status != 0) THEN RETURN status status = db_get_elem_topology_data( num_elems, elem_topo_codes, @ shape_code, nodes_per_elem ) IF (status != 0) THEN RETURN status

status = db_get_nodes_for_elems( num_elems, 8, elem_ids, nodl ) IF (status != 0) THEN RETURN status status = fem_u_get_free_faces( elem_ids, 8, 4, 6, num_elems, nodl, @ shape_code, nodes_per_elem, @ face_elem_ids, face_ids, free_face_count ) status = SYS_ALLOCATE_ARRAY( free_face_array, 1, free_face_count ) IF (status != 0) THEN RETURN status FOR (i = 1 TO free_face_count) free_face_array(i) = "Elm "//str_from_integer( face_elem_ids(i) )// @ "."//str_from_integer( face_ids(i) ) END FOR

RETURN 0

END FUNCTION /* * Function that performs a boolean operation on two given list. */ FUNCTION str_create_boolean_list( list1, list2, operation, ret_list ) /* INPUT: */ STRING list1[] STRING list2[] STRING operation[]

/* The first input list "a". */ /* The second input list "b". */ /* The boolean operation: "a+b", "a-b" */

/* OUTPUT: */ STRING ret_list[] /* The output list after performing the boolean operation. */ /* <RETURN> 0 = successful */

GLOBAL STRING listc[VIRTUAL]

uil_list_a.clear() list_create_target_list( "lista", list1 ) uil_list_b.clear() list_create_target_list( "listb", list2 ) uil_list_boolean.create( operation ) ret_list = listc

RETURN 0

END FUNCTION

Tests on Packham pears Due to the seasonal availability of the pears, the only non-spherical pear on the market at the time of the study is the Packham pear. The general features of this kind of pear are illustrated in figure B1. Tests are carried out for twenty randomly selected Packham pears to measure their geometrical (height, overall contour, mass) and internal material properties (Youngs modulus, density). The pears are first scanned using a laser scanner, the Minolta VIVID 900 non-contact 3D digitizer in order to obtain their general outline and surfaces for subsequent meshing in order to perform a modal analysis. The figures B2 and B3 show the setup as when the pears are scanned and the digitizer used respectively. These surfaces are then exported as IGES files using the softwares RapidForm2001 and Minolta Polygon Editing Tool v1.03. The pears are then weighed on an electronic balance and measured their heights using a Vernier caliper.

Figure B1: Pictures showing 3 of the 20 real pears

Figure B2 Setup used for scanning pears

Figure B3 Scanner

In order to obtain their density, the pears are placed one pear at a time in a graduated beaker. The latter is filled with water to a certain level, after which the pear is removed and the fall in the water level gives an approximate value for their density. The pears are then cut into cubes of 1cm x 1cm x 1cm and placed onto a materials testing machine and subjected to a gradually increasing compressive loading. The machine used in this experiment is the Instron 5500 microtester (Fig. B4). The Youngs modulus is derived as the gradient of the graph of the loading against the distance by which the hammer of the machine has moved. Figure B6 shows the graphs of 4 of the tested samples as captured by the software Bluehill.

Figure B4 Microtester

These divergences can be assumed to be still within the domain of possibility for products which are subject to the laws of probability. When the graphs of the eigenfrequency against the mass and height of the pear models are extrapolated to the

average mass and height of the real pears, the percentage error was less than 10% for both. On average, the height of the pears has been found to measure around 88.5mm while the mass was 208.9 g. The average Youngs modulus was 3.37MPa while the average density of the pears was 948.6 kgm-3. Hence, the values of the Youngs modulus and of the density of these real pears only diverged by 12% and 10% respectively from the values that have been applied in the models. And also the variations in their values fall for the most part within the range set for the stochastic analysis of the pear models The surfaces obtained from the scanning are meshed on MSC.Patran and sent to MSC.Nastran for a modal analysis. An illustration of the meshes obtained for different pears can be seen in Figure B5. The average value of the firmness index of the pear was evaluated to be 3.2. When the graph of the firmness index against the height is extrapolated, to 88.5mm, the firmness index given is found to fall short of the expected value by only 0.43 units as shown in the figure B7.

Figure B5 Pears with their corresponding mesh

Figure B6 Compressive behaviour of 4 of the real pears under gradual loading

Extrapolation of the graph of firmness vs height of the models

2.8 2.77 2.3 Firmness

1.8

1.3

0.8 88.5

y = -0.0388x + 6.203 98.5 108.5 118.5 height(mm) 128.5 138.5

Figure B7: Extrapolation of the graph of firmness vs height of the models

It is seen from the numerical simulations that the stochastic simulations with MSC.Robust Design can cover the full range of changes in the different material properties to reflect the full extension of their separate as well as their combined effects on the eigenfrequencies with single a simulation run. It would be very cost-effective if the stochastic finite element simulations can be applied in quality control testing in the food processing industry.

You might also like