找回密码
 注册
Simdroid-非首页
查看: 287|回复: 3

[命令/FISH] 屈服接近度模拟的实现

[复制链接]
发表于 2010-11-9 00:24:17 | 显示全部楼层 |阅读模式 来自 辽宁丹东
我编写了一个屈服接近度的fish,但是计算不再0-1之间,大家可以帮我看看吗?
其程序如下:

title '屈服接近度计算'
range  name weiyan1  group 2 ;对需要输出屈服率的组进行命名

config zextra 1
def yeild1
pnt=zone_head
loop while pnt # null
if inrange('weiyan1',pnt)=1 then  
c0=0.1e5  ;----------输入粘聚力
fai0=20*3.14/180    ;----------输入内摩擦角
st=0.1e7   ;----------输入抗拉强度
s3=z_sig1(pnt)
s2=z_sig2(pnt)
s1=z_sig3(pnt)
s13=(s1+s3)/2.0

;应力罗德角
ylldj=(atan(1.0/(sqrt(3)))*(2.0*s2-s1-s3)/(s1-s3))

i1=s1+s2+s3
j2=(1/6.0)*((s1-s2)*(s1-s2)+(s1-s3)*(s1-s3)+(s3-s2)*(s3-s2))

;GR计算
sigmr=(s1*(2-sin(fai0))-2*c0*cos(fai0))/(2*(1-sin(fai0)))

if s13>sigmr then
z_extra(pnt,1)=(st-s1)/(st-sigmr)
if z_extra(pnt,1)>1 then
z_extra(pnt,1)=1
else
endif
if z_extra(pnt,1)<0 then
z_extra(pnt,1)=0
else
endif
else
z_extra(pnt,1)=(i1*sin(fai0)+(3*cos(ylldj)-sqrt(3)*sin(ylldj)*sin(fai0))*sqrt(j2)-c0*cos(fai0))/(i1*sin(fai0)-3*c0*cos(fai0))
if z_extra(pnt,1)>1 then
z_extra(pnt,1)=1
else
endif
if z_extra(pnt,1)<0 then
z_extra(pnt,1)=0
else
endif
endif

endif
pnt=z_next(pnt)
endloop
end

yeild1
plot contour zextra 1 alias 'Contour of yield rate zone' out on
发表于 2011-1-8 23:29:09 | 显示全部楼层 来自 北京
Simdroid开发平台
楼主我看了你得程序觉得很不错,只是这句不清楚啥意思sigmr=(s1*(2-sin(fai0))-2*c0*cos(fai0))/(2*(1-sin(fai0)))
回复 不支持

使用道具 举报

发表于 2013-5-13 11:02:27 | 显示全部楼层 来自 四川成都
sigmr=(s1*(2-sin(fai0))-2*c0*cos(fai0))/(2*(1-sin(fai0)))  这个里面应该不是s1应该是st也就是应该是抗拉强度而不是最小主应力
回复 不支持

使用道具 举报

发表于 2015-3-16 09:33:16 | 显示全部楼层 来自 湖北武汉
您好,您关于屈服接近度的程序是否已经解决,我在这块也有个问题,希望能加我qq:1198761716,咱们互相学习可否,谢谢
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-25 12:18 , Processed in 0.060131 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表