Code to plot von mises and tresca yield conditions
조회 수: 53 (최근 30일)
이전 댓글 표시
Hello,
I am trying to figure out how to write a code to plot Von mises and Tresca yield condions at plane stress state. I am having trouble putting it all together in one code. Your help is much appreciated!!
댓글 수: 6
Stephan
2019년 11월 16일
I suspect the question refers to mechanical stress.
Sharlin Shahid
2021년 2월 10일
You can check how to plot von Mises and Hill48 yield surfaces to compare with experiments in this video:
https://youtu.be/JiCorn4u6TY
답변 (1개)
Unai San Miguel
2019년 12월 17일
This plot can be generated
- with some analytic work, by getting the ellipse in parametric equations, generating points along that curve an plotting them with plot, and the same for the Tresca criterion, which is just a bunch of straight lines, or
- with brute force, defining functions for the left side of the equations and using contour to plot a single contour.
The latter approach has the advantage that one can plot any implicit function.
% Von Mises, s1^2 - s1s2 + s2^2 = Sy^2
% Non-dimensional variables x = s1 / Sy, y = s2 / Sy
vmc = @(x, y) x.^2 - x.*y + y.^2;
trc = @(x, y) 0.5 * max(cat(3, abs(x - y), abs(x), abs(y)), [], 3);
xx = linspace(-2, 2, 101);
yy = linspace(-2, 2, 101);
[X, Y] = ndgrid(xx, yy);
contour(X, Y, vmc(X, Y), [1 1])
hold on
contour(X, Y, trc(X, Y), [1 1]/2)
Note that the plot of the Tresca criterion is not going to be precise enough with this approach...
The trick of using contour to plot a single contour is in the documentation for the contour function, and the syntax for cat and |max| in their doc pages too.
댓글 수: 2
Sahil Bharti
2021년 1월 20일
Hi,
contour(X, Y, vmc(X, Y), [1 1])
What is the use of [1 1 ], in this expression ?
Thanks
Unai San Miguel
2021년 1월 21일
It is the way to plot only the contour with value 1, See this in the documentation.
참고 항목
카테고리
Help Center 및 File Exchange에서 Contour Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!