matlab连续梁程序的编制与使用
迈达斯软件实例教程之连续梁分析
1. 连续梁分析概述比较连续梁和多跨静定梁受均布荷载和温度荷载(上下面的温差)时的反力、位移、内力。
3跨连续两次超静定3跨静定3跨连续1次超静定图 1.1 分析模型2Ø材料钢材: Grade3Ø截面数值 : 箱形截面 400×200×12 mmØ荷载1. 均布荷载 : 1.0 tonf/m2. 温度荷载 : ΔT = 5 ℃ (上下面的温度差)设定基本环境打开新文件,以‘连续梁分析.mgb’为名存档。
单位体系设定为‘m’和‘tonf’。
文件/存档(连续梁分析 )工具 / 单位体系长度> m ; 力 > tonf¿图 1.2 设定单位体系3设定结构类型为 X-Z 平面。
模型 / 结构类型结构类型> X-Z 平面¿设定材料以及截面材料选择钢材GB(S)(中国标准规格),定义截面。
模型 / 材料和截面特性 /45建立节点和单元为了生成连续梁单元,首先输入节点。
捕捉轴线 (关)捕捉单元 (开), 建立节点坐标 ( x, y, z ) ( 0, 0, 0 ) ¿图 1.5 建立节点²参照用户手册的“输入单元时主要考虑事项”用扩展单元功能来建立连续梁。
模型 / 单元/全选扩展类型 > 节点à线单元单元属性> 单元类型 > 梁单元²材料 > 1:Grade3 ; 截面> 1: 400*200*12 ; Beta 角( 0 )生成形式> 复制和移动 ; 复制和移动 > 任意间距方向> x ; 间距( 3@5/3, 8@10/8, 3@5/3 )¿图 1.6 建立单元X Z²输入梁单元. 关于梁单元的详细事项参照在线帮助的“单元类型”的“梁单元”部分6输入边界条件3维空间的节点有6个自由度 (Dx, Dy, Dz, Rx, Ry, Rz)。
matlab连续梁程序的编制与使用Word文档
第三章连续梁程序的编制与使用入结构力学领域中而产生的一种方法,而Matlab语言正是进行矩阵运算的强大工具,因此,用Matlab语言编写结构力学程序有更大的优越性。
本章将详细介绍如何利用Matlab语言编制连续梁结构的计算程序。
矩阵位移法的解题思路是将结构离散为单元(杆件),建立单元杆端力与杆端位移之间的关系-单元刚度方程;再将各单元集成为原结构,在满足变形连续条件和平衡条件时,建立整体刚度方程;在边界条件处理完毕后,由整体刚度方程解出节点位移,进而求出结构内力。
用矩阵位移法计算连续梁的步骤如下:1)整理原始数据,如材料性质、荷载条件、约束条件等,并进行编码:单元编码、结点编码、结点位移编码、选取坐标系。
2)建立局部坐标系下的单元刚度矩阵。
3)建立整体坐标系下的单元刚度矩阵。
4)集成总刚。
5)建立整体结构的等效节点荷载和总荷载矩阵6)边界条件处理。
7)解方程,求出节点位移。
8)求出各单元的杆端内力。
实际上,上述步骤也是编制Matlab程序的基本步骤,在求出计算结果后,还可以利用Matlab的绘图功能绘制结构图、内力图、变形图等等。
图3-1程序流程图3.1 程序说明%******************************************************************* % 矩阵位移法解连续梁主程序%******************************************************************* ●功能:运用矩阵位移法解连续梁的基本原理编制的计算主程序。
●基本思想:结点(结点位移)编码默认为从左至右,从1开始顺序进行;杆端弯矩的方向默认为逆时针。
●荷载类型:可计算结点荷载,每单元作用的跨中集中力和均布荷载。
●说明:主程序的作用是通过赋值语句、读取和写入文件、函数调用等完成算法的全过程,即实现程序流程图的程序表达。
%-----------------------------------------------------------------------------------------------------1 程序准备format short e %设定输出类型clear all %清除所有已定义变量clc %清屏●说明:format short e -设定计算过程中显示在屏幕上的数字类型为短格式、科学计数法;clear all -清除所有已定义变量,目的是在本程序的运行过程中,不会发生变量名相同等可能使计算出错的情况;clc -清屏,使屏幕在本程序运行开始时%-----------------------------------------------------------------------------------------------------2 打开文件FP1=fopen('input.txt','rt'); %打开输入数据文件存放初始数据FP2=fopen('output.txt','wt'); %打开输出数据文件存放计算结果●说明:FP1=fopen('input.txt','rt'); -打开已存在的输入数据文件input.txt,且设置其为只读格式,使程序在执行过程中不能改变输入文件中的数值,并用文件句柄FP1来FP2=fopen('output.txt','wt'); -打开输出数据文件,该文件不存在时,通过此命令创建新文件,该文件存在时则将原有内容全部删除。
连续梁程序说明文档2011010128
连续梁程序说明文档——结12 张佳佳2011010128一、程序思路二、流程说明1、运行matlab,在命令窗口输入“LXL”,或直接通过File-Open打开“LXL.m”运行该m文件;2、根据提示输入结构的几何特性和荷载工况;在输入时需要注意以下几点:1)所有的向量以matlab可识别的数组形式输入;2)单元抗弯刚度仅支持数值输入,需要提出EI后输入剩余系数;3)输入的直接结点力矩数组元素个数应等于最大位移编码数。
3、当所有数据输入完毕之后,程序自动输出如下量:1)整体刚度矩阵KE;2)各节点转角ZJ;3)各杆端弯矩FJ。
三、计算算例算例选取题4,荷载工况2:程序运行过程:请输入单元总数:NE=6请输入单元杆长数组:BL=[4 6 6 8 4 6]请输入去掉EI后的抗弯刚度数组:EI=[1 1.5 1 2 1 1.5]请输入单元定位向量数组:JD=[1,2;2,3;3,4;4,5;5,6;6,7]请输入杆端弯矩数组注意数组维数与最大位移编码相同:P =[0 0 -8 0 10 0 0]请输入跨中集中荷载数组:FL =[0 12 8 0 6 0]请输入均布荷载数组:q =[0 0 0 0 0 0]各节点转角整体刚度矩阵各单元杆端弯矩弯矩图四、编程总结此次编程时是首次接触matlalb这个软件,深感这个软件的强大和各种函数给编程已经矩阵运算带来的方便。
可能自己的算法比较繁琐,但是满足了各种荷载工况以及输出弯矩图的基本要求。
程序不知道带符号的运算,所有输入都必须以纯数字组成的数组进行输入,相信在这方面还会有很大的改进空间。
):连续系统 梁的基础理论及 MATLAB 编程 Matlab (
(3)
将(3)式代入(2)式,可得应变能为:
U=
1 2 ∫0
L
⎛ ∂ 2u ⎞ EI ⎜ 2 ⎟ dx ⎜ ∂x ⎟ ⎝ ⎠
2
(4)
3.1.3 外力所做的功
外力所做的功可表示为: L
0
W = ∫ P( x) u dx
(5)
3.1.4 总势能
梁的总势能为应变能减去外力所做的功,可表示为:
V =U −W
ui、θ i、u j、θ j
将(8)式代入(7)式,有:
V =∫
L 0
T ⎤ ⎡1 ⎛ ∂2N ⎞ ⎛ ∂2 N ⎞ T ⎢ EI {φ} ⎜ 2 ⎟ ⎜ 2 ⎟{φ} − P[ N ]{φ}⎥ dx ⎜ ∂x ⎟ ⎜ ∂x ⎟ ⎥ ⎢2 ⎝ ⎠ ⎝ ⎠ ⎦ ⎣
(9)
(9)式的推导中,用到如下公式:
6EI ⎤ L2 ⎥ 2EI ⎥ ⎥ L ⎥ 6EI ⎥ − 2 L ⎥ 4EI ⎥ ⎥ L ⎦
⎡ Fiy ⎤ ⎢M ⎥ ⎢ i⎥ ⎢ Fjy ⎥ ⎢ ⎥ ⎢M j ⎥ ⎣ ⎦
(16)
3.2 Matlab 程序说明
clear x=sym( ‘x’ ); L=sym( ‘L’ ); N=[ 1 – 3 * (x^2) / (L^2) + 2 * (x^3) / (L^3), x – 2 * (x^2) / L + (x^3) / (L^2),…. 3 * (x^2) / (L^2) – 2 * (x^3) / (L^3), -(x^2) / L + (x^3) / (L^2) ]; Ni=diff ( N, 2 ); Nt=transpose ( Ni); kk=Nt * Ni; K=E * I * int (kk, 0, ‘L’);
MATLAB在连续梁计算和作图中的应用
作 者 简 介 : 继  ̄(9 5 ) 河 南 汝 南 人 , 淮 学 院数 学科 学 系教 师 , 事 力 学 教 学 和 相 关研 究 工 作 。 李 1 6 一, 男, 黄 从
第 二期
李 继 生 庞 留勇 MA L B在 连续 梁 计 算 和 作 图 中的 应 用 TA
2应 用举例
用力 法求 图 1 示连 续梁 的 B点 和 C点 处 的反 力并作 弯 矩 图和剪 力 图 , l 常 数 。 所 E= 2 1力 法计 算方 程建 立 . 用 力 法计算 时 , 是一 个 二次超 静 定结 构 。它 的力 法典 型方 它
61 l 1 +61 2+ △ P = 0 2 62 1 1 +62 2 + A2 P= 0
21 0 1年 3月
安 阳工 学 院学 报
J u a fAn a gI si t fT c n lg o r l y n nt ueo e h oo y n o t
M a . r2011
第1 0卷 第 2期 ( 第 5 总 0期 )
Vo.0 No2 Ge . .0) 11 .( nNo5
6 m
.. m.. m 15 15
.
bm
. 1.0m . 1.bm
} — — —— — — — — ■ ・}- r r t . — — — — — — — 叫 — .I _ ・ — ,1 —
图 2 力 法 的 基 本 体 系
图 3 力 法 的 基 本 结 构
在A B梁段 内( B点 为坐 标原 点 ) 以
1= D = 0
运用 M T A A L B计算系数和 自由项 , 只需列出相应的弯矩方程并代人系数和 自由项表达式 , 而不必每 计 算 步骤 都要 画 出荷载 弯矩 图和单 位 弯矩 图 ,这 有利 于加 强 学生 对 弯矩 和弯 矩 方程 的理 解 与掌 握 ; 同 时, 图乘 法 只适用 于 至少有 一 个直 线 型弯 矩 图 的情 况 , 弯矩 方 程适 用 于任 意状 况 。 因此 , 弯 矩方 程进 而 用 行 积分运 算 来求解 系数 和 自由项更具 一般 意义 , 用范 围更 广 。 应 22计算 系数 和 自由项 .
matlab语言在开发连续梁桥顶推施工-5页精选文档
MATLAB语言在开发连续梁桥顶推施工作者:梁爱斌王…文章来源:西安公路研究所点击数:530 更新时间:2019-1-7 [摘要]通过介绍MATLAB语言在顶推施工预应力混凝土连续桥施工过程内力动态分析程序设计中的应用,说明基于MATLAB语言开发结构分析软件的可行性和优越性。
关键词MATLAB语言顶推施工连续梁桥结构分析程序设计一、引言目前,常见的结构分析软件(程序)一般采用FORTRAN、C及可视化类语言中的一种或多种进行开发。
其开发周期一般较长、程序编制量大、程序的调试和测试较难实现,从而开发费用较高,而且在针对大型的数据处理和动态图形处理方面编程较复杂,尤其是采用多种语言进行混合或复合编程时,程序本身的调试和接口问题较为突出。
当然,这些语言有它们各自的优点,尤其表现在多语言的复合编程上,可将各语言的长处集于一身,并在一定程度上避免了使用它们有局限的方面。
在开发一个能对顶推法施工的连续梁桥进行施工全过程内力动态分析的软件时,尽管可采用FDRTRAN语言设计结构分析计算的基本模块,同时采用可视化类语言设计整个系统的基本控制模块这种优化方案,但它在结构的动态分析程序设计方面仍有两个大的难题:(1)大批量数据进行复杂的数值运算时程序较难设计和测试;(2)最终的计算结果进行可视化处理后形成实时动画较困难。
但用MATLAB进行整个程序的设计,上述两个问题即可迎刃而解。
二、MATLAB简介MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便且界面友好的用户环境。
在此环境下,对所要解决的许多问题,用户只需简单地列出数学表达式,其结果便会以数值和图形方式显示出来;对于大型问题,只需建立相应的数学模型,同样可以得到快速准确的解答。
其主要特点概括起来有以下几点:(l)MATLAB语言自带数值运算、矩阵运算方面的常规算法函数6000余条,并且具有自身的矩阵运算语法,使得一般的小型数据处理显得极为简单。
用matlab解决简支梁问题
如何用matlab 绘制简支梁剪力图弯矩图说明:输入变量分段数组x分段点一般在集中力,集中力偶作用出和分布载荷的起末端。
载荷数组MPQ若梁上的外载荷总数为PN,则用PN行四列的数组MPQ储存载荷,数组MPQ 第一列代表载荷的类型:1为集中力偶,2为集中力,3为分布载荷,第二列代表载荷的大小,第三列代表集中力,集中力偶或者分布载荷左端与简支梁左端的距离,第四列代表均匀载荷右端与简支梁左端的距离,当载荷为集中力或者集中力偶时,第四列为0.符号规定集中力和均匀载荷向下为正,向上为负,集中力偶顺时针为正,逆时针为负。
输出变量内力数组XQM如果梁被分为NN-1段,则内力数组XQM为NN行,三列的数组,第一列代表梁的横截面的位置,第二列代表剪力,第三列代表弯矩。
剪力极值及位置QDXQDX是一个二行二列的数组,第一列代表极值所在的位置,第二列代表极值弯矩极值及位置MDXMDX是一个二行二列的数组,第一列代表极值所在的位置,第二列代表极值子程序集中力偶对弯矩贡献的子函数QMM集中力对剪力和弯矩贡献的子函数QMP分布载荷对剪力和弯矩贡献的子函数QMQ求剪力和弯矩极值的子函数MAX_MIN绘制剪力图和弯矩图的子函数TU_QM计算分析程序简支梁QMDJ左端固定悬臂梁QMDXZ右端固定悬臂梁QMDXY左端外伸梁QMDWZ右端外伸梁QMDWY两端外伸梁QMDWLMatlab求解简支梁挠度曲线方程(2014-01-11 14:09:45)转载▼分类:Matlab项目经验标签:截面gui挠度载荷工程力学1.项目概述使用Matlab求解简支梁挠度曲线方程,并将求解程序使用GUI图形界面实现。
载荷分布可选:均布载荷、直线分布载荷、二次分布载荷。
梁截面可选:矩形截面、环形界面、工字钢截面。
2.关键词GUI;梁;挠度;载荷;截面;工程力学3.技术说明首先根据载荷分布曲线求解剪力分布方程,剪力分布积分得到弯矩分布方程,弯矩积分得到转角方程,转角积分得到挠度方程。
matlab连续梁程序的编制与使用
第三章连续梁程序的编制与使用入结构力学领域中而产生的一种方法,而Matlab语言正是进行矩阵运算的强大工具,因此,用Matlab语言编写结构力学程序有更大的优越性。
本章将详细介绍如何利用Matlab语言编制连续梁结构的计算程序。
矩阵位移法的解题思路是将结构离散为单元(杆件),建立单元杆端力与杆端位移之间的关系-单元刚度方程;再将各单元集成为原结构,在满足变形连续条件和平衡条件时,建立整体刚度方程;在边界条件处理完毕后,由整体刚度方程解出节点位移,进而求出结构内力。
用矩阵位移法计算连续梁的步骤如下:1)整理原始数据,如材料性质、荷载条件、约束条件等,并进行编码:单元编码、结点编码、结点位移编码、选取坐标系。
2)建立局部坐标系下的单元刚度矩阵。
3)建立整体坐标系下的单元刚度矩阵。
4)集成总刚。
5)建立整体结构的等效节点荷载和总荷载矩阵6)边界条件处理。
7)解方程,求出节点位移。
8)求出各单元的杆端内力。
实际上,上述步骤也是编制Matlab程序的基本步骤,在求出计算结果后,还可以利用Matlab的绘图功能绘制结构图、内力图、变形图等等。
图3-1程序流程图3.1 程序说明%******************************************************************* % 矩阵位移法解连续梁主程序%******************************************************************* ●功能:运用矩阵位移法解连续梁的基本原理编制的计算主程序。
●基本思想:结点(结点位移)编码默认为从左至右,从1开始顺序进行;杆端弯矩的方向默认为逆时针。
●荷载类型:可计算结点荷载,每单元作用的跨中集中力和均布荷载。
●说明:主程序的作用是通过赋值语句、读取和写入文件、函数调用等完成算法的全过程,即实现程序流程图的程序表达。
%----------------------------------------------------------------------------------------------------- 1 程序准备format short e %设定输出类型clear all %清除所有已定义变量clc %清屏●说明:format short e -设定计算过程中显示在屏幕上的数字类型为短格式、科学计数法;clear all -清除所有已定义变量,目的是在本程序的运行过程中,不会发生变量名相同等可能使计算出错的情况;clc -清屏,使屏幕在本程序运行开始时%----------------------------------------------------------------------------------------------------- 2 打开文件FP1=fopen('input.txt','rt'); %打开输入数据文件存放初始数据FP2=fopen('output.txt','wt'); %打开输出数据文件存放计算结果●说明:FP1=fopen('input.txt','rt'); -打开已存在的输入数据文件input.txt,且设置其为只读格式,使程序在执行过程中不能改变输入文件中的数值,并用文件句柄FP1来FP2=fopen('output.txt','wt'); -打开输出数据文件,该文件不存在时,通过此命令创建新文件,该文件存在时则将原有内容全部删除。
清华大学结构力学下-连续梁内力计算程序
一、连续梁计算图示:
算例1
算例2
算例3
算例4
二、Matlab程序代码如下所示:
clc clear all % 输入原始数据 NE=input('输入单元总数NE:'); BL=input('输入单元杆长BL列向量(NE×1):'); EI=input('输入单元抗弯刚度EI列向量(NE×1):'); JD=input('输入单元定位向量JD(NE×2):'); FM=input('输入单元固端弯矩FM(NE×2):'); %节点转角未知量总数 N=max(max(JD)); %输入直接结点力矩 PJ=input('输入N维直接结点力矩列向量:'); %输出元数据 disp('单元总数'),NE disp('单元杆长'),BL disp('单元抗弯刚度'),EI disp('单元定位向量'),JD disp('单元固端弯矩'),FM disp('直接结点力矩'),PJ %EI改存线刚度 EI=EI./BL; %形成结点荷载向量 P=zeros(N,1); for i=1:NE for j=1:2 m=JD(i,j); if m~=0 P(m)=P(m)-FM(i,j); %结构等效结点荷载向量 end end end F=P+PJ; %结构整体刚度矩阵的集成 K=zeros(N,N); for i=1:NE m=JD(i,1); n=JD(i,2);
1 2 2 3 3 4 4 5 5 6 6 0 单元固端弯矩 FM = -10.6667 10.6667 -9.0000 9.0000 -6.0000 6.0000 -21.3333 21.3333 -3.0000 3.0000 -18.0000 18.0000 直接结点力矩 PJ = 0 0 -8 0 10 0 DELTA = 11.3838 -1.4342 -8.9805 14.0537 -10.1921 10.0480 FJ = 0 14.9244 -14.9244 -0.6976 -7.3024 12.3756 -12.3756 18.1681 -8.1681 7.9520 -7.9520 23.0240 2.算例2
matlab中循环语句用法
matlab中循环语句用法:MATLAB编程一般分三个结构:顺序结构;循环结构;选择结构;顺序结构:由程序模块串接构成。
一个程序模块是完成一项独立功能的逻辑单元,它可以是一段程序、一个函数,或者是一条语句。
循环结构:for语句格式:for循环变量=表达式1:表达式2:表达式3循环体end【注】:表达式1:循环变量初值,表达式2:步长,为1时,可省略;表达式3:循环变量终值。
或:for循环变量=矩阵表达式循环体end【注】:执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。
格式:while(条件)循环体end【注】:条件成立时,执行循环体break语句&&continue语句:break:破坏,破坏循环,终止循环的进行,跳出循环,程序将执行循环语句的下一语句。
continue:继续,循环继续,程序将跳过循环体中剩下的语句,继续下一次循环。
选择结构:if-else语句格式:if表达式程序模块end或if表达式程序模块1else程序模块2End格式:switch表达式case数值1程序模块1case数值2程序模块2case数值3程序模块3......otherwise程序模块nend执行过程:首先计算表达式的值,然后将其结果与每一个case后面的数值依次进行比较,如果相等,则执行该case的程序模块;如果都不相等,则执行otherwise模块中的语句。
switch语句可以替代多分支的if语句,而且switch语句简洁明了,可读性更好。
matlab-程序语句的应用(循环结构)
一、简介MATLAB是一个强大的数学软件,可以用于进行数值计算、数据分析、图形可视化和编程等。
其中,循环结构是编程中的重要部分,可以帮助我们重复执行某个特定的任务。
本文将介绍MATLAB中的循环结构的应用,包括for循环、while循环和嵌套循环等。
二、for循环1. 基本语法和用法for循环是一种常见的循环结构,可以根据指定的次数重复执行某个操作。
其基本语法如下:```matlabfor i = 1:10执行的操作end```其中,i是循环变量,1:10表示循环的范围。
在每次循环中,i的值会从1逐步增加到10。
2. 示例下面是一个使用for循环计算1到10的累加和的示例:```matlabsum = 0;for i = 1:10enddisp(sum);```三、while循环1. 基本语法和用法while循环是另一种常见的循环结构,可以在指定条件为真时重复执行某个操作。
其基本语法如下:```matlabwhile condition执行的操作end```其中,condition是循环的条件。
只有当condition为真时,循环才会执行。
2. 示例下面是一个使用while循环计算1到10的累加和的示例:```matlabsum = 0;i = 1;while i <= 10i = i + 1;enddisp(sum);```四、嵌套循环1. 基本语法和用法嵌套循环是指在一个循环结构内部嵌套另一个循环结构。
这样可以实现更复杂的循环操作。
其基本语法如下:```matlabfor i = 1:3for j = 1:3执行的操作endend```在嵌套循环中,外部循环每执行一次,内部循环就会完整执行一轮。
2. 示例下面是一个使用嵌套循环打印九九乘法表的示例:```matlabfor i = 1:9for j = 1:ifprintf('d*d=d ', j, i, i*j);endfprintf('\n');end```五、总结循环结构是MATLAB编程中的重要部分,可以帮助我们实现重复性的任务。
matlab函数文件的编写和调用
matlab函数文件的编写和调用Matlab是一种功能强大的数值计算和科学计算软件,广泛应用于工程、科学和金融等领域。
它提供了丰富的函数库和工具箱,使得编写和调用函数文件变得非常简便和高效。
本文将介绍如何编写和调用Matlab函数文件,以及一些注意事项和技巧。
我们需要了解什么是Matlab函数文件。
简单来说,函数文件是由一系列Matlab语句组成的脚本文件,用于实现特定功能的代码封装。
函数文件通常包含输入参数、输出结果和具体的计算过程。
通过调用函数文件,我们可以在主程序中重复使用相同的代码逻辑,提高代码的可读性和可维护性。
那么,如何编写一个Matlab函数文件呢?首先,我们需要创建一个以函数名命名的.m文件,例如"myfunction.m"。
然后,在文件中定义函数的输入参数和输出结果。
在函数体内部,我们可以编写实现特定功能的Matlab代码。
最后,使用"function"关键字声明该文件是一个函数文件,并在文件末尾使用"end"关键字结束函数的定义。
下面是一个简单的例子,展示了如何编写一个计算两个数之和的Matlab函数文件:```function result = mysum(a, b)% 输入:a和b是两个待相加的数% 输出:result是a和b的和result = a + b;end```在这个例子中,我们定义了一个名为"mysum"的函数,它接受两个输入参数a和b,并返回它们的和result。
在函数体内部,我们使用"+"运算符计算了两个数的和,并将结果赋值给result变量。
编写完函数文件后,我们可以在主程序中调用该函数。
调用函数的语法是函数名后跟一对圆括号,括号内是函数的输入参数。
例如,我们可以在主程序中调用上述的"mysum"函数来计算两个数的和:```a = 3;b = 4;result = mysum(a, b);disp(result);```运行主程序后,屏幕上将输出结果7,即3和4的和。
清华大学结构力学下-连续梁内力计算程序
FM=input('输入单元固端弯矩FM(NE×2):');
%节点转角未知量总数
N=max(max(JD));
%输入直接结点力矩
PJ=input('输入N维直接结点力矩列向量:');
%输出元数据
disp('单元总数'),NE
disp('单元杆长'),BL
end
end
end
F=P+PJ;
%结构整体刚度矩阵的集成
K=zeros(N,N);
fori=1:NE
m=JD(i,1);
n=JD(i,2);
if m~=0 & n~=0
K(m,m)=K(m,m)+4*EI(i);
K(n,n)=K(n,n)+4*EI(i);
K(m,n)=K(m,n)+2*EI(i);
输入单元定位向量JD(NE×2):[0 1;1 2;2 3;3 4;4 5;5 6]
输入单元固端弯矩FM(NE×2):[-10.6667 10.6667;-9.0000 9.0000;-6.0000 6.0000;-21.3333 21.3333;-3.0000 3.0000;-18.0000 18.0000]
n=JD(i,2);
k=[4*EI(i),2*EI(i)
2*EI(i),4*EI(i)];
DELTAI=zeros(1,2);
if m~=0 & n~=0
DELTAI=[DELTA(m),DELTA(n)]; %行向量
FMI=FM(i,:); %行向量
FJ(i,:)=(k*DELTAI')'+FMI;
连续梁程序作业报告
连续梁编程报告水工91 赵超2009010213一、问题背景结构可以分为刚架结构、排架结构、桁架结构,连续梁等。
在连续、线弹性、小变形的假定前提下,对结构的内力进行求解一般解法有力法和位移法,而在计算机发展迅速的今天,使用矩阵位移法对结构进行计算有比较高的效率,而且具有较高的计算准确度,从而既提高了运算速度,又方便了工程计算。
连续梁是结构力学中学习的一种结构,结构上虽然简单,但是以此为出发点进行结构内力的计算,基本上能够完整的应用矩阵位移法中的每一种思想。
比如将单元刚度矩阵通过定位向量逐一合成到整体刚度矩阵中,还有等效结点荷载的求解等都与刚架、排架基本相同。
我认为,线性性决定的矩阵位移法的叠加性质和定位向量的使用是矩阵位移法中的精髓。
二、连续梁编程步骤分析完成此次程序编写的步骤如下:1、对程序需要用到的基本算法进行了推导。
2、对程序中的数据流进行分析,划定数据的流动路径以及存储路径。
3、将程序分成相对独立的几块进行接口定义和接口实现的方式定义。
并规定了数据的存储方式。
4、分别编写以下几段相对独立的程序:5、输出结果,进行分析三、程序说明1、本人保证,本程序由自己独立完成。
2、选择Matlab:此次编程作业要求对题设中连续梁进行分析和计算,并通过计算机语言编程,并画出连续梁的弯矩图。
由于C语言不支持画图功能,而且本人没有学过C++,于是选择了上学期学习的Matlab进行编程,而且Matlab用于线性方程的求解非常方便,算法优化效率高,代码简洁。
3、数据输入方式:由于此次题目中设定了不同类型的杆件和不同类型的荷载,于是程序中设定了可以变化的杆件和荷载参数(输入时只需按照题目中所给表格输入即可)。
当然为了避免输入时太麻烦,我已将题干数据编入到Str_Cal2.m文件中。
4、程序运行说明:请将附件中文件拷贝到matlab安装包下的bin文件夹中,运行matlab,打开附件中的m文件即可。
根据检查内容可选择进行下面两项:①检查本题计算结果:若想跳过数据输入,则可以直接用matlab运行Str_Cal2.m文件即可。
采用MATLAB语言开发连续梁桥顶推施工结构分析程序_梁爱斌
收稿日期:2000-02-25采用M AT LAB 语言开发连续梁桥顶推施工结构分析程序梁爱斌1 王春生2 徐 岳3(西安公路研究所1 西安710054) (长安大学2,3 西安710064)摘 要 文章介绍了MA T LAB 语言在顶推施工预应力混凝土连续梁桥施工过程内力动态分析程序设计中的应用,从而说明基于M A T LAB 语言开发结构分析软件的可行性与优越性。
关键词 M A T LAB 语言 顶推施工 连续梁桥 结构分析 程序设计Abstract :This paper introduces the application of MATLAB to prog ramming forcontinuous girder bridge by incremental lounching ,particularly fo r analy zing the course internal force dynamic analysis .Thus it illustrates the feasibility and advantage of devel -oping structure analy sis program with MALAB .Keywords :MATLAB lang uage ;incremental lounching ;continuous g irder bridge ;structure analysis ;program design1 M A TLAB 简介M ATLAB 是MathWo rks 公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示及处理于一体,构成了一个方便且界面友好的用户环境,在此环境下,对所要解决的许多问题,用户只需简单的列出数学表达式,其结果便会以数值和图形方式显示出来;对于大型问题,只需建立相应的数学模型,同样可以得到快速准确的解答。
matlab语言在开发连续梁桥顶推施工-5页精选文档
MATLAB语言在开发连续梁桥顶推施工作者:梁爱斌王…文章来源:西安公路研究所点击数:530 更新时间:2019-1-7 [摘要]通过介绍MATLAB语言在顶推施工预应力混凝土连续桥施工过程内力动态分析程序设计中的应用,说明基于MATLAB语言开发结构分析软件的可行性和优越性。
关键词MATLAB语言顶推施工连续梁桥结构分析程序设计一、引言目前,常见的结构分析软件(程序)一般采用FORTRAN、C及可视化类语言中的一种或多种进行开发。
其开发周期一般较长、程序编制量大、程序的调试和测试较难实现,从而开发费用较高,而且在针对大型的数据处理和动态图形处理方面编程较复杂,尤其是采用多种语言进行混合或复合编程时,程序本身的调试和接口问题较为突出。
当然,这些语言有它们各自的优点,尤其表现在多语言的复合编程上,可将各语言的长处集于一身,并在一定程度上避免了使用它们有局限的方面。
在开发一个能对顶推法施工的连续梁桥进行施工全过程内力动态分析的软件时,尽管可采用FDRTRAN语言设计结构分析计算的基本模块,同时采用可视化类语言设计整个系统的基本控制模块这种优化方案,但它在结构的动态分析程序设计方面仍有两个大的难题:(1)大批量数据进行复杂的数值运算时程序较难设计和测试;(2)最终的计算结果进行可视化处理后形成实时动画较困难。
但用MATLAB进行整个程序的设计,上述两个问题即可迎刃而解。
二、MATLAB简介MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便且界面友好的用户环境。
在此环境下,对所要解决的许多问题,用户只需简单地列出数学表达式,其结果便会以数值和图形方式显示出来;对于大型问题,只需建立相应的数学模型,同样可以得到快速准确的解答。
其主要特点概括起来有以下几点:(l)MATLAB语言自带数值运算、矩阵运算方面的常规算法函数6000余条,并且具有自身的矩阵运算语法,使得一般的小型数据处理显得极为简单。
MATLAB在连续梁计算和作图中的应用
MATLAB在连续梁计算和作图中的应用
李继生;庞留勇
【期刊名称】《安阳工学院学报》
【年(卷),期】2011(010)002
【摘要】在用力法解算连续梁时,系数和自由项多,计算量大,绘图多.可运用MATLAB大型数学计算软件分步编制程序来解决这一问题,而在教学过程中可注重概念的分析、推理过程与力学模型的建立.给出了计算和绘图方法.MATLAB的这一应用激发了学生的学习兴趣,改善了结构力学的教学效果.本方法,在结构力学计算中具有普遍的适用性.
【总页数】4页(P54-56,60)
【作者】李继生;庞留勇
【作者单位】黄淮学院数学科学系,河南驻马店,463000;黄淮学院数学科学系,河南驻马店,463000
【正文语种】中文
【中图分类】U471.15
【相关文献】
1.MATLAB在工程力学计算和作图中的应用 [J], 韩士萍
2.MATLAB GUI 设计在几何作图中的应用 [J], 刘宣亮
3.MATLAB在结构力学计算和作图中的应用 [J], 李继生;赵文菊
4.利用MATLAB计算切割图中三区域的面积值 [J], 杨树川;佘永卫;杨术明
5.MATLAB在频率特性Bode图中的应用 [J], 刘娟
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章连续梁程序的编制与使用入结构力学领域中而产生的一种方法,而Matlab语言正是进行矩阵运算的强大工具,因此,用Matlab语言编写结构力学程序有更大的优越性。
本章将详细介绍如何利用Matlab语言编制连续梁结构的计算程序。
矩阵位移法的解题思路是将结构离散为单元(杆件),建立单元杆端力与杆端位移之间的关系-单元刚度方程;再将各单元集成为原结构,在满足变形连续条件和平衡条件时,建立整体刚度方程;在边界条件处理完毕后,由整体刚度方程解出节点位移,进而求出结构内力。
用矩阵位移法计算连续梁的步骤如下:1)整理原始数据,如材料性质、荷载条件、约束条件等,并进行编码:单元编码、结点编码、结点位移编码、选取坐标系。
2)建立局部坐标系下的单元刚度矩阵。
3)建立整体坐标系下的单元刚度矩阵。
4)集成总刚。
5)建立整体结构的等效节点荷载和总荷载矩阵6)边界条件处理。
7)解方程,求出节点位移。
8)求出各单元的杆端内力。
实际上,上述步骤也是编制Matlab程序的基本步骤,在求出计算结果后,还可以利用Matlab的绘图功能绘制结构图、内力图、变形图等等。
图3-1程序流程图3.1 程序说明%******************************************************************* % 矩阵位移法解连续梁主程序%******************************************************************* ●功能:运用矩阵位移法解连续梁的基本原理编制的计算主程序。
●基本思想:结点(结点位移)编码默认为从左至右,从1开始顺序进行;杆端弯矩的方向默认为逆时针。
●荷载类型:可计算结点荷载,每单元作用的跨中集中力和均布荷载。
●说明:主程序的作用是通过赋值语句、读取和写入文件、函数调用等完成算法的全过程,即实现程序流程图的程序表达。
%----------------------------------------------------------------------------------------------------- 1 程序准备format short e %设定输出类型clear all %清除所有已定义变量clc %清屏●说明:format short e -设定计算过程中显示在屏幕上的数字类型为短格式、科学计数法;clear all -清除所有已定义变量,目的是在本程序的运行过程中,不会发生变量名相同等可能使计算出错的情况;clc -清屏,使屏幕在本程序运行开始时%----------------------------------------------------------------------------------------------------- 2 打开文件FP1=fopen('input.txt','rt'); %打开输入数据文件存放初始数据FP2=fopen('output.txt','wt'); %打开输出数据文件存放计算结果●说明:FP1=fopen('input.txt','rt'); -打开已存在的输入数据文件input.txt,且设置其为只读格式,使程序在执行过程中不能改变输入文件中的数值,并用文件句柄FP1来FP2=fopen('output.txt','wt'); -打开输出数据文件,该文件不存在时,通过此命令创建新文件,该文件存在时则将原有内容全部删除。
该文件设置为可写格式,可在程序执行过程中向输出文件写入数据。
%----------------------------------------------------------------------------------------------------- 3 读入程序控制信息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); %弹性模量●说明:从输入文件FP1中读入单元个数,结点个数,约束个数,结点荷载个数,非结点荷载个数,弹性模量;程序中弹性模量仅输入了一个值,表明本程序仅能求解一种材料构成的结构,如:钢筋混凝土结构、钢结构,不能求解钢筋混凝土-钢组合结构。
采用了命令fscanf,其中:’%d’表示读入整数格式;1表示读取1个数。
%------------------------------------------------------------------------------------------fprintf(FP2,'\n 结构初始数据\n\n');fprintf(FP2,' 单元总数=%d 结点总数=%d 约束总数=%d \n',NELEM,NPOIN,NVFIX);fprintf(FP2,' 结点荷载个数=%d 非结点荷载个数=%d 弹性模量=%12.5g \n',NFPOIN,NFPRES,YOUNG);●说明:在输出文件FP2中显示输入的控制信息,便于程序执行完毕后,从输出文件中查找输入错误。
采用了命令fprintf,其中:\n为换行标志,表示换一行;%12.5g表示输出12位且有5位小数的实数。
括在引号中的信息' 单元总数=%d 结点总数=%d 约束总数=%d \n'为输出到FP2文件中时的格式,其后的变量表NELEM,NPOIN,NVFIX依次将其代表的数值输出到%d所对应的位置。
%----------------------------------------------------------------------------------------------------- 4 调用读取初始数据函数,生成结构信息[LNODS,COORD,FPOIN,FPRES,FIXED]=…ele_INITIALDATA (FP1,FP2,NELEM,NPOIN,NFPOIN,NFPRES,NVFIX);%----------------------------------------------------------------------------------------------------- 5 调用总刚计算函数,生成单刚并集成总刚[HK] = ele_HK(NPOIN,NELEM,LNODS,COORD,YOUNG);%----------------------------------------------------------------------------------------------------- 6调用荷载计算函数,由结点荷载与非结点荷载生成总荷载向量列阵[FORCE] = …ele_FORCE(NPOIN,NFPOIN,FPOIN,NFPRES,FPRES,LNODS,COORD); %----------------------------------------------------------------------------------------------------- 7调用边界条件处理函数,总刚、总荷载进行边界条件处理[HK,FORCE] = ele_BOUNDARY(NVFIX,FIXED,HK,FORCE);%----------------------------------------------------------------------------------------------------- 8 方程求解DISP=zeros(NPOIN,1); %建立并初始化结构的结点位移列矩阵DISP=HK\FORCE; %计算出结构所有的结点位移%----------------------------------------------------------------------------------------------------- 9调用单元杆端力计算函数,求单元杆端力[FE] = ele_MOMENTS(FP2,NPOIN,DISP,NELEM,LNODS,…COORD,YOUNG,NFPRES,FPRES);%******************************************************************* 10 关闭输出数据文件fclose(FP2);%******************************************************************* % 读取初始数据函数ele_INITIALDATA%******************************************************************* % 入口参数:FP1,FP2,NELEM,NPOIN,NFPOIN,NFPRES,NVFIX% 出口参数:LNODS,COORD,FPOIN,FPRES,FIXED%------------------------------------------------------------------------------------------ function [LNODS,COORD,FPOIN,FPRES,FIXED]=…ele_INITIALDATA(FP1,FP2,NELEM,NPOIN,NFPOIN,NFPRES ,NVFIX)说明:FP1-文件句柄,指示输入数据文件;FP2-文件句柄,指示输出数据文件;%------------------------------------------------------------------------------------------% 读取结构信息LNODS=fscanf(FP1,'%f',[3,NELEM])';●说明:建立LNODS矩阵,该矩阵指出了每一单元的连接信息和惯性矩。