PDE toolbox: unexpected result of static structural model for stretchy sheet
조회 수: 1(최근 30일)
표시 이전 댓글
I'm trying to model spatial deformation of a triangular stretchy sheet of material (think stretchy fabric or rubber). The top corner is fixed in place, while the bottom two corners at pulled with a specified force as shown below. Imagine holding one bottom vertex in each hand and pulling to make the sheet taut. I'd like to solve for the final shape of the sheet.
The results seems completely wrong, which means I am doing something completely wrong. I expect to see displacement of the x coordinate (result.Displacement.ux) change from negative to positive as x increases. Instead, x displacement mostly increases with y. If I decrease the mesh size the result changes apparently randomly. Any hint what I am doing wrong? Code below.

Code:
%% Generate x,y coordinates of edges of a triangle
a.XY1 = [0 0; 1.5 0; .75 3]; % (m)
% Create geometry in pde toolbox form
gd = [2; size(a.XY1,1); a.XY1(:,1); a.XY1(:,2)];
sf = 'P1';
dl = decsg(gd,sf,double(sf(:)));
%% Create model and apply geometry
model = createpde('Structural','static-planestrain');
geometryFromEdges(model, dl);
%% Add structural properties
structuralProperties(model,'YoungsModulus',1e9,'PoissonsRatio',.4); % (Pa) (unitless)
% Add boundary conditions
structuralBC(model, 'Vertex', 3,'Constraint','fixed');
% Add load
f = 1e3; % (N)
structuralBoundaryLoad(model,'Vertex',1,'Force',[-1 -1]*f);
structuralBoundaryLoad(model,'Vertex',2,'Force',[1 -1]*f);
% Add mesh
generateMesh(model);
% Solve
result = solve(model)
fprintf('Max x: %.2g, max y: %.2g\n',max(result.Displacement.ux),max(result.Displacement.uy))
%% Plot stuff
figure;
subplot(221)
pdegplot(dl,'VertexLabels','on') % Plot PDE geometry
title('Geometry'); axis off
subplot(222);
pdeplot(model)
title('Mesh')
subplot(223)
pdeplot(model,'XYData',result.Displacement.ux)
title('x-displacement')
axis equal
subplot(224)
pdeplot(model,'XYData',result.Displacement.uy)
title('y-displacement')
colormap('jet')
axis equal
댓글 수: 0
답변(0개)
참고 항목
범주
Find more on General PDEs in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!