Interpolate stress at arbitrary spatial locations
returns the interpolated stress values at the 2-D points specified in
intrpStress
= interpolateStress(structuralresults
,xq
,yq
)xq
and yq
. For transient and
frequency-response structural models, interpolateStress
interpolates stress for all time- or frequency-steps, respectively.
uses the 3-D points specified in intrpStress
= interpolateStress(structuralresults
,xq
,yq
,zq
)xq
, yq
, and
zq
.
uses the points specified in intrpStress
= interpolateStress(structuralresults
,querypoints
)querypoints
.
Create a structural analysis model for a plane-strain problem.
structuralmodel = createpde('structural','static-planestrain');
Include the square geometry in the model. Plot the geometry.
geometryFromEdges(structuralmodel,@squareg); pdegplot(structuralmodel,'EdgeLabels','on') axis equal
Specify the Young's modulus and Poisson's ratio.
structuralProperties(structuralmodel,'PoissonsRatio',0.3, ... 'YoungsModulus',210E3);
Specify the x-component of the enforced displacement for edge 1.
structuralBC(structuralmodel,'XDisplacement',0.001,'Edge',1);
Specify that edge 3 is a fixed boundary.
structuralBC(structuralmodel,'Constraint','fixed','Edge',3);
Generate a mesh and solve the problem.
generateMesh(structuralmodel); structuralresults = solve(structuralmodel);
Create a grid and interpolate the x- and y-components of the normal stress to the grid.
v = linspace(-1,1,151); [X,Y] = meshgrid(v); intrpStress = interpolateStress(structuralresults,X,Y);
Reshape the x-component of the normal stress to the shape of the grid and plot it.
sxx = reshape(intrpStress.sxx,size(X));
px = pcolor(X,Y,sxx);
px.EdgeColor='none';
colorbar
Reshape the y-component of the normal stress to the shape of the grid and plot it.
syy = reshape(intrpStress.syy,size(Y));
figure
py = pcolor(X,Y,syy);
py.EdgeColor='none';
colorbar
Solve a static structural model representing a bimetallic cable under tension, and interpolate stress on a cross-section of the cable.
Create a static structural model for solving a solid (3-D) problem.
structuralmodel = createpde('structural','static-solid');
Create the geometry and include it in the model. Plot the geometry.
gm = multicylinder([0.01,0.015],0.05); structuralmodel.Geometry = gm; pdegplot(structuralmodel,'FaceLabels','on','CellLabels','on','FaceAlpha',0.5)
Specify the Young's modulus and Poisson's ratio for each metal.
structuralProperties(structuralmodel,'Cell',1,'YoungsModulus',110E9, ... 'PoissonsRatio',0.28); structuralProperties(structuralmodel,'Cell',2,'YoungsModulus',210E9, ... 'PoissonsRatio',0.3);
Specify that faces 1 and 4 are fixed boundaries.
structuralBC(structuralmodel,'Face',[1,4],'Constraint','fixed');
Specify the surface traction for faces 2 and 5.
structuralBoundaryLoad(structuralmodel,'Face',[2,5],'SurfaceTraction',[0;0;100]);
Generate a mesh and solve the problem.
generateMesh(structuralmodel); structuralresults = solve(structuralmodel)
structuralresults = StaticStructuralResults with properties: Displacement: [1x1 struct] Strain: [1x1 struct] Stress: [1x1 struct] VonMisesStress: [22281x1 double] Mesh: [1x1 FEMesh]
Define coordinates of a midspan cross-section of the cable.
[X,Y] = meshgrid(linspace(-0.015,0.015,50)); Z = ones(size(X))*0.025;
Interpolate the stress and plot the result.
intrpStress = interpolateStress(structuralresults,X,Y,Z); surf(X,Y,reshape(intrpStress.szz,size(X)))
Alternatively, you can specify the grid by using a matrix of query points.
querypoints = [X(:),Y(:),Z(:)]'; intrpStress = interpolateStress(structuralresults,querypoints); surf(X,Y,reshape(intrpStress.szz,size(X)))
Interpolate the stress at the geometric center of a beam under a harmonic excitation.
Create a transient dynamic model for a 3-D problem.
structuralmodel = createpde('structural','transient-solid');
Create a geometry and include it in the model. Plot the geometry.
gm = multicuboid(0.06,0.005,0.01); structuralmodel.Geometry = gm; pdegplot(structuralmodel,'FaceLabels','on','FaceAlpha',0.5) view(50,20)
Specify the Young's modulus, Poisson's ratio, and mass density of the material.
structuralProperties(structuralmodel,'YoungsModulus',210E9, ... 'PoissonsRatio',0.3, ... 'MassDensity',7800);
Fix one end of the beam.
structuralBC(structuralmodel,'Face',5,'Constraint','fixed');
Apply a sinusoidal displacement along the y
-direction on the end opposite the fixed end of the beam.
structuralBC(structuralmodel,'Face',3,'YDisplacement',1E-4,'Frequency',50);
Generate a mesh.
generateMesh(structuralmodel,'Hmax',0.01);
Specify the zero initial displacement and velocity.
structuralIC(structuralmodel,'Displacement',[0;0;0],'Velocity',[0;0;0]);
Solve the model.
tlist = 0:0.002:0.2; structuralresults = solve(structuralmodel,tlist);
Interpolate the stress at the geometric center of the beam.
coordsMidSpan = [0;0;0.005]; intrpStress = interpolateStress(structuralresults,coordsMidSpan);
Plot the normal stress at the geometric center of the beam.
figure
plot(structuralresults.SolutionTimes,intrpStress.sxx)
title('X-Direction Normal Stress at Beam Center')
structuralresults
— Solution of structural analysis problemStaticStructuralResults
object | TransientStructuralResults
object | FrequencyStructuralResults
objectSolution of the structural analysis problem, specified as a StaticStructuralResults
, TransientStructuralResults
, or FrequencyStructuralResults
object. Create
structuralresults
by using the solve
function.
Example: structuralresults =
solve(structuralmodel)
xq
— x-coordinate query pointsx-coordinate query points, specified as a real array.
interpolateStress
evaluates the stresses at the 2-D
coordinate points [xq(i),yq(i)]
or at the 3-D coordinate
points [xq(i),yq(i),zq(i)]
. Therefore,
xq
, yq
, and (if present)
zq
must have the same number of entries.
interpolateStress
converts the query points to column
vectors xq(:)
, yq(:)
, and (if present)
zq(:)
. It returns stresses as a structure array with
fields of the same size as these column vectors. To ensure that the
dimensions of the returned solution are consistent with the dimensions of
the original query points, use the reshape
function. For
example, use intrpStress =
reshape(intrpStress.sxx,size(xq))
.
Data Types: double
yq
— y-coordinate query pointsy-coordinate query points, specified as a real array.
interpolateStress
evaluates the stresses at the 2-D
coordinate points [xq(i),yq(i)]
or at the 3-D coordinate
points [xq(i),yq(i),zq(i)]
. Therefore,
xq
, yq
, and (if present)
zq
must have the same number of entries.
Internally, interpolateStress
converts the query points
to the column vector yq(:)
.
Data Types: double
zq
— z-coordinate query pointsz-coordinate query points, specified as a real array.
interpolateStress
evaluates the stresses at the 3-D
coordinate points [xq(i),yq(i),zq(i)]
. Therefore,
xq
, yq
, and
zq
must have the same number of entries. Internally,
interpolateStress
converts the query points to the
column vector zq(:)
.
Data Types: double
querypoints
— Query pointsQuery points, specified as a real matrix with either two rows for 2-D
geometry or three rows for 3-D geometry. interpolateStress
evaluates stresses at the coordinate points
querypoints(:,i)
, so each column of
querypoints
contains exactly one 2-D or 3-D query
point.
Example: For 2-D geometry, querypoints = [0.5,0.5,0.75,0.75;
1,2,0,0.5]
Data Types: double
intrpStress
— Stresses at query pointsStresses at the query points, returned as a structure array with fields
representing spatial components of stress at the query points. For query
points that are outside the geometry, intrpStress
returns
NaN
.
StaticStructuralResults
| StructuralModel
| evaluatePrincipalStrain
| evaluatePrincipalStress
| evaluateReaction
| interpolateDisplacement
| interpolateStrain
| interpolateVonMisesStress
A modified version of this example exists on your system. Do you want to open this version instead?
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.