程序结构力学期中作业课件.docxVIP

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
清华大学本科生考试试题专用纸考试课程《结构矩阵分析》 2013年 1 月 11 日班级结构02姓名汪家继学号2010010144用Fortran90语言编制平面杆系结构自由振动的分析程序:必作:频率计算 (任意结构自由振动的前n阶频率,可求重频率)要求:正确可靠、能通过ELF90的编译、与求解器相接、尽可能优化求解速度。选作:振型计算 (根据完成情况给附加成绩,可以只作单根的振型)注:为了可与求解器教学版接口,若只作频率,振型的杆端位移可输出零值。交卷形式:提交Fortran90的源程序;提交一个程序报告。其中程序报告的内容包括:(1) 简要的程序说明(2) 源程序清单(3) 试题纸(标明结点和单元编码)(4) 输入数据文件(5) 输出结果第一题:求图示结构的前10阶频率。各杆,误差限柱刚度:,梁刚度:,第 1 页/共 2 页指定数据跨长 (m)层高 (m)165284332第二题:求图示结构的前8阶频率。各杆,,误差限,杆长1.2 。第 2 页/共 2 页静力分析编程大作业班级结02姓名 汪家继 学号2010010144一、程序流程设计图如上所示,本次程序结构力学的作业中,要求我们在课程教材的计算代码的基础上补足尚缺少的代码,实现完整的超静定结构的静力分析部分的相应计算。其中,涉及到的各个计算模块流程图如下所示:图一:主程序调用部分图二:TypeDef部分图三:矩阵变换模块(Bandmat)图四:FreqSolve模块NoNoYes图五:主振型计算部分(被FreqSolve调用)NoNoYes附注:内容文件清单SM90.f90为编程中所使用的源文件,内部含有所有代码,使用CVF以及ELF均可通过文本文档:《程序结构力学期末作业——结构02汪家继》,为一式两份,分别为pdf版本及word版本,两者内容完全一致。计算数据输入文件:汪家继作业题1.inp,汪家继作业题2.inp编程过程中自动生成的Debug文件夹及其workspace文件。编译得到的SM90.exe可执行文件二、编程总结:通过本次课程期末大作业的编写过程中,我主要使用Fortran语言完成数据读写、荷载动力刚度矩阵的计算与集成、利用Wittrick-Williams的计数方法进行基频的计算、利用Newton法进行主振型的计算等各个环节。并最后对于我们所求解的这两个问题实现了充分的精度。在编程过程中遇到的问题与经验总结如下1、理论推导与编程实际相联系的学习方法:要想真正发挥计算机高超的计算能力,我们既需要对于基本原理的深入了解,也需要对在编程过程中充分考虑到如何通过程序实现我们的构想。理论与实际编程中细微的差距就有可能导致计算结果的完全错误或者完全无法得出收敛的结果。例如在计算刚度矩阵的过程中,由于此类动力刚度矩阵存在cosh(),sinh()之类的函数。这些函数在数学中理论上可以计算,但在计算机的实际应用中会由于计算机存储能力的不足发生数据溢出的现象。为了解决这一问题,老师在课程中提出的方法为使用esh(),ech(),这两个函数用以避免计算其中的指数暴涨的成分。在初期的编程计算中,我处于编写方便的考虑并未使用该做法,后期的实际计算显示出这会使得结构在较高的主振型(100阶以上)出现较多的计算误差,甚至有可能出现软件无法运行通过的情况。为此,我通过细致的排查将刚度矩阵以及刚度矩阵的导数矩阵中的各个元素进行通分与检验,彻底避免了指数爆炸的因式,最终合理地解决了这一问题。此外,在计算主振型时,最为基础的步骤在于给出每一个杆件所对应的固端主振型的数量。在一开始的计算中,我曾经分别考虑了固端轴向振动、弯曲振动且K为偶数、弯曲振动且K为奇数这三种情形并讨论了三者的相互逻辑关系。此后在编程后期我加深了对这一现象的理解。可见,在此处充分地理解计算的原理可以让我们很好地了解到程序中的逻辑关系,避免不必要的浪费工作。最后,在编写完成相应代码并生成EXE文件之后,我又将已有的计算结果与学生版本的结构力学求解器中求得的结果进行互相比对,通过这一过程,我们逐步发现了已有程序中的问题,并逐个排除。2、重频的处理方法本次大作业最为值得一提的是我们对于重频频率的计算方法。我在程序中使用的解决方法是在程序主振型求解的这一子过程Final_Disp()中引入参量cg。这一参量为重根的拼音缩写,也就是说每当我们调用Final_Disp模块之时,我们就已经是从上级模块中读取出相应的重频次数,并依据这一结果进行计算。而在这里的计算一方面需要使用通用的牛顿算法,另一方面需要确保一开始选取的尝试位移与前面已经求解得出的位移保持互相正交的关系。这一点是通过调用的一个子过程zhenjiao( )而得以解决。对于结构2,当我们将我们的结果与学生版本的结构力学求解器互相比对时,可以

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档