




已阅读5页,还剩84页未读, 继续免费阅读
(工程力学专业论文)大跨度斜拉桥风振分析前后处理程序的研制.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 现代大跨度桥梁向大跨、轻柔方向发展,其抗风性能也越来越受到重视。目 前,通用有限元程序像a n s y s 等并没有解决此类问题的模块,因此桥梁抗风问题 一直通过研究者开发专用的有限元程序来解决,但是大部分此类程序前后处理功 能都不强,研究者往往要面对大量枯燥的、令人费解的数据。本文的主要任务是 利用面向对象的计算机语言d e l p h i 编制大跨度斜拉桥风振响应分析的可视化程 序。 本文以面向对象的程序设计方法、计算机图形学和可视化为理论基础,编制 了w i n d o w s 环境下具有独立绘图平台和数据接口的桥梁抗风分析程序,详细阐述 了面向对象设计方法的实现以及程序的数据结构,并介绍了图形用户界面的组织 和设计,最后对本程序的计算核心一大跨度斜拉桥风振响应分析程序( r a c s b ) 的 理论基础作了简单的介绍。 本程序系统的开发使桥梁风振问题的研究摆脱了仅仅处理大量抽象数据文本 的状况,实现了从结构建模前处理,经过分析计算,再到结果后处理这一一般结 构计算软件的通用流程,并使整个流程具有直观的、可进行交互分析、用图形图 像形式表示的画面。其中包括了六个功能模块,符合w i n d o w s 环境下的应用软件 规范,同时程序的模块化便于其进行功能扩充和升级。本程序编制过程中所采用 的原理和方法对其他类似结构软件的开发也有一定的借鉴意义。 关键词:大跨度桥梁;前后处理;风振响应;面向对象技术;可视化 兰重型三查兰堡主鲎些笙奎 a b s t r a c t m o d e r nl o n gs p a nb r i d g ed e v e l o p st o w a r d sm o r es 1 i ma n d1 0 n g ,s ow i n d i n d u c e dv i b r a t i o ni sb e c o m i n gm o r ea n dm o r ei m p o r t a n t n o w a d a y s ,g e n e r a l f i n i t ee l e m e n ta n a l y s i ss o f t w a r e1 i k ea n s y sd o e sn o th a v et h em o d u l et o s 0 1 v et h isp r o b l e m s ot h er e s e a r c h e r sn e e dt od e v e l o ps p e c i a ls o f t w a r e t os e t t l ei t b u t , m o s to ft h e s ep r o g r a m sd on o th a v eg o o dp r e t r e a t m e n t a n dp o s tt r e a t m e n tf u n c t i o n r e s e a r c h e r sh a v et ot r e a t eag r e a td e a lo f d a t a t h e r e f o r et h em a i n t a s k o ft h is p a p e r i st o i n v e s t i g a t e t h e p r o g r a m m i n gm e t h o do f av i s u a l i z e ds y s t e mf o rw i n d i n d u c e dr e s p o n s e a n a l y s i so fl o n gs p a nc a b e - s t a y e db r i d g e t h et h e s i sh a sd e v e l o p e dt h ev i s u a l i z e da n a l y s i ss y s t e mb a s e do nt h e t h e o r y o f o b j e c t e d o r i e n t e d t e c h n o l o g y c o m p u t e rg r a p h i c s a n d v i s u m i z a t i o nt e c h n o l o g y w h i c hh a si n d e p e n d e n td r a w i n gs y s t e ma n dd a t a e x c h a n g ei n t e r f a c e i nt h i st h e s i s ,t h eo b j e c t e d o r i e n t e dp r o g r a m m i n g m e t h o da n dd a t as t r u c t u r ea r ei n t r o d u c e di np r o g r a m m i n g a n da l s o ,t h e o r g a n i z i n ga n dd e s i g n i n go ft h eg r a p h i eu s e ri n t e r f a e ea r ed i s c u s s e d f i n a l l yt h eb a s i ct h e o r yo ft h ec o r em o d u l e - t h e3 df i n i t ee l e m e n tp r o g r a m f o rw i n d i n d u c e dr e s p o n s ea n a l y s i so fl o n gs p a nb r i d g e s ( r a c s b ) i sb r i e f i n g in t r o d u c e d w i t ht h ea i do ft h es o f t w a r er e s e a r c h e r sc a na v o i dt r e a t i n gn u m e r o u s d a t ai na n a l y s i s i tr e a l i z e st h ep r o c e s s i n gf r o mm o d e l i n gt or e s u l t i n g d a t at r e a t m e n t t h es o f t w a r ei sag e n e r a lp r o c e s s i n gt o o l f o rm o s t s t r u c t u r ea n a l y s i sw i t hf e a t u r e so fv is u a l i z e d ,i n t e r a c t i v ea n dg r a p h i c i n t e r f a c e t h ep r o g r a mc o n t a i n ss i xm o d u l e s ,a n da c c o r d sw i t ht h ec o d eo f w i n d o w sa p p l i c a t i o ns o f t w a r e i tisc o n v e n i e n tf o rf u n c t i o ne x t e n s i o na n d u p g r a d ed u et om o d u l a rp r o g r a m m i n gm e t h o d t h ep r i n c i p l e sa n dm e t h o d sc a n b eu s e da sar e f e r e n c ef o ro t h e rs i m i1 a rp r o g r a m s k e yw o r d s :l o n gs p a nb r i d g e :p r e p r o c e s s i n ga n dp o s t p r o c e s s i n g :w i n d i n d u c e dv i b r a t i o nr e s p o n s e ;o b j e c to r i e n t e dt e c h n o l o g y :v i s u a l i z a t i o n 华南理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研 究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文 不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研 究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完 全意识到本声明的法律后果由本人承担。 作者签名: 子毒g 日期:w 旷年月i oe l 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权华南理工大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于 不保密口。 ( 请在以上相应方框内打“”) 日期:) 吖年石月,口日 日期:a 诉( ) 月【o 日 第一章绪论 第一章绪论 1 1 研究背景 1 1 1 斜拉桥风致颤抖振响应分析的概况 斜拉桥是一种由三种基本构件一索、塔、梁组合而成的结构体系,其桥面体 系以加劲梁受压( 密索) 或受弯( 稀索) 为主,支承体系以斜索受拉及桥塔受压 为主。它的主要特点是利用由桥塔引出的斜拉索作为梁跨的弹性中间支承,借以 降低梁跨的截面弯矩、减小梁重影响,提高主梁的跨越能力。 在斜拉桥中,以梁、塔、索三者的结合方式,斜拉桥可分为四种不同的结构 体系,即飘浮体系( 塔墩固结、塔梁分离,主梁除两端有支承外,其余全部用拉 索悬吊,为多跨弹性支承梁) 、支承体系( 塔墩固结、塔梁分离,主梁在塔墩上设 置竖向支承,成为具有多点支承的连续梁或悬臂梁) 、塔梁固结体系( 塔梁固结并 支承在墩上,斜拉索为弹性支承) 和刚构体系( 梁塔墩互为固结,形成跨度内具 有多点弹性支承的刚构) 1 1 。 现代大跨度桥梁向大跨、轻柔方向发展,其抗风抗震性能也面临着前所未有 的考验。大跨度桥梁的风振研究经过众多学者半个多世纪的努力,取得了很多的 进展,并基于现有的理论在实际工程中采取了积极的措施控制桥梁的风振响应。 桥梁的风振响应大致分为一下几类: 1 涡激致振。这类振动是低风速区发生的有限振幅,可能导致构件疲劳和使 用者的不适,应采取措施避免或限制其响应。 2 紊流风响应( 抖振) 。它是在任何风速下都会发生的限幅振动,也有可能 导致构件的疲劳或产生较大的变形和应力,应采取措施抑制其响应。 3 气动弹性失稳。按其振动形式又可细分为挠曲和扭转联合作用的耦合颤振 ( 或古典颤振) ,扭转起控制作用的剥离流颤振( 失速颤振) ,以及挠曲占优势的 驰振。这些振动形式由于空气力的负阻尼效应,使得在某一临界风速下,气动力 由主梁将能量不断输入振荡结构,使结构振幅逐渐发散,从而导致结构物的破坏, 所以是绝对不容许的。 上述一些风致振动现象,并非在结构断面上各自独立发生,多数情形是几种 现象同时出现,而且不同的振动机制之间存在相互影响和干扰。其中对于大跨度 桥梁整体而言,需要考虑的主要是颤振和抖振现象。由于自然风的平均风分量和 脉动风分量是同时作用在桥梁之上,因此,结构与平均风相关的颤振和与脉动风 1 华南理t 大学硕士学位论文 相关的抖振实际上是不可分割的。当风速较低时,自激力很小,不起控制作用, 桥梁就主要体现为抖振。当风速增加到一定程度时,自激力逐渐发散,并控制桥 梁的运动,桥梁就发生了颤振。 现今对大跨度桥梁的颤抖振响应分析都是考虑了结构自身运动产生的自激力 和自然风产生的抖振力的共同作用,其中根据具体研究思路的不同,又分为频域 内和时域内的两种分析方法。这两种方法各有利弊,其中采用频域内的分析方法 其优点在于能够与动力可靠度理论联系起来,直接得到结构响应的功率谱和方差, 从而可以对结构风振响应这一随机现象进行概率评价,但频域研究方法是基于线 形假定的振型叠加法,不能有效考虑对大跨度桥梁非常重要的几何非线性因素的 影响,而人为选定分析的振型阶数和形式,有一定的主观性,对结果的正确性有 影响。而时域内分析,即利用直接积分法对桥梁结构进行非线性时程分析,可以 考虑结构非线性和气动非线性的影响,以及桥面上风的时间相关性,它的缺点是 难以与动力可靠度理论相联系,因而只能用3a ( 一为响应的根方差) 法则确定 静力 三分力系数 t 静风荷载 自然风 平均风 拟合颤振导数得到 脉冲响应函数 自激力 脉动风 根据脉动风速谱模 拟脉动风迷过程 抖振力 静风作用下的结构平衡位置li 激励风荷载 动力时程分析 响应时程 抖振分析计算 响应的r m s 以 及功率谱密度 颤振分析判断 振动是否发散 得到i 瞄界风速 醴1 - l 时域内桥粱颤抖振响应分析框图 f i g 1 1f l o wc h a r tf o rl o n gs p a nb r i d g ef l u t t e ra n db u f f e t i n ga n a l y s i si nt i m ed o m a i n 最大响应的统计规律。这样如果用多个时间历程样本的响应来寻求最大响应的统 计规律,则时域分析方法的计算量较大。 2 第一章绪论 本文中,大跨度桥梁颤抖振分析程序的核心计算程序采用了时域分析方法, 程序的基本框图如图1 1 所示【3 4 】。 1 1 2 可视化技术的概念和应用 科学计算可视化( v i s u a l i z a t i o ni ns c i e n t i f i cc o m p u t i n g ) 是八十年代中后期提 出并发展起来的,它足九十年代计算机应用技术的热点之一。近年来,可视化技 术的发展随着计算机硬件技术的不断提高,在很多领域取得了长足的进步,取得 了大量的成果。 在计算机应用的早期阶段,由于受硬件技术的限制,科学计算不能以交互方 式进行处理,使用者不能对计算机过程进行干预和引导,只能被动地等待计算结 果的输出,而且,大量的输入输出数据只能手工处理或者简单地用二维图形输出。 这样处理不仅不能及时地得到有关计算结果的直观,形象的整体概念,而且手工 处理数据十分繁琐,容易出错,所花时间往往是计算时间的十几倍。正是在这种 背景下,科学计算可视化技术应运而生。它的基本思路就是科学计算从建立模型 到计算结果均采用图形的输入和输出来实现,将复杂的数据计算和数据处理推向 后台,用户主要和图形打交道。用户可以通过交互方式,获得中间结果和图形仿 真,以了解计算过程,干预和引导计算并获得计算结果的图形,颜色,静态和动 态画面,使研究者了解全部过程和发展趋势。 科学计算可视化的处理过程如图1 2 t 3 】: 用户交互 图形输入 计算机自 动生成数 据文件 调用计算 模块分析 计算 结果不能满足要求,检查修改图形 以网形的 方式显示 计算结果 图1 - 2 科学计算可视化的处理过程 f i g 1 - 2p r o c e s so fv i s u a l i z a t i o ni ns c i e n t i f i cc o m p u t i n g 可视化技术在设计工作的反映,关键在于图形显示与分析计算的紧密结合, 也就是所谓的过程设计可视化( v i s u a l i z a t i o n i n e n g i n e e r i n g d e s i g n ) 。由于可视化的 有效性,当前,很多c a d 软件已经溶入了这一思想,具有可视化的某些功能, 但不能认为在c a d 中屏幕上出现了图形就是可视化,关键是要看程序是否能实 现图形与工程数据间的相互转化。工程设计中的可视化技术称为视算一体化 ( v i s u a l c o m p u t i n gi n t e g r a t i o n ) 较为贴切【4 】。 推动可视化技术的动力来自应用。当前结构领域出现了大量的可视化应用程 序,它们一般由具备一定软件知识的专业人员研制。在若干年前。开发图形处理 华南理工大学硕士学位论文 程序对程序员来说无异于一场恶梦,但随着众多可视化编程工具如d e l p h i ,v i s u a l b a s i c ,v i s u a lc + + 等的出现,编写可视化的图形界面程序不再是一项繁琐的工作, 从而加速了可视化技术的发展。 1 2 基于自主w i n d o w s 图形平台的可视化c a d 系统 1 2 1w i n d o w s 平台的优势 w i n d o w s 是微软公司开发的图形界面的操作系统。它的发展经过了1 0 ,2 0 。 3 1 ,9 5 ,2 0 0 0 ,x p 等等若干版本。它利用图像,图标,菜单和其他可视化部件 控制计算机。比在提示符下输入命令行容易使用,可是使用鼠标操纵屏幕的对象。 从技术角度看,w i n d o w s 环境具有以下优势: f 1 ) 交互式的图形操作系统给前、后处理和计算可视化带来很多便利。与 d o s 下的文本图形模式反复切换相比,w i n d o w s 的交互式多窗口图形操作系统 是图形、动画制作和生成的良好环境,w i n d o w s 用图标、对话框、按钮、菜单、 窗口等方式与人交互比输入命令方式要容易接受的多。因此,w i n d o w s 操作系统 给需要进行大量图形交互的前后处理和计算可视化带来很多便利。 f 2 ) w i n d o w s 的系统与设备的无关性,可以使软件开发人员无需考虑与众多 厂商的不同的输入、输出设备以及其他外围设备的具体连接与实现的细节,只要 专注于软件本身。 ( 3 ) d d e ( d y n a m i cd a t ae x c h a n g e ,动态数据交换) ,o l e ( o b j e c tl i n k i n ga n d e m b e d d i n g ,对象链接和嵌入、给应用软件之间的数据交换带来很多方便。结构图 形处理软件在应用上都不是独立的,在很多场合都要与其他c a d 软件,数据分 析处理软件,数据采集软件等相互配合。w i n d o w s 的d d e 和o l e 技术使得软件 之间的数据交换可以实现在内存中的动态交换和界面操作的一致,克服了使用外 存数据交换的弊端。 f 4 1 面向对象的编程为软件开发和维护提供了巨大方便,是继结构化编程后 程序设计的又一次革命,w i n d o w s 环境中的开发工具都采用了面向对象的方法, 如:d e l p h i , v i s u a lb a s i c 等,因此,基于w i n d o w s 环境的软件开发和维护可以 充分利用资源,进行面向对象的程序设计。 f 5 ) w i n d o w s 操作系统的不断成熟保证了软件在技术上的先进和性能上的可 靠性。应用软件的性能和操作系统有很大关系。w i n d o w s 是个十分成熟的操作系 统,在全球拥有几千万用户,有强大的技术支持,基于w i n d o w s 环境的软件运行 环境是稳定可靠的i ”。 4 第一章绪论 1 2 2 可视化计算机辅助设计系统的组成 可视化c a d 软件系统的组成随系统的应用领域、所提供功能、所面向的用 户等因素的不同而不同。通常情况下,计算机辅助系统包括:人机交互模块,图 形处理模块,字符处理模块,前处理模块,核心计算分析模块,后处理模块等功 能模块构成,如图i 3 所示6 1 1 7 】: 图i 一3 可视化c a d 系统的组成 f i g 1 - 3c o n s t i t u t i o no fv i s u a l i z e dc a ds y s t e m 人机交互模块,又称用户界面,这是c a d 系统中直接和用户打交道的部分, 在可视化系统中,用户界面也是前、后处理的图形显示区域,它决定了系统的易 用性和可推广性,亲切的界面可以激发用户对软件的使用兴趣。用户界面应向用 户提供菜单、对话框、快捷按钮等多种图形操作方式使用户方便地完成各种数据 和命令的输入,同时应及时显示各种提示信息向用户反馈程序的当前运行情况, 对初级用户还应提供详尽的帮助指南,对非法操作能做出恰当处理,提示出错信 息,不会导致死机或系统崩溃。 图形处理模块是实现前后处理的支撑模块,主要烈用计算机图形学原理完成 各类图形( 直线、圆、弧等) 的绘制,完成图形操作( 图形放大、缩小等) 的各种坐标 变换,图形裁剪,坐标系变换等。 字符处理模块也是实现前后处理的支撑模块,主要对程序中出现的各种字符 的字形、字体、大小、颜色等进行处理。 前处理模块根据从用户界面输入的数据和命令,形成用户所需要的结构,并 通过图形处理模块和字符处理模块将结构以图形或字符的方式显示在用户界面 上。向用户提供对所形成的结构进行图形编辑的功能,并将编辑结果以图形或字 符方式通过用户界面反馈给用户。最好形成核心分析模块所需要的数据。 5 华南理工大学硕士学位论文 核心分析模块可根据前处理模块所形成的数据,形成结构计算模型,对结构 进行计算分析,得出用户感兴趣的结果( 如位移,内力,截面尺寸等、,并将结果 提交给后处理模块。 后处理模块通过图形处理模块和字符处理模块将结果以图形和字符方式显示 给用户,并提供用户对结构各方面信息的查询功能。好的后处理模块还能进行各 种辅助计算,以静态或动态方式显示、比较计算结果,将由核心模块生成的杂乱 的数据结果转换成各种直观的图形和图表供用户分析、打印。 1 2 3 程序设计语言 软件设计语言是人类语言与计算机语言之间的桥梁,通过软件设计语言才能 编制出一个能完成某种功能的计算机程序。 目前优秀的程序设计语言相当多,本课题中采用了d e l p h i 语言,d e l p h i 是一一 种面向对象的、可视化的快速应用开发( r a d ) i 具,它使用面向对象的p a s c a l 语言作为其编程语言。使用d e l p h i 可以开发出运行在m i c r o s o f tw i n d o w s 2 0 0 0 9 8 n t 平台上的高效率的应用程序,而仅仅需要手工写少量的代码。同时, d e l p h i 也提供可重用组件库、一整套设计工具、应用模板和编程向导等工具,来 支持开发、调试和发布各种类型的应用,它拥有管理应用开发的p r o f e s s i o n a l a p p b r o w s e ri d e 可视化开发环境,快速的优化编译器,以及创建多线程w i n d o w s 应用程序的能力,同时很重要的一点是,d e l p h i 拥有大量优秀的免费源代码和组 件库,可以免除很多重复劳动,提高编程的效率。 1 3 本文的研究成果 1 3 1 研究内容 关于大跨度斜拉桥风致振动的研究工作,之前的课题组已经取得了丰硕的研 究成果,主要包括以下几个方面: 1 对大跨度斜拉桥动力分析模型及其动力特性的研究。文2 6 ,2 8 3 0 提出 了一种大跨度斜拉桥分析的双三主梁模型,并利用该模型对汀九大桥进行了动力 特性分析,文 3 1 1 对该模型又进行了改进,使得利用双三主梁模型对汀九大桥进 行动力分析得到的结果与现场实测结果进一步吻合。这种模拟斜拉桥采用的三维 杆系模型也是本课题所编制程序的基础,程序中的结构类就包括了三维梁单元, 桁架单元和节点。 2 对大跨度桥梁风场模拟及气动力计算方法的研究。文 2 3 2 7 1 1 3 2 采用修正 的谐波合成法模拟生成主梁上的随机风速场样本,文【3 4 】在此基础上,提出了可 考虑桥塔风效应的风场模拟方法。 6 第一章绪论 3 利用动力时程分析方法对大跨度斜拉桥进行抖振响应的时域分析,文 【2 3 1 1 2 7 1 1 3 3 对汀九大桥进行了详尽的抖振响应分析,文【3 4 对结构几何非线性及 动力时程分析理论与大跨度斜拉桥的时域内颤抖振分析结合进行了系统的阐述, 对大跨度斜拉桥风响应计算结果的评价进行了改进,并重新编制了桥梁风响应的 分析程序。 本课题在以上研究成果的基础上,编制了可视化的大跨度斜拉桥风振响应程 序,本程序不仅仅能实现简单的前后处理功能,而是重新建立了一个独立的图形 平台,可以在此平台上实现从建模,计算,到后处理显示结果一系列功能,可以 说它已经具有了一个完整结构计算软件的必备要素。本程序的可视化部分是在黄 炎生教授开发的控件g r a p h i c b a s e 以及基于三维图形接口o p e n g l 的第三方控件 g l s c e n e 的基础上编制的,而核心计算程序则基于文3 4 1 中邹小江博士编制的大跨 度桥梁风振响应程序。 虽然目前常用的商用结构分析软件都有强大的前后处理部分,如a n s y s , a d i n a ,s a p 系列等,这些软件使得研究人员能够方便、快速地解决大多数工程 问题,但对于解决一些特殊问题,例如大跨度桥梁的风振分析,一般的有限元软 件不具有这方面的功能,而是通过开发专用分析程序来完成,但很少有人在此基 础上开发一个针对该问题的可视化程序,如果自己动手开发运行于w i n d o w s 环境 中,拥有独立图形支持平台的前后处理程序,将使计算分析更为简便直观,使科 学计算可视化与计算分析紧密结合起来,可以避免直接面对大量难于理解的抽象 数据,而将这些数据信息转化为直观的、可进行交互分析、用图形图像形式表示 的静态或动态的画面,最大限度地应用我们的计算成果,使人们加深对被模拟对 象的物理规律及其分析过程的认识。 利用本程序,用户可以使用各种绘图方法,或者从s a p 2 0 0 0 中导入,来建立 杆系结构模型,生成计算所需的数据文件,核心分析程序可实现线形及非线性静 力计算,自振特性分析,斜拉桥时域内线性和非线性的颤抖振分析,最后通过后 处理部分整理出计算结果中用户关心的数据,通过图表显示出来,包括约束反力, 杆端力,节点位移,振型,位移时程曲线等等。 1 3 2 论文结构 本文中详细阐述了w i n d o w s 环境下本程序的研制,其具体内容包括: 1 软件开发中使用的面向对象的程序设计思想和软件的数据结构,也就是本 软件基本的结构框架。 2 根据计算机图形学原理和面向对象原理,阐述在程序中如何实现各种图形 变换和操作。 3 可视化界面的实现,包括窗口设计、菜单设计、对话框设计等,以使用户 7 华南理工人学硕士学位论文 能够方便的完成各种操作。程序与其他软件的数据接口,例如与s a p 2 0 0 0 的数据 交换以及打印接口等。 4 斜拉桥非线性有限元风振响应分析程序的理论基础。 5 工程算例,包括用本程序分析佛山高赞大桥的自振特性以及香港汀九大桥 的风振响应问题。 8 第二章可视化系统中面向对象的稃序设计 第二章可视化系统中面向对象的程序设计 2 1 设计思想和基本特点 传统的“结构化程序设计”方法把面向机器代码的程序抽象为三种基本程序 结构:顺序结构、选择结构和重复结构,并提出了一系列的设计原则,如自上而 下、逐步求解、模块化编程等。根据这些原则,按照程序所需功能,白上而下层 层展开,上层是定义算法的模块,最下层是实现算法的模块。按这样规范构成的 模块是高度功能性的,有很强的内聚力。但各模块的数据处于实现功能的从属地 位,各模块与数据之间的相关性较差,无论把数据分放在各个模块里还是作为全 局量放在各总控模块中,模块之间都有很大的耦合力。在w i n d o w s 程序中,多个 模块是并发执行的,这种耦合力极易导致程序系统出现混乱。 而且传统语言中,程序是由传递参数的程序和函数的集合组成,每个过程处 理它的参数,并可能返回某个值,这种程序以过程为中心。在这种面向过程的程 序设计中,程序员必须基于过程来组织模块,这必然导致程序的结构与应用领域 中结构差异很大。另外许多重要函数和过程的实现主要取决于关键的数据结构, 如果一个或多个这样的数据结构发生了变化,许多函数和过程必须重写,甚至导 致整个软件系统的结构崩溃。随着软件规模和复杂性的增长,这种缺陷日益明显。 当前的软件应用领域已从传统的科学计算和事务处理扩展到其他很多方面, 如人工智能、计算机辅助设计和制造等,所需处理的数据已从简单的数字和字符 串发展为记录在各种介质上并且有多种格式的多媒体数据如图形、声音等。数据 量和数据类型的空前激增导致许多程序的规模和复杂性均接近或达到了用结构化 程序设计方法无法管理的程度。正是在这种背景下诞生了面向对象的程序设计方 法【”。 面向对象的程序设计( 0 b j e c t o r i e n t e dp r o g r a m m i n g ,简记为o o p ) 立意于 创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自 上而下编程的优胜者。其根本目的就是使程序员更好的理解和管理庞大而复杂的 程序,它在结构化程序设计的基础上完成进一步的抽象。面向对象是一种方法, 一种思想,同时又是一种技术。它力求更客观自然地描述现实世界,使分析、设 计和实现系统的方法同认识客观世界的过程尽可能一致。它通过给程序中加入扩 展语句,把函数“封装”进w i n d o w s 编程所必需的“对象”中。面向对象的编程 语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而 9 华南理工大学硕士学位论文 言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容, 只是部分面对对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则 对象产生的好处还没有带来的麻烦多。 可视化技术与面向对象技术存在两个明显的结合点:其一,计算机图形处理 采用了大量并行算法,而面向对象的概念具有天然的并行机制,能满足可视化的 实时性及处理对象的复杂性所要求的高效图形生成。其二,面向对象的方法学比 较自然地模拟了人类认识客观世界的方式,每个对象通过定义一组“方法”来说 明白身的功能。对象间联系通过传递“消息”来完成,发消息通知某对象去完成 一个允许作用于该对象的操作,但该对象如何完成这个操作的细节却被封装在该 对象的定义中,对外界是隐藏的。因此,面向对象技术能很好满足我们对可视 化系统的要求。 2 2 面向对象基本概念与特征 面向对象是一种认知方法学,它的出发点使我们在分析、设计和实现某个复 杂系统时,与我们认识客观世界的过程尽可篦一致。面向对象的方法提供了从一 般到特殊的演绎手段( 如继承) ,又提供了从特殊到一般的归纳形成( 如对象类) 。 面向对象技术有三个基本概念f 1 0 】: 1 对象( o b j e c t ) :对客观世界事物的表示和描述; 2 类( c l a s s ) :对一个或多个类似对象的描述,是用户创建的数据类型,包 括内部数据变量和方法; 3 实例( i n s t a n c e ) :被某一特定的类所描述的一个对象; 在我们所处的客观世界中,每一个有明确意义和事物都可以看作是一个对象, 这些对象有自己的属性,对象与对象之间还有一定的相互关系。我们可以把具有 相似特征的事物归为一类,也就是把具有相同属性的对象看成一个类。从另一个 角度来看,对象就是类的一个实例,是类定义的数据类型的变量。一个对象是一 个数据类型。对象就象记录一样,是一种数据结构。按最简单的理解,我4 1 1 可以 将对象理解成一个记录【1 1 】。 从对象的定义出发,面向对象编程有以下四个基本特征: 1 封装性:把代码和数据结构衔接在一起,构成一个具有“类”类型的对象。 通过封装,使得对象的内部数据变量只在对象内部使用,当从外部访问数据时, 不允许改变数据,只有局限于对象中的方法可以对数据进行处理。 2 继承性:继承性是指把一个新的对象类定义为己存在类的后代,新类继承 了旧类的一切东西,往新类中添加任何新的内容之前,父类( 基类) 的数据变量和 方法已存在于子类( 派生类) 之中,父类是创建子类的基石。通过继承性,程序的 许多全程特性不必重新建立,只基于系统已有的功能即可。 1 0 第一:章可视化系统中面向对象的程序设计 3 多态性:相同的函数调用为不同对象接受时,可导致完全不同的行为,这 种现象称为多态性。程序只需进行一般的函数调用,函数的实现细节留给接受函 数调用的对象。 4 动态聚束:一个程序经编译、连接成为可运行的目标码,就是将执行代码 聚束在一起。传统程序设计语言编写的程序在运行之前即可聚束,面向对象语言 编写的程序则在运行时才发生聚束,故称为动态聚束,它与多态性和继承性密切 相关。动态聚束是在运行时刻完成的,运行效率稍低,但它所带来的好处( 如增删 自如1 符合近代软件对可重用、可修改和可扩充等要求。 在面向对象的设计方法中,对象和传递消息分别是表现事物及事物之间相互 联系的概念。类和继承是适应人们一般思维方式的描述范式。方法是允许作用于 该类对象上的各种操作。这种对象、类、消息和方法的程序设计范式的基本点在 于对象的封装性和继承性。通过封装能将对象的定义和对象的实现分开,通过继 承能体现类与类之间的关系,以及由此带来的动态聚束和实体的多态性,从而构 成了面向对象的基本特征。 2 3 数据类型和数据结构 现实世界数据的分析、复制、传播首先要符号化,这样才便于处理,尤其是 便于计算机的处理。能输入到计算机中并被计算机程序处理的符号的总称就是数 据,换言之,数据是计算机程序加工的原料。数据由数据元素组成,数据元素是 数据的基本单位,通常在程序中作为一个计算整体加以考虑和处理。数据元素往 往不是孤立无关的,数据结构就是相互之间存在特定关系的数据元素集合。常用 的数据结构有集合、线性表、树和图。数据结构在计算机中的表示一数据的物理 结构( 也称存储结构) 包括数据元素的表示和数据元素之间相互关系的表示。数 据元素之间关系的表示有两种方法:顺序映象和非顺序映象。由此得到两种不同 的存储结构:顺序存储结构和链式存储结构。程序设计语言借助“数据类型”来 描述数据的存储结构,在p a s c a l 中可以用“静态数组”描述顺序存储结构;用“指 针”描述链式存储结构f “j 。 数据结构是数学模型的一种形式,在一些小型应用程序中,数据元素比较少, 它们之间的联系也比较简单,因此在这个程序中,数据结构常常也不被重视。而 在一个大型的c a d 系统中,往往要对大量的、互相关联的数据进行各种操作, 这时数据的表示形式对处理速度的影响就很大,如果在程序设计阶段不能做好数 据结构的设计,系统的使用效率和可维护性就值得怀疑。 2 3 1 数组 数组是最为简单的数据结构,元素均为同一类型,都储存在一个内存块中。 1 1 华南理工大学硕士学位论文 本程序中的许多中间过程中,当处理的数据不太多时,就使用了数组这种传统的 易于操作的数据结构。例如对节点约束、单元和节点荷载的描述, t j o i n t r c s t r a i n = a r r a y 【1 6 o f i n t e g e r ; t e l e u n i l o a d 2 a r r a y 【1 6 o fd o u b l e ; t j o i n t l o a d 2 a r r a y 【1 6 】o fd o u b l e ; 数组的缺点也是显而易见的:插入或删除元素要移动大量的元素,要预先分 配存储空间,而实际问题中许多数据规模是变化的,另外数组的容量也难以扩充。 在引入了动态数组后,静态数组的后两个缺陷得到了改善,例如描述一组选中的 节点时,可以先用s e t l e n g t h 函数为动态数组分配存储空间: s e t l e n g t h ( s e l j o i n t ,s e i j o i n t c o u n t ) :s e l j o i n t c o u n t 为选中的节点个数 2 3 2 链表 在本程序中,主要采用了线性表链式存储结构,即链表。对许多基本类型, 例如节点,塔单元,梁单元,索单元等,由于其数量多而且不稳定,用户在交互 式作图过程中需要对图形作反复修改,如果用数组来存储图形元素,则每增删一 个元素就要对数组中的数据进行一次重排序,所以我们采用了线形链表这种数据 结构,用指针或动态数组描述存储结构,相对于静态数组来说,这种数据结构更 加有利于数据的查询、添加、删除等操作,也节约内存。链表中的基本数据元素 是记录,每个记录分为数据域和指针域,数据域用来存储单元的属性数据,大小 根据集体情况而定,主要是包含足够的信息,指针域包含指向另一节点的指针( 其 实质是某个内存地址) ,以表示数据元素间的相互关系。 圜呕拇 l 表头指针r 。l指针r 。l指针r 。 表头元素1元素2 表头元素1元素2 图2 1 单向链表和双向链表 f i g 2 - 1o n e w a ya n dt w o w a yl i n k e dl i s t 链表在逻辑上是由一组有序元素组成的,但在物理上却是无序的,不必为每 个链表结构分配一块连续空间。链表元素的有序性表现在元素的自身之中,每个 第二章可视化系统中面向对象的程序设计 元素都包含一个值域和指针域,其指针域指出链表中的邻接元素。链表一般有单 向链表和双向链表两种,其结构如图2 所示【1 4 】。 例如: 节点链表( 单向链表) : p j o i n t = “t j o i n t ; t j o i n t = r e c o r d j o i n t n o :w o r d ; 节点编号 l i n k t o e l e :w o r d ; 连接的单元数 c o o r d :m y c o o r d ; 原始坐标 d e f o r m c o o r d :m y c o o r d ; 变形后坐标 p o s :m y p o i n t ; 在用户坐标的位置 i f s e l e c t :b o o l e a n ; 是否被选择 v i s i b l e :b o o l e a n ; “是否日觅 j o i n t l o a d :p j o i n t l o a d ; 节点荷载 j o i n t r e a c t :a r r a y 【1 6 】o fd o u b l e ;约束反力 j o i n t d i s p :a r r a y 1 6 】o fd o u b l e ;节点位移 r e s :t r e s t y p e ; 约束形式 n e x t :p j o i n t ; 指向后节点的指针 e n d ; 杆系单元链表( 双向链表) : p e l e = “t e l e m e n t ; t e l e m e n t = r e c o r d e l e t y p e :t e l e m e n t t y p e ; 单元类型 u j o i n t ,d j o i n t :p j o i n t ; 单元端节点指针 e l e n o :w o r d ; 单元编号 i f s e l e c t :b o o l e a n :是否被选择 v i 【s i b l e :b o o l e a n ; 是否可见 l e n g t h :d o u b l e ; 单元长度 p t l o a d :p j o i n t l o a d ; ,单元上点荷载 u n i l o a d :a r r a y 0 4 】o fd o u b l e ;,单元上线荷载 s e c t i o n :p s e c t i o n ; 截面类型 p r e v n e x t :p e l e ; 指向前后单元的指针 e n d ; 华南理工大学硕士学位论文 对链表进行的基本操作有一下几种: 1 初始化操作:设定一个空的链表,所有的链表在使用前一定要初始化。例 如清空一个节点的链表代码如下: p r o c e d u r ec l e a r j o i n t d a t a ; v a rc j o i n t ,t e m p j o i n t :p j o i n t ; b e g i n c j o i n t := h j o i n t : w h i l ec j o i n t n i ld o 指针使用前应确保其不为空指针 b e g i n t e m p j o i n t := c j o i n t “n e x t ; d i s p o s e ( c j o i n t ) ; ,释放删除节点所占内存 c j o i n t := t e m p j o i n t ; e n d ; h j o i n t := n i l ; e n d ; 2 求长度操作:链表中所包含的节点的个数。例如求当前所有节点或梁单元 的总数。 p r o c e d u r ec o u n t e l e ; v a te l e c o u n t :w o r d ; 梁单元数 t e m e l e :p e l e ; b e g i n t e m e l e := h e l e ; e l e c o u n t := 0 ; w h i t e ( t e m e l e n i l ) d o b e g i n e l e c o u n t := e l e c o u n t + 1 : e l e o := e 1 e c o u n t : t e m e l e := t e m e l e n e x t ; e n d ; e n d ; 3 取元素操作:取出链表中满足指定条件的节点。例如鼠标点击选中一个单 元。 4 定位操作:求出满足指定条件的节点在链表中所处的位置。例如根据给出 的节点号找出节点的位置。 5 插入操作:在链表的指定位置插入一个新的节点。 1 4 第二章可视化系统中面向对象的程序设计 6 删除操作:删除链表中满足指定条件的节点。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 诺特传媒专业知识培训课件
- 2025版少数民族离婚协议财产分割与财产继承合同
- 2025年金融纠纷调解服务合同范本
- 2025年度特色美食街区摊位租赁合同样本
- 2025版网络平台用户投票权委托代理合同
- 2025年度工业自动化产品技术解决方案合同范本下载
- 2025二手公寓买卖中介服务合同
- 2025年学生宿舍租赁及管理服务合同
- 2025年度商业综合体店铺租赁及商业运营服务合同
- 2025年度车位买卖合同(含车位产权证及车位设施安装标准)
- 2024中华人民共和国学前教育法详细解读课件
- 余热锅炉施工方案
- 动态关节松动术课件
- 统编版中考语文一轮复习:义务教育语文课程常用字表(3500字注音版)(2022版课标)
- 《心系国防 强国有我》 课件-2024-2025学年高一上学期开学第一课国防教育主题班会
- 九一八事变主题班会课件模板
- 学校和教练协议书
- 2.1.充分发挥市场在资源配置中的决定性作用 课件高中政治统编版必修二经济与社会
- 人教部编版小学四年级上册道德与法治全册教案
- (2024年)知识产权全套课件(完整)
- 阀门试压方案样本
评论
0/150
提交评论