[OpenSEES]实例34_基于OPENSEES的桥梁游戏开发
点击【阅读原文】可以直接下载程序与相关PDF
[下载实例PDF]:点击下载此文件:实例35_基于OPENSEES的桥梁游戏开发
[下载实例文件]:点击下载实例文件
1)问题描述:
本实例是一个基于图形界面的小游戏的开发,计算核心是采用OpenSEES,主要介绍通过delphi或lazarus开发一个图形界面,可以快速进行刚构桥的建模,施加行车荷载(参考前面实例中影响线的计算方法),最后通过动画的形式显示结构的整个过程的变形。这个小游戏可以用于练习结构布置,学习结构概念,了解不同结构受力变形的特征,结构形式的效率等等 。这有利于应用于STEM 教学。本实例会展示部分快速建模的源代码,并展示最后用于桥梁分析的opensees命令流。
(1)采用遍历的方法生成结构模型的全部结点。
以下是关键代码,USED代表结点是被使用。PX,PY代表结点的坐标,整个屏幕的网格共有32X20个结点,只有被使用的结点才会被重新编号且生成于OPENSEES的代码当中。初始结点是NODE,存在很多空结点 ,重新编号后是KNODE,全部是被使用结点,两组编号要对应起来。
(2)通过鼠标建立桥梁的杆系模型,所以杆件采用两个结点连接。
以下是增加单元的代码,在屏幕上的定好起点AX,AY与终点BX,BY,就可以确定一个构件的左右结点的编号,通过坐标反向计算结点的编号(因为编号顺序与坐标位置是相关的),确定了单元的左右结点以后,就可以增加一个新的单元。程序生成两类构件,自已绘制的蓝色构件及红色的桥面构件。有单元的结点,指定为结点被使用,在重生成被使用结点时进行重新编号,单元的编号中I,J为原始编号,KI,KJ为结点重新编号后的编号。
(3)桥梁的左右两端的节点均为固定支座,也就是自由度全部锁死。
总共有左右两端的支座,共计8个结点,如图所示。
(4)桥面节点(荷载相关作用点)
注意:需要一个找桥面点的一个过程,从左到右,确定部分构件是桥面单元,桥面的单元上的结点将会被施加荷载。
(5)程序自动指定桥梁的位置活动荷载(模拟桥面上的车从左到右行走的过程)
每一步的荷载位置及大小的变化如下图所示,整个过程以此类推。原理如下图所示。
(6)生成全部的opensees命令流,保存文件名为CO.txt
整个OPENSEES生成的代码如下所示:
(7)程序调用opensees程序运行命令流文件,运算完程序后即可得到全部的输出文件
以下命令流代表输出全部的结点的变形值
(8)桥梁程序读取输出的文本文件,主要是每个结点的位移,即可得到整过车运动过程中的结构的整体变形。
以下代码代表读取每个结点的变形,并把每个结点在每一个荷载子步的值存起来,用于绘制动画效果,其中结点的位移会在MX,MY的数组内。
(9)对全部结点进行求最大值,得到全部节点中,最大的结构变形位置。整个小程序的制作过程就完成了。每隔一定时间绘制整个屏幕,即为动画效果,采用了编程中的Timer计时器控件功能。
=============end================