一种模拟建筑物迁移过程中受力变化的可视化建模方法

文档序号:6332137阅读:212来源:国知局
专利名称:一种模拟建筑物迁移过程中受力变化的可视化建模方法
技术领域
本发明涉及一种建筑物迁移的计算机模拟技术,特别涉及一种利用ANSYS建模模 拟非实体模型建筑物迁移过程中受力变化的可视化建模方法。
背景技术
随着经济建设的飞速发展,在城市规划、旧城改造、道路拓宽而实施建筑物拆迁过 程中,经常会遇到投入使用时间短且使用状况良好,或具有特殊使用功能不宜拆迁的建筑 物。遇到这种情况,传统的做法只有拆除,然后花费高昂的代价处理废弃的建筑垃圾,并另 择新址重建,这不仅造成了巨大的浪费和经济损失,而且对一些有历史价值的古老建筑物 还无法复原保留,这是令人十分可惜的无奈之举。建筑物整体移位技术成功地解决了这一 问题,并取得了显著的经济技术效益、社会效益、环保效益。由于建筑物整体迁移技术具有 工程造价低、工期短、对人们的生活和工作影响小、同时能够减少建筑垃圾对环境的污染等 优点,因此在国内外得到了迅猛发展。然而目前的设计和施工主要依赖于经验,缺乏系统 的、科学的理论依据。特别是对于施工技术人员,现还没有成熟的虚拟技术,使其直观的预 知建筑物危险点位置,从而科学的做好准备工作。鉴于上述现有技术中存在的缺陷,本发明提出了一种适合于能用ANSYS建立模型 特别是非实体模型来模拟受力变化的建筑物。

发明内容
基于上述现有技术,本发明提出了一种模拟建筑物迁移过程中受力变化的可视化 建模方法,通过读取基于ANSYS建模的海量分析数据,实现能够显示建筑物迁移过程中受 力变化的可视化建模方法。本发明提出了一种模拟建筑物迁移过程中受力变化的可视化建模方法,通过读取 ansys建模的海量分析数据(这里的海量数据包括哪些方面,可否简单举例介绍),显示建 筑物迁移过程受力变化,该方法包括以下步骤1)利用ANSYS软件建立模拟建筑物迁移的有限元模型,根据轨道不平度添加各子 步不同的约束和施力条件,由于轨道不平度的不同,每一时刻的液压缸顶升力也不相同,本 发明根据数字化路面计算的结果来计算液压缸的每一时刻不同的顶升力,从而对建筑物施 加不同的约束和施力条件,对模型进行瞬态动力学分析,把各个子步分析结果,分析结果包 括建筑物所受应力,弯矩,剪力,应变,轴向压力等节点位移只是其中一项)中的节点位移 变化量,节点位移变化量即是构成ANSYS中构成物体最小元素的变形量以适合于VC++读取 的文件格式保存;2)利用3DMAX建立模拟建筑物迁移的ANSYS三维实体模型,赋予材质属性,且该模 型转化为三角网格尺寸时应保持与ANSYS —致,同时建立顶升液压缸和推力液压缸模型, 进行布尔运算使其与建筑物模型固结,保存为ASE格式文件,对所述ANSYS三维实体模型的 Y轴和Z轴交换,并将Z轴反向;
3)利用VC++软件调取上述ASE格式文件和ANSYS分析结果数据,同时利用OPENGL 图形处理功能来实现建筑物迁移过程的动态的逼真的显示,向读入OPENGL文件的步骤包 括以下步骤.①读入物体和材质的数目;②读入材质包含的纹理、颜色、映射纹理坐标、名称以及建立列表存储其联系信 息;③读入物体包含的材质、面、顶点的数目,根据其数目和占用空间大小来开辟足够 大的空间来存储其包含数据信息。④读入材质编号、纹理坐标、映射纹理坐标、顶点坐标并建立相应的索引。所述ANSYS三维实体模型是实体模型或者线框模型。所述ASE格式文件,包含了构成建筑物的顶点信息,以及根据所述顶点信息选取 的对应节点位移变化量,即根据ANSYS分析结果的位移变化大小,选择位移变化量大于一 定值的节点信息。所述节点位移,是在读入的数据后乘以一可以选择的系数后的位移,而对于位移 变化值超过安全许可范围的,再乘放大系数,放大系数是一参数,可任意修改。与现有技术相比,本发明与现有技术相比具有以下优点本发明综合利用ANSYS、3DMax、VC++、软件接口 OpenGL的优点以及ANSYS与3DMax 间的网格共性,使建模更加方便;能实时的读入ANSYS分析得到的结果数据,故能够较准确 的预测建筑物危险点位置;通过对ANSYS结果数据的分析和选择,大大减少了读入的数据 量,同时能够对关键部位进行突出显示,也可根据需求自定义变形夸大系数;通过采用逐步 读入和分段显示方法,大大减轻了 CPU的负担,同时能够读取海量的数据;通过定义结构体 和map结构,成功的解决了读入编号不连续的问题;同时用两种方法来显示建筑物受力变 化大小,一是读入的位移变化量,二是颜色的深浅度。


图1为本发明的建模流程示意图;图2为本发明实现的建筑物楼板上表面位移变化见图(从上往下)。
具体实施例方式本发明用于实施的硬件环境是pentium-4 4. 2G计算机,2G内存,512显卡,运行的 环境是 ansysll. 0,3DMAX10. 0, VC++6. 0 和 WindowsXP利用VC++程序设计语言和其它程序的结合来实现本发明提出的方法。本发明的基本思想是利用ANSYS建立六层框架结构建筑物迁移线框模型,分析 得出建筑物各个工况下的受力状况,并把分析结果以文本格式存储;然后利用3DmaX软件 建立建筑物的三维实体模型,为得到和ANSYS模型中相同的点坐标,需要根据ANSYS中划分 网格数来划分3DmaX中实体模型的三角网格;同时为了更加逼真的模拟场景,本发明还建 立了顶升液压缸和推力液压缸模型,为了使方便后面数据的读取,需要把三维实体模型存 储为ASE格式。由ANSYS分析结果以及现场施工的到的经验可知建筑物容易破坏的位置在托盘底部和各构件结合处,且楼板的受力变化能直观地反应液压缸施力大小对建筑物受力的影 响,故读取数据时需有选择地读取。另外为了使建筑物变形更加明显,本发明定义2个位移 比例系数,一个用于整体模型,另一个用于超过安全许可范围的位置。实现建筑物动态变形 后,为了模拟真实场景,本发明用OpenGL的贴图技术,创造出迁移轨道和周围环境的效果, 利用OpenGL方便的对物体操作功能,使液压缸和物体的同步移动,实现建筑物迁移过程的 顶升和平移两个工况。同时为了使施工人员全面的了解建筑物受力状况,本发明定义了各 种视角,并添加了鼠标交互式操作操作功能,使其能多角度对任意部位的观察以及对选择 位置信息的显示。本发明具体实施如下1.根据建筑物迁移路况不同,对其进行瞬态动力学分析,定义η个载荷步,逐步分 析,以(节点号,X方向位移增量,y方向位移增量,Z方向位移增量)形式存储,并对存储名 按顺序编号。2.根据ANSYS中模型尺寸大小,合理布置三维实体构建位置划分网格,保证三维 实体楼板上表面和有限元模型的shell单元上节点有相同的坐标并使立柱,梁和托架底部 划分的网格坐标包含ANSYS模型中用beaml88单元模拟的柱,梁和托架上节点的坐标;创建 液压缸模型,同时对模型和液压缸赋予不同的材质,保存模型为ASE格式文件。3.在OpenGL中再现三维模型及实现动态模拟需要以下几个步骤(1)编程装载ASE文件,在OpenGL中再现三维模型,读入文件步骤如下①读入物体和材质的数目。②读入材质包含的纹理,颜色,映射纹理坐标,名称等信息以及并建立列表存储其 联系信息。③读入物体包含的材质,面,顶点的数目,根据其数目和占用空间大小来开辟足够 大的空间来存储其包含数据信息。④读入材质编号,纹理坐标,映射纹理坐标,顶点坐标等并建立相应的索引。因为3D Studio Max的模型的Z轴是指向上的,因此需要将y轴和ζ轴翻转过来。 具体的做法是将Y轴和Z轴交换,然后将Z轴反向。转换程序如下void CAseReader:ReadVertex(t3D0bject*p0bject){int index = 0 ;fscanf(m_FiIePointer, ‘‘ % d" , &index) ;//Read past the vertex indexfscanf(m_Fi IePointer, " % f% f% f" , &p0b ject- > pVerts [index]. x,&p0bject- > pVerts[index].z,&p0bject- > pVerts[index]. y);pObject— > pVerts[index]. ζ = -pObject— > pVerts[index]. ζ ;}(2)利用OpenGL贴图技术,找到合适的路面及环境图片,先把图片装载成位图,程 序如下:int Texture: LoadTextures ()
5
{int Status = FALSE ;// 状态指示器AUX_RGBImageRec*TextureImage [1] ;//创建保存纹理的空间memset(Texturelmage,0, sizeof(void*);if (Texturelmage
= LoadBMP(“ Data/Cemento. bmp“)){Status = TRUE ;// 设置状态glGenTextures (1, &texture [k]) ;//创建第 k 号纹理// 生成 MipMapped 纹理glBindTexture(GL_TEXTURE_2D, texture[k]);glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_ NEAREST);gluBuild2DMipmaps (GL_TEXTURE_2D, 3, Texture Image
- > sizeX, Texturelmage
- > sizeY, GL_RGB,GL_UNSIGNED_BYTE,Texturelmage
- > data);}然后利用以下程序进行贴图glColor3f (0. 8f, 1,0. 8f);glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D,texture[k]),glBegin(GL_QUADS);glTexCoord2f(0,0) ;glvertex3f(xl, yl, zl);glTexCoord2f(1,0) ;glvertex3f(x2, yl, zl);glTexCoord2f(1,1) ;glvertex3f(x2, yl, z2);glTexCoord2f(0,1) ;glvertex3f(xl, yl,z2);3.根据ASE格式文件里的组成三维实体点的坐标来筛选出与其具有相同坐标 的ANSYS结果文件中的节点及其位移变量,同时针对属于立柱,梁,托架的节点信息进行二 次筛选,筛选的方法是设立5个比较基准值,m =楼板.USUM/4,η =梁· USUM/2,ρ = 3* 柱.USUM/5,q =托架.USUM/3,k =墙.USUM/4,首先根据定点坐标判断属于哪个构件,如果 其属于楼板,则再判断其位移变量。如果其位移变化值大于m,则读入该顶点信息,否则忽略 该顶点变化。属于其它构件的定点的判断方式同上。这样就大大减少了读入的数据量,同 时根据建筑物破坏准则,如果某一位置超过安全裕度,则将该点的位移乘以一系数来突出 显示以引起施工人员的注意。同时将选择节点的位移变化量按其对应的ASE文件里的点的 编号从小到大排好。将读入的数据以结构体的形式存储。由于读入的点数少于ASE文件中 的点数且读入的点的编号不是连续的,本发明采取如下方式来改变三维实体的形态假设 读入的节点对应顶点的编号为1,4,7,首先mapl结构来读入的第一个txt文件,然后定义结 构体如下struct ρ ;{double dx ;
6
double dy ;double dz ;}接着定义mapl (p, double),则有如下对应关系1 ^ pl,4^*
K φ3。最后根据读入的顶点信息来重画三维实体模型,其步骤如下如果index兴读入 点的编号,则令k = 0,顶点按原方式会画;如果相等,则k= 1,再根据其位移大小确定其 在颜色表中对应的颜色区间,例如如果读入点χ,1, ζ方向最大位移变化值为xl,yl,ζlmm, 当前读入点χ方向位移变化为x2,!2,z2mm,则用于绘制该点的颜色为(x2/xl,y2/yl,z2/ zl),则有绘制顶点程序如下glColor3f(x2/xl, y2/yl,z2/zl);glVertex3f (pOb ject- > pVerts [vertlndex]. x+k*pn. dx, pObject- > pVerts[vertlndex]+k*pn. dx y, pObject— > pVerts[vertlndex]. z+k氺pn. dx);4.实现迁移过程动态模拟以及添加鼠标和键盘交互操作,其内容如下利用 glTranslatef (var. xhouse, var. yhouse, var. zhouse) ; $ JJJ1 M % W JS ; ifi ii var. zhouse- = var. vhouse ;var. vhouse+ = (float) 0. 001 ;以及 SetTimer (1,200,NULL);来控制速度的大小; 通过设立不同视角,实现对建筑物各层及其各个方位的观察,其部分程序如下void CASELoaderViewCamera(void){switch(var. cameratype){case CAM_A:var. xcam = var. xhouse+4 ;var. ycam = var. yhouse+3 ;var. ζ cam = var. zhouse+15 ;gluLookAt(var.xcam, var. ycam, var.zcam, var. xhouse, var.yhouse, var. zhouse+2,0. Of, 1. 0f,0. Of);break ;case CAM_B:var. xcam = var. xhouse+100 ;var. ycam = var. yhouse+3 ;var. zcam = var. zhouse ;gluLookAt(var.xcam, var. ycam, var.zcam, var. xhouse, var.yhouse, var. zhouse, 0. Of, 1. 0f,0. Of);break ;......}int CASELoaderView::InitGL(GLvoid){H视点模式camera
. χ = 0 ;现象,还需进行深度检测和反走样操作,具体程序如下
0098]camera
y = 0 ;0099]camera
z = 0;0100]camera
type =CAM_A ;0101]camera[1]x = 0;0102]camera[1]y = 0 ;0103]camera[1]z = 0;0104]camera[1]type =CAM B ;
0105]
0106]
0107]
0108]
0109]
0110] 0111] 0112]
0113]
0114]
0115]
0116]
0117]
0118]
0119]
0120] 0121] 0122]
0123]
0124]
0125]
0126]
0127]
0128]
glShadeModel(GL_SM00TH);
glClearColor (0. Of, 0. Of, 0. Of, 0. 5f); glClearDepthd. Of); glEnable(GL_DEPTH_TEST); glD印thFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_C0RRECTI0N_HINT, GL_NICEST); glEnable(GL_LIGHT0); quadratic = gluNewQuadric(); gIuQuadricNormaIs(quadratic, GLU_SM00TH); gluQuadricTexture(quadratic, GL_TRUE); 接着实现和键盘相关联
void CASELoaderViewOnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
//T0D0:Add your message handler code here and/or call default Il视点模式
i'键
if (nChar == 49)//按下' {
var. cameratype = 0 ;
ι
if (nChar == 50)//按下'2'键
{
var. cameratype = 1 ;......
CViewOnChar(nChar,nRepCnt,nFlags);
ι,同时也添加鼠标的交互操作实现对视图的局部放大或整体缩小的功能。在操作 界面上添加模拟开始,暂停,变形的夸大系数等按钮,满足操作人员不同的观察需要。
0129]本发明方法建立的ANSYS有限元模型可以是实体模型也可以是线框模型。ANSYS 具有强大的分析运算功能,能模拟建筑物迁移过程中动态受力变化并能输出每一希望位置 的位移变化量,并保存为适合于VC++读取的文件格格式。
0130]本发明方法利用强大的三维软件3DMAX建立与ANSYS中尺寸一致的三维模型,且 该模型转化为三角网格尺寸应保持与ANSYS —致,同时建立顶升液压缸和推力液压缸模 型,进行布尔运算使其与建筑物模型固结。
本发明方法利用ASE文件方便的可读性,普通人员都可清楚明白构成建筑物的顶 点信息,并根据这些顶点信息来选取对应的节点位移变化量。本发明方法中ASE格式文件中的顶点与ANSYS结果文件中节点并不是一一对应 的,且并不是所有跟ASE文件中坐标相同的节点信息都被读取,而是先判断属于楼板还是 其它构件,然后再根据ANSYS分析结果的位移变化大小,选择位移变化量大于一定值的节 点信息。这样既能有效的减少读入的数据量,也能够突出反应位移变化较大的位置。本发明的显示的建筑物位移,是在读入的数据后乘以一可以选择的系数后的位 移,而对于位移变化值超过安全许可范围的,再乘1个放大系数。本发明读取ANSYS各子步分析文件的方法是逐步读入,分段显示。这样能够有效 的减轻CPU负担,提高效率。本发明方法中ASE文件中模型坐标与在OpenGL屏幕坐标系下的三维模型坐标不 同,需要进行坐标变换。本发明实现建筑物受力变化动态显示方法包括如下用贴图方式构造迁移路面及 建筑物周围场景;设立定时器,实现动态读取及动态显示;通过读取的节点位移变化值与 设立的某固定值大小的比较来勾画物体受力点的颜色;通过不同的视角变换,实现对建筑 物受力变化的多角度观察;通过建立鼠标键盘交互功能,实现局部放大以及对拾取的对象 定点信息的显示的功能。
权利要求
一种模拟建筑物迁移过程中受力变化的可视化建模方法,通过读取ANSYS建模的海量分析数据,显示建筑物迁移过程受力变化,该方法包括以下步骤步骤1利用ANSYS软件建立模拟建筑物迁移的有限元模型,根据轨道不平度添加各子步不同的约束和施力条件,对模型进行瞬态动力学分析,把各个子步分析结果中的节点位移以适合于VC++读取的文本格式保存,所述分析结果包括建筑物所受应力,弯矩,剪力,应变,轴向压力等节点位移中的一项;步骤2利用3DMAX建立模拟建筑物迁移的ANSYS三维实体模型,赋予材质属性,且该模型转化为三角网格尺寸时应保持与ANSY一致,同时建立顶升液压缸和推力液压缸模型,进行布尔运算使其与建筑物模型固结,保存为ASE格式文件,对所述ANSYS三维实体模型的Y轴和Z轴交换,并将Z轴反向;步骤3利用VC++软件调取上述ASE格式文件和ANSYS分析结果数据,同时利用OPENGL图形处理功能来实现建筑物迁移过程的动态的逼真的显示,向读入OPENGL文件的步骤包括以下步骤读入物体和材质的数目;读入材质包含的纹理、颜色、映射纹理坐标、名称以及建立列表存储其联系信息;读入物体包含的材质、面、顶点的数目,根据其数目和占用空间大小来开辟足够大的空间来存储其包含数据信息。读入材质编号、纹理坐标、映射纹理坐标、顶点坐标并建立相应的索引。
2.如权利要求1所示的模拟建筑物迁移过程中受力变化的可视化建模方法,所述 ANSYS三维实体模型是实体模型或者线框模型。
3.如权利要求1所示的模拟建筑物迁移过程中受力变化的可视化建模方法,所述ASE 格式文件,包含了构成建筑物的顶点信息,以及根据所述顶点信息选取的对应节点位移变 化量,即根据ANSYS分析结果的位移变化大小,选择节点位移变化量大于一定值的节点信 息,所述节点位移变化量是构成ANSYS中构成物体最小元素的变形量
4.如权利要求1所示的模拟建筑物迁移过程中受力变化的可视化建模方法,所述节点 位移,是在读入的数据后乘以一可以选择的系数后的位移,而对于位移变化值超过安全许 可范围的,再乘以放大系数。
全文摘要
本发明公开了一种模拟建筑物迁移过程中受力变化的可视化建模方法,该方法包括以下步骤利用ANSYS软件建立模拟建筑物迁移的模型,根据轨道不平度添加各子步不同的约束和施力条件,对模型进行瞬态动力学分析,保存各子步分析结果中的节点位移;利用3DMAX建立建筑物迁移的三维实体模型,赋予材质属性,并保存为ASE格式;与现有技术相比,本发明能够较准确的预测建筑物危险点位置,并且大大减少了读入的数据量、减轻了CPU的负担,对关键部位进行突出显示,通过采用逐步读入和分段显示方法,通过定义结构体和map结构,解决了读入编号不连续的问题;同时用两种方法来显示建筑物受力变化大小,即读入的位移变化量和是颜色的深浅度。
文档编号G06F17/50GK101923597SQ20101028321
公开日2010年12月22日 申请日期2010年9月16日 优先权日2010年9月16日
发明者杨瑞军, 洪鹰, 金海陆 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1