Have a personal or library account? Click to login
Open Access
|Nov 2023

Full Article

1.
INTRODUCTION

Fatigue life is an extremely important factor during the exploitation of any machine. Its estimation requires an in-depth knowledge on the structure of the object, as well as conditions it will be exposed to. Although many industries, such as automotive (Reza Kashyzadeh, 2020), agricultural (Mattetti et al., 2012), or aerospace (Tavares & de Castro, 2017), use different standards for estimation and measurement of overall fatigue strength of a designed structure, the fundamental methods stay constant. The main idea is to predict the most probable time or number of cycles the structure can endure (Zhang et al., 2023). The prediction is mostly performed using data on statistical fatigue strength of a given material’s test sample. Depending on type of the analyzed material, expected scale and directions of loads, and other factors, multiple models of fatigue accumulation may be implemented.

In aviation, throughout the years, several methods of load prediction for the expected mission profiles were developed. In order to accelerate the initial design phase, engineers may use standardized load spectra. For instance, an analytically acquired block-spectra for sailplanes was published by Thielman, Franzmeyer in 1969 and was improved by work of Kossira, Reinke with experiment-based spectra in 1982 (Kossira & Reinke, 1989). However, as advised by works of Rodzewicz (Rodzewicz, 2007) and Kensche (Kensche, 2019), substantially better results may be achieved using dedicated spectra, based on flights of similar aircrafts with identical or comparable mission designs.

Given recent improvements in unmanned aerial vehicle (UAV) technology, as well as ongoing miniaturization of onboard inertial measuring units (IMU) and microcontroller units (MCU), it is possible to gather live data during the flights of aircrafts even lighter than 150 -g, such as Cinewhoops, which is a well-known device in the first-person view (FPV) drone-use community. Some of the popular operating systems for UAVs offer automated onboard sensor indications’ recording (Logs — Copter documentation; Blackbox logging internals | Betaflight), which reduces the burden of collecting in-flight load spectra. This brings a new possible approach in preparation of load estimations for aircraft-specific mission profiles. Devices operating on such software could be quickly deployed in both unmanned and manned aircrafts as a flight controller or an additional low-weight payload, respectively.

After gathering the data, a filtration must be applied to properly represent loads that could be reenacted on the analyzed structure by means of an experiment (Rodzewicz & Przekop, 2000) or a simulation (Maksimovic et al., 2021). In aircrafts, while some events and resulting accelerations may be treated as random (mainly gusts and landings), flight loads can be assumed as mostly deterministic (“Load Spectra”, 2009). This allows for use of time-based methods, instead of frequency-based ones, which are better suited for stochastic events. Historically in aviation the filtration was performed on the go, mostly due to memory limitations. The load history was stored as an array containing the number of discrete load level (LL) changes. Depending on the method used for detecting a cycle, as well as the format used for data storage, the array was called a halfcycle array or a full-cycle array. One of the most popular time-based filtration methods was the Rainflow Cycle Counting (RCC), as presented in work of Matsuichi, Endo (Matsuichi & Endo, 1968). It follows the locally extreme load values and counts the number of LL changes. The length of the half-cycle depends on previously detected cycles or the minimal LL encountered in a cycle. Its main advantage is robustness against irregularly increasing (or decreasing) LL, in which case classical load level difference counting would ignore low frequency high amplitude load changes.

Lastly, the influence of cycles endured is estimated using an application-specific material fatigue model. For metals and many other materials, estimation accuracy is satisfied by the Palmgren-Miner rule (Murakami, 2019), although other methods may be implemented for non-isotropic materials, such as textile composites (Lomov & Xu, 2015) or 3D prints. Combined with the half-cycle array, it enables a relatively low-cost computation-wise estimation of overall fatigue damage.

The main goal was to develop a software aiding fast and reliable preparation of a custom load spectra for a structure integrated into an aircraft. The processed data were to come from a real-time flight telemetry, collected by either ground station or saved in onboard memory. The data should be filtered and converted into a half-cycle array. The results of the software should consist of calculated load spectra as presented by Owczarek, Rodzewicz (Owczarek & Rodzewicz, 2009), as well as predicted fatigue lifetime of the structure.

The remainder of this paper is organized as follows: the forthcoming section contains assumptions made during the design phase of the software. Section 3 describes methods of problem analysis. Section 4 provides individual software module tests. The sample analysis results are discussed in Section 5. The paper is summarized with conclusions and further development possibilities in Section 6.

2.
PROJECT ASSUMPTIONS

As stated in Section 1, the main goal of the project was to develop a software capable of aiding aircraft engineers in fatigue life calculations of designed structures. During the planning phase of the project, the Python 3 (Drake & Rossum, 2009) programing language was chosen, due to its multiplatform capabilities. The main assumptions of the project were as follows:

  • the available data come from a three-axis accelerometer set in the aircraft’s center of gravity, or is pre-processed to eliminate linear components of angular acceleration;

  • the available data were recorded constantly, that is every pre-set time step, or were labeled with time of measurement;

  • noise of the accelerometer is negligible in comparison to in-flight loads and does not impact the quality of recorded data;

  • the data available were recorded in form of an array according to OpenTX documentation (Bernet, 2021);

  • the time step between consecutive data points is no longer than 1/12 of the period of significant loads (Bathe, 2014);

  • dimensions of the analyzed component, as well as stress induced by acceleration field during a flight, are known;

  • critical loads assumed during the aircraft’s design are known;

  • data on material fatigue characteristics are known and defined by an array of decimal logarithm of number of load cycles, sample mean stress, and decimal logarithm of stress amplitude; and

  • some data points of the load records are available for readings calibration.

The forthcoming section describes the means of achieving the goals described earlier.

3.
METHODS AND ALGORITHMS OF CALCULATIONS

During the program execution, three main problems are resolved:

  • filtration of the available data,

  • half-cycle array computation, and

  • fatigue lifetime calculation of the analyzed components.

The methods of solving the above are presented in the forthcoming subsections.

3.1.
Filtration of the available data

In terms of fatigue damage level calculation, it is useful to convert the direct log of accelerations into a Markov array (Kossira & Reinke, 1989). Historically in aviation it is a two-dimensional array with a size of 32 columns by 32 rows. In order to create it, the time-based data must be filtered by extreme values and transformed from accelerations to LLs (Rodzewicz, 2007). An example of the available data array is shown in Table 1.

Table 1.

Example of telemetry log used in calculations

DateTimeHdg(@)PtchRollAccX(g)RSSI(dB)AccY(g)AccZ(g)
2021-10-1016:27:29.650178.6065.6-17.0-0.0682-0.020.05
2021-10-1016:27:29.850178.6065.6-17.0-0.0687-0.020.05
2021-10-1016:27:30.050186.6049.70.5-0.0970-0.020.05
2021-10-1016:27:30.250186.6049.70.5-0.0970-0.090.14
2021-10-1016:27:30.450202.1049.70.5-0.0980-0.090.14
2021-10-1016:27:30.650202.1028.98.5-0.0785-0.110.21
2021-10-1016:27:30.850202.1028.98.5-0.0785-0.110.21
2021-10-1016:27:31.050233.7023.128.5-0.0290-0.080.19
2021-10-1016:27:31.250233.7023.128.5-0.0290-0.080.19
2021-10-1016:27:31.450273.1040.228.5-0.0287-0.080.19
2021-10-1016:27:31.650273.1040.244.10.0087-0.030.17
2021-10-1016:27:31.850273.1040.244.10.0080-0.030.17
2021-10-1016:27:32.050295.7054.741.50.0087-0.010.09
2021-10-1016:27:32.250295.7054.741.50.0087-0.010.09
2021-10-1016:27:32.450328.7059.734.90.0090-0.010.09

The filtration begins with normalization of the logged accelerations. According to Assumption 9 described in Section 2, the available data should be appended with a calibration set of accelerations (aτxi)calib${(a_\tau ^{{x_i}})_{calib}}$, with xi. meaning one of three main aircraft axis. The calibration should be performed by positioning the sensor in three perpendicular orientations, and so sensor readings for a = g acceleration in X, Y, and Z axes are acquired. Then, the normalization is performed on the data using the equation, 3.1 ntxi=atxiτ=0k(aτxi)calibk $$n_t^{{x_i}} = {{a_t^{{x_i}}} \over {{{\mathop \sum \limits_{\tau = 0}^k {{(a_\tau ^{{x_i}})}_{calib}}} \over k}}}$$ where t denotes the sample index and axi the acceleration in a chosen axis. It is worth noting that, despite the unusual notation of acceleration in Table 1, the load factors resulting from Eq. (3.1) are represented correctly in non-dimensional form. This means that, provided the calibration recording was performed the same way as the flight itself, the method will return correct values. A comparison between raw and normalized data is shown in Figures 3.1a and 3.1b.

Figure 3.1.

Example of logged data before [Frame 1] and after [Frame 2] normalization.

The next step of the filtration is computation of LLs based on load factors calculated earlier. According to Assumption 7, the critical load factors of the aircraft are known. With such information it is possible to calculate a (n) function. Kossira and Reinke (Kossira & Reinke, 1989) define LLs in a function of load factors as a discrete line between points (3, (nxi)maxcrit) and (31, (nxi)mincrit) in (LL, n) space. This means that the desired function is a line with factors of: 3.2 [aibi]=[331(nxi)maxcrit(nxi)mincrit31331(nxi)maxcrit(nxi)mincrit(nxi)mincrit] $$[\matrix{ {{a_i}} \cr {{b_i}} \cr } ] = [\matrix{ {{{3 - 31} \over {{{({n^{{x_i}}})}_{maxcrit}} - {{({n^{{x_i}}})}_{mincrit}}}}} \hfill \cr {31 - {{3 - 31} \over {{{({n^{{x_i}}})}_{maxcrit}} - {{({n^{{x_i}}})}_{mincrit}}}} \cdot {{({n^{{x_i}}})}_{mincrit}}} \hfill \cr } ]$$

Data from Figure 3.1b transformed by Eq. (3.2) for (nxi)maxcrit = 4.796 and (nxi)mincrit = −2.398 are shown in Figure 3.2.

Figure 3.2.

Example of logged data after transformation to load levels.

Knowing the LLs during the flight, it is possible to filter out non-extreme values from the log. The filtration may be performed by analysis of LL gradient sign. When the derivative of (n) function by data point index changes sign and is non-zero, the algorithm saves the argument of found extremum. It is highly important to not consider points with the derivative value of 0, as it introduces noise into the filtered data. This step of analysis enables matrix size reduction and, by extension, lowers computational costs of the subsequent steps. With such an approach it may be easier to implement the project into a super low-power device capable of long-term low-maintenance data collection onboard an aircraft.

The block flow diagram of extreme values filter (EVF) is shown in Figure 3.3 and an example of filtered data is shown in Figure 3.4.

Figure 3.3.

Block flow diagram of extreme values filter.

Figure 3.4.

Example of extreme values filtration results.

With the filtered set of extreme values, it is possible to calculate the half-cycle array.

3.2.
Half-cycle array computation

Based on the advice provided in the work of Owczarek, Rodzewicz (Owczarek & Rodzewicz, 2009), the RCC (Tavares & de Castro, 2017) method was used during the preparation of a half-cycle array. The main idea behind RCC is to count “streams” flowing down the LL extremes time-wise. Each stream begins in a consecutive extreme LL (source) and is broken if any of the following conditions is met:

  • a source of a deeper extremum exists (LL0 > LLt for even streams [upper] and LL0 > LLn for odd streams [lower]),

  • or a stream of higher extreme LL already flows through the current stream position (the end of the stream is set to the LL of an older stream that has been met).

With the above set of rules it is possible to prepare a recursive algorithm for the RCC method. A block flow diagram of the algorithm and its results are shown in Figures 3.5 and 3.6, respectively.

Figure 3.5.

Block flow diagram of the Rainflow Cycle Counting method.

Figure 3.6.

Example of stream generation in the Rainflow Cycle Counting method.

The computed streams can then be saved as vectors of source and end LLs: 3.3 s=[ LL(0),LL(n1)] $$\vec s = [LL(0),LL(n - 1)]$$ where n is the complete number of steps flowed by a stream. In this form it is less computationally demanding to count the number of specific streams, as both values are used as column and row index of half-cycle array, respectively. An example of an active zone of the calculated half-cycle array is shown in Table 3.2.

Table 3.2.

Example of active zone in half-cycle array.

LL891011121314151617181920212223242526
2510202101100100111x0
240122011110000002x10
23012213042101003x210
2201001357212112x3010
210000203810813105x20000
20000001035103053x510000
19000000120729x521011010
180000001338x29311230000
17000000001x8710811000
1600000000x13051121110
150000001x00323874110
14000000x100110350100
1300000x0000001023210
120001x00000000211020
11000x100000000002200
1000x0000000000003022
90x00000000000011101
8x000000000000000011
70000000000000000100

The resulting half-cycle array [T] can be used in fatigue life calculation, which is described in the forthcoming subsection.

3.3.
Fatigue lifetime calculation

In order to acquire an estimated time of the designed structure’s fatigue life, a specific deconstruction of the half-cycle array must be performed. First, the LLs must be converted back into load factors using the inverse linear function according to Eq. (3.2): 3.4 [ab]=[(nxi)maxcrit(nxi)mincrit331(nxi)mincrit(nxi)maxcrit(nxi)mincrit33131] \[[\begin{matrix} a\\ b\\ \end{matrix}]=[\begin{array}{*{35}{l}} \frac{{{({{n}^{{{x}_{i}}}})}_{maxcrit}}-{{({{n}^{{{x}_{i}}}})}_{mincrit}}}{3-31}\\ {{({{n}^{{{x}_{i}}}})}_{mincrit}}-\frac{{{({{n}^{{{x}_{i}}}})}_{maxcrit}}-{{({{n}^{{{x}_{i}}}})}_{mincrit}}}{3-31}\cdot 31\\ \end{array}]\]

Next, a load factor array is prepared by computing for each non-zero half-cycle array cell: 3.5 ni,ja=|nz(LLv)nz(LLh)2| $$n_{i,j}^a = |{{{n_z}(L{L_v}) - {n_z}(L{L_h})} \over 2}|$$ 3.6 ni,jm=|nz(LLv)+nz(LLh)2| $$n_{i,j}^m = |{{{n_z}(L{L_v}) + {n_z}(L{L_h})} \over 2}|$$ where [na] represents the load factor amplitude matrix, [nm] the mean load factor matrix, LLh the column index of half-cycle array, and LLv the row index of half-cycle array. However, it is important to emphasize that the exact values of the prepared arrays are independent from the half-cycle array computed in the preceding subsection. Both [na] and [nm] matrices represent the corresponding load factors based only on column and row index. LLh and LLv are just sets of numbers between 1 and 32. The proper use of the half-cycle array values will be shown directly during fatigue damage level matrix computation.

According to Assumption 6 from Section 2, the mean stress value for the n = 1 situation is known. The computed matrices may then be scaled by a factor of known σ(n = 1), which results in the following arrays of mean stress matrix [σm] and stress amplitude matrix [σa]: 3.7 [σm]=[nm]σ(n=1) $$[{\sigma ^m}] = [{n^m}] \cdot \sigma (n = 1)$$ 3.8 [σa]=[na]σ(n=1) $$[{\sigma ^a}] = [{n^a}] \cdot \sigma (n = 1)$$

Having calculated stress matrices, it is now possible to compute the maximum number of cycles for each non-zero cell of the half-cycle array [T]. Due to σ(n = 1) being a result of a continuous function, it may not always fit the discrete material data available within the input data (Assumption 8).

The software compensates for lack of information using a linear approximation between the lines of material constant mean stress (as shown in Figure 3.7). The maximal number of cycles is calculated with: 3.9 Ni,j=10a(σi,jm)σi,ja+b(σi,jm) $${N_{i,j}} = {10^{a(\sigma _{i,j}^m) \cdot \sigma _{i,j}^a + b(\sigma _{i,j}^m)}}$$ where both a and b are a function of σi,jm$\sigma _{i,j}^m$.

Figure 3.7.

Approximation process of the number of cycles N for uncharacteristic argument.

Having calculated both the half-cycle array and the maximum number of cycles matrix, it is now possible to calculate the fatigue level matrix: 3.10 Di,j=Ti,jNi,j \[{{D}_{i,j}}=\frac{{{T}_{i,j}}}{{{N}_{i,j}}}\]

The overall fatigue level may then be calculated using the Palmgren-Miner rule as a sum of all elements of matrix D: 3.11 Dc=0.5i=132j=132Di,j=0.5i=132j=132Ti,jNi,j \[{{D}_{c}}=0.5\underset{i=1}{\overset{32}{\mathop \sum }}\,\underset{j=1}{\overset{32}{\mathop \sum }}\,{{D}_{i,j}}=0.5\underset{i=1}{\overset{32}{\mathop \sum }}\,\underset{j=1}{\overset{32}{\mathop \sum }}\,\frac{{{T}_{i,j}}}{{{N}_{i,j}}}\] and the hourly fatigue lifetime: 3.12 TFL=tDc \[{{T}_{FL}}=\frac{t}{{{D}_{c}}}\] where t indicates time period of the logged data for which the half-cycle array [T] was calculated.

The forthcoming section describes methods of testing the described algorithms.

4.
TESTING SOFTWARE SUBMODULES

It is useful to prove the validity of a new software’s submodules before performing complete testing. The developed tool consists of three components – the aforementioned EVF, stream generator (SG), and array generator (AG). Each of the submodules performs calculations according to the rules and equations specified in Section 3.

4.1.
Validity of Extreme Values Filter

The most important factor of data preparation is correctly filtering extreme values for use in half-cycle array. The EVF submodule should return only local extremes of LLs without considering regions of zero LL difference. Due to its implementation, the module is expected to find only the last extreme point before a change of derivative sign. Values returned are expected to be integers between 1 and 32.

The validation was performed on three sets of logged LLs by comparing the input with the results of the filtration. All three sections have shown correct behavior of computed polylines. Test 3 seems to be of significant importance as it contains multiple steps of little LL difference; however, the local extremes are found correctly. The tests are visualized in Figures 4.14.3.

Figure 4.1.

First test zone of EVF.

Figure 4.2.

Second test zone of EVF.

Figure 4.3.

Third test zone of EVF.

4.2.
Validity of Stream Generator

In order to validate the SG submodule, generated streams were imposed on points of extreme LLs from Subsection 4.1. The expected behavior of streamlines was specified in Subsection 3.2. The tests were visualized in a manner similar to that adopted in Subsection 4.1, as portrayed in Figures 4.44.6. They show the streams following the specified rules, with the exception of Test 3, where streams with sources at Points 180 and 194 are broken seemingly without a cause. This is, however, a limitation of the visualization method, as the global chart shows the streams are blocked by at least one older stream (as shown in Figure 4.7).

Figure 4.4.

First test zone of generated streams.

Figure 4.5.

Second test zone of generated streams.

Figure 4.6.

Third test zone of generated streams.

Figure 4.7.

Global view on third test zone of generated streams.

4.3.
Validity of Array Generator

The last step of submodule validation was to analyze the generated arrays based on characteristics deduced from Section 3.3:

  • values of the [na] matrix should rise perpendicularly to the diagonal in the direction of matrix borders and be equal parallelly to the diagonal,

  • values of the [nm] matrix should rise parallelly to the diagonal in direction of (1, 1) cell and be equal perpendicularly to the diagonal,

  • values of the [N] matrix should rise exponentially to infinity closing on the diagonal,

  • the active zones of all of the matrices should have equal length of vertical and horizontal dimensions,

  • the diagonal of each matrix should have only 0 values.

Examples of active zones of computed matrices are shown in Tables 4.14.3. Each of the generated arrays complies with the above expectations. Based on these findings, it is assumed that all of the submodules are implemented correctly, and accordingly, full software testing may be performed.

The forthcoming section describes a full test on real-life data.

Table 4.1.

Active zone of matrix.

LL56789101112131415161718192021222324252627
271,45601,19900,9420,81400000000000000000
2601,4560000,9420,8140,6850000,17100-0,21400000000
250001,32701,071000,6850,5570000000-0,47100000
2401,71301,4561,3271,1991,07100,8140,6850,55700,30000000-0,4710000
230001,5841,45601,1991,0710,9420,8140,6850,5570000,0430000-0,599-0,7280
22000001,4561,32701,0710,9420,8140,6850,5570,4280,3000,1710,0430-0,214-0,343000
2100001,71301,4561,32701,0710,9420,8140,6850,5570,4280,30000,043-0,0860000
2000001,841001,456001,0710,9420,8140,6850,55700,3000,1710,0430-0,21400
19000001,8411,7131,5841,45601,1991,0710,9420,81400,5570,4280,300000-0,2140
18000001,97000001.3271,1991,07100.8140.6850,5570,4280,3000000
17000000000001,32701,0710,9420,8140,6850,5570,4280,300000
16000000000000001,0710,9420,8140,6850,5570,4280,30000
150000000000001,4561,3271,1991,0710,9420,8140,6850,55700,3000
14000000000000001,32701,0710,9420,81400,55700
130000000000000001,32701,0710,9420,8140,68500
12003,12600000000000001,3271,19900,9420,81400
1100000002,6120000000001,32701,0710,9420,8140
100000000000000000001,32701,0710,9420,814
90000000000000000001,45601,19900,942
80000000000000000001,58401,32700
70000000000000000000001,3271,199
600000000000000000001,713000
5000000000000000000001,71300
Table 4.2.

Active zone of [na] matrix.

LL567891011121314151617la192021222324252627
272.82602,56902,3122,18400000000000000000
2602,5690002,0551,9271,7980001,285000,89900000000
250002,18401,927001,5421,41300000000,38500000
2402,31202,0551,9271,7981,67001,4131,2851,15600,899000000,1280000
230001,9271,79801,5421,4131,2851,1561,0280,8990000,38500000,2570,3850
22000001,5421,41301,1561,0280,8990,7710,6420,5140,3850,2570,12800,1280,257000
2100001,54201,2851,15600,8990,7710,6420,5140,3850,2570,12800,1280,2570000
2000001,413001,028000,6420,5140,3850,2570,12800,1280,2570,38500,64200
19000001,1561,0280,8990,77100,5140,3850,2570,12800,1280,2570,3850000,8990
18000001,02800000,3850,2570,12800,1280,2570,3850,5140.6420000
17000000000000,12800,1280,2570,3850,5140,6420,7710,899000
16000000000000000,3850,5140,6420,7710,8991,0281,15600
150000000000000,2570,3850,5140,6420,7710,8991,0281,15601,4130
14000000000000000,64200,8991,0281,15601,41300
130000000000000000,89901,1561,2851,4131,54200
12000,64200000000000001,1561,28501,5421,67000
1100000000,1280000000001,41301,6701,7981,9270
100000000000000000001,67001,9272,0552,184
90000000000000000001,79802,05502,312
80000000000000000001,92702,18400
70000000000000000000002,4412,569
600000000000000000002,312000
5000000000000000000002,56900
Table 4.3.

Active zone of [N] matrix

1156789101112131415161718192021222324252627
275016093230188802788800000000000000000
260686700029520455527273400073965000877756600000000
2500013948031222001356882422540000000123856729100000
2406971014323214003301152788015365028368755937402816397000003630618817530000
23000146682223905701297452175690337414699601159534200026010577600001566405980927027408870
220000036956618090203528409747903678223996164898242345205111919696311120106564400676187801264008614586485934196000
2100002395506738412276805118861220828337940911549092546236084604443571532105927704400676187826855963850000
20000024864001405560017597405687415250320021906537545334063388015321059277111201065626010577604596310800
1900000446698232216424536264602800799114712517894298918570669110533406338846044435711919696300087775660
1800000482150000525685532687505646542282018570669111906537545462360823452051124630710000
17000000000002250952400646542282789429892503200211549092648982441098552816397000
1600000000000000011471251568741533794092239961159534211944959273460
1500000000000013534742525685528007991759740122082890367869960155937403819540
14000000000000009163400511886409747337414024225400
13000000000000000289957020352817569015365013568800
1200951300000000000001227681088060879547982300
11000000011513650000000006180905278849000455520
10000000000000000000349100312222952027888
900000000000000000022239020563018880
80000000000000000001466801394800
700000000000000000000095359323
600000000000000000006971000
5000000000j0100000000505800
5.
ANALYSIS OF REAL-LIFE DATA

Knowing that each of the main submodules works correctly, it is possible to test the complete software by analyzing real-life data. Due to a lack of third party data for result comparison, the output was validated against the rules specified in previous sections.

During the tests, an aluminum sample with a static load of nz = 1 characterized by a stress of σ(nz = 1) = 37.298 MPa was analyzed. The model represents a pin of camera mounting in a typical sport quadcopter; however, the method should be applicable to any aluminum component of the structure. The considered critical load factors are (nxi)mincrit = −2.398 and (nxi)maxcrit = 4.796. The material characteristics are shown in Table 5.1. The analyzed mission profile was designed according to the Polish NSTS-06 rules of flight.

Table 5.1.

Material fatigue characteristics of aluminum used in analyzed component.

σmlg(N)(lg(σa)
03,32,2551
071,4699
343,32,1954
3471,228
693,32,1138
6971,1087
1033,32,0761
10371,0333
1383,32,0384
13870,9516
2073,31,9913
20770,8323

A log of computed LLs is visualized in Figure 5.1. The log does not comply with the assumption of continuous acceleration sampling; however, the available data are labelled with exact time stamps of measurements.

Figure 5.1.

Visualization of filtered load levels in function of time.

The visualization of the generated RCC streams (Figures 5.2 and 5.3) was divided into odd and even streams for improved readability. The results show coherence with earlier tests, with acquired streams following the rules specified in Subsection 3.2. In order to further improve the readability of the following diagrams, index of sample was used instead of time stamp.

Figure 5.2.

Even RCC streams.

Figure 5.2.

Odd RCC streams.

Based on the above results, the software calculated half-cycle array [T]. The active zone of the matrix is shown in Table 5.2. The results are on par with the expectations specified in Subsection 4.3. The highest values are reached near cells (18, 19) and (19, 18) corresponding to the load factor of nz ≈ 1. The diagonal consists of only 0 values, which shows that no zero LL changes were found in the log. This proves further the correctness of the EVF submodule algorithm. The matrix has the same vertical and horizontal dimensions, which shows that streams were most probably generated correctly.

Table 5.2.

Active zone of generated half-cycle array [T].

LL5678910111213141516171819202122232425
25101110000000000000000
24001020210110010011100
23010122011110000002010
22000122130421010030210
21000100135721211203010
20000000203810813105020000
19000000010351030530510000
18000000001207290521011010
17000000001338029311230000
160000000000108710811000
150000000000013051121110
14000000001000323874110
13000000000100110350100
12000000000000001023210
11000001000000000211020
10000000100000000002200
9000000000000000003022
8000000000000000011101
7000000000000000000011
6000000000000000000100
5000000000000000000100

The active zone of the fatigue level matrix [D] is shown in Table 5.3. Evaluating it against the rules and expectations specified in Subsection 4.3, the array seems to be generated correctly. However, it is currently not validated against third party data, as such were not available during the software development. It is essential to perform further validation of the project in the near future.

Table 5.3.

Active zone of the fatigue level matrix [D].

LL5678910111213141516171819202122232425
250.00019800,0001037.17E-054,86E-050000000000000000
24000,00010109.35E-0503,79E-051,14E-0503,53E-061,79E-06001,33E-07001,76E-091,54E-102,75E-1200
2300,00014306,82E-058.99E-055,73E-0501,03E-055,69E-062,96E-061,43E-060000001,58E-1102,75E-120
220006,67E-058,56E-055,41E-051,62E-052,76E-0509,76E-062,21E-064,46E-0704,26E-08006,82E-1101,58E-111,54E-100
210006,55E-05001.48E-052.44E-052.08E-051,37E-051,64E-062,96E-071,73E-071,83E-082,17E-091.31E-1006.82E-1101,76E-090
200000002,70E-0501,03F-051,20F-055,68F-061,41F-065,19F-075,25F-089,37F-1001,31E-100000
1900000006,09E-0603,27E-061,79E-068,72E-073,80E-072,85E-0809.37E-102.17E-090000
18000000002,10E 06l,45E0602,14E074,49E 0802,80E085,25E081,83E084,26E080l,33E070
17000000001,47E-061,25E-062,22E-073,55E-0804,49E-083,93E-074,79E-072,60E-070000
1600000000001,28E-0803,55E-082,14E-078,72E-071,41E-062,96E-074,46E-07000
15000000000001,28E-082,22E-0701,79E-066,25E-061,64E-061,11-061,43E-061,79E-060
14000000001,05E-070001,25E-061,45E-063,27E-061,20E-051,37E-059,76E-062,96E-063,53E-060
130000000001,05E-07001,47E-062,10E-0601,03E-052,08E-0505,69E-0600
12000000000000006,09E-0601,63E-052,76E-052,05E-051,14E-050
11000002,49E-060000000002,70E-051,48E-051,62E-0503,79E-050
100000002,49E-0600000000005,41E-055.73E-0500
9000000000000000000,00013009,35E-059.73E-05
8000000000000000006,55E-056,67E-056,82E-0507,71E-05
700000000000000000000.0001010.000103
60000000000000000000.00014300
50000000000000000000.00020000

The overall fatigue level of the analyzed object after 20 min of loads shown in Figure 5.1 is estimated to be Dc = 0.00154. This suggests the object fatigue lifetime to last about TFL ≈ 220 h. The result may seem to be low; however, it is important to notice the tests’ high loads relative to a typical aircraft. This may generate high stresses in the structure, possibly introducing conditions for low cycle fatigue.

6.
CONCLUSIONS AND POSSIBILITIES FOR FURTHER DEVELOPMENT

The main goal of the project was to develop a tool aiding engineers in fatigue lifetime calculations, based on real-life data collected during exploitation of an aircraft. The software was supposed to perform automatic transformation of telemetry logs to custom load spectra and estimated fatigue level, which was then to be recalculated to hourly fatigue lifetime. The input data were supposed to consist of flight log formatted according to the OpenTX telemetry standard and an array of discrete material fatigue data based on experiments.

The paper describes methods, algorithms, and validation of implemented software modules used in calculations, as well as the results of test data analysis. The test data consisted of accelerations imposed on an aluminum sample simulating a pin of a camera mounting on a typical sport UAV during flight according to the Polish NSTS-06 rules. The results show high coherence with all of expectations stated during the algorithm design phase, which suggests that the estimations have been computed correctly.

The results of the analysis show rather a low fatigue lifetime of the sample. However, it is important to emphasize that during the test flights, high-G acrobatics were abundantly performed, which significantly influences the overall load spectra of the aircraft. Moreover, the tests represent a relatively short sample size. In order to prepare full custom load spectra, the test flights should represent real-life situations as much as possible. To adequately estimate fatigue lifetime of the sample, further tests must be performed.

A strong advantage of this software is its multiplatform approach, with a focus on the requirements for the computational power and memory needed during calculations to remain low. This means the developed software could be used on mobile platforms for live data gathering and analysis. It would require integration of the pre-processing submodule, eliminating the effects of being placed outside of the center of gravity. This approach could provide a highly augmented view on fatigue levels in both small UAVs and manned aircrafts.

Further project development should also focus on extrapolation of half-cycle arrays. This approach could provide a view on a higher range of loads, sometimes very hard, problematic, or dangerous to invoke in real-life testing.

DOI: https://doi.org/10.2478/fas-2022-0007 | Journal eISSN: 2300-7591 | Journal ISSN: 2081-7738
Language: English
Page range: 83 - 103
Published on: Nov 28, 2023
Published by: Institute of Aviation
In partnership with: Paradigm Publishing Services
Publication frequency: 1 times per year

© 2023 Stanisław Gajek, published by Institute of Aviation
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 License.