文档库 最新最全的文档下载
当前位置:文档库 › 基于ArcPy的RUSLE模型LS因子计算

基于ArcPy的RUSLE模型LS因子计算

基于ArcPy的RUSLE模型LS因子计算
基于ArcPy的RUSLE模型LS因子计算

基于ArcPy的RUSLE模型LS因子计算(From AMLand arcgisscripting)

半荒漠猪毛菜属

ArcPy 自ArcGIS 10.X后推出,是一个以成功的arcgisscripting 模块为基础并继承了arcgisscripting 功能进而构建而成的站点包,许多函数与类与前版本差异较大。本文参考Hickey(1994)对RUSLE模型LS因子计算的AML代码的基础上,将飞天小组已移植至ArcGIS 9.3平台的python脚本,再次移植至ArcGIS 10.X平台。

程序如下:

import arcpy

from arcpy import*

from arcpy.sa import*

#即不需要arcgisscripting中导入,用arcpy包即可

arcpy.env.workspace="E:\\temp"

dem_input="E:\\temp\\DEM.tif"#输入栅格数据

wshed="E:\\temp\\Boundary.shp"#输入流域边界数据

demunits="meters"

scf_lt5=0.7

scf_ge5=0.5

#定义信息提示函数

def sendmsg(msg):

print msg

arcpy.AddMessage(msg)

#定义一个函数,输入字符型坐标、cellsize、倍数,返回平移后的字符型坐标值,目的为保留原始小数位数不变

def StoS(s,cellsize,mult):

stri=s.split('.')

inte=float(stri[0])+mult*cellsize

return str(int(inte))+'.'+stri[1]

#可覆盖文件

arcpy.env.overwriteOutput =1

#判断输入DEM数据的水平和垂直方向的单位是否一致

if demunits==Noneor demunits.strip()=="":

demunits="meters"

sendmsg("使用默认单位:meters")

elif demunits!="meters"and demunits!="feet":

demunits="meters"

sendmsg(" DEM单位输入有误,使用默认单位meters")

#设置结束/开始坡长累计的中断因子;为小于或大于等于5度的坡设置不同的参数

#输入坡度小于5度时,建议值为0.7,大于等于5度时,建议值为0.5

#scf_lt5,scf_ge5值均需小于1.1,否则赋予默认值

if scf_lt5>=1.1:

scf_lt5=0.7

if scf_ge5>=1.1:

scf_ge5=0.5

else:

if scf_ge5>=1.1:

scf_ge5=0.5

sendmsg(str(scf_lt5)+","+str(scf_ge5))

#通过Describe方法获取输入DEM数据的范围和分辨率大小

dem_des=arcpy.Describe(dem_input)

cell_W=dem_des.MeanCellWidth

cell_H=dem_des.MeanCellHeight

cell_size=max(cell_W,cell_H)

cell_size=max(cell_W,cell_H)#如果格网高宽不一样,取最大值

#定义一个函数,输入字符型坐标、cellsize、倍数,返回平移后的字符型坐标值,目的为保留原始小数位数不变

extent=dem_des.extent

extent_buf=StoS(str(extent.XMin),cell_size,-1)+"

"+StoS(str(extent.YMin),cell_size,-1)+"

"+StoS(str(extent.XMax),cell_size,1)+" "+StoS(str(extent.YMax)

,cell_size,1)

sendmsg("做一个格网缓冲后的范围"+extent_buf)

sendmsg("创建填充DEM——dem_fill")

#检查Spatial工具权限,很重要的一步

arcpy.CheckOutExtension("Spatial")

#arcpy.Fill_sa(dem_input,"dem_fill")

#使用Hickey对ArcGIS自带Fill功能的修改构建填充DEM;本算法使用一个格网的圆环用于单个洼地格网,用八邻域格网的最小值应用于洼地格网

arcpy.Extent="MAXOF"

arcpy.Extent=extent

arcpy.CellSize=cell_size

arcpy.CopyRaster_management(dem_input,"dem_fill2.tif")

dem_flow=FocalFlow("dem_fill2.tif")

dem_flow.save("dem_flow.tif")

dem_fill=Con("dem_flow"==255, FocalStatistics("dem_fill2.tif", NbrAnnulus(1,1,"CELL"),"MINORITY"),"dem_fill2.tif")

dem_fill.save("dem_fill.tif")#用八邻域格网的最小值应用于洼地格网

sendmsg("根据八邻域格网值创建每个格网的流入或流出方向")

flowdir_in = FocalFlow("dem_fill.tif")

flowdir_in.save("flowdir_in.tif")

flowdir_out = FlowDirection("dem_fill.tif")

flowdir_out.save("flowdir_out.tif")

#重新设置Environment的Extent为扩充一个格网大小的范围

arcpy.Extent="MAXOF"

arcpy.Extent=extent

sendmsg("为dem_fill创建一个格网大小的缓冲")

dem_fill_b =Con(IsNull("dem_fill.tif"),FocalStatistics("dem_fill.tif", NbrAnnulus(1,1,"CELL"),"MINORITY"),"dem_fill.tif")

dem_fill_b.save("dem_fill_b.tif")

#设置直角的和对角线的流向计算时的格网长度

cellorth=1.00*cell_size

celldiag=cell_size*(2**0.5)

#为每个格网计算坡降(downslope)角,修正了以前代码并重新设置平地格网(默认0.0度,即没有流出方向)>0.00并<0.57(inv. tan of 1% gradient);

#建议值0.1;新的假设是所有格网即使实际上是平的比如干湖,都有>0.00的坡度;这保证了所有格网都和流向网络有关,因而可以被赋坡度角和最终的LS因素值,

#然而它需要非常小。

sendmsg("为每个格网计算坡降(downslope)角")

deg=180.0/math.pi

# 使用shift计算不同流向的偏移量

Shift_management("dem_fill_b.tif","dem_fill_b64.tif","0","-"+str(cell _size))

Shift_management("dem_fill_b.tif","dem_fill_b128.tif","-"+str(cell_si ze),"-"+str(cell_size))

Shift_management("dem_fill_b.tif","dem_fill_b1.tif","-"+str(cell_size ),"0")

Shift_management("dem_fill_b.tif","dem_fill_b2.tif","-"+str(cell_size ),str(cell_size))

Shift_management("dem_fill_b.tif","dem_fill_b4.tif","0",str(cell_size ))

Shift_management("dem_fill_b.tif","dem_fill_b8.tif",str(cell_size),st r(cell_size))

Shift_management("dem_fill_b.tif","dem_fill_b16.tif",str(cell_size)," 0")

Shift_management("dem_fill_b.tif","dem_fill_b32.tif",str(cell_size)," -"+str(cell_size))

# 计算每个网格的坡降角

down_slp_ang2 = Con(flowdir_out ==64,

deg*ATan((Raster("dem_fill_b.tif")-Raster("dem_fill_b64.tif"))/cellor th),\

Con(flowdir_out ==128,

deg*ATan((Raster("dem_fill_b.tif")-Raster("dem_fill_b128.tif"))/cello rth),\

Con(flowdir_out ==1,

deg*ATan((Raster("dem_fill_b.tif")-Raster("dem_fill_b1.tif"))/cellort h),\

Con(flowdir_out ==2,

deg*ATan((Raster("dem_fill_b.tif")-Raster("dem_fill_b2.tif"))/cellort h),\

Con(flowdir_out ==4,

deg*ATan((Raster("dem_fill_b.tif")-Raster("dem_fill_b4.tif"))/cellort h),\

Con(flowdir_out ==8,

deg*ATan((Raster("dem_fill_b.tif")-Raster("dem_fill_b8.tif"))/cellort h),\

Con(flowdir_out ==16,

deg*ATan((Raster("dem_fill_b.tif")-Raster("dem_fill_b16.tif"))/cellor th),\

Con(flowdir_out ==32,

deg*ATan((Raster("dem_fill_b.tif")-Raster("dem_fill_b32.tif"))/cellor th)))))))))

down_slp_ang2.save("down_slp_ang2.tif")

#将等于0.0的格网赋值为0.1

down_slp_ang = Con(down_slp_ang2 <=0,0.1, down_slp_ang2)

down_slp_ang.save("down_slp_ang.tif")

#重新设置环境中Extent为原始大小,并裁减downslope格网,重命名为原始名称

arcpy.Extent="MAXOF"

arcpy.Extent=extent

sendmsg("计算每个格网的非累计格网坡长slp_lgth_cell,考虑到直角或对角线流出方向(暂没考虑局部高程点)")

slp_lgth_cell = Con(flowdir_out ==2,celldiag,Con(flowdir_out

==8,celldiag,Con(flowdir_out ==32,celldiag,Con(flowdir_out

==128,celldiag, cellorth))))

slp_lgth_cell.save("slp_lgth_cell.tif")

#再设置环境的Extent为缓冲范围,创建缓冲格网为0的流出方向格网

arcpy.Extent="MAXOF"

arcpy.Extent=extent

flowdir_out_b = Con(IsNull(flowdir_out),0,flowdir_out)

flowdir_out_b.save("flowdir_out_b.tif")

#创建初始每个格网单元的非累计坡长(NCSL),并对flowdir_in和flowdir_out做按位于运算,找到正常的流向格网,

#并设为Nodata,然后计算高点(包括填充的洼地)为1/2*slp_lgth_cell长度。sendmsg("创建初始累计坡长格网slp_lgth_cum")

Shift_management("flowdir_out_b.tif","flowdir_out_b64.tif","0","-"+st r(cell_size))

Shift_management("flowdir_out_b.tif","flowdir_out_b128.tif","-"+str(c ell_size),"-"+str(cell_size))

Shift_management("flowdir_out_b.tif","flowdir_out_b1.tif","-"+str(cel l_size),"0")

Shift_management("flowdir_out_b.tif","flowdir_out_b2.tif","-"+str(cel l_size),str(cell_size))

Shift_management("flowdir_out_b.tif","flowdir_out_b4.tif","0",str(cel l_size))

Shift_management("flowdir_out_b.tif","flowdir_out_b8.tif",str(cell_si ze),str(cell_size))

Shift_management("flowdir_out_b.tif","flowdir_out_b16.tif",str(cell_s ize),"0")

Shift_management("flowdir_out_b.tif","flowdir_out_b32.tif",str(cell_s ize),"-"+str(cell_size))

slp_lgth_cum=Con(BitwiseAnd(flowdir_in,64)&( Raster("flowdir_out_b64. tif")==4),

SetNull(BitwiseAnd(flowdir_in,64)&( Raster("flowdir_out_b64.tif")==4) ,1),

Con(BitwiseAnd(flowdir_in,128)&( Raster("flowdir_out_b128.tif")==8), SetNull(BitwiseAnd(flowdir_in,128)&( Raster("flowdir_out_b128.tif")== 8),1),

Con(BitwiseAnd(flowdir_in,1)&( Raster("flowdir_out_b1.tif")==16),SetN ull(BitwiseAnd(flowdir_in,1)&( Raster("flowdir_out_b1.tif")==16),1), Con(BitwiseAnd(flowdir_in,2)&( Raster("flowdir_out_b2.tif")==32), SetNull(BitwiseAnd(flowdir_in,2)&( Raster("flowdir_out_b2.tif")==32), 1),

Con(BitwiseAnd(flowdir_in,4)&( Raster("flowdir_out_b4.tif")==64), SetNull(BitwiseAnd(flowdir_in,4)&( Raster("flowdir_out_b4.tif")==64), 1),

Con(BitwiseAnd(flowdir_in,8)&( Raster("flowdir_out_b8.tif")==128), SetNull(BitwiseAnd(flowdir_in,8)&( Raster("flowdir_out_b8.tif")==128) ,1),

Con(BitwiseAnd(flowdir_in,16)&( Raster("flowdir_out_b16.tif")==1), SetNull(BitwiseAnd(flowdir_in,16)&( Raster("flowdir_out_b16.tif")==1) ,1),

Con(BitwiseAnd(flowdir_in,32)&( Raster("flowdir_out_b32.tif")==2), SetNull(BitwiseAnd(flowdir_in,32)&( Raster("flowdir_out_b32.tif")==2) ,1),0.5* slp_lgth_cell))))))))

slp_lgth_cum.save("slp_lgth_cum.tif")

#设置起始坡长计算点(高点和填充的洼地)在所有其他格网坡长已经被决定进入每个迭代;

#起始点将有一个等于1/2它们坡长的值;起始点(局部高程点)就是周围没有其他格网单元流入,或有其他单元流入,

#但与入流单元之间坡角为零的格网单元,对应于DEM中的山顶、山脊线上的点及位于DEM边缘

的点,这些点通过水流方向矩阵识别,

#识别的条件是格网单元周边各相邻点的水流方向均不知向该单元;修正了以前的代码,改变了“平地”高点得到一个0~1/2格网坡长的值;

#新的假设是,最小累计坡长是1/2格网坡长,即使是填充洼地和“平地”高点,从而确保每个格网LS因子的值>0.00

sendmsg("设置起始坡长计算点slp_lgth_beg")

slp_lgth_beg = Con(IsNull(slp_lgth_cum), cell_size ,slp_lgth_cum)

slp_lgth_beg.save("slp_lgth_beg.tif")

#指配坡度结束(slope-end)因素在累计坡长结束处;修正了以前的代码中利用RUSLE准则建议的坡度临界5%(2.8624弧度)来区分两个不同的侵蚀/沉积对特别小

#或特别陡的坡度;对<5%使用的参数比>=5%的大;这会使在浅滩处更容易结束侵蚀,开始沉积过程;比如,一个更高的临界值意味着需要更少的坡度降低就可以结束累计。

sendmsg("创建结束坡长累计阈值的格网slp_lgth_fac")

slp_end_fac = Con(down_slp_ang <2.8624, scf_lt5 ,scf_ge5)

slp_end_fac.save("slp_end_fac.tif")

#移除所有任何剩余的方向格网数据(之前运行留下的)

if arcpy.Exists("fromcell_n"):

arcpy.Delete_management("fromcell_n")

if arcpy.Exists("fromcell_ne"):

arcpy.Delete_management("fromcell_ne")

if arcpy.Exists("fromcell_e"):

arcpy.Delete_management("fromcell_e")

if arcpy.Exists("fromcell_se"):

arcpy.Delete_management("fromcell_se")

if arcpy.Exists("fromcell_s"):

arcpy.Delete_management("fromcell_s")

if arcpy.Exists("fromcell_sw"):

arcpy.Delete_management("fromcell_sw")

if arcpy.Exists("fromcell_w"):

arcpy.Delete_management("fromcell_w")

if arcpy.Exists("fromcell_nw"):

arcpy.Delete_management("fromcell_nw")

#修正以前版本代码中创建一系列测试nodata数据来跟踪运行过程;重新设置环境Extent为正常,用dem_fill格网作为掩膜检验缓冲格网

arcpy.Extent="MAXOF"

arcpy.Extent=extent

arcpy.Mask=dem_input

arcpy.CellSize=cell_size

ndcell=1

#修正了以前版本代码中设置迭代中nodata格网为0

arcpy.CopyRaster_management("slp_end_fac.tif","slp_lgth_nd3.tif")

slp_lgth_nd2 = Con(Raster("slp_lgth_nd3.tif")>0,0)

slp_lgth_nd2.save("slp_lgth_nd2.tif")

warn=0

#开始为每个格网计算累计坡长的迭代循环:依据格网单元流向,将流入当前格网单元的上游格网单元非累计坡长进行累加。

#如果当前格网单元的上游单元不知一个,则取当前格网单元上游最大坡长值作为当前格网单元的上游累计坡长。

finished=0

n=1

slp_lgth_cum2=Raster("slp_lgth_cum.tif")

slp_lgth_cum2.save("slp_lgth_cum2.tif")

finished=0

n=1

whilenot finished:

sendmsg("现在开始每个格网坡长计算的第"+str(n)+"次循环!") slp_lgth_prev=Raster("slp_lgth_cum2.tif")

slp_lgth_prev.save("slp_lgth_prev.tif")

count=range(1,9)

for counter in count:

#为不同的条件设置不同的参数值

if counter==1:

dirfrom=4

dirpossto=64

cellcol=0

cellrow=-1

elif counter==2:

fromcell_n=Raster("fromcell_dir.tif")

fromcell_n.save("fromcell_n.tif")

dirfrom=8

dirpossto=128

cellcol=1

cellrow=-1

elif counter==3:

fromcell_ne=Raster("fromcell_dir.tif")

fromcell_ne.save("fromcell_ne.tif")

dirfrom=16

dirpossto=1

cellcol=1

cellrow=0

elif counter==4:

fromcell_e=Raster("fromcell_dir.tif")

fromcell_e.save("fromcell_e.tif")

dirfrom=32

dirpossto=2

cellcol=1

cellrow=1

elif counter==5:

fromcell_se=Raster("fromcell_dir.tif")

fromcell_se.save("fromcell_se.tif")

dirfrom=64

dirpossto=4

cellcol=0

cellrow=1

elif counter==6:

fromcell_s=Raster("fromcell_dir.tif")

fromcell_s.save("fromcell_s.tif")

dirfrom=128

dirpossto=8

cellcol=-1

cellrow=1

elif counter==7:

fromcell_sw=Raster("fromcell_dir.tif")

fromcell_sw.save("fromcell_sw.tif")

dirfrom=1

dirpossto=16

cellcol=-1

cellrow=0

else:

fromcell_w=Raster("fromcell_dir.tif")

fromcell_w.save("fromcell_w.tif")

dirfrom=2

dirpossto=32

cellcol=-1

cellrow=-1

Shift_management("flowdir_out_b.tif","flowdir_out_StoS.tif",-1*ce llcol*cell_size,cell_size*cellrow)

Shift_management("down_slp_ang.tif","down_slp_ang_StoS.tif",-1*ce llcol*cell_size,cell_size*cellrow)

Shift_management("slp_lgth_prev.tif","slp_lgth_prev_StoS.tif",-1* cellcol*cell_size,cell_size*cellrow)

Shift_management("slp_lgth_cell.tif","slp_lgth_cell_StoS.tif",-1* cellcol*cell_size,cell_size*cellrow)

fromcell_dir=Con(~BitwiseAnd(flowdir_in,dirpossto),0,\

Con(Raster("flowdir_out_StoS.tif")!=dirfrom,0,\

Con(Raster("down_slp_ang.tif")

Con(Raster("down_slp_ang.tif")>=Raster("down_slp_ang_StoS.tif")*R aster("slp_end_fac.tif"),Raster("slp_lgth_prev_StoS.tif")+Raster("slp _lgth_cell_StoS.tif"),\

Con(IsNull("slp_lgth_prev_StoS.tif"),SetNull(IsNull("slp_lgth_pre v_StoS.tif"),1),0)))))

fromcell_dir.save("fromcell_dir.tif")

if counter==8:

fromcell_nw=Raster("fromcell_dir.tif")

fromcell_nw.save("fromcell_nw.tif")

#在fromcell各方向中选择最大的累计坡长

slp_lgth_cum2 =

CellStatistics(["fromcell_n.tif","fromcell_ne.tif","fromcell_e.tif"," fromcell_se.tif","fromcell_s.tif","fromcell_sw.tif","fromcell_w.tif", "fromcell_nw.tif","slp_lgth_cum.tif"],"MAXIMUM")

slp_lgth_cum2.save("slp_lgth_cum2.tif")

#检查最后一次循环所有格网都有

try:

nd_chg2_max2=arcpy.GetRasterProperties_management("nd_chg2.tif"," MINIMUM")

ndcell=int(nd_chg2_max2.getOutput(0))

sendmsg(str(nd_chg2_max2))

except:

sendmsg(arcpy.GetMessages(2))

nd2=nd_chg2_max2

if nd2 !=0:

finished=0

warn=1

n=n+1

#将最后一次循环产生的累计格网重命名为max,裁剪后再重命名回去

arcpy.CopyRaster_management("slp_lgth_cum.tif","slp_lgth_max.tif") arcpy.Extent="MAXOF"

arcpy.Extent=extent

if arcpy.Exists("slp_lgth_max2"):

arcpy.Delete_management("slp_lgth_max2")

arcpy.CopyRaster_management("slp_lgth_max.tif","slp_lgth_max2.tif")

#如果有必要的话将坡长单位从meters转换为feet

if arcpy.Exists("slp_lgth_ft"):

arcpy.Delete_management("slp_lgth_ft")

if demunits =="meters":

slp_lgth_ft = Raster("slp_lgth_max.tif")/0.3048

else:

arcpy.CopyRaster_management("slp_lgth_ft,tif","slp_lgth_max.tif") #修正了以前版本中根据细沟/细沟侵蚀率为RUSLE中坡长分配指数;要明确的是草地/森林有低

的敏感度;根据McCool等人准则中表格4-5(1997)。

sendmsg("计算坡度幂指数m_slpexp")

if arcpy.Exists("m_slpexp"):

arcpy.Delete_management("m_slpexp")

m_slpexp=Con(Raster("down_slp_ang.tif")<=0.1,0.01,\

Con((Raster("down_slp_ang.tif")>0.1)&(Raster("down_slp_ang.tif")<0.2) ,0.02,

Con((Raster("down_slp_ang.tif")>=0.2)&(Raster("down_slp_ang.tif")<0.4 ),0.04,

Con((Raster("down_slp_ang.tif")>=0.4)&(Raster("down_slp_ang.tif")<0.8 5),0.08,

Con((Raster("down_slp_ang.tif")>=0.85)&(Raster("down_slp_ang.tif")<1.

4),0.14,

Con((Raster("down_slp_ang.tif")>=1.4)&(Raster("down_slp_ang.tif")<2.0 ),0.18,

Con((Raster("down_slp_ang.tif")>=2.0)&(Raster("down_slp_ang.tif")<2.6 ),0.22,

Con((Raster("down_slp_ang.tif")>=2.6)&(Raster("down_slp_ang.tif")<3.1 ),0.25,

Con((Raster("down_slp_ang.tif")>=3.1)&(Raster("down_slp_ang.tif")<3.7 ),0.28,

Con((Raster("down_slp_ang.tif")>=3.7)&(Raster("down_slp_ang.tif")<5.2 ),0.32,

Con((Raster("down_slp_ang.tif")>=5.2)&(Raster("down_slp_ang.tif")<6.3 ),0.35,

Con((Raster("down_slp_ang.tif")>=6.3)&(Raster("down_slp_ang.tif")<7.4 ),0.37,

Con((Raster("down_slp_ang.tif")>=7.4)&(Raster("down_slp_ang.tif")<8.6 ),0.40,

Con((Raster("down_slp_ang.tif")>=8.6)&(Raster("down_slp_ang.tif")<10.

3),0.41,

Con((Raster("down_slp_ang.tif")>=10.3)&(Raster("down_slp_ang.tif")<12 .9),0.44,

Con((Raster("down_slp_ang.tif")>=12.9)&(Raster("down_slp_ang.tif")<15 .7),0.47,

Con((Raster("down_slp_ang.tif")>=15.7)&(Raster("down_slp_ang.tif")<20 .0),0.49,

Con((Raster("down_slp_ang.tif")>=20.0)&(Raster("down_slp_ang.tif")<25 .8),0.52,

Con((Raster("down_slp_ang.tif")>=25.8)&(Raster("down_slp_ang.tif")<31 .5),0.54,

Con((Raster("down_slp_ang.tif")>=31.5)&(Raster("down_slp_ang.tif")<37 .2),0.55,0.56))))))))))))))))))))

m_slpexp.save("m_slpexp.tif")

#修正了以前版本,计算L因子时,用坡长除以72.6

sendmsg("计算L因子")

if arcpy.Exists(dem_input+"_ruslel"):

arcpy.Delete_management(dem_input+"_ruslel")

dem_input_rusleL = Power(( Raster("slp_lgth_max.tif")/72.6),

Raster("m_slpexp.tif"))

#修正了以前USLE代码,下面开始计算S因子

sendmsg("计算S因子")

if arcpy.Exists(dem_input+"_rusles"):

arcpy.Delete_management(dem_input+"_rusles")

dem_input_rusleS =

Con("down_slp_ang.tif">=5.1428,16.8*(Sin(Raster("down_slp_ang.tif")/ deg))-0.50,10.8*(Sin(Raster("down_slp_ang.tif")/ deg))+0.03)

#将L因子和S因子相乘,得到LS因子的值,然后用流域裁剪之,用.vat完成统计分析;将格网值乘以100以为后面的计算多保留重要的数字。

sendmsg("计算给定流域范围内的LS值")

dem_input_rusleLS = Raster("dem_input_rusleL.tif")*

Raster("dem_input_rusleS.tif")

dem_input_rusleLS_mask = ExtractByMask("dem_input_rusleLS.tif",

mask_shp)

outExtractByMask.save("dem_input_rusleLS_mask.tif")

参考文献:

[1] 飞天小猪. 基于Python脚本语言RUSLE_LS因子计算,2011.( https://www.wendangku.net/doc/ab13454786.html,/p-177914859.html)

[2] Hickey R A, Smith P Jankowski. Slope length calculations from a DEM within ARC/INFO GRID[J].Computers,Environment and Urban Systems,1994,18(5):365-380

(整理)RO技能武器伤害计算公式.

-----------------------基本篇----------------------- HP公式 实际HP=[({35+BaseLv×Job倍率+Job系数×(100 + Vit)/100] + 装备补正)×卡片效果] SP公式 实际SP=[({SP系数×BaseLv+10}×(100+Int)/100] + 装备补正)×卡片效果] HP恢复公式 (忘记了,有待补充) SP恢复公式 7.56-(0.06*INT)秒回复SP1(CRO特有的回复公式,其余服务器不适用) *HPSP药水恢复公式,查阅置顶贴资料合集内道具相关 ASPD公式 Aspd=200-[200-基本Aspd -(200-基本Aspd) * (agi+dex/4) / 250 ]* (1-加速因子的和)) *aspd小数点后一位有效,无需特意追求Aspd凑整,AGI加点可以放宽 加速因子为 速度激发: 0.3 双手剑加速: 0.3 队友激发: 0.2 集中药水: 0.1 觉醒药水: 0.15 波色克药水: 0.2 名刀不知火: 0.08 死灵卡片: 0.1(根据近期的讨论修正为0.1) 命中率公式 自Hit + 80 - 敌Flee=命中率(%) FLEE公式 回避率= 20 + 回避力(Flee) - 敌人命中力(Hit) %(最高95%) 3只以上怪物围攻,每只-10%FLEE ATK计算公式 近战类:Str + (Str/10)^2 + Dex/5 + Luk/5 *这个结果就是空手时候的攻击力,即为基本ATK 弓类:Dex + (Dex/10)^2 + Str/5 + Luk/5 *辫子、乐器与弓类同 *武器有最大和最小浮动,近战武器中武器 MAXATK=基本ATK+(武器ATK*体形修正)+被动技能

医学计算公式

1.体循环阻力: 体循环阻力(dyne×sec)/cm5=80×(MAP-RAP)/C.O. MAP=平均动脉压 RAP=右心房压 C.O.=心输出量 正常值=900-1300(dyne×sec)/ cm5 2.平均动脉压(MAP): MAP(平均动脉压)=舒张压+[1/3(收缩压-舒张压)] 3.心输出量: 心输出量(L/min)= BSA=体表面积(M2) Hb=血红蛋白(g/100ml) SaO2&SvO2=动脉血氧饱和度—静脉血氧饱和度。 心脏指数是心输出量以个体为单位计算的 心脏指数=心输出量/体表面积(L/min/M2) 4.总外周血管阻力: SVR=(平均动脉压-中心静脉压)÷心排出量×80 正常值为100-130kpa.s/L 5.杜克平板测验分数:

杜克平板测验分数= 未出现心绞痛:测试持续时间(min)-5.0×最大ST段下降(mm) 持续心绞痛:测试持续时间(min)-5.0×最大ST段下降(mm)-4.0×1 测试因心绞痛中止:测试持续时间(min)-5.0×最大ST段下降(mm)-4.0×2风险级别: 高风险:杜克平板实验分数<-5 高风险:杜克平板实验分数>10 6.校正的QT间期: 校正的QT间期=测量的QT间期(sec)÷sqrt(R-R间期) 正常值:校正的QT间期不应该超过: 0.45(婴儿<6个月) 0.44(儿童) 0.425(青少年和成人 7.氧供应(DO2): DO2=1.34×[SaO2(动脉血氧饱和度)×Hb(血红蛋白)]×CO×10 8.氧消耗(VO2): VO2=1.34×[(CaO2(动脉血氧含量)×CvO2(静脉血氧含量))×CO×10 CaO2=1.34×SaO2×Hb CvO2=1.34×SvO2×Hb 9.氧耗量(给定心输出量): 氧耗量(ml/min)=心输出量(C.O.)×(13×Hgb)×(SaO2-SvO2) SaO2=动脉血氧饱和度 SvO2=静脉血氧饱和度 正常值=110-160ml/min/M2 若平均体表面积为1.73M2,则正常值=190-275ml/min 10.动脉血CO2分压: PaCO2=0.863×VCO2/VA VCO2为CO2排出量(ml/min) Va为每分钟肺泡通气量(L/min) 0.863为使气体容量(ml)变为Kpa(mmHg)的转换因子 11.动脉血氧分压(PaO2): 坐位:

AGA8—92DC计算方法天然气压缩因子计算(最漂亮的)

AGA8—92DC计算方法天然气压缩因子计算 摘要:按照GB/T 17747.2—1999《天然气压缩因子的计算第2部分:用摩尔组成进行计算》,采用AGA8—92DC计算方法,用VB编程计算了天然气压缩因子。用二分法求解状态方程,精度满足工程需要。 关键词:压缩因子;AGA8—92DC计算方法;二分法 1概述 工作状态下的压缩因子是天然气最重要的物性参数之一,涉及到天然气的勘探、开发、输送、计量和利用等各个方面。实测天然气压缩因子所需的仪器设备价格高,不易推广,因此计算方法发展很快,主要为经验公式和状态方程计算方法。1992年6月26日,国际标准化组织(ISO)天然气技术委员会(TC193)及分析技术分委员会(TC193/SC1)在挪威斯泰万格(Stavanger)召开了第四次全体会议,会上推荐了两个精度较高的计算工作状态下天然气压缩因子的方程,目 PAGA8-92DC方程、SGERG-88方程[1]。随后,国际标准化组织于1994年形成了国际标准草案[2]。 AGA8-92DC方程来自美国煤气协会(AGA)。美国煤气协会在天然气压缩因子和超压缩因子表的基础上,开展了大量研究,于1992年发表了以状态方程为基础计算压缩因子的AGA No.8报告及AGA8-92DC方程[2]。 1994年,四川石油管理局天然气研究所遵照中国石油天然气总公司技术监督局的指示,对国际标准化组织1992年挪威斯泰万格会议推荐的AGA8-92DC 方程、SGERG-88方程进行验证研究,于1996年底基本完成[2]。1999年,四川石油管理局天然气研究院(前身为四川石油管理局天然气研究所)起草的《天然气压缩因子的计算》GB/T 17747.1~3—1999被批准、发布。 《天然气压缩因子的计算》GB/T 17747.1~3—1999包括3个部分:《天然气压缩因子的计算第1部分:导论和指南》GB/T 17747.1—1999,《天然气压缩因子的计算第2部分:用摩尔组成进行计算》GB/T 17747.2—1999,《天然气压缩因子的计算第3部分:用物性值进行计算》GB/T 17747.3—1999。GB/T 17747.1等效采用ISO 12213—1:1997《天然气压缩因子的计算导论和指南》。GB/T 17747.2等效采用ISO 12213-2:1997《天然气压缩因子的计算用摩尔组成进行计算》,给出了用已知的气体的详细的摩尔组成计算压缩因子的方法,目PAGA8—92DC计算方法。GB/T 17747.3等效采用ISO 12213-3:1997《天然气压缩因子的计算用物性值进行计算》,给出了用包括可获得的高位发热量(体积基)、相对密度、C02含量和H2含量(若不为零)等非详细的分析数据计算压缩因子的方法,即SGERG-88计算方法。笔者在输气管道和城镇高压燃气管道水力计算中,按照GB/T 17747.2采用AGA8-92DC计算方法进行天然气压缩因子计算,效果良好。本文对其中的一些问题进行探讨,受篇幅所限,一些内容文中适当省略,详见GB/T 17747.2。 2AGA8—92DC方法的计算过程 2.1已知条件、待求量、计算步骤 2.1.1已知条件 按照GB/T 17747.2的要求,以CH4、N2、CO2、C2H6、C3H8、H2O、H2S、H2、

浅析电力系统模型参数辨识

浅析电力系统模型参数辨识 (贵哥提供) 一、现状分析 随着我国电力事业的迅猛发展, 超高压输电线路和大容量机组的相继投入, 对电力系统稳定计算、以及其安全性、经济性和电能质量提出了更高的要求。现代控制理论、计算机技术、现代应用数学等新理论、新方法在电力系统的应用,正在促使电力工业这一传统产业迅速走向高科技化。 我国大区域电网的互联使网络结构更复杂,对电力系统安全稳定分析提出了更高的要求,在线、实时、精确的辨识电力系统模型参数变得更加紧迫。由于电力系统模型的基础性、重要性,国外早在上世纪三十年代就开始了这方面的分析研究,[1,2]国内外的电力工作者在模型参数辨识方面做了大量的研究工作。[3]随后IEEE相继公布了有关四大参数的数学模型。1990年全国电网会议上的调查确定了模型参数的地位,促进了模型参数辨识的进一步发展,并提出了研究发电机、励磁、调速系统、负荷等元件的动态特性和理论模型,以及元件在极端运行环境下的动态特性和参数辨识的要求。但传统的测量手段,限制了在线实时辨识方法的实现。 同步相量测量技术的出现和WAMS系统的研究与应用,使实现在线实时的电力系统模型参数辨识成为可能。同步相量是以标准时间信号GPS作为同步的基准,通过对采样数据计算而得的相量。相量测量装置是进行同步相量测量和输出以及动态记录的装置。PMU的核心特征包括基于标准时钟信号的同步相量测量、失去标准时钟信号的授时能力、PMU与主站之间能够实时通信并遵循有关通信协议。 自1988年Virginia Tech研制出首个PMU装置以来,[4]PMU技术取得了长足发展,并在国内外得到了广泛应用。截至2006年底,在我国范围内,已有300多台P MU装置投入运行,并且可预计,在不久的将来PMU装置会遍布电力系统的各个主要电厂和变电站。这为基于PMU的各种应用提供了良好的条件。 二、系统辨识的概念 系统模型是实际系统本质的简化描述。[5]模型可分为物理模型和数学模型两大类。物理模型是根据相似原理构成的一种物理模拟,通过模型试验来研究系统的

齿轮各参数计算公式

模数齿轮计算公式: 名称代号计算公式 模数m m=p/π=d/z=da/(z+2) (d为分度圆直径,z为齿数)齿距p p=πm=πd/z 齿数z z=d/m=πd/p 分度圆直径 d d=mz=da-2m 齿顶圆直径da da=m(z+2)=d+2m=p(z+2)/π 齿根圆直径df df=d-2.5m=m(z-2.5)=da-2h=da-4.5m 齿顶高ha ha=m=p/π 齿根高hf hf=1.25m 齿高h h=2.25m 齿厚s s=p/2=πm/2 中心距 a a=(z1+z2)m/2=(d1+d2)/2 跨测齿数k k=z/9+0.5 公法线长度w w=m[2.9521(k-0.5)+0.014z]

13-1 什么是分度圆?标准齿轮的分度圆在什么位置上? 13-2 一渐开线,其基圆半径r b=40 mm,试求此渐开线压力角=20°处的半径r和曲率半径ρ的大小。 13-3 有一个标准渐开线直齿圆柱齿轮,测量其齿顶圆直径d a=106.40 mm,齿数z=25,问是哪一种齿制的齿轮,基本参数是多少? 13-4 两个标准直齿圆柱齿轮,已测得齿数z l=22、z2=98,小齿轮齿顶圆直径d al=240 mm,大齿轮全齿高h=22.5 mm,试判断这两个齿轮能否正确啮合传动? 13-5 有一对正常齿制渐开线标准直齿圆柱齿轮,它们的齿数为z1=19、z2=81,模数m=5 mm,压力角 =20°。若将其安装成a′=250 mm的齿轮传动,问能否实现无侧隙啮合?为什么?此时的顶隙(径向间隙)C 是多少? 13-6 已知C6150车床主轴箱内一对外啮合标准直齿圆柱齿轮,其齿数z1=21、z2=66,模数m=3.5 mm,压力角=20°,正常齿。试确定这对齿轮的传动比、分度圆直径、齿顶圆直径、全齿高、中心距、分度圆齿厚和分度圆齿槽宽。 13-7 已知一标准渐开线直齿圆柱齿轮,其齿顶圆直径d al=77.5 mm,齿数z1=29。现要求设计一个大齿轮与其相啮合,传动的安装中心距a=145 mm,试计算这对齿轮的主要参数及大齿轮的主要尺寸。 13-8 某标准直齿圆柱齿轮,已知齿距p=12.566 mm,齿数z=25,正常齿制。求该齿轮的分度圆直径、齿顶圆直径、齿根圆直径、基圆直径、齿高以及齿厚。 13-9 当用滚刀或齿条插刀加工标准齿轮时,其不产生根切的最少齿数怎样确定?当被加工标准齿轮的压力角 =20°、齿顶高因数h a*=0.8时,不产生根切的最少齿数为多少? 13-10 变位齿轮的模数、压力角、分度圆直径、齿数、基圆直径与标准齿轮是否一样? 13-11 设计用于螺旋输送机的减速器中的一对直齿圆柱齿轮。已知传递的功率P=10 kW,小齿轮由电动机驱动,其转速n l=960 r/min,n2=240 r/min。单向传动,载荷比较平稳。 13-12 单级直齿圆柱齿轮减速器中,两齿轮的齿数z1=35、z2=97,模数m=3 mm,压力=20°,齿宽b l=110 mm、b2=105 mm,转速n1=720 r/min,单向传动,载荷中等冲击。减速器由电动机驱动。两齿轮均用45钢,小齿轮调质处理,齿面硬度为220-250HBS,大齿轮正火处理,齿面硬度180~200 HBS。试确定这对齿轮允许传递的功率。 13-13 已知一对正常齿标准斜齿圆柱齿轮的模数m=3 mm,齿数z1=23、z2=76,分度圆螺旋角β=8°6′34″。试求其中心距、端面压力角、当量齿数、分度圆直径、齿顶圆直径和齿根圆直径。 13-14 图示为斜齿圆柱齿轮减速器 1)已知主动轮1的螺旋角旋向及转向,为了使轮2和轮3的中间轴的轴向力最小,试确定轮2、3、4的螺旋角旋向和各轮产生的轴向力方向。 2)已知m n2=3 mm,z2=57,β2=18°,m n3=4mm,z3=20,β3应为多少时,才能使中间轴上两齿轮产生的轴向

医药学常用计算公式

心脏学公式 体循环阻力 体循环阻力(dyne×sec)/cm5=80×(MAP-RAP)/C.O. MAP=平均动脉压 RAP=右心房压 C.O.=心输出量 正常值=900-1300(dyne×sec)/ cm5 平均动脉压(MAP) MAP(平均动脉压)=舒张压+[1/3(收缩压-舒张压)] 心输出量 心输出量(L/min)= BSA=体表面积(M2) Hb=血红蛋白(g/100ml) SaO2&SvO2=动脉血氧饱和度—静脉血氧饱和度。

心脏指数是心输出量以个体为单位计算的 心脏指数=心输出量/体表面积(L/min/M2) 总外周血管阻力(SVR) SVR=(平均动脉压-中心静脉压)÷心排出量×80 正常值为100-130kpa.s/L 杜克平板测验分数 杜克平板测验分数= 未出现心绞痛:测试持续时间(min)-5.0×最大ST段下降(mm) 持续心绞痛:测试持续时间(min)-5.0×最大ST段下降(mm)-4.0×1 测试因心绞痛中止:测试持续时间(min)-5.0×最大ST段下降(mm)-4.0×2 风险级别: 高风险:杜克平板实验分数<-5 高风险:杜克平板实验分数>10 校正的QT间期 校正的QT间期=测量的QT间期(sec)÷sqrt(R-R间期) 正常值:校正的QT间期不应该超过: 0.45(婴儿<6个月) 0.44(儿童) 0.425(青少年和成人) 氧供应(DO2)

DO2=1.34×[SaO2(动脉血氧饱和度)×Hb(血红蛋白)]×CO×10 氧消耗(VO2) VO2=1.34×[(CaO2(动脉血氧含量)×CvO2(静脉血氧含量))×CO×10 CaO2=1.34×SaO2×Hb CvO2=1.34×SvO2×Hb 氧耗量(给定心输出量) 氧耗量(ml/min)=心输出量(C.O.)×(13×Hgb)×(SaO2-SvO2) SaO2=动脉血氧饱和度 SvO2=静脉血氧饱和度 正常值=110-160ml/min/M2 若平均体表面积为1.73M2,则正常值=190-275ml/min 肺脏学公式 动脉血CO2分压(PaCO2) PaCO2=0.863×VCO2/VA VCO2为CO2排出量(ml/min) Va为每分钟肺泡通气量(L/min) 0.863为使气体容量(ml)变为Kpa(mmHg)的转换因子 动脉血氧分压(P a O2) 坐位: P a O2=104.2-0.27×年龄

天然气基本压缩因子计算方法

天然气基本压缩因子计算方法 编译:阙洪培(西南石油大学) 审校:刘廷元 这篇文章提出一个简便展开算法:任一压力-温度的基本压缩因子的输气监测计算。这个算法中的二次维里系数来源于参考文献1。计算的压缩因子接近AGA 8状态方程值[2]。 1 测量 在天然气工业实用计量中,压力、温度变化作为基本(或标准)条件,不仅地区间有差别,而且在天然气销售合同也有不同。 在美国,通常标准参考条件是60°F和14.73 psia。欧洲常用的基本条件是0 ℃和101.325 kPa,而标准条件是15 ℃和101.325 kPa。阿根廷也用15 ℃和101.325 kPa,而墨西哥则用的是20 ℃和1kg/ sq cm(绝对)。 计算真实气体的热值、密度、基本密度、基本体积、以及沃贝指数时要求已知基本条件的压缩因子。表1是理想气体值。 表1中的理想气体值不能用于密闭输气,必须计算相应基本条件的压缩因子。 参考文献提供的一些数据表和获取基本条件压缩因子方法,基本条件只能是60°F,14.73或14.696 psia。 计算其它基本条件的压缩因子可用AGA 8 程序,但代数计算较复杂,计算机编程共有三组软件,比较耗时。 本文提出了一个展开算法,计算密闭输气基本条件(基本条件可是任何压力温度)的压缩因子。 2 压缩因子 接近外界条件时,即压力小于16 psia,截断维里状态方程(方程组中的方程1)较好地描述了天然气的体积性质。 方程1中,各符号的物理意义是: Z = 基本条件下压缩因子 B = 二次维里系数 R = 气体常数 P = 基本条件的绝对压力 T = 温度条件的绝对压力 天然气基本压缩因子接近1,如0.99,B必然为负(图1) 方程2是混合物的二次维里系数,式中B ij = B ji为组分i和j的二次交互维里系数,B ii为纯组分i 的二次维里系数。二次维里系数是温度的函数。 也可用方程3求B,便于手工计算。比较适合密闭输气计算,方程3中B i的平方根为总因子,参见参考文献1,3,4。 问题的提出:表中常见60°F总因子值,而未见有其它基本温度条件的总因子值。由此本文献出一种方法,求解任一温度的压缩因子。 本方法不用因子求和法而用了好用便于书写的二次维里系数法。 方程3假定方程4已作校正。下面举出2例说明这种方程的用法。

模型计算步骤

计算步骤步骤目标 建模或计算条件控制条件及处理1.符合原结构传力模式2.符合原结构边界条件3.符合采用程序的假定条件1.振型组合数→有效质量参与系数>0.9吗?→否,则增加2.最大地震力作用方向角→θ0-θm >150?→是,输入θ0=θm ,附加方向角θ0=03.结构自振周期,输入值与计算值相差>10%?→是,按计算值改输入值4.查看三维振型图,确定裙房参与计算范围→修正计算简图5.短肢剪力墙承担的抗倾覆力矩<40%?→是,改为一般剪力墙结构;短肢剪力墙承担的抗倾 覆力矩>50%?→是,规范不许,修改设计 6.框剪结构框架承担的抗倾覆力矩>50%?→是,框架抗震等级按框架结构确定;若为多层结构,可定义为框架结构,抗震墙可作为次要抗侧力构件,其抗震等级可降低一级。 1.周期比控制:T 扭/T 1≤0.9(0.85)?→否,修改结构布置,强化外围削弱中间 2.层位移比控制:最大/平均≤1.2?→否,按双向地震重算 3.侧向刚度比控制:要求见规范;不满足时程序自动定义为薄弱层 4.层受剪承载力控制:Q i /Q i+1<[0.65(0.75)]?→否,修改结构布置;0.65(0.75)≤Q i /Q i+1<0.8?→否,强制指定为薄弱层(注:括号中数据为B级高层),(《高规》4.4.3条) 5.整体稳定控制:刚重比≥[10(框架),1.4(其它)] 6.最小地震剪力控制:剪重比≥0.2αmax?→否,增加振型数或增大地震剪力系数 7.层位移角控制:弹性Δu ei /h i ≤[1/550(框架),1/800(框剪),1/1000(其它)];弹塑性Δ u pi /h i ≤[1/50(框架),1/100(框剪),1/120(其它)]1.构件构造最小断面控制和截面抗剪承载力验算 2.构件斜截面承载力验算(剪压比控制) 3.构件正截面承载力验算 4.构件最大配筋率控制 5.纯弯和偏心构件受压区高度限制 6.竖向构件轴压比控制 7.剪力墙的局部稳定控制 8.梁柱节点核心区抗剪承载力验算 1.钢筋最大最小直径限制 2.钢筋最大最小间距要求 3.最小配筋配箍要求 4.重要部位的加强和明显不合理部分局部调整2.计算一(一次或多次)整体参数 的正确确 定 1.地震方向角θ0=0;2.单向地震+平扭耦联;3.不考虑偶然偏心;4.不强制全楼刚性楼板;5.按总刚分析;6.短肢墙多时定义为短肢剪力墙结构;1.按计算一、二确定的模型和参数;2.取消全楼强制刚性板;3.按总刚分析;4.对特殊构件人工指定。构件优化设计(构件超筋超限控制)4.计算三(一次或多次)5.绘制施工图结构构造抗震构造措施几何及荷 载模型 1.建模整体建模判定整体结构的合理性(平面和竖向规则性控制) 1.地震方向角θ0=0,θ m ; 2.单(双)向地震+平扭耦 联; 3.(不)考虑偶然偏心; 4.强制全楼刚性楼板; 5.按侧刚分析; 6.按计算一的结果确定结 构类型和抗震等级3.计算二(一次或多次)

2010最新换算公式--人和动物及各类动物间药物剂量的换算方法

五、人和动物及各类动物间药物剂量的换算方法 1.人与动物用药量换算人与动物对同一药物的耐受性是相差很大的。一般说来,动物的耐受性要比人大,也就是单位体重的用药量动物比人要大。人的各种药物的用药量在很多书上可以查得,但动物用药量可查的书较少,一般动物用的药物种类远不如人用的那么多。因此,必须将人的用药量换算成动物的用药量。一般按下列比例换算:按每公斤体重人用药量为1,大白鼠、小白鼠为25~50,兔、豚鼠为15~20,犬、猫为5~10。 此外,可以采用人与动物的体表面积计算法来计算: (1)人体体表面积计算法:计算我国人的体表面积,一般认为许文生公式尚较适用,即:体表面积(m2)=0.0061×身高(cm)+0.0128×体重(公斤)-0.1529。例:某人身高168cm,体重55kg,试计算其体表面积。解:0.0061×168+0.0128×55-0.1529=1.576m2。 (2)动物的体表面积计算法:有许多种,在需要由体重推算体表面积时,一般认为Meeh-Rubner公式较适用,即: A(体表面积,以m2计算)=K×(W2/3/10000);式中W为体重,以克计算;K 为一常数,随动物种类不同而不同;小白鼠和大白鼠9.1、豚鼠9.8、家兔10.1、猫9.8、犬11.2、猴11.8、人11.6(上列K值各家报道略有出入)。应当指出,这样计算出来的体表面积还是一种粗略的估计值,不一定完全符合每个动物的实测数值。 例:试计算体重1.50kg家兔的体表面积。K=10.1 W=15002/3 解:A=10.1×(15002/3/10000)式中两边取对数后得: logA=log10.1+2/3log1500-log10000=1.1218 A=0.1324m2(体重 1.5kg家兔的体表面积)。 2.人与不同种类动物之间药物剂量的换算 (1)直接计算法:即按A=K×(2002/3/10000)计算。例:某利尿药大白鼠灌胃给药时的剂量为250mg/kg左右,试粗略估计犬灌胃给药时可以试用的剂量。解:实验用大白鼠的体重一般在200g左右,其体表面积(A)为:A=9.1×(2002/3/10000)=0.0311m2。

压缩因子

物理化学 -> 1.6.3 压缩因子图 三、压缩因子图 荷根(Hougen)和华特生(Watson)测定了许多气体有机物质和无机物质压缩因子随对比温度和对比压力变化的关系,绘制成曲线,所得关系图称为"普遍化压缩因子图"。见图1-14。当实际气体的临界压力p c和临界温度T c的数据为已知,可将某态下的压力p和温度T换算成相应的对比压力p r和对比温度T r,从图中找出该对比态下的压缩因子Z。再由下式计算气体的摩尔体积V m: (1-38) 图1-14 压缩因子Z随p r及T r变化关系 当然,计算并不仅限于体积。上式形式简单,计算方便,并可应用于高温高压,作为一般估算,准确定基本上可以满足,在化工计算上常驻采用。一般说来,对非极性气体,准确度较高(误差约在 5% 以内);对极性气体,误差大些。但对 H2、He、Ne 则为例外,这三种气体,根据经验采用以下修正公式: (1-77)

所得结果更准确。为进一步提高计算方法的准确性,常需引入更多的参数,最常用的是三参数法。需要时读者可参阅有关专著,在此不赘述。 〔例3〕试用压缩因子图法计算 573K 和 20265kPa 下甲醇的摩尔体积。甲醇的临界常数:T c=513K,p c=7974.3kPa。 〔解〕 由图1-14查出T r=1.12,p r=2.54 时,Z=0.45 实验值为 0.114dm3,误差为 7.5%。用理想气体状态方程式计算,V m=0.244dm3! 而用范德华方程式计算, V m=0.126dm3。可见此法不仅方便,且较准确。 〔例4〕一容积为 3dm3的钢筒内容有 3.20kg 的甲烷,室温为 273.4K。试求钢筒中气体的压力。已知甲烷T c=191.1K,p c=4640kPa。 〔解〕 或p r=3.26Z 在T r附近,作p c=3.26Z直线交T r于Z=0.76 处(参考图1-15),此Z值即为同时满足T r=1.43 和 p r=3.26Z的对应态的压缩因子值,以之代入公式

MTBF计算方法概论

MTB F計算方法概論

MTBF: Mean Time Between Failure 1. 意義:可修復之產品~兩次相鄰故障的平均工作時間,是一種可靠度之統計數值.通常均以小時為計算單位. 2. 通常以小時為單位. EX. 100,000 hours. 3. 若為故障而不可修復之產品,則不適用MTBF之計算.但可計算其MTTR (Mean Time To Repair). 稱之為: 平均維修時間. 4. 若為產品在正常環境及條件下,連續性測試從一而終,所計算之時間為:壽命試驗(Life Cycle)

1.11.1加速壽命試驗加速壽命試驗(Accelerated Life Testing) 1.1 執行壽命試驗的目的在於評估產品在既定環境下之使 用壽命. 1.2 常規試驗耗時較久,且需投入大量的金錢,而產品可靠度 資訊又不能及時獲得並加以改善. 1.3 可在實驗室裡以加速壽命試驗的方法,在可接受的試驗 時間裡評估產品的使用壽命. 1.4 是在物理與時間上,加速產品的劣化肇因,以較短的時間 試驗來推定產品在正常使用狀態的壽命或失效率.但基本條件是不能破壞原有設計特性. 1.1.MTBF MTBF MTBF測試原理測試原理

1.5 一般情況下, 加速壽命試驗考慮的三個要素是環境應 力,試驗樣本數和試驗時間. 1.6如果溫度是產品唯一的加速因素,則可採用阿氏模型 (Arrhenius Model),此模式最為常用. 1.7引進溫度以外的應力,如濕度,電壓,機械應力等,則為 愛玲模型(Eyring Model).產品包括電燈,液晶顯示元件,電容器等適用此模式. 1.8.一般情況下,主動電子零件完全適用阿氏模型,而電子 和資訊類成品也可適用阿氏模型,原因是成品類的失效模式是由大部分主動式電子零件所構成.因此,阿氏模型,廣泛應用於電子﹑資訊行業. 1.1.MTBF MTBF MTBF測試原理測試原理

标准齿轮参数通用计算汇总

标准齿轮模数尺数通用计算公式 齿轮的直径计算方法: 齿顶圆直径=(齿数+2)×模数 分度圆直径=齿数×模数 齿根圆直径=齿顶圆直径-(4.5×模数) 比如:M4 32齿34×3.5 齿顶圆直径=(32+2)×4=136mm 分度圆直径=32×4=128mm 齿根圆直径=136-4.5×4=118mm 7M 12齿 中心距D=(分度圆直径1+分度圆直径2)/2 就是 (12+2)×7=98mm 这种计算方法针对所有的模数齿轮(不包括变位齿轮)。 模数表示齿轮牙的大小。 齿轮模数=分度圆直径÷齿数 =齿轮外径÷(齿数-2) 齿轮模数是有国家标准的(GB1357-78) 模数标准系列(优先选用)1、1.25、1.5、2、2.5、3、4、5、6、8、10、12、14、16、20、25、32、40、50 模数标准系列(可以选用)1.75,2.25,2.75,3.5,4.5,5.5,7,9,14,18,22,28,36,45 模数标准系列(尽可能不用)3.25,3.75,6.5,11,30 上面数值以外为非标准齿轮,不要采用! 塑胶齿轮注塑后要不要入水除应力 精确测定斜齿轮螺旋角的新方法

Circular Pitch (CP)周节 齿轮分度圆直径d的大小可以用模数(m)、径节(DP)或周节(CP)与齿数(z)表示 径节P(DP)是指按齿轮分度圆直径(以英寸计算)每英寸上所占有的齿数而言 径节与模数有这样的关系: m=25.4/DP CP1/8模=25.4/DP8=3.175 3.175/3.1416(π)=1.0106模 1) 什么是「模数」? 模数表示轮齿的大小。 R模数是分度圆齿距与圆周率(π)之比,单位为毫米(mm)。 除模数外,表示轮齿大小的还有CP(周节:Circular pitch)与DP(径节:Diametral pitch)。 【参考】齿距是相邻两齿上相当点间的分度圆弧长。 2) 什么是「分度圆直径」? 分度圆直径是齿轮的基准直径。 决定齿轮大小的两大要素是模数和齿数、 分度圆直径等于齿数与模数(端面)的乘积。 过去,分度圆直径被称为基准节径。最近,按ISO标准,统一称为分度圆直径。 3) 什么是「压力角」? 齿形与分度圆交点的径向线与该点的齿形切线所夹的锐角被称为分度圆压力角。一般所说的压力角,都是指分度圆压力角。 最为普遍地使用的压力角为20°,但是,也有使用14.5°、15°、17.5°、22.5°压力角的齿轮。 4) 单头与双头蜗杆的不同是什么? 蜗杆的螺旋齿数被称为「头数」,相当于齿轮的轮齿数。 头数越多,导程角越大。 5) 如何区分R(右旋)?L(左旋)? 齿轮轴垂直地面平放 轮齿向右上倾斜的是右旋齿轮、向左上倾斜的是左旋齿轮。 6) M(模数)与CP(周节)的不同是什么? CP(周节:Circular pitch)是在分度圆上的圆周齿距。单位与模数相同为毫米。 CP除以圆周率(π)得M(模数)。 M(模数)与CP得关系式如下所示。 M(模数)=CP/π(圆周率) 两者都是表示轮齿大小的单位。 (分度圆周长=πd=zp d=z p/π p/π称为模数) 7)什么是「齿隙」? 一对齿轮啮合时,齿面间的间隙。 齿隙是齿轮啮合圆滑运转所必须的参数。 8) 弯曲强度与齿面强度的不同是什么? 齿轮的强度一般应从弯曲和齿面强度的两方面考虑。 弯曲强度是传递动力的轮齿抵抗由于弯曲力的作用,轮齿在齿根部折断的强度。齿面强度是啮合的轮齿在反复接触中,齿面的抗摩擦强度。 9) 弯曲强度和齿面强度中,以什么强度为基准选定齿轮为好? 一般情况下,需要同时讨论弯曲和齿面的强度。 但是,在选定使用频度少的齿轮、手摇齿轮、低速啮合齿轮时,有仅以弯曲强度选定的情况。最终,应该由设计者自己决定。 10) 什么是螺旋方向与推力方向? 轮齿平行于轴心的正齿轮以外的齿轮均发生推力。 各类型齿轮变化如下所示。

压缩因子计算

天然气压缩因子的计算 气田上大多数在高压下生产,为控制其流动需要安装节流阀。当气流经过节流阀时,气体产生膨胀,其温度降低。如果气体温度变得足够低,将形成水合物 (一种固体结晶状的冰雪物质)。这就会导致管道和设备的堵塞。【1】从而,在天 然气的集输过程当中,不管对天然气或天然气管道进行怎样的处理,都离不开气体的三个状态参数:压力P 、体积V、温度T。而根据真实气体状态方程PV ZnRT =可知,在确定某个状态参数的时候需要先计算一个压缩因子Z。如果能够更精确的确定压缩因子,从而确定气体的状态参数,对于研究天然气的收集、预处理和输送等问题具有重要意义。下面简要介绍下压缩因子及其计算方法。 真实气体是实实在在的气体,它是为了区别于理想气体而引人的。真实气体占有一定空间,分子之间存在作用力,因此真实气体性质与理想气体性质就有偏离。压缩因子就是反映这种真实气体对理想气体的偏离程度大小。在温度比临界温度高的多、压力很小时,偏离不太显著;反之偏离就很显著。下面将介绍一种计算压缩因子的方法(Dranchuk-Purvis-Robinson 法)。 压缩因子的关系式如下: 563521437383 1()()()(1)exp()pr pr pr pr pr A A A A A Z A A T T T T A A A T =++++++++-52pr pr pr 222 pr pr pr ρρρρρρ (1) 式中A 1到A 8都是常数,具体数据可到参考文献上查阅,ρ pr 为无因次拟对比密 度,它和压缩因子满足关系式: 0.27pr pr pr p ZT ρ= (2) 其中p pr 和T pr 分别为拟对比压力和拟对比温度。 由于式(2)为非线性方程,欲计算Z ,可采用牛顿迭代法(Newton-Raphson )。在已知p pr 和T pr 的情况下,需经过迭代过程求解ρpr ,其公式如下: ( )( 1)()'( )() ()i pr i i pr pr i pr f f ρρρρ+=- (3) 迭代求得拟对比密度ρpr ,即可易求得压缩因子。【2】 参考文献: [1] 曾自强,张育芳.天然气集输工程.北京:石油工业出版社,2001.1 [2] 严铭卿,廉乐明.天然气输配工程.北京:中国建筑工业出版社,2005.32

产品加速老化测试方案

产品加速老化测试方案 1、试验前准备 1.1 试验产品信息 样品名称: 样品型号: 样品数量: 样品序号: 1.2 试验所需的设备信息 设备名称:恒温恒湿箱 设备编号: 设备参数:温度测试范围为: 湿度测试范围为: 1.3 测试人员: 复核人员: 批准人员: 1.4 测试环境:加速老化测试在75℃、90% RH的恒温恒湿箱中进行 1.5 测试时间: 2、试验原理和步骤 2.1 使用的物理模型--最弱链条模型 最弱链条模型是基于元器件的失效是发生在构成元器件的诸因素中最薄弱的部位这一事实而提出来的。 该模型对于研究电子产品在高温下发生的失效最为有效,因为这类失效正是由于元器件内部潜在的微观缺陷和污染,在经过制造和使用后而逐渐显露出来的。暴露最显著、最迅速的地方,就是最薄弱的地方,也是最先失效的地方。 2.2 加速因子的计算 加速环境试验是一种激发试验,它通过强化的应力环境来进行可靠性试验。加速环境试验的加速水平通常用加速因子来表示。加速因子的含义是指设备在正常工作应力下的寿命与在加速环境下的寿命之比,通俗来讲就是指一小时试验相当于正常使用的时间。因此,加速因子的

计算成为加速寿命试验的核心问题,也成为客户最为关心的问题。加速因子的计算也是基于一定的物理模型的,因此下面分别说明常用应力的加速因子的计算方法。 2.2.1温度加速因子 温度的加速因子计算: ?? ???????? ???==stress normal a stress normal AF T T k E L L T 1-1exp ……………… (1) 其中,normal L 为正常应力下的寿命; stress L 为高温下的寿命; a E 为失效反应的活化能(eV ); normal T 为室温绝对温度; stress T 为高温下的绝对温度; k 为Boltzmann 常数,8.62× 10-5eV/K ; 实践表明绝大多数电子元器件的失效符合Arrhenius 模型,下表给出了半导体元器件常见的失效反应的活化能。 2.2.2 湿度的加速因子 2.3 试验方案 本试验采用最弱链条的失效模型,通过提高试验温度和湿度来考核产品电路板和显示屏的使用寿命。在75℃、90% RH 下做加速寿命测试,故其加速因子应为温度加速因子和湿度加速因子的乘积,计算如下: n normal stress stress normal a AF AF RH RH T T k E H T AF ???? ????????????? ???=?=1-1ex p (3)

天然气压缩因子计算

1.天然气相关物性参数计算 密度计算: T ZR PM m =ρ ρ——气体密度,Kg/m 3; P ——压力,Pa ; M ——气体千摩尔质量,Kg/Kmol ; Z ——气体压缩因子; T ——气体温度,K ; R m ——通用气体常数,8314.4J/Kmol·K 。 2.压缩因子计算: 已知天然气相对密度?时。 96 .28M =? M ——天然气的摩尔质量。 ?+=62.17065.94pc T 510)05.493.48(??-=pc P ;pc pr P P P = pc pr T T T =; P ——工况下天然气的压力,Pa ;T ——工况下天然气的温度,k ;P Pc —临界压力;T Tc ——临界温度。 对于长距离干线输气管道,压缩因子常用以下两式计算: 668.34273.01--=pr pr T P Z 320107.078.068.110241.01pr pr pr pr T T T P Z ++-- = 对于干燥天然气也可用经验公式估算: 15.1117.0100100P Z +=

标况流量和工况流量转换。为了控制Welas 的5L/min 既 0.3立方米每小时的工况流量。 Q 2------流量计需要调节的流量值 P 2------0.1Mpa T 2------293.15K (20℃ ) Z 2------标况压缩因子 Q 1------0.3m 3/h P 1------ 工况压力(绝对压力MPa ) T 1------开尔文K Z 1-------工况压缩因子 转换公式为 12221211 p T Z Q Q p T Z

碳排放计算公式

碳排放计算公式(部分)【自己算一算】 家居用电的二氧化碳排放量(千克)=耗电量×0.785 开私家车的二氧化碳排放量(千克)=油耗公升数×2.7 乘坐飞机的二氧化碳排放量(千克): 200公里以内=公里数×0.275 200公里至1000公里=55+0.105×(公里数-200) 1000公里以上=公里数×0.139 家用天然气二氧化碳排放量(千克)=天然气使用度数×0.19 家用自来水二氧化碳排放量(千克)=自来水使用度数×0.91 走楼梯上下一层楼能减少0.218千克碳排放,少开空调一小时减少0.621千克碳排放,少用一吨水减少0.194千克碳排放……哥本哈根气候变化大会结束之后,“低碳”概念开始高频率地走进人们日常生活。现在,杭州开始建设低碳城市,大家对碳排放量的多少非常关心,但又知道得很模糊,不知道到底该怎么算的。 事实上,碳排放和我们每天的衣食住行息息相关。至于碳排放量有多少,有关专家给出碳排放的计算公式: 家居用电的二氧化碳排放量(公斤)=耗电度数×0.785; 开车的二氧化碳排放量(公斤)=油耗公升数×0.785; 坐飞机的二氧化碳排放量(公斤): 短途旅行:200公里以内=公里数×0.275; 中途旅行:200至1000公里=55+0.105×(公里数-200); 长途旅行:1000公里以上=公里数×0.139。 火车旅行的二氧化碳排放量=公里数×0.04 此外,还有人发布了肉食的二氧化碳排放量—— 肉食的二氧化碳排放量(公斤)=公斤数×1.24。 这些计算公式是如何得出的? 据了解,碳足迹计算国际上有很多通用公式,这些公式是由联合国及一些环保组织共同制作的。在这些公式的基础上使用中国本土的统计数据和转换因子,使计算更符合中国国情,也更准确地反映你的实际碳足迹。

浅谈压缩因子及其在燃气计量中的影响

浅谈压缩因子及其在燃气计量中的影响 Gas Compression Factor(气体压缩因子) 摘要:本文通过对压缩因子的介绍,浅要分析了其在燃气计算中的影响。 关键词:临界温度;临界压力;势能;动能;压缩因子;燃气计量 1 前言 随着燃气业的不断发展,工商业燃气用户也越来越多,特别是将来天然气在广东珠三角的推广将使珠三角燃气行业得到更迅猛的发展。由于燃气公司与供应商,燃气公司与用户之间,都是存在经济的利益关系,因而在燃气计量上必然存在着或多或少的矛盾。特别是大型工业用户与燃气公司的计量问题的更容易发生矛盾。为了减少此类矛盾的激化,燃气公司在自身利益不受损害的情况下,都将会尽量减少计量上的误差,使两者的矛盾得到缓和。因而燃气公司在计量上就应了解许多注意事项,其中压缩因子就是众多影响计量准确度的潜在因素之一。 2 压缩因子的产生及在计量上的影响 在实际的气体计量的过程中,气体状态方程:Z=PV/RT,压缩因子z在计算中引入了临界温度Tc和临界压力Pc两种参数,其中压缩因子Z=f(Pc,Tc)是随温度及压力而变化的(关系图l,2),其中:临界温度指的是气体加压液化所允许的最高温度,一般分子间的引力越大对应的临界温度越高;如甲烷临界温度Tc为191.05K,丙烷临界温度Tc为368.85K; 临界压力指的是气体在临界温度时发生液化所需要的最小压力;如甲烷临界压力Pc为4.6407MPa,丙烷临界压力Pc为4.3975MPa; 在实际计算中,还要引入对比压力Pr和对比温度Tr,所谓的对比压力就是实际工作压力和临界压力Pc的比值,对比温度同理亦是实际工作温度和临界温度Tc的比值。 压缩因子的数值在不同温度压力下的也不是完全沿一个趋势变化的,如天然气是先随压力增大而变小,到达一定程度后又逐渐随压力增大而变大。那为什么会出现这种情况呢?从微观上讲,这主要是由于分子间的作用力造成的。一定温度下的气体在压力较小时,分子间的距离较大,分子间一般表现为引力,造成实际气体比理想气体更易于被压缩,但随着压力增加气体分子逐渐靠近,分子间的作用力表现为排斥力造成气体难于被压缩,进而形成压缩因子的数值上的变化,并且该数值随气体种类不同而不同。 根据气体压缩因子与对比温度及对比压力的曲线图可发现:在一般的计量工况下(温度小于50℃,压力小于10MPa),天然气的压缩因子均大于液化石油气的压缩因子,亦是说气态液化石油气在该条件下体积受压缩因子的影响大于对气态天然气的体积的影响。根据计算公式,V o=VPT o/(P o TZ),液化石油气和天然气在同等工况下修正系数可通过计算得出: 例一:已知混合气体的容积成分为y C3H6=50%, y C4H10=50%,压力为1.0MPa,温度为25℃的压缩因子。

齿轮各参数计算方法

齿轮各参数计算方法 1、齿数Z 闭式齿轮传动一般转速较高,为了提高传动的平稳性,减小冲击振动,以齿数多一些为好,小一些为好,小齿轮的齿数可取为z1=20~40。开式(半开式)齿轮传动,由于轮齿主要为磨损失效,为使齿轮不致过小,故小齿轮不亦选用过多的齿数,一般可取z1=17~20。为使齿轮免于根切,对于α=20度的标准支持圆柱齿轮,应取z1≥17 2、模数m 齿距与齿数的乘积等于分度圆的周长,即pz=πd。为使d为有理数的条件是 p/π为有理数,称之为模数。即:m=p/π 模数m是决定齿轮尺寸的一个基本参数。齿数相同的齿轮模数大,则其尺寸也大。

3、分度圆直径d 齿轮的轮齿尺寸均以此圆为基准而加以确定,d=mz 4、齿顶圆直径da和齿根圆直径df 由齿顶高、齿根高计算公式可以推出齿顶圆直径和齿根圆直径的计算公式: da=d+2ha df=d-2hf =mz+2m=mz-2×1.25m =m(z+2)=m(z-2.5) 5、分度圆直径d 在齿轮计算中必须规定一个圆作为尺寸计算的基准圆,定义:直径为模数乘以齿数的乘积的圆。实际在齿轮中并不存在,只是一个定义上的圆。其直径和半径分别用d和r表示,值只和模数和齿数的乘积有关,模数为端面模数。与变位系数无关。标准齿轮中为槽宽和齿厚相等的那个圆(不考虑齿侧间隙)就为分度圆。标准齿轮传动中和节圆重合。但若是变位齿轮中,分度圆上齿槽和齿厚将不再相等。若为变位齿轮传动中高变位齿轮传动分度圆仍和节圆重合。但角变位的齿轮传动将分度圆和节圆分离。 6、压力角αrb=rcosα=1/2mzcosα 在两齿轮节圆相切点P处,两齿廓曲线的公法线(即齿廓的受力方向)与两节圆的公切线(即P点处的瞬时运动方向)所夹的锐角称为压力角,也称啮合角。对单个齿轮即为齿形角。标准齿轮的压力角一般为20”。在某些场合也有采用α=14.5°、15°、22.50°及25°等情况。

相关文档