用MATLAB绘制三向应力圆

[复制链接]
发表于 2026-2-26 20:28:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. % 定义主应力值  
  2. sigma1 = 100; % MPa  
  3. sigma2 = 50;  % MPa  
  4. sigma3 = -33;   % MPa  
  5. sigma_m1=(sigma1 + sigma3)/2;
  6. sigma_m2=(sigma1 + sigma2)/2;
  7. sigma_m3=(sigma2 + sigma3)/2;
  8. % 计算半径  
  9. r1 = (sigma1 - sigma3) / 2;  
  10. r2 = (sigma1 - sigma2) / 2;  
  11. r3 = (sigma2 - sigma3) / 2;  
  12.   
  13. % 角度范围(从0到2π)  
  14. theta = linspace(0, 2*pi, 1000);  
  15.   
  16. % 计算圆上的点(以sigma_m为中心)  
  17. % 第一个圆  
  18. x1 = sigma_m1 + r1 * cos(theta);  
  19. y1 = r1 * sin(theta);  
  20.   
  21. % 第二个圆  
  22. x2 = sigma_m2 + r2 * cos(theta);  
  23. y2 = r2 * sin(theta);  
  24.   
  25. % 第三个圆  
  26. x3 = sigma_m3 + r3 * cos(theta);  
  27. y3 = r3 * sin(theta);  
  28.   
  29. % 绘制应力圆  
  30. figure;  
  31. hold on;  
  32. plot(x1, y1, 'b', 'LineWidth', 2); % 蓝色表示第一个圆  
  33. plot(x2, y2, 'r', 'LineWidth', 2); % 红色表示第二个圆  
  34. plot(x3, y3, 'g', 'LineWidth', 2); % 绿色表示第三个圆  
  35.   
  36. % 添加主应力点   
  37. plot(sigma1, 0, 'kx', 'MarkerSize', 10, 'MarkerFaceColor', 'k'); % σ1点  
  38. plot(sigma2, 0, 'kx', 'MarkerSize', 10, 'MarkerFaceColor', 'k'); % σ2点  
  39. plot(sigma3, 0, 'kx', 'MarkerSize', 10, 'MarkerFaceColor', 'k');
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表