Brake Squeal Analysis¶
This example analysis shows how to solve a brakesqueal problem. 1.6. Analysis and Solution Controls are highlighted: linear nonprestressed modal, partial nonlinear perturbed modal, and full nonlinear perturbed modal. The problem demonstrates sliding frictional contact and uses complex eigensolvers to predict unstable modes.
The following topics are available:
You can also perform this example analysis entirely in the Ansys Mechanical Application. For more information, see BrakeSqueal Analysis in the Workbench Technology Showcase: Example Problems.
1.1. Introduction¶
Eliminating brake noise is a classic challenge in the automotive industry. Brake discs develop large and sustained frictioninduced oscillations, simple referred to as brake squeal.
Two common theories describe brakesqueal phenomena:
StickSlip Theory – The selfexcited vibration of a brake system occurs when the static coefficient of friction is greater than the sliding coefficient of friction. Variable friction forces introduce energy into the system which is not properly dissipated during the squealing event, resulting in large vibrations.
ModeCoupling Theory – When two similar characteristic modes couple with each other, instability is introduced to the braking system. This instability is caused primarily by improperly selected geometric parameters. Both theories attribute brake squeal to variable friction forces at the discpad interface.
Brake noise is generally categorized as follows:
Lowfrequency noise – An example of a lowfrequency noise is the “groaning” noise which occurs in the frequency range between 100 and 1000 Hz. Any noise having a frequency above 1000 Hz is considered a squeal.
Lowfrequency squeal – A result of mode coupling occurring between the outofplane modes of the rotor and the bending modes of the brake pad.
Highfrequency squeal – A result of mode coupling occurring between the inplane modes of the rotor. Low and highfrequency squealing can be determined via complex eigensolvers. The presence of unstable modes suggests that the geometry parameters and material properties of the braking system should be modified.
For more information, see BrakeSqueal (Prestressed Modal) Analysis in the Structural Analysis Guide.
1.2. Problem Description¶
The following model is a simple brake discpad assembly. The disc has a thickness of 10 mm and the brake pads have a thickness of 15 mm. The inner diameter of the disc is 250 mm and outer diameter is of 350 mm. A prestressed modal analysis is performed on this model using various methods to determine the unstable modes. A parametric study is then performed to examine the effect of the friction coefficient on the dynamic stability of the model.
1.3. Modeling¶
The following modeling topics are available:
1.3.1. Understanding the Advantages of Contact Element Technology¶
Brakesqueal problems typically require manual calculations of the unsymmetric terms arising from sources such as frictional sliding, and then inputting the unsymmetric terms using special elements (such as MATRIX27). It is a tedious process requiring a matched mesh at the discpad interface along with assumptions related to the amount of area in contact and sliding.
3D contact elements (CONTA17x) offer a more efficient alternative by modeling surfacetosurface contact at the paddisc interface. With contact surfacetosurface contact elements, a matched mesh is unnecessary at the contacttarget surface, and there is no need to calculate the unsymmetric terms.
Contact surfacetosurface elements offer many controls for defining contact pairs, such as the type of contact surface, algorithm, contact stiffness, and gap/initial penetration effect.
1.3.2. Modeling Contact Pairs¶
Frictional surfacetosurface contact pairs with a 0.3 coefficient of friction are used to define contact between the brake pads and disc to simulate frictional sliding contact occurring at the paddisc interface. Bonded surfacetosurface contact pairs are used to define the contact for other components which will be always in contact throughout the braking operation.
The augmented Lagrange algorithm is used for the frictional contact pairs, as the pressure and frictional stresses are augmented during equilibrium iterations in such a way that the penetration is reduced gradually. The augmented Lagrange algorithm also requires fewer computational resources than the standard Lagrange multiplier algorithm, which normally requires additional iterations to ensure that the contact compatibility is satisfied exactly. The augmented Lagrange is well suited for modeling general frictional contact, such as the contact between the brake pad and disc defined in this example.
An internal multipoint constraint (MPC) contact algorithm is used for bonded contact because it ties contact and target surface together efficiently for solidsolid assembly. The MPC algorithm builds equations internally based on the contact kinematics and does not require the degrees of freedom of the contact surface nodes, reducing the wave front size of the equation solver. A contact detection point is made on the Gauss point for frictional contact pairs, and on the nodal point (normaltotarget surface) for MPC bonded contact pairs.
1.3.3. Generating Internal Sliding Motion¶
The CMROTATE command defines constant rotational velocities on the contact/target nodes to generate internal sliding motion. The specified rotational velocity is used only to determine the sliding direction and has no effect on the final solution. The element component used should include only the contact or the target elements that are on the brake disc/rotor. In this example, the target elements are defined on the disc surface and the contact elements are defined on the pad surface. The target elements attached to the disc surface are grouped to form a component named E_ROTOR which is then later specified on the CMROTATE command to generate a sliding frictional force.
1.3.4. Meshing the Brake DiscPad Model¶
The sweep method is used to generate a hexahedral dominant mesh of the brake system assembly. Brake discs, pads and all other associated components are meshed with 20node structural solid SOLID186 elements with uniform reducedintegration element technology. The edge sizing tool is used to obtains a refined mesh at the paddisc interface to improve the solution accuracy. For problems with a large unsymmetric coefficient, a finer mesh should be used at the paddisc interface to accurately predict the unstable modes. CONTA174 (3D 8 node surface to surface contact) elements are used to define the contact surface and TARGE170 (3D target segment) elements are used to define the target surface. The brake discpad assembly is meshed with total of 60351 nodes and 11473 elements.
Start this example by launching MAPDL and loading the model.
import pyvista
pyvista.set_plot_theme('document')
from ansys.mapdl.core import launch_mapdl, Mapdl
from ansys.mapdl.core.examples import download_tech_demo_data, ansys_colormap
cdb_path = download_tech_demo_data("td1", "disc_pad_model.cdb")
def start(mapdl, case):
"""Initialize MAPDL with a fresh disc pad model"""
mapdl.finish()
mapdl.verify(case)
mapdl.prep7()
mapdl.shpp("OFF", value2="NOWARN") # disable element shape checking
mapdl.cdread("COMB", cdb_path) # Read disc_pad_model.cdb file
mapdl.allsel()
mapdl = launch_mapdl(nproc=8)
mapdl.clear()
# mapdl = Mapdl()
start(mapdl, 'linear_non_prestressed')
mapdl.title("linear_non_prestressed, Solving brake squeal problem using linear non prestressed modal solve")
_ = mapdl.eplot(
vtk=True, cpos="xy", show_edges=True, show_axes=False, line_width=2, background="w"
)
1.4. Material Properties¶
Linear elastic isotropic materials are assigned to all the components of the braking system.
Table 1.1: Material Properties
Material Properties 


Young’s Modulus (Nm2) 
2.0 E+11 Pa 
Density 
7800 Kg/m3 
Poisson’s Ratio 
0.3 
1.5. Boundary Conditions and Loading¶
The inner diameter of the cylinder hub and bolt holes is constrained in all directions. Small pressure loading is applied on both ends of the pad to establish contact with the brake disc and to include prestress effects. The displacement on the brake pad surfaces where the pressure loading is applied is constrained in all directions except axial (along the Zaxis).
1.6. Analysis and Solution Controls¶
The analysis settings and solution controls differ depending upon the method used to solve a brakesqueal problem. This section describes three possible methods:
1.6.1. Linear Nonprestressed Modal Analysis¶
A linear nonprestressed modal analysis is effective when the stressstiffening effects are not critical. This method requires less run time than the other two methods, as NewtonRaphson iterations are not required. The contactstiffness matrix is based on the initial contact status.
Following is the process for solving a brakesqueal problem using this method:
Perform a linear partialelement analysis with no prestress effects.
Generate the unsymmetric stiffness matrix (NROPT,UNSYM).
Generate sliding frictional force (CMROTATE).
Perform a complex modal analysis using the QRDAMP or UNSYM eigensolver.
When using the QRDAMP solver, you can reuse the symmetric eigensolution from the previous load steps (QRDOPT), effective when performing a friction sensitive/parametric analysis, as it saves time by not recalculating the real symmetric modes after the first solve operation.
Expand the modes and postprocess the results from Jobname.RST.
For this analysis, the UNSYM solver is selected to solve the problem. (Guidelines for selecting the eigensolver for brakesqueal problems appear in 1.8. Recommendations.)
The frequencies obtained from the modal solution have real and imaginary parts due the presence of an unsymmetric stiffness matrix. The imaginary frequency reflects the damped frequency, and the real frequency indicates whether the mode is stable or not. A real eigenfrequency with a positive value indicates an unstable mode.
The following input shows the solution steps involved in this method:
Modal Solution
mapdl.run("/SOLU")
mapdl.nropt("UNSYM") # To generate non symmetric
mapdl.cmsel("S", "C1_R") # Select the target elements of the disc
mapdl.cmsel("A", "C2_R")
mapdl.cm("E_ROTOR", "ELEM") # Form a component named E_ROTOR with the selected target elements
mapdl.allsel("ALL")
mapdl.cmrotate("E_ROTOR", "", "", 2) # Rotate the selected element along global Z using CMROTATE command
# Perform modal solve, use UNSYM to extract 30 modes, and expand those
# modes.
mapdl.modal_analysis("UNSYM", 30, mxpand=True)
mapdl.finish()
mapdl.post1()
modes = []
modes.append(mapdl.set("list"))
mapdl.set(1, 21)
# Plot the mode shape for mode 21
mapdl.post_processing.plot_nodal_displacement(
"NORM",
cmap=ansys_colormap(),
line_width=5,
cpos="xy",
scalar_bar_args={"title": "Displacement", "vertical": False},
)
Figure 1.3: Mode Shape for Unstable Mode (Mode 21). Obtained from the 1.6.1. Linear Nonprestressed Modal Analysis .
1.6.2. Partial Nonlinear Perturbed Modal Analysis¶
Use a partial nonlinear perturbed modal analysis when stressstiffening affects the final modal solution. The initial contact conditions are established, and a prestressed matrix is generated at the end of the first static solution.
Following is the process for solving a brakesqueal problem using this method:
Perform a nonlinear, largedeflection static analysis (NLGEOM,ON).
Use the unsymmetric NewtonRaphson method (NROPT,UNSYM). Specify the restart control points needed for the linear perturbation analysis (RESCONTROL)
Create components for use in the next step.
The static solution with external loading establishes the initial contact condition and generates a prestressed matrix.
Restart the previous static solution from the desired load step and substep, and perform the first phase of the perturbation analysis while preserving the .ldhi, .rnnn and .rst files (ANTYPE,STATIC,RESTART,,,PERTURB).
Initiate a modal linear perturbation analysis (PERTURB,MODAL).
Generate forced frictional sliding contact (CMROTATE), specifying the component names created in the previous step.
The contact stiffness matrix is based only on the contact status at the restart point.
Regenerate the element stiffness matrix at the end of the first phase of the linear perturbation solution (SOLVE,ELFORM).
Obtain the linear perturbation modal solution using the QRDAMP or UNSYM eigensolver (MODOPT).
When using the QRDAMP solver, you can reuse the symmetric eigensolution from the previous load steps (QRDOPT), effective when performing a frictionsensitive/parametric analysis, as it saves time by not recalculating the real symmetric modes after the first solve operation.
Expand the modes and postprocess the results (from the Jobname.RSTP file).
The following inputs show the solution steps involved with this method:
Static Solution
start(mapdl, "partial_prestressed")
mapdl.title("partial_prestressed, Solving brake squeal problem using partial prestressed modal solve")
mapdl.run("/SOLU")
mapdl.antype("STATIC") # Perform static solve
mapdl.outres("ALL", "ALL") # Write all element and nodal solution results for each sub steps
mapdl.nropt("UNSYM") # Specify unsymmetric NewtonRaphson option to solve the problem
mapdl.rescontrol("DEFINE", "ALL", 1) # Control restart files
mapdl.nlgeom("ON") # Activate large deflection
mapdl.autots("ON") # Auto time stepping turned on
mapdl.time(1.0) # End time = 1.0 sec
mapdl.esel("S", "TYPE", "", 124) # Select element type 124
mapdl.nsle("S", "ALL") # Select nodes attached to the element
mapdl.sf("ALL", "PRES", "%_LOADVARI4059%") # Apply surface pressure on the selected nodes
mapdl.esel("S", "TYPE", "", 125) # Select element type 125
mapdl.nsle("S", "ALL") # Select nodes attached to the element
mapdl.sf("ALL", "PRES", "%_LOADVARI4061%") # Apply surface pressure on the selected nodes
mapdl.nsel("ALL")
mapdl.allsel("ALL")
mapdl.cmsel("S", "C1_R") # Select target elements of the disc
mapdl.cmsel("A", "C2_R")
mapdl.cm("E_ROTOR", "ELEM") # Form a component named E_ROTOR
mapdl.allsel("ALL")
mapdl.solve() # Solve with prestress
mapdl.finish()
Post processing to show partial results.
# select contact elements attached to the brake pad
mapdl.post1()
mapdl.set("last")
mapdl.esel("s", "type", "", 30, 32, 2)
mapdl.post_processing.plot_element_values(
"CONT", "STAT", scalar_bar_args={"title": "Contact status"}
)
mapdl.post_processing.plot_element_values(
"CONT", "SLIDE", scalar_bar_args={"title": "Contact sliding distance"}
)
mapdl.allsel("all")
mapdl.finish()
Perturbed Modal Solution
# Restart from last load step and sub step of previous
mapdl.run("/SOLU")
mapdl.antype("static", "restart", "", "", "perturb")
# static solution to perform perturbation analysis
mapdl.perturb("modal", "", "", "") # Perform perturbation modal solve
mapdl.cmrotate("E_ROTOR", rotatz=2)
mapdl.solve("elform") # Regenerate the element matrices
mapdl.outres("all", "all")
mapdl.modopt("unsym", 30) # Use UNSYM eigen solver and extract 30 modes
mapdl.mxpand(30, "", "", "") # Expand 30 modes
mapdl.solve()
mapdl.finish()
Post processing to show results.
mapdl.post1()
mapdl.file("", "rstp")
print(mapdl.post_processing)
mapdl.set(1, 21)
mapdl.post_processing.plot_nodal_displacement(
scalar_bar_args={"title": "Total displacement\n Substep 21"}
)
mapdl.set(1, 22)
mapdl.post_processing.plot_nodal_displacement(
scalar_bar_args={"title": "Total displacement\n Substep 22"}
)
Figure 1.5: Mode Shape for Unstable Mode (Mode 21). Obtained from the 1.6.1. Linear Nonprestressed Modal Analysis .
Figure 1.6: Mode Shape for Unstable Mode (Mode 21). Obtained from the 1.6.1. Linear Nonprestressed Modal Analysis .
1.6.3. Full Nonlinear Perturbed Modal Analysis¶
A full nonlinear perturbed modal analysis is the most accurate method for modeling the brakesqueal problem. This method uses NewtonRaphson iterations for both of the static solutions.
Following is the process for solving a brakesqueal problem using this method:
Perform a nonlinear, largedeflection static analysis (NLGEOM,ON). Use the unsymmetric NewtonRaphson method (NROPT,UNSYM). Specify the restart control points needed for the linear perturbation analysis (RESCONTROL).
Perform a full second static analysis. Generate sliding contact (CMROTATE) to form an unsymmetric stiffness matrix.
After obtaining the second static solution, postprocess the contact results. Determine the status (that is, whether the elements are sliding, and the sliding distance, if any).
Restart the previous static solution from the desired load step and substep, and perform the first phase of the perturbation analysis while preserving the .ldhi, .rnnn and .rst files (ANTYPE,STATIC,RESTART,,,PERTURB).
Initiate a modal linear perturbation analysis (PERTURB,MODAL).
Regenerate the element stiffness matrix at the end of the first phase of the linear perturbation solution (SOLVE,ELFORM).
Obtain the linear perturbation modal solution using the QRDAMP or UNSYM eigensolver (MODOPT).
Expand the modes and postprocess the results (from the Jobname.RSTP file). The following inputs show the solution steps involved with this method:
First Static Solution
start(mapdl, 'full_non_linear')
mapdl.run("/SOLU")
mapdl.antype("STATIC") # Perform static solve
mapdl.outres("ALL", "ALL") # Write all element and nodal solution results for each substep
mapdl.nropt("UNSYM") # Specify unsymmetric NewtonRaphson option to solve the problem
mapdl.rescontrol("DEFINE", "ALL", 1) # Control restart files
mapdl.nlgeom("ON") # Activate large deflection
mapdl.autots("ON") # Auto time stepping turned on
mapdl.time(1.0) # End time = 1.0 sec
mapdl.esel("S", "TYPE", "", 124) # Select element type 124
mapdl.nsle("S", "ALL") # Select nodes attached to the element
mapdl.sf("ALL", "PRES", "%_LOADVARI4059%") # Apply surface pressure on the selected nodes
mapdl.esel("S", "TYPE", "", 125) # Select element type 125
mapdl.nsle("S", "ALL") # Select nodes attached to the element
mapdl.sf("ALL", "PRES", "%_LOADVARI4061%") # Apply surface pressure on the selected nodes
mapdl.nsel("ALL")
mapdl.allsel("ALL")
mapdl.cmsel("S", "C1_R") # Select the target elements of the disc
mapdl.cmsel("A", "C2_R")
mapdl.cm("E_ROTOR", "ELEM") # Form a component named E_ROTOR with the selected target ELEMENTS
mapdl.allsel("ALL")
mapdl.solve() # Solve with prestress loading
Second Static Solution
mapdl.cmrotate("E_ROTOR", rotatz=2)
mapdl.time(2.0) # End time = 2.0sec
mapdl.solve() # Perform full solve
mapdl.finish()
Plotting partial results
mapdl.post1()
mapdl.set("last")
# select contact elements attached to the brake pad
mapdl.esel("s", "type", "", 30, 32, 2)
mapdl.post_processing.plot_element_values(
"CONT", "STAT", scalar_bar_args={"title": "Contact status"}
)
mapdl.post_processing.plot_element_values(
"CONT", "SLIDE", scalar_bar_args={"title": "Contact sliding distance"}
)
mapdl.allsel("all")
mapdl.finish()
Perturbed Modal Solution
mapdl.run("/SOLU")
mapdl.antype("STATIC", "RESTART", action="PERTURB") # Restart from last load step and sub step
mapdl.perturb("MODAL") # Perform linear perturbation modal solve
mapdl.solve("ELFORM") # Regenerate the element stiffness matrix
mapdl.outres("ALL", "ALL")
mapdl.modopt("UNSYM", 30) # Use UNSYM eigensolver and extract 30 modes
mapdl.mxpand(30) # Expand 30 modes
mapdl.solve() # Solve linear perturbation modal solve
Plotting results
mapdl.post1()
mapdl.file("", "RSTP")
print(mapdl.post_processing)
mapdl.set(1, 21)
mapdl.post_processing.plot_nodal_displacement(
scalar_bar_args={"title": "Total displacement\n Substep 21"}
)
mapdl.set(1, 22)
mapdl.post_processing.plot_nodal_displacement(
scalar_bar_args={"title": "Total displacement\n Substep 22"}
)
mapdl.finish()
mapdl.exit()
Figure 1.7: Mode Shape for Unstable Mode (Mode 21).
Figure 1.8: Mode Shape for Unstable Mode (Mode 21).
1.7. Results and Discussion¶
The unstable mode predictions for the brake discpad assembly using all three methods were very close due to the relatively small prestress load. The 1.6.1. Linear Nonprestressed Modal Analysis predicted unstable modes at 6474 Hz, while the other two solution methods predicted unstable modes at 6470 Hz.
The mode shape plots for the unstable modes suggest that the bending mode of the pads and disc have similar characteristics. These bending modes couple due to friction, and produce a squealing noise.
Figure 1.9: Mode Shape for Unstable Mode (Mode 21). Obtained from the 1.6.1. Linear Nonprestressed Modal Analysis .
Figure 1.10: Mode Shape for Unstable Mode (Mode 22). Obtained from the 1.6.1. Linear Nonprestressed Modal Analysis .
Table 1.2: Solution Output
Linear nonprestressed modal 
Partial nonlinear perturbed modal 
Full nonlinear perturbed modal 


Mode 
Imaginary 
Real 
Imaginary 
Real 
Imaginary 
Real 
1.00 
775.91 
0.00 
775.73 
0.00 
775.73 
0.00 
2.00 
863.54 
0.00 
863.45 
0.00 
863.45 
0.00 
3.00 
1097.18 
0.00 
1097.03 
0.00 
1097.03 
0.00 
4.00 
1311.54 
0.00 
1311.06 
0.00 
1311.06 
0.00 
5.00 
1328.73 
0.00 
1328.07 
0.00 
1328.07 
0.00 
6.00 
1600.95 
0.00 
1600.66 
0.00 
1600.66 
0.00 
7.00 
1616.15 
0.00 
1615.87 
0.00 
1615.87 
0.00 
8.00 
1910.50 
0.00 
1910.50 
0.00 
1910.50 
0.00 
9.00 
2070.73 
0.00 
2070.44 
0.00 
2070.44 
0.00 
10.00 
2081.26 
0.00 
2080.98 
0.00 
2080.98 
0.00 
11.00 
2676.71 
0.00 
2675.23 
0.00 
2675.23 
0.00 
12.00 
2724.05 
0.00 
2722.61 
0.00 
2722.61 
0.00 
13.00 
3373.96 
0.00 
3373.32 
0.00 
3373.32 
0.00 
14.00 
4141.64 
0.00 
4141.45 
0.00 
4141.45 
0.00 
15.00 
4145.16 
0.00 
4145.04 
0.00 
4145.04 
0.00 
16.00 
4433.91 
0.00 
4431.08 
0.00 
4431.08 
0.00 
17.00 
4486.50 
0.00 
4484.00 
0.00 
4484.00 
0.00 
18.00 
4668.51 
0.00 
4667.62 
0.00 
4667.62 
0.00 
19.00 
4767.54 
0.00 
4766.95 
0.00 
4766.95 
0.00 
20.00 
5241.61 
0.00 
5241.38 
0.00 
5241.38 
0.00 
21.00 
6474.25 
21.61 
6470.24 
21.90 
6470.24 
21.90 
22.00 
6474.25 
21.61 
6470.24 
21.90 
6470.24 
21.90 
23.00 
6763.36 
0.00 
6763.19 
0.00 
6763.19 
0.00 
24.00 
6765.62 
0.00 
6765.51 
0.00 
6765.51 
0.00 
25.00 
6920.64 
0.00 
6919.64 
0.00 
6919.64 
0.00 
26.00 
6929.25 
0.00 
6929.19 
0.00 
6929.19 
0.00 
27.00 
7069.69 
0.00 
7066.72 
0.00 
7066.72 
0.00 
28.00 
7243.80 
0.00 
7242.71 
0.00 
7242.71 
0.00 
29.00 
8498.41 
0.00 
8493.08 
0.00 
8493.08 
0.00 
30.00 
8623.76 
0.00 
8616.68 
0.00 
8616.68 
0.00 
1.7.1. Determining the Modal Behavior of Individual Components¶
It is important to determine the modal behavior of individual components (disc and pads) when predicting brakesqueal noise. A modal analysis performed on the free pad and free disc model gives insight into potential coupling modes. The natural frequency and mode shapes of brake pads and disc can also be used to define the type of squeal noise that may occur in a braking system. Bending modes of pads and disc are more significant than twisting modes because they eventually couple to produce squeal noise.
An examination of the results obtained from the modal analysis of a free disc and pad shows that the second bending mode of the pad and ninth bending mode of the disc can couple to create dynamic instability in the system. These pad and disc bending modes can couple to produce an intermediate lock, resulting in a squeal noise at a frequency close to 6470 Hz.
1.7.2. Parametric Study with Increasing Friction Coefficient¶
A parametric study was performed on the brake disc model using a linear nonprestressed modal solution with an increasing coefficient of friction. QRDAMP eigensolver is used to perform the parametric studies by reusing the symmetric real modes (QRDOPT,ON) obtained in the first load step.
The following plot suggests that modes with similar characteristics approach each other and couple as the coefficient of friction increases: