一种钢筋下料方法
发布时间: 2022-03-17
来源: 试点城市(园区)
基本信息
技术领域
本发明涉及一种钢筋下料方法,属于土木工程技术领域。
背景技术
对于一个10万方的土建项目,以一般3%的浪费率计,还不包括人工成本,整个项目的成本浪费100万左右。因而,建立合理的数学模型,优化出合理的钢筋下料清单和切割方法,对节省项目成本意义重大。
另外,在钢筋优化计算过程中,焊接节点在梁跨中一直是难以解决的问题,即使能给出梁跨中约束条件,通常也由于条件复杂难以得到问题的最优解。
为此,提出一种浪费率更低的钢筋下料的优化方法,有着十分显著的经济和社会效益。
钢筋工程中,通常采用运筹学方法建模优化,获得最优的钢筋下料清单和切割方法。以钢筋浪费最小为目标函数,以原材料钢筋的切割和焊接方式组成待下料钢筋,优化出了钢筋下料清单和钢筋切割方法,这一方法有效减少了材料的浪费,但是,该方法没有控制焊点出现的位置,因为钢筋工程规范规定,焊点不能位于某些构件的跨中区域,在模型中没有考虑这一硬性规定,导致其计算结果必须结合施工现状进行微调,该模型的不足使得它在推广使用中受到很大阻碍。为了克服上述问题,通过追加约束条件,将每节钢筋的取值限制在非跨中区间,确保了下料结果严格遵循规范要求,添加约束条件很好解决了这一问题。但是,该模型仅考虑了项目的材料成本,没有考虑人工成本。钢筋工程成本不仅包括材料成本,还包括焊接和切割所需的人工成本,在采用数学模型优化材料成本后,在获得钢筋切割方法和下料清单前,他们优化焊点数量,从而减小焊接和切割产生的人工成本。事实上,材料成本和人工成本在钢筋工程中是一对相互矛盾的因素,降低材料,可能导致人工成本升高,减少人工成本,或者说降低焊接和切割次数,同时将增加材料成本,单独考虑材料成本和人工成本,得到的钢筋工程项目的总成本显然不会最小。随后研究也通过多目标规划研究了下料问题。但是在多目标规划中,权值的选取有些经验成分,且不同项目中权值的选取有很大主观性。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种钢筋下料方法,能够显著降低材料成本及人工成本。
为达到上述目的,本发明是采用下述技术方案实现的:一种钢筋下料方法,所述方法包括如下步骤:
采集待下料钢筋长度及原材料钢筋长度,将待下料钢筋长度与原材料钢筋长度进行逐一比较:
情形1:若待下料钢筋长度不大于原材料钢筋长度,且切割后剩余原材料钢筋的长度小于等于设定阈值,则输出待下料钢筋与原材料钢筋的匹配结果;
情形2:对于根据情形1未能匹配下料的待下料钢筋,采用下述方法进行组合下料:
以组合切割后剩余原材料钢筋的长度最小且小于等于设定阈值为目标,构建形如AeqX=Beq的数学矩阵模型;其中:Aeq是考虑焊接节点损失根据原材料钢筋长度构建的矩阵,X是由组合切割后剩余原材料钢筋的长度最小值及表征原材料钢筋是否参与组合下料的逻辑向量构成的矩阵,Beq是考虑焊接节点损失根据待下料钢筋长度构建的矩阵;
利用matlab中的intlinprog函数求解X,获取相应的原材料钢筋下料组合,输出待下料钢筋和对应的原材料钢筋下料组合结果;
情形3:对于根据情形1和2均未能匹配下料的待下料钢筋,采用下述方法进行组合下料:
首先以切割后剩余待下料钢筋长度最小为目标,构建形如A′eqY=B′eq的数学矩阵模型;其中:A′eq是考虑焊接节点损失根据原材料钢筋长度构建的矩阵,Y是由组合切割后剩余待下料钢筋长度最小值及表征原材料钢筋是否参与组合下料的逻辑向量构成的矩阵,B′eq是根据待下料钢筋长度构建的矩阵;
利用matlab中的intlinprog函数求解Y,获取相应的原材料钢筋下料组合;并判断焊接节点是否在梁跨中:若不存在焊点在梁跨中问题,则输出待下料钢筋和对应的原材料钢筋下料组合结果,否则,下料结果无效,进入下一步;
“以钢筋浪费率最小为目标,以焊接节点不在梁跨中为约束,以每根切割后剩余待下料钢筋最多由两节钢筋组合为硬约束”或者“以钢筋浪费率最小为目标,以每根切割后剩余待下料钢筋仅由一节钢筋组合为硬约束”,采用预建立的相应lingo模型求解切割后剩余待下料钢筋下料组合,输出切割后剩余待下料钢筋和对应的下料组合结果;
其中:切割后剩余待下料钢筋长度=待下料钢筋长度-参与下料组合的原材料钢筋长度+钢筋节点数*s,s表示焊接节点损失。
情形2中求取原材料钢筋下料组合的方法包括如下步骤:
采用待下料钢筋长度除以原材料钢筋中最小值,向上取整数,即为每种长度原材料钢筋在本次计算中参与下料组合的最大可能根数M;
对于每种原材料钢筋长度,复制M个,并分别减去焊接节点损失,构建行向量,并在行向量最后一列增加元素-1,即为向量Aeq,
式中:p表示当前情形下原材料钢筋的长度种类总量;A1、A2……Ap分别用于表示p种长度的原材料钢筋长度;
以原材料钢筋是否参与钢筋组合下料作为列向量,并将组合切割后剩余原材料钢筋长度的最小值作为最后一行,构建列向量X,
X=[x1 x2 … xp*M xp*M+1]T
式中:x1、x2……xp*M的取值为1或0:取值为1时表示Aeq中对应原材料钢筋参与下料组合;取值为0时表示Aeq中对应原材料钢筋不参与下料组合;xp*M+1表示组合切割后剩余原材料钢筋长度的最小值;
以待下料钢筋长度减去焊接节点损失构建Beq向量,Beq=B-s,式中B表示待下料钢筋长度;
根据AeqX=Beq,采用matlab中的intlinprog函数计算列向量X,根据列向量X输出原材料钢筋下料组合结果。
情形3中通过构建数学矩阵模型,求取原材料钢筋下料组合的方法包括如下步骤:
采用待下料钢筋长度除以原材料钢筋中最小值,向下取整数,即为每种原材料钢筋在本次计算中参与下料组合的最大可能根数N;
对于每种原材料钢筋长度,复制N个,并分别减去焊接节点损失,构建行向量,并在行向量最后一列增加元素1,即为向量A′eq,
式中:q表示当前情形下原材料钢筋的长度种类总量;A′1、A′2……A′q分别用于表示q种长度的原材料钢筋长度;
以原材料钢筋是否参与钢筋组合下料作为列向量,并将组合切割后剩余待下料钢筋长度最小值作为最后一行,构建列向量Y,
Y=[y1 y2 … yq*N yq*N+1]T
式中:y1、y2……yq*N的取值为1或0:取值为1时表示A′eq中对应原材料钢筋参与下料组合;取值为0时表示A′eq中对应原材料钢筋不参与下料组合;yq*N+1表示组合切割后剩余待下料钢筋长度最小值,yq*N+1≥35d+s;d表示原材料钢筋直径;
以待下料钢筋长度作为B′eq向量;
根据A′eqY=B′eq,采用matlab中的intlinprog函数计算列向量Y,根据列向量Y输出原材料钢筋下料组合结果。
情形3中采用lingo模型求解切割后剩余待下料钢筋下料组合的方法包括如下步骤:
根据预设拆分阈值对切割后剩余待下料钢筋进行拆分;
情形301:对于“切割后剩余待下料钢筋长度≥预设拆分阈值”的切割后剩余待下料钢筋,以钢筋浪费率最小为目标,以焊接节点不在梁跨中为约束,以每根切割后剩余待下料钢筋最多由两节钢筋组合为硬约束,利用相应的lingo模型求解切割后剩余待下料钢筋的下料组合,输出切割后剩余待下料钢筋和对应的下料组合结果;
情形302:对于“切割后剩余待下料钢筋长度<预设拆分阈值”的切割后剩余待下料钢筋,以钢筋浪费率最小为目标,以每根切割后剩余待下料钢筋仅由一节钢筋组合为硬约束,利用相应的lingo模型求解切割后剩余待下料钢筋的下料组合,输出切割后剩余待下料钢筋和对应的下料组合结果;
所述预设拆分阈值>2(35d+s),d表示原材料钢筋直径。
判别焊接节点是否位于梁跨中的方法包括:
计算原材料钢筋下料组合结果所包含的原材料钢筋节数;
对于钢筋节数大于10的原材料钢筋下料组合结果:
提取前10个元素并进行全排列;
在每一排列的末尾加入未被提取的剩余元素,构成10!个排列组合;
考虑焊接节点损失,判断10!个排列组合中是否存在某一排列组合满足所有焊接节点均不位于梁跨中情形:
如果存在,则利用该排列组合替换该原材料钢筋下料组合结果;
否则,从第二个元素开始重新提取前10个元素,并进行全排列,在每一个排列的末尾加入剩余元素,构成新的10!个排列组合,判断新的10!个排列组合中是否存在某一排列组合满足所有焊接节点均不位于梁跨中情形,依此类推,直至完成所有排列组合的判断;
如果所有排列组合均存在焊接节点在梁跨中情形,则表明该梁的钢筋焊接中存在焊接节点在梁跨中;
对于钢筋节数小于等于10的原材料钢筋下料组合结果:直接进行全排列计算,判断是否存在某一排列满足所有焊接节点都不在梁跨中情形:如果存在,则利用该排列组合替换该原材料钢筋下料组合结果;否则,表明该梁的钢筋焊接中存在焊接节点在梁跨中。
情形301中所建立非线性lingo模型具体如下:
0≤Tj≤1
Xij=KijYij+(1-Kij)Zij
Kij=0或1
或Zij=0
Xij表示第j根原材料钢筋在第i根切割后剩余待下料钢筋中所使用的长度比值;Yij表示第j根原材料钢筋在第i根切割后剩余待下料钢筋中使用的比值;Zij表示第i根切割后剩余待下料钢筋的第一节钢筋与第j根原材料钢筋的长度比值;Tj表示第j根原材料钢筋被使用的比例;Pj表示第j根原材料钢筋长度;Q(i)表示第i根切割后剩余待下料钢筋长度;m表示原材料钢筋的总根数;n表示切割后剩余待下料钢筋的总根数;H表示梁高;Kij是0、1变量;d表示原材料钢筋直径。
情形302所建立非线性lingo模型具体如下:
0≤Tj≤1
(35d+s)/Pj≤Xij≤1或Xij=0
式中:Xij表示第j根原材料钢筋在第i根切割后剩余待下料钢筋中所使用的长度比值;Tj表示第j根原材料钢筋被使用的比例;Pj表示第j根原材料钢筋长度;Q(i)表示第i根切割后剩余待下料钢筋长度;m表示原材料钢筋的总根数;n表示切割后剩余待下料钢筋的总根数;d表示原材料钢筋直径。
情形301中建立非线性lingo模型前应当做如下处理:
统计“切割后剩余待下料钢筋长度≥预设拆分阈值”的切割后剩余待下料钢筋中所包含的切割后剩余待下料钢筋长度及其对应的钢筋数量;
将原材料钢筋长度和上述切割后剩余待下料钢筋长度保存至同一个excel文件中的两列,并各自按降序排列;
将保存有原材料钢筋长度和切割后剩余待下料钢筋长度的excel文件切分为若干子文件,要求:每个子文件包含50~60条切割后剩余待下料钢筋长度数据,每个子文件中原材料钢筋长度总和与切割后剩余待下料钢筋长度总和之差小于等于10。
情形302中建立非线性lingo模型前应当做如下处理:
统计“切割后剩余待下料钢筋长度<预设拆分阈值”的切割后剩余待下料钢筋中所包含的切割后剩余待下料钢筋长度及其对应的钢筋数量;
将原材料钢筋和切割后剩余待下料钢筋保存至同一个excel文件中;
将所述excel文件拆分成若干子文件,要求:每个子文件包含50~60条切割后剩余待下料钢筋长度数据;
用切割后剩余待下料钢筋对应的钢筋数量除以所述子文件数,获得每一种切割后剩余待下料钢筋在子文件中应分得钢筋数量;对除不尽的情况,将余数部分分给最后一个子文件。
所述设定阈值为w%*待下料钢筋长度、35d+s、***三个数值中的最小值,三个数值的单位均为米,其中w%为初步估算的钢筋浪费率,d为原材料钢筋直径。
与现有技术相比,本发明所达到的有益效果是:考虑了切割后剩余原材料钢筋长度、钢筋浪费率、梁跨中等多个问题,能够最大限度利用整根钢筋,显著减少了切割次数及焊接次数,降低了人工成本;能够充分利用切割后剩余原材料钢筋,显著节约材料成本。