以下为《关于程序需要实现的功能》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
关于程序需要实现的功能
读取有限元软件ABAQUS的输出数据,得到试样的最大主应力、体积、J积分数据
使用交点标定法标定m值
建立韧性换算模型
进行韧性换算模型的准确性验证,用穷举法最终确定m和韧性换算模型
将得到的结果输出
共性注意事项
最好的结果是使用python编写程序,接口对接abaqus,因为有一个内置的PDE解释器,可以直接读取ODB文件,方便读取或者处理。如果和我的程序一样把数据先用别的方法输出到文件中再读取就会困难很多。如何用python读取数据可以参照附录的资料。
插值。部分计算过程需要使用插值函数,我没有写明,但编写到那一部分自然会发现部分计算需要插值。
在程序完全完成后,实现图形界面,使得所有的输入参数都可以通过图形界面输入。此外需要一个配置文件,确保输入结果可以保存,而不用修改代码才能实现永久的修改参数。
在图形界面中,就需要实现输出一定的计算结果,实现对结果的初步分析。
将需要的结果输出到数据文件,可以参考附录的文件。
几乎所有的数据输入,包括以下参数:
材料参数
筛选用的最大主应力:一般设定为屈服强度的1-2倍,需要自行摸索
杨氏模量:即材料的杨氏模量
不同约束度试样的实验测得的断裂韧性值:需要每个试样对应一个断裂韧性值
修正单元体积:威布尔应力公式中的体积参量,不影响最终结果,在这里取0.000125
其它参量
标定范围的最小m值:可以取大于0的任意值,建议取5
标定范围的最大m值:需要大于最小m值,建议先取50,根据计算结果适当减小这一取值
m取值的步长:建议取0.1,但也可自行决定,便于准确的确定m值
手动设定一个m值:如果程序的标定方法出现问题,需要手动设定一个m值得到韧性换算模型
设定输入文件夹:用于读取文件中的数据,将文件放入同一个文件夹中方便管理
设定输出文件:将重要的结果数据输出到xls或其它易于处理的文件,便于保存模拟结果和方便之后的数据处理
输出断裂韧性曲线时偏离实验值的百分比:分为最小值和最大值两个参数,最小值没有限制,至少低于实验值的80%,最大值建议超过实验测得的断裂韧性的120%。这两个参数的意义会在程序流程中详细解释
筛选参数:对于三维有限元模型,每一帧都会有多个J积分值,沿着裂纹尖端分布,大小各不相同。如何取值直接影响算得的J积分的结果。目前存在三种取值方法,分别为全取平均值、只取最大值,取大于最大值的一定百分比的值。首先将J转化为K,然后设定一个可变参数,将比所有【最大值*参数】大的值求平均为最佳的方法,能方便修改,兼顾多种取值方法,参数的可变范围为0-1。
最为重要的:读取数据文件,包括每个试样每个单元的单元体积、不同帧的最大主应力、J积分值(之后转化为K值),之后详细讲述
数据处理流程
读取有限元结果
读取文件中的每个模型的最大主应力、体积、J积分数据,现假设只读取一个模型中的数据,读取多个模型的数据仅为简单重复。其中对于单一单元来说,体积数据保持不变。
有限元模型中一般有数万个单元,每次模拟的step-1分析步中有100+帧(仅以我的模型为例,但其它模型整体也是这个数量级)。每个单元在每一帧处都有一个最大主应力数据和一个体积数据,但考虑到体积不变,所以所有体积数据只需要提取其中的1帧就足够使用。以我的模型为例,假设有30000单元,100帧,则每个模型需要提取的有***最大主应力数据和30000体积数据。J积分数据比较特殊,每帧有21个数据且不同帧数各不相同,则总共有2100个J积分数据需要读取。
在完成读取之后,接下来进行数据的处理。
首先处理J积分数据。需要用 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 穷举并自动或者手动得到最佳的m值和韧性换算模型,这才是程序最终的输出结果。这个流程相当于迭代求解,之前的步骤只是一次迭代过程。以什么标准为最佳需要更多的探索。
输出数据
需要输出的数据包括:
计算输出的时刻;m和威布尔应力的关系曲线、曲线之间的交点;计算时设置的参量;断裂韧性与威布尔应力的关系曲线;建立的韧性换算模型与实验值的偏离程度;其它可能有必要输出的数据。
具体可以参照输出结果文件
我的结果参照
附有用的资料,分别为:
我的软著相关资料,包括源代码和程序的使用说明。
我的部分输出结果文件
手动输出的J积分文件、最大主应力文件、体积文件
其它,如python读取数据、处理数据的相关资料
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《关于程序需要实现的功能》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。