ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:654.13KB ,
资源ID:9493091      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9493091.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(OpenSees自学笔记.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

OpenSees自学笔记.docx

1、OpenSees自学笔记OpenSEES自学笔记(一) “博主按”:本文是我第一次用OpenSEES做仿真分析作业(基于OpenSEES的方钢管混凝土柱抗震性能分析)过程中点滴记录的自学笔记,发表出来既是和各位(尤其是OpenSEES初学者)交流,同时也算作个自我小结以备日后查阅。尽管我力求完美,但这些习得中仍然极有可能存在错误!请注意甄别!同时也衷心希望各位高手不吝赐教!另外,由于时间仓促,本人又是初学OpenSEES,所以文章内容上比较零散,见谅!初识OpenSEES我是在钢筋混凝土结构非线性分析这门课上第一次听说这个软件的。老师说(均为个人理解,可能不是老师原话)这个软件能够用纤维单元做

2、有限元分析,在模拟大型结构上比ANSYS、SAP等利用实体单元的有限元程序有优势;经常用于抗震分析科研中;不是一个“设计型”软件(如SAP、PKPM、桥博等);还要求我们用它做两个大作业。在Silvia Mazzoni, Frank McKenna, Michael H. Scott, Gregory L. Fenves等人编写的OpenSEES的Users Manual (v2.0)开篇,是这样回答What is OpenSEES?这个问题的: An object-oriented software framework for simulation applications in earth

3、quake engineering using finite element methods. OpenSees is not a code. A communication mechanism within PEER for exchanging and building upon research accomplishments. As open-source software, it has the potential for a community code for earthquake engineering.好吧,既然是专业软件,那咱就在接下来的使用中逐渐熟悉吧!软件下载与安装Op

4、enSEES和Tcl的下载页面链接在OpenSEES官网首页左侧的栏目里,点击“Download”即可进入下载页面(下载之前需要注册(新用户)或填写电邮(已注册用户)。我的电脑用的是64位的Win7(2012年5月23日11:44:48更新:Win7 旗舰版 SP1),ActiveTcl8.5.11.0.295402-win32-ix86-threaded安装成功。安装路径按照官网说明手动作了修改(即将安装路径由默认的C:Tcl改为C:Program FilesTcl)。注意:必须以管理员身份运行ActiveTcl安装程序(在安装包上右击,选择“以管理员身份运行”),否则会安装失败!OpenS

5、EES的运行界面如下图所示。 小技巧:可能由于Tcl Editor(下文将介绍)是绿色软件,系统默认并没有把tcl文件和Tcl Editor关联起来,而且一般也没有建立tcl文件的其它关联方式,所以如果直接双击tcl文件不仅无法打开它,还会弹出错误提示对话框(提示无法识别该tcl文件头几行)!如果你想实现双击tcl文件调用Tcl Editor进行编辑的话,可以自行更改文件关联。具体操作就是在任意一个tcl文件上右击,选择打开方式,然后通过“浏览”找到TclEditor.exe这个可执行文件(一般应该是在C:TclEditorbin下),并勾上始终用该程序打开此类文件选项,确认。以下大致总结下自

6、行摸索的OpenSEES一般编程规律、技巧。关于这次作业具体的心得在这篇博文里:OpenSEES自学笔记(二)。(两篇写一起既乱且长。)OpenSEES解题一般规律、技巧总结单位OpenSEES中是可以用公制单位(N,m)的(而并不是像某些文章中说的“OpenSees默认为英制单位”)。实际上我认为OpenSEES中并没有什么默认单位,只要编程者自己保持单位一致就行;这点类似于SAP2000的风格。建模顺序做事要讲究顺序,OpenSEES建模亦如是:必须先定义材料才能离散截面(因为离散截面时要对所划分的截面指定材料属性)。与之类似的,必须先定义(离散)截面,才能定义非线性梁柱单元(因为定义非线

7、性梁柱单元时要指定单元截面)。关于BandSPD求解方式官网关于BandSPD方程形式的评价:This is a good choice for most small size models. 并且后面紧跟了一句:The equations have to be numbered so the widely used RCM (Reverse Cuthill-McKee) numberer is used. 可见numberer 类型不是随便选,而是要根据方程类型来决定的!(不过直到作业做完,我对numberer, system, test, algorithm, analysis(还包括ge

8、omTransf,constraints)等求解控制命令还是一知半解!我觉得要想弄明白这些命令得先回头好好翻翻有限元和数值分析的书了!)OpenSEES中默认的计算精度比较高!“0.10000000000000010.1”:(自行总结,未找到官方说明)这是一个真实的故事:我曾在程序中自以为是的将一连串相邻均只有0.1左右的数的差强行赋值为0.1,而没有采用循环命令将两数作差并将结果赋给新变量其中即有这样的强行截断!我以为小数点后都n位了,即使我带着它最后也会被系统截断,还不如我直接预处理来得清爽!没想到这样做直接导致计算不收敛!真是失之毫厘谬以千里!可见在OpenSEES中默认的计算精度比较高

9、!后来我还在老师给的一份范例程序(Silvia Mazzoni & Frank McKenna, 2006)中发现了这么一段:set Ubig 1.e10; # a really large numberset Usmall expr 1/$Ubig; # a really small number可见系统并未认为Usmall=0 !再一次印证了这一点!划分纤维截面时角点坐标输入的门道划分纤维截面时角点坐标输入非常有讲究!为了说的直白,我把要点放到下面这张图中了:数据文件处理OpenSEES运行中是可以生成并读写txt文档的!注意我说是“读写”哦!(生成txt文档的好处是方便运行完后双击生成的

10、数据文件读取数据,你懂的。)Tcl编程语法(1)命令流中不能出现中文标点(这一点和C语言编程类似)!(否则运行时DOS窗会停住,给出警告,表明不识别命令流中的中文标点。)(2)if-else 语句中if和后面紧跟的大括号之间、else和前后大括号之间都要空一格。如:if $a0 set b 3 else set b -3; #如果a大于0,则令b等于3,否则等于-3。类似的,相邻的两个大括号(一个反大括号和一个正大括号)之间也必须有一个空格。(3)Tcl语言对命令名、变量名区分大小写。(4)一行一般只写一条语句;若想写多条,则各语句间应用分号隔开当一行只有一条语句时,句末分号可有可无。同时还有

11、一种特殊情况,就是当在一条命令后(同一行中)加注释时,该命令末尾必须有分号以告知编译器该命令结束,否则编译器会认为该注释也是前面的命令的一部分,导致编译出错。(5)引用变量时,要在变量名前加上$(美元符号)!这个步骤非常琐碎,不如C语言编程简洁。大家就忍着点吧!运行方法目前我知道至少有两种:方法一:直接运行OpenSEES,在 OpenSees 提示符后输入“source *.tcl”(“*.tcl”是提前编写好的命令流),然后回车。优点:个人认为没有;缺点:命令流编辑时易犯格式错误,每次运行都需运行OpenSEES,再在那个黑框里敲命令流,各种不方便!(其实这个方法只是说说而已,实际我从来没

12、用过。)有的童鞋用Ultra Editor之类的通用文本编辑软件写程序再导入OpenSEES运行,我没试过,估计应该没有下面说的第二种方法好。方法二:借助第三方专用编译环境。我目前一直用的是Tcl Editor。它的优点有:可以用不同颜色区分不同功能语句;还有“查找”、“加注释”、“取消注释”等基本常用功能;更好的是菜单栏有个按钮直接与OpenSEES关联,点击就可以调用OpenSEES求解,比较方便(当然,比起Visual Stidio之类的还是差远了!可惜谁叫OpenSEES是这么小众呢?)。但这个软件有个非常大的缺点编程者无法获知当前所编辑文档的路径!如果你需要在编程时参考其他文件夹下同

13、样名字的文件(这样的情况在我这次做作业时经常发生,因为我编辑的文档和模板文档文件名相同),把两个文件都用Tcl Editor打开后,你稍一不留神,就会忘了你当前编辑的文档到底是哪里的文件!那时可真是麻烦!所以我总结,这就要求编程者:1、每次在Tcl Editor里打开文件时,不要一看文件名对就急忙打开还要看看这个文件是不是在正确的文件夹下面;2、编程时最好一气呵成;长时间休息时最好把Tcl Editor关掉。说句题外话,我认为一个好的专业软件应该做到让用户大部分时间只需要考虑专业相关的东西,而不必操心其他。所以我想,如果以后自己需要经常用OpenSEES的话,看能不能用其他的编译器,不用这个T

14、cl Editor了。计算不收敛,怎么办?可以考虑如下几点:1、材料本构设定是否正确?材料本构参数是否合理?而且有时steel01比steel02、concrete01比concrete02好收敛,如果可以的话不妨改改材料模型。2、是否极限位移给的过大,柱子已经破坏?把极限位移改小一点试试。(这是针对我这次作业而言)3、是否收敛容差太苛刻?把容差改大一点试试。(尽管这也许并不是真正解决问题的办法!)调试程序的技巧:控制变量法控制变量法大家应该很熟悉了。调试程序中我的经验是:一次改动的参数不要太多,改动的是哪些变量自己要记得。最好一次只改一个变量。然后根据运行结果随所作改动变化的规律,及时将变量

15、修改到合适的值。这样做看起来慢,其实我觉得是步步为营,效率比较高。(这些其实应该是编程的通用技巧,经常编程的朋友们应该都有体会。)建议在程序中多用公式一个比较好的编程习惯是,程序里能输公式的地方就输公式,让用户只需要给定几个基本参数。不要自己事先把中间量在草稿纸上算出来然后输到程序里这样不仅程序通用性不高,而且计算精度也没有电脑算的高(我前面已经说过,OpenSEES中默认计算精度是非常高的!),真是“吃力不讨好”!关于wipe命令后面的分号上文说过,如果一条命令后面(同一行中)没有其他命令或注释,那么该命令末尾既可以带分号,也可不带。但是我发现对于wipe命令则不然:因为在Tcl Edito

16、r中可以发现,如果wipe末尾带了分号(该行再无其他字符),wipe这个单词是黑色的;但若去掉该分号,wipe就变成了绿色从颜色变化上猜测,莫非加了分号导致wipe命令不被识别?再考虑到下文将提到的“OpenSEES似乎存在计算不稳定现象”与wipe命令间千丝万缕的暧昧关系,对于wipe这个“黑匣子”我还是保守处理去掉末尾的分号吧!事实证明去掉分号后貌似有几次曾经不收敛的计算神奇般的收敛了!疑问:OpenSEES计算结果似乎不太稳定?具体表现就是,你现在运行某个命令流算题,计算收敛,得到解了;然后你根本就不改程序,甚至连Tcl Editor都关了,更甚至连电脑都关了,等会再重新运行这个命令流,

17、有可能不收敛!我遇到过很多次这个现象,还有同学出现刚开始算不通过,后来啥也没改,重新运行竟然顺利通过了!难道是内存调用错误?可程序开头不是由wipe命令吗?或许这个wipe根本就不像官网上介绍的那样每次运行都能彻底destory内存中所有之前建的模型、对象?(当然也不排除我们在两次结果不同的计算中间无意改动了程序某个部分而自己又忘了毕竟调试程序很复杂,控制变量法调n个参数,特别像我们这种初学者,一调就几个小时,最后是头晕眼花,腰酸背疼所以偶尔忘记自己对程序细微的改动也是可能的)关于element recorder里轴力和剪力的正方向element recorder里记录的轴力和剪力的正方向是怎

18、样的?User Manual里的解释是:These forces correspond to the global coordinate axes orientation.我的理解图解如下图所示(图中剪力和轴力都为正):其他两个英制单位换算:1、kipone thousand pounds force,千磅力,约相当于4,445.205226 N4.45 kN。2、重力加速度g9.8 m/s2385.8 inch/s2。在学习OpenSEES中常见的英文缩写、专业英语术语:OpenSEES:Open System for Earthquake Engineering SimulationNSF

19、:National Science FoundationPEER:Pacific Earthquake Engineering Research Center(为什么不缩写成 PEERC 呢?)NEES:Network for Earthquake Engineering SimulationPBEE:Performance-Based Earthquake Engineeringportal frame:门式刚架,龙门架(planar portal frame:平面门式刚架)ndm:number of dimensions per nodendf:number of degrees of f

20、reedom per nodetranslation:uniform motion of a body in a straight line 刚体位移,线位移normal:【数】法线 rotation about the planes normal 绕平面法线的转动prompt:提示。(个人理解:指DOS窗中一闪一闪的光标,学名“命令提示符”。)a-priori:先验的。(be generated a-priori,个人理解:即“事先编辑好的”)geometry:几何尺寸element:单元component:(地面运动的)分量drift (angle):位移角uniaxial:of or r

21、elating to only one axis,单轴的time series:a set of data collected sequentially usually at fixed intervals of time,时间序列argument:one of the independent variables upon whose value that of a function depends,自变量,参数nodal load:节点荷载(这个词组读起来有点绕口 _)flag:标志变量(学过C语言编程的同学应该知道!)discretization:离散化offset:偏移(量)iterat

22、ion:迭代(法)SOE:system of linear equations,线性方程系统Newton with Line Search Algorithm:线性搜索路线牛顿算法(这个翻译可能不准确)BandSPD:Banded Symmetric Positive Definitemap:映射关于OpenSEES的学习资料:来自官方:1、OpenSees User(里面有详细的帮助文档)2、Example Mannul(官网提供的帮助手册)3、OpenSees官网提供的Tcl编程教程4、网页版用户手册(09年版)5、OpenSeesNavigator(OpenSeesNavigator i

23、s a matlab interface for OpenSees. It allows users to quickly create models, perform analysis, and look at the results. It runs on windows machines. )6、Basic Examples Manual(The objective of this primer is to provide new users of OpenSees (Open System for Earthquake Engineering Simulation) familiar

24、structural engineering examples as a convenient method for learning how to use the software.)原创教程及其他:1、转教程OpenSEES超简单易懂的入门第一课2、OpenSEES最好的介绍 (这个讲了一些数值模拟的本质,比较理论化。)3、结构艺术家_刘金成的博客玩转opensees e.g.1玩转opensees e.g.2 暨 sap2000 vs opensees (IV) 4、(XX文库)L形钢管混凝土柱抗震性能非线性有限元分析5、(豆丁)OpenSees 使用与教程(一个豆单,里面有5篇文章。其

25、中:OpenSees这篇是节选自一篇重庆大学硕士论文中关于OpenSees的部分,个人感觉写得很好。)6、(中华钢结构论坛)用过OpenSees的前辈请进来帮帮我!(顺便说一下,这个论坛话题讨论质量很高,经常有高手出没!)7、厦门大学建筑与土木工程学院古泉副教授创办的OpenSees学习网站(以前印象中厦大只有文科,浏览了这个网站后我再不敢这么想了)8、推荐一个QQ群:61667191(Opensees与地震工程2),感兴趣的话可以加入;里面都是OpenSEES高手与爱好者,讨论的基本都是学术方面的事情。9、dinoChen的博客(这是陈学伟博士的个人网站,他还有个QQ空间,两个网站上都有非常

26、丰富的优质原创资源!陈博士实乃青年才俊!佩服!上面提到的QQ群也是他创建的!)10、TCL/TK编程实践第四版icelamp的专栏CSDN博客11、Tcl简介维基百科最后,谨摘录两段高手的OpenSEES的学习心得,与君共勉。感谢原作者!ocean2000:“我的当初毕业论文也是用os做试验仿真的,台湾有一篇砌体结构实验用os来仿真的,可以google之,os有一些可以模拟的2D单元。这个程序只要过一遍mannual,使用一点不难,而且资料也很多了,它的论坛不错,问题的讨论很积极。要加新单元和新材料也不难,接口都给大家提供好了。其实这个软件的一大优点是TCL/TK很容易上手,对于计算过程可以加

27、入自己的判断和控制条件,所以可以做出很好的滞回曲线,还可以动态显示曲线发展过程。非常难得的是在工作中居然看到单位的软件有与opensees的数据转化接口。”dinochen1983:“学习OPENSEES要求一定的有限元知识及非线性理论,最好会编程,因为建模需要用编程的思想去简化重复输入,本人觉得OPENSEES值得大家好好学习,我学了半年,收获很多。”OpenSEES自学笔记(二) 2012-04-17 10:49:15| 分类: 业务|字号 订阅下面要小结的是我在做第一次OpenSEES仿真分析作业中具体针对这次作业的疑问和收获,最后还将大致展示下分析结果。这次作业是模拟位移控制下方钢管混

28、凝土柱(取材于吕西林、陆伟东完成的一次试验1。计算高度800mm,外围钢管宽200mm,厚4mm,轴压比0.5;钢材 ,用steel02模拟;内填混凝土 ,用concrete02模拟。本构参数计算参考Mander2和蔡健等人3提出的公式)的抗震性能。我先是做了模拟滞回曲线和试验滞回曲线的对比分析,然后又分别以轴压比、内填混凝土强度和宽厚比对柱抗震性能的影响为题做了参数分析。 先说遇到的疑问吧。为什么模拟的滞回曲线经常不关于原点对称?我的设计意图是给定一系列最大位移值,算出下每个最大位移值下从零正向最大位移零负向最大位移零的位移步序列,然后用位移控制加载。柱在加载正、反向尺寸、刚度、材性相同。所

29、以我认为滞回曲线应该是关于原点对称的。可是模拟出来n个曲线,几乎都不符合我的预期!随便举一例:此图是我模拟得到的一个滞回曲线,可以很明显看出曲线关于原点不对称!这是为什么?用位移控制作滞回分析时,最大位移序列及步长如何确定?我发现一个奇怪现象:同样一根柱,在其他参数不变的情况下,仅改变最大位移序列(这个本来就是应该由用户指定),就会影响结果的收敛性(当然,不是指因位移设置过大使柱破坏的情况)。例:我曾经分析过一个柱,当最大位移序列为2 7 12 17 20时,计算收敛;而当序列为2 8 14 20时,就不收敛了!再例如:当最大位移序列为1 3 5 9 11 14时可能计算不收敛,而改变下步长,

30、甚至加大位移,如改为1 3 5 9 12 15反而可能收敛!这种现象带来一个很大的麻烦:我根本无法较准确的知道某个柱的极限位移!因为有时会出现(例如)最大加到12mm时不收敛,改变步长后最大到14mm却收敛了!但再继续往大的加,又有可能不收敛而我不可能一直这么尝试下去所以在确定最大位移时显得主观性很强!这恐怕也是这次练习中最严重的潜在问题了! 再分享一点收获:这次OpenSEES命令流编写给我在编程方面两个启示:1、编程中可以用生成存储向量的文件这一方法来模拟动态一维数组。以前我用C语言编程遇到需要动态一维数组时总是用指针加malloc命令模拟,但这还不是彻底动态程序需要在此之前确定动态数组的

31、长度。而现在把未知数量的数据(可能是用户输入,也可能是程序生成的中间数据)存入文件,就能实现真正意义上的动态了。2、在编制一个较复杂的程序时,把功能不同的函数各自做成单独的子函数文件,而主函数文件仅仅主要起调用这些子函数文件的作用是一个不错的编程习惯,因为这样充分体现了模块化思想。例如在这次编程中,我起先是按习惯把所有函数写到一个文件里,结果最后文件很长,给阅读、调试程序带来很大麻烦(当然,这也与Tcl Editor没有像Visual Studio那样的折叠功能有关)。后来参考老师给的模板程序,把各个子函数存放到不同的子函数文件中这样一来各个文件的长度都比较短,读起来很清爽,而且编辑、调试时自己非常清楚当前编辑的是哪一个功能模块。Steel01和Steel02的对比为了解这两种材料本构模型的区别,我在这次作业建立的模型基础上做了一个小试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2