您的位置:网站首页 > Ansys教程

ANSYS二次开发及在桥梁优化设计中的应用

时间:2008-09-15 11:53:25 来源:
ANSYS作为通用的有限元计算软件,有着强大的计算功能。通过二次开发,此软件在桥梁设计中也有着广泛灵活的运用。阐述了设计优化中参数化设计的概念,介绍了ANSYS APDL语言。结合一个蝶形拱桥的实例,对ANSYS在桥梁中的参数化设计和软件二次开发进行了探讨。
 ANSYS是世界上著名的大型有限元分析软件。但作为通用软件,我们直接接触到的只是一些基础的、通用的功能,不免在某些专业领域中有所欠缺。例如,该软件对于桥梁中的一些问题还不能直接求解。因此,需要我们运用这些基本功能进行一次开发,使ANSYS的潜能充分发挥出来。

1 ANSYS的二次开发平台
   
    ANSYS向用户提供了一个强大的二次开发平台。通过这个平台,用户就可以ANSYS原有强大的计算功能为基础,延伸出各行业工程设计中必需的或常用的功能,开发出适用于各个相关行业的ANSYS配套计算软件。
   
    ANSYS提供参数设计语言APDL(ANSYS Parametric Design Language是一种解释性语言,可以通过参数来建立模型,从而可以自动完成一些通用性强的任务,也可以根据参数建立模型。此外,APDL还包括其他许多特性,如重复某条命令、宏、条件语句、Do循环以及标量、矢量和矩阵运算,文件的读写,定制用户化图形交互界面等。可将程序操作中常遇到的一些命令的命令流编制成宏文件。宏文件既可以在ANSYS命令行执行,也可以将其与屏幕按钮关联,从而使得一系列的操作可以一步快速完成。宏中除了可以填写ANSYS命令外,还可以调用GUI函数,给变量赋值以及调用另一个宏。因此,宏的灵活运用会给用户在处理复杂问题时提供极大的方便。
   


    ANSYS的二次开发平台还包括ANSYS的用户界面设计语言(UIDL)和ANSYS的用户可编程特性(UPFS)。山于篇幅所限,木文暂不展开讨论。

2 参数化设计的概念
   
    工程设计的参数化设计与设计优化是密不可分的,参数化建模的最终目的就是为了设计优化得以进行。设计优化是一种寻求最优方案的设计技术。最优的方案是最有效率的方案,可以满足所有设计的要求,而且所需要的支出(如重量、而积、体积、应力、内力、位移或费用等)最小。   
   
    ANSYS优化设计的基本概念
   
    1)设计变量v(或设计参数)ANSYS的设计变量为自变量(如结构的尺寸、初始应变等)。通过设计变量的数字变化来实现结果的优化,设计变量的上下限决定了设计变量的变化范围。每次优化设计可定义多个设计变量,但建议不要过多,以免导致程序运算困难而难以收敛。ANSYS最多可以定义60个设计变量。
   
    2)状态变量W(或状态参数)。状态变量是设计变量的函数。通过定义状态变量可以实现状态变量对设计的约束。程序运行结果得到的内力、应力、位移等都可以采撷下来赋子状态变量,作为整个优化设计的条件(或约束)。每次优化设计可定义多个状态变量,但也建议不要定义过多。
   
    3)目标变量f(V)或(目标参数)目标变量也是设计变量的函数,是设计者希望其最终值尽量小的变量。程序运行结果得到的内力、应力、位移、变形能等都可以作为设计的优化目标。目标变量只能定义一个。
   
    以上3个变量是优化设计必须同时具备的,可用一种典型的数学表达式为:
   

    AND(min f(V))

3 桥梁中常见的设计优化问题
   
    通常桥梁设计首先要进行方案比选和方案优化。在方案比选和优化中常常涉及到众多的可变因素,如:拱桥的单元截面尺寸、吊杆的初始应变、跨径、矢跨比、拱肋的倾角、材料的选用;斜拉桥的单元截面尺寸、拉索的初始应变、跨径、桥塔高度、桥塔的倾角、辅助墩的数量和布置;悬索桥单元截面尺寸、主缆初始应变、主缆的矢跨比、跨径。以上可变因素都可以在参数化建模时定义为设计变量(必须先赋一个初始值)。对于一些工程中己经确定或难以更改的因素(如跨径)以及根据设计者的经验容易确定的因素(如矢跨比)也可不被定义为设计变量,这样做是为了减少设计变量的个数,提高程序运行效率。#p#分页标题#e#
   
    在第一次运行结束后,进入后处理可以得到结构的计算结果,如:内力、应力、索的轴力、位移、支反力、变形能。这些结果值,都是设计变量的函数,设计者可以根据自己的需要将其赋给状态变量或者目标变量。例如:
   
    *GET,moment316,ELEM,316,ETAB,SMIS5(将316号单元的I端弯矩值赋给变量moment316)
   
    *GET,disp745,NODE,745,U,Y(将节点745的Y句位移赋给变量disp745)

4 工程实例
   
    某蝶形拱桥(见图1)跨径L=120m,钢拱肋,与坚直面夹角为θ,吊杆在桥面上的吊点与结构边缘的距离为a,矢跨比为B /L,拱肋在桥而高度拉有纵向水平钢束。由于拱肋倾斜(自重产生拱肋平面外弯矩)、纵向水平钢束的集中力以及吊杆对拱肋的作用,使得A点的应力情况极为复杂,成为控制方案成立的主要因素。

 

    此时桥梁的跨径已经确定,而且经过对拱肋截面和纵梁自重(其操作起来相对比较方便)的反复调整之后仍不能得到满意的结果。因此必须尝试调整θ,  a,  B/L等参量。从有限元程序建模的常识可知:建一次空间模型己经要花费相当的时间和精力,而且调试需多次反复地在GUI(人机交互模式)下进行删除单元、重建模型的编辑过程,其工作量之大,往往是让人无法忍受的。
   
    ANSYS的APDL参数化设计语言可以让这个艰难的工作轻松完成。有限元建模及求解的主体过程存为宏文件BUILD.MAC。宏文件在建立有限元节点时,将节点坐标定义为θ、B、a的函数:
   
    N,1, fix(θ,B,a), fiy(θ,B,a), fiz(θ,B,a),......!定义i号节点

    N, i, fix(θ,B,a), fiv(θ,B,a), fim(θ,B,a),......!定义i号节点

    通过建模及求解主体过程的命令流(宏文件BUILD.MAC),就可以开始求解过程。根据优化过程中设计人手工参与程度可分为手工方法、半手工方法和程序优化法。
   
    1)手工优化法。这种方法是设计人不断变化设计参量(θ,B和a)的值,然后再运行宏文件BUILD.MAC程序根据变化后的设计参数自动建模并计算,直到计算结果满足设计人的要求为止。手工赋值可以通过在宏文件里而插入设计参量的赋值语句,也可以运用ANSYS二次开发功能,在每次运行宏文件时产生赋值对话框。手工优化法可适用于设计变量较少以及变量的取值范围较窄的情况,对于设计参数较多而且其取值范围较宽时这种优化方法则不可取。手工优化法使设计人对设计参数最佳取值范围有了初步的了解,可作为程序优化法的参考,同时程序优化结束之后,可以用手工优化来验证。
   
    2)半手工优化法。这种方法是利用APDL语言的循环语句反复执行宏文件BUILD.MAC,循环的步长则由设计人根据优化精度的要求酌定。在每次循环结束时,自动读取计算结果(如应力值),并将其赋值给一个变量,下一次循环得到的值与此变量比较,如较之小,则覆盖之并进入下一次循环;如较之大,则直接进入下一次循环。此方法实质与手工优化法一样,不同的是每一次设计参数赋值是通过循环语句自动实现的。
   
    3)程序优化法。ANSYS软件包具有强大的设计优化的功能,具体方法包括单步运行法、随即搜索法、等步长搜索法、乘子计算法以及最优梯度等功能。这种方法的自动化程度最高,得到的结果也较为精确。但要注意设计变量和状态变量不要定义得太多,以免程序优化的迭代过程无法收敛,而且以上几种方法往往要结合使用以得到最优结果。
   
    经过上述这3种优化方法,得到一致的结果:θ=32°, B=0.25 m,  a= 1.20 m,最终得到A点的主拉应力σ1=50 MPa,σ3=-175 MPa,满足要求。

5 如何编制APDL命令流
   
    从以上的步骤可以看出,几乎所有的操作(建模、运行、后处理、优化、命令流程控制)都是用命令流来进行的。这是无法避免的,因为但凡涉及到二次开发运用的问题,都必须语言编程。对于任何操作命令对应的APDL语句都可以查找下拉菜单的“log file”直接得到,而且不需要编译,调试起来极为方便。笔者编写的转换程序“CONVERT.MAC"其用途是当初学者GUI建模完成之后执行此程序,就可以得到建模过程的完整整齐的命令流(此部分语句占整个操作过程语句行数的绝大部分)。然后就可以局部修改这个命令流(如将其中的一些数据用变量表示,再加上少量的运行执行语句和优化语句),实现参数化建模和优化设计。#p#分页标题#e#

6 结语
   
    本文所述的实例仅是ANSYS二次开发和参数化设计的一点粗浅的应用,但通过以上的介绍可以看出,具有强大功能的ANSYS软件在经过二次开发之后,其优越性又被史大程度地提高了,其应用前景是令人惊叹的。