一维传热铸件凝固数值计算.doc

上传人:人*** 文档编号:544522755 上传时间:2024-03-28 格式:DOC 页数:4 大小:276.01KB
返回 下载 相关 举报
一维传热铸件凝固数值计算.doc_第1页
第1页 / 共4页
一维传热铸件凝固数值计算.doc_第2页
第2页 / 共4页
一维传热铸件凝固数值计算.doc_第3页
第3页 / 共4页
一维传热铸件凝固数值计算.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《一维传热铸件凝固数值计算.doc》由会员分享,可在线阅读,更多相关《一维传热铸件凝固数值计算.doc(4页珍藏版)》请在金锄头文库上搜索。

1、西安交通大学材料凝固实验#=# 一维传热铸件凝固数值计算# 作者:王永平 2011-11-25# 转载请注明来源#=begin说明:本程序采用ruby语言编写,算是一个处理“一维传热铸件凝固问题”的范例吧使用方法示例:s=Simulation.new(20) #只有一个参数,即要计算的时限s.run运行结果会输出是否完全凝固,完全凝固所用时间,任意时刻铸件内部的温度场及总体温度场因为是针对特定情形的求解,涉及众多计算条件,因而程序未提供更多参数控制接口网格划分为45格,求解时比较方便。若改变网格数,则需手动改动一系列范围,不建议更改此项当然也可以提供控制网格参数接口,把一系列范围写成诸如0.n

2、,x1/delta_x之类的形式不过实在没必要这么做=endclass Simulation #初始化,各参数及初值在此定义 def initialize(tmax=20) n=46 #网格划分 delta_x=0.5 #网格步长 a=n #存储t时刻各点温度的数组 b=n #存储t+delta_t时刻各点温度的数组 tc=Array.new(n,0) #存储各点累加补偿温度值的数组 k=Array.new(n,0.00627) #存储各点导热系数的数组,数值全部初始化为铸模物性,在循环中再更改 rou=Array.new(n,1.55) #存储各点比热的数组,数值全部初始化为铸模物性,在循环

3、中再更改 cp=Array.new(n,0.8987) #存储各点密度的数组,数值全部初始化为铸模物性,在循环中再更改 kw=n #存储当量导热系数调和系数1的数组 ke=n #存储当量导热系数调和系数2的数组 m1=n #存储差分系数1的数组 m2=n #存储差分系数2的数组 flag=Array.new(n,0) #铸件内部各点状态标志,0为液态,1为固态 total_flag=0 #统计铸件内部各点凝固状态 delta_t=0.015 #时间步长,满足条件delta_t tmax #达到计算时限便退出循环 end #输出结果 out_put end #定义方法 set_value,用于赋

4、初值 def set_value for i in 0.46 if i =17 and i = 17 and i =28 #铸件内部点 if flagi = 1 #如果凝固,采用固态物性参数 ki=2.28cpi=1.17roui=2.702 else #否则采用液态物性参数ki=10.0cpi=1.09roui=2.38 end end kwi=2.0/(1.0/ki+1.0/ki-1) kei=2.0/(1.0/ki+1.0/ki+1) m1i=kwi*delta_t/(roui*cpi*(delta_x*2) m2i=kei*delta_t/(roui*cpi*(delta_x*2) b

5、i=m1i*ai-1+m2i*ai+1+(1-m1i-m2i)*ai #计算温度场变化end end #定义方法 latent_heat,用于处理凝固潜热 def latent_heat for i in 17.28 if bi = delta_t_s #累计补偿温度达到补偿温度区间 flagi=1 #标志该点已凝固 endendtotal_flag=0 #每个循环都要清空标志,重新统计for i in 0.46 total_flag+=flagi if total_flag = 12 #判断是否完全凝固 if finished_time = 0 finished_time=time #记录完

6、全凝固所用的时间end endend end #定义方法 out_put,用于输出结果 def out_put #输出是否完全凝固,如果是,输出凝固所用时间 if total_flag = 12 puts Solidification Finished at time:#finished_time sec. else puts Solidification havent finished yet!end#输出tmax时刻,铸件内部温度场puts Time=#tmax sec;Castings1D temperature field(Degrees C): for i in 17.28 printf(%.3fn,ai)end#输出tmax时刻,铸件及铸模精确温度场puts Time=#tmax sec,All temperature field(Degrees C): for i in 0.46 puts #aiend endend 运行试试,因为时间步长很小(0.015秒),所以计算时限先选小点,取20秒:s=Simulation.new()s.run结果如图:显示20秒的时候还没有完全凝固,把时间再扩大一倍,即40秒:s=Simulation.new(40)s.run计算结果:结果表明铸件在31.59秒时就已经完全凝固了

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号