• 4.69 MB
  • 2022-06-17 14:59:12 发布

ABAQUS环境下编织结构的计算机仿真

  • 60页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
硕上学位论文摘要编织材料微观组织结构的计算机仿真近年来成为人们关注的焦点。但由于编织材料微观组织结构有限元分析模型的几何本身具有特殊性,使得常规方法难以在ABAQUS环境下建立有限元分析模型。本文针对此问题,通过ABAQUS/Q墟所提供的图形用户界面(GUD与面向对象编程语言Python相结合编程操作,实现在模型几何复杂、建模操作繁琐的情况下自动建立复杂的其几何模型,从而极大地提高了工作效率。有限元分析软件ABAQUS功能强大,是国际上公认的最好的CAE大型通用分析软件之一,以精于复杂问题的求解和非线性分析见长,其非线性力学分析的功能达到世界领先水平,但同时ABAQUS对使用者在建模技巧方面也有较高的要求。因此,使用面向对象编程语言Python编写建立有限元分析模型的内核程序,可以快速、便捷、准确的建立有限元分析模型;而且ABAQUS为二次开发提供了接口,通过对ABAQUS/Q墟提供的图形用户界面(GUI)进行二次开发,成功解决了建模过程复杂、繁琐的问题。使整个仿真建模过程只需要在图形用户界面输入相关参数即可。本文对几种编织材料微观组织结构在ABAQUS环境下进行了计算机仿真,主要进行了以下几个方面的工作:对3D.Weave编织结构进行了计算机仿真,开发了3D.Weave的建模程序,并为其设计并开发了特色的参数化GUI界面;对短纤维编织结构进行了计算机仿真,开发了短纤维编织结构的建模程序;对ZPin型编织结构进行了计算机仿真,开发了ZPin型编织结构建模程序。解决了单元体内短纤维相交、短纤维与Z.Pin纤维束的相交判断问题。在ABAQUS环境下进行编织结构的计算机仿真与设计,为进一步研究编织材料的力学性能建立了有限元分析模型,既充分发挥了ABAQuS的强大的计算功能,又避免了繁琐的手工操作,降低了使用难度,具有一定的现实意义。关键词:ABAQUS;PythomGUI;编织结构 ABAQUS环境下编织结构的计算机仿真AbstractComputerSimulationofbraidmaterialmicrostructurehavebeeninthespotlightofpeopleinrecentyears.However,thefiniteelementanlysismodelofbraidedmaterialmicrostructurehastheparticularity.ConventionalmethodsaredifficulttoestablishthefiniteelementanalysismodelintheABAQUS.UsercancombineObject—orientedprogramminglanguagePythonandthegraphicaluserinterfaceprovidedbyABAQUS/CAEtosolvethisproblem.Theautomaticestablishmentofthecomplexmodelscouldimprovetheworkefficiencyobviously.ABAQUSisoneofthemostadvancednonlinearfiniteelementanalysissoftwareinthewholeworld.Itfocusoncalculatingwithwidefunctionalityandperformanceofthesimulation.AlthoughABAQUSprovideswidelyfunctionforusers,learningtouseofthesoftwarerequirestheporfessionalknowledge.Itwillspentlotsoftimetolearntousethesoftware.Therefore,usingthePythonwrittenthefiniteelementanalysismodelofthekernel.Userscanfast,easy,accuratemodeling.ABAQUSalsoprovidesaninterfaceforthesecondarydevelopment,throughthegraphicaluserinterface(GUI)forsecondarydevelopment.Thecomplicatedissueofthemodelingprocessareresolvedsuccessfully.Useronlyneedtoentertherelevantparametersinthegraphicaluserinterface,theModelcanbeestablished.ThearticlemainlydiscusessedthemethodsonComputerSimulationforbraidmaterialmicrostructureanditsrealizationthroughprogram,whichincludesresearchesonSeveralbraidedstructures.Themaintasksareasfollows:Developeda3D-Weavethemodelingprogram,designedanddevelopedparametricGUIinterface.Developedchoppedfiberbraidedstructuremodelingprogram.DevelopedZ_Pintypeofbraidedstructuremodelingprogram.Solvethechoppedfiber,choppedfiberandZ-Pinfiberintersectionproblem.UsingABAQUSforthecomputersimulationanddesignofbraidedstucture,Itisestablishedthefiniteelementanalysismodelforfurtherstudytothemechanicalproperties.ThisapproachnotonlyplayapowerfulcalculationfunctionsofABAQUS,avoidingthetediousmanualoperationsandreducetheuseofdifficulty,andhassomepracticalsignificance.KeyWords:ABAQUS;Python;GUI;braidedstructure.H. 兰州理工大学学位论文原创性声明和使用授权说明原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特另JJDl:i以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:彳垴绳日期:加,。年乡月夕日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权兰州理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时授权中国科学技术信息研究所将本学位论文收录到《中国学位论文全文数据库》,并通过网络向社会公众提供信息服务。作者签名:吒≥耄娩新签名:劾堡东日期:跏,一年占月夕日日期:d),晖6月罗日 硕上学位论文1.1课题来源第1章绪论早期数值模拟计算软件的研究重点在于推导新的高效率求解方法和高精度的单元。随着数值分析方法的逐步完善,尤其是计算机运算速度的飞速发展,整个计算系统用于求解运算的时间越来越少,而数据准备和运算结果的表现问题变得日益突出。.大型通用商业有限元软件ABAQUS具有功能很强的前置建模和后置数据处理模块,并为二次开发ABAQUS提供了丰富接口,因此利用ABAQUS开发有限元程序具有高效性和可行性。有限元软件ABAQUS虽然功能强大,但是其在建立复杂模型时比较困难,需要对其所研究的对象进行一系列简化。就编织材料微观组织结构而言,其形状是非常复杂的,对编织材料微结构的研究,如采用体视学方法对其进行的定量表征,用有限元软件进行的力学分析等,首先需要建立有限元分析的几何模型。因此,既要保留ABAQUS强大的计算功能,又要高效地将编织材料微观组织复杂的拓扑结构在ABAQUS环境下真实而准确的进行仿真,采用编程手段实现编织结构的几何设计与建模的自动化显得非常重要,本课题正是来源于这种要求。1.2课题目的、内容及意义本文在ABAQUS环境下对编织结构的几何形状进行仿真,并使用有限元软件ABAQUS前处理二次开发技术自动建立几何模型,在ABAQUS环境下再现了编织体的几何信息,并为后续的分析计算工作奠定了基础。有限元软件ABAQUS功能强大,是材料科学中计算机模拟的基本工具,但是对一个实际问题往往需要大量进行建模计算,这对非专业出身的科技工作者来说有一定的困难,需要花费一段时间熟悉软件庞大的功能和操作。如果将ABAQUS所提供的GUI(图形用户界面---GraphicsUserInterface)功能结合其主要功能的典型算法构造开放式的用户界面,既可充分发挥ABAQUS的强大的计算功能,又可避免繁琐的手工操作,用户在直观简洁的操作界面上,只需输入相关数据,就可以完成复杂的建模过程与计算,并可以得到可视化的计算结果。当然所有这些需要我们提供专业的脚本程序作为基础。现代高新技术的发展,对材料的性能要求越来越高,由此对材料科学本身也 ABAQUS环境下编织结构的计算机仿真提出了更高的要求。对材料微观结构与宏观性能关系了解的日益深入,人们将可以从理论上预言具有特定结构与功能的材料体系,设计出符合要求的新型材料,并通过先进工艺和技术制造出来。在计算机技术迅速发展的今天,计算机模拟已经成为解决材料科学中实际问题的重要组成部分。采用各种新颖算法的模拟技术,并结合运算功能强大的计算机,人们能够做到前所未有的细致和精确程度对物质内部状况进行研究。采用模拟技术进行材料研究的优势在于它不但能够模拟各类实验过程,了解材料的内部微观性质及其宏观力学行为,并且在没有实际制备出这些新材料前就能预测它们的性能,为设计出优异性能的新型结构材料提供强有力的理论指导【11。材料科学研究中的模拟“实验"比实物实验更高效、经济、灵活,并且在实验很困难或不能进行的场合仍可进行模拟“实验”,特别是在对微观状态与过程的了解方面,模拟“实验”更有其独特性甚至有不可替代的作用。这导致计算机模拟在材料科学中的应用越来越广泛,已经成为材料研究人员的一个强有力的工具。本文作者所在课题组使用ABAQUS/CAE所提供的图形用户界面(GUI)与面向对象编程语言Python相结合编程操作,实现了ABAQUSGUI二次开发,利用开发的参数化GUI用户平台,可以快速准确的建立有限元模型,并完成对模型边界条件与加载情况等相关问题的计算分析。本文在此基础上,主要进行了以下内容的研究:@3D.weave编织结构的计算机仿真②ABAQuS平台下3D.weave运行界面的的设计与开发③短纤维编织结构的计算机仿真④ZPin型编织结构的计算机仿真1.3国内外研究现状1.3.1计算机仿真技术的发展趋势及国内外研究现状.随着计算机技术和其他相关技术,如数学方法、控制思想和自动化技术等的发展,计算机的概念得到极大的丰富。从最初的仿真实验工程,到基于仿真的实验,基于仿真的工程,全生命周期的仿真、分布式仿真等,都是贯穿了不同领域新技术的特点而形成的仿真组合形式。从时间、空间等不同的角度,扩展了仿真技术研究和应用的范围,提高了仿真的效果,从而为社会,国防乃至整个人类活动提供了一种有效、安全的实验和工作手段12】。计算机仿真技术中,理论和应用水平的提高,特别是计算机技术的发展,有效的保证了它和其他学科,尤其是计算机、控制、数学等学科相距较远的边缘学科,得到了更多的融合的机会。从其研.2. 硕上学位论文究发展状况来看正在经历着以下方面的趋势。分布式计算机仿真技术,既是由于数据分布的需要,也是应用分布式计算环境进行并行计算,以达到实时显示的重要手段,这里所指的分布式计算平台有联网的异构机组成,包括高性能的SMP和DSM多处理器、工作站/PC群系统,与高性能的图形处理机集成在一起构成实时的计算机仿真计算环境。协同式计算机仿真技术,随着高速主干网投入使用,采用多媒体技术支持下的CSCW技术可以达到快捷、高效协同工作的目的。沉浸式计算机仿真技术,计算机仿真技术采用传统上为虚拟环境技术所专用的投影式和沉浸式显示设备,标志着这两个研究方向的融合的发展趋势。基于网络环境的计算机仿真技术,随着网络时代的到来,分布式虚拟环境就是将虚拟环境和网络这两项技术结合在一起,在一组以网络互联的计算机上同时运行虚拟环境系统技术。计算机仿真理论、仿真技术、仿真对象三者有机结合在一起,计算机仿真是一门多学科多领域的学科,其发展趋势在技术融合,相互渗透上显得更加紧密。计算机仿真技术产业化,计算机仿真技术的研究开发成果只有通过产业的商品化进入市场,才能产生价值与经济效益。同时反馈市场需求与资源,促进计算机仿真技术的更大发展。计算机仿真技术目前在军用方面的应用远高于民用方面,仿真技术的民用化也将是其一个重要的发展趋势。目前,世界各国都十分重视计算机仿真技术的研究。在国际上,仿真技术在高科技中所处的地位日益提高。美国在1992年提出的22项国家关键技术中,仿真技术被列为第16项,在21项国防关键技术中,被列为第6项。甚至把仿真技术作为今后科技发展战略的关键推动力。北约在1989年制定“欧几里德计划”中,把仿真技术作为11项优先合作的发展项目之一。计算机仿真在国防上已得到成功的应用,扩展的防空仿真系统(EADSIM)在海湾战争中得到验证,科索沃战争呈现出信息化、智能化、一体化的发展新趋势,进一步表明了计算机仿真技术的重要性。20世纪70年代,整个科学技术领域内,系统仿真费用约占总经费的1%,至于某些科学领域,系统仿真所占的费用更高一些,如导弹系统研制过程的仿真系统,费用约占导弹研制费用的5%。1995年,美国国防高级研究计划局投资战略的核心有4个方面,即开发先进的信息技术,创建与国力相称的国防技术、促进军民一体化工业基础的建设、加强新技术向军品转移,在每个方面,都把模拟与仿真,特别是先进的分布式仿真系统的开发列为年度投资重点之一。计算机仿真具有经济、灵活、可靠安全、可多次重复使用等优点,已经成为许多复杂系统分析、设计、实验、评估等不可缺少的重要手段pJ。我国从20世纪50年代就开始进行计算机仿真技术的研究与应用,最初的研究借助于模拟计算机,在自动控制领域首先开始仿真技术,面向方程建模和采用.3. ABAQUS环境‘F编织结构的计募机仿真模拟计算机的数据仿真得到较广泛的应用。同时自行研制了三轴模拟转台自动飞行控制系统的半实物仿真试验已经开始用于飞机、导弹的研制中。近年来,我国开始对分布式交互式仿真、虚拟现实等先进的仿真技术及其应用进行研究,开展了较大规模复杂系统的仿真,由对单个武器平台的性能仿真发展为度对多个武器平台在作战环境下的对抗仿真等。1.3.2材料数值模拟技术的研究趋势计算机模拟是一门由系统科学、运筹学与计算科学相结合的新兴学科,它作为一种数值计算技术,以安全和经济的方法获得系统或过程运行的数量结果,通过预测发现或比较评价它们的行为效果,为决策者提供决策依据,其应用范围遍及财政金融、生产管理、军事运筹、交通运输、航天航空、矿业开采、环境保护及人员培训等社会部门和领域。近年来,计算机模拟结合软件技术的新发展,如多媒体技术、网络技术和人工智能等,进一步丰富和完善了其自身的内容,展示出越来越宽广的应用前景【41。从其发展状况来看正在经历着以下方面的研究。从二维到三维的研究,由于受到计算机硬件性能以及计算经费的限制,早期的模拟计算局限于一维或者二维的情况研究,而且对于计算比较复杂的研究只能到计算中心的大型计算机上进行。随着计算机性能的大幅度提高,MicrosoftWindows操作系统和64位的IntelPentium处理器的推出,为PC机用于有限元分析提供了必需的软件和硬件支持平台。计算程序由二维扩展到三维已经不是难题。从宏观结构到微观结构的研究,研究对象从原来材料宏观结构的模拟,例如分析计算高层建筑和大跨度桥梁在地震时所受到的影响,看看是否会发生破坏性事故;分析计算核反应堆的温度场,确定传热和冷却系统是否合理;分析发动机叶片内的流体动力学参数,以提高其运转效率,等等宏观概念到以材料微观组织结构组成物为研究对象,在组成物大小的尺度上、通过微结构组装,设计材料微结构、预测材料性能、预报材料微结构失效行为的研究。从单纯的结构力学计算到多场耦合的研究,数值分析方法最早是从结构化矩阵分析发展而来,逐步发展到板、壳和实体等连续固体力学分析。近年来数值模拟方法已经发展到流体力学、温度场、电传导、磁场、声场等问题的求解计算。最近又发展到求解交叉学科问题所涉及多场耦合的研究,如热.力耦合、流.固耦合等问题的研究与应用。从“状态”模拟向“过程”模拟研究的转变,从“过程”模拟到“流程”模拟研究的转变;从单个目标的定向型模拟向多个目标协调性模拟的转变;从结构材料行为计算向功能材料行为计算转变,从功能材料行为计算向“结构.功能一体化”材料行为计算转变等等【28川J。.4. 硕上学位论文应用范围更加广泛,在编织结构仿真方面的应用也日益普及,特别是计算机在几何模型设计,分析计算以及到最后的产品生产过程中的实际应用,从根本上改变了曾经的落后局面,带来了巨大的经济效益和社会效益。计算机仿真技术在编织技术方面的应用,不论国内还是国外,依然是一个热门话题。尤其是近年来,由于复合材料发展的需求,编织技术特别是三维编织技术得到了迅速的发展。三维编织除了应用于纺织领域外,则更多地出现在非纺织行业的应用领域。从生命科学到土木工程,从航空航天到海洋工程,从民用到军事,形成了崭新的产业用编织物领域。这些领域要求编织物必须更为精确和仔细地加工,任何加工中的缺陷都会引起十分严重的后果。所以,在许多情况下,在这些编织材料被使用甚至制造之前,就希望模拟出其编织结构,以便进行计算分析。作为材料微结构研究手段的各种计算软件及辅助软件,如ProDesign、TransMesh、MATLAB、ABAQUS等如雨后春笋般出现。以有限元模拟软件ABAQUS为例,它的广泛应用,在计算机技术和数值分析方法支持下发展起来的有限元分析(FEA,FiniteElementAnalysis)方法为解决复杂物理问题的控制偏微分方程的解析计算提供了有效途径。ABAQUS在欧洲,北美和亚洲许多国家得到广范应用,其用户遍及机械、化工、冶金、土木、水利、材料、航空、汽车、电器等各个工程和科研领域。近年来,ABAQUS在我国的用户也在迅速增长I引。清华大学工程力学系高级有限元中心.-AFES(advancedfiniteelementservice)成立于1997年,在国内高校率先引进ABAQUS有限元软件。在有限元发展与应用方面,站在高起点的ABAQUS软件平台上开发算法、发展用户单元和材料本构模型,使我们避免了研究工作的低水平重复,在有限元软件的应用水平和开发能力上与国际接轨,其驾驭软件本体、开发接口程序方面的能力已达到国际上的较高水平16J。而且目前的商业化数值模拟软件都有功能很强的前置建模和后置处理数据模块,无一不重自动化与参数化的开发与应用,很多程序都建立了非常友好的GUI,以更加方便用户能以可视图形的方式直观快速地进行建模,划分网格,分析计算以及处理计算结果。1.4仿真环境及开发语言1.4.1有限元分析软件ABAQUSABAQUS是国际上最先进的大型通用有限元计算分析软件之一,可以分析复杂的固体力学和结构力学系统,模拟非常庞大复杂的模型处理高度非线性问题【51。ABAQus不但可以做单一零件的力学和多物理场的分析,同时还可以完成系统级的分析和研究。.5. ABAQUS环境F编织结构的计算机仿其ABAQUS具备十分丰富的单元库,可以模拟任意实际形状,包括金属、橡胶、聚合物、复合材料、钢筋混凝土、可压缩的弹性泡沫,以及地质材料等等。作为一种通用的模拟工具,应用ABAQUS不仅能够解决结构分析(应力/位移)问题,而且能够模拟和研究包括热传导、质量扩散、电子元器件的热控制(热.电耦合分析)、声学、土壤力学(渗流.应力耦合分析)和压电分析等广阔领域中的问题。ABAQUS为用户提供了广泛的功能,且使用起来又十分简单。大量的复杂问题可以通过选项块的不同组合很容易的模拟出来。例如,对于复杂多构件问题的模拟是通过把定义每一构件的几何尺寸的选项块与相应的材料性质选项块结合起来。在大部分模拟中,甚至高度非线性问题,用户只需提供一些工程数据,像结构的几何形状、材料性质、边界条件及载荷工况。在一个非线性分析中,ABAQUS能自动选择相应载荷增量和收敛限度。他不仅能够选择合适参数,而且能连续调节参数以保证在分析过程中有效地得到精确解。用户通过准确的定义参数就能很好的控制数值计算结果。一个完整的ABAQUS/Standard或ABAQUS/Explicit分析过程,通常由三个明确的步骤组成:前处理、模拟计算、和后处理。如图1.1所示,这三个步骤通过文件之间建立的联系如下:(1)前处理(ABAQUS/Q墟)在前处理阶段需要定义物理问题的模型,并生成一个ABAQuS输入文件。尽管一个简单分析可以直接用文本编辑器生成ABAQUS输入文件,但通常的做法是使用ABAQUS/Q墟或其他前处理程序,以图形方式生成模型。(2)模拟计算(ABAQUS/Standard或ABAQUS/Explicit)模拟计算阶段使用ABAQUS/St柚dard或ABAQUS/Explicit求解输入文件中所定义的数值模型,它通常以后台方式运行。以应力分析的输出为例,包括位移和应力等的输出数据保存在二进制的文件中以便于后处理。完成一个求解过程所需的时间可以从几秒到几天不等,这取决于所分析问题的复杂程度和所使用计算机的运算能力。(3)后处理(ABAQUS/Q墟)一旦完成了模拟计算并得到了位移、应力或其他基本变量后,就可以对计算结果进行评估。评估通常可以通过ABAQUS/G嗵的可视化模块或其他后处理软件在图形环境下交互式进行。可视化模块可以将读入的二进制输出数据库中的数据结果以多种方式显示出来,包括彩色等值线图、动画、变形图和x.Y曲线图等。.6一 硕士学位论文lABAQus/IjC订A处E川,-瑟}l£他软f,|=lI梭拟汁弭IABAQUS/Standard,,楚IABAQUS/Explicit1.odb,job.dat,)IABAQus/jlCjA处E,,.I{戈。£j也软铂:图1.1完整的ABAQUS分析过程中的文件联系1.4.2Python编程语言Python是一种脚本语言。脚本语言是类似DOS批处理、UNIXshell程序的语言。脚本语言不需要每次编译再执行,并且在执行中可以很容易地访问正在运行的程序,甚至可以动态地修改正在运行的程序,适用于快速的开发以及完成一些简单的任务。Python是一门解释性的面向对象的、动态语义特征的高层语言。Python的简单而易于阅读的语法强调了可读性,因此降低了程序维护费用。Python支持模块和包,并鼓励程序模块化和代码重用。Python的解释器和标准扩展的源代码和二进制格式在各个主要平台上都可以免费得到,而且可以免费分发【11】。Python作为一种高级计算机编程语言具有以下特点【12’34041。Python是一门高级语言,伴随着每一代编程语言的产生,我们会达到一个新的高度。从汇编语言到后来的FORTRAN、C和Pascal语言,它们将计算提升到了崭新的高度,并且开创了软件开发行业。伴随着C语言诞生了更多的像C++、Java这样的现代编译语言。我们没有止步于此,于是有了强大的、可以进行系统调用的解释型脚本语言,例女HTcl、Ped和Python。这些语言都有高级的数据结构,这样就减少了以前“框架”开发需要的时间。像Python中的列表(大小可变的数组)和字典(哈希表)就是内建于语言本身的。在核心语言中提供这些重要的构建单元,可以鼓励人们使用它们,缩短开发时间与代码量,产生出可读性更好的代码。在C语言中,对于混杂数组(Python中的列表)和哈希表(Python中.7. ABAQUS环境F编织结构的计算机仿真的字典)还没有相应的标准库,所以它们经常被重复实现,并被复制到每个新项目中去。这个过程混乱而且容易产生错误。C++使用标准模版库改进了这种情况,但是标准模版库是很难与Python内建的列表和字典的简洁和易读相提并论的。面向对象,面向对象编程为数据和逻辑相分离的结构化和过程化编程添加了新的活力。面向对象编程支持将特定的行为、特性以及和/或功能与它们要处理或所代表的数据结合在一起。Python不像Java或Ruby仅仅是一门面向对象语言,它融汇了多种编程风格。例如,它甚至借鉴了一些像Lisp和Haskell这样的函数语言的特性。可升级,Python提倡简洁的代码设计、高级的数据结构和模块化的组件,这些特点可以让你在提升项目的范围和规模的同时,确保灵活性、一致性并缩短必要的调试时间。Python提供了基本的开发模块,可以在它上面开发软件,而且当这些需要扩展和增长时,Python的可插入性和模块化架构则能使项目易于管理。可扩展,Python程序设计语言中的这种可扩展性使得编程人员能够灵活附加或定制工具,缩短开发周期。它能明显提升整体性能。虽然像C、C++乃至Java等主流第三代语言(3GL)都拥有该特性,但是这么容易地使用C编写扩展确实是Python的优势。此外,还有像VyRex这样的工具,允许C和Python混合编程,使编写扩展更加轻而易举,因为它会把所有的代码都转换成C语言代码。因为Python的标准实现是使用C语言完成的(也就是CPython),所以要使用C和C++编写Python扩展。Python的Java实现被称作Jython,要使用Java编写其扩展。最后,还有konPython,这是针对.NET或Mono平台的C挣实现。可以使用C挣或者VB.Net扩展IronPython。可移植性,Pythoni吾言具有可移植性,因为Python是用C写的,又由于C的可移植性,使得Python可以运行在任何带有ANSIC编译器的平台上。尽管有一些针对不同平台开发的特有模块,但是在任何一个平台上用Python开发的通用软件都可以稍事修改或者原封不动的在其他平台上运行。这种可移植性既适用于不同的架构,也适用于不同的操作系统。易学,Python关键字少、结构简单、语法清晰。这样就使得学习者可以在相对更短的时间内轻松上手。对初学者而言,可能感觉比较新鲜的东西可能就是Python的面向对象特点了。那些还未能全部精通OOP(0bjectOrientedProgramming,面向对象的程序设计)的人对径直使用PythonJ丕是有所顾忌的,但是OOP并非必须或者强制的。易读,Python与其他语言显著的差异是,它没有其他语言通常用来访问变量、定义代码块和进行模式匹配的命令式符号。通常这些符号包括:美元符号($)、分号(;)、波浪号(~)等等。这使得Python代码变得更加定义清晰和易于阅读。.8. 硕上学位论文易维护,源代码维护是软件开发生命周期的组成部分。只要不被其他软件取代或者被放弃使用,软件通常会保持继续的再开发。Python项目的成功很大程度上要归功于其源代码的易于维护,当然这也要视代码长度和复杂度而定。健壮性,针对错误,Python提供了“安全合理”的退出机制,让程序员能控制程序。一旦Pvthon由于错误崩溃,解释程序就会转出一个“堆栈跟踪”,那里面有可用到的全部信息,包括程序崩溃的原因以及是那段代码(文件名、行数、行数调用等等)出错了。这些错误被称为异常。如果在运行时发生这样的错误,Python使你能够监控这些错误并进行处理。这些异常处理可以采取相应的措施,例如解决问题、重定向程序流、执行清除或维护步骤、正常关闭应用程序、亦或干脆忽略掉。无论如何,这都可以有效的缩减开发周期中的调试环节。Python的健壮性对软件设计师和用户而言都是大有助益的。一旦某些错误处理不当,Python也还能提供~些信息,作为某个错误结果而产生的堆栈追踪不仅可以描述错误的类型和位置,还能指出代码所在模块。高效的快速原型开发工具,前期的Python开发积累了众多的扩展库,所以无论开发什么样的应用程序,几乎都有可用的扩展的Python模块和包以供使用。Python标准库是很完备的,如果在其中找不到所需,第三方模块或包也可以提供帮助。内存管理器,C或者C++最大的弊病在于内存管理是由开发者负责的。所以哪怕是对于一个很少访问、修改和管理内存的应用程序,程序员也必须在执行了基本任务之外履行这些职责。这些加诸在开发者身上的没有必要的负担和责任常常会分散精力。在Python中,由于内存管理是fl=lPython解释器负责的,所以开发人员就可以从内存事务中解放出来,全神贯注于最直接的目标,仅仅致力于开发计划中首要的应用程序。这会使错误更少、程序更健壮、开发周期更短。解释性和(字节)编译性,Python是一种解释型语言,这意味着开发过程中没有了编译这个环节。一般来说,由于不是以本地机器码运行,纯粹的解释型语言通常比编译型语言运行的慢。然而,类似于Java,Python实际上是字节编译的,其结果就是可以生成一种近似机器语言的中间形式。这不仅改善TPython的性能,还同时使它保持了解释型语言的优点151‘。1.4.3Python与ABAQUS的联系ABAQUS程序语言是对Python的继承和发展,尽管ABAQUS对Python有所扩展,但是其主体框架均fl=lPython构成。利用Python,我们可以对ABAQUS的GUI用户界面进行二次开发,也可以编写适合自己的脚本应用程序。ABAQUS为二次开发提供了接口,因此可以借助ABAQUS计算平台,开发.9. ABAOUS环境F编织结构的计算机仿真出建模程序,实现自动建模的目的。ABAQUS二次开发有如下几种途径【13J:(1)通过用户子程序可以开发新的模型,控制ABAQUS计算过程和计算结果;(2)通过环境初始化文件可以改变ABAQUS的许多缺省设置;(3)通过内核脚本可以实现前处理建模和后处理分析计算结果;(4)通过GUI脚本可以创建新的图形用户界面和用户交互。目前国内的ABAQUS使用研究有较多工作侧重于使用ABAQUS所提供的编程接口语言Python来进行前后处理的子程序开发。本文中结合使用(3)和(4)两种途径来实现自动化建模。ABAQUS有限元分析实现的步骤:前处理(ABAQUS/CAE)、分析计算(ABAQUS/Standard或ABAQUS/Explicit)、后处理(ABAQUS/CAE或ABAQuS厂Viewer)。前处理阶段需要定义物理问题的模型,并生成一个AsBAQuS输入文件。ABAQUS/CAE是完整的ABAQUS运行环境,可以生成ABAQUS模型、交互的提交和监控分析作业,并显示分析结果。本文使用Pvthon语言编写内核脚本实现前处理自动化建模,然后开发相应的图形用户界面来与用户交互。利用ABAQUS提供的接口在ABAQUS图形用户界面基础上构造特色功能的图形用户界面,组织自己强大的菜单系统,构造功能繁复的对话框,建立自己的联机帮助等。将用Pythoni吾言开发的专业有限元建模分析程序集成到ABAQUS/G墟应用程序中,使GUI界面为这些特色程序服务,从而建立一套有专业特色的有限元模拟建模软件。.10. 硕十学位论文第2章ABAQUS环境下参数化设计有限元软件ABAQUS为用户提供了广泛的功能,是材料科学中计算机模拟的基本工具,但是由于功能庞大,对用户的专业知识要求较高,学习的周期长,涉及的知识面广,掌握起来比较困难,因而很好的运用ABAQUS并不是一件容易的事情。用户对ABAQUS的需求因人而异,使用范围的不同使得ABAQUS纵使功能强大,但在不同的情况下并不是全部需要,因此将ABAQUS所提供的GUI(图形用户界面---GraphicsUserInterface)功能结合其主要功能的典型算法构造开放式的用户界面,在保留原有强大的计算功能基础上开发出一套具有个性特色的有限元程序包,有针对性的增加其原有功能,既可充分发挥ABAQUS的强大的计算功能,又可避免记忆繁琐的命令,用户在直观简洁的操作界面上,只需输入相关参数变量的数据,通过简单的鼠标和键盘操作就可以完成复杂的计算,并可以得到可视化的计算结果,完成整套分析解决方案。在此基础上还可以实现模型的参数化设计与驱动。在ABAQUS环境下进行参数化设计开发,为开发3D.Weave参数化GUI界面提供了技术基础。2.1ABAQUS/CAE及其不足2.1.1ABAQUS/CAE简介ABAQUS/CAE(CompleteABAQUSEnvironment)是ABAQUS的交互式图形环境,可以用来方便快捷地构造模型,为部件定义材料特性、载荷、边界条件等模型参数。ABAQUS/CAE具有强大的网格划分能力,并可检验所构造的分析模型,提交、监视和控制分析作业,然后使用后处理模块来显示分析结果【6J,用户可以通过主窗口与ABAQUS/CAE进行交互的。下图2.1显示了主窗口布局的各个部分【14J,进行参数化设计工作必须得熟悉并掌握ABAQUS/G墟界面布局。下面对各个部分分别详细介绍:.11- ABAQUS环境下编织结构的计算机仿真图2.1ABAQUS/G墟主窗口结构示意图Titlebar描述了当前运行的ABAQUS/Q墟的版本信息以及模型数据库的名字。Menubar包含了所有的菜单,通过对菜单的操作可调用ABAQUS/Q墟的全部功能。menubar当前所显示的内容随用户在Contextbar中选择不同的模块而改变。Toolbar提供了一种快速操作途径来调用菜单中常用命令。ABAQUS/o墟的一系列功能模块分别只针对模型的某一方面的。用户可以在Contextbar的Module选择区中进行各模块之间的切换。Contextbar里的其它项则是当前模块的功能。Toolboxarea一旦进入某一功能模块,toolbox区中就会出现与该功能模块相对应的工具。Toolbox使用户可快速调用许多模块功能,这些功能在menubar中也是有效的。Canvasanddrawingarea可把Canvas设想为一个无限大的屏幕或布告板,用户可在其中安置诸如图形窗口,文本和箭标等内容。ViewportViewport是ABAQUS/CAE显示模型的几何图形的窗口。Promptarea提示区会提示用户的下一步操应做什么。Messagearea在信息区中会出现状态和警告信息,若要改变信息区的大小,可拖拉位于其右上方的小方块,若要阅读已滚出信息区的信息,可利用右边的滚动条。Commandlineinterface这里可以利用ABAQUS脚内胃的Python编译器,用户可以使用命令行接口键A.Python命令和数学表达式。2.1.2ABAQUS/CAE的不足ABAQUS/CAE功能虽然强大,但对于不同的特殊应用却存在着不足之处,给用户带来一定的难度,其主要表现在以下几个方面:.12. 顿1{位mi(1)模型的几何形状本身具有特殊性。在实际问题中,需要建立的有限元分析模型的几何形状并不一定具有规则的几何形状,如图22所示的多晶体模型的几何形状和图23所示纤维复合材料增强体模型的几何形状,其几何形状自身的特殊性使得模型的建立难以以常规的建模方法来实现。因此需要对ABAQUS/cAE进行二次开发.以方便建模。田22多晶体材料几何模型图23纤维复台材料几何模型(2)专业知识要求比较高.有限元分析软件ABAQUS的运用涉及到多学科、多领域,而且在建立复杂模型时常常需要使用Python语言编写脚本程序,这些都对工程技术人员的专业水平要求较高。(3)手工建模过程复杂,使得学习掌握比较困难,ABAQUS/CAE繁琐的截面操作命令给工程人员的学习带来了很多不便,尤其在进行海量化、微结构等情况下建模时,其弱点尤为突出[321。鉴于以上缺点.我们提出了在ABAQUS环境下进行参数化设计,采用编程的方法实现自动化建模,避免手工建模撵作过程的繁琐,降低了特殊模型建立几何模型的难度,为后继的编织结构的计算机分析工作提供帮助。2.2ABAQUS环境下所实现的参数化设计2.2.1ABAQUS/CAE图形用户界面开发ABAQUS为二次开发提供了接口,对ABAOUS/CAEGUl的开发从主窗口入手,把用户需要和内核交互的信息通过主窗口以参数的方式反镄给内核,这就需要我们创建自己的GUI界面来和用户交互,收集必须的数据。ABAQUS提供的ABAQUSGUlf]:具集(ABAQUSGUIToolkit)来进行GUl方面的定制和开发。ABAQUSGUIToolkit是FoxGUIToolldt的--个扩展,就像ABAQUSScripting接口13- ABAOUS环境F编织结构的计算机仿真是Python编程语言的一个扩展一样。FOX,代表FreeObjecetsforX,是一个流行的,面对对象的,独立平台的GUIToolkit。既然ABAQuSGUIToolkit是一个独立的平台,一旦用户为一个平台编写了一个应用,用户可以在所有可用平台上运行这个自定制应用而不需要来改变源代码【15J。在GUI界面设计部分我们主要研究如何合理的布置自定义应用软件的GUI界面,研究对象主要集中在原有的布局格式上摆放自己的按钮、菜单、工具等。重点在如何构建自定制的对话框来实现特殊的功能。如下图2.4所示描述了进行GUI界面二次开发的层次结构图11州。Startupscript,Applicationo嘲锨iMain蝴拜ele孵iGU{Modules。TooasetsiModesiDialogs,promptsIWidgets图2.4AnoverviewofGUIcode.GUl代码概述根据此层次结构图,编写了六个脚本程序来实现ABAQuS/CAEGUI的二次开发,该脚本程序包括:Startupscript、Mainwindowscript、Toolsetscript、Formscript、DialogBoxscript、Modulescript。Siartupscript为启动脚本,每一个应用都从一个启动脚本来开始运行。该脚本负责初始化一个自定制应用对象。应用对象负责着高级功能,例如控制着消息队列和timers和升级GUI,并控制主窗口。它并不是一个可见对象。在这里实例化主窗口。主窗口就是当自定制应用第一次被启动的时候,使用者所看到的窗口,它提供了对所有的应用功能的访问。Startupscrip仓J建并运行自定制应用程序。启动以后它进入等待模式,开始和用户交互。Mainwindowscript是主窗口脚本程序,它主要为GUI的基本结构提供了支持。可以通过向主窗口注册模块和工具集来添加特殊的功能。主窗口被设计为和GUI模块同时工作,GUI模块包含了它们自身的菜单栏,工具栏,和工具箱项目。主窗.14. 硬±学位论文口同一时间内只显示一个模块的组件。当使用者切换应用不同模块时,主窗口将负责把不同模块所含的组件调出和隐藏。本文通过编写I’dh01]脚本程序,实现符合我们需求的简洁的操作性强的主宙口。井可以隐藏一些潜在的可修改自定制应用的接口。色幢n岫wilKlow的最筒程序,用户可以根据自己的需求在此基础上注册,添加自己想要的部分。如图25所示为最筒的ABAOUS/CAE主窗口。用户可以根据实际需要来定义自己的主窗口陋l。囤2.5最简的ABAOUS/CAE主窗口Toolsetscript负责在主密口的工具栏和菜单栏添加我们自己定义的按钮和菜单选项。由此菜单和按钮可以调用我们开发好的GUI界面。Formscript负责将从界面收集到的参数传递个内核建模程序。DialoEBoxscript脚本构建了一个特色的用户与内核交互的对话框,用来收集用户输入的数据。Modulescalpt这部分主要是建模以及分析计算的自动化实现部分,由DialogBoxscriDt构建的图形用户界面上的按钮来启动。2.2.2内核程序开发介绍Modulescript脚本程序在ABAQUS/CAE自定义开发的GUI中进行了调用t是ABAQUS/CAE的核心,我们可以通过在命令行接口(>>>)提示符后直接运行脚本程序,或者在开始的界面下打开脚本程序,以及在主窗口界面下在文件菜单 ^B柏us环境T转织鲒构的计算机仿真栏点击运行脚本菜单来运行该脚本程序等,但是这些操作还不能便捷的解决自定制应用程序的分析计算,因此以ABAQUSGUI界面为参考,并在此基础上开发出自己所需要的GUI界面。通过对ABAQUSGUI的二次开发实现便捷的建摸过程,例如在GUI界面实现模型参数化,建模实现自动化:创建和修改ABAQUS模型组件:诸如:Part、Material、Load、Step、Mesh等通用模块;通过GUI界面直接创建和修改提交ABAQUS分析作业;自动处理分析结果等功能。如图2.6所示『11,ABAQUS所提供的脚本接口的命令与ABAQUS/CAE内核之间的交互方式。ABAQUS进行有限元分析主要包括以下三个步骤:前处理、分析计算、后处理。在内核的工作机制这部分我们主要研究如何用p”hon语言自动建模,提交分析和实现结果的可视化。研究的对象主要集中在前处理和后处理部分,对于分析计算部分依然采用ABAQUS本身的求解器。.^t腓c^!:⋯!GUtl盎.“m‘ICLB:⋯mnd5前处理._————一、f,{-篇:一馏:f:ttIi“11.ISteAE!hⅢfinom^■分析计算——-后处理十—————·^¨∞sM"图26ABAQUS二次开发接口命令(Scriptingkk血㈣姐ds)和ABAQUS/CAE23GUI和内核之间的交互独立的GUI开发和内核程序开发都不能形成真正意义上的自动化,0UI和内按之间的交互是自动化实现的关键,其中包括两个重要的部分,即对ABAQUS内核进行操作的Kemdcomm妯ds(内核命令)部分和与客户进行交互的GUI∞衄柚ds 硕十学位论文(图形用户界面命令)部分。内核代码部分fl:tPython模块组成,包含了用来执行各种任务,实现纤维束截面纤维排列算法的函数和类,是ABAQUS/CAE的核心部分。在编写内核程序程建立模型时,首先必须导入abaqus、part、assembly和abaqusConstants等常用模块,由于程序还自己设计了相关算法,实现该算法时还需导入sys、math和random等模块,sys是一个标准库模块,它包含了与Python解释器和它的环境有关的函数。当Python执行importsys语句的时候,它在sys.path变量中所列目录中寻找sys.PY模块,初始化过程仅在第一次输入模块的时候进行。sys.path包含输入模块的目录名列表。这样导入模块的代码在其命名空间中就有了一个对该模块的引用,使用import语句导入以后,程序可以随时访问该模块的任意标识符。然后编写建模程序和算法程序,尽量使不同功能的程序模块化,以便在需要的时候调用。界面与内核之间的通信机制流程如图2.7所示【悼r71。KemeIProce6sGUIP∞蝴lUserclicksbuttonthatlwmpostadialogbotl;It..I⋯⋯...。:.1一‘I.^:⋯..。』l{UserchangesvaluesinOialogbol●GUIrespondstouser"schangeslfnecessary{e.9。stipplesw}d9et$》IUserclicksOK,GUIprocessesinputanasenclscommandstring融碴呤L!婴””戮!盼麓■e取nborct蚋aloo殿。辩tisposteo—图2.7界面与内核之间的通信机制我们用DialogBoxscript程序创建需要的对话框,收集用户数据,用Formscript实现和内核交互,并将数据集合成我们要实现的内核参数,发送给内核,内核则负责完成建模、分析计算、后处理等工作。至此,则实现了自动化开发。如图2.7所示为界面与内核之间的通信机制,描述了内核与GUI之间的交互原理。.17- ::=::=翟:!!!:::::::§2.4应用实例2.4.1单一功能的自动建模程序针对前文描述的ABAQUS/CAE前处理二次开发的方法.对简单模型的自动化建模进行简单应用。一个自动化建模程序包括Startup虻五口l、Mainwiadowscript、Toolsctscript、Fonascfipt、DialogBoxscript、Modulescript等脚本程序,另外启动该建模程序还需要一个肩动脚本文件“启动bat”。如图2.8所示为一个简单的建模程序所需的脚本,这些脚本程序包括了建模程序所需的内核程序和GUI设计程序,以及完成GUI和内核之间的交互程序。点击“启动.bat’侧本即可在ABAQUS环境下启动该自动建模程序。.|i毫:?;慧‘”启动batMsDn0jnn理立*一愁第”.|.}羲普;攫wm.|藏:磐掣8”tkeeDP01诈rytd图28简单建模程序脚本我们编写的Python程序是上圈2.18所示的“.py”为缀的文件,但在实际运行程序时,“.Pv”为后缀的文件会被编译为“pyc”为后缀的文件。因为Python并不是传统意义上的解释性语言,它先把程序编译成bytecodc(字节码),然后再执行。Python这样执行源代码的原因是:输入一个模块相对来说是一个比较费时的事情,所以Python这样经过编译使得程序执行起来更加快些。一种方法是创建字节编译的文件,这些文件以“.pvc”作为扩展名。字节编译的文件与Python变换程序的中间状态有关。当你在下次从别的程序输入这个模块的时候,“pyc”文件会比较快,因为一部分输入模块所需的处理已经完成了。“.p广源代码人很容易读懂,但计算机解析它需要时间。■pyc”是机器识别的代码,处理时间比较快,同时对源代码具有保护作用。如果比较大的脚本,■pyc”的优势就比较明显。字节码计算机处理起来就容易的多。所以,当编程者完成了源脚本的调试之后,进行一套完整的运行过程,ABAQUS将会自动生成针对每个文件的pyc文件。如图2.19,“.PY”与“pyc"’文件相对应。“.py”文件在运行的时候自动在后台转换为“pyc”文件。 一‘“6。1№“7‘。∞”一m。1啦“72汛。一cuboid1conz97]1图2.9“.Ⅳ”与对应的“.pyc"’文件执行自动忧建模程序,则启动进过二次开发后ABAOus自动制应用软件,如图210,可以通过多种方式启动自动建模程序的GUI界面,可以在菜单栏设置启动菜单,在工具栏设置启动图标,在工具箱设置启动按钮。这坐H是简单的在菜单栏和工具箱设置了启动按钮,图中1,2所示即为两个启动按钮。如图211为自动化建模程序开发的简单的GUI界面,主要包括了一下几方面的内容:(1)模型说明区,采用了图片和文字两种方式进行说明要建立的模型的基本情况。(2)参数输入区,收集的参数主要包括了模型的几何数据,以及杨氏模量以及泊松比等物理属性。(3)提交按钮区,设置了四个基本的按钮,包括了建模,提交分析,恢复默认值,取消等按钮。图210(a)ABAQUS环境下的自动应用程序 ::=::::誊:釜釜錾望兰::三:三目F_il*!⋯昼专C目modelPat凰m,【0■一■■■■■■■■■■■r5a====口l__-_o_圈2lO(b)ABAQU$环境下的自动应用程序启动开发GUI界面是为方便用户交互,用户如果要建立模型,只需要输入相关数据,点击“Preview”按钮即可,如图212,即为在默认值时提交建模的效果图。提交后整个过程不需人为干预,自动建立模型。圈211简单自动化建模GUI 碗±学位论文j『£·,。o+cq、XlI口目自、,图212简单模型的自动化实现效果图2.4.2多种功能自动建模程序的集成显然客户需要的并不只是功能单一的自定制应用软件,而是满足自己需要的多功能软件平台来解决实际问题。因此在ABAQUSGUI基础上开发出功能比较齐全的GUI界面就显得很有必要。在数据准备方面,进行集成设计需要相对于单一功能的建模程序柬说比较复杂,有时需要作者提供建立模型需要的相关数据,如图213足一个集成了三种模型的建模程序,在编写二次开发的程序的同时还需要提供建立复杂模型所需的数据。这些数据可以通过其他计算方法获得,也可以编写程序获得并在自动建模程序中应用,这里直接涧用数据文件,很好的节省了计算时间,提高了工作效率。 ==:§:::::::::2:田213毫棱数据文件本文采用了多种方法对建模程序的集成,主要包括了叠成按钮,下拉菜单以及二级对话框等方法进行集成设计。如图214所示为实现后的效果图,每个菜单选项或图标按钮都对应一种建模方法,图示集成了三种建模方法,在图2.14(d)中在自定义GOI界面上设置了两个按钮,通过这两个个按钮分别可以调用一个新的对话框。jDlem口+C目modelDst妇e昌Jobt0)口£Ilt”¨6⋯l‘=IJotpo+CAq园fI图目点目-·dtlo“d·I旦Jolt∞}圈214(a)下拉菜单集成圈214(b)叠成按钮集成㈨_i舢唑咄一“*.mdmd.o吵!“d“nh4hid“{I粤_主椰d『;nh墨 4·象。~\\⋯I-≯‘¨。围214Co)集成效果围圈2】4(d)二级对话框集成.23- ABAQUS环境下编织结构的计算机仿真总之,集成设计不仅仅是对界面按钮等操作工具的集成,更重要的是通过对内核代码的处理,以及界面与内核之间的相互关系,更好的扩展前处理功能。2.5本章小结本章简单介绍了ABAQUS/CAE二次开发的基本方法,主要包括BAQUS/CAEGUI自定义开发和内核程序部分的开发。本文结合ABAQUS/a咂的前处理建模部分和内核程序部分,根据用户需求开发出更加简洁,且具有特色功能的图形用户界面。并通过内核与界面的交互机制使内核程序建模过程实现自动化。为编织结构的参数化实现提供了技术基础。工程人员可以根据自己的实际需求创建出自己的ABAQus操作界面,在这个新的界面上完整保留了ABAQUS的建模,分析计算等所有功能,但是在界面上可以实现认知性强,易于接受和掌握等等优点,实现了建模的自动化、参数化。.24- 硕}:学位论文第3章3DWeave编织结构的计算机仿真3.1开发环境本文所使用的工具语言均为python2.5,操作系统为Windowsxp,程序所运行的环境为ABAQUS/CAE版本为6.5.1。3.23DWeave编织结构建模程序开发3.2.1代表性体积单元(R1忱)本文使用ABAQUS有限元分析软件建立编织复合材料微结构的代表性体积单元RVE(Representativevolumeelement),以RVE作为研究对象,对单束纤维的截面形状以及单根纤维的排列方式进行设计,图3.1所示为原始几何模型的整体结构图瞄1。从图中截取具有代表性的体积单元,如下图3.3所示,在ABAQUS中建立的简单几何模型。一般材料可划分为三个层次:微观层次(MicroScale)、细观层次(MesoScale)和宏观层次(MacroScale)。如果将多晶体金属看成是宏观材料,则晶粒属于细观层次,原子点阵属于微观层次。在连续介质的范围内,多晶体材料由细观和宏观两个层次的单元组成。细观层次单元由若干增强相(夹杂物)和它周围的基体及界面相组成。在细观层次上,多晶体的微结构具有一定的不确定或统计的特征,但连续介质力学仍然适用。在对多晶体进行力学分析时要把多晶体的微结构全部考虑进来,将是很复杂的,直到最近,这也是不现实的。因此,在试图建立多晶体性质与复合材料的相材料性质和微结构参数的关联时,不可能将材料的微结构影响加以完全的刻画,而是要进行一定统计意义上的简化,由此引入代表体积单元的概念【19,20】。材料微结构细观力学响应的数值计算建立在材料微观组织结构的“代表性体积单元”(RvE)技术上。微观组织结构的“代表性体积单元”定义在材料的细观尺度上。“代表性体积单元”其体积尺寸是最小的,但体积单元内却包含了足够多微观组织结构组成物的几何信息、晶体学取向信息、分布信息与相场信息,并能在统计学意义上代表材料微观组织结构的基本特征。由“代表性体积元”组成的材料称为统计均匀材料,统计均匀材料受到均匀边界条件的作用,则介质内的场变量是统计均匀场。值得指出的是,应该根据材料实际(或模拟)的微观组织结构组成物的几何构造、取向分布与相构,计算材料微观组织结构的“代表性体积单元”内的.25. :掣:鲨.::2:塑:::坚细观力学响应以及材料性能。“代表性体积单元”的细观应力的体积平均响应程度必须与“代表性体积单元”边界上所承受的外加载荷程度相一致I“】。图3I3D-Weave几何模型本文所研究的对象也即从图31中提取代表性体积单元(RVE),然后在ABAQUS环境下进行仿真。如图3.2即为从图3.I所示的3D.Weave整体几何模型中提取RVE单元模型口J,该单元体具有整体模型的基本特征,本文后继的3D.Weave编织体建模工作全部基于此单元模型。囤3.3所示,首先在ABAQUS环境中建立简单几何模型。该模型只是将图32所示的几何模型在ABAQUS中进行了再现.在原模型的基础上做了一些改变,采用了参数化的方法,将单束的截面和整体模型进行了参数设置,使得用户可以根据需要来调整模型。这样模型则更具通用性。在此简单模型中涉及到三个主要参数,即单束编织材料的截面的长半径R、短半径r以及单柬之间的间距d,采用自动化建模技术,在建模开始只需要输入这三个参数,就可以自动建立此模型。圈3.23D-WeaveRVE图32ABAQUS中实现的3D-WeaveRVE模型 硕±#位论i3.2.2解决方案如图3.4,显示了R,r,d三者之间的关系,当这三个参数值作为程序变量变化时,必然引起编织结构整体几何形状的变化,纤维束之间很容易引起互穿,本文在解决该问题时将纤维束的走向坐标,如图3.5所示也作为变量处理,即将纤维束的走向坐标(a,b)、(c,d)等坐标用R,r,d的值代换,这样在上述三变量变化时,编织结构整体几何形状也随之变化。⑤K3札≮r柚田3.4单柬简围图3.5路径简图以上解决了原始模型在ABAQUS环境中再现的问题,但涉及实际问题的纤维束并不是如图3.6所示的单柬纤维的简单几何模型,而是由单丝纤维所排列成的纤维柬。本文对单柬纤维中的纤维丝的排列方式进行设计,提出了两种基本解决方案,方案一假定纤维丝的总数目确定,然后对纤维丝进行排列,使得排列好的纤维束截面呈椭圆形,而且椭圆几何面的长短半径呈1:1,2:1,3:1.4:1的比例。方案二假定纤维柬截面呈椭圆形,而且截面的长短半径确定,要求在此截面范围内排列纤维丝。图3.7所示为纤维丝经过排列后的单束纤维几何形状。幽3.6单柬纤维几何形状图37纤维丝挥列后的单束纤维几何鼯状3.2.3参数描述本文使用python语言编写程序对编织结构在ABAQUS环境下进行仿真建模,目的是在ABAQUs,cAE界面下通过读入参数的方式实现编织结构的自动化建模,因此,如表1所示,将方案一涉及到的编织结构相关参数,定义为程序变量。这样,降低了使用者操作ABAQUS的难度,使用者只需要根据需要输入相关参数即可完成建模。表2所示为方案二对应的参数名与程序变量名。参数的设置可以将编织结构的几何形状模拟的更加逼真。可以根据改变参数值,如截面半径、纤维 ABAQUS环境下编织结构的计算机仿真总数等来选择不同质地的编织物作为模型进行研究。表13D.Weave方案一参数表截面半径比例纤维总数纤维半径纤维丝间距纤维束间距a:b(1:l,2:1,3:1,4:1)numberrdS表23D.Weave方案二参数表截面长半径截面短半径纤维半径纤维丝间距纤维束间距abrdS3.3程序整体流程及实现依据ABAQUS/CAE推荐的建模思路为3D.Weave编织结构设计了整体流程图。如图3.8所示,主要实现过程分为三个部分。第一部分为数据准备阶段,该部分包括了模型自动化实现的启动部分,编写如第二章所描述的启动脚本实现自动建模程序的启动。将需要收集的数据分两类处理。①参数数据,参数数据需要在界面通过与用户交互来获得。包括选择了哪一种截面处理方案,也采用参数的方式来驱动。如果选择方案一所描述的处理方案,则需要用户提供编织体单束纤维的纤维丝总数、选择截面半径比例、单丝纤维的半径、单束纤维之间的间距以及纤维丝之间的间距等数据;如果选择方案二,则用户需要提供截面半径的尺寸,单丝纤维的半径、单束纤维之间的间距以及纤维丝之间的间距等。②建模数据,要将纤维在空间位置的路径用数据的方式表现出来,需要的数据包括为纤维的起始点坐标、终止点坐标、以及转折点坐标。本文选用不同的数学关系式将建模数据与参数数据进行了关联,这样即为建模模型提供了必须的数据,也实现了参数化的目的。程序在处理截面时为建立模型提供了另外一本部分数据,该数据描述了单束截面内纤维丝(这里描述为小圆截面)的圆心在空间的精确位置,以及相互间的关系。第二部分为核心算法,该部分为程序的核心部分,设计了两种不同的算法与截面排列方案相对应,至此,完成了3D.Weave在ABAQUS/Q墟中建立几何模型所需的所有数据。第三部分为建模过程,该部分利用前面部分生成的数据建立编织体几何模型,实现建模过程自动化。主要包括以下几个步骤:(1)导入模块,在实际建立模型的过程中使用到了ABAQUS/CAE的两个重要模块,Part模块和Assembly模块。编织结构模型在ABAQUS/CAE环境下由多.28. 硕l:学位论文个部件构成,我们在Part功能模块创建每一个部件,然后在Assembly功能模块中把它们组装起来。所以在编写程序建立模型的时候,需要在程序的开始处引入这些模块,使用import语句导入模块,如:importsys对于一些使用频繁的模块如abaqus、abaqusConstants、part、assembly等将它引入全局名子空间,在程序中这些模块中的变量名可直接引用,abaqus模块引入了一些基本的ABAQUS对象,也提供了一个名为mdb的缺省的模型空间【321。abaqusConstants引入了ABAQUS定义的一系列符号常量;对于使用不频繁的模块sketch、random等,仍将其变量名限于模块名子空间,在程序中引用这些模块中的变量,需要以模块名为前缀。(2)创建Part模型,创建一个名为Model1的模型,同时专门定义了变量my为它的别名。接着就可以调用对象了,可以创建一个模型,同时将.Modelmdb该模型赋值给自定意义的变量,这样可以使后续调用该模型时简单化。myModel=mdb.Model(name=‘Model-1’)ABAQUS提供的Part功能模块中可以创建、编辑和管理模型中的各个部件,具体包括以下功能,创建柔体部件、离散刚体部件或解析刚体部件,对他们进行复制、重命名、删除、锁定和解锁等操作。主菜单Shape通过创建拉伸、旋转、扫略、倒角、放样等特征来定义部件的几何形状。主菜单Feature编辑、重新生成、抑制、恢复、和删除几何部件的特征。主菜单Tools定义集合、基准、刚体不见得参考点、分割部件等【5,6】。ABAQUS为此操作提供了相应的的函数,我们可以使用这些函数编写程序建立单个相对独立的实体模型。本文编织材料涉及到的Part部件较多,尤其当要达到海量化建模时,相应的数据也会增多,因此考虑将由此产生的数据写入外部文件保存,避免使用列表的方式带来内存开销,以提高程序效率。(3)装配Part,实现编织结构仿真,使用Assembly功能模块将单个部件装配起来。在ABAQUS/Q墟中每个部件都被创建在自己的局部坐标系中,在模型中相互独立。使用Assembly功能模块可以为各个部件创建实体,并在整体坐标系中为这些实体定位,形成一个完整的装配件。实体是部件在装配件中的一种映射,用户可以为一个部件重复地创建多个实体,每个实体总是保持着和相应部件的联系【5,61o一个整体的编织结构模型只包含一个装配件,这个编织结构的装配件由多个实体构成。在Assembly功能模块中主要可以进行以下操作。主菜单Instance创建实体,通过平移和旋转来为实体定位,把多个实体合并为一个新的部件,或者把一个实体切割为多个新的部件。主菜单constraint通过建立各个实体间的位置关系.29. ABAQUS环境下编够{结构的计算机仿真来为实体定位,包括面与面平行,面与面相对,边与边平行,边与边相对,轴重合,点重合,坐标系平行等【5’6】。结合python语言编写程序,结合使用ABAQUS提供的功能函数,实现不通过ABAQUS/CAE界面操作而装配编织体结构模型。以上步骤通过使用ABAQUS提供的接IZl结合python语言编写内核脚本程序,简化了繁琐的ABAQuS/G咂手工建模过程,实现了自动化建模。3.4仿真效果图3.83Dweave编织材料建模程序整体流程图3.4.1方案一截面及编织体的仿真效果对方案一提供的截面处理方法进行编写程序,将四种不同比例的截面认为是椭圆的几种不同的情况,其中圆为椭圆截面的特殊情况,开发过程中为了满足开发需求,首先将椭圆截面近似为六边形截面;然后计算不同比例截面的最简排列方式;在最简截面的基础上按比例增长的方式排列纤维丝。图3.9.图3.12所示为不同比例的截面在ABAQUS环境下实现后的效果截图。.30. 网丽图39(曲7根纤维的最简圆截面∞19根纤维的既蘸面纤维束网网图3100)量简椭圆截面0:1)(砷增大后的椭圆截面(2:1)图3.110)最简椭圆簸面01)_l蔓,"l,".、▲:::::::;苯:::::.鲻潞趁_键慰避图3.12(a)最简椭圆截面H:1)嘞增大后的椭圆截面p:1)在ABAQUS环境下编写自动建模程序,创建编织结构的部件,并装配成最终的结构体,图313所示为编织体不同比例截面实现后的整体效果图。 =竺:::!::::::銎::围3.13(n)编织体实现图(纤维柬越面长短半径比为1:1)围313(b)编织体实现图(纤维束截面长短半径比为2:1)陌囤313(c)编织体实现图(纤维束瓿面长短半径比为m1)兰竺彩积黑蕊瓣愁兰竺l:~‰‰。。,篓戮蒸蘑赢造些l{|。≯·4誉鎏些当赢赢赢愁些I、‘,。l。图313(d)编织体实现图(纤维束截面长短半径比为4:1 3.4.2方案二单束及编织体的仿真效果使用Python编程语言对方案二进行编程,并在ABAQUS环境下编写自动建模程序,如图3.14所示为特殊情况下单束纤维在ABAQUS/CAE中的效果图;图315所示为编织体结构图。因为纤维束截面长半径a和短半径b的数据与纤维丝的半径之间的数量关系,导致可能出现如图3.14和图3.15所示的情况。图314方案二特殊情况单束截面实现图豳315方案二特殊情况编织体实现图图3.16和图3.17是正常情况下实现在ABAQUS/CAE中实现的单束以及整体效果固。图316方案二单束纤维实现圈-”- 竺:::::::翟::::篮3.5GUI界面设计图317方案二编织体实现圈3.5.1GUI界面设计的且的GUI界面专为3D-Weave编织材料建模程序制作,具有针对性强的特点,实现了建模过程自动化,参数化;避免了手工建模的繁琐,效率低等弱点,为3D-Weave编织材料定制了自己特色的用户交互界面。图3.18显示程序在ABAQUS/CAE6.5.1环境下的运行情况。、一i⋯i,I㈨XL’⋯r繁._:蔓=‘纛图31831)WeaVe编织材料建横c3ui-34- 3.5.2技术手段3D-WeaveGUl界面所需的技术手段在第二章参数化设计部分做了详细的介绍,这里不再赘述。3.5.3GⅥ界面说明隰,I图319主界面启动方式(2)方案选择,可对前文中描述的两种方案根据需要进行选择。在Selection选项区选择方案,选择“Scheme.1”表示选择了方案一的建横方法,选择了“Scheme.2”表示选择了方案二的建模方法。(3)数据收集,方案一主要收集数据有:纤维根数、纤维截面比例、纤维丝半径、纤维丝之间的间距:’纤维柬之间的间距等;对应在界面上需要输入的数据如下图3.20所示。输入纤维总数不小于25根,因为要排列最小的椭圆(4:1)的最简情况不少于25根。接下来选择截面束长短半径比例.在微调项选择需要的纤维半径,纤维之间的间距,纤维柬之间的间距等数值。 AB^鲫s环境下编织结构的计算机仿真s●l●c⋯‰一loMI岫.flih●∞Ov.1M)5c⋯⋯t~,r·●·n¨-“.”.·:⋯l■¨⋯⋯s●ttlM眦⋯-●l_¨●Ilh●∞I“⋯一.friⅢJ_ot“⋯bltleu,一“"0。图3加方案一参数收集区如果选择方案二,需要输入的参数如表2所示,对应的界面截图如图3.21所示。其中a值不能小于b值,因为截面长半径必须大于或等于小半径。sn●ft⋯一oSdh,mr2‰’■nm,hd·:j5‰·“r¨㈧■-|}|⋯⋯●¨●v㈨⋯⋯l-k·Ⅲ:.If㈣_¨■·■):{lfIth4栅,---h,l口‘{圉321方案二参数收集区(4)文字说明对用户界面操作等情况作简要说明。(5)图片说明用图片的方式对编织结构、数据含义等进行简要的图示说明。详细如图3.23所示。(6)按钮设置用来和用户交互的图形用户界面设置了“Preview”、“Analyze”、“Default”、“Cancel”四个按钮,在完成参数输入后,点击“Preview",按钮即可提交参数给内核程序,开始自动化建模.整个过程再不需人为干预。建摸完成后可在ABAQUS/CAE显示出几何模型整体图。这里为后继的分析计算预置了操作按钮“Anflyze”,当模型建好后,点击该按钮即可以完成分析计算工作,其中设置分析步,划分网格以及提交分析计算等工作也可以实现自动化。“Default”按钮为恢复默认值按钮;如果想要放弃操作,“Cancel”按钮则提供了方便,如图+322所示。图322按钮设置-36 3.5.4异常摄错原理图3233D.Weave0uD对话框臣形用户界面部分提供了一个快捷、友好地机制来从用户处收集内核代码(Kcmdcode)所需要的数据。其中包括了方案的选择、纤维丝间距、纤维束间距等数据的输入,采用按钮的方式向内核提交命令。kernelcommand字符串通过进程间通信(邛c)从GUIprocess被发送至kemelprocess。kernelpfoccss解译和执行kmdcommand字符串。如果kemdcommand发布了一个异常,该异常又被传回GUIprocess,被捕捉和恰当的处理,一般都会弹出一个错误对话框来进行提醒客户,如图3.24所示当用户输入的数值不是内核程序所需要的数值时,弹出对话框提示用户重新输入符合要求的数值。这里对纤维总数的输入,a,b值的输入做了限制,如果用户的输A与要求不符,则自动报错,提示用户重新输A。ABAQUS/CAE使用口c(intcr-proc鹊$compunction)协议在IhrndprOCeSS和GUIprocess之间完成交流。一37— 竺=翟:::i篮:蝥::3.6本章小结如圈324错误提示对话框本章在ABAQUS环境下结合GUI和内核两个方面的开发,主要对3Dwcave编织材料自动化建模方法进行了研究,并设计了相关算法,实现了开发需求,程序也通过了调试验证。主要有以下几个方面的内容:(1)用Pythoni吾言实现了两种方案的编程;井在Al}A0us环境下用Pyth011语言编写了自动建模程序。(2)设计了特色的GUI界面实现编织材料建模的自动化,(3)为后继的设置分析步,划分网格,分析计算等工作奠定了基础。一38. 硕卜学位论文第4章短纤维编织结构的计算机仿真4.1问题的提出纤维是具有强结合键的物质,有时是和玻璃、陶瓷等一样的硬质材料。当这些硬质材料为块体时,其内部往往含有较多的裂纹,容易断裂,表现出很大的韧性,使键的强度不能充分发挥。如果将这些硬质材料制成细的纤维,则由于尺寸小,其中出现裂纹的几率减低,裂纹的长度也减小,因此脆性明显改善,强度显著提高。因此本章主要针对此问题,对单元体内短纤维随机分布的编织结构体进行了仿真,开发了相关的程序在ABAQUS中建立有限元分析模型,实现了在RVE单元体中随机分布增强短纤维。本章所描述的纤维体的半径为和m,纤维体的长度随机产生,并且短纤维所占纤维单元体的体积分数可以人为控制。短纤维所占的体积份数、纤维长度、和直径以及长径比等必须满足一定的要求,一般说来,短纤维所占的体积分数越高、纤维越长、越细、增强效果越好陋J。因此,本章最后有针对性的对程序进行了优化设计,提高了体积份数。4.2开发思路将单元体内的纤维分布情况简化为由相对独立的层内随机分布纤维组成,这样就可以将单元体分为随机纤维分布的相对独立的层,然后把每一层内的三维纤维体在平面上投影,可以得到不同的矩形。这样随机生成纤维体也即随机生成不同的矩形;要保证体积单元中的纤维体不互穿,则只需要保证二维平面的矩形不相交即可。即单元体多层到单层,三维到二维的简化思路模式。4.3数据的准备本章开发的要求在单元体内随机分布短纤维,因此在随机生成纤维的过程中需要随机生成以下数据,随机生成一个点的坐标M;随机生成一个长度数值作为纤维体的长度L;随机生成一个角度a作为坐标变换的角度使用。4.3.1随机数的生成在python语言中提供了随机数生成模块random,本章使用random模块中的unifo珊O函数生成随机数,该函数生成的随机数为实数值【511。如M点的随机生成。M=random.uniform(a,b).39- ABAOUS环境。F编织结构的计算机仿真这里M值的取值范围为:a<=M