- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
先说这个背景知识,GDPS 93是基于更老的版本,好像是1972和1981版本,重新修订编写的。这个美标的路面结构设计方法属于半经验半理论性质。
在1950s年代联邦公路局开展了大规模的真实试验,来研究该如何设计路面结构。简单地说就是修了一条环形路,找很多大卡车,各种不同的载重,在上面反复跑、反复碾压,碾压了好几年,然后监测路面的沉降和破损情况.
最后总结出一条经验:大卡车越重,碾压的次数越多,路面破的越狠,是不是很简单的道理?
厉害的是,这帮科学家总结了一个公式,用来描述碾压次数和路面状态的函数关系:
然后里面的SN是这样来的:
后来,,很多国家没钱做环路,没钱重复这么费事费力的试验,就直接用美国的标准了。我们要说的,也就是这个公式的求解问题。
那个长长的公式里面,
参数ΔPSI叫服务水平损失;
Zr和S0都是统计学参数,不会随着开车爽不爽而变化。
Mr是路基回弹模量。
W18是标准轴载次数,一个轴18千磅,大概是8.16吨碾压一次。
然后关系式就是 Log(W18)= 右边一大坨
设计的时候,我们通常是通过交通量调查和评估,推算出设计年限内的W18有多少,比如2000万次;
然后估计一个路基的模量,比如5000磅/平方英寸;
然后根据开车时爽不爽(业主或规范指定),确定ΔPSI,通常是3左右;
然后,用公式算出来SN是多少。
然后,再根据SN=a1d1m1+a2d2m2+a3d3m3来设计面层d1、基层d2、底基层d3的厚度。这样结构就算完了,是不是很easy。
(a1,a2 a3 m都是系数,经验值)
现在有个数学问题,SN是个隐函数,就像求解 100=x+log(x)+1/x2的x是多少一样,没有可以直接计算的表达式,除非用excel单变量求解功能。
起初准备找一个数学函数库,用来求解表达式,某大神跟我说小case,用他的python数学库分分钟解决,结果呵呵哒了,最后搞了好几天还是不能“量产”。还得要掌握国产技术,硬着头皮一个个算,用excel把SN=0.1 算到 SN=10,总有一个SN让公式两边最接近。结果发现,SN和Log(W18)是单调函数关系,一个W18对应一个SN。
编程暴力求解是可以的,如下:
PublicFunctionBackCalSN(ByRef W18 As Double ByRef Mr As Double ByRef Zr As Double ByRef So As Double ByRef DPSI As Double Optional ByRef Accurate As Double = 0.0001 Optional ByRef CalCounts As Double = 1 Optional ByRef W As Double = 1)
DimSNAsDoubleSN = 4 先从SN=4开始
DimfmAsNewForm1
DimtempAsDouble
DimflagAsDouble
DimdiffAsDouble
Dimtemp2AsDouble
DimiAsDouble 随意计算一个等式右边的
temp=W18temp = Zr * So + 9.36 * Log10(SN + 1) - 0.2 + (Log10(DPSI / 2.7)) / (0.4 + 1094 / (SN + 1) ^ 5.19) + 2.32 * Log10(Mr) - 8.07 - Log10(W18)
SN = SN + 0.1 把SN变大一点点,再计算一个temp2temp2 = Zr * So + 9.36 * Log10(SN + 1) - 0.2 + (Log10(DPSI / 2.7)) / (0.4 + 1094 / (SN + 1) ^ 5.19) + 2.32 * Log10(Mr) - 8.07 - Log10(W18) 这时候,对比两个temp的大小关系,看函数是单调递增还是递减
IfMath.Abs(temp) - Math.Abs(temp2) 0 Then
flag = 1 函数递减?OK那就FLAG=1
Else
flag = -1
EndIf
diff = temp / Log10(W18)开始暴力计算,直到误差diff小于指定的精度Accurate,比如0.00001
DoUntilMath.Abs(diff) = Accurate
i = i + 1
SN = SN + flag * 0.001 每次让SN变化0.001,逼近W18
diff = (Zr * So + 9.36 * Log10(SN + 1) -
原创力文档


文档评论(0)