软件简介
DigiSim是一个开源软件包,用于基于数字图像处理的仿真。这是一个使用Matlab开发的简单、用户友好且易于使用的软件。该代码的主要目的是基于CT、MRI或数码相机拍摄的图像,对异质材料的微观力学行为进行建模。FEM和DEM模型都可以使用DigiSim软件包生成。此外,它还可以用于提取材料的微观结构,如夹杂物、孔隙和裂纹。DigiSim的基本计算流程如图1所示,该软件包的简要程序摘要如下:
图1 DigiSim软件包流程图
相关理论分析和代码地址已经在本公 众 号发表,详情见:
图2 DigiSim 图标
数字图像准备
大多数数字图像是彩色或灰色图形,不能直接在DigiSim中使用。采用图像二值化处理来区分微观结构。对于一些有明显差异的图片,如图3a,可以直接使用阈值来获得二值图像。否则,需要一些复杂的过程或图像软件,如Photoshop(图3b)。建议在DigiSim中使用“JPG”文件格式。
图3 彩色图像的图像二值化
DigiSim运行——GUI模式
在获得二进制图像后,我们可以运行DigiSim来分析微观结构。软件包中提供了两种运行模式。一种是GUI模式,另一种是脚本模式。对于不熟悉MATLAB的用户,建议使用GUI模式。否则,首选脚本模式。
打开Digisim的文件夹,只需在命令窗口中写入Digisim(图4a),就会出现一个弹出窗口,如图4b所示。比例因子是一个像素的分辨率。基体和微观结构的网格尺寸是有限元法的种子距离。球体半径是DEM模型中粒子的大小。
图4 打开DigiSim界面
设置好5个参数后,我们可以点击“Pick An Image”选项,会出现一个选择窗口,我们可以选择二进制图片。图像将显示在左侧。
图5 选择图像
选择图片后,我们可以点击“位图矢量化”选项,名称将更改为“请等待”。过程完成后,名称将变为“Finish”,多边形几何体将出现在左侧窗口中。
图6 使用DigiSim进行位图矢量化
在获得微观结构的矢量几何结构后,我们可以点击“几何统计”选项。状态更改为“完成”后,将生成一个“xls”文件来记录几何图形信息。
图7 微观结构几何统计
然后我们可以点击“数值模型生成”选项。状态更改为“完成”后,将在同一文件夹中生成多个新文件。“dxf”文件是AutoCAD的多边形。“geo”和“py”是用于gmsh和ABAQUS的脚本。“p2dat”文件用于PFC。
图8 数值模型的生成
DigiSim运行——代码模式
脚本模型是熟悉MATLAB的用户的首选。一个典型的“.m”文件如下所示:
clear;clc;
tic;
addpath subroutine
% set the image
image_file='concrete.jpg'; % image_file='DigiSim.jpg';
fn=image_file(1:length(image_file)-4);
% Vectorization bitmap
error=1.4; scale=1/10;
[ P] = vectorization2(image_file,error);
P=geom_scale(P,scale);
figure(1);
geom_plot(P);
% Geometry information statistics
[parea,fraction]=geom_area(P);
mg=min_bound_box2(P);
mbr_plot(mg);
geo_file='geometry.xls';
geom_stas(geo_file,parea,fraction,mg,P);
geo_sta_plot(mg,parea);
% Geometry and mumerical model OutPut
dxf_file=[fn,'.dxf'];
dxf_file_write(P,dxf_file);
gmsh_file=[fn,'.geo'];
lc=5;lc2=10;
gmsh_file_write(P,gmsh_file,lc,lc2);
abaqus_file=[fn,'.py'];
write_abaqus_2d(abaqus_file,P);
pfc_file=[fn,'.p2dat'];
radius=1;
write_pfc_2d_group(P,radius,pfc_file);
if Gmsh is sucessfully installed
inp_file=[fn,'.inp'];
str=['system(''gmsh.exe ',gmsh_file, ' -o ',inp_file,' -2'');']; eval(str);
if Abaqus is sucessfully installed
str=['system(''abaqus cae noGUI=',abaqus_file,''');'];eval(str);
toc;
如果您想分析新的数字图像,只需将image_file更改为您的文件即可。GUI模式中的五个参数具有相应的变量名称“error”、“scale”、“lc”、“lc2”和“radius”。此外,如果Abaqus和Gmsh正确安装在计算机上,我们可以简单地取消第32、33和35行的注释。软件包中提供了两个示例,用户可以运行代码“example1.m”或“example2.m”来轻松演示基于数字图像处理的建模。
图9 使用Abaqus的有限元网格