RC混凝土弯矩曲率关系全过程数值分析-C++编程
弯矩 曲率关系

c0 0.00,2cu0.0033
11.0
1
0.8, 0.7,
fcu 50Mpa fcu 50Mpa
线性插值(《混凝土结构设计
规范》GB50010 )
六、受弯构件正截面简化分析
1. 压区混凝土等效矩形应力图形(极限状态下)
定义:
x h0
xn=nh
0
1c0
yc C
x=1xn
对试验梁,已知b、h0、As、fc、fy、Es, Mu
MI
Mcr
MII
My
(Mu) MIII
t<ft
sAs
sAs t=ft(ct =tu)
s<y
sAs
s= fyAs
y
fyAs s>y
四、受弯构件的试验研究
2. 试验结果
结论
•适筋梁具有较好的变形能力,超筋梁和少筋梁的破坏具有突然性,设计 时应予避免
•在适筋和超筋破坏之间存在一种平衡破坏。其破坏特征是钢筋屈服的同 时,混凝土压碎
二、骨架曲线的弯矩-曲率关系
1. 基本假定
P
平截面假定----平均应变意义上
As’
as’
dy
y
h
L/3
L/3
ct
L
c
s’ nh0
As
as b
s
b c
(1-n)h0
忽略剪切变形对梁、柱构件变形的影响
二、骨架曲线的弯矩-曲率关系
2. 短期荷载下的弯矩-曲率关系
截面的相容关系
as h/2as h h/2as
2. 短期荷载下的弯矩-曲率关系
拉区混凝土开裂后的处理
As
as 1
h/2-
混凝土破坏过程的数值模拟

胞模型 、镶嵌裂纹模型等[1~8 ] ·连续介质理论模 型在假设混凝土为均匀材料的基础上对其非线性 予以均匀化的描述 ,但不能描述细观非均匀性对 于材料损伤及破坏局部化的影响·一些细观模型 如梁单元模型的模拟以细观拉损伤为主要破坏机 制的混凝土宏观破坏 (单轴拉伸 、三点弯曲等) ,得 到了与实验结果较为一致的结论·但模拟混凝土 的单轴压缩时的破坏过程 ,得到的结果与实验结 果偏差较大·
义[1 ]
f ( u)
=m u0
u u0
m- 1
exp
-
um
u0
,
(1)
式中 , u 代表满足该分布参数 (例如强度 、杨氏模 量 、剪切模量等) 的数值 ; u0 是一个与所有单元参 数平 均 值 有 关 的 参 数; 形 状 参 数 m 定 义 了 Weibull 分布密度函数的形状·
在本次数值分析中 , 2 种颗粒单元和 3 种不 同性质梁单元随机分布形成非均匀数值试样 , 颗 粒单元和梁单元力学性质的平均值见表 1·
混凝土受压破坏过程数值模拟在单轴受压状态下2种颗粒单元和单元力学参数均按weibuii分布密度函数取值数值试验结果显示随着混凝土材料细观力学性质分布的均匀性不同其破坏形态有很大差异weibuii分布函数的形状参数种梁单元的力学参数较为均匀试件破坏形态与主要破坏过程的数值模拟结果如图结果表明当混凝土细观力学性质较为均匀时表示混凝土材料内部缺陷很少在压应力作用下材料内部产生的裂纹很少在靠近两侧的无约束边缘处首先出现裂纹这是由于试件在压应力作用下向两侧膨胀从而在两侧产生拉应力导致裂纹出现随着压应力的不断增大裂纹逐渐向混凝土材料内部扩展直到试件破坏weibuii分布函数的形状参数料力学性质离散大即试件混凝土的细观力学性质很不均匀试件破坏形态与主要破坏过程的数值模拟结果如图3所示此时混凝土材料内部缺陷如微裂纹增多尤其在骨料和砂浆的界面上缺陷较多裂纹首先从界面产生裂纹尖端绕过骨料并随压应力增大逐渐向砂浆扩展最后贯通导致混凝土破坏这个结果说明混凝土材料力学性质的弱化是由于内部结构在受力后不断损伤导致裂纹产生而引起的混凝土材料力学性质在细观层次上的非均匀性是不可忽略的东北大学学报自然科学版第25crackhistorycubicspecimendifferentstagescrackhistorycubicspecimendifferentstages中计算结果给出的图形颜色灰度反应了梁单元强度的大小颜色越接近黑色表示该处强度越低当梁单元受力包括轴力弯矩和剪力达到其极限强度时该梁单元断裂试件中已形成裂纹在图中显示的颜色为黑色数值模拟可以跟踪混凝土试件内部裂纹萌生扩展贯通导致混凝土破坏的全过程数值模拟结果表明混凝土材料破坏是其内部潜在的各种缺陷引起的其破坏过程就是裂纹的萌生扩展以及裂纹间的贯通最终形成宏观裂缝导致混凝土失稳破裂的过程混凝土的破坏是由于材料中潜在的各种缺陷引起的而材料性质细观非均匀性和缺陷分布的随机性是造成混凝土材料内部裂纹产生以及材料宏观应力应变曲线非线性的根本原因混凝土材料的破坏过程实际上就是内部裂纹萌生扩展贯通直到产生宏观裂纹导致混凝土失稳破裂的过程1梁颗粒模型bpm可以对内部裂纹萌生扩展贯通导致混凝土破坏的全过程进行较好的数值模拟2混凝土破坏过程就是微裂纹萌生扩展贯通直到宏观裂纹产生导致混凝土失稳破裂的过程数值模拟结果显示随着混凝土细观力学性质分布的均匀性不同混凝土试件破坏形态产生较大变化混凝土试件的宏观力学
混凝土结构M-N关系图计算机数值分析C++编程

练习2:一、题目钢筋混凝土矩形截面:b=300mm ,h=600mm ,h 0=560mm ,a s ’=25mm ,a s =40mm ,A s ’=157mm2,A s =804mm2,f y ’=280MPa ,f y =280MPa ,E s =200GPa ,E c =25.5GPa ,f c =13.4MPa ,f t =1.54MPa ,ε0=0.002,εcu =0.0038,εs u ≤10%=0.10。
.利用数值方法计算截面的M~N 关系,并附简化计算结果N u 。
b=300mm2Φ10h=600mm4Φ16二、简单分析:本次作业是在上一次作业的基础上继续进行其他计算。
主要任务是利用计算机软件来计算特定截面偏心受压情况下的纵向压力与弯矩的关系。
可参考第一次作业的程序,做适当的修改即可。
混凝土应力—应变曲线采用的是R üsch 建议的曲线。
曲线的上升段采用抛物线形式,下降段为斜直线。
R üsch 建议的曲线:当0εε≤时,'2002[()]c cf εεσεε=-当0cu εεε<≤时,'c c f σ=根据《高等钢筋混凝土结构学》提供的公式: 由平衡条件:0N =∑,0M =∑可知,''0()()d x c ci s s s sN b y y A A σεσσ=+-⎰0'''00000()()()(+)d ()x s c ci i s s s N e y b y h x y y A h a σεσ+=-+-⎰对于离纵向力较远钢筋应力的取值可参照以下情况:平衡破坏:即受压边缘混凝土应变恰好达到极限应变时,受拉钢筋刚好达到屈服强度280MPa 。
受拉破坏:荷载偏心较大时,钢筋先屈服(达到280MPa ),经过一个过程后,混凝土达到极限压应变。
受压破坏:荷载偏心较小时,构件产生受压破坏。
受压破坏是指受压较大一侧的混凝土达到极限压应变,而离纵向力较远一侧的钢筋可能受拉或者受压但都不屈服。
RC混凝土弯矩曲率关系全过程数值分析-C++编程

练习1:钢筋混凝土矩形截面:b=300mm,h=600mm,h0=560mm,a s’=25mm,a s=40mm,A s’=157mm2,A s=804mm2,f y’=280MPa,f y=280MPa,E s=200GPa,E c=25.5GPa,f c=13.4MPa,f t=1.54MPa,ε0=0.002,εcu=0.0038,εs u≤10%=0.10。
.利用数值方法计算截面的M~Φ关系,并附简化计算结果M u。
2Φ10h=600mm4Φ16将程序计算出的结果导入excel生成如下表格:图1.纯弯构件截面曲率phi随弯矩M加载曲线图2.纯弯构件截面受压区高度x0随弯矩M加载曲线纯弯构件M-phi曲线数值分析程序(C++)#i#include<iostream>#include<math.h>#include<fstream>#include<iomanip>using namespace std;int main(){cout<<"设计中As=804mm2,As'=157mm2,fy=280MPa,fy'=280MPa,Es=200GPa,Ec=25.5GPa"<<endl;cout<<endl;cout<<" fc=13.4MPa,ft=1.54MPaε0=0.002,εcu=0.0038,εsu<=0.1"<<endl;cout<<endl;//给出题目的基本信息inti;double b,h,as0,as1,x0,c,t,p1,p2,p3,h0,x01,x02,d,f;double k,k1,k2,ms0,ms1,mc,f1,f2,M,sc,m1,m2,m3,mc1,e1,sc1,sc2,q;ofstreamoutfile;b=300;h=600;as0=40;as1=40;h0=h-as0;//给出题目相关参数outfile.open("data.txt");//建立数据输出文件for(mc=0.00000001;mc<=0.0038;mc=mc+0.00001){x01=0.0;x02=600.0;for(x0=0;;){x0=0.5*(x01+x02);ms1=mc/x0*(x0-25);ms0=mc/x0*(h0-x0 );//求出钢筋应变f2=200*ms1*1000;//受压区钢筋应力f1=200*ms0*1000;//受拉区钢筋应力if(f1>280){ f1=280;}if(f1<-280){f2=-280;}if(f2>280){f2=280;}//εsu<=0.1是达不到的,必定小于0.1p1=0.0;m1=0.0; p2=0.0;m2=0.0;p3=0.0;m3=0.0;for( i=0;i<=1000;i++){sc=mc*(i+0.5)/1000;if(sc<0.002){k=13.4*(1000*sc-sc*sc/0.000004);}if(sc>=0.002&&sc<=0.0038){k=13.4;}p1=p1+k*300*x0/1000;m1=m1+k*300*x0/1000*(x0*(i+0.5)/1000);}//受压区混凝土mc1=(600-x0)*mc/x0;e1=1.54/25.5/1000;//对受拉区最下缘做出判断的两个数据if(mc1<=e1)//未开裂情况下受拉区混凝土,f2受压区钢筋f1受拉区钢筋{d=600-x0;for(int j=0;j<=1000;j++){sc1=mc1*(j+0.5)/1000;k1=25.5*sc1*1000;p2=p2+k1*300*d/1000;m2=m2+k1*300*d/1000*(d*(j+0.5)/1000);}t=f1*804+p2;c=f2*157+p1;//此种情况下全结构的压力C和拉力TM=m1+f2*157*(x0-25)+m2+f1*804*(560-x0);//此种情况下的弯矩}if(mc1>=e1)//开裂情况下的受拉区混凝土,f2受压区钢筋f1受拉区钢筋{d=e1*x0/mc;for(int r=0;r<=1000;r++){sc2=e1*(r+0.5)/1000;k2=25.5*sc2*1000;p3=p3+k2*300*d/1000;m3=m3+k2*300*d/1000*(d*(r+0.5)/1000);}t=f1*804+p3;c=f2*157+p1;//此种情况下全结构的压力C和拉力TM=m1+f2*157*(x0-25)+m3+f1*804*(h0-x0);}//此种情况下的弯矩f=(c-t)/c;q=mc/x0;//f为压力和拉力之间的误差比,q为曲率if(fabs(f)<0.01){outfile<<setw(10)<<q<<endl;x0=300;break;}//输出相关数据etw(10)<<x0<< elseif(t<c)//二分法作判断,对x0做循环判断{ x02=x0;x01=x01;}else{ x01=x0;x02=x02;}}}outfile.close();system("pause");return 0;//程序结束}}。
第二章弯矩曲率关系

n
i 1
ci
Ai s' As' s As N 0
n
2) 假定和 值
M 0,
M ci Ai Z i s As (
i 1
h h a s ) s As (a s )=0 2 2
3) 由相容方程求出各条带混凝土的应变及钢筋的应变; 4) 由物理关系求出相应的应力,拉区混凝土条带的应变 超过其极限受拉应变时,应对其进行处理;
2) 假定 值
X 0,
n
i 1
ci
Ai s' As' s As N 0
n
M 0,
M ci Ai Z i s As (
i 1
h h a s ) s As (a s )=0 2 2
3) 由相容方程求出各条带混凝土的应变及钢筋的应变; 4) 由物理关系求出相应的应力,拉区混凝土条带的应变 超过其极限受拉应变时,应对其进行处理;
5) 将各应力值代入第一平衡方程,判断是否满足平衡条件: 如不满足,需要调整 值直至满足为止,如满足平衡条件, 则由第二平衡方程求出M,然后重复步骤1~5
6) 当符合破坏条件时,停止计算。
二、骨架曲线的弯矩-曲率关系
2. 短期荷载下的弯矩-曲率关系
M - 关系的计算方法之二 :分级加荷载法
1) 取M=M+M
h h/2as
as b
n
As
对钢筋混凝土柱, 有时也可能会出现 s < 0
s s ( s )
二、骨架曲线的弯矩-曲率关系
2. 短期荷载下的弯矩-曲率关系
截面的平衡方程
as h/2as h h/2as as b 1 i Zi 截面中心线 n As As
c++编程--结构弯矩曲率计算算例

}
double es,Ny;
es=sce*(h-z-a-r)/z;
{if(es<=0.0015)
Ny=es*200000*as;
else
Ny=as*335;
}
N=Nd+Ny-Nc;
printf("Nd=%d\n",Nd);
printf("Ny=%d\n",Ny);
printf("Nc=%d\n",Nc);
批注本地保存成功开通会员云端永久保存去开通
#include <stdio.h>
#include <math.h>
double f(double sce,double z)
{double N,ea,ha,Nc,b,h,a,as,r;
double x[10001],y[10001];
int i;
b=300;
y[i]=(1.7*x[i]-0.4*x[i]*x[i]-0.3*x[i]*x[i][i]-1)*(x[i]-1)+x[i]))*19.1;
//printf("i=%d\n",i);
}
//printf("z=%f\n",z);
Nc=0.0;
printf("N=%d\n",N);
return N;
}
double g(double sce,double z)
{double x[10001],y[10001],Nc;
double ea=sce/100.0;
int i;
double b=300;
double h=500;
弯矩 曲率

弯矩曲率弯矩是结构力学中的重要概念之一,它描述了材料在受力作用下的弯曲情况。
曲率则是描述曲线弯曲程度的物理量。
弯矩和曲率在结构设计以及材料力学等领域都有广泛的应用,对于研究物体在受力作用下的变形和破坏具有重要意义。
首先来介绍弯矩。
弯矩是指在材料受到弯曲作用时,在截面上产生的力矩,也可以理解为材料截面上的弯曲力。
对于一根梁而言,如果在一段截面上的外力作用产生的力矩大于其截面内部的抵抗力矩,则梁将发生弯曲变形。
弯矩大小与外力的大小和作用点到截面的距离有关。
一般可以通过应力和截面形状来求解弯矩。
在力学中通过材料的横截面上剪应力为零的状态称为悬臂点,而不同截面上的悬臂点之间的距离即为弯矩。
弯矩的大小对于物体的变形和破坏有着重要的影响。
当弯矩作用到一定程度时,材料内部的应力将超过其抗弯强度,引起横截面的破坏。
因此在结构设计中,需要根据材料的弯曲特性以及所受到的外力大小来确定合理的截面形状以及材料的选择,以保证结构在使用过程中能够满足强度和刚度的需求。
接下来我们来介绍曲率。
曲率是描述曲线弯曲程度的物理量,一般表示为k。
在数学中,曲率定义为曲线上某一点处的切线与曲线在该点处的夹角的弧度表示。
曲率值越大,曲线的弯曲程度就越大。
曲率的计算方法有多种,其中一种常见的方法是通过曲线的二阶导数来计算。
曲率在物理学和几何学中具有广泛的应用,例如天体运动、光学、流体力学等。
曲率也与弯矩有着密切的关系。
在梁的弯曲中,曲率可以描述梁截面的弯曲程度。
当外力作用在梁上产生弯矩时,曲率的大小与弯矩呈正相关关系。
具体而言,当梁受到均布载荷或集中载荷作用时,曲率在材料横截面上是沿着梁轴方向变化的,通常是两端较大,中间较小。
而曲率变化的大小与受力区域的长度和横断面形状有关。
当曲率超过材料的允许极限时,材料将发生失稳和破坏。
综上所述,弯矩和曲率是结构力学中重要的概念,对于研究物体在受力作用下的变形和破坏具有关键意义。
弯矩描述了在材料受到弯曲作用时产生的力矩,而曲率则描述了曲线的弯曲程度。
混凝土构件截面的弯矩-曲率关系

3.3.1.1截面的弯矩曲率关系第一个方面是柱截面的受弯性能,即截面弯矩M -截面曲率ϕ的关系。
在截面受弯过程中,钢筋混凝土构件截面一般经历三个阶段:截面弹性受力状态→截面受拉边缘混凝土纤维开裂→截面受拉边钢筋拉屈→截面受压边混凝土达到极限压应变。
随着弯矩的增加,截面受弯刚度趋势变小,一般配筋截面在进入屈服阶段后都存在一个明显的屈服平台,即截面的极限弯矩稍大于屈服弯矩,但是截面的极限曲率远远大于屈服曲率。
现在常用截面条带模型计算截面的M -ϕ全过程曲线。
截面条带模型程序分析中用到的基本假定有以下几条[32]:(1)截面从受力开始到破坏,截面始终保持平面变形。
(2)钢筋和混凝土材料在标准试验中测定的本构关系可以用于程序分析。
(3)忽略由于时间因素引起的材料变化,例如:混凝土的收缩、徐变。
(4)截面的变形比较小,变形后的状态不影响受力体系计算图形和内力值。
根据以上的基本假定,程序中可以使用以下三个基本条件:(1)几何变形条件:由假定(1)可以确定在截面分析过程中,以下公式始终成立。
ϕ =h sc εε+ 其中ϕ是截面曲率,c ε是受压边缘混凝土应变,s ε是受拉钢筋应变,0h 是截面有效高度。
(2)物理本构关系:通过这个条件可以由混凝土或钢筋的应变推得相应的应力c σ和s σ。
本文采用了混凝土和钢筋典型的应力—应变曲线,如图3-2所示:图3-2混凝土和钢筋的本构关系曲线混凝土受压的本构关系采用了Hognestad 模型,数学表达式为:⎪⎪⎭⎪⎪⎬⎫---=-=cpcpcu cpcp cp cp σεεεεσσεεεεσ)](15.01[])()(2[2上升段(3-1)下降段 其中混凝土的受压峰值应变cp ε取为0.002,而极限应变u ε取为0.0033。
混凝土受拉的本构关系采用了简化模型,数学表达式为:⎪⎭⎪⎬⎫==tptp tpσσσεεσ)(上升段(3-2)水平段其中混凝土的受拉峰值应变tp ε取为0.0001,而极限应变tu ε取为0.0002。
混凝土结构规范受弯与变形计算

1 混凝土受弯构件的行为
了解混凝土在受力时的行为和特性。
2 弯矩与曲率的概念
弯曲受力中涉及的关键参数。
3 弯曲受力的影响因素
影响混凝土结构弯曲受力的因素包括载荷、几何形状和材料属性。
混凝土结构变形计算
1 变形计算的目的与意义
了解为何需要进行混凝土结构的变形计算。
2 变形计算的方法与步骤
介绍计算混凝土结构变形所采用的方法和步骤。
3 混凝土结构变形计算的实例
通过实际案例演示如何进行混凝土结构的变形计算。
应用与案例分析
1 基于规范的设计案例
2 混凝土结构规范与实际工程的对比
展示一个按照混凝土结构规范进行设计的 实例工程。
对比规范要求和实际施工中的情况,探讨 二者之间的一致性和差异。
混凝土结构规范受弯与变 形计算
本演讲将讨论混凝土结构规范中受弯与变形的计算。通过深入介绍相关概念、 分析方法和实例,揭示规范在工程设计中的重要性。
背景介绍
1 混凝土结构规范的重要性
2 弯曲与变形计算的问题
Hale Waihona Puke 规范确保设计和施工符合可行性和安全要 求。
准确计算弯曲受力和结构变形对设计和性 能至关重要。
弯曲受力分析与计算
基于C语言的RC梁截面M-φ曲线研究

基于C语言的RC梁截面M-φ曲线研究作者:舒启军赵佩君李顺玉来源:《中国新技术新产品》2011年第10期摘要:根据混凝土梁截面弯曲变形平截面假定和钢筋与混凝土各自的材料本构关系推导了梁单元在弯矩轴力下截面内力的计算公式,并通过他们提出了数值计算的方法和步骤,利用C 语言实现了编程计算,通过程序进行RC梁单元从开始加载到破坏的全过程非线性分析,得出了截面M-φ曲线,得出了合理的计算结果,特别是曲线下降段的结果,最后研究了不同本构关系对RC梁截面M-φ曲线下降段的影响。
关键词:平截面假定;应力;应变;M-φ曲线;C语言中图分类号:TP312 文献标识码:A1引言在钢筋混凝土结构分析中,特别是在其非线性分析中,M-φ关系曲线的重要性不言而喻,可以在很多的资料中找到关于M-φ关系曲线的图形和式子,但众多资料中的M-φ关系曲线都没有下降段或者下降段延伸很少,包括吕西林先生所著的《钢筋混凝土结构非线性分析》中的关于M-φ关系曲线[1]。
究其原因是程序设置循环的条件和变量的取舍问题,本文采用两种方式均较好的得出了M-φ关系曲线的下降段。
其中两种编程的程序方法大同小异但不同的只是循环因子的差异:一个采用的是混凝土边缘压应变作为控制变量,一个采用的是受压区高度作为控制变量。
2 基本假定2.1 RC梁截面变形满足平截面假定[2]2.2 混凝土的本构关系采用三种不同的本构关系。
Hognestad 模型[3],瑞典人Thorenfeld等人提出的模型[3],具体参照文献[3];我国设计规范所采用的模型[4],具体参照文献[4]。
2.3 钢筋的本构关系采用三折线形式[5],具体参照文献[5]。
2.4 忽略剪切变形的影响,设拉为负,压为正。
3 基本方法3.1 采用有限条带法,假定每一条带上的应力?滓c,i均匀分布,在条带划分时,为了能使计算模型中截面上的应力分布接近实际情况,一般采用多条带划分。
根据平截面假定得3.2 弯矩-曲率计算弯矩-曲率求解,主要是求得弯矩和曲率的对应关系,首先从弯矩或曲率两者之间选定一个作为已知,来确定另一个。
圆钢管混凝土截面轴力_弯矩_曲率关系实用计算方法

第 12 期
丁发兴, 等: 圆钢管混凝土截面轴力 - 弯矩 - 曲率关系实用计算方法
· 135·
4 种因 素, 对 于 f s 在 Q235 ~ Q420 、f cu 在 C30 ~ C100 和径厚比 D / t 在 20 ~ 100 之间的实际工程 中应用的圆钢管混凝土, 考虑套箍指标 Φ 和 钢材屈服强度的影响, 拟合得到钢管混凝土压弯 构件截面轴力 - 弯矩相关实用计算公式为 n0 1 N0 2 - · ( 0. 97 - n0 ) N u ( 0. 97 - n0 )
[ 8] 、 丁发兴等 在对钢管混凝土纯弯构件截 面进行数值分析的基础上, 建立了钢管混凝土纯 [ 7]
角为 dθ = 2 π / ( 2 n) = π / n ( 图 1 ) . 2, …, n) , θ k = kdθ ( k = 1 , dA sk = ( r c + t / 2 ) tdθ, dA ck = r c 2 cos2 ( θ k - 0. 5dθ) ·dθ. 式中: r c 和 t 分别为混凝土的半径和钢管的壁厚 . 由此可以得到该截月
哈 尔 滨 工 业 大 学 学 报 JOURNAL OF HARBIN INSTITUTE OF TECHNOLOGY
Vol. 41
No. 12
Dec. 2009
圆钢管混凝土截面轴力 - 弯矩 - 曲率 关系实用计算方法
1, 2 丁发兴 ,张 1 1 2 鹏 ,余志武 ,欧进萍
n
N in = 2 ∑ ( σ sk dA sk + σ ck dA ck ) .
k =1
对于压弯构件截面, 故应保证轴力 N in = N0 ( N0 为钢管混凝土压弯构件截面上的外轴力 ) . 具体计算方法为: 在给定截面曲率 的情况 下, 通过调整截面形心应变 ε0 , 当截面内轴力 N in 等于外轴力 N0 时, 计算得到截面弯矩 M in . 数值计 算得到的典型钢管混凝土压弯构件截面 N0 - M - 关 系 如 图 2 所 示. 图 2 中 轴 压 比 n a = 0. 9 ( n a = N0 / N u , N u 为圆钢管混凝土轴压短柱的 10 ] 极限承载力, 按文献[ 计算 ) 时曲线上升段的 可能是采用的核心混凝土轴 刚度不是单调减少, 对称三轴受压应力 - 应变关系中上升段刚度偏低 而引起的.
弯矩曲率程序

#include<stdio.h>#include<math.h>#include<stdlib.h>float abstr(float); /*定义名为abstr的函数,指定功能在代码最后*/int sign(float); /*定义名为sign的函数,指定功能在代码最后*/void main(void){float m[300],c[300],p[300],d[300]; /*定义一维单精度浮点型变量数组,数组长度为300,m:弯矩;c:曲率;p:外力;d:挠度*/float mom[100],coc[100]; /*定义一维单精度浮点型变量数组,数组长度为300,mom:纵梁方向距梁端n*da处弯矩;coc:对应曲率*/int i; /*定义为整型变量*/for(i=0;i<300;i++) /*为数组m,c,p,d,mom,coc赋初值0*/{m[i]=0.0;c[i]=0.0;p[i]=0.0;d[i]=0.0;}for(i=0;i<100;i++){mom[i]=0.0;coc[i]=0.0;}//*****Enter Data To Store In Input.dat*****FILE *file1,*file2,*file3;float fy,es,esh; /*定义钢筋屈服强度,钢筋弹性模量,钢筋的极限拉应变*/float fc,fct; /*定义混凝土抗压强度,抗拉强度*/float as1,as; /*定义抗压钢筋面积,抗拉钢筋面积*/float l,a,b,h; /*定义梁跨长,作用点到左端距离,截面宽、高*/ float ao[2]; /*钢筋中心到梁顶距离*/intsn,ln,st; /*定义截面划分条带数,a长度上的分段数,钢筋型号*/file1=fopen("input.dat","r"); /*从input.dat中读取相应数据*/fscanf(file1,"%f%f%f",&fy,&es,&esh);fscanf(file1,"%f%f",&fc,&fct);fscanf(file1,"%f%f",&as1,&as);fscanf(file1,"%f%f%f%f",&l,&a,&h,&b);fscanf(file1,"%f%f",&ao[0],&ao[1]);fscanf(file1,"%d%d%d",&sn,&ln,&st);//*****End of Inputing Data*****float dc=0.0000002,de=0.00005,ee,em; /*定义曲率增量,应变增量,截面中间处应变,应变的中间变量*/float sf1=0.0,sf2=0.0,dsf; /*定义截面合力sf1,sf2,截面合力修正值dsf*/float ffc=0.0,fs=0.0; /*定义混凝土合力,钢筋合力*/float mi=0.0,mic,mis; /*定义某一条带的弯矩,混凝土截面内的合弯矩,截面钢筋合弯矩*/float z,e,s,r; /*定义条带到截面中间的距离,应变,应力,反力*/ float eo,eu,cc=0.0; /*定义混凝土达到极限强度时的应变,破坏时的应变,cc为计算挠度时曲率变量,只对cc赋初值0.0*/float lp,hh,hn,aas,etop; /*塑性铰长度的一半,hh未定义,分成sn个条带后每条带的高度,钢筋面积的中间变量,梁顶混凝土应变*/float esy,da; /*定义钢筋的屈服应变,梁纵向弹性区段分段ln后每段长度*/float dd,dsn,dl; /*均为挠度中间变量*/float mm,mo,co,dp,tan; /*弯矩中间变量,外力作用点处弯矩,对应曲率,外力变化量,屈服点处弯矩与曲率的比值*/ intj,k,n,ii,jj;int jmax1=500,jmax2=0,jmax3=0; /*定义jmax1,jmax2,jmax3三个整型变量并赋初值*/esy=fy/es; /*计算钢筋的屈服应变*/hn=h/sn; /*计算h高度的截面所分成的条带数*/eu=-0.004; /*定义混凝土破坏时的应变为-0.004*/e=-0.002; /*给条带应变赋初值*/ee=-0.0001; /*给截面中间处应变赋初值*/j=0;ii=0;do /*do-while循环,用于将曲率与算得的截面和弯矩一一对应*/{j++;c[j]=c[j-1]+dc;do /*do-while循环,计算某一曲率下的混凝土与钢筋的合弯矩,并保证钢筋混凝土截面内合力为0*/ {ii++;mic=0.0;mis=0.0; /*给混凝土和钢筋的弯矩赋初值为0*///*****Calculate The Force Of Concrete*****ffc=0.0; /*给混凝土合力赋初值为0*/for(i=0;i<sn;i++) /*for循环,用于各条带混凝土产生的合力与合弯矩*/{z=h/2-i*hn-hn/2; /*求每一条带到截面中间的距离*/e=ee+z*c[j]; /*以截面中间处应变为基准计算每一条带中心处应变,原代码左端为"ee"有误*/if(e>0.00015) s=0.0; /*if语句,用来判断每一条带中心处应变所在范围,从而选择对应公式计算该处应力*/else if(e>0.0001) s=fct;else if(e>0.0) s=(2*fct*e)/(e+0.0001);else if(e>eo) s=-0.85*fc*(2*e/eo-(e/eo)*(e/eo));else if(e>eu) s=-0.85*fc*(1-100*(eo-e));else s=0.0;ffc=ffc+s*b*(h/sn); /*将每一条带中心的混凝土受力叠加求合力*/mic=mic+s*b*z*(h/sn); /*将每一条带中心的混凝土弯矩叠加求合弯矩*/ }//*****Calculate The Force Of Steel*****fs=0.0; /*钢筋合力初值为0.0*/for(k=0;k<2;k++) /*计算截面钢筋的合力和弯矩*/{z=ao[k]-h/2; /*钢筋距上边缘的距离*/e=ee+z*c[j]; /*截面曲率为c[j]时钢筋的应变,其中ee为截面中心的应变,为保证截面合力为0,会做调整*/if(abstr(e)<=esy) s=e*es; /*弹性阶段钢筋应力的计算*/else if(abstr(e)<=esh) s=sign(e)*fy; /*屈服阶段钢筋应力的计算,其中sign是根据应变的符号确定应力符号的函数*/ else s=sign(e)*(fy+0.01*es*(abstr(e)-esh)); /*钢筋硬化后钢筋应力的计算*/if(z<0.0) aas=as1; /*把受压钢筋的截面面积赋给变量aas*/else aas=as; /*把受拉钢筋的截面面积赋给变量aas*/if(abstr(e)>esy) dc=0.0000003; /*钢筋屈服后的曲率增量*/fs=fs+s*aas; /*截面钢筋合力*/mis=mis+s*aas*z; /*截面钢筋合弯矩*/}if(ii==1) /*从此处到计算mm之前,是在计算判断赋给截面中心应变的增量是多少时,截面的合力接近0*/{sf1=ffc+fs; /*截面合力*/ee=ee+de; /*第一次计算截面内力后给ee一个增量,然后再次计算得到截面内力,用两次的计算结果计算ee的合理增量*/em=de; /*把初定的变量de赋给em,参与后边的计算*/}else{sf2=ffc+fs; /*用ee+de计算的截面合力*/dsf=sf2-sf1; /*两次计算的截面合力差*/em=-sf2*em/dsf; /*计算合理的ee增量,也就是使截面合力趋近0时的ee增量*/ if(em==0.0) em=de; /*如果计算的增量为0, 则第一次赋给ee的增量是合理的*/ee=ee+em; /*计算合理的截面中心处的应变*/sf1=sf2; /*将最后一次计算的合力sf2赋给上一次计算的合力sf1*/}mm=mic+mis; /*截面合弯矩*/}while(abstr(sf2)>=0.1); /*当截面合力的误差大于0.1时重新再次计算截面的合力*/if(e>esy){if(j<jmax1) jmax1=j; /*如果在曲率增加次数小于500并且底部受拉钢筋屈服时,将曲率增加次数赋给jmax1*/}etop=ee-(h/2-hn/2)*c[j]; /*顶部条带中心的最大应变*/m[j]=mm; /*把合弯矩赋给数组m[j]*/if(m[j]>=mi) /*如果弯矩一直增大,则把弯矩赋给m[i],用于下一次比较,同时将j赋给jmax2*/{mi=m[j];jmax2=j;}}while(etop>=1.2*eu); /*顶部应变的代数值不小于1.2*eu时,增加曲率,进行下一次计算*/jmax3=j; /*曲率增加的总次数j赋给jmax3*///*****Put Out The Answer of Moment And Curvature*****//file2=fopen("out1.dat","w");for(j=0;j<=jmax3;j++) /*打印计算出的弯矩和对应的曲率*/ {fprintf(file2,"%18.8g,%18.8g\n",c[j],m[j]);}fclose(file2);if(st==1) lp=0.35*h; /*钢筋类型为1时,塑性铰一半的长度*/if(st==2) lp=0.5*h; /*钢筋类型为2时,塑性铰一半的长度*/tan=m[jmax1]/c[jmax1]; /*弯矩曲率图斜率*/da=a/ln; /*长度为a的梁分成ln段后每段的长度*/dc=0.00000022; /*计算荷载-挠度关系时的曲率增量*/j=0;do{cc=cc+dc;j=j+1;if(cc<=c[jmax1]) /*截面计算曲率小于钢筋屈服前的曲率时,计算作用的荷载及相应截面的挠度*/{i=-1;do /*当满足条件i<=jmax1+1时计算曲率对应的弯矩*/{i++;if((c[i]<=cc)&&(cc>c[i+1])) /*判断截面计算曲率在已经求出的曲率列表中的位置*/ mm=m[i]+((cc-c[i])*(m[i+1]-m[i]))/(c[i+1]-c[i]); /*假设弯矩曲率在相邻值间是线性变化的,求该曲率对应的弯矩*/ }while(i<=jmax1+1); /*此条件表示的意思是弯矩曲率关系要是处在弹性阶段的关系*/r=mm/a; /*计算支座反力*/p[j]=(mm*l)/(a*(l-a)); /*根据合弯矩计算作用的集中荷载*/for(n=1;n<=ln;n++) /*采用共轭梁法计算挠度*/{mom[n]=r*n*da; /*当计算长度为n*da时,计算截面的弯矩*/jj=-1;do /*当计算长度为n*da时,计算截面的曲率*/{jj++;if((m[jj]<=mom[n])&&(mom[n]<m[jj+1])) /*判断计算截面的弯矩在弯矩列表中的位置*/ coc[n]=c[jj]+((mom[n]-m[jj])*(c[jj+1]-c[jj]))/(m[jj+1]-m[jj]); /*计算截面的曲率*/}while(jj<jmax1); /*此条件表示的意思是弯矩曲率关系要是处在弹性阶段的关系*/dd=coc[n]*da*(n*da-da/2); /*共轭梁法计算计算截面的挠度*d[j]=d[j]+dd; /*挠度叠加后写到挠度数组中*/}}else if(cc<=c[jmax2]) /*截面计算曲率小于钢筋最大应变曲率时,计算作用的荷载及相应截面的挠度*/{dsn=0.0; /*定义dsn初始等于0*/i=-1;do /*当满足条件i<=jmax1+1时计算曲率对应的弯矩*/{i++;if((c[i]<=cc)&&(cc<c[i+1])) /*判断截面计算曲率在已经求出的曲率列表中的位置*/ mm=m[i]+(cc-c[i])*(m[i+1]-m[i])/(c[i+1]-c[i]);/*假设弯矩曲率在相邻值间是线性变化的,求该曲率对应的弯矩*/}while(i<=jmax2+1); /*此条件表示的意思是此时已经出现塑性铰,但是力还处于上升阶段*/r=mm/a; /*计算支座反力*/p[j]=(mm*l)/(a*(l-a)); /*根据合弯矩计算作用的集中荷载*/da=(a-lp)/ln; /*减去塑性铰的一半以后a长度上的每一小段的长度*/ for(n=1;n<=ln;n++) /*采用共轭梁法计算挠度*/{mom[n]=r*n*da; /*当计算长度为n*da时,计算截面的弯矩*/for(jj=0;jj<=jmax2;jj++) /*计算除了塑性铰区域后的挠度*/{if((m[jj]<=mom[n]&&mom[n]<m[jj+1])) /*判断计算截面的弯矩在弯矩列表中的位置*/coc[n]=c[jj]+((mom[n]-m[jj])*(c[jj+1]-c[jj]))/(m[jj+1]-m[jj]); /*计算截面的曲率*/ }dd=coc[n]*da*(n*da-da/2); /*共轭梁法计算计算截面的挠度*/dsn=dsn+dd; /*挠度叠加后得到最后值即为除塑性铰区域的挠度*/ }mo=r*a; /*截面弯矩*/for(jj=jmax1;jj<=jmax2;jj++) /*计算塑性铰区域的挠度*/{if((m[jj]<=mo)&&(mo<m[jj+1])) /*判断计算截面的弯矩在弯矩列表中的位置*/co=c[jj]+((mo-m[jj])*(c[jj+1]-c[jj]))/m[jj+1]-m[jj]; /*计算截面的曲率*/ }dl=co*lp*(a-lp/2); /*塑性铰区域的挠度,原代码为aa有误*/d[j]=dsn+dl; /*塑性铰区域和非塑性铰区域挠度的叠加*/}else{dsn=0.0; /*定义初始值为0*/i=-1;do /*计算到了下降段以后的弯矩挠度*/{i++;if((c[i]<=cc)&&(cc<c[i+1]))/*判断计算截面的曲率在曲率列表中的位置*/mm=m[i]+((cc-c[i])*(m[i+1]-m[i]))/(c[i+1]-c[i]); /*计算截面的弯矩*/}while(i<jmax3); /*此条件表示的意思是混凝土到了下降段*/r=mm/a;p[j]=(mm*l)/(a*(1-a));dp=p[j-1]-p[j];da=(a-lp)/ln;for(n=1;n<ln;n++){mom[n]=dp*n*da; /*次阶段跟上阶段意思一样*/coc[n]=mom[n]/tan;dd=coc[n]*da*(n*da-da/2);dsn=dsn+dd;}dl=dc*lp*(a-lp/2);d[j]=d[j-1]-dsn+dl; /*计算此阶段的挠度总值*/}}while(cc<=c[jmax3]);file3=fopen("out2.dat","w");/*以写的方式打开out2.dat*/for(j=0;j<jmax3;j++){fprintf(file3,"%15.4f,%15.4f\n",d[j],p[j]); /*打印d[j],p[j]*/}}int sign(float num){int q;if(num<0.0)q=-1;if(num>=0.0)q=1; /*定义sign*/ return q;}floatabstr(float x){if(x>=0)x=x;else x=-x; /*定义abstr*/ return x;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习1:
钢筋混凝土矩形截面:b=300mm,h=600mm,h0=560mm,a s’=25mm,a s=40mm,A s’=157mm2,A s=804mm2,f y’=280MPa,f y=280MPa,E s=200GPa,E c=25.5GPa,f c=13.4MPa,f t=1.54MPa,ε0=0.002,εcu=0.0038,εs u≤10%=0.10。
.
利用数值方法计算截面的M~Φ关系,并附简化计算结果M u。
2Φ10
h=600mm
4Φ16
将程序计算出的结果导入excel生成如下表格:
图1.纯弯构件截面曲率phi随弯矩M加载曲线
图2.纯弯构件截面受压区高度x0随弯矩M加载曲线
纯弯构件M-phi曲线数值分析程序(C++)
#i#include<iostream>
#include<math.h>
#include<fstream>
#include<iomanip>
using namespace std;
int main()
{cout<<"设计中As=804mm2,As'=157mm2,fy=280MPa,fy'=280MPa,Es=200GPa,Ec=25.5GPa"<<endl;
cout<<endl;
cout<<" fc=13.4MPa,ft=1.54MPaε0=0.002,εcu=0.0038,εsu<=0.1"<<endl;
cout<<endl;//给出题目的基本信息
inti;
double b,h,as0,as1,x0,c,t,p1,p2,p3,h0,x01,x02,d,f;
double k,k1,k2,ms0,ms1,mc,f1,f2,M,sc,m1,m2,m3,mc1,e1,sc1,sc2,q;
ofstreamoutfile;
b=300;h=600;as0=40;as1=40;
h0=h-as0;
//给出题目相关参数
outfile.open("data.txt");//建立数据输出文件
for(mc=0.00000001;mc<=0.0038;mc=mc+0.00001)
{
x01=0.0;x02=600.0;
for(x0=0;;)
{x0=0.5*(x01+x02);
ms1=mc/x0*(x0-25);ms0=mc/x0*(h0-x0 );//求出钢筋应变
f2=200*ms1*1000;//受压区钢筋应力
f1=200*ms0*1000;//受拉区钢筋应力
if(f1>280)
{ f1=280;}
if(f1<-280)
{f2=-280;}
if(f2>280)
{f2=280;}//εsu<=0.1是达不到的,必定小于0.1
p1=0.0;m1=0.0; p2=0.0;m2=0.0;p3=0.0;m3=0.0;
for( i=0;i<=1000;i++)
{sc=mc*(i+0.5)/1000;
if(sc<0.002)
{k=13.4*(1000*sc-sc*sc/0.000004);}
if(sc>=0.002&&sc<=0.0038)
{k=13.4;}
p1=p1+k*300*x0/1000;
m1=m1+k*300*x0/1000*(x0*(i+0.5)/1000);}//受压区混凝土
mc1=(600-x0)*mc/x0;e1=1.54/25.5/1000;//对受拉区最下缘做出判断的两个数据
if(mc1<=e1)//未开裂情况下受拉区混凝土,f2受压区钢筋f1受拉区钢筋
{d=600-x0;
for(int j=0;j<=1000;j++)
{sc1=mc1*(j+0.5)/1000;
k1=25.5*sc1*1000;
p2=p2+k1*300*d/1000;
m2=m2+k1*300*d/1000*(d*(j+0.5)/1000);}
t=f1*804+p2;c=f2*157+p1;//此种情况下全结构的压力C和拉力T
M=m1+f2*157*(x0-25)+m2+f1*804*(560-x0);//此种情况下的弯矩
}
if(mc1>=e1)//开裂情况下的受拉区混凝土,f2受压区钢筋f1受拉区钢筋
{d=e1*x0/mc;
for(int r=0;r<=1000;r++)
{sc2=e1*(r+0.5)/1000;
k2=25.5*sc2*1000;
p3=p3+k2*300*d/1000;
m3=m3+k2*300*d/1000*(d*(r+0.5)/1000);}
t=f1*804+p3;c=f2*157+p1;//此种情况下全结构的压力C和拉力T
M=m1+f2*157*(x0-25)+m3+f1*804*(h0-x0);}//此种情况下的弯矩
f=(c-t)/c;q=mc/x0;//f为压力和拉力之间的误差比,q为曲率
if(fabs(f)<0.01)
{outfile<<setw(10)<<q<<endl;x0=300;break;}//输出相关数据etw(10)<<x0<< else
if(t<c)//二分法作判断,对x0做循环判断
{ x02=x0;x01=x01;}
else
{ x01=x0;x02=x02;}}}
outfile.close();
system("pause");
return 0;
//程序结束}
}。