概述
comsol与matlab连接使用学习笔记 3 材料随机分布对应力影响
前言
在结构力学中,常常假定材料是均质的,单一域内使用相同材料属性来做相应的结构分析。然而,实际材料很难做到完全均质。在这个案例中,将考察对一个平板简单拉伸的案例,其域内杨氏模量满足正态分布,研究分布的标准差对最大应力的影响。
这个案例中,使用matlab定义一个产生随机分布的外部函数,并且用matlab对标准差进行扫描。
产生随机分布的matlab函数
该函数将定义域内材料杨氏模量随机分布,自变量有点坐标序列 x,杨氏模量分布期望值 E 和标准差 Fe_sigma 。这里用钢的数值,E = 2e11 Pa,泊松比为常数0.3. 函数的返回值是坐标序列对应的杨氏模量序列。
function out = randn_E(x, Fe_E, Fe_sigma)
out = Fe_E + Fe_sigma.*randn(size(x));
保存为 randn_E.m 文件,并与 comsol 模型的.mph文件,放在同一路径下。
comsol 模型设置
打开comsol multiPhysics进行建模
新建:模型向导
选择空间维度:3D
选择物理场:结构力学,稳态
参数定义:
Fe_E 2e11[Pa]
Fe_sigma 1e10[Pa]
width: 0.01[m]
length: 0.08[m]
tbb: 0.005[m]
全局定义-函数-MATLAB:
函数名称:randn_E
变元:x,fe_E,fe_sigma
保存 ctrl+s 为.mph文件,与.m文件相同路径
绘图参数:上下限设置,x为0~1,fe_E为2e11至2e11, fe_sigma为1e10到1e10.
导数设置里,函数对所有变元的偏导数均设为0
点击绘制,将看到分布曲线
定义几何:
几何1–长方体:
材料设置:
新建空白材料
泊松比:0,3
杨氏模量:rand_E(x,Fe_E,Fe_sigma)
杨氏模量会标志为黄色,因为定义的时候没有单位,可以不管。
物理场设置:
一端设置边界载荷5e8Pa,一端辊支承,并定义一角点固定约束,一角点不旋转.
网格:极细化
试算:点击研究1-计算,可以得到下图,显示出材料不均匀引起的应变不均匀。
进行参数扫面的MATLAB函数
接下来,将研究Fe_sigma的取值对最大冯米塞斯应力的影响。在comsol with comsol 中调用matlab函数,实现这个功能。该函数为:
function sigma_scan(model,filepath)
filename = fullfile(filepath, 'results.txt');
fid = fopen(filename, 'wt');
fprintf(fid,'***** run parametric study *****n');
fprintf(fid, 'Fe_sigma [Pa]tMaxVon [Pa]n');
model.hist.disable;
for Fe_sigma = [0 1e8 1e9 1e10 2e10 3e10]
model.param.set('Fe_sigma', Fe_sigma);
fprintf(fid, [num2str(Fe_sigma),'t']);
model.sol('sol1').run;
MaxVon = mphmax(model,'solid.mises',3,'selection',1);
fprintf(fid, [num2str(MaxVon),'n']);
modelName = fullfile(filepath, ['plate_','sigma=',num2str(Fe_sigma),'.mph']);
mphsave(model,modelName);
end
fclose(fid);
运行:
关闭comsol MultiPhysics
在 Matlab中,
model = mphopen('untitled')
上述命令加载模型
sigma_scan(model,'C:UsersASUSDesktopcomsol_surgeryyoungs modulus on stress')
上述命令执行扫描。
结果
可见,材料不均匀可引起接近两倍于载荷的应力。
模型地址
点此跳转
最后
以上就是阳光皮卡丘为你收集整理的comsol与matlab连接使用学习笔记 3 matlab外部函数与参数化扫描的综合应用的全部内容,希望文章能够帮你解决comsol与matlab连接使用学习笔记 3 matlab外部函数与参数化扫描的综合应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复