Best Of
Random Fatigue and cycle counting
Fatigue is the most common failure mode of mechanical components. Any structure subjected to repetitive loading may fail due to fatigue. Today, there are well established numerical method to calculate fatigue life based on damage accumulation.
Main steps of Fatigue Life calculation:
The first input of a fatigue analysis is fluctuating stress response from a previous analysis (FEA most of the time). From that point, it is possible to count the number of cycles per stress amplitude level and mean stress respectively (named commonly Rainflow Matrix). Using this information, we can correct the stress amplitude to take into account the effect of the mean stress on the fatigue life, and above all, accumulate the damage from the different cycles using the material data (SN or EN curve) to get the final the life of the part. The process can be summarized like the chart below:
Fatigue loading:
The nature of the loading causing the fluctuating stress depends on the source where excitation comes from. It can be:
- Deterministic, that is to say we assume the complete loading profile as know at any point of time (e.g. periodic loads from rotating machinary).
- Random: This is the case of most of the loading from the nature (Wind, road/rail imperfections
Fatigue analysis in the Time Domain:
When the cyclic loading is simple enough like constant amplitude (simple sine wave for example), the use of Time domain fatigue analysis is obvious. In general, when the loading is deterministic, the fatigue analysis can always be done in the Time domain. The computation cost may increase drastically in case of long variable amplitude loading.
When applied to time domain, the fatigue analysis process looks like below:
Basically, the fluctuating stress here is the Stress Time History from a pseudo static (Static analysis + time dependent scale factors) or a transient FEA analysis. Also, the Rainflow technic is used to count the cycles in the stress time history. Rest the of the process remains unchanged.
Fatigue analysis in the Frequency Domain:
When the variable amplitude loadings are too long and complex, or simply if it is completely a random process, we can transform them into Power Spectral Density (PSD) and perform the fatigue analysis in the Frequency Domain (Random fatigue). This will require an intermediate Random response analysis to get the PSD stress response (see KB0117481 or the online documentation for further details on Random Response analysis).
When applied to frequency domain for PSD, the fatigue analysis process looks like below:
The fluctuating stress is represented by the PSD Stress response. To count the cycles here, we use the PSD moments obtained from PSD Stress response and the probability of getting a certain stress range obtained from the Probability Density Function (PDF). Rest the of the process remains unchanged.
Cycle counting analogy:
As we can see from the damage computation process above, one of the most important step is the counting of stress range cycles. As we are mostly familiar with time series, let’s see how analogous the cycle counting in random fatigue (frequency domain) is with respect to the “equivalent” time domain signal represented by the PSD stresses. As a reminder, a PSD is a representation of the signal’s power distribution over a spectrum of frequency.
A convenient way to know the characteristics of a time domain signal is to determine some typical statistical properties, also known as statistical moments, which tell us about the distribution of the signal.
Given a random process, the spectral moments (PSD moments) are used to measure the statistical properties.
The commonly used moments are:
- M0: Square of the RMS
- M1: Mean (the Average)
- M2: Variance (or the square of the standard deviation)
- M3: Skewness (asymmetry of a distribution about its peak)
- M4: Kurtosis (measures the peakedness or flatness of a distribution)
In random fatigue analysis, number of peaks or number of zero crossing are commonly used for the cycle counting:
The number of peaks per second is defined as:
The number of zero crossing per second is defined as:
Using the exposure time , we can deduce the total number of cycles from or :
Finally, we can calculate the number of cycles for any given stress range using one of the well known Probability Density Fucntion (PDF). The PDF typically defines the probability distribution of the Stress range.
Both HyperLife™, SimSolid™ and OptiStruct™ proposes the the following PDF:
Dirlik:
With ; ; ;
; ; (irregularity factor); ; S = Stress range
Lalanne:
Narrow band:
Steinberg’s THREE band methods (directly provides the probabilities).
The probability is multiplied by the total number of cycles to get the number of cycles for a given stress range Si:
We can then build the cycle counting matrix (number of cycles vs stress range) used in the damage calculation:
The final step of the process consists of calculating the damage using the Material curve (i.e. SN curve) and accumulate the damage using Miner’s rule. The total Life will be calculated as the reciprocal of the total damage. Please refer to our documentation for further details on damage calculation.
Optimizing Washing Machine Control with Power Electronics and Multi-Body Dynamics Integration
Holistic System Level Approach
We've all experienced a washing machine vibrating, sometimes even "walking" across the floor as if it was a living thing. In this blog, we'll explore how you can identify and possibly mitigate these annoying vibrations when designing such systems with Altair tools.
[click play to watch]
This short video is a product of a system level simulation that combines power stage and control (rectifier, inverter, PMSM, and control) with the multibody dynamics of the washing machine drum and dampers.
Simulating electrical motor drives at the full system level— e-power stage plus the mechanical load — is usually complex. Firstly, integrating the electronics along with the mech system can be slow due to the different time constants involved. What is more, different engineering teams often use various simulation tools that don’t integrate well, making a unified approach challenging.
Altair begs to differ by providing all the "puzzle" pieces needed for a complete motor drive system simulation:
1. E-power Stage/Power Electronics: Altair PSIM with ability to include a PMSM motor designed in Altair Flux
2. Multibody dynamics/Complex Mech loads: Altair MotionSolve
3. System-Level Integration: Altair Twin Activate, allows for easy co-simulation of PSIM, Flux, and MotionSolve.
All of this without breaking the bank, thanks to the Altair Units licensing system. In fact, this is where Altair's cost-effective and efficient licensing model shines.
Let's explore each piece separately.
PSIM
Altair's specialized solution for power electronics. The speed of PSIM when it comes to switching simulations is unparalleled. Speed and robustness are critical factors that enabled this complex workflow, after all.
Many engineering teams avoid switching simulations at the system level for motor drives. This is to be expected when dealing with simulations tools that do not provide the right fidelity-to-speed ratio to make the effort worth it. Instead, they rely on exchanging data between control/system teams and motor design teams using lookup tables and scripting. This approach often leads to inefficiencies and disjointed workflows.
Altair’s PSIM and Flux integration provides a smarter alternative. It leverages PSIM's speed for inverter simulations while allowing users to continue their lookup table approach for the motor within a unified, user-friendly environment—eliminating the need to script every step.
You can find more details on how this connection works and what is the added value here:
Flux-PSIM Coupling : Leverage the system simulation speed while working around your Motor Design
The lookup table approach extends beyond just the motor model from Flux. To enhance the fidelity-to-speed ratio—since that's what ultimately matters—we also provide lookup table models to calculate switch thermal losses and battery dynamics. PSIM offers various fidelity options, and if you need fast calculations for system-level control decisions or thermal losses, this capability will be particularly valuable.
Fidelity-to-speed ratio is what makes our approach stand out.
While we won't dive into specific motor drive and control design techniques like FOC or FW, the bigger picture is clear:
This entire simulation can be developed collaboratively between the system/inverter/control teams and the e-motor teams when a Flux motor model is involved.
Especially for the mechanical engineers in the thermal, motor, and MBD teams, the goal is to treat all the 'electrical stuff' as a 'black box' from their perspective. This is exactly how we approach it using the PSIM-Twin Activate co-simulation capability.
The environment shown above is Twin Activate, where the entire PSIM motor drive simulation is encapsulated into a PSIM co-simulation block. We’ll discuss Twin Activate in more detail later.
The inputs are the target speed and motor speed feedback from the mechanical load. The output, the motor's torque, feeds into the mechanical load simulation (MotionSolve). This closes the loop: PSIM generates torque, which sets the motor speed in MotionSolve, and this speed is used for control setup and to drive the load in PSIM.
For more insights into how the load is set up in PSIM, refer to the first picture above. This blog may get lengthy if we delve into detailed analysis, so feel free to reach out to Altair Support for further information or assistance with similar implementations.
MotionSolve/MotionView
Altair's multibody simulation solution lets you create and analyze complex mechanical systems to assess dynamic responses. Engineers can graphically construct models with realistic geometry, loading conditions, flexibility, damping, friction, and multiphysics effects.
In this case, it was used to design a high-fidelity MBD load to be coupled with the motor drive shaft from PSIM.
The CAD file of the washing machine is imported and the moving parts, along with dampers, are defined:
In this case, the clothes are modeled as a single rotary object with either a 5 kg concentrated mass or a fixed 0.5 kg mass to simulate eccentricity. While Altair's EDEM tool can model fabric as discrete elements, adding significant complexity and potentially impacting simulation speed, it was omitted for this demonstration.
MotionSolve co-simulates with Twin Activate, where motor torque coming from PSIM serves as input and the MBD model provides feedback data for speed and bin vibrations.:
Again, the environment shown is Twin Activate, where the entire MotionSolve simulation is encapsulated into the MotionSolve co-simulation block.
Twin Activate
This is where everything comes together. Twin Activate is a flexible integration solution that supports even non-Altair model formats like FMI/FMU and reduced-order models using machine learning techniques such as romAI for dynamic fitting.
An interesting example of romAI in power electronics and motor drives can be found here:
Sensorless Control of Permanent Magnet Synchronous Motors (PMSM) powered by ROM and Machine Learning
Back to the washing machine example, PSIM and MotionSolve co-simulation blocks can be connected in this manner, while allowing multidisciplinary teams to remain focused on their individual stages. This setup provides a shared platform for testing system-level interactions, which is crucial, as we will see later.
To summarize:
1. The motor drive, consisting of a permanent magnet synchronous motor (PMSM) and its controls, is modeled in PSIM. The overall system behavior is influenced by the control bandwidth, decided in PSIM.
2. A high-fidelity model of the mechanical subsystem is created in MotionView and analyzed with MotionSolve to assess dynamics and vibrations based on drum speed and clothes weight.
3. Twin Activate serves as the integration platform, enabling comprehensive evaluation and optimization of the entire system, including feedback between mechanical effects and motor control.
Let’s review some key results and steps of the workflow, demonstrating the value of different fidelity modeling. These insights will be highlighted in the slides below:
- Dynamics and Vibrations: Modeling the washing machine’s dynamics and vibrations based on holistic system approach.
- Observations: Vibrations in MotionView are influenced by control choices and dampers.
- Torque Analysis: High-fidelity torque and current waveforms are evaluated, incorporating feedback from the mechanical model in MotionView.
- Control Design: Designing control bandwidth with a realistic closed-loop system can save testing time.
Refer to the slides below to see the added value of the PSIM + MotionSolve connection compared to a simplified average controller model.
The simulation files can be found attached. You can directly open the "washing_machine_w_PSIM_MS.scm" that will include the PSIM and MS co-simulation blocks. Please make sure that the MS paths in Twin Activate (File >> Preferences >> Paths) are correct before running the simulation.
Next Steps
It's not over yet! There is one more trick in our sleeves. Using fit models for the entire motor drive system, as showcased here:
It’s not over yet! We have one more trick up our sleeve. Using fit models for the entire motor drive system, as demonstrated here:
[Fit model of an entire motor drive]
This approach significantly speeds up simulations while maintaining high fidelity. By leveraging PSIM simulation data to train a static fit model with HyperStudy, you can achieve efficient and accurate results.
Forget guesswork and rough estimates! You can now integrate high-fidelity data into your system-level simulations derived from advanced data analytics algorithms.
We’re continuously advancing in this area, so stay tuned. This represents a major leap in power electronics simulation, bridging data analytics with machine learning techniques.
Helpful Links
- AC Sweeps with PSIM: What makes them unique?
- PSIM & Flux Connection : Leverage the system simulation speed while working around your Motor Design
- PSIM & Twin Activate connection tutorial
- PSIM & Flux & MotionSolve - Electric Motorcycle example
- Modelling a Bulk Solids Mixer Drivetrain with EDEM, MotionSolve, PSIM and Activate example
- PSIM & HyperStudy connection tutorial
- Insights into Motor Drive Design: Analyzing Trends and Long-Term Costs with PSIM and HyperStudy
- Combining Multiphysics Simulation and Automated Design Exploration to Optimize Performance and Cost of your Motor Drives
Bottle Drop Simulation
Overview
This project presents an Altair solutions for the Fluid-Structure Interaction simulation of a water bottle impact on a table.
This project includes:
- 2 ready-to-use Altair Radioss models
- Altair Radioss version is V2022.2
- The Unit System is in (g, mm, ms, MPa) or (Mg, mm, s, MPa)
- A report with a detailled description of the model (Mg, mm, s, MPa)
- An HyperView session file showing a post-treatment example.
Created by Mathis Loverini and Adrien Robert.
Usage/Installation Instructions
Refer to ALTAIR_RADIOSS_Bottle_Drop_FSI_Public_2022.ppsx document.
/FAIL/BIQUAD : Excel to visualize the failure limit
When it comes to metal or plastic damage, /FAIL/BIQUAD is a widely used, efficient and userfriendly failure model. This failure model uses a simplified stress triaxiality & plastic strain-based, failure criteria with linear damage accumulation. Since version 2024, the damage accumulation can be coupled with stress computation to create a stress-softening effect. The failure plastic strain is described by two parabolic functions calculated using curve fitting from up to 5 user-defined failure strains.
The aim of this knowledge base article is to share an excel sheet that will allow users to visualize the failure limits according to their setup. The parameter default values and the stress softening parameters are in compliance with the 2024 version of Radioss. Each parameter is explained with comments in the Excel sheet.
This Excel sheet was built by Valentin Davaze & Mathis Loverini.
Element Quality Frivolity: Are My Elements Bad?
In FEA, elements are like dogs in that they are all good boys. However, the FEA textbooks would have you believe that that bad quality elements are bad and they should feel bad. They may say so without elaborating, the reality being that element quality requires a good grasp of the shape functions at hand. Since I don’t have a good grasp of shape functions (and my dog ate that chapter of my textbook) I set about the easier method of investigating how element quality impacts some simple linear static solves. The results have made me less critical of “poor” quality elements – but don’t tell the elements I called them “poor”, they are stressed as is.
Figure 1: Do you fix your element quality?
The first place I hunted for element quality examples was the OptiStruct documentation. OS-0720 is a cantilever beam study which shows how various element breeds handle In-plane Extension, In-plane Bending, Transverse Bending, and Twist. The beams in this study are shown in Figure 2 and have either rectangular, parallelogram, or trapezoidal elements with one element through the height of the beam. Figure 3 shows deflection results normalized to the theoretical value. This study shows how CQUAD4 elements can struggle to resolve in In-plane Bending, particularly if they have trapezoidal distortion. My “all elements are good boys” claim is strained here, particularly when the bad elements come in packs.
Figure 2: OS-0720 CQUAD model
Figure 3: OS-0720 results showing the fallibility of poor quality CQUAD4
But what if most of the mesh was composed of quality elements and there was a single bad element – a wolf among sheep – at a point of interest? How much would the results be thrown off? I made a large plate mesh with a small hole in the middle. My model is shown in Figure 4 where symmetry boundary conditions are applied and a bad element is made at the top of the hole, where we would expect peak stress. Density around the hole was varied to study the effects of a coarse vs fine mesh and these meshes are shown in Figure 5.
Figure 4: Plate with a hole boundary conditions
Figure 5: Plate with a hole mesh refinement with good elements
Poor quality elements were inserted by pawing nodes on the element at the top of the hole until the Jacobian was less than 0.5. This made elements with either a very obtuse angle at one corner or a comparatively smaller angle at the other corner, as shown in Figure 6.
Figure 6: Plate with a hole model types of element distortion
Stress results were referenced to the theoretical stress of 30 – this value stems from a nominal stress of 10 and stress concentration factor of 3 for an infinite thin plate with a circular hole. Results for coarse vs fine mesh refinement are shown in Figure 7.
Figure 7: Plate with a hole model corner stress results for coarse and fine mesh
I barked at how close the stress values of poor quality elements were to the good quality baseline. As shown in Figure 8, the peak corner stress in poor quality elements was sometimes at the wrong corner. Sometimes an inward element had higher stress, but not significantly higher.
Figure 8: Plate with a hole model corner stress results for poor quality elements
A summary of the stress difference between poor and good quality elements at the top of the hole is shown in Figure 9 and Figure 10 for corner stress and centroid stress respectively.
Figure 9: First order corner stress good elements vs bad elements for various mesh refinement
Figure 10: First order centroid stress good elements vs bad elements for various mesh refinement
The same results are shown in Figure 11 and Figure 12 for second order elements.
Figure 11: Second order corner stress good elements vs bad elements for various mesh refinement
Figure 12: : Second order centroid stress good elements vs bad elements
Both studies indicate that poor quality elements will change the stress results at their location, but perhaps not to huge extent. All elements are good okay boys again?
Next, I pup-ared some plate models with simple boundary conditions, shown in Figure 13, that should all have uniform stress distribution. Figure 14 shows these CQUAD4 elements with error message generating vertex angles, skew angles, and aspect ratios for a variety of mesh refinements.
Figure 13: Uniform stress model boundary conditions
Figure 14: Uniform stress model mesh
For CQUAD4 elements, the element defects had no impact on stress or displacement results. The exception is bending, where mesh refinement affects displacement. Figure 15, Figure 16, Figure 17, and Figure 18 show stress and displacement, where any stress difference between elements is in the numerical noise.
Figure 15: Uniform stress model XTension
Figure 16: Uniform stress model YTension
Figure 17: Uniform stress model XYShear
Figure 18: Uniform stress model YBending
The same studies were run with CQUAD8 elements, shown in Figure 19. The poor quality elements here did have significantly lower stress values than their litter mates.
Figure 19: Uniform stress model CQUAD8
So poor quality elements are capable of resolving uniform stress distribution, but what if there’s many poor quality elements throughout the mesh? I concluded my investigation with a cantilever beam model similar to the beginning; this time poor quality elements are buried among the good quality elements and there are multiple elements through the beam’s height. In Figure 20, the poor quality beam is above and the good quality beam is below.
Figure 20: Poor quality beam boundary conditions
For both CQUAD4 and CQUAD8 elements, overall displacement results for the poor quality beam is very close to the good quality beam, as shown in Figure 21.
Figure 21: Poor quality beam displacement (1.132 expected)
Similarly, Figure 22 shows overall stress is very similar between the beams. However, stress close to a poor quality element (Point is different from the stress at the same location in the lower beam. Measurements for these figures is shown in Table 1. Generally, the CQUAD8 beam is less sensitive to poor element quality.
Figure 22: Poor quality beam corner stress (Expected Stress at Point A = 18.75 Expected Stress at Point B = 16.56, using stress for a cantilever beam in bending sigma = yFL/I )
Table 1: Poor Quality Beam Displacement and Stress
These studies indicate that the presence of poor quality elements might not invalidate models. Keep in mind these results are for linear static shell elements and that quality may have a bigger impact for different simulations or different result types, particularly if the elements have parallelogram or trapezoidal distortion. As for myself, I will certainly be less dogmatic with element quality requirements.