MATLAB绘制Drucker 屈服面
时间: 2023-12-10 08:39:31 浏览: 164
使用MATLAB绘图
Drucker屈服面描述的是材料的非线性应力-应变关系。MATLAB中绘制Drucker屈服面可以采用以下步骤:
1. 定义应力状态:在三维空间中定义应力状态的三个分量σ1、σ2和σ3,可以采用meshgrid函数生成网格点:
```
smax = 1.5; % 最大应力
smin = -0.5; % 最小应力
n = 50; % 网格点数
[s1,s2,s3] = meshgrid(linspace(smin,smax,n));
```
2. 定义材料参数:Drucker屈服面的方程包含材料的本构参数,需要先定义这些参数:
```
c = 0.3; % 常数项
k = 0.15; % 惯性项
m = 0.25; % 硬化指数
```
3. 计算屈服面方程:使用Drucker屈服面的方程计算每个网格点的应变量ε:
```
tau = sqrt((s1-s2).^2 + (s2-s3).^2 + (s3-s1).^2); % 剪应力
sy = c + k*tau.^m; % 屈服应力
eps = tau./sy; % 应变量
```
4. 绘制Drucker屈服面:使用surf函数绘制Drucker屈服面,其中X、Y、Z分别对应σ1、σ2、σ3,C表示颜色矩阵,这里取ε的值:
```
surf(s1,s2,s3,eps,'EdgeColor','none');
xlabel('\sigma_1');
ylabel('\sigma_2');
zlabel('\sigma_3');
colorbar;
```
完整代码如下:
```
smax = 1.5; % 最大应力
smin = -0.5; % 最小应力
n = 50; % 网格点数
[s1,s2,s3] = meshgrid(linspace(smin,smax,n));
c = 0.3; % 常数项
k = 0.15; % 惯性项
m = 0.25; % 硬化指数
tau = sqrt((s1-s2).^2 + (s2-s3).^2 + (s3-s1).^2); % 剪应力
sy = c + k*tau.^m; % 屈服应力
eps = tau./sy; % 应变量
surf(s1,s2,s3,eps,'EdgeColor','none');
xlabel('\sigma_1');
ylabel('\sigma_2');
zlabel('\sigma_3');
colorbar;
```
阅读全文