特色技术

专业从事预应力结构体系的设计、施工一体化解决方案

资讯分类

如何合理的比较两个数值的大小

  • 分类:程序技术
  • 作者:
  • 来源:
  • 发布时间:2016-03-16 01:50
  • 访问量:

【概要描述】在一般常识中,比较两个数的大小毋庸置疑是一个很简单的问题,但是在结构内力包络图形成过程中,如何合理地比较两个数的大小,却成为一个话题。  首先,并不是截面内力越大,就会导致配筋越大,譬如在大偏心受压构件中(如图一所示),轴力越大,则配筋越小。其次,并不是一种内力包络图就可以解决配筋问题,如在大偏心受压构件中,不可以单纯地选取构件的最大弯矩和最大轴力来配筋,这样的截面配筋将是不安全的,而应该选取在弯

如何合理的比较两个数值的大小

【概要描述】在一般常识中,比较两个数的大小毋庸置疑是一个很简单的问题,但是在结构内力包络图形成过程中,如何合理地比较两个数的大小,却成为一个话题。  首先,并不是截面内力越大,就会导致配筋越大,譬如在大偏心受压构件中(如图一所示),轴力越大,则配筋越小。其次,并不是一种内力包络图就可以解决配筋问题,如在大偏心受压构件中,不可以单纯地选取构件的最大弯矩和最大轴力来配筋,这样的截面配筋将是不安全的,而应该选取在弯

  • 分类:程序技术
  • 作者:
  • 来源:
  • 发布时间:2016-03-16 01:50
  • 访问量:
详情

  在一般常识中,比较两个数的大小毋庸置疑是一个很简单的问题,但是在结构内力包络图形成过程中,如何合理地比较两个数的大小,却成为一个话题。

  首先,并不是截面内力越大,就会导致配筋越大,譬如在大偏心受压构件中(如图一所示),轴力越大,则配筋越小。其次,并不是一种内力包络图就可以解决配筋问题,如在大偏心受压构件中,不可以单纯地选取构件的最大弯矩和最大轴力来配筋,这样的截面配筋将是不安全的,而应该选取在弯矩最大的包络组合情形下的轴力值,和轴力最小的包络组合情形下的弯矩值,两者配筋结果取大值来确定最终配筋。即:内力包络图与配筋包络图并不是一一对应的关系,而是多个内力包络图所对应的多个其它内力组合最终计算出的配筋包络的结果,即内力包络图与配筋包络图是多对一的关系。

图一、大偏压构件N—M相关曲线

  发现问题的复杂性了,那么我们如何在程序中考虑这个问题呢。很显然,简单地套用C++程序的min和max库函数是不适用了,必须设计一个函数参数来指定是哪一个值会被包络取用。然后利用该参数去选取其它的内力。函数设计如下:

  Float minf(float f1,float f2,int loc)

  {

  if(f1<f2)

  {

  loc=0;

  returnf1;

  }

  loc=1;

  returnf2;

  }

  Float maxf(float f1,float f2,int loc)

  {

  if(f1<f2)

  {

  loc=1;

  returnf2;

  }

  loc=0;

  returnf1;

  }

  其中,loc=0就表示选取了0位置的参数f1,loc=1表示选取了1位置的参数f2。

  接着设计一个包络函数Env如下:

  float Env(float f1,float f2,bool et,intloc)

  {

  floatf=minf(f1,f2,loc);

  if(et==false)

  {

  if(f>0)

  {

  loc=2;

  return0;

  }

  else

  {

  returnf;

  }

  }

  f=maxf(f1,f2,loc);

  if(f<0)

  {

  loc=2;

  return0;

  }

  else

  {

  returnf;

  }

  }

  程序说明:当loc=2时,表示该位置处于包络计算内力的反方向,不需要考虑其内力,该位置的内力由相反包络组合结果得到。

  以上三个简单的函数可以很好地解决内力包络的问题,在我公司开发的safe有限元后处理程序中就运用了该技术,利用C++与ObjectArx来对Autocad进行编程,并采用MFC的对话框技术,可以得到板带的内力组合,如某个项目的内力包络组合如下图所示:

图2、开来预应力后处理程序对话框

图三、板带CSA1弯矩包络图

图四、板带CSA1弯矩包络图对应的轴力图

扫二维码用手机看