- 4.43 MB
- 2022-06-17 14:59:12 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
硕十学位论文摘要ABAQUS是一套基于有限元方法的工程模拟软件,具有强大的计算分析功能,被广泛应用于材料、航空航天,船舶和土木工程等领域。在ABAQUS/CAE环境下可完成建模、分析、计算等任务,同时结合其二次开发接口创建自定制应用,可实现程序的自动化运行和数据的海量化处理。在工程应用中,随着创建的几何模型越来越复杂,其范围尺度由宏观发展向微观,因此,对于编织结构的设计需要采用多尺度分析方法,即代表性体积单元法(RVE)。该方法具有思路明确、算法简洁的优点。但是,当需要对创建的RVE模型尺寸进行修改时,将会给用户带来很大的困难和不便,即便ABAQUS能够自动选择参数,并且在分析过程中可不断调整参数值,而只有熟悉ABAQUS软件功能和操作,同时具有一定工程背景的研究人员方能胜任。针对以上问题,应用ABAQUS--次开发的强大功能,采用Python对编织材料微结构模型RVE编写内核脚本;并且使用基于有限元法的参数化设计方案,引入其代表性体积单元的参数化函数,同时创建反映该模型几何特征及关键参数的图形用户界面,建立人机交互机制,实现自动建模过程。用户通过自定制图形用户界面,可随机输入纤维增强相中单束纤维的关键性参数,实现基于海量数据处理下编织材料微结构的RVE模型创建。该方法大大提高了重构模型和完成海量化计算的效率。采用二次开发技术,创建新的用户开发平台的思想,在工程设计中具有广阔的应用前景。这一面向用户,旨在满足现代人性化和市场化发展需求的开发技术为材料领域的跨尺度分析提供了新思路。关键词:ABAQUS;二次开发;参数化;人机交互
ABAQUS二次开发技术在编织型材料微结构设计中的应用AbstractABAQUSisaengineeringsimulationsoftwarebasedonfiniteelementmethod,whichwidelyhavingbeenusedinthefieldofaeronautics,astronautics,shipsandcivilengineering,withthegreatfunctionalityincalculationandanalysis.ThetaskcanbeperformedinABAQUS/CAE,suchasmodeling,analysis,calculationandSOon.Whilecreatingaaccustomedapplicationbycombiningitsdevelopmentinterface,automaticallyrunningtheprogressanddealingwithagreatnumberofdata.Withtheincreasingcomplexitiesofmodelinginengineeringapplication,thedevelopmentofthescaleandscopehasbeenchangedfrommacroscopictomicroscopic.Itisamethodofmultiscalesanalysisforthebraidedstructure,whichistherepresentativevolumeelementmethods(RVE),whichtakesadvantageofclearthoughtandsimpleandbriefalgorithm.However,itisreallydifficultyandinconVenienceforuserstochangethesizeofmodelcreated,Evenif,ABAQUScanautomaticallychangethevaluesoftheparametersandadjustthem,butonlyfortheoneswhocouldmasteritsfunctionandhastheengineeringbackground.Todealwiththeproblemsabove,usingPythonasprogrammedlanguage,bycreatingakernelscriptwhichmakingthemodelofthemicrostructureofthebraidedtypematerials(RVE)byapplicationthepowerfulfunctionoftheseconddevelopmentforABAQUS.Theprogressofmodelingautomaticallycanbeachievedbytheparametertechnologybasedonfiniteelementmethod,introducingtheParameterizedfunctionoftherepresentativevolumeelement.Simultaneously,creatingagraphicaluserinterface,whichreflectsgeometricalfeaturesandkeyparameters,designsthemechanismofhuman—computerinteractionandautomaticallyperformsthemodel.Inthisinterface,userscaninputthekeyparametersofasinglefiberinthereinforcingfibers,andcreatethemodelofthemicrostructureofthebraidedtypematerials(RVE),whichbasedonthehandlingwithagreatnumberofdata.Themethodincreasestheefficiencyinreconstructionandcalculation.Ithasthebroadprospectsinengineeringdesigntousethetechnologyofseconddevelopmentandcreatethenewuserplatforms.Facingusers,thetechnologycanmeettheneedofdevelopmentinhumanizationandmercerization,whichprovidesanewthoughtforscale-spananalysisinthefieldofmaterialS.KeyWords:ABAQUS;SecondDevelopment;Parameterize;human-computerinteractiOnII
兰州理工大学学位论文原创性声明和使用授权说明原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:7司荔日期:劢fo年占月夕日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权兰州理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时授权中国科学技术信息研究所将本学位论文收录到《中国学位论文全文数据库》,并通过网络向社会公众提供信息服务。日期:驯D年日期:02J(拜j占只’日6月尹日{
硕士学位论文第1章绪论1.1ABAQUS计算机模拟技术的研究和应用1.1.1计算机模拟在材料科学领域的应用计算机技术的发展为材料科学研究提供了一种强有力的工具,促进了材料科学研究的深入发展【l】。随着对材料性能要求的不断提高,材料科学本身也提出了更高的要求;随着对材料微观组织结构与宏观性能之间的关系了解的日益深入,人们将可以从理论上预言具有特定结构与功能的材料体系,设计出符合要求的新型材料,并通过先进工艺和技术制造出来。但是,在实现途径和解决方法上已经充分显示出传统办法存在的严重束缚,尤其在计算机技术迅速发展的今天,计算机模拟已经成为解决材料科学中实际问题的重要组成部分【2】。计算机在材料检测方面的应用主要集中于对材料的成分、组织结构与物相、物理性能的检测,以及机械零部件的无损检测等方面。其基本方法是借助于某种探测器,将探测到的信号转化为数字信号传输到计算机里,然后通过程序员编制的相关程序对这些数字信号进行判断、处理后得到相应结果。譬如,能谱分析仪、X射线仪、超声波无损检测仪及万能材料实验机的计算机处理系统等都是这方面应用的成功实例pJ。以有限元法为核心的数值模拟技术被广泛应用于金属塑性成形领域,所采用的理论体系从小变形弹塑性有限元理论、刚一(粘)塑性有限元理论,到现在的大变形弹一(粘)塑性有限元理论,分析技术发展迅速,逐渐趋于成熟。采用大变形弹一(粘)塑性有限元法分析金属成形问题,不仅能按照变形路径得到塑性区的发展情况,工件中的应力、应变的分布规律,以及几何形状的变化,而且能有效地处理卸载、计算残余应力、残余应变,从而可以分析和防止产品的缺陷等问题,符合金属成形对于精密化模拟分析的要求【4J。在复合材料领域,计算机技术同样具有广泛的应用。大多数先进复合材料是由连续的长纤维和基体材料组成,它所具有的特性及结构行为与金属材料相比更为复杂,因而对于复合材料设计的评估,常常需要经过更为精确的计算和试验。过去20年,人们一直在努力实现用计算机辅助设计解决复合材料结构的复杂性问题。在层板理论基础上建立计算机程序,可进一步确定层板性质,采用有限元方法则能够实现精确计算层间应力的能力,这些都将促进计算机技术在复合材料设计方面的应用与发展。因此,将计算机技术应用于先进复合材料研究具有重要意义。1.1.2ABAQUS有限元分析方法的应用ABAQUS是国际著名的CAE软件,它以解决实际工业问题能力和强大的非线性功能赢得广泛声誉。航空工业是ABAQUS最重要的应用领域之一,波音、空中
ABAQUS--次开发技术在编织型材料微结构设计中的应用客车、洛克希德马丁等是其长期合作的用户。对于航空工业中存在的很多复杂和特殊的问题,如疲劳断裂、复合材料损伤、起落架柔性机构等,ABAQUS都具有其显著的优势。其中,ABAQuS/Explicit采用中心差分格式的时间积分方法,对未知量显式求解。由于质量矩阵进行对角化处理,可进一步加快求解速度。一般的冲压、锻压、铸造等问题,通过合理控制有限元规模,在PC机上运行5"--"20h能得到理想结果,这样的效率是其他程序难以相比的【51。同时,它可以进行结构的静态和动态分析,如应力、变形、震动、冲击、热传导和对流、质量扩散、声波,力电耦合分析等;它具有丰富的单元模式,如杆、梁、刚架、板壳、实体,无限元等;可以模拟广泛的材料性能,如金属、橡胶、塑料、钢筋混凝土、弹性泡抹,岩石和土壤等【61。1.2材料微结构设计方法的研究及应用1.2.1材料微结构设计方法的研究目前,有限元方法广泛应用于各领域的结构设计方面。随着计算机模拟技术不断发展,结构设计的应用不仅限于一些简单部件,该环节更多被视为大型、复杂设备或其中重要组成部分设计的关键。尤其在材料微观组织结构设计中,有限元分析方法为其提供了强有力的支持。通过对材料的微观组织结构进行有限元模拟,进而预测材料的宏观力学及物理性能,在国外己经是一种通用的做法【71。使用ABAQUS、ANSYS等有限元软件可以对材料微结构作虚拟失效分析,进行各种数值模拟。然而,在对一些复杂结构进行设计和模拟过程中常会遇到许多问题,例如在使用有限元软件对多晶体微观组织结构进行数值模拟时会发现:由于多晶体微观组织结构中包含大量晶粒,造成其几何模型复杂,通过ABAQUS/CAE前处理功能来构建其模型的方法是不可行的,即使勉强能建立少量的几何模型,也会花费很多的精力IS】。同时,材料的微观组织结构是看不见的,只能通过由分层切片技术得到的平面图来推测其空间结构,但这样的推测很不可靠,在某些情况下很可能造成极大的误差19,10】。因此,人们使用计算机模拟技术,将平面图形转变为与实际材料的微观组织结构相符的立体图形,以得到比较接近实际材料微观组织结构的立体信息【l¨。分层切片技术已经在医疗、地质探测、古生物化石研究等方面得到了大量的应用【12,13l,但在材料界却应用很少。通过计算机模拟技术与分层切片技术相结合,可以得到不便直接观察的被研究对象的立体图形,从而使科学工作者对被研究对象进行比较“直接"的观察与研究。在对材料组织结构进行研究时,要想从同一晶粒不同高度的几十、甚至几百张截面图形中得出其完整的空间结构信息,
硕士学位论文仅仅依靠人的大脑记忆显然是不可能的【14】,只有通过计算机模拟才能有效地解决问题。因此,通过设计并编写模拟程序,有效地组织由分层切片技术得到的材料组织结构平面信息,得出其空间立体结构,这种方法不仅能直接观察材料的组织结构,而且能研究与材料组织结构紧密相关的裂纹、不同相分布,组织形态等。材料科学理论研究多通过建立各种理论模型并对其实验验证来进行,用于验证模型的组织形态实验数据则不应是基于模型的体视学测估结果,而应当是无偏无假设的115J。目前,应用在材料科学中的体视学基本上是通过得到的材料样本外部图形特征来分析、评测材料的内部结构、组织形态,性能等,而没有通过直接得到材料内部的组织立体结构来直接验证。国外在二维图形的三维重建方面的研究起步较早,也比较深入,如日本、美国和英国等,而国内的研究则较少(16】。本文利用ABAQUS有限元程序提供的内部库函数,通过编写Python脚本调用库函数,从而增强ABAQUS交互式操作功能,并且绕过ABAQUS/CAE图形界面,直接操作其内核,实现建模功能。可见,通过使用ABAQUS所提供的接口语言Python进行前、后处理的子程序开发,创建自定制图形用户界面(GUI),能够简洁而方便的实现材料微结构设计。一方面解决了材料微结构复杂模型的创建,克服软件在微观组织结构设计中存在的困难;另一方面,大大提高专业人员进行相关分析、计算的效率。由此可见,通过使用ABAQuS二次开发技术,创建人机交互界面,即为用户提供一个服务平台的方法,将有利于促进ABAQUS模拟技术在材料微结构领域的发展。1.2.2材料微观组织结构的有限元模拟多元多相异质体材料的微观组织结构是由化学意义上的组分、几何意义上的结构、力学意义上的界面、拓扑学意义上的形貌与物理、冶金意义上的缺陷所构成,其微观组织结构的特征可以概括为:多组分、多晃面,多层次;跨尺度、非连续、异质体。从材料的细观尺度上看,与多元多相异质体材料微观组织结构组成物密切相关的基本科学问题包括:多元多相带来的非均质问题,异质性导致的各类响应的非均匀分布问题,非均质与非均匀引起的各向异性问题与几何效应问题等117】。复合材料微结构属于多元多相异质体材料微结构的范畴,具有其微观组织结构的特点。在进行多元多相异质体材料的性能设计与材料微结构失效行为预测时,不仅需要求得模型材料的平均细观力学响应,而且也需要求得当地微结构的局部细观力学响应118J。针对材料微观组织结构的特点,需要采用多尺度的分析方法。由于在宏观尺度下材料的结构可见且具体,相应的创建过程较为容易,而基于该尺度下的模型的有限元模拟分析,其预测的材料物理性能、化学性能和力学性能等参数在一定意义是符合要求的。但是,随着对材料性能的要求不断提高,新材料新技术的跨
ABAQUS_.--次开发技术在编织型材料微结构设计中的应用尺度分析是必需的,它将会实现材料在细观甚至微观尺度下的结构设计,其模型与实体原型更“近似",是更高层次上的模型重构。基于以上对材料微观组织结构的设计思想,采用有限元模拟方法来实现材料微结构设计、分析和计算等应用。本文应用计算机模拟方法进行编织型材料的微结构设计,其中采用的跨尺度分析方法为代表性体积单元法(RVE)。利用ABAQUS有限元程序提供的内部库函数,通过编写Python脚本实现对其调用,从而增强ABAQUS交互式操作功能,并且绕过ABAQUS/CAE图形界面,直接操作内核,实现建模。可见,通过使用ABAQUS所提供的接口语言Python进行子程序二次开发,能够简洁而方便的实现材料微结构设计。一方面解决了材料微结构复杂模型的创建,克服软件在微观组织结构设计中存在的瓶颈:另一方面,大大提高专业人员进行相关分析、计算的效率。1.3ABAQUS--次开发的背景和意义1.3.1ABAQUS--次开发的背景ABAQUS为用户提供了广泛的功能,但由于内容庞杂,对使用人员的专业知识要求较高,使得该软件的学习周期长、掌握难度大。而且ABAQUS并不是一款行业专用软件,涉及多学科、多领域的工程应用问题,充分体现了跨领域、多学科、多技术以及不同学科之间的不断整合,高度交叉与相互融合【19,刎。这些都给初学者学习、专业人员研发、工程师做分析计算带来困难。因此,用户希望软件具有强大的功能的同时,更渴望提供一个人性化界面,有助于方便快捷的掌握软件的相关操作;对于专业研发人员和工程师,则希望针对工程应用提供友好界面,实现简单、高效的分析与计算。ABAQUS本身提供了一种应用程序接口(applicationprogramminginterface,API),它是面向对象的程序设计语言⋯一Pvthon的一个扩展。基于该接口,ABAQUS具有多种二次开发功能,其途径各有不同。比如,基于用户子程序可以开发新的模型,定义包括边界条件、荷载条件、接触条件、材料特性等方面;在环境初始化文件中,可以改变ABAQUS的缺省设置;通过编写内核脚本可实现前处理建模和后处理分析过程;使用内置的ABAQUSGUI工具包可创建新的图形用户界面等。因此,利用该接口编写可执行应用程序,可以创建友好图形用户界面,设计人机交互机制,实现对ABAQUS内核进行操作。本课题的研究是在多年知识积累和工程应用实践的基础上展开的,其中涉及了一些在材料微观组织结构设计、分析和计算中的成果,例如三维编织复合材料微结构的算法设计及其微观结构的计算机可视化模拟与表征【2¨、而且研发出了基于平面点集Voronoi图的增量式外置算法【珏州,可有效实现数十万Voronoi晶胞集合体的构造,实现了二维
硕士学位论文以及三维Voronoi晶胞集合体内部结构的可视化【25舶J。又如,利用自主开发软件Pro/Design构建出二维多晶体材料微结构模型,并且基于C程序和Python脚本语言,采用混合编程法开发软件AutoRVE,用于材料微结构有限元网格划分与细观应力响应计算。有效地实现了二维和三维复合材料微结构的细观应力响应计算127,28l。除此之外,还开发了一系列基于计算机的复合材料微结构模拟技术【捧3¨。通过学习以上知识、掌握相关实践经验,将有助于本课题的顺利进行。1.3.2ABAQUS--次开发的意义在原有ABAQUS软件所提供的图形用户界面的基础上,面向用户设计自定制图形用户界面GUI具有重要的意义。将ABAQUS提供的GUI功能结合其主要功能的典型算法构造开放式用户界面,既可充分发挥ABAQUS强大的计算功能,又可以避免记忆繁琐复杂的命令,用户在直观简洁的操作界面上,只需输入相关的所有数据,点击鼠标就可以完成复杂的计算。这实际上体现了当今社会分工细化的趋势,不再严格要求使用者具备很多专业知识和操作经验。对于企业和使用单位来说,也无需再投入大量的资金来培养相关的专业人才,从而大大节省了人力和财力。在自定制图形用户界面上,只需要点击某几个按钮就可以完成整个操作,并且得到可视化计算结果,这将意味着,只要具备简单电脑操作经验的人就可以胜任二次开发后的软件使用。基于ABAQUS的材料微结构模拟、分析和计算大都以编写脚本程序来实现,这将会限制技术的共享,必然导致对通用程序的需求。应用参数化技术,为某一类工程应用提供参数的服务平台,即将所有的成果集成在自定制的GUI界面中,实现对ABAQUS的二次开发,在技术上提供有效的人机交互机制;实现使用GUI工具集完成修改和扩展ABAQUS的实用性,并为广大客户群开发出更多更有效的ABAQUS解决方案。由此,服务效率明显提高,开拓了产品市场。本文以编织型材料微结构为研究对象,设计自定制图形用户界面,完成内核脚本的编写。实现了在二次开发的界面下快捷方便地对关键参数进行操作,从而自动完成建模,这将有效解决用户在操作软件和工程应用实践中存在的困难和问题,从而大大提升产品的竞争力。1.4论文主要研究内容本文主要研究了编织型材料微结构设计中内核脚本与图形用户界面脚本的二次开发技术。首先介绍ABAQUS有限元分析方法,进而结合参数化设计,分析ABAQUSZ.次开发接口的种类和用途,并以此为基础开发编织型材料的微结构内核脚本;同时使用ABAQUSGUI--次开发技术创建自定制图形用户界面,建立内核与界面之间信息交互的机制,最终完成自动化建模。’主要涉及以下研究内容:
ABAQUS_.一次开发技术在编织型材料微结构设计中的应用(1)ABAQUS有限元分析方法;(2)ABAQUS_二次开发方法:(3)参数化设计方法;(4)ABAQUS_二次开发技术的交互机制设计;(5)ABAQUS--次开发技术在编织型材料微结构设计中的应用。1.5本章小结通过介绍ABAQUS计算机模拟技术在材料科学领域的应用,结合有限元分析方法,讲述了ABAQuS模拟技术在材料微结构设计中的研究与应用。同时,分析ABAQUS二.次开发的背景和意义,从而提出本课题的主要研究内容和目的。
硕士学位论文第2章ABAQUS有限元分析方法2.1有限元软件ABAQUS的功能简介2.1.1有限元软件ABAQUS简介ABAQUS是功能强大的有限元软件,可以分析复杂的固体力学和结构力学系统,模拟非常庞大复杂的模型,处理高度非线性问题。ABAQuS不但可以做单一零件的力学和多物理场的分析,同时还可以完成系统的分析和研究。由于ABAQUS强大的分析能力和模拟复杂系统的可靠性,它在各国的工业和研究中得到广泛的应用,在大量的高科技产品开发中发挥着巨大的作用。ABAQUS使用起来十分简便,可以很容易地为复杂问题建立模型。例如,可以首先为每个部件定义材料参数,划分网格,然后将它们组装成完整模型。对于大多数模拟(包括高度非线性的问题),用户仅需提供结构的几何形状、材料特性、边界条件和载荷工况等工程数据。在非线性分析中,ABAQUS能自动选择合适的载荷增量和收敛准则,并在分析过程中不断地调整这些参数值,确保获得精确的解答,用户几乎不必去定义任何参数就能控制问题的数字求解过程。ABAQUS具备十分丰富的单元库,可以模拟任意几何形状,其丰富的材料模型库可以模拟大多数典型工程材料的性能,包括金属、橡胶、聚合物、复合材料、钢筋混泥土,可压缩的弹性泡沫以及地质材料(例如土壤、岩石)等。作为一种通用的模拟工具,ABAQUS不仅能够解决结构分析(应力/位移)问题,而且能够分析热传导、质量扩散、电子元器件的热控制(热/电耦合分析)、声学,土壤力学(渗流/应力耦合分析)和压电分析等广泛领域中的问题132】。ABAQUS为用户提供了广泛的功能,且使用起来又非常简单。大量的复杂问题可以通过选项的不同组合很容易模拟出来。例如,对于复杂多构件问题的模拟是通过把定义每一构件的几何尺寸的选项与相应的材料性质选项结合起来。在大部分模拟中,甚至高度非线性问题,用户只需提供一些工程数据,像结构的几何形状、材料性质,边界条件及载荷工况。在一个非线性分析中,ABAQUS能自动选择相应载荷增量和收敛限度。他不仅能够选择合适参数,而且能连续调节参数以保证在分析过程中有效地得到精确解。用户通过准确的定义参数就能很好的控制数值计算结果。2.1.2有限元软件ABAQUS功能介绍ABAQUS由两个主要的分析模块组成:ABAQUS/Standard和ABAQuS/Explicit。其中在ABAQUS/Standard中还附加了三个特殊用途的分析模块:ABAQUS/Aqua、ABAQUS/Design和ABAQUS/Foundation。另夕}、,ABAOUS.7.
ABAQUS二次开发技术在编织型材料微结构设计中的应用还分别为MOLDFLOW和MSC.ADAMS提供了MOLDFLOW接口和ADAMS/Flex接口。ABAQuS/CAE是集成的ABAQUS工作环境,它还包括了ABAQUS模型的建模、交互式提交作业和监控运算过程,以及结果评估(即后处理)等能力。ABAQuS/View是ABAQUS/CAE的子模块,它只包括其中的后处理功能,这些模块之间的关系见图2.1。1it2.1ABAQUS产品【331ABAQUS/Standard是一个通用分析模块,它能够求解领域广泛的线性和非线性问题,包括静态分析、动态分析,以及复杂的非线性耦合物理场分析等。ABAQUS/Explicit是用于特殊目的分析模块,它采用显式动力有限元列式,适用于像冲击和爆炸这类短暂、瞬时的动态事件,对加工成形过程中改变接触条件的这类高度非线性问题也非常有效。ABAQUS/CAE(CompleteABAQUSEnvironment)是ABAQUS的交互式图形环境,用它可方便而快捷地构造模型,只需生成或输入要分析结构的几何形状,并把它分解为便于网格化的若干区域。并对几何体赋予物理和材料特性、荷载以及边界条件。ABAQUS/Vicw是ABAQUS/CAE的子模块,只包含模块后处理功能;ABAQUS/Aqua是一套选择功能,可附加在ABAQUS/Standard模块,可用于模拟海上石油钻井平台、波浪、风载的影响等;ABAQUS/Design用于进行设计敏感度的计算,ABAQUS/Foundation贝,lJ提供了一套更加高效的处理线性静力和动力分析的功能。一个完整的ABAQUS/Standard分析过程,通常分为三个步骤:前处理、模拟计算和后处理。(1)前处理.R.
硕士学位论文前处理阶段需定义物理问题的模型,并生成~个ABAQUS输入文件。虽然一个简单分析可以直接用文本编辑器生成ABAQUS输入文件,但通常是使用ABAQUS/CAE或其他前处理程序,以图形方式生成模型。(2)模拟计算模拟计算阶段使用ABAOUS/Standard或ABAQUS/Explicit求解输入文件中所定义的数值模型,通常以后台方式运行。以应力分析的输出为例,包括位移和应力等输出数据保存在二进制文件中便于后处理。完成一个求解过程所需的时间可以从几秒到几天不等,这取决于所分析问题的复杂程度和计算机的运算能力。(3)后处理完成模拟计算井得到位移、应力或其他基本变量后,就可以对计算结果进行评估。通常通过ABAQUS/CAE可视化模块或其他后处理软件在图形环境下交互式进行。可视化模块可以将数据结果咀多种方式显示出来,包括等值线图、动画、变形图和x.Y曲线圈等。2.1.3ABAQUS/CAE介绍ABAQUS/CAE是一个完整的ABAOUS运行环境(completeABAQUSenvironment),它为创建模型、交互式地提交合监控作业和评估最终的模拟结果提供了一个风格简明、致的界面⋯。启动ABAQUS/CAE,只需要在操作系统的命令提示符下输入:ABAOUScae它是ABAQUS运行指令,在普通PC机上启动时,只需要简单的双击图标ABAQUS/CAE。软件启动后,会出现StartSession对话框,如图22所示。二蜘一一、no图22StartSession对话框
ABAQUS二敬开发技术在编织型材料微结壮J设计中的应用在StartSession对话框中,有四个选项,分别为创建新的模型数据库、打开已有的模型数据库或输出数据库文件、运行脚本和打丌在线辅导教程。用户是通过主窗口与ABAQUS/CAE进行交互的。如图23所示为主窗口的各个部分。醢;菇矗箍油一A。~目图23主窗口的各组成部分其中主要包括以下几部分,分别介绍如下:(1)标题栏它显示TABAQUS/CAE的版本和模型数据库的名称。(2)菜单栏菜单栏包含了所有可用的菜单项,通过对菜单栏中各项的选择可调用ABAOus/cAE的全部功能。(3)工具栏工具栏提供了菜单栏中某些功能项的快捷访问方式,所有工具栏中的选项在菜单栏中都可以找到。(4)环境栏环境栏中提供了所有ABAQUS/CAE的功能模块,通过在Module列表中选择需要的模块实现各个模块之闻的切换,其中列表的顺序和在ABAQUS/CAE环境下进行有限元分析的顺序是一致的。(5)工具箱当用户进入某一个功能模块,工具箱就会显示该模块中的工具。用户通过点击工具箱中的选项可实现快速调用该模块中的功能(这些功能也可咀通过菜单栏-10.
硕十学位论文调用)。(6)画布和作图区画布可想象为一个无限大的屏幕或是布告板,用户可以在其中摆放图形窗。作图区则是指画布当前显示的部分。(7)图形窗ABAQUS/CAE通过画布上的图形窗显示用户的模型。(8)提示区在各种操作中,用户可以随时在提示区获得相应的提示信息,比如,创建一个集合,在提示区间则会提示你选择相应的对象。(9)信息区ABAQuS/CAE在信息区显示的是状态信息和警告。通过拖动顶边可以改变信息区的大小,而利用右边的滚动条可以查阅己滚过信息区的信息。默认情况下,信息区是显示的,但是这里同时又是命令行接口的位置。如果用户正在使用命令行接口,则需要单击主窗口左下角的选项卡图标来切换到信息区。(10)命令行接口ABAQUS/CAE中内置一Python编译器,用户可以通过命令行接口输A.Python命令和数学计算表达式。接口中包含了主从提示符,随时提示用户按照Python的语法缩进命令行。默认情况下,命令行接口是隐藏的,它和信息区共用同一个位置。用户可以点击左下角的选项卡图标从信息区切换到命令行接口。ABAQUS/CAE分为多个功能模块,每一个模块定义了模拟过程的一个逻辑方面,只包含与模拟作业的某一指定部分相关的一些工具。例如,Mcsh模块只包含与有限元网格生成有关的工具;Job模块则只包含与建模、编辑、提交和监控分析作业相关的工具。用户通过完成一个功能模块进入下一个模块,逐步地建立计算模型。完成建模后,ABAQUS/CAE会生成一个可提交给ABAQUS分析工具的输入文件。对于不同模块之间的切换可以通过在CAE图形用户界面下选择环境栏(Thecontextbar)中的Module(模块)列表项来实现,如图2.4所示为ABAQUS/CAE环境栏中的Module(模块)列表。
ABAOUS=次开发技术在编织型材料微结构设计中的应用Mod"】1e:黟t"roperty吣AssemblyInter㈣tⅡLLoadMeshJobVl=udIz“lonSketeh图24ABAQUS/CAE环境栏中的Module(模块)列寰下面简要介绍各模块的功能:(1)部件(Part)模块Part模块用于创建各个单独的部件,用户可以使用ABAQUS/CAE环境下的图形工具直接生成,也可以导入其他图形软件创建的部件。(2)特性(Property)模块用户对材料赋予相关的属性,首先要创建截面属性,然后将其赋予创建的部件。而用户对截面属性的定义包括了整个部件或部件中某一部分特性的信息,这样的截面属性可以灵活重复使用。(3)装配(Assembly)模块装配模块的功能是将用户创建的所有部件组装在一起,但是在创建每一个部件时,是基于它自己的坐标系中的,独立于模型的其他部分。用户必须在总体坐标系下将这些实体定位,组成装配件,同时规定一个ABAQUS模型只能包含一个装配件。(4)分析步(Step)模块应用Step(分析步)模块可以生成和构成分析步骤.并将其与输出需求相联系。分析步序列为实现模拟过程的变化(如载荷和边界条件的变化)提供方便途径;而且根据需要,在分析步之间可以改变输出变量。(5)相互作用(Interaction)模块在Interaction(相互作用)模块中,用户可以定义在模型各区域之问或者模型的一个区域与周围区域之闻在热学和力学上的相互作用,例如在两个表面之问的接触。还可以定义各种约束,如绑定(tie)、方程(equation)和剐体(rigidbody)约束。在装配件中,仅指定表面之唰存在的相互作用,对于描述两个表面的实际.12.
硕士学位论文接近程度是不够的;除非对相互作用的模块指定接触,否则ABAQuS/CAE不会自动识别部件实体之问或一个装配件各区域之间的力学接触关系。相互作用与分析步相互关联,所以用户必须规定相互作用是在哪些分析步中起作用。(6)载荷(Load)模块Load(载荷)模块用于指定载荷、边界条件和场变量。载荷和边界条件与分析步相关联,所以用户必须指定载荷和边界条件在哪些分析步中起作用;而其他的场变量仅仅作用于分析的开始阶段。(7)网格(Mesh)模块Mesh(网格)模块集合了ABAQUS/CAE为装配件进行有限元网格剖分的工具。通过使用自动剖分和控制工具,可以生成满足用户分析要求的网格。(8)作业(Job)模块所有创建模型的任务完成后,用户便可以使用Job(作业)模块分析和计算模型。在作业模块下用户可以交互提交分析作业并监控其计算过程,而且可以同时提交并监控多个模型的计算。(9)可视化(Visualization)Visualization(可视化)模块用于显示有限元模型和分析结果。它从输出数据库中获得模型和结果信息;通过Step模块修改用户的输出需求,就可以控制写入输出数据库中的信息。(10)草图(Sketch)模块草图(sketch)模块可以实现二维轮廓图形的创建,从而帮助形成几何形状,定义ABAQUS/CAE可识别的部件。应用该模块创建的草图,可以用来定义一个平面部件、梁或者剖面,也可以通过在草图基础上以拉伸、扫掠或者旋转等方式定义一个三维模型。当用户选择切换功能模块时,主窗口中的环境栏、工具箱和菜单栏的内容也会相应地的发生改变。所以,从环境栏的ModuleYlJ表中选择一个模块,将会引起环境栏、工具箱和菜单栏的变化,用于反映当前模块的功能。ABAQUS/Standard可以读入由ABAQUS/CAE生成的输入文件,然后进行分析计算,最后将计算过程的信息发送给ABAQUS/CAE,监控作业的进程,同时生成输出数据库。用户可以使用其可视化模块读入输出数据库,观察结果。ABAQUS/CAE会产生一个命令执行文件(replayfile),它会记录用户建模时的每个操作过程。
ABAQUS二次开发技术在编织型材料微结构设计中的应用2.2ABAQUS有限元分析方法的研究2.2.1有限元分析方法的起源与发展从应用数学角度来看,有限元法基本思想的提出,可以追溯至lJCourant在1943年的工作【351。他首先将应用在三角形区域上定义的分片连续函数和最小能原理相结合,用于求解St.Venant扭转问题。此后的许多数学家、物理学家和工程师也分别从不同角度对有限元法的离散理论、离散方法及应用进行了研究。有限元分析方法的实际应用是随着电子计算机的出现而开始的。首先是Turner,Clough[36】等人于1956年将刚架分析中的位移法推广到弹性力学平面问题,并用于分析飞机结构。他们首先给出了采用三角形单元法来求解平面应力问题的正确解答。并且使用直接刚度法求解三角形单元的刚性矩阵和结构。他们的研究工作开创了使用电子计算机求解复杂弹性力学问题的新阶段。1960年Clough对平面弹性问题做了进一步求解,同时第一次提出了“有限元法”名称。这让人们更清楚地认识到有限元法的特性和功能。近年来,随着电子计算机科学和技术的迅猛发展,使用有限元法进行工程分析成为更有效的方法,并且在理论、方法的研究、计算机程序的开发以及应用领域的开拓等诸多方面都取得了根本性的发展。它成功地运用于求解固体静力学、瞬态动力学数值计算、及其它动力学等方面的问题。通常采用集中质量法代替一致质量矩阵,将求解过程化为显式计算,从而避开了复杂的矩阵运算。在一定程度上解决了大计算量的问题。2.2.2有限元分析方法的基本步骤有限元求解法可用于求解不同的物理性质和数学模型,除了在具体公式推导和运算求解方面有所差异,其基本步骤是相同的,通常包括:(1)首先对所要求解的问题及求解域的范围进行定义在对问题的求解域进行定义时,可以根据实际问题近似确定其求解域的物理性质和几何区域。(2)将求解域离散化将求解域离散化指的是将其近似为大小形状不同、但彼此相连的有限个单元组成的离散域,习惯上被称为有限元网络划分。划分网络越细则表明离散域的近似程度越好、计算结果也就越精确。但同时会增大计算量。因此求解域的离散化是有限元法的关键技术之一。(3)确定状态变量及控制方法一个具体的物理问题通常可以用一组微分方程式表示,并且包含问题状态变量边界条件。通常情况下还需要将微分方程化为等价的泛函数形式以适应有限元
硕七学位论文求解。(4)进行单元推导对单元构造一个近似解,也就是推导有限单元的列式,其中包括在合理的单元坐标系下建立单元式函数,并给出单元各状态变量的离散关系,从而形成单元矩阵(结构力学中称刚度阵或柔度阵)。为了保证最终求解问题收敛,单元推导需要遵循一些原则。工程应用中,关键要注意每一种单元的解题性能与约束。例如,单元形状应以规则为好,畸形则不仅精度低,而且会出现缺值,从而导致无法求解。(5)总装求解总装在相邻单元结点之间进行,而状态变量及导数连续性建立在结点处。具体是通过单元总装形成离散域的总矩阵方程(联合方程组),反映出近似求解域的离散域的要求,即单元函数的连续性要满足一定的连续条件。(6)联立方程组求解有限元法最终是求解联立的方程组。通常可以使用直接法、选代法和随机法求解,求解结果表示单元结点处状态变量的近似值。对于计算结果的质量,需将其与设计准则提供的允许值比较,从而评价并确定是否重复计算。有限元法可概括为三个阶段,前处理、处理、后处理。前处理是建立有限元模型,完成单元网格划分:后处理则是采集处理分析结果,使人们能简便提取信息,了解计算结果1371。2.3ABAQUS参数化设计方法2.3.1参数化设计方法介绍参数化设计方法主要用于基本结构形状相同但是具体模型的尺寸参数有较小变动的情况。常见的参数化方法分成以下几种【38】:(1)代数法代数法是指把尺寸的约束转化为联立方程组,通过求解该方程组,从而得到满足尺寸约束的解,其中定义的任何尺寸约束均可以作为操作几何形体的参数。通过修改这些参数、求出受影响的约束方程,从而获得满足新定义约束的几何模型。代数法是ABAQUS等软件常采用的思想。(2)人工智能法人工智能法通过推理机制逐步实现物体几何模型的构造。通过使用存放在库中的一些简单的由条件和结论构成的规则进行推理,系统提取约束,把这些约束作为事实,然后与规则的条件进行匹配,推出一些中间结论,再以这些中间结论为事实继续推理,最终求出所有特征点,并用于构造几何图形。该方法具有表达直观、简洁的优点,但是存在系统庞大、速度慢、无法处理循环约束等问题。.1S.
ABAQUS二次开发技术在编织型材料微结构设计中的应用(3)直接操作法采用直接操作法,设计者可以直接修改图形的内部状态。用图形来表示所有目标,这样设计者就可以通过直接控制点来修改目标的位置,方向和大小等。目标的成员会自动继承父目标的属性和操作。同时允许用户在层次结构中指定目标的几何结构,而目标之间的约束是通过局部坐标系与整体坐标系之间的关系来指定的。这种方法虽操作简单、直观,但要求对所构造物体概念清晰,并且适合自顶向下的概念设计。(4)语言描述法语言描述法是使用语言描述图形的方法。用户首先需要使用造型语言定义带有参数的体素,然后用这些体素来描述几何图形。同样,也可以先绘制体素,系统自动生成几何体的描述语言,继续修改描述语言中的某些参数,实现新的体素的生成。该方法适合于描述标准件、及当某一零件多次出现或具有一定规律的情况。这种造型语言基于参数零件的关系图,其中包括数据定义和操作语言两部分。其关系图的内部表示可以与其它CAD应用程序再编译,基本思想涉及如下:(1)几何参数的参数化几何参数的参数化指的是将几何参数用参数名、常数或表达式来表示。其中表达式包括参数名、常数、数学函数、数学操作符、逻辑操作符、比较操作符和几何函数。若系统要求输入几何参数,用户则可以输入常数、参数名或表达式。(2)点的参数化通过参数化顶点的坐标或应用相关函数可以实现点的参数化。(3)曲线参数化首先将曲线离散化,然后通过控制这些离散点实现对曲线的模拟。2.3.2ABAQUS参数化设计方法的研究ABAQUS/CAE实现用户程序的方式包括两种,分别是通过执行用户编辑的内核脚本和调用自定制图形用户界面来完成。前者是将原本ABAQuS/CAE中各个功能模块的任务用程序来编写,实现建模、网格划分和模拟等过程,同时建立模型的所有数据和方法。所有内核程序将不再依赖于图形用户界面,独立运行;调用图形户界面的方法也是基于前者的基础之上,因为图形用户界面和内核之间存在着信息交互机制,同时参数化方法应用其中。通过自定制的图形用户界面输入参数,对于用户而言是极为简便的方式。它它通过进程间通信协议(IPC)把内核命令传递给内核过程,然后由内核过程解释并执行相关的所有内核命令。如果内核命令触发异常,系统会自动将该异常反馈到图形用户界面中以便及时纠正。ABAQUS/CAE使用IPC协议实现内核过程与图形用户界面过程之间的通信,
硕士学位论文例如,用户通过图形用户界面可以查询模型中所有Part的名称或是载荷的值,同时当内核中出现值的变化后也向图形用户界面告知,以便图形用户界面自行更新。ABAQUS/cAE使用图形用户界面工具包中包括的窗口构件、消息和图形用户界面的更新过程,最终实现和图形用户界面过程通信。如果当前窗口或对话框中的组件状态发生变化,选择对话框就需要更新。图2.5表明当通过对话框输入数据时内核过程和图形用户界面过程之间的通信过程【39J。内核进程羿面进程图2.5内核进程和图形用户界面进程之间的交互在ABAQUS/CAE自带的标准图形用户界面下,通过标准对话框,按纽,下拉菜单等标准组件可以获得用户的参数值。通过ABAQUS二次开发的图形用户界面同样可以实现参数化,并且需要设计自定制的交互机制。以上两种界面和ABAQUS内核之间的交互都是基于图2.5所示的交互机制。其中的内核命令进程(kernelprocess)是所有ABAQUS/CAE用来执行模型操作的所有数据和方法。例如,几何模型的创建和网格的划分等。内核进程(kernelprocess)的实现过程是独立于图形用户界面进程(GUIprocess)而运行的。而将内核进程与界面联系起来的关键就在于交互机制的设计,这是对ABAQUS进行二次开发的关键环节。在ABAQUS参数化设计方法中的所有方法,包括构造函数在内,要求至少要指定一个参数。该参数代表的是要调用其方法的类的对象。人们常把其称为“类实.17.
ABAQUS二次开发技术在编织型材料微结构设计中的应用例对象”。但由于该术语容易造成混淆,所以我们将任何方法的第一个参数都称为“对象引用参数”,或简称“对象引用”。而且该方法必须通过对象引用来访问从属于类的属性以及其它方法。按照约定,我们将对象引用参数称为self。2.4本章小结本章简要介绍了有限元软件ABAQUS模块的功能和在模拟过程中所完成的任务,重点介绍了ABAQUS/CAE涉及的内容和相关的操作。最后对参数化有限元方法的一些概念进行解释。同时结合ABAQUS所提供的二次开发接口和ABAQUS/CAE所提供的图形用户界面进行了初步探讨,分析了参数化方法在内核程序与自定制的用户界面之间的应用和区别。强调说明了在二次开发技术中交互机制设计的重要性。
硕十学位论文第3章ABAQUS-.次开发方法3.1ABAQUS-一次开发语言介绍3.1.1Python介绍Python是一种容易学习且功能强大的程序语言,它既可以用于独立的程序,也可以用于脚本程序,且适用于各种领域【40,41】。Python具有高效的数据结构,是一种编写简单实现效率较高的面向对象编程语言(object—orientedprogramming)。与其它的面向对象编程语言相类似,包括参数、列表表达式、函数、流程控制(循环与分支)、重复执行命令以及用户程序等内容。Python以其优雅的语法、动态类型识别,加上解释性的本质,使它成为一种能在多功能、多平台上撰写的脚本。是编程人员的理想选择。Python的显著特点包括:(1)面向对象面向对象的思想与传统的过程化思想有着明显的区别和优势,不再是top.down的编程思路,而是趋向于模块化的一种针对不同功能的“打包”编程思想,它为结构化和过程化程序设计语言增添了新的活力。在编程语言中,数据和逻辑关系都是程序设计中不可分割的元素。面向对象程序设计是将某种特定的行为和功能与需要处理的数据相关联。Python语言的这种面向对象的特性是与生俱来的。对于使用Python进行编程的专业人员看来,任何事物都可以看作一个对象。在编程语法中,对象是代码的封装单元,但是它们可以被重复多次使用、多次被移植。对于使用者而言,无需实际了解对象内部如何工作的问题,就可以很容易使用并扩展其程序的内部函数。(2)适应性强Python语言可以根据项目的不同对代码进行修改,只通过少量增减代码,增加新的或者现有的Python元素即可,根据所需重复使用已编写好的代码,从而大大缩短编程周期。Python语言提倡在代码设计上力求简洁,但是具有高水平的结构设计,可以把多个组件捆绑到一起,所以Pvthon语言的适应性很强。这一特点有助于软件开发项目向广度和深度发展,同时也有效地保证了其灵活性和一致性,更缩短了的开发时间。(3)可扩展性强Python是一款具有很强扩展性的编程语言。与常见的编程语言(例如C语言程序)相比较,Python可以很容易实现在其解释器中加入新的内建函数和模块。这将会使程序中的关键部分的运行速度达到最快,也可以直接将Python与二进制的程序库相连接。如果编程人员把Python解释器嵌入到用C语言编写的应用程序中,
ABAQUS~--次开发技术在编织型材料微结构设计中的应用那么Python将会变成该应用程序的扩展或成为新的商业化编程语言了。(4)可移植性强Python编程语言能够在多种计算机平台下运行,例如Unix,Win9x/2000/NT/XP,Macintoch,OS/2以及DOS等。Python的这一特点,使它在计算机领域中的应用越来越广泛。实际上,Python是用C语言编写的,正是由于C语言强大的可移植性,因此,Python能够在具有C语言编译器和通用操作系统接El的任何类型的系统上工作。(5)快速建模Python还具有快速建模的特点。与其他编程语言(例如Basic语言相比),Python的优势显而易见。与那些灵活性较少的编程语言所不同的是,Python语言与其它许多系统都具有不同的接El,其功能强大。因此,即使单独使用Python语言也可以建立起一个系统的整个模型。尽管使用其他传统的编译语言也能够建立同样的系统模型,但Python语言在工程方面的简单性的优点使编程者在完成同样的工作时效率大大提高。而且人们己经为Python语言开发了一些内部数据库,因此在用户开始新的工程应用之前可以先对内部已有的数据库进行查看,很多部分也许已经有先例,可以拿来直接为自己所用,而无需再重新开发,这样将会大大缩短用户的开发时间,有效提高工程应用效率。对于学习Python语言编程的人员而言,需要关注面向对象编程的两个主题,即类和类的实例化。类是对象的定义,任何世界上存在的事物都可以通过抽象表示为一个对象,且具有一定的属性,而将类实例化得到的将是”真正的实物”,它存放了类中所定义的对象的具体信息。同时,类又是一种数据结构,编程者可以通过它来定义对象。简单的说,类就是现实世界的抽象实体,而实例就是将这些对象具体化。形象的认为,类是蓝图或者模型,依此为据生成真实的物体(实例)则为类的实例化。同样我们可以说类是一种数据结构定义类型,那么实例化则是通过声明其中的一些变量得到的。所以,实例是“有生命"的类,是根据所设计好的蓝图来创建的新的实体。作为编程人员的任务就是构建新的类或是使用原有的类,然后将其实例化来实现最终的模型创建等。Python同时还提供了“数据库应用程序编程接口"(DB.API),用户可以使用“结构化查询语言”(SQL)来查询和处理“关系数据库管理系统"(RDBMS).具体说,RDBMS是一个MySQL数据库,为了创建与MySQL的接1:1,这里:Python使用了模块MySQLdb。例如:根据用户指定条件可以创建用来显示作者信息的CGI程序;也可以通过创建一个GUI程序,来实现用户输入SOL查询,并且显示查询结果;或是创建一个更加实用的CGI程序,允许用户维护一个联系人列表,这样就可以在数据库中添加、删除、更新和查找联系人。关于Python的进程管理,就不得不考虑“并发性"。对于大多数程序语言来.20.
硕士学位论文说,都只是提供一系列简单的控制结构,允许程序员每次执行一个任务,而且在上一个任务结束以后方能进行下一个,这种控制结构是不允许采取并发操作。而今天由计算机执行的并发性操作通常是以操作系统指令的形式来实现的,这只适合于有经验的编程人员,但这个问题对于Python是不存在的,因为Python应用程序的开发者也能使用并发指令。Python也可以为计算机网络之间的通信开发应用程序,利用无连接和基于连接的协议,通过网络来收发消息,它能够以“活代码“的方式来实现一个协作式的客户机/服务器的游戏,可以完成两个用户与一个多线程的服务器通信,共同玩一个网络版游戏,而由服务器负责维护游戏的状态。但是,Web编程会涉及到安全问题,虽然他可以快速创建功能强大的应用程序,但是这也会使计算机易于受到外界的攻击。通过使用Python实现防御编程技术,可以通过利用特定的技术和工具。一种就是加密,可以使用rotor模块进行加密和解密,实现一个置换密码系统;也可以使用sha模块用于哈希处理。3.1.2ABAQUS与PythonABAQUS程序语言是对Python编程语言的继承和扩展,尽管ABAQUS对Python已经有所扩展,但是其主体框架还是由Python构成。使用Python编写脚本可以实现对ABAQUSGUI图形用户界面和内核操作的二次开发,从而快速而方便的进行模型的创建和分析计算。编程语言Python是ABAQUS产品的一种标准化程序设计语言,它的使用贯穿于ABAQUS的各个部分。Python语言不仅仅是ABAQUS的脚本接口语言,同时在ABAQUS/Design,ABAQUS/Standard,ABAQuS/Explicit和ABAQUS/CAE的环境文件中,它也被用来进行参数化研究。其常用方式为:(1)使用Python语言来陈述ABAQUS的环境文件(ABAQUSv6.env)。(2)使用Python来定义ABAQUS的input文件中*PARAMETER选项的数据行的参数。(3)通过产生和执行一个Python脚本(.ps0文件来满足ABAQuS的参数化研究需要。(4)ABAQUS/CAE在replay(.rpy)文件中记录其命令,并作为一个Python脚本。(5)通过使用一个Python脚本从结果数据库中获得特定的数据。ABAQUS脚本接口对于其中使用的模型和数据来说,不仅是一种应用程序接口(API),它也是面向对象的Python语言的扩展。在ABAQUS中通过使用大约500个额外的对象来实现对Python功能的扩展,需要注意在不同的对象之间还有很多关系。在ABAQUS中实现的任何设计或分析属性如定义几何模型和定义材料属性、或施加载荷和边界条件、或约束模型位置、或划分单元网格及控制和执行求
ABAQUS二次开发技术在编织型材料微结构设计中的应用解,最终获得计算数据等产生的脚本都是Python脚本。用户可以通过编写Python脚本进行以下操作:创建和修改ABAQUS模型中的模块,如Parts,Materials,Loads和Steps模块等;或者创建、修改和提交ABAQUS的分析作业:也可从ABAQUS输出的结果文件中读出数据或向其中写入数据;同时可以查看最终的分析结果。当用户在ABAQUS/CAE的图形用户界面下进行模型创建和可视化分析结果时,ABAQUS/CAE会记录每一步操作所对应的命令。这些命令都反应了用户已经创建的几何体和每一个设置的操作,以及每一个对话框中的选择。所以,编程人员可以直接通过编写实现各种功能的命令来完成整个模拟过程。图形用户界面正是使用面向对象的Python语言来产生一系列的命令,再把它们发送到位于ABAQUS/CAE内核中执行,图形用户界面为用户和内核提供了进行数据传递的接口。用户可以通过使用ABAQUS脚本接口来实现ABAQUS/CAE的图形用户界面和内核的通信。各种用户编写的程序的集合都将包含在文本中,称之为ABAQuS脚本。3.2ABAQUS---次开发GUI的方法3.2.1常用的GUI组件介绍ABAQuSGUII具集提供了大量的基础组件,如下图3.1所示。图3.1ABAQUSGUI工具集
硕士学位论文下面对主要组件进行详述:(1)Frame组件Frame在GUI组件中属于布局组件,例如包括FXHorizontalFrame和FXVerticalFrame,分别表示水平框和竖直框。一个布局组件会确定其内部组件的位置和尺寸大小,通过使用布局参数来实现。在ABAQUSGUIToolkitqa的布局管理器可以在确定的坐标系下计算相对尺寸和相对位置。组件FXHorizontalFrame和FXVerticalFrame将分别以行和列的方式来布局他的子组件,例如下面语句就实现了一个FXVerlicalFrame组件的创建。vf=FXVerticalFrame(parent)FXButton(vf,。Buttonone。)FXButton(vf,。Buttontwo’)FXButton(vf,。Buttonth陀e’如下图32所示为FXVertiealFrame组件的应用。可见,这里FXVerticalFrame组件实现了将三个Button按照竖直方向排列。图3.2FXVerticalFrarne组件的应用(2)Labels(标签)组件FXLabel组件用于显示只读字符串。标签(Label)基类的构建器需要使用三个参数:Text,表示由组件显示的文本;Tiptext,表示当鼠标移到组件上面并放置片刻时间.将会出现的提示文本:Helptext,表示在自定制应用的状态栏中显示的文本帮助信息。如图33所示为使用基类FXLabel创建的一个标签组件。fhisisnlabelcrealedbyFXI.abel图3.3基类创建的文本标签-23,
ABAQUS二次开发技术在编织型材料微结构设计中的应用(3)Text组件Text属于文本区组件,可用于输入简单的文本。例如AFXTextField组件可以提供一个文本输入区,它扩展了FXTextField组件的功能,其中包括:一个可选的标签;可以创建一个条形可视框,并处于只读状态;另外可以支持数值类型(复杂情况下):可以采用水平或竖直方向的布局。如下图34为使用基类AFxTexlFicId创建一个输入文本区的例子,使用的语句为:AFXTextField(parent,8,’ThisisastringAFXTextField’)I"hisisastringAFXTextField:图3.4使用基类AFXTextFleld创建一个输^文本医文本区的创建与关键字有关,关键字的类型决定了在文本区要求输入的数据类型。例如,在文本区输入类型对应为整型,那们定义文本输入区数据类型的关键字表示为整型。这样,你就无需对文本区的数据类型分别进行指定了。对于复杂一些的文本区属于例外情况,为了显示在更多的文本区输入数据,必须指定标识,以下语句创建的文本输入区如图3.5所示:AFxTextField(parent,8,。ItisacomplexAFXTextField’,None,0,AFXTEXTFIELD—COMPLEX)ItisacoalplexAFXTextField:十图35AFXTexIField基类创建的复杂文本输入区大多情况下,在一个标签文本输入区前面会创建一个eheck按钮,它可以允许用户将文本区打开会是关闭。如果该文本区处于关闭状态,那们它将不可用,叩不能输入任何数据。AFXTextField在创建一个check按钮时,只要提供AFXTEXTFlELD—CHECKBUTTON标识即可。以下语句实现了在文本区创建cheek按钮,如图36所示。AFxTextField(parent,8,‘ItisaintergerAFXTextField.,None,0,AFXTEXTFIELD—CHECKBUTTONIAFXTEXTFIELDVERTICAL)
图3.6在文本区创建了check按钮如果要创建一个多行文本输入区,可以使用多行文本组件FXText来实现,例如下面的语句将可以创建图37所示的多行文本输入区。text=FXText(parent,None,0,LAYOUT_FIX_WIDTH[LAYOUTFIX—HEIGHT,0,0,300,100)textsetText(’ItisallFXTextwidget。)ItisanFXTextwidgeL图3.7使用基娄FXText创建多行文本输入区(4)Button组件Button组件的种类很多,其中包括Pushbuttons、Pushbuttons、Checkbuttons、Radiobuttons、Menubuttons、Popupbuttons、Toolbarandtoolboxbuttons、Flyoutbuttons和Colorbuttons。下面分别做倚要介绍。FXButton组件包括一个标签或是一个图标,或是同时包括标签和图标。创建一个FXButlon组件可以实现当用户点击按钮时即刻发生一个响应。组件FXCheckButton可以为按钮提供控制开关的功能,而且该按钮也可以提供第三种功能,即“Maybe”or“Some”的状态。其中“Maybe”状态常用来代表部分选择;比如AFxOptionTree“st组件就可以使用“Maybe”状态。通过程序设定“Maybe’’状态,这样用户就不能将按钮转变为该状态。FXRadioButton组件可以实现从一组按钮中选中其中之一。一个菜单由以下部分组成:由组件AFXMenuTitle色0建菜单的标题:由组件AFXMenuPane/90建一个菜单区;由组件AFXMenuCommand创建一个菜单命令。其中菜单标题位于一个菜单栏中,它用于控制和菜单标题相关的区域所要显示的菜单项。菜单区域包含着菜单命令,菜单命令是由按钮产生的响应。一个菜单区域也可以包含由组件AFXMenuCascade90建的级联菜单。一个级联菜单可以在一个菜单中提供子菜单。.25.
ABAQUS二次开发技术在编织型材料微结构设计中的应用如果创建的是一个popup菜单,那么当用户鼠标在一个组件上点击右键时就会出现该菜单。比如,你可以创建一个popup菜单,其中包括两个按钮,当用户在一个tree(树形)组件上点击右键时就会出现这两个按钮。AFXToolButton组件在按钮中不显示任何文本,但是按钮通常会有一个工具提示。由AFXToolButton组件创建一组按钮,并放入由AFXToolbarGroups件创建的工具栏中或是放入由AFXToolboxGroups组件创建的工具箱中。AFXT00lbarGroups和AFXT001boxGroups将会为工具栏或是工具箱中的按钮提供一个可视的组合。AFxFlyoutButton组件显示一系列的展开项,它包括一些AFXFlyoutltem组件,当用户在按钮上单击左键,然后在展开项上点击左键可以选择特定的选项。如果用户只是在按钮上简单的点击鼠标左键,那们展开项就不会显示,这时我们可以将按钮视为简单的一种。AFxFlyoutButton组件会显示当前的对象图标,在图标的右下角有一个三角形,当点击该三角形时会将按钮包含项展开。AFXC010rButton组件可以布局一个按钮,用于显示颜色。当用户点击该按钮时,会出现颜色选择对话框,在该对话框中改变颜色代表的数值。3.2.2ABAQUSGUI--次开发方法ABAQUS--次开发有如下几种途径【42】:(1)通过用户子程序(Usersubroutines)开发新的模型,控制ABAQUS计算过程和计算结果;(2)通过环境初始化文件(Environmentfiles)改变ABAQUS的许多缺省设置;(3)通过内核脚本(Kernelscripts)实现前处理建模和后处理分析计算结果;(4)通过GUI(GraphicalUserInterface)脚本创建新的图形用户界面和用户交互。在进行二次开发前,需要具备下列知识和经验准备:(1)Python编程经验编写ABAQUS/CAE内核脚本,需要用户具备应用Python语言的编程经验,因为ABAQUS/CAE内核脚本是通过编写Python语言实现;(2)ABAQUS内核命令(ABAQUSkernelcommands)’图形用户界面的最终目的是向ABAQUS内核传递命令,因此用户需要熟悉内核命令的产生以及工作流程;(3)面向对象编程概念(Object-orientedprogramming)Python是面向对象的编程语言,用户编写的应用程序通常由用户自定义的类、类的方法和需要处理的类的数据组成。所以,用户必须了解并熟悉面向对象的执行过程;
硕士学位论文(4)图形用户界面设计由于应用程序的复杂程度不同,用户需要了解图形用户界面的设计规则和方法。计算机技术是近年来发展最为迅速的领域之一,但更重要的是它在各行各业中应用,不仅促进了行业内技术上的突飞猛进,对于计算机技术本身也产生了不可比拟的影响。例如,早期的计算机是没有人机交互界面而全部采用输入指令的方式来实现所有功能的,只是存在DOS操作系统的命令行界面.在此界面下用户主要局限于对键盘的操作。而这大大限制了计算机的使用范围.只有能够熟练操作计算机指令的专业人员才能使用,这严重阻碍了该技术的普及。在需求导向型的现代社会,开发人性化界面,实现对计算机简单而快捷的操作势在必行。在开发后的界面下,任何不熟悉计算机指令的人都可以快速掌握计算机操作,如图3.8即为常见的计算机图形界面。图38计算机图形界面现在所有的软件开发中,对于界面的开发已经成为必不可少的部分,包括有限元软件。作为计算机辅助设计工具的ABAQUS属于HKS旗下的产品,是国际上堆先进的大型通用有限元计算分析软件之一,具有强健的计算功能和广泛的模拟性能,拥有大量不同种类的单元模型、材料模型和分析过程等,同时,ABAOUS也具有一个方便用户操作的图形界面。如图3.9所示为ABAQUS图形用户界面。
ABAQUS二敞开发技术在编织型材料微结构设计中的应用矗品≮矗≈j铀一§”~日围3.9ABAQUS图形用户界面在图示的ABAQUS图形用户界面中,主要包括菜单项、工具栏项、环境栏和命令输入区。其中工具栏项是为方便用户使用一些主要功能而设定的快捷按钮.而且所有工具栏项的功能都可以在菜单项中实现:环境栏是用来提供给用户选择模块的接口:在命令行输入区.用户可以一条一条的输入指令来实现功能。由于ABAQUS是一款功能强大的有限元模拟软件,其界面涉及的功能很多,这对于使用者来说提出了较高的要求。茸先,ABAQUS是全英文界面,要想熟悉界面中每项的功能,必须具有一定的英语基础,同时,它是专业性很强的软件,相关的有限元方法的了解和力学知识的掌握足正确应用该软件的关键。以上两个方面的要求对于初学者有难度,所以有必要将软件的界面进行简化,即GUI---次开发。可以通过ABAQUS本身提供的脚本接口APIfapplicationprogramminginterface、,使用ABAQUS软件中开发工具包ABAQUSGUIToolkit来创建易于用户理解的图形用户界面GUl(GraphicalUserInterfacel。显而易见,图形用户界面GUI是一个整合了窗口、按钮、图标、菜单和文本等图形对象的用户界面,用户通过激括这些对象可以达到实现某项特定的功能。如果能将ABAQUS所提供的GUI功能和其主要功能的典型算法相结合来构造开放式的用户界面,这样既可以充分发挥ABAQUS的强大的计算功能,又能够避免记忆繁琐的命令,用户在直观简洁的操作界面上,只需输入相关数据,然后点击鼠标就可以完成复杂的分析计算,同时得到可视化的计算结果。所以通过ABAQUSGuI二次开发,我们可以修改并扩展ABAQUS/CAE的功能,并且根据用户的需要
硕十学位论文产生更有效的ABAQUS问题解决方案,为方便演示我们特色化的产品方案提供平台。ABAQUSGUI设计的模板如图3.10所示。标鼍孽.j标题)菜单栏(通用菜单项、各模块菜单项、帮助项)工具栏(通用工具项、各模块王具项、帮助信息)环境栏(模块控制、环境栏巾项的控制)模型树工具箱蕊布和绘图区消息区命令区—o消息区/L图3.10ABAQUSGUI设计模板对于一个完整的自定$lJGUI应用,从其功能和面向对象编程的角度来讲,应包括6个部分:‘启动脚本、主窗口脚本、工具脚本、机制模式脚本、对话框脚本和内核脚本。每一个部分负责不同的功能,通过各部分之间的相互调用和组合来实现最终的完整GUI应用。根据ABAQUSGUI设计模板,按照图3.11所示的GuI二次开发流程来设计新的图形用户界面。命令行中输入指令崩动应用与窃口管理器相交互,实现对主窗口的控制GUlf图形用户界面>的基本构造(主菜单、工具栏,工具箱等)由任务创建功能项的集合(例如部件模型、基准工具项)收集用户数据的方式,进程指令用户输入机制GUI控制(按钮、文本区,列表等)图3.11GUI二次开发流程.29.
ABAQUS二次开发技术在编织型材料微结构设计中的应用下面分别对二次开发的各部分脚本功能做详细介绍,从上图中可知,首先创建启动脚本,该脚本执行以下任务:初始化一个自定制应用对象。应用对象负责着高级功能,例如控制着消息队列、timers和升级GUI,并控制主窗口,它并不是一个可见对象;其次,实例化主窗口。主窗口就是当自定制应用第一次被启动的时候,使用者所看到的窗口,它提供了对所有的应用功能的访问;最后,创建并运行自定制应用。一旦应用被运行,它进入到一个“事件循环’’,等待使用者进行输入操作,比如点击鼠标等。主窗口脚本执行以下任务:交互式的ABAQuS产品由一个单一的包含若干个GUI基本机构组件的主窗口组成。这个主窗口它本身只为GUI的基本结构提供了支持。通过向主窗口注册(register)模块和工具集来向自定制应用添加特殊的功能;主窗口被设计为和GUI模块同时工作,GUI模块包含了它们自身的菜单栏,工具栏,和工具箱项目。主窗口同一时间内只显示一个模块的组件。当使用者切换应用不同模块时,主窗口将负责把不同模块所含的组件调出和隐藏;简单来讲,我们通过这个脚本,可以实现符合我们需求的简洁且操作性强的主窗口。并可以隐藏一些潜在的可修改自定制应用的接口。工具箱及工具栏脚本执行以下任务:主窗口脚本只能实现ABAQUS默认的工具栏和CAE操作界面的修改。我们可以隐藏ABAQUS默认的按钮,菜单等;但是,如果我们需要添加我们自己的图标,菜单。以调用我们自己设计的对话框和实现我们自己定制的ABAQUS功能,这样就需要工具箱及工具栏脚本的功能;Toolset脚本可以向定制好的主窗口内添加我们设计好的ICON,菜单等。通过这些隶属于自定制GUI的接口,我们可以调用我们自己的GUI对话框。Form脚本执行以下任务:Mode是从用户处收集输入,处理输入,然后向内核发布命令的一种机制。表格机制(FormModes)提供了一个与独立对话框相关联的接口;Modes由GUI中的一个按钮来激活。一旦一个Mode被激活,它就要开始负责收集用户输入,处理输入,发送命令,执行任何与mode或所发送命令相关的错误处理;所以,Form必须与对话框相联系。从对话框中收集数据,并将数据集合成我们要实现的内核指令,发送给内核。实现ABAQUS的操作运算。对话框脚本执行以下任务:在自定制应用和ABAQUS计算方案中,必须从用户处收集数据。对话框的作用就是把后期计算需要的数据和需要便捷操作的选项,以及简单的介绍说明都体现出来。当使用者在对话框中进行完选择和设置之后,点击对话框下方的按钮,将通过前面讲的Form机制,以及自定义的脚本模块,来实现自定制的计算应用。ABAQUS的脚本接口是一种应用程序接口(applicationprogramminginterface,API)。它是面向对象语言Python的一个扩展,可以利用ABAQUS脚本接IZl,通过Python编译程序,完成以下任务:创建和修改ABAQUS模型组件;创.30.
硕十学位论文建和修改提交ABAQUS分析作业;从ABAQUS输出数据库读写文件;察看分析结果。一个完整的GUI自定制应用,除了有友好便捷的GUI操作界面,还有另一个重要的方面,就是我们要通过自定义界面完成的内核工作。我们把在内核中要实现的功能统一写成一个脚本。但是,有一部分数据,我们需要通过对话框来从用户处收集,我们把这部分数据作为变量写入脚本,在最后调用的时候,通过Form机制把对话框收集的数据传入内核脚本,实现ABAQUS内部运算。3.3ABAQUS--次开发内核脚本的方法.3.3.1ABAQUS二次开发内核脚本的意义ABAQUS脚本的类型有两种,分别为GUI脚本和kernel脚本。其中GUI脚本主要负责用户界面上的相关菜单、工具栏和工具箱中各项的功能;而内核脚本kernel可以实现所有模拟过程涉及的建模、网格划分等功能。在ABAQuS环境下,可以执行命令的方式有三种,除了以上的两种,还包括通过命令行接口来输入指令,如图3.12所示为ABAQUS内核工作示意图。图3.12ABAQUS内核工作示意图根据ABAQUS工作内核示意图,发送到Python解释器中的指令类型有图形用户(GUI)指令、CLI命令行接口中输入的指令和内核脚本中创建的指令。以上指
ABAQUS二次开发技术在编织型材料微结构设计中的应用令将会被送入ABAQUS/CAE内核,生成相应的input文件,即可进入ABAQUS/Standard或ABAQUS/Explicit或ABAQUS/Design的求解器进行求解,最后将结果存储在输出数据库中以便查看和调用。基于ABAQUS-次开发内核脚本是实现模拟的最佳途径。首先,从效率角度看,当编程人员有一定的编程背景后,可用的程序模块会不断增多,通过对程序不断的调用和继承很容易实现新程序的开发,这也是编程语言Python的面向对象性所具有的优势。其次,从内核的运行时间上考虑,只有内核脚本的程序调用内核进行分析计算所用时间是最少的;而且,当今对模拟尺度有从宏观向细观,甚至微观发展的趋势,这势必会导致模型的复杂性大大提高。在某些情况下需要、乃至必须使用编程来实现对复杂建模的创建。在本文所创建的编织型材料的微结构模型中,必须通过设计正确的算法,创建不同的功能函数来构建微结构,对于可能涉及的海量数据做相应的处理,直接调用内核快速实现建模,随着运行参数不断变大,结构越为复杂,用户就会发现采用内核编程方法的必要性。3.3.2ABAQUS--次开发内核脚本的方法ABAQUS内核脚本的接口是一个基于对象(objcct)的程序库。在该脚本接口中的每个对象都具有相应的数据成员(data)和函数,其中对象所包含的函数专门用来处理对象中的数据成员。这些函数被称为方法(method),可用于生成关于对象的方法,即构造函数(constructor)。当需要修改对象中的数据成员时,可以使用方法sctValues()。在ABAQUS内核脚本的编程语言中的“对象’’包括其自身的方法,数据成员和对象之间关系的定义。其中ABAQUS对象模型是指ABAQUS脚本接口中的各种对象类型之间的层次结构和相互关系,通过创建一系列的ABAQUS对象类型,可以实现对ABAQUS内核脚本接口的扩展。ABAQUS中大约包含500个对象类型,而且这些对象类型之间存在复杂关系。通常可以将其分为三类:进程对象(Session),模型数据库对象(mdb)和输出数据库对象(theOdbobjects),如图3.13所示为ABAQUS的三种对象类型。下面对各部分分别进行详述:
硕十学位论文sketchesparB(a)进程对象(b)模型数据痒对象图3.13ABAQUS的三种对象类型其中Session对象可定义视图、远程队列、用户定义的视图等;mdb表示保存在模型空间中的对象。通过创建语句fromABAQUSimport·,在新建一个名为mdb的数据库对象的同时会导入所有ABAQUS内部模块,以便在之后的模拟过程中使用这些内部模块。ABAQUS内部数据库mdb包含许多对象,例如实体模型Model的对象、创建工作Job的对象等等。其中,Model对象又包含part,section,material,step等对象,分别用来创建部件和截面、设定材料和分析步等,它几乎包含了建模中所需要的所有对象类型,是需要考虑的重要对象类型。在ABAQUS的输出数据库odb中包括一些ABAQUS对象模型的Container,可以形象的认为是“仓库”或是“序列”,主要是发挥其存储功能。比如Stepscontainer是用于存储分析步信息的“仓库’’,它包含了分析中所有的Step。具有同样功能的输出数据库还有“part”、“sectionCategories’’等。(1)Session(进程对象)Session表示进程对象,但其本身并不存储在ABAQUS/CAE进程内。例如,定义视图,序列,用户定义视图等对象。在如图3.14中描述了进程对象层次结构分布图,在进程中包括Contain和Singularobject两类,其中属于Contain的有odbs、displayGroup,colors,views,viewports,paths、xyDataO彩ects,xyPlots,queues.33.—..。。。。。。,。。。,.。。。,L舭叩胍。e.诳舭一厂一一
ABAQUS__--次开发技术在编织型材料微结构设计中的应用1u皇鲁詈詈=詈暑暑詈昔皇薯毒皇皇暑篁昌霉暑兽皇=詈詈皇皇詈皇=暑皇穹詈!詈詈穹詈=皇穹皇皇==詈詈毫皇鼍詈皇詈皇==詈皇詈=暑=暑詈暑皇==詈詈詈喜暑昌詈=詈暑詈詈詈==詈暑=皇皇詈=詈==鼍鲁鼍曩等;Singularobject包括有defaultOdbDisplay、printOptions、psOption等。Session图3.14进程对象层次结构分布图lay在session下属的对象中还包括其他对象,以session下属对象Viewports中的子对象结构分布图为例,如图3.15所示。Session下属对象Viewportsl拘子对象还包括assemblyDisplayOptions、displayObject、odbDisplay、partDisplayOptions等,它仃]在结构层次上与Viewports子对象是一致的图3.15Viewports中的子对象结构分布图(2)mdb(模型数据库对象)mdb模型数据库中包含模型对象和作业对象,其下属的对象包括Parts、.34.
硕士学位论文Sections、Steps等,如图3.16所示为模型数据库下属对象层次结构分布图。其中,对象rootAssembly属于一个简单的对象类型,而其它的对象则表示为container(容器)。AdaptivemeshControisamplitudesboundaryConditionsconstraintsfieldsfieldOutputRequestspartsrootAssemblysectionssteps图3.16模型数据库下属对象层次结构分布图图3.17模型数据库下属RootAssembly对象层次结构分布图
ABAQUS一-次开发技术在编织型材料微结构设计中的应用(3)Odb(输出数据库对象)Odb输出数据库对象是指被保存在输出数据库中的对象,包括模型和分析结果数据信息等。如图4.11所示为输出数据库对象层次结构分布图,其中包括rootAssembly雨J"象、parts薨J"象、sectionCategories聂J"象和steps对象等。而且对象steps删g括frames对象和historyRegions对象等。图3.18输出数据库对象层次结构分布图ABAQUS/CAE中包含两种commands(指令)类型,分别为kernelcommands(1勾核指令)和GUIcommands(GUI指令),它们具有不同的功能。其中,Kernelcommands内核指令用于创建有限元实体模型、设定相应工况、进行分析计算,最终实现后处理以便预测该有限元模型的相关性能。而GUIcommands是用于创建新的图形用户界面,包括在该用户界面上创建新的菜单、工具栏和工具箱等,其中最为重要的环节是编写指令实现GUI指令与内核指令之间的信息传递,即为二者之间的交互机制。由此可以实现在自定制的图形用户界面上输入关键参数,传入内核、实现计算等。这是一个提供给用户的简单而快捷的二次开发界面,用户的任务从打开这一界面开始,实现所有保存着ABAQUS/CAE执行模型操作的所有数据和方法的内核进程(kernelprocess)。例如,创建几何模型、并对其进行网格划分等。所有的内核kernelprocess进程都将脱离GUIprocess独立运行。kernelcommand字符串通过进程间通信(IPC)实现由GUIprocess到kernelprocess,同时对kernelcommand字符串进行解释。如果内核进程中出现异常,该异常将会被捕捉并送至IJGUIprocess,然后由用户做相应处理,一般情况下,会以显示错误对话框的方式来通知用户。当用户创建了一个内核脚本,可以通过在ABAQUS/CAE界面的导入脚本接口RunScript导入。由于ABAQUS内置有Python编译器,所以内核脚本可以在任何编辑器中进行编辑。编写的内核脚本通常可分为三种类型,包括导入模块类型的脚本,这一部分必不可少;其次还有函数体模块,通常是用户自己创建的具有某种.36.bm妒测姗萋I一一L_t—n—O一.缪k啪淑二=m协一ea一一‰[认觚电阻眦蜘州卿一
硕士学位论文功能的部分;最后是程序调用模块,用于实现内核程序的顺序执行。以上三部分脚本可以根据编程者的习惯有所变化,但根本上的功能是一定的。下面进行简要介绍和举例:ABAQUS/CAE包含了几乎所有建模、网格划分等内容,也是通过编写内核脚本要实现的关键部分的功能。但是,在ABAQUS数据库中本身存在大量的功能模块,是可以为我们所用的。通过使用这些模块可以大大减少编程的工作量,提高软件开发的效率。我们可以针对所需,导入一些模块,比如需要使用part模块,可以编写指令importpart;为了尽可能多的利用已有的模块资源,也可以直接编写指令fromABAQUSimport宰,表示导入了ABAQUS中存在的所有模块,这是通常用到模块较多的情况下采用的方法。导入了所需的模块后,根据内核脚本所要实现的功能,比如有建模、网格分析、赋予材料属性、设计工况和分析步等来确定编程的模块。其中,对于几何模型的创建可能涉及的算法必须首先进行设计,可以将该部分放入一个函数体中,或是构建一个新类,以便之后使用,或是遇到要实现相类似的功能时直接调用该模块即可。当创建的几何模型确定无误后方可放入类中,同时对关键性参数进行设定。ABAQUS内核脚本实现有限元分析的步骤是一定的,所以当模型创建完成,接下来按照分析的顺序来编写相应的模块,分别创建其中的命令。例如,要创建网格划分的模块时,首先必须熟悉网格划分中主要的指令,包括指令的含义和涉及的参数。其次,掌握基本的网格划分方法。在此基础上确定具体的网格划分方案。主要的模块编写完成后还需要编写提交工作和分析计算模块。3.4基于ABAQUS--次开发的交互机制的设计3.4.1二次开发交互机制的用途交互机制是实现GUI和内核之间交流的“桥梁”,可以通过使用ABAQUSGUI工具集中类库提供类AFXGuiCommand来实现。该类可以构建GUIcommand。其中AFXGuiCommand类需要一些参数,下面分别进行详述:(1)mode(机制)ABAQUS包括两种机制,一种是表格机制,另一种为进程机制,通常在二次开发交互机制中使用到的是表格机制。modes可用来激活GUI中的控制,一般是通过菜单按钮来实现。一旦mode被激活,所有的用户输入和数据处理都通过该机制实现,具体需要编写相应指令。在ABAQUSGUI提供的表格机制(Formmodes)中,Formmodes将会提供一个对话框接口,可以使用一个或多个对话框来收集用户的数据;而进程机制(Proceduremodes)则提供了一个提示行接口,通过在自
ABAQUS-----次开发技术在编织犁材料微结构设计中的应用定制应用的提示区(promptarea)内提示用户输入,逐步获得用户数据。(2)method(方法)method是一些字符串的集合,用于指定kernelcommand中使用的方法。(3)obiectName(对象名)objectName是一个字符串,用于指定kernelcommand中用户设定的对象。(4)registerQuery(查询注册)registerQuery是一个布尔运算值,指定了在对象中是否注册一个query。AFXGuiCommand类对象很多,例如:下面的语句就完整地创建了一个AFXGuiCommand类对象:cmd=AFXGuiCommand(self,’setValues’,’session.graphicsOptions’,TRUE)ABAQUS中存在相应的消息响应机制。ABAQUSGUIToolkit是通过在GUIprocessl为部使用目标/信息体系(target/messagesystem)来获得信息交流。所有的组件都可以向任何其他的组件发送信息,同时也可以接收来自任何组件的消息。一条消息包含两个部分,分别为消息类型和消息ID。消息类型指明当前发生时间的类型,例如,点击一个按钮。消息ID贝J]表示消息的发送者(sender)。在target类中存在map(映射关系),一条消息将按照该映射关系被发送至消息处理器(messagehandler)中。用户可以根据需要增加消息映射库中的项目。当一种类型(type)的消息和消息ID被接收时,消息映射库就会自动指定被调用的方法(method)。如图3.19所示为一个目标与消息响应机制的实例。图3.19目标与消息响应机制实例目标对象通过消息处理器(messagehandlers)对消息做出反应。所有的消息处理器都有相同的模型结构,包括消息发送器(messagesender)、消息选择器.38-
硕+学位论文(messageselector)和用户数据(userdata)。在一个ABAQUSGUI应用中,用户可以完成以下任务:(1)在对话框内设定初始值(Initializethevaluesinadialogbox.);(2)粘贴对话框,允许用户改变其中的值(Postthedialogboxtoallowtheusertomakechanges.);(3)从对话框中收集用户的数据(Collectthechangesfromthedialogbox.)。数据目标(datatarget)在应用(application)与GUI中的任何自定义的组件之间起着重要的作用,可以实现多个组件与数据目标的连接。当用户在自定制的图形用户界面GUI中要改变一个值时,由数据目标datatarget所监控的application状态会自动升级。相反地,当application状态更新时,与数据对象datatarget相关联的组件也会自动更新。在GUI中的组件存在两种工作状态,分别:为push状态和pull状态。当组件处于push状态时,组件将会向appliction收集和发送用户输入。首先,可以通过用户在文本区输入相应的数值,然后发送(ID,SEL_COMMAND)消息给数据对象,最后数据目标对象通过sender做出响应。当组件处于pull状态时,组件通过询问应用application来保持更新。如果GUI处于空闲时,它会启动GUI更新,然后由此而引发每个组件都会发送一个(ID,SEL.UPDATE)消息给目标对象(target对象),而数据目标对象也会通过sender做出响应。3.4.2二次开发交互机制的方法通常在ABAQUS交互机制的设计中,首先对GUI和内核部分的交互接口的需求进行分析,明确要通过该接口实现哪些数据的传输和指令的执行,然后在GUI中创建相应的指令,并且对应在内核脚本中编写相应的指令,实现两者的互通,注意数据和指令必须完全对应,每一条指令实现具体的功能,其针对的参数设计要完整且正确。采用表格机制进行二次开发交互机制,首先设计新的用户界面,在该界面中设计交互机制实现的接口,比如可以是菜单项,工具栏和工具箱等,通常选择工具栏项比较醒目且方便。当用户点击工具栏项时将会激活执行一定指令,这需要机制中进行指定,通常可以指定发生的响应是调用一个对话框。这样就可以创建一个新的对话框,并且在对话框中设定数据传输的接口,这是交互机制涉及的另一部分重要功能,由此完成数据和内核之间的通信。如果采用进程机制(Proceduremodes)来实现交互机制的设计,需要提供一个接口,通过该接口中的提示区来引导用户,通过一系列的步骤和使用对话框、视图(viewport)的选择来收集用户数据的输入。无论是表格机制或是进程机制都是一种数据实现传输、送入内核的方法,在具体的应用中各有所长。所以,在创建交互机制时可以选择最方便实现的,或是
ABAQUS二次开发技术在编织裂材料微结构设计中的应用在不同环节使用两种机制分别进行设计,这里要根据用户的需要灵活使用。例如,当一个Mode机制需要实现当前视图中绘制图形或是高亮显示模型时,该mode必须为一个ProcedureModes(进程方式),因为在ABAQUS/CAE中被高亮显示的对象需要用户来点击它,而在任何状态下用户点击视图中的对象都必须是一个进程方式(ProcedureModes)。采用进程机制进程方式(ProcedureModes)可以确保当前视图下的任一时间内只有一个进程控制当前显示窗口。如果有两个具有不同目的的进程高亮显示(highlight)同一个模型中不同的部分,那样显示结果将会令人费解。一旦创建的机制被激活,它就要开始负责收集用户数据的输入和处理、向内核发送命令并且同时执行相关的错误处理。ABAQUSGUI中实现用户数据的输入过程中,mode机制将会允许用户执行一些中间的错误检查。例如,当用户想设定输入一个O至1范围内的数值,但是输入的数值超过了这个范围,用户会对这个错误的输入做出标记,构建命令(command),然后将命令发送至内核(kernel)。如果kernel发出异常,机制将会对该异常进行处理。如图3.20显示了机带lJmode的工作流程。图3.20Mode(机制)工作流程图如上图所示,当机锖1]Mode--El被激活后,它会进行一系列收集用户数据和校验输入的事件循环。当用户完成数据提交或整个对话框数据的输入时,它将调用.40.
硕士学位论文下列方法进行检验:(1)verifyCufrentKeywordValues()方法该方法是关键字调用校验方法,它可用于校验对话框中的每一个关键字,如果需要,该方法可还粘贴错误对话框。在没有任何错误的情况下,verifyKeywordValues()方法会返回TRUE;否则,该方法返I司FALSE,同时终止下一步进程。(2)doCustomChecks()方法用户使用doCustomChecks0可以重新定义该方法,并执行一些其他关键字检查,通常执行一定数值范围的检查或进行二些相互耦合数据的检查。如果没有出现错误,doCustomChecks()方法会返回TRUE;否则返回FALSE,同时终止下一步进程。(3)VerifyKeywordValues()方法该方法也是一个关键字keywordl拘调用校验方法,如果需要,该方法还会粘贴一个错误对话框。如果没有出现任何错误,verifyKeywordValues0方法返回TRUE;否则返回FALSE,同时终止下一步进程。3.5本章小结本章节在前面几章的基础之上,首先介绍了ABAQUS软件的相关内容和编程语言Python的基础知识,并在此基础上分析了ABAQUSGUI二次开发中使用的基本组件和具体的实现方法。同时,ABAQUSGUI工具集包含大量类的数据库,其中已经定义了许多现成的类的主体,而编程者只需要掌握每个组件类的功能和构造函数就可以方便地使用它们。其次,介绍了二次开发ABAQuS内核脚本的意义和常用的编写脚本方法。但是,GUI和kernel的二次开发是对ABAQuS进行二次开发的两个方面,相互独立。因此需要创建交互机制来实现二者之间的联系和交流。最后介绍了二次开发交互机制的用途和设计方法,只有通过交互机制才能完成数据的输入和处理,并将相关命令送入内核,通过调用内核来完成任务。对上述几个方面的掌握是下一章节中具体应用的基础。
ABAQUS二二次开发技术在编织型材料微结构设计中的应用第4章ABAQUS--次开发技术的应用实例4.1GUl--次开发技术在编织型材料微结构设计中的应用4.1.1GUI--次开发的脚本文件按照第三章中所讲述的二次开发方法,具体开发出编织型材料微结构的自定制应用,如图4.1所示为该自定制应用中刨建的脚本文件。其中主要包括三种类型:(1)由启动脚本构成的EXE可执行文件;(2)以.pv为后缀的Python文件;(3)咀.dat为后缀的数据类型文件。用于简单而快捷地实现海量化自动建模和分析计算,从而通过参数化设计调用ABAQUS内核功能。却p竹‘c惜【叫f*T∞M洲.计cl意感‰髓。||略瞬纠‘髑28“t∞蚺p”Ⅲa11H女wtdwpyc回黔“图4.I三维编织复台材料微结构自定制应用中的文件首先,编程人员要在WINDOWS平台下对批处理文件进行编写和处理.完成EXE可执行文件的设计和编辑。批处理程序扩展名为cmd或bat,这里用到的是bat。当用户在命令提示符下输入文件名或从另一个程序运行批处理程序时,其命令将按顺序处理。批处理程序也被称为批处理文件或批处理脚本,英文译为batch,批处理文件后缀hal就取自batch的前三个字母.而且它的构成没有固定格式,每一行可视为一个命令,每个命令里可以含有多条子命令,从第一行指令开始执行,直到最后一行指令结束。批处理具有使用方便、灵活,自动化程度高的优点。11Ir一]—■罔
硕士学位论文其次为数据文件,都是以.dat为后缀。这些数据是在运行内核脚本程序时用到的数据,根据功能的不同,数据也分为不同的类型。例如,有用于创建部件part名称的大量数据,也有程序运行中使用到的自动创建的输入数据等。数据相对程序独立大大提高了工作效率。通过ABAQUS二次开发技术创建自定制应用,将脚本和数据保存在用户任意创建的文件夹下,只需启动GUI自定制应用,可以方便的实现数据的输入输出和相关处理,自动完成建模、分析和计算等任务。使用面向对象编程语言Python,用户可以创建后缀名为.py的程序源代码。但是Python并不是传统意义上的解释语言,它是先把程序编译成bytccode(字节码),然后再执行。Python之所以采用这样的方法执行源代码是因为输入一个模块相对来说是很耗时的,所以针对它的这一缺点做了一些改进,从而提高输入模块的速度。其中采用的一种方法就是创建字节编译的文件,这些文件都以.pyc作为扩展名。它与Python程序的中间状态有关。当你在其他情况下需要使用这个模块时,输入.pyc文件的速度会快很多,根源在于其中一部分输入模块所需的处理已经完成了。对于用户而言,源代码易读,但需要耗费时间利用计算机进行解析。如果脚本程序较大,必须考虑解析时间的问题。4.1.2ABAQUSGUI----次开发界面用户通过双击启动脚本执行文件,将会运行ABAQUS自定制应用程序,首先显示ABAQUSGUI--次开发的主窗口界面,如图4.2所示为编织型材料微结构设计中的GUI。其中,对菜单项进行了删减,不需要或是不重要的菜单项都被隐藏;而保留了工具栏中最为常用的选项,同时在工具栏中设计了自定制的一个工具项,点击该工具按钮,就会激活一个自定制的对话框。在工具箱中只设计了一项,其图标和工具栏中的选项是一样的。其他包括环境栏、信息提示区和命令行接口等项都全部省略。在GuI二次开发后的界面下,用户可以更为快捷的进入模拟过程,即使是一般的非专业工作人员也可以很快掌握操作流程。
ABAQUS二次开发技术在编织型材料微结构设计中的应用j■⋯0+cAq口lira_▲6Ⅵ~目囤4.2编织型材料微结构设计中的Gu在自定制的主窗口界面上可以根据用户的需要设计激活按钮。即为调用对话框的接口。存在三种自定义的方式显示自定制对话框,这三种方式分别是菜单调用;工具栏按钮调用:工具箱按钮调用。通过不同的方式.都可以实现自定制对话框的调用。这咀用到了第一种和第三种方式。对于调用的对话框,用户必须首先进行设计,可以根据具体需要进行布局。以此为“蓝图”来分块实现。通常情况下,按照不同功能,对话框分为三部分:模型显示区,用于显示创建的模型和对要解决的问题进行简单的解释;参数设计区,为模拟过程中的关键性参数留出接口以便用户输入;任务提交区,实现分析计算的提交和监测。通常情况下,如图43为对话框的创建模板。
硕士学位论文压重重重雯i—————一图4.3对话框模板毗上圈为模板对编织型材料微结构应用中的对话框进行设计,如图44所示为所创建的自定制应用对话框。翌’=≥:’?””口+cAq西11蹬目直一”!!J—I熊曾圈“圜圈4.4编织型材料微结构应用中的对话框-45-国
ABAQUS二次开发技术在编织型材料微结构设计中的应用首先分析第一部分,即模型显示。该模型为一个编织型材料的增强相RVE,三层结构的纵向组装,每一层都为平面内的编织体结构。如图45所示为3D编织体的显示。图4.5编织型材料微结构模型(三层)由于三维编织体是单层结构的重复,所以需要对其单层编织方式进行显示如图4.6所示。其中参数S表示单束纤维之间的间距。⋯⋯*逼遥卯■■一强圈囝4.‘编织型材料微结构模型(单屡)同时编织体结构会随单束纤维截面的形状改变而改变,进而要对其截面的几何特征进行显示。如图47所示。
r⋯0⋯自删她鲤毹_一⋯⋯~一,,,,●●●2p●●、、、●●●拿¨●、、.●●●●●●,一7囤4.7单束纤维截面的几何特征下面显示的是在创建编织型材料微结构增强相RVE模型时涉及的参数接口如图48所示。hutteriP4岫v州ynr曲口删fihlal蜘lrneb神d岫秭n∞d岫∽●hⅫdsnootⅫh辩nⅫ∞●j州打∞*∞曲dra缸O)1恤∞a哪H峭1怕fh唧:1辅q豫岬她№Fh"缸∞ITk$,咖瞻H嘲妇}妇Cm‘图4.8三维编织微结构增强相RYE模型的参数接口由上图可知,在该应用中涉及的参数有两类,每一类中既有不同的参数,也有相同的参数。比如说,图中的后三项,即单根纤维的截面半径、间距以及纤维束的阃距是相同的参数,而第一类中纤维束截面长、短轴的长度与第二共中纤维柬中包含的单根纤维总数则为不同的参数。最后一部分为任务提交区,包含四个功能按钮,分别为预览、缺省、分析和取消。如图49所示。堕型!{』堕‘i!!女堂图4.9任务提交区按钮
ABAQUS二次开发技术在编织型材料微结构设计中的应用4.1.3ABAQUSGUI自定制应用的参数化设计编织体几何模型与单束纤维截面的几何形状息息相关,这里讨论了决定单束纤维截面几何形状的两种不同参数化设计方案。第一种方案:在已知单束纤维截面的短轴长、长轴长,单根纤维半径及单根纤维间距的前提下,创建纤维增强相RVE模型:第二种方案:已知构成单束纤维体的纤维总数、单根纤维半径及单根纤维间距的条件下,创建编织体几何模型。下面分别介绍。(1)方案1的参数化设计首先,设定相关变量,如表1所示,假定单束纤维截面的短(长)轴长为变量b(a)、单根纤维半径为r、单根纤维间距为I,单束纤维之间的间距为d。另外,还需要设定两个计数变量m和n,其中m表示单束纤维截面上短轴所在的坐标轴上(正方向上)所有单根纤维的总根数(不包括截面中心在原点处的纤维),n则为单束纤维截面上长轴所在的坐标轴上所有单根纤维的总根数。表4.1变量设定及含义变量名释义单根纤维的截面半径(这里是圆截面)单束纤维截面的长轴长单束纤维截面的短轴长单根纤维之间的距离单束纤维之间的间距其次,根据单束纤维截面的几何特征易推导出设定的相关变量之间的数学关系式:a=r*n+I宰(n.1)/2;b=r+0.866*(2*r+I)*m。在以上准备工作的前提下,可以完成创建单束纤维截面函数,但是设定的相关变量在函数体中一定要设定为参数。例如,定义一个单束纤维截面函数为:dcfSection(a,I):,其中变量a和I为函数的参数。(2)方案2的参数化设计在方案1设定的变量基础上,方案2中还需要设定变量来表示单束纤维所包含单根纤维的总数,记为n1。进而创建截面函数,并且将相关变量设为函数的参数。无论是以上哪种方案,这里都主要讨论了四种截面的几何形状,即b与a的比值分别为1:1,1:2,1:3和1:4的截面。4.1.4ABAQUSGUI消息响应机制编写交互机St]scripts,首先需要创建与设定变量对应的关键字,例如,描述变量a对应的关键字的语句为:
self.aKw=AFxFloatKoyword(cmd,’a’,TRUE,4O)以此类推,将所有的变量相应的关键字表述完整。其次,创建用户自定义窗口函数,可以通过下面的语句实现:defgetFirstDialog(self):returnCustomdb(self)展后.还须创建一个函数来实现激活按钮的功能,例如:defgetcommandstring(selD:ifself.getPressedButtonId()_=FXDialog.ID—CLICKED_APPLY:selfanalyzeCmddeactivateO4.2二次开发编织型材料微结构的内核脚本4.2.1编织型材料微结构的内核脚本中的模块设计针对具体的不同应用创建内核脚本,它是ABAQUS/CAE中可以实现的功能的有效结合,如图410为二次开发编织型材料微结构的内核脚本文件。threeDWeaveModule.pycCompiledPythnnFile2。雌图4.10二次开发编织型材料徽结构的内核脚本文件在对上述脚本文件的编写过程中,首先根据参数化设计方案,确定内核脚本的编写流程,如图411所示。可见其中涉及了两种方案的程序模块,以及它们之间的结合。
ABAQUS二次开发技术在编织型材料微结构设计中的应用图4.11内核脚本编写方案流程图根据以上流程图,首先导入内核脚本程序中必需的ABAQUS内部模块,为具体功能的程序编写做好准备;同时在数据准备方面,需要读取外部的相关数据文件。由于这里需要根据两种不同方案来实现模型的创建,所以必须编写选择函数,来确定方案的选取;如果选择第一种方案,则相应执行方案一中的脚本程序,如果选择第二种方案,则相应的执行方案二中的程序。这里的选择函数只影响单束纤维的几何特征。最后根据确定的单束纤维的几何模型,继续执行纤维柬组装函数,最终完成编织体模型创建。下面详述其中的主要环节。首先,要明确需要创建的编织结构的特点,从单层结构的角度来分析,它由水平方向上的四根纤维束和竖直方向上的8根纤维柬有规律性地编织而成,所以要编写一个函数,分别从以上两个方向创建纤维束,然后对其进行组装,即可完成编织体的构建。由于这里的纤维束截面的几何特征是一致的,所以,我们可以针对截面特征构建函数,以后若是用到该函数时,只需调用即可。这里关于纤维束几何特征函数的创建是关键,任意一根纤维束的几何特征都可以通过截面和扫掠线两个变量来确定,其中关于截面的形状认为是一致的,所以扫掠线的不同造成了最终实现的纤维束的几何特征各不相同。通常情况下,先创建扫掠线,然后调用截面函数,使用ABAQUS中构建扫掠体特征的方法就可以简单的完成一根纤维束的创建了。以此类推,可以创建这里涉及的所有纤维束。.50.
关于纤维束的截面特征可以有很多,以上述两种方案中涉及的特征为例,如M412所示。其中,截面长、短轴比例分别为l:1、1:2、l:3,1:4。网圈a)截面长、短轴比例为l:l的纤维束b)截面长、短轴比例为l:2的纤维束c)毂面长、短轴比例为1:3的纤维束d)截面长、短轴比例为1:4的纤维束图4.12纤维束的截面特征4.2.2编织型材料微结构的内核脚本的可视化用户在新创建的GUI界面上选择实现方案,进而输入所需的参数值.点击激活按钮,程序将自动运行。当参数的范围很大时,可视为实现了海量数据处理。如图4.13所示为b:a的值分别是1:1、1:2、1:3和l:4的情况下所创建的编织体几何模型,它们都是通过在新创建的图形用户界面上(GUl)输入关键性参数,然后点击激活按钮,程序自动运行而实现的。
ABAQUSZ.敬开发技术在编织型材料微结构设计中的应片j111截面比例l:1b1截面比倒1:2c1截面比倒1:3d)截面比例1:4图413增强相RVE模型
硕七学位论文显而易见,以上图示的编织型材料微结构模型在坐标轴y向上是三层结构,随着单束纤维中包含的单根纤维数目的不断增多,可以完成海量化处理,有效的实现在微观尺度下模型的近似构建。4.3本章小结本章应用ABAQUS一--次开发技术,采用参数化设计方法实现面向对象的脚本编程,具体应用于构建编织型材料微结构模型和二次开发图形用户界面。在界面中显示编织体几何模型、设定相关参数、编写内核脚本中各功能函数,进而实现在界面与内核之间的信息交互,完成消息响应。这将方便用户对关键性参数的不断输入和校验,并且随着参数范围的增大,有效的实现了海量数据的处理。
ABAQUS一--次开发技术在编织型材料微结构设计中的应用结论本文应用有限元软件ABAQUS二次开发技术,针对编织型材料微结构设计中的用户需求,分别进行图形用户界面(GUI)和内核脚本二次开发,并且通过设计用户数据输入对话框和入机交互机制实现了用户信息在界面与内核之间的通信,进而创建在不同参数控制下的编织型材料的几何模型。这种以用户需求和简单快捷使用为目标,进行界面优化和集成操作的思路将大大提升产品的市场竞争力,同时对于普及CAE技术具有重要的现实意义。本文主要完成以下工作:1.在理解有限元分析方法的基础上,掌握了对ABAQUS软件常用功能的使用,熟悉ABAQUSCAE模拟流程。在界面方面,熟悉常用组件的功能及其与内核之间的交互方法;另一方面,掌握了内核指令的运行接口,并结合编织型材料微结构设计的具体应用,采用通过界面调用内核的方法来实现脚本的运行。2.通过对ABAQUS接口语言Python进行系统化学习,熟悉了该编程语言的相关语法和内部大量的工具包,掌握了常用功能涉及的编程方法和技术,并结合编织型材料微结构设计的具体应用,编写图形用户界面脚本(包括启动脚本、主窗口脚本、工具集脚本等)。同时,针对微结构几何模型的特征进行了相关算法的设计,进而实现了内核脚本的编写。3.掌握了参数化设计方法,并将其应用于内核脚本的编写中。通过对其中决定几何模型特征的关键性变量进行参数化设计,实现了用户可以根据所需,改变参数值以获得理想模型的目的。4.采用面向对象的编程思想编写脚本,创建不同的“对象",即“代码的封装单元’’。在编织型材料微结构设计的具体应用中,通过调用“对象"的方法实现了代码的重复使用,例如,通过调用纤维束组装函数可以实现两种不同方案中涉及的组装功能。5.根据编织体几何模型特征和关键性参数实现了对话框布局和参数接口的设计,同时创建了界面与内核之间的交互机制。用户点击激活按钮即可调用对话框,进而输入相关参数,通过设计的交互机制将参数值送入内核,最终完成自动创建编织体几何模型的过程。本文将ABAQUS--次开发技术应用到编织型材料的微结构设计中,实现了界面优化和集成操作,这有效的解决了用户在软件操作和工程应用中的困难,大大提高了工作效率。该方法不仅适用于宏观或微观尺度上任何结构的创建,也可拓展到有限元分析的全部过程中。同时,针对不同行业中的工程应用问题,该方法都适用。在有限元方法越来越被广泛应用的将来,采用二次开发为用户提供一个方便而快捷的服务平台的思路,将适应市场化需求,具有一定的开发潜力。.S4.
硕士学位论文参考文献【1】胡红军,杨明波.“计算机在材料科学中应用”课程教学设计.铸造技术,2007,28(7):9—10【2】高英俊,刘慧,钟夏平.计算机模拟技术在材料科学中的应用.广西大学学报,2001,26(4):29-30【3】陈文革,魏劲松,谷臣清.计算机在材料科学中的应用.材料导报,2000,14(2):21.22【4】胡忠.材料加工过程计算机模拟的现状与未来.塑性工程学报,1998,5(2):3.4【5】赵友选.SIMULIA/ABAQUS在航空工业中的应用.航空制造技术,2008,18(32):10—11【6】倪黎.材料细观组织结构的有限元模拟:【硕士学位论文】.兰州理工大学,2005,3.4【7】倪黎,李旭东.应用TransMesh进行微观组织结构的有限元网格划分.兰州理工大学学报,2005,31(2):24.28【8】王国梁.ABAQUSGUI.二次开发技术在材料领域的研究与应用:【硕士学位论文】.兰州理工大学,2009,3-4【9】BOISSIONNATJD.Shapereconstructionfromplanarcrosssections.ComputVisionGraphImageProc,1988,44(1):1-2【10】刘国权,张禹,秦湘阁等.材料显微组织三维观测及基于图像模型的研究.中国体视学与图像分析,2001,1(2):46.47【11】陈百明,李华清,李旭东.计算机模拟材料组织结构的程序设计.兰州理工大学学报,2005,31(1):17.18【12】TIPPERJC.Thestudyofgeologicalobjectsinthree·dimensionsbythecomputerizedreconstructionofserialsections.JourGeology,1976,84(4)::476-484【13】MEYERSD,SKINNERS.Surfacefromcontours.ACMTransactionsonGraphics,1992,11(3):228—258【14】戴朴,方耀云,姜泗长.连续切片的计算机三维重建及立体视觉.中国体视学与图像分析,1996,1(1,2):71.73【15】刘国权.体视学在材料科学研究中的进展与展望.中国体视学与图像分析,1996,1(2):96·101【16】HERBERTMJ,JONESCB,TUDHOPEDS,etal.There.dimensionalreconstructionofgeoscientificobjectsfromserialsections.VisualComputer,.5S.
ABAQUS一--次开发技术在编织型材料微结构设计中的应用1995(11):343-359【17】李旭东.关于微裂纹在材料微结构内的虚拟扩展.失效分析与预测,2006,1(1):28—34.f18】任淮辉,李旭东,刘德学等.三维复合材料微结构的力学响应分析.兰州理工大学学报,2008,34(2):1-2【19】LixD.MesomechanicsofComputationandDesignofUse-SpecificMaterials,SimulationandFabricationofAdvancedMaterialswithMesoscopicStructures,EditedbyG.S.Siih,SSakaiandV.E.Panin,ProceedingsofthefifthinternationalconferenceformesomechanicsheldinTokyo,2003,259—271【201BensonDJ,ConleyP.ModellingSimul.Mater.Sci.Eng.1999,7—8【21】李旭东;复合材料微观组织结构的计算机可视化表征.2004年中国材料研讨会论文摘要集,2004,34(2):12.14【22】AURENHAMMERF.Voronoidiagramsasurveyofafundamentalgeometricdatastructure.ACMComputingSurveys,1991,23(3):345-405【23】AMENTAN,BERNM.SurfacereconstructionfromVoronoifiltering.DiscreteandComputationalGeometry,1999,22:481—504【24】TUCERYANM,JAINAK.TexturesegmentationusingVoronoidiagrams.IEEETransactionsonPatternAnalysisandMachineIntelligence,1990,12(2):211.216【25】李俊琛,李旭东,任淮辉.海量平面点集Voronoi图的构造算法.兰州理工大学学报,2007,33(4):11.12【26】李俊琛,李旭东,刘德学.空间点集Voronoi图的海量构造算法及可视化技术.兰州理工大学学报,2007,33(5):22.25【27】任淮辉,李旭东,李俊琛.三维多晶体材料微结构的力学响应计算.兰州理工大学学报.2008,34(6):20.23【28】任淮辉,李旭东,李俊琛.二维多晶体材料微结构的力学响应计算.武汉科技大学学报,2008,35(2):33.35【29】徐承强,李旭东,盛捷.取向分布函数(ODF)的计算机模拟.甘肃科技,2008,30(2):10·12【30】王栗然,李旭东.水泥基复合材料细观组织结构的三维计算机模拟.“全国混凝土新技术及其工程应用”技术交流会暨2007年年会交流资料,2007年【31】任淮辉,李旭东.微裂纹(群)在材料微结构内扩展的计算机模拟.兰州理工大学学报,2007,33(4):15.16【32】石益平,周玉蓉.ABAQuS有限元实例详解.北京:机械工业出版社.2006,2.3.S6.
硕士学位论文【33】庄茁,张帆,岑松等.ABAQUS非线性有限元分析与实例.北京:科学出版社,2005,7-8【34】庄茁.ABAQUS有限元软件6.4版入门指南.北京:清华大学出版社,2004,3.4【35】BatheKJandWilsonE.NumericalMethodsinfiniteElementAnalysis.Prenticeice.Hall,lnc.1976。11.15【361BatheKJ.FiniteElementProceduresinEngineeringAnalysis.Prentice-Hall,Inc.1976,23—25【37】郁吉仁,岑章志,王勋成.三通有限元自动分析.核动力工程,1982(2):92.98【38】陈晓峰.基于Ansys及APDL的塔式起重机有限元分析系统:【硕士学位论文】.东北大学,2008,3-4【39】Hibbitt,Karlsson,Sorensen.ABAQuSGUIToolkitUser’SManualVersion6.5【40】H.M.Deitel,P.J.Deitel,J.Pliperi.Python编程金典.周靖.第二版.北京:北京工业出版社,2000,2-4【41】WesleyJ.Chun.Python核心编程.宋吉广.第二版.北京:人民邮电出版社,2002,3.4【42】钟同圣,卫丰,王鸷,智友海.Python语言和ABAQUS前处理二次开发.郑州大学学报(理学版),2006,22(3):2-3-57.
ABAQUS--次开发技术在编织型材料微结构设计中的应用致谢我的论文是在李旭东教授悉心指导下完成的,非常感谢李老师在我对其撰写过程中给予的帮助。通过三年来在“静厚新’’课题组的学习,老师渊博的学识和严谨的治学态度让我受益匪浅:不仅学到了从事科研工作的方法,更重要的是领悟了治学之道:遵从我们课题组的宗旨:静心静气练内功,一心一意谋特色,老师不断培养我们学习中应具备的“习惯",并在我遇到困难和挫折时,鼓励我要勇往直前。从论文的选题、课题研究到撰写论文,李老师都无私的给予我帮助,您严谨求实的治学态度、孜孜不倦的攻关精神,都深深地影响着我,这将是我以后工作和学习中的一笔精神财富,在此向您给予深深的谢意!我也要感谢在攻读硕士期间帮助过我的老师和同学,是你们在我学习遇到困难时给予了我很大的帮助,同时也让我的生活充满了欢乐。同时感谢课题组的师兄、师姐、师弟和师妹们,在此就不一一列举,但我深深记得大家给我的帮助和指导,谢谢你们!还要由衷地感谢我的家人及男友,你们多年来给予我的支持和毫无保留的爱是我努力进取、刻苦钻研的不竭动力!最后向百忙之中参与论文评审、学位答辩的各位专家表示深深的谢意!
硕士学何论文附录A攻读学位期间所发表的学术论文目录【1】周兰,李旭东,任军强,黄鑫.ABAQUSGUI二次开发在三维编织复合材料增强相RVE创建中的应用.甘肃科技,已接受,待发表,文章编号201000374【2】任军强,李旭东,周兰,王国梁.ABAQUS自动化建模技术在纤维复合材料微结构建模中的应用.甘肃科技,已接受,待发表,文章编号201000364【31黄鑫,李旭东,李俊琛,周兰.压电复合材料电学参数仿真预测.甘肃科技,已接受,待发表,文章编号201000739