% 平面刚架MATLAB程序
% 2003.9.16 2007.2.28 2008.4.1 2009.10 2011.10
%*************************************************
% 变量说明
% NPOIN NELEM NVFIX NFPOIN NFPRES
% 总结点数,单元数, 约束个数, 受力结点数, 非结点力数
% COORD LNODS YOUNG
% 结构节点坐标数组, 单元定义数组, 弹性模量
% FPOIN FPRES FORCE FIXED
% 结点力数组,非结点力数组,总体荷载向量, 约束信息数组
% HK DISP
% 总体刚度矩阵,结点位移向量
%************************************************** format short e %设定输出类型
clear %清除内存变量
FP1=fopen('6-6.txt','rt') %打开初始数据文件
%读入控制数据
NELEM=fscanf(FP1,'%d',1); %单元数
NPOIN=fscanf(FP1,'%d',1); %结点数
NVFIX=fscanf(FP1,'%d',1); %约束数
NFPOIN=fscanf(FP1,'%d',1); %作用荷载的结点个数
NFPRES=fscanf(FP1,'%d',1); %非结点荷载数
YOUNG=fscanf(FP1,'%f',1); %弹性模量
% 读取结构信息
LNODS=fscanf(FP1,'%f',[4,NELEM])'
% 单元定义:左、右结点号,面积,惯性矩(共计NELEM组)COORD=fscanf(FP1,'%f',[2,NPOIN])'
% 坐标:x,y坐标(共计NPOIN 组)
FPOIN=fscanf(FP1,'%f',[4,NFPOIN])'
% 节点力(共计NFPOIN 组):结点号、X方向力(向右正),% Y方向力(向上正),M力偶(逆时针正)
FPRES=fscanf(FP1,'%f',[4,NFPRES])' % 均布力(共计
% NFPRES 组):单元号、荷载类型、荷载大小、距离左端长度FIXED=fscanf(FP1,'%f',NVFIX)'
% 约束信息:约束对应的位移编码(共计NVFIX 组)
%---------------------------------------------------------
HK=zeros(3*NPOIN,3*NPOIN); % 张成总刚矩阵并清零FORCE=zeros(3*NPOIN,1); % 张成总荷载向量并清零
%形成总刚
for i=1:NELEM % 对单元个数循环
% 生成局部单刚(局部坐标) 右手坐标系
EK=ele_EK(i,LNODS,COORD,YOUNG);
T=zbzh(i,LNODS,COORD);% 坐标转换矩阵