Main Content

Thermal Stress Analysis of Jet Engine Turbine Blade

This example shows how to compute the thermal stress and deformation of a turbine blade in its steady-state operating condition. The blade has interior cooling ducts. The cool air flowing through the ducts maintains the temperature of the blade within the limit for its material. This feature is common in modern blades.

A turbine is a component of the jet engine. It is responsible for extracting energy from the high-temperature and high-pressure gas produced in the combustion chamber and transforming it into rotational motion to produce thrust. The turbine is a radial array of blades typically made of nickel alloys. These alloys resist the extremely high temperatures of the gases. At such temperatures, the material expands significantly, producing mechanical stress in the joints and significant deformations of several millimeters. To avoid mechanical failure and friction between the tip of the blade and the turbine casing, the blade design must account for the stress and deformations.

The example shows a three-step workflow:

  1. Perform structural analysis accounting only for pressure of the surrounding gases while ignoring thermal effects.

  2. Compute the thermal stress while ignoring the pressure.

  3. Combine the pressure and thermal stress.

Pressure Loading

The blade experiences high pressure from the surrounding gases. Compute the stress caused only by this pressure.

First, create an femodel object for static structural analysis and include the geometry of a turbine blade.

model = femodel(AnalysisType="structuralStatic", ...
                Geometry="Blade.stl");

Plot the geometry with face labels.

pdegplot(model,FaceLabels="on",FaceAlpha=0.5)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Generate a mesh with the maximum element size 0.01.

model = generateMesh(model,Hmax=0.01);

Specify Young's modulus, Poisson's ratio, and the coefficient of thermal expansion for nickel-based alloy (NIMONIC 90).

E = 227E9; % in Pa
CTE = 12.7E-6; % in 1/K
nu = 0.27; 

model.MaterialProperties = ...
    materialProperties(YoungsModulus=E, ...
                       PoissonsRatio=nu, ...
                       CTE=CTE);

Specify that the face of the root that is in contact with other metal is fixed.

model.FaceBC(3) = faceBC(Constraint="fixed");

Specify the pressure load on the pressure and suction sides of the blade. This pressure is due to the high-pressure gas surrounding these sides of the blade.

p1 = 5e5; %in Pa
p2 = 4.5e5; %in Pa

model.FaceLoad(11) = faceLoad(Pressure=p1); % Pressure side
model.FaceLoad(10) = faceLoad(Pressure=p2);  % Suction side 

Solve the structural problem.

Rs = solve(model);

Plot the von Mises stress and the displacement. Specify a deformation scale factor of 100 to better visualize the deformation.

figure
pdeplot3D(Rs.Mesh, ...
          ColorMapData=Rs.VonMisesStress, ...
          Deformation=Rs.Displacement, ...
          DeformationScaleFactor=100)
view([116,25]);

Figure contains an axes object. The hidden axes object contains 5 objects of type patch, quiver, text.

The maximum stress is around 100 Mpa, which is significantly below the elastic limit.

Thermal Stress

Determine the temperature distribution and compute the stress and deformation due to thermal expansion only. This part of the example ignores the pressure.

First, switch the analysis type of the model to the steady-state thermal analysis.

model.AnalysisType = "thermalSteady";

Assuming that the blade is made of nickel-based alloy (NIMONIC 90), specify the thermal conductivity.

kapp = 11.5; % in W/m/K
model.MaterialProperties = ...
    materialProperties(ThermalConductivity=kapp);

Convective heat transfer between the surrounding fluid and the faces of the blade defines the boundary conditions for this problem. The convection coefficient is greater where the gas velocity is higher. Also, the gas temperature is different around different faces. The temperature of the interior cooling air is 150C, while the temperature on the pressure and suction sides is 1000C.

% Interior cooling
model.FaceLoad([15 12 14]) = ...
    faceLoad(ConvectionCoefficient=30, ...
             AmbientTemperature=150);
% Pressure side
model.FaceLoad(11) = ...
    faceLoad(ConvectionCoefficient=50, ...
             AmbientTemperature=1000);
% Suction side             
model.FaceLoad(10) = ...
    faceLoad(ConvectionCoefficient=40, ...
             AmbientTemperature=1000);
% Tip
model.FaceLoad(13) = ...
    faceLoad(ConvectionCoefficient=20, ... 
             AmbientTemperature=1000);
% Base (exposed to hot gases)
model.FaceLoad(1) = ...
    faceLoad(ConvectionCoefficient=40, ...
             AmbientTemperature=800);
% Root in contact with hot gases
model.FaceLoad([6 9 8 2 7]) = ...
    faceLoad(ConvectionCoefficient=15, ...
             AmbientTemperature=400);

The boundary condition for the faces of the root in contact with other metal is a thermal contact that can be modeled as convection with a very large coefficient (around 1000W/(m2K) for metal-metal contact).

% Root in contact with metal
model.FaceLoad([3 4 5]) = ...
    faceLoad(ConvectionCoefficient=1000, ...
             AmbientTemperature=300);

Solve the thermal problem.

Rt = solve(model);

Plot the temperature distribution. The temperature between the tip and the root ranges from around 820C to 330C. The exterior gas temperature is 1000C. The interior cooling is efficient: it significantly lowers the temperature.

figure
pdeplot3D(Rt.Mesh,ColorMapData=Rt.Temperature)
view([130,-20]);

Figure contains an axes object. The hidden axes object contains 5 objects of type patch, quiver, text.

Now, compute the stress and deformation due to thermal expansion. First, switch the analysis type of the model to the static structural analysis.

model.AnalysisType = "structuralStatic";

Specify Young's modulus, Poisson's ratio, and the coefficient of thermal expansion for nickel-based alloy (NIMONIC 90).

model.MaterialProperties = ...
    materialProperties(YoungsModulus=E, ...
                       PoissonsRatio=nu, ...
                       CTE=CTE);

Specify the reference temperature.

model.ReferenceTemperature = 300; %in degrees C
model.CellLoad = cellLoad(Temperature=Rt);

Specify the boundary condition.

model.FaceBC(3) = faceBC(Constraint="fixed");

Solve the thermal stress problem.

Rts = solve(model);

Plot the von Mises stress and the displacement. Specify a deformation scale factor of 100 to better visualize the deformation. The stress concentrates in the constrained root because it cannot freely expand, and also in the junction between the blade and the root.

figure("units","normalized","outerposition",[0 0 1 1]);
pdeplot3D(Rts.Mesh, ...
          ColorMapData=Rts.VonMisesStress, ...
          Deformation=Rts.Displacement, ...
          DeformationScaleFactor=100)
clim([0, 200e6])
view([116,25]);

Figure contains an axes object. The hidden axes object contains 5 objects of type patch, quiver, text.

Evaluate the displacement at the tip. In the design of the cover, this displacement must be taken into account to avoid friction between the cover and the blade.

max(Rts.Displacement.Magnitude)
ans = 
0.0015

Combined Pressure Loading and Thermal Stress

Compute the stress and deformations caused by the combination of thermal and pressure effects.

Add the pressure load on the pressure and suction sides of the blade. This pressure is due to the high-pressure gas surrounding these sides of the blade.

% Pressure side
model.FaceLoad(11) = faceLoad(Pressure=p1);
% Suction side 
model.FaceLoad(10) = faceLoad(Pressure=p2);

Solve the problem.

Rc = solve(model);

Plot the von Mises stress and the displacement. Specify a deformation scale factor of 100 to better visualize the deformation.

figure("units","normalized","outerposition",[0 0 1 1]);
pdeplot3D(Rc.Mesh,...
          ColorMapData=Rc.VonMisesStress, ...
          Deformation=Rc.Displacement, ...
          DeformationScaleFactor=100)
clim([0, 200e6])
view([116,25]);

Figure contains an axes object. The hidden axes object contains 5 objects of type patch, quiver, text.

Evaluate the maximum stress and maximum displacement. The displacement is almost the same as for the thermal stress analysis, while the maximum stress, 854 MPa, is significantly higher.

max(Rc.VonMisesStress)
ans = 
9.5085e+08
max(Rc.Displacement.Magnitude)
ans = 
0.0015