资源描述:
《空间刚架计算程序及说明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、设计意图及总体框架:大多数空间刚架都属于超静定结构,因此难于用一般的结构力学方法进行计算,如用矩阵位移法则由于阶数太大难于手算,但如果结合有限元方法编写程序进行计算,则会有很大的普遍性,且方便快捷。本程序能计算只承受任意的非节点集中力、均布荷载和集中力偶矩的所有刚架(包括平面刚架、平面板架)的节点内力和位移,但不适用有支座沉降和温度变化情况,计算出节点力之后,可以很方便地画出结构内力图,从而整个问题都得到求解。程序设计的整个过程可以参阅相关书籍,空间刚架的程序设计和平面刚架的程序设计的最大区别在于空间刚架计算的坐标变
2、换矩阵较复杂和由于维数和阶数的增加所带来的子程序之间衔接的复杂性,除此之外,一些平面刚架程序的子函数可以直接用到空间刚架程序中来。本程序一共包括10子函数:局部坐标下单元刚度计算子程序KEP()、坐标变换矩阵计算子程序CR()、固端反力计算子程序FIXF()、单元定位向量计算子程序()、指示数组计算子程序LD()、约束处理子程序FCC()、解线性方程组子程序DECOM()、矩阵赋零子程序ZERO()、矩阵转置子程序TRAN()和矩阵相乘子程序DOT()。具体算法见源程序清单,输入输出都用文件进行。注:1,为了方便求坐标变
3、换矩阵,可以在建立局部坐标系时使y’//XOY,而这一点我们总是可以做到的2,在上面的坐标系下,可以将刚架单元分为竖直单元和一般单元,分别求坐标转换矩阵,具体做法见程序。3,单元刚度矩阵可以用平面刚架和平面板架的结果叠加。二、变量及符号:NN——节点总数,NM——材料类型数NA——截面类型数NE——单元总数,NC——受约束自由度数NF——节点自由度数NP2——非节点荷载数ND——单元节点数NFD——单元自由度数N——结构自由度总数NT——一维数组A的容量X(NN)——X坐标数组,Y(NN)——Y坐标数组Z(NN)——Z坐
4、标数组MEA(NE,4)——单元信息数组,其中:MEA(I,1)——I单元i节点编号MEA(I,2)——I单元j节点编号MEA(I,3)——I单元截面编号MEA(I,4)——I单元材料编号AEU(NM,3)——材料信息数组,其中:AEU(NM1,1)——弹性模量EO(E)AEU(NM1,2)——剪切模量GO(G)AEU(NM1,3)——泊松比UO(u)AAI(NA,4)——截面信息数组,其中:AAI(NA1,1)——NA1截面面积AAAI(NA1,2)——绕Z轴惯性矩IZAAI(NA1,3)——绕Y轴惯性矩IYAAI(N
5、A1,4)——绕X轴惯性矩IPP2(NP2,4)——非节点荷载数组,其中:P2(I,1)——作用节点号,P2(I,2)——荷载类型码(见程序)P2(I,3)——作用位置参数(见程序)P2(I,4)——荷载大小JC(NC,2)——约束信息数组,其中:JC(I,1)——约束节点号JC(I,2)——约束代码取1,2,3,4,5,6代码1:U=0,2:V=0,3:W=0,4:SITA-X=0,5:SITA-Y=0,6:SITA-Z=0ANG(NE)——单元角数组,即Y与Y’所成的角度,用以求坐标变换矩阵AKEP(12,12)——
6、局部坐标系下单元刚度矩阵AKE(12,12)——整体坐标系下单元刚度矩阵R(12,12)——坐标变换矩阵RT(12,12)——R(12,12)的转置矩阵POP(12)——局部坐标系下固端力向量PO(12)——整体坐标系下固端力向量A(NT)——一维变带宽存储总刚度矩阵一维数组P(N)——节点荷载向量UPE(12)——局部坐标系下节点位移IS(12)——定位向量数组LD(600)——指示数组一、源程序清单:C3D-FRAMESTRUCTUREANALYAISPROGRAMMAIN/*主程序开始*/CHARACTER*20F
7、NAME1,FNAME2/*文件名变量说明*/DIMENSIONMEA(100,4),JZ(50,2),AAI(10,4),AEU(10,4),P2(50,4)/*数组说明*/DIMENSIONANG(100)DIMENSIONR(12,12),RT(12,12),RA(12,12),POP(12),PO(12)DIMENSIONAKEP(12,12),AKE(12,12),P(600),X(100),Y(100),Z(100)DIMENSIONLD(600),IS(12),A(50000),UPE(12),PPE(12
8、),UE(12)WRITE(*,'(A22)')'INPUTDATAFILE:'READ(*,'(A)')FNAME1/*输入原始数据文件名*/WRITE(*,'(A22)')'OUTPUTDATAFILE:'READ(*,'(A)')FNAME2/*输入结果数据文件名*/WRITE(*,19)FNAME1,FNAM