尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

掌握Origin摩尔圆绘制:从应力状态到工程应用

掌握Origin摩尔圆绘制:从应力状态到工程应用 简介这是一份面向MATLAB使用者的摩尔圆绘制实践代码目标是解决用脚本快速画出两个摩尔圆并计算其公切线的问题适用于电磁场分析、力学计算或相关课程实验。资源共3个文件全部为m脚本压缩包仅2KB核心逻辑集中在主脚本中使用plot绘制圆轮廓通过圆方程求解交点再结合斜率截距等辅助函数完成切线方程计算代码短小精悍便于二次修改和参数替换。已有2124人学习下载适合刚接触MATLAB图形绘制或希望将几何计算与编程结合的读者。下载后可直接运行查看效果也可对照脚本理解圆的参数化表达、方程组求解及切线斜率推导过程为后续在Origin等软件中绘制同类图形或扩展到应力圆、场分布分析提供参考。1. 画摩尔圆的卡点不在圆在于你能否从应力状态倒推出圆心和半径很多人第一次用 Origin 画摩尔圆第一反应是去绘图工具栏里找一个“圆形”工具拖半天画出一个装饰圆结果和强度理论里的莫尔圆没有任何关系。工程里说的“画莫尔圆”并不是画一个几何圆而是把一组平面应力状态 σx、σy、τxy 转换成一条参数曲线让不同截面上的正应力和剪应力都落在同一个圆上。这也是“180420-画摩尔圆.zip”这类文件名的常见背景日期加项目名加一个 Origin 工程压缩包里面的核心不是已经画好的图而是一份能自动刷新图形的工作簿和模板。下面按“先算参数、再生成曲线、后验证图形”的顺序把在 Origin 里绘制摩尔圆的完整路径讲清楚适合需要用 Origin 出岩土报告、结构计算书和科研论文配图的工程师。2. 先算对圆心和半径在 Origin 里用列公式生成摩尔圆数据点摩尔圆的公式不复杂但大多数画图翻车都发生在公式前的符号定义上。在 Origin 里尤其如此如果你把圆心、半径直接手写成数字改一次应力状态就要重画一次如果把计算逻辑写进工作表列后续改 σx、σy 或 τxy图形会自动跟着变。所以我建议第一步不是在绘图窗口画线而是在工作簿里把圆心和半径用列公式算出来。2.1 圆心是平均正应力半径由偏应力和剪应力共同决定平面应力状态下设某斜截面的外法线方向与原 x 轴夹角为 θ该截面上的正应力 σθ 和剪应力 τθ 可以写成旋转坐标变换式σθ (σx σy)/2 (σx - σy)/2 · cos2θ τxy · sin2θτθ - (σx - σy)/2 · sin2θ τxy · cos2θ把这两式联立消去 θ就得到以 [(σxσy)/2, 0] 为圆心、以 R 为半径的参数方程圆心C ( (σx σy)/2 , 0 )半径R √( ((σx - σy)/2)² τxy² )圆心坐标里没有 τxy原因是剪应力在旋转过程中以正弦项参与坐标变换它的合力效果是让半径变大而不会平移圆心。反过来看两个退化情形如果 τxy 0半径退化为 |(σx-σy)/2|圆与 σ 轴的两个交点就是主应力如果 σx σy圆心落在 σx 处半径等于 |τxy|也就是纯剪应力状态。用这两种退化情况去检查自己的公式能第一时间发现符号写反或漏项的问题。2.2 用 Origin 的“设置列值”生成整圆采样点先说思路把角度 θ 作为参数列从 0° 到 360° 按固定步长排列然后用圆心加半径的参数式分别生成 X 坐标列和 Y 坐标列最后把这两列分别设置成 X 和 Y 属性画 Line Scatter 图。这样画出的圆与教科书里的莫尔圆定义一致而不是用 Origin 形状工具硬凑的几何图形。在 Origin 工作簿中先新建三列theta、X、Y。右键 theta 列标题选择“设置列值”填入等差序列// 给角度参数列填数0, 2, 4, ..., 360 col(theta) data(0, 360, 2)然后在“设置列值”对话框的变量区域里定义应力分量再分别给 X 列和 Y 列填表达式。下面这段不是一次性粘贴到某个窗口而是按变量区、X 列、Y 列三个位置分别填写// 变量区按你手上的应力状态改这里 sx 80; sy 20; txy 30; // X 列表达式圆心 半径*cosθ (sxsy)/2 sqrt(((sx-sy)/2)^2 txy^2) * cos(col(theta)*pi/180) // Y 列表达式圆心 半径*sinθ sqrt(((sx-sy)/2)^2 txy^2) * sin(col(theta)*pi/180)说明Origin 的三角函数默认按弧度计算所以 col(theta) 要乘 pi/180 转换成弧度。sqrt 计算半径cos 和 sin 分别生成圆上点的横纵坐标。变量区把 σx、σy、τxy 集中在一处后续修改数据时只改这三个数字图形自动重绘。生成之后选中 X、Y 两列右键选择“设为 X、Y”Origin 才能把它们识别成绘图坐标。2.3 用参数表校验主应力与圆心半径画图之前先做一个简单的手算校验能避免很多返工。以 σx80 MPa、σy20 MPa、τxy30 MPa 为例得到下表项目公式示例值圆心 σ_avg(σxσy)/250 MPa半径 R√(((σx-σy)/2)² τxy²)42.43 MPa最大主应力 σ1σ_avg R92.43 MPa最小主应力 σ2σ_avg - R7.57 MPa最大剪应力 τmaxR42.43 MPa主应力方向角 2θpatan2(τxy, (σx-σy)/2) 再取一半22.5°注意最后一行atan2 返回弧度Origin 里计算角度要补乘 180/pi。这个表格里 σ1 和 σ2 可以通过圆的左右端点直接核对横轴与圆的两个交点分别是 7.57 和 92.43与手算一致。如果画出来的圆不符合这个关系优先检查 X、Y 列公式里是否漏了 sqrt 或把正负号写反。3. 用 Origin 把摩尔圆画成报告图叠加数据、等比例轴与图例这一章进入实际操作。Origin 中摩尔圆通常需要表达四类信息圆本身、原应力状态对应的断裂点 A 和 B、圆心/半径线、以及主应力角度标注。把它们放进同一个图层时关键是区分每类数据的角色圆用线连接断裂点用独立散点圆心和半径线用带箭头的线段。3.1 用 Plot Setup 把圆、断裂点与圆心叠加到同一图层先画圆选中 theta、X、Y 三列点击菜单 Plot → Line Scatter得到一个基本圆。此时圆上点密且均匀图形接近光滑曲线。如果再想加断裂点 Aσx, τxy和 Bσy, -τxy不要重新画一张图而是把这两点放在工作簿右侧的两列里例如 Xp、Yp。然后右键图形左上角的图层图标打开 Layer Contents把 Xp、Yp 两列添加到当前图层并指定绘图类型为 Scatter。Xp,Yp,label 80,30,A 20,-30,B 50,0,圆心这段 CSV 可以直接存成文件拖进 Origin也可以复制到工作簿中。A 点对应原应力状态 (σx, τxy)B 点对应 (σy, -τxy)圆心用于绘制半径线。添加数据时注意在 Layer Contents 对话框里把新列的绘图类型改为 Scatter否则 Origin 会用默认的 Line 模式把 A、B、圆心三个点连成折线图面就乱了。绘制半径线时我一般单独生成两列一列是圆心坐标一列是 A 点坐标在 Plot Setup 里选择 Line 类型并关闭标记符号。半径线的作用是直观展示 σx 截面对应剪应力点的位置配合角度标注可以讲清楚主应力方向还能辅助说明该截面与最大主应力面之间的夹角。3.2 摩尔圆的坐标轴等比例与刻度小数位设置摩尔圆要准确表达角度关系X 轴和 Y 轴必须等比例否则圆会变成椭圆断裂点与圆心连线的倾角也会失真。设置方法是双击坐标轴打开 Axis 对话框在 Scale 选项卡里找到 Aspect Ratio设为 1:1也可以在图形的空白区域右键选择“坐标轴刻度”逐个修改范围。X 轴范围建议设为 σ_avg - R 到 σ_avg R再向外留 10% 左右的余量Y 轴范围建议设为 -R 到 R。如果图上数据点太多导致曲线呈多边形可以回到 theta 列把步长从 2° 改成 1°再重新计算 X、Y 列。若圆的两端不闭合检查 theta 列是否包含 360°只填到 358° 或 359°最后一小段圆弧就会缺失。一个稳妥做法是生成 0 到 360 且步长为 1 的序列并在绘图对象的线属性中开启闭合选项。3.3 整理 Origin 图例横向排列与标注角度当图上同时有圆、断裂点、半径线时纵向图例会占掉大量绘图区尤其放进论文双栏排版后更明显。我通常双击图例在属性对话框里把图例布局从一列改成多列一行这样图例横向排列保持图形本身的高度紧凑。不同版本的 Origin 菜单位置略有差异但核心参数是布置方向、行数和列数。坐标轴刻度的小数位也要设置好。默认情况下 Origin 可能显示一长串小数双击坐标轴刻度标签在 Tick Labels 选项卡里选择 Numeric Format把小数字数固定为 1 或 2 位。摩尔圆数据通常来自试验或有限元结果保留两位小数足够多余位数只会干扰图上角度标注的可读性。最后用 Text 工具在圆上标注 σ1、σ2 和圆心位置建议把字体统一为 Arial 或 Times New Roman字号与坐标轴标签一致这样输出到 PDF 或 EMF 时不会出现字体漂移。4. 别急着发图先验证 Origin 摩尔圆的符号、闭合和半径一致摩尔圆画出来不等于画对了。图形上看起来是圆不代表它反映的应力状态就是你要的那一组。这里最常见的三类问题分别是剪应力符号约定、坐标轴不等比导致的变形以及断裂点坐标与计算参数不一致。发图之前我习惯用三分钟做一次系统检查。4.1 绘制摩尔圆前必须敲定的剪应力正负号不同教材对 τxy 的正方向定义不同有的以顺时针为正有的以逆时针为正。这个问题在 Origin 里特别容易爆发因为坐标轴只有向上为正一个约定而摩尔圆要求剪应力轴的正方向与工程符号保持一致。常见的工程约定是剪应力使微元顺时针转动时为正此时断裂点 A 的坐标为 (σx, τxy)B 点为 (σy, -τxy)。如果按相反约定则 A 点应画到 (σx, -τxy)B 点画到 (σy, τxy)。很多时候图线仍然是个圆但断裂点会在直径两端互换位置后续标注的截面角度全部颠倒。因此画图前先在计算表里明确写下“τxy 为顺时针取正”再填列公式。4.2 用数值校验 Origin 图圆与断裂点是否一致等比例检查完成后做两步数值校验。第一步鼠标移动到圆与横轴的交点看数值是否等于 σ1 和 σ2。第二步把断裂点 A 的横坐标和 σx 对比纵坐标和 τxy 对比如果图上显示的数字与你输入值有偏差大概率是列公式中符号错误或使用了不同的剪应力方向。如果图线闭合性不好例如圆弧端点之间有细小缺口回到 theta 列的生成方式排查。用 data(0, 360, 2) 生成时0 和 360 是两个点折线会闭合但如果 theta 列被手动改过终值不是 360最后一段就会缺失。可以双击折线在线属性里勾选“闭合”但更稳妥的办法是让数据本身完整而不是靠绘图属性遮丑。4.3 用 Python 反算圆心半径和 Origin 图对照Origin 负责绘图我习惯用一段几十行的 Python 脚本做独立验算避免完全依赖图形判断。脚本里直接输入 σx、σy、τxy输出圆心、半径、主应力和断裂点位置再与 Origin 图上的标注比对import math # 原始应力分量单位 MPa sx, sy, txy 80.0, 20.0, 30.0 # 圆心和半径 center_x (sx sy) / 2.0 center_y 0.0 radius math.hypot((sx - sy) / 2.0, txy) # 主应力 sigma1 center_x radius sigma2 center_x - radius # 断裂点 A 和 B point_a (sx, txy) point_b (sy, -txy) # 核验断裂点到圆心的距离理论上应等于半径 dist_a math.hypot(point_a[0] - center_x, point_a[1] - center_y) print(f圆心: ({center_x:.3f}, {center_y:.3f})) print(f半径: {radius:.3f}) print(f主应力: σ1{sigma1:.3f}, σ2{sigma2:.3f}) print(fA点距圆心: {dist_a:.3f}半径: {radius:.3f})说明math.hypot 比 sqrt(x² y²) 更稳能避免大数相减带来的精度损失。dist_a 应当等于 radius如果不相等说明断裂点 A 的坐标与圆心半径不是同一组参数。这个脚本本身不绘图只做数值反算作为 Origin 图形的外部校验尤其适合在批量处理多组应力数据时使用表格里改一行数值脚本快速跑一遍比肉眼盯屏幕上两条曲线有没有重合要可靠得多。5. 把 Origin 摩尔圆模板和原始数据包进同一个时间戳 zip回到“180420-画摩尔圆.zip”这类文件名。工程交付时压缩包里真正值钱的是可复用的绘图模板而不是那张静态 PNG。Origin 的项目文件可以嵌入数据、模板和主题但如果不按固定目录组织换一台电脑打开后经常出现找不到文件、坐标轴样式丢失、字体重映射等问题。下面是我常采用的文件组织方式按时间戳建顶层目录主题相关文件平铺保证双击即用。5.1 用日期和项目名给 Origin 工程压缩包定目录建议目录结构如下180420-画摩尔圆/ ├── 180420-画摩尔圆.opju ├── data/ │ └── mohr_input.csv ├── template/ │ ├── mohr_circle.otwu │ └── mohr_axis.oth ├── output/ │ ├── mohr_circle_1.png │ └── mohr_circle_1.pdf └── README.txt这个结构的要点是主项目放在根目录CSV 数据存放在 data 子目录模板和主题单独放输出图都进 output。Origin 项目保存时对数据文件路径有记忆功能如果项目文件与 data 目录的相对位置固定不变换机器后可以直接用相对路径恢复数据。用日期压缩包命名时我一般把原始试验数据也复制一份进 data避免项目文件自带的数据表被误改后无法追溯。5.2 把模板写进压缩包打开即用的摩尔圆参数区模板建议保存成 .otwu 工作簿模板文件而不只是保存整个项目。这样以后新建一个试验项目只需导入模板把 σx、σy、τxy 三个变量区域替换成新数值。把 README.txt 写清楚标注“应力单位均为 MPa”“剪应力顺时针为正”再写明三个变量在工作簿中的具体行号和列名后续接手的人不用从头猜参数含义。最后收一个实用技巧在新版 Origin 的“另存为模板”对话框里勾选嵌入数据选项模板会记住最后一次输入的应力状态和坐标系设置。以后再拿到新试验数据直接在模板的数据表里改三个输入值摩尔圆和所有角度标注会自动更新。真正上会或投稿时再从 template 目录拖出同一个主题文件批量导出 PDF保证整套图风格一致。本文还有配套的精品资源点击获取
返回列表