一种开源有限元求解及优化分析方法与流程

文档序号:13031414阅读:854来源:国知局
一种开源有限元求解及优化分析方法与流程

本发明属于机械设计领域,一种开源有限元求解及优化分析方法。



背景技术:

有限元法是机械系统结构分析中应用最广泛的数值分析法,在国防和经济建设领域的大规模科学计算中占据重要的地位。随着商业有限元软件的不断发展,功能逐渐趋于完善,有限元计算为复杂数值分析提供了有力的支持,提高了计算速度和工作效率,促进了有限元在大型结构工程中的应用。

现代有限元分析,问题规模往往非常大,其结构又非常复杂,而传统计算机受到cpu计算速度和存储空间的限制,在传统计算机上使用有限元软件解决大型工程问题往往可能导致其计算时间非常漫长甚至无法完成计算分析。



技术实现要素:

本发明旨在至少解决上述技术问题之一。

为此,本发明的目的在于提出一种开源有限元求解及优化分析方法,解决了生产设计过程中对传统商业软件的依赖,实现了高效的产品定制化优化。

为了实现上述目的,本发明的实施例公开了一种开源有限元求解及优化分析方法,包括以下步骤:s1:将所需优化实体简化和抽象并生成简化后实体的第一代码;s2:建立开源有限元总体环境,给定边界条件,通过调用开源有限元cae,实现所述第一代码的建模并生成通用的inp文本文件;s3:通过对文本文件分区检测,提取其中的参数,按求解器要求规整所述inp文本文件,将所述inp文本文件转换成可变参数的标准生成求解器输入文件;s4:对节点应力和位移进行计算,并将结果写入结果文件,同时对应力和位移云图进行显示;s5:将所述结果文件中参数和预期优化参数进行比较,判断是否满足优化条件,如满足,则写出并显示结果文件;如不满足,则更改inp文本文件参数进行循环迭代,直到满足所述优化条件为止。

进一步地,所述第一代码为python代码。

进一步地,在步骤s4中,调用开源求解代码求解器对节点应力和位移进行计算。

进一步地,在步骤s4中,通过调用开源绘图代码对应力和位移云图进行显示。

根据本发明实施例的开源有限元求解及优化分析方法与现有技术相比具有以下优点:

(1)通过python语言建立的参数化模型,通用性强,适用于多种前处理软件,便于储存和后期编译处理。变换摩擦副尺度进行研究,有助于加深对精确边界条件的认识,能更清楚地明确边界条件变换时的摩擦机理。

(2)开源有限元分析系统的开发,在一定程度上降低了企业对传统商用cae及fea软件的依赖,节约了产品设计及优化成本。

(3)开源有限元优化设计平台在专业化功能实现、参数优化设计、系统平台移植及并行处理计算效率方面,相比传统商业软件具有更大的优势。

(4)开源求解分析方法可以为产品量身打造高效、专业的优化平台,将有限元计算及优化设计推向新的高度。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明实施例的开源有限元求解及优化分析方法流程图;

图2是本发明一个实施例的简化后悬臂梁示意图;

图3是本发明一个实施例的开源优化设计平台总体布局;

图4是本发明一个实施例的计算结果及优化区域;

图5是本发明一个实施例的优化后的悬臂梁截面及应力云图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

以下结合附图描述本发明。

图1是本发明实施例的开源有限元求解及优化分析方法的流程图。如图1所示,本发明实施例的开源有限元求解及优化分析方法,包括以下步骤:

s1:将所需优化实体简化和抽象并生成简化后实体的第一代码。

在本发明的一个实施例中,所述第一代码为python代码。

具体地,确定需要优化设计的实体对象,合理简化抽象,原则应为不影响或尽可能少的影响所优化结构体的优化目标,针对简化后的实体,编写python代码,通过反复编译调试,形成简练、精确的python代码,该python代码也会成为后期优化效率评价的一个指标。代码中的参数要进行分类,将后期优化需要的参数分类定义,便于后期的检索与修改。

s2:建立开源有限元总体环境,给定边界条件,通过调用开源有限元cae,实现所述第一代码的建模并生成通用的inp文本文件。

具体地,通过visostudioc#平台建立开源有限元优化设计总体环境,注意保持对system中关键命名空间的引用。优化平台名称为optimumdesign,定义其“类”为平台表格,其中关键类变量包括,字符串节点应力,双精度节点应力(二维数组),双精度米塞斯应力、应变,字符串米塞斯应力(应变),双精度最大值、弹性模量,所需输入的字符包括弹性模量、泊松比、材料属性参数和边界条件参数。构建优化分析方法软件界面,包含参数处理区,计算及显示区,结果及优化区三块区域,调用开源有限元前处理程序执行步骤一生成的python源代码,生成求解器input(输入)文本文件,该一系列过程在后台运行。

s2:建立开源有限元总体环境,给定边界条件,通过调用开源有限元cae,实现所述第一代码的建模并生成通用的inp文本文件。

具体地,在c#优化设计平台中的参数处理区中输入参数和边界条件,通过c#语言对文本文件分区检测,提取其中的参数。通过优化设计面板中py(python)代码生成、inp生成、inp导入、ccxinput(求解器标准输入文件)按钮,实现参数化模型和边界条件通过python代码向标准求解器输入文件的转化。其中inp生成过程需要调用外部开源软件前处理系统,通过改变的输入文本框内容,inp生成、转换过程将设置的参数何边界条件写入求解器标准输入文件中,将其转换成可变参数的标准input文件。

s4:对节点应力和位移进行计算,并将结果写入结果文件,同时对应力和位移云图进行显示。

在本发明的一个实施例中,调用开源求解代码求解器对节点应力和位移进行计算。通过调用开源绘图代码对应力和位移云图进行显示。

具体地,打开c#优化设计平台,面板中的求解区域包含ccx求解按钮,按钮将调用开源求解器对步骤三生成的求解器标准input文件进行有限元求解,点击求解按钮将出现详细的求解和迭代过程。求解过程完成后,结果文件将写入工作目录的.frd(扩展名)文本文件中。求解将根据设置对节点应力、位移进行结果输出。优化设计平台面板求解区还包含cgx后处理按钮,通过调用开源后处理程序进行计算结果的图形化显示,显示内容包括静态的形变、云图和等高线,以及动态的固有频率、振型。

s5:将所述结果文件中参数和预期优化参数进行比较,判断是否满足优化条件,如满足,则写出并显示结果文件;如不满足,则更改inp文本文件参数进行循环迭代,直到满足所述优化条件为止。

具体地,开源求解计算完成后,c#优化设计平台同时对计算结果进行显示和优化,c#优化设计平台包含结果及优化区域,点击该区域的结果分析,即可将最大、最小及平均应力显示在界面中。该过程通过调用结果文件,将节点应力结果导入到c#函数的数组中,再通过计算得到计算结果。其中优化模块包含对几何尺寸、材料特性的优化,可以设定加载力、截面宽度、长度等优化目标,优化计算过程首先将结果与优化目标比较,如果不满足目标,即改变优化参数进行循环迭代,直到满足优化目标后结束,结束后输出迭代次数以及满足优化目标时的参数和边界条件。

为使本领域人员进一步理解本发明,将通过以下实施例进行进一步说明。

s1:将所需优化实体简化、抽象,形成悬臂梁的几何模型(如图2),生成简化后实体python代码,即形成所需对象的参数化模型。其中python代码及注释如下:

s2:建立c#开源有限元总体环境,给定边界条件,通过调用开源有限元cae(前处理),实现python代码的建模并生成通用的inp文本文件。

通过visostudioc#平台建立开源有限元优化设计总体环境,其中引用空间为:

usingsystem;

usingsystem.collections.generic;

usingsystem.componentmodel;

usingsystem.data;

usingsystem.drawing;

usingsystem.linq;

usingsystem.text;

usingsystem.threading.tasks;

usingsystem.windows.forms;

usingsystem.io;

usingsystem.text.regularexpressions;

usingsystem.threading;

将优化平台名称定义为optimumdesign,定义其“类”为平台表格,构建优化分析方法软件界面,包含参数处理区,计算及显示区,结果及优化区三块区域,其中关键类变量包括,字符串节点应力,双精度节点应力(二维数组),双精度米塞斯应力、应变,字符串米塞斯应力(应变),双精度最大值、弹性模量,所需输入的字符包括弹性模量、泊松比、材料属性参数和边界条件参数(如图3)。该过程完成后将生成初始的python模型及inp文本文件。

s3:通过c#语言对文本文件分区检测,提取其中的参数,面板中定义为可改变的输入文本框,按求解器要求规整inp文本文件,将其转换成可变参数的标准生成求解器input(输入)文件。

在c#优化设计平台中的参数处理区中输入参数和边界条件(如图3),依次点击生成py代码,生成inp文件,导入inp文件,转换为ccxinput按钮,程序将调用开源有限元前处理程序处理步骤一生成的python源代码,生成求解器input(输入)文本文件,该一系列过程在后台运行。通过c#语言对inp文本文件分区检测,提取其中的参数。通过优化设计面板中所定义的ccxinput(求解器标准输入文件)按钮,实现参数化模型何边界条件通过python代码向标准求解器输入文件的转化。

其中inp生成、转换过程将面板中输入文本框的参数和边界条件写入求解器标准输入文件中。按求解器要求写入可变参数的标准input文件。

s4:用ccx(开源求解代码)求解器对节点应力、位移进行计算。计算结束后,将结果写入frd(结果文件扩展名)结果文件,同时可以通过调用cgx(开源绘图代码)对应力、位移云图进行显示。

打开c#优化设计平台,面板中的求解区域包含ccx求解按钮,按钮将调用开源求解器对步骤三生成的求解器标准input文件进行有限元求解,点击求解按钮将出现详细的求解和迭代过程。求解过程完成后,结果文件将写入工作目录的.frd(扩展名)文本文件中。

优化设计平台面板求解区还包含cgx后处理按钮(如图3),通过调用开源后处理程序进行计算结果的图形化显示,针对静态悬臂梁分析的结果显示内容包括静态的形变、云图和等高线。

s5:将结果中参数和预期优化参数进行比较,判断是否满足优化条件,如满足,写出并显示结果文件,如不满足,根据要求自动更改inp文本文件参数进行循环迭代,直到满足要求为止。

开源求解计算完成后,c#优化设计平台的的结果及优化区域包含结果分析按钮,点击该按钮进行结果分析,即可将最大、最小及平均应力显示在界面中(如图4)。该过程通过调用结果frd文件,将节点应力结果导入到c#函数的数组中,再通过函数计算得到最大mises应力,平均应力的结果。其中优化模块包含加载力、截面宽度、悬臂梁长度优化参数,以及最大应力和平均应力优化目标,子步数可以控制循环优化的次数,步长择决定了优化变量变化的倍数。点击优化计算后,平台将把计算结果与优化目标比较,如果不满足目标,即按步长改变优化参数进行循环迭代,直到满足优化目标后或者完成子步数后结束,结束后输出迭代次数以及满足优化目标时的参数和边界条件,计算结果可以通过cgx模块查看,优化的悬臂梁结果如(图5所示)。

另外,本发明实施例的开源有限元求解及优化分析方法的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1