如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
1.8平面刚架程序设计1.8.1程序说明及总流程图依据前述平面刚架矩阵位移法原理,本节使用VisualC++6.0编译器编制了平面刚架先处理法计算程序PFF,该程序未使用C++面向对象的编程方法,而仍沿用兼容C的结构化程序设计方法,以便和本科生先修课程C语言相容。本程序不建议使用TC++3.0及更低版本的编译器编译。一.PFF的主要功能和特点(1)输入单元编号、结点编号和结点位移分量统一编码,单元材料信息;(2)先处理法形成结构刚度矩阵和综合结点荷载列阵;(3)Gauss消元法解线性代数方程组;(4)计算并输出结点位移和单元杆端力;二.PFF的使用方法(1)输入输出数据文件PFF从原始数据文件中读取结构的离散化信息,经计算后,将结果输出到结果数据文件中。运行编译好的PFF可执行程序,会提示“Pleaseinputprimarydatafilename!”,这时输入事先准备好的原始数据文件名,回车后,提示“Pleaseinputcalculationresultfilename!”,输入一个文件名,PFF会自动以该文件名生成结果数据文件。原始数据文件最好同PFF可执行程序放置在同一文件夹中,结果数据文件不应是已有的文件,而必须由PFF自动生成。两文件建议使用英文和数字命名。在输入文件名时,应包含后缀。C语言以0为数组各维的开始下标,称为0基数组;而一般习惯是以1为数组各维的开始下标,称为1基数组。PFF源程序编制时,仍以C语言为标准,使用0基数组,即PFF程序内部处理机制是0基的。但是为方便读者,原始数据文件和输出数据文件则按一般习惯,使用1基数组对结点、单元、结点位移分量、结点荷载和非结点荷载进行编号,即PFF程序外部表现是1基的。(2)原始数据文件的格式下面依行序说明原始数据文件输入数据的含义:①总体信息ne,nj,n,np,nf,ene——单元总数;nj——结点总数;n——结点位移未知量总数;np——结点荷载总数;nf——非结点荷载总数;e——弹性模量②结点坐标(x[i],y[i])(i=0;i<nj;i++)x[i]——结点i+1的x坐标;y[i]——结点i+1的y坐标。依结点编号顺序,先x坐标,后y坐标,存储所有结点坐标。每个结点坐标占一行。③单元信息(ij[i][0],ij[i][1],a[i],zi[i])(i=0;i<ne;i++)ij[i][0]——单元i+1的始结点码;ij[i][1]——单元i+1的末结点码;a[i]——单元i+1的截面积;zi[i]——单元i+1的截面惯性矩。依单元编号顺序,存储各单元的始末结点及截面积A和惯性矩I。④结点位移分量统一编码(jn[i][j](j=0;j<3;j++))(i=0;i<nj;i++)jn[i][j]——结点i+1的结点位移分量统一编码。依结点编号的顺序,存储各结点的结点位移分量统一编码。每结点位移分量均按u、v、的顺序依次输入,被约束的位移分量输0,未被约束的位移分量则顺序编号输入。⑤结点荷载(pj[i][j](j=0;j<3;j++))(i=0;i<np;i++)pj[i][j]——第i+1号结点荷载;其中pj[i][0]——第i+1号结点荷载作用的结点编号。pj[i][1]——第i+1号结点荷载作用的方向代码,整体坐标系x、y和转角方向分别用1.0,2.0和3.0表示。pj[i][2]——第i+1号结点荷载的大小,带符号,与整体坐标系一致(力偶顺时针)为正,反之为负。依上面的顺序,存储全部结点荷载。⑥非结点荷载(pf[i][j](j=0;j<4;j++))(i=0;i<nf;i++)pf[i][j]——第i+1号非结点荷载;其中pf[i][0]——第i+1号非结点荷载作用的单元编号。pf[i][1]——第i+1号非结点荷载作用的类型代码,即表11-1中的六类。pf[i][2]——第i+1号非结点荷载的大小,带符号,与单元坐标系一致(力偶顺时针)为正,反之为负。pf[i][3]——第i+1号非结点荷载的位置参数c,即表11-1各图中的c。依上面的顺序,存储全部非结点荷载。三.PFF程序的总流程图PFF的总框图如图1.17所示,其中主程序直接调用的一级子程序使用1,2,……编号;被一级子程序调用的二级子程序使用01,02,……编号;在一级子程序右侧,使用箭头表示一级子程序所调用到的二级子程序。开始1input输入原始数据012tsm形成结构刚度矩阵02lsc单元常数0103013jlp形成综合结点荷载列阵02elv单元定位向量02044gauss解方程esm求单元刚度矩阵0301025m