第九章 程序系统的前后处理.docx
《第九章 程序系统的前后处理.docx》由会员分享,可在线阅读,更多相关《第九章 程序系统的前后处理.docx(15页珍藏版)》请在冰豆网上搜索。
第九章程序系统的前后处理
第九章程序系统的前、后处理
9.1桥梁软件现代开发技术基础
把先进的软件开发技术引入到桥梁分析系统中,可以从根本上提高软件系统的性能。
近年来,桥梁结构分析系统的开发,尤其是其前后处理子系统的开发,都是以WINDOWS为平台,这是因为WINDOWS,特别是WINDOWSNT操作系统主要有以下特点:
·开放性的体系结构。
系统的开放性主要表现在为独立软件商和硬件商提供系统软件开发的标准以及与其它系统的资源交换手段。
·32位内、外存管理。
它可以充分利用计算机硬件资源,突破DOS系统对内存、外存容量的限制,使应用程序的内存空间高达4GB,而复杂的虚拟内存与物理内存间的调度管理由操作系统完成。
WINDOWS应用程序比DOS应用程序运行更快、更稳定。
·支持多任务、多进程、多线程操作。
这是发挥高性能计算机潜力的手段,是高档操作系统应具备的基本功能。
·符合SAA规范的一致的图形界面。
这是应用系统具有良好界面的保证。
通过在程序中使用WINDOWS资源,可以非常容易地实现风格一致的图形用户界面,不必象DOS程序那样花费大量精力用绘图函数去自己绘制用户界面。
·设备无关性。
系统具备对不同硬件设备、特别是图形设备的管理能力。
应用系统对硬件设备的驱动是建立在高层次的标准接口上,保证了应用系统的高度可移植性。
·事件驱动。
程序中代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片断。
事件驱动思想符合人们的日常习惯,并且与硬件设计思想一致,使在WINDOWS平台上开发的系统具有开放式的结构,为系统的功能扩充和升级换代提供了极大的便利。
·支持软件构件对象模型(COM,ComponentObjectModel)机制及对象的连接与嵌套(OLE,ObjectLinkingandEmbedding)。
这是现代软件系统集成对操作系统的要求,是实现目标代码级软件构件集成的保证。
·可视化集成开发工具。
在以WINDOWS为平台的大型软件系统的研制开发方面,微软提供了当今世界最为先进的应用系统的可视化集成开发工具,使用户能够快速开发出功能强大的标准WINDOWS程序。
WINDOWS操作系统的优点是显然的,但开发能够发挥出WINDOWS丰富的图形界面等优点的软件系统却还要借助各种其它现代软件开发技术。
9.1.1面向对象的程序设计
面向对象是一种认知方法。
它在60年代中期开始发展,90年代开始在程序设计语言、人工智能和数据库等学科得到广泛应用。
面向对象方法以研究的基本问题(即对象)为主体,通过隐藏主体自身的信息强调了主体间的相互独立性,通过“继承”反映了主体间的共性,通过“多态”表达不同主体的个性。
由于面向对象的方法和人类思维的方法非常接近,因而无论是在软件系统设计还是在数据库管理方面,应用面向对象的方法有利于实现问题的抽象、表达和模型化。
近几年来,面向对象方法正在取代传统结构化方法而成为软件开发的主流。
面向对象程序设计(OOP,ObjectOrientedProgramming)把结构化程序设计中的一组数据结构和与之相关的一组子程序的集合,即对象(Object)作为一个基本单元。
强调了对象间的联系,克服了由于结构化程序设计以处理基本算法或程序为主所造成的难于控制和管理大型软件项目开发的不足。
9.1.2软件构件对象模型
软件构件对象模型是和软件重用问题联系在一起的。
软件重用就是利用已有软件成分来构造新的软件,它可以减少软件开发所需费用和时间,有利与提高软件的可靠性、可维护性和可持续发展性。
软件构件是当今发展最快的解决软件重用的先进技术。
软件构件解决两个重要问题:
一是重用,即构件具有通用的特性,所提供的功能能够满足多领域应用的需求;二是互操作,即不同来源的构件能够相互协调、通讯以便共同完成更复杂的功能。
构件软件为软件的社会化开发提供有力的支持,成为当今软件最重要的增长点。
软件构件对象模型,即ComponentObjectModel,简称为COM,是微软公司于90年代初提出的软件开发构件化的标准或规范。
按照这一标准开发的软件系统或只能支持单一功能的软件包(软件部件、软件构件)可以在支持COM的操作系统上,以二进制目标代码的形式被其它软件系统或构件调用,或者调用其它遵从这一标准的软件构件。
COM使软件在目标代码级集成成为可能。
COM作为当今最为先进的软件集成复用技术,虽然在1993年开始形成,但却是在最近几年硬件和互联网技术飞速发展后才得到整个软件工业普遍重视、发展和广泛应用的。
目前国外有许多软件商开始生产具有单一功能符合COM规范的软件构件,用户在购得这些构件后可以象集成电路一样接插集成到自己开发的软件系统中。
9.1.3ActiveXAutomation技术
ActiveX技术来源于OLE技术。
OLE最初是对象链接与嵌入,后来发展成为复合文档技术——文字、图片、声音、动画和视频等媒体可以共同存在于一个文档中。
它们可以由不同的应用程序产生,也可以在该文档中编辑。
如果应用程序支持OLE文档,则在不同应用程序之间的切换由OLE自动完成。
OLE技术和其它技术共同作用,从而实现不同应用程序之间的无缝链接。
这些技术包括:
对象链接与嵌入、在线激活与可视编辑、复合文档、拖放、COM、自动化技术(Automation)。
ActiveX与OLE都是基于COM的。
Automation技术允许一个应用程序操纵在另一个应用程序中实现的对象。
操纵程序称为客户,被操纵的程序称为服务器。
只要服务器程序提供一定的接口,可以使任何对象实现自动化。
目前,提供Automation服务器功能的软件越来越多,如AutoCAD、MSExcel、MSAccess等。
利用ActiveXAutomation技术,开发者可以在自己的程序中控制和访问在这些软件中实现的对象,从而可以利用这些软件的某些强大功能为自己的程序服务。
9.2桥梁软件集成技术
系统集成是对完成某一特定目标的各个元素有机的组合,而组合后的系统又可以作为一个基本元素参与更大、更复杂的组合。
9.2.1系统集成
有关文献提出,工程软件系统的集成由三部分组成:
界面集成、工具集成和数据集成。
用户界面处于最前端,用于完成用户操作和交互,其集成的目的是使不同的工具在类似的情况下以类似的方式方法表示出一致的外部视觉和行为能力。
界面集成是改变现有软件系统“千人千面”的关键。
工具层处于界面层和工程数据库核心层之间,通过用户界面调度各工具工作,工具需求的信息则由核心数据库提供和管理。
工具是组成系统的基本内容。
对于桥梁工程设计系统而言,这些工具通常包括桥梁轴线设计、结构布置、水文地质计算、有限元结构分析、构件截面配筋与验算、构件图绘制等等。
工具集成是系统集成的目标和灵魂。
数据集成,即核心数据库的支撑,是系统集成的基石,是全系统的根本。
缺少数据集成的结构分析系统,所表现出的不足是显而易见的,例如各部分联结松散或脱节、众多的数据文件和文件接口、数据与程序高度耦合、难于发展维护等。
工程结构分析系统集成中的数据集成包括两个方面,一是建立统一的数据模型,二是建立统一的数据管理系统,即工程数据管理系统。
前者需要工程结构分析理论的支持,后者需要现代软件开发技术,特别是数据库技术的支持。
两者都是目前工程结构分析系统进一步发展所面临的关键问题。
9.2.2系统集成的图形支撑系统
(1)图形支撑系统的基本要求
作为工程结构分析集成系统的核心支撑,图形系统应满足功能和开放两个方面的要求。
功能上,图形系统应满足制图、造型等要求;开放性包括良好的二次开发能力、实体扩充机制、数据交换和数据库连接能力。
在一定程度上,系统开放性远比系统的功能重要。
(2)工程结构分析图形支撑系统的选择
图形支撑系统的选择是结构分析系统研制开发中的重要问题,长期以来一直存在着自主研制开发专用图形支撑系统和引用商品化CAD图形系统两种倾向。
研制专用图形系统,针对性强,对平台要求低,进一步发展潜力大,但开发一个实用的CAD图形支撑系统需要大量的投入和较长的开发周期。
商品化CAD图形系统以各个领域通用为目标,功能强,但庞大的系统规模不仅对平台要求高,而且也影响整个结构分析系统的性能。
90年代发展起来的CAD厂商,由于采用了先进的软件开发思想和开发技术,在系统结构、数据库支撑、参数设计和特征造型的方面进行了改造和突破。
基于PC平台的图形系统中,AutoCAD在国内占绝对优势。
目前,AutoCAD及其图形格式已经成为一种事实上的国际工业标准和普及新一代设计文化的基本载体。
选择AutoCAD作为桥梁工程结构分析集成系统的图形支撑,不仅具有广泛的应用基础和广阔的推广前景,而且系统本身具备良好的开放性,能够适应系统集成的要求。
(3)AutoCAD图形支撑系统开发技术
AutoCAD得到广泛应用的原因除了因为它功能强、外设广、易学易用外,更主要的原因是它具有开放的体系结构,允许用户和开发者在几乎所有方面对其进行扩充和修改,即进行二次开发。
特别是该软件提供的各种编程工具和接口,为用户的二次开发创造了十分便利条件。
AutoCAD程序开发是通过AutoCAD应用程序接口(API)来实现的,AutoCAD提供的API方式有四种:
AutoLISP、ADS、ARX、ActiveAutomation。
AutoLISP是一种解释性的语言,它提供了一个简单的扩充AutoCAD命令的机制;ADS程序是用C语言开发编译执行的。
一个ADS程序实际上由一组外部函数组成,它们由AutoLISP解释器来加载调用。
ARX程序在很多方面都和ADS程序、AutoLISP程序不同。
ARX程序实质上是一个动态链接库(DLL),它和AutoCAD共享地址空间并且直接和AutoCAD进行通讯。
对于需要经常与AutoCAD通讯的应用程序来说,ARX程序比ADS程序运行更快。
ARX程序还可以创建新的类,这些类可以为其它程序共享,从而充分利用面向对象编程的优点。
从AutoCADR14起,AutoCAD提供了VB和VBAActiveXAutomation开发环境,开发者可以在自己的程序中控制和访问AutoCAD中实现的对象,可以最大限度地利用以前和其它厂商的控件。
利用VB或VBA可以开发与AutoCAD进行交互操作的绘图程序,并且可以操纵数据库或Excel等应用软件与AutoCAD之间进行数据传递,是工程设计进行AutoCAD绘图开发的最佳选择。
9.2.3系统集成的核心数据库系统
结构分析系统要处理大量的数据和设计模型。
为保证这些信息的一致性、完整性、安全性和实现多用户共享等,结构分析系统必须具备数据库管理能力。
(1)数据库管理系统和文件管理系统
数据库管理系统(DBMS,DatabaseManagementSystem)和文件管理系统(FMS,FileManagementSystem)的比较如表9-1。
数据库管理系统和文件管理系统表9-1
项目
FMS
DBMS
整体性
独立的文件,用户的文件供各自的应用程序使用。
DBMS的文件当作整体公用。
冗余度
文件间充满了冗余。
文件中的数据是毫无结构的信息的集合,不能反映数据之间的本质联系。
数据库系统不仅考虑数据项之间的联系,还考虑记录型之间的联系。
这样就可以消除数据冗余,这是数据库和数据文件的根本区别。
共享性
独自的用户。
用户共享数据资料。
安全性
安全性由用户负责。
安全性由系统负责。
数据库的安全性控制比文件更重要、更困难。
完整性
完整性由用户负责。
在对数据修改时,可能造成同一数据在不同地方不一致。
完整性由系统校验保证数据的完整性,包括正确性、一致性和并发控制。
并发控制避免了多用户同时操纵同一数据时的相互干扰,这对多用户、多线程程序尤为重要。
存取
方式
存取直接由OS提供,即“应用程序—OS—数据文件”方式。
文件格式和使用方式对用户来说是“黑盒”。
借助于DBMS,功能程序以同样命令存取数据,大大提高了软件的透明度,增加代码的开放性和重用率,易于维护和扩充。
DBMS的主要功能是允许用户逻辑地、抽象地操作数据而不涉及这些数据在计算机中的存放问题。
数据
独立性
数据与程序高度耦合,文件之间的联系要通过程序来实现。
若数据结构改变,其应用程序亦要随之改写。
数据库中的数据是面向系统的,不是面向某个具体应用,数据独立于使用它们的程序。
若数据存储结构或全局逻辑结构改变,其应用程序不需随之改变,只需改变存储在数据库中的数据定义(DD)。
查询
功能
不能自动实现查询、过滤和排序,手工编程则效率低下。
数据库的查询功能是非常强大的,记录的过滤和排序也很方便和高效。
借助查询、过滤和排序,可以将数据以各种灵活的形式展现给用户。
可以看出,与常规的文件管理系统相比,数据库管理系统具有巨大的优越性。
在桥梁结构分析系统中有必要采用核心数据库为支撑,统一存储和管理系统中的所有数据。
(2)工程数据库管理系统
对于工程结构分析系统,由于要处理大量的图形、特征和属性等信息,其数据库管理具有特殊要求。
流行的商用数据库管理系统均以关系型数据模型为主,直接应用于结构分析系统存在许多困难,必须重新开发适合于工程数据管理所需要的工程数据库管理系统。
基于工程对象数据结构和数据模型复杂、相互关系密切等特点,和传统数据库管理系统相比,工程数据库管理系统主要应具备以下功能:
·支持动态模式的修改和扩充;
·支持设计的反复试探过程;
·支持工程设计过程中多数据库版本的存储和管理;
·支持复杂的抽象层次表示;
·支持变长非结构数据实体的处理;
·支持工程事务的处理;
·支持设计规则检验与一致性约束的实施。
(3)工程结构分析核心数据库系统的选择
结构分析系统集成对其核心数据库管理系统也有两个方面的要求:
一是功能上要满足工程结构分析系统对数据存储和管理的特殊要求,二是数据库管理系统应具备良好的开放性以便能够实现和工具层的无缝集成。
与图形支撑系统一样,自主研制开发面向桥梁工程结构分析系统的专用工程数据库管理系统是桥梁工程结构分析系统研究的基础课题,也是桥梁工程计算机应用的战略目标。
但是,与图形支撑系统的研制开发相比,工程数据库管理系统的研制开发更需要多学科领域的交叉,对研制开发人员要求更高,具有相当大的难度,需要投入大量的人力、物力,开发周期漫长。
面向应用的工程数据库管理系统的滞后是制约工程结构分析集成系统发展的根本原因。
借助广泛流行的商用DBMS是短期解决目前工程结构分析系统由于缺少核心数据库支撑所造成的种种问题的有效途径。
在众多广泛流行的桌面数据库管理系统中,尤以微软的ACCESS引人注目。
1996年,在全球桌面数据库软件市场中,ACCESS占有近70%的份额,显示了较强的发展势头。
ACCESS提供一系列对象、方法、属性、函数、语句、数据类型及事件,与VisualBasic等语言结合,可以创建出功能十分强大的数据库应用系统。
在VisualBasic中,可用的数据访问接口有三种:
ActiveX数据对象(ActiveXDataObjects,ADO)、远程数据对象(RemoteDataObject,RDO)和数据访问对象(DataAccessObject,DAO)。
Microsoft的最新数据访问技术ADO具有良好的特性,为以后软件功能的扩充以及分布式桥梁设计资源管理系统的研究与开发打下了良好的基础。
应用系统中能够对核心数据库连接访问是实现桥梁结构分析系统各部分集成的关键,利用ADO可以将结构分析系统各部分用到的各种数据结构保存到核心数据库中,从而可以避免上一代结构分析系统依靠众多数据文件进行数据交换所造成的分散独立和数据与代码高度耦合造成的系统维护发展困难的不足。
鉴于以上原因,桥梁结构分析软件可以选择ACCESS作为软件的核心数据库支撑,选择ADO作为数据访问接口对象模型。
由于采用流行的桌面数据管理系统,桥梁结构分析软件建立的工程项目核心数据库不仅可以在各个子系统中访问,而且也可以直接通过ACCESS系统对其进行更加复杂的操作和管理,从而进一步提高了系统的开放性和可扩展性。
9.3程序系统的前后处理系统
相对于常规结构分析,桥梁结构分析的专用性体现在多施工阶段结构体系转换、预应力效应、混凝土收缩徐变、索力优化、内力位移调整、最不利活载计算、荷载组合、构件配筋、强度验算、应力验算等。
作为桥梁有限元分析前、后处理系统,必须能够满足桥梁结构分析和设计的特殊性,尤其是多施工阶段、多荷载工况的特点。
以核心数据库为支撑的桥梁结构分析系统的结构如图9-1所示,各模块通过数据库管理系统(DBMS)与核心数据库打交道,数据与模块、模块与模块之间相对独立。
近十年来,计算机硬件技术飞速发展,相比之下工程应用软件的发展则较为滞后。
许多已有的桥梁设计软件,由于开发年代较早、采用的技术较落后等原因,已远远滞后于桥梁工程发展的需要。
桥梁软件虽经历了几个阶段的发展,但还没有摆脱过去的软件编制思想,更没有将软件的使用性提高到较高的水平。
许多桥梁软件开发时,只考虑程序编制的方便,或只考虑个人程序编制技巧,而很少考虑到用户使用的方便。
真正从用户的角度出发,将软件的使用性提高到较高的水平,可大大节约用户建立结构模型、查询计算结果的时间和降低对用户的要求。
是否具备一个优秀的前后处理系统,对软件的生存是至关重要的。
总之,现代桥梁结构分析系统的设计应该充分体现以用户为中心、界面图形化、过程可视化、数据集成化等新一代工程结构分析系统的特点。
图9-1以核心数据库为支撑的桥梁结构分析的系统结构
9.4程序系统的前处理
桥梁软件前处理的任务是以便捷的方式帮助用户建立桥梁有限元模型。
要将现实世界的物理模型转换成计算机能够明白的计算模型,最少要输入以下四类信息:
结构几何拓扑信息、材料物理信息、边界条件、荷载信息。
具体地对桥梁软件来说,应包括以下5个方面的内容:
结构几何信息、钢束信息、施工阶段信息、使用阶段信息、结构优化信息。
桥梁软件前处理应该从用户的角度出发与用户交互,而不应该从有限元的角度与用户打交道。
结合桥梁结构的构造、设计、施工特点,以用户为中心描述桥梁模型,是桥梁结构分析软件前处理系统首要要考虑的问题。
目前,通用有限元分析系统(例如ANSYS、SAP2000等)中一般都有强大的前处理模块,在开发桥梁软件时可以借鉴其中针对杆系结构的做法。
通用有限元分析系统中前处理模块的一般思路是:
首先在系统自身的绘图系统中绘制出结构,在此过程中自动定义节点及单元的连接信息,并自动对节点和单元编号;然后在结构上添加有限元计算要素,包括定义材料及截面信息、边界条件、外荷载等等;最后自动生成计算所需的数据文件。
对于具有施工过程分析功能的桥梁软件,前处理模块的开发可考虑以下思路:
首先按照通用有限元程序的做法输入“最大结构”(所有在施工过程中发生过作用的结构总和,包括在成桥后不再参与受力的临时结构),自动定义节点和单元的连接信息,并输入材料和截面信息。
此阶段还必须解决预应力钢束信息输入的问题,其中线形的输入也应该通过绘图进行;然后逐阶段定义被“激活”的结构(当前阶段发生作用的结构)的变化信息、边界条件的变化信息、预应力钢束的张拉信息及荷载的变化信息等;最后形成计算数据文件。
在前处理模块中,还应该结合桥梁结构的施工特点为用户提供方便。
下面以桥梁结构分析系统中荷载的描述为例作简要说明。
在杆系结构有限元中,荷载可分为节点荷载和单元荷载。
它们是直接面向有限元算法的两种荷载类型。
对有限元编程来说,习惯于在总体坐标系下描述节点荷载和在局部坐标系下描述单元荷载;但是对用户来说,不管是节点荷载还是单元荷载,都是在总体坐标系下描述起来方便,如重力、压重、挂篮对已施工梁段的作用、风载等等。
而程序中只要几行语句,就可将总体坐标系中的单元荷载转换到单元坐标系中。
因此,为方便使用,程序应该具有在总体坐标系中输入单元荷载的功能。
为了减少用户输入数据的工作量以及增加形象程度,可以从用户的角度出发,将施工阶段桥面荷载按作用形式分为永久荷载、临时荷载、移动荷载和移动荷载编组四种类型,每一种类型都可能包括节点荷载和单元荷载。
(1)永久荷载
永久荷载指一旦作用在结构上,其大小、方向、作用位置就不再发生变化的荷载。
永久荷载是荷载的基本类型,其它三类荷载以它为基础。
永久荷载主要用来模拟单元自重、强迫位移等效应。
(2)临时荷载
临时荷载指当前阶段作用在结构上,而以后阶段需要撤离的荷载。
最后一个施工阶段不能有临时荷载。
“撤离”的力学意义为:
在结构体系上施加与已有荷载的位置、大小都相同而方向相反的荷载。
若用户定义某荷载为第i到第j阶段的临时荷载,程序分两步计算其效应:
1)计算临时荷载在第i阶段产生的效应;2)第j+1阶段自动计算撤离此临时荷载产生的效应。
临时荷载可以用来模拟短期作用在结构上的荷载,如施工中的临时堆载或临时施工机具对结构的作用。
(3)移动荷载
移动荷载是一种特殊的临时荷载,其大小、方向在全桥施工过程中保持不变,而作用位置随施工过程移动。
“移动”的力学意义为:
首先“撤离”已有的荷载,再在新位置增加一个与被“撤离”的荷载大小、方向均相同的荷载。
当用户定义某荷载为i阶段移动荷载时,程序分两步计算其效应:
1)计算移动荷载在i阶段产生的效应;2)如果以前某阶段也存在此移动荷载,则计算撤离它产生的效应。
移动荷载可以用来模拟随施工进程而移动的荷载,如悬臂施工时施工机具对桥梁结构的作用。
(4)移动荷载编组
移动荷载编组就是将一系列相对位置固定的移动荷载编为一组,作为一个整体统一处理。
用户可以定义移动荷载编组中每一个集中力的大小及其相对位置,并选定一点作为移动荷载编组的参考点。
对某施工阶段,只需给出移动荷载编组参考点的横坐标,程序即可根据桥面单元连接信息确定它们的具体施加位置。
挂篮对已施工结构的作用可以用几个集中力来模拟,每一个集中力的大小、方向在施工过程中不变,位置发生改变,即每一个集中力都是移动荷载;而且这几个移动荷载的相对位置在施工过程中保持不变。
因此,移动荷载编组可以方便地模拟悬臂施工中挂篮对已施工结构的作用。
需要注意:
程序系统是根据移动荷载编组参考点的水平位置确定它们的具体施加位置的,因而只适合于桥面单元承受这些荷载。
如果不满足这个条件,如桥塔爬模施工时机具作用的模拟,可以采用多个移动荷载或临时荷载来表示。
桥梁结构分析系统如果从用户的角度定义以上四种荷载类型,就可以十分形象地描述桥梁施工过程中的荷载,方便用户的数据输入。
借助形象的永久荷载、临时荷载、移动荷载、移动荷载编组等概念,就可以准确地模拟桥梁施工过程的荷载变化信息。
9.5程序系统的后处理
后处理的主要任务是将桥梁分析系统的计算结果,按用户的要求以图形、表格等方式展现给用户,满足用户的查询、组合、排序、报表等要求,以便用户直观地了解桥梁结构的力学性能。
9.5.1桥梁结构分析系统信息输出形式
桥梁结构分析系统应该提供多种信息输出形式。
借助数据库管理系统强大的查询、排序和过滤功能,用户可以方便地了解到所关心信息的数值和图形结果。
桥梁结构分析系统信息输出的基本形式有数值方式、图形方式、报表方式和与其它软件集成方式等。
(1)数值形式
数值形式信息输出提供了结构效应的具体数值结果。
如图9-2是利用类似电子表格的数据显示控件DataGrid来快速显示核心数据库中的数据,它具有与WINDOWS资源管理器类似的触发式排序功能——当用户单击列标题时,将以该列为关键字排序,再次单击将以相反顺序排序。
灵活应用此项功能可使用户快速了解到所需要的信息。
(2)图形形式
图形形式信息输出是将具体数值结果用图形表示,以帮助用户定性、形象地了解结构效应。
结合ActiveXAutomation技术,可以与AutoCAD无缝集成