Specify damping parameters for transient or frequency response structural model
For a frequency response model with damping, the results are complex. Use the
angle functions to obtain
real-valued magnitude and phase, respectively.
Rayleigh Damping Parameters
Specify proportional (Rayleigh) damping parameters for a beam.
Create a transient structural model.
structuralModel = createpde("structural","transient-solid");
Import and plot the geometry.
gm = importGeometry(structuralModel,"SquareBeam.stl"); pdegplot(structuralModel,"FaceAlpha",0.5)
Specify Young's modulus, Poisson's ratio, and the mass density.
structuralProperties(structuralModel,"YoungsModulus",210E9,... "PoissonsRatio",0.3,... "MassDensity",7800);
Specify the Rayleigh damping parameters.
ans = StructuralDampingAssignment with properties: RegionType: 'Cell' RegionID: 1 DampingModel: "proportional" Alpha: 10 Beta: 2 Zeta: 
Solution to Frequency Response Structural Model with Damping
Solve a frequency response problem with damping. The resulting displacement values are complex. To obtain the magnitude and phase of displacement, use the
angle functions, respectively. To speed up computations, solve the model using the results of modal analysis.
Create a modal analysis model for a 3-D problem.
modelM = createpde("structural","modal-solid");
Create the geometry and include it in the model.
gm = multicuboid(10,10,0.025); modelM.Geometry = gm;
Generate a mesh.
msh = generateMesh(modelM);
Specify Young's modulus, Poisson's ratio, and the mass density of the material.
structuralProperties(modelM,"YoungsModulus",2E11, ... "PoissonsRatio",0.3, ... "MassDensity",8000);
Identify faces for applying boundary constraints and loads by plotting the geometry with the face and edge labels.
Specify constraints on the sides of the plate (faces 3, 4, 5, and 6) to prevent rigid body motions.
Solve the problem for the frequency range from
Rm = solve(modelM,"FrequencyRange",[-Inf,12*pi]);
Frequency Response Analysis
Create a frequency response analysis model for a 3-D problem.
modelFR = createpde("structural","frequency-solid");
Use the same geometry and mesh as you used for the modal analysis.
modelFR.Geometry = gm; modelFR.Mesh = msh;
Specify the same values for Young's modulus, Poisson's ratio, and the mass density of the material.
structuralProperties(modelFR,"YoungsModulus",2E11, ... "PoissonsRatio",0.3, ... "MassDensity",8000);
Specify the same constraints on the sides of the plate to prevent rigid body modes.
Specify the pressure loading on top of the plate (face 2) to model an ideal impulse excitation. In the frequency domain, this pressure pulse is uniformly distributed across all frequencies.
First, solve the model without damping.
flist = [0,1,1.5,linspace(2,3,100),3.5,4,5,6]*2*pi; RfrModalU = solve(modelFR,flist,"ModalResults",Rm);
Now, solve the model with damping equal to 2% of critical damping for all modes.
structuralDamping(modelFR,"Zeta",0.02); RfrModalAll = solve(modelFR,flist,"ModalResults",Rm);
Solve the same model with frequency-dependent damping. In this example, use the solution frequencies from
flist and damping values between 1% and 10% of critical damping.
omega = flist; zeta = linspace(0.01,0.1,length(omega)); zetaW = @(omegaMode) interp1(omega,zeta,omegaMode); structuralDamping(modelFR,"Zeta",zetaW); RfrModalFD = solve(modelFR,flist,"ModalResults",Rm);
Interpolate the displacement at the center of the top surface of the plate for all three cases.
iDispU = interpolateDisplacement(RfrModalU,[0;0;0.025]); iDispAll = interpolateDisplacement(RfrModalAll,[0;0;0.025]); iDispFD = interpolateDisplacement(RfrModalFD,[0;0;0.025]);
Plot the magnitude of the displacement. Zoom in on the frequencies around the first mode.
figure hold on plot(RfrModalU.SolutionFrequencies,abs(iDispU.Magnitude)); plot(RfrModalAll.SolutionFrequencies,abs(iDispAll.Magnitude)); plot(RfrModalFD.SolutionFrequencies,abs(iDispFD.Magnitude)); title("Magnitude") xlim([10 25]) ylim([0 0.5])
Plot the phase of the displacement.
figure hold on plot(RfrModalU.SolutionFrequencies,angle(iDispU.Magnitude)); plot(RfrModalAll.SolutionFrequencies,angle(iDispAll.Magnitude)); plot(RfrModalFD.SolutionFrequencies,angle(iDispFD.Magnitude)); title("Phase")
structuralmodel — Transient or frequency response structural model
Transient or frequency response structural model, specified as a
StructuralModel object. The model contains the
geometry, mesh, structural properties of the material, body loads, boundary
loads, boundary conditions, and initial conditions.
a — Mass proportional damping
Mass proportional damping, specified as a nonnegative number.
b — Stiffness proportional damping
Stiffness proportional damping, specified as a nonnegative number.
z — Modal damping ratio
nonnegative number | function handle
Modal damping ratio, specified as a nonnegative number or a function handle. Use a function handle when each mode has its own damping ratio. The function must accept a vector of natural frequencies as an input argument and return a vector of corresponding damping ratios. It must cover the full frequency range for all modes used for modal solution. For details, see Modal Damping Depending on Frequency.
Modal Damping Depending on Frequency
To use the individual value of modal damping for each mode,
z as a function of frequency.
function z = dampingFcn(omega)
Typically, the damping ratio function is a linear interpolation of frequency versus the modal damping parameter:
structuralDamping(modelD,"Zeta",@(omegaMode) ... interp1(omega,zeta,omegaMode))
omega is a vector of frequencies, and
zeta is a vector of corresponding damping ratio
Version HistoryIntroduced in R2018a
R2020a: Modal damping
For modal transient and modal frequency response models, specify damping as a percentage of critical damping for a selected vibration frequency.