24小时热门版块排行榜    

查看: 2730  |  回复: 8

hiqun

禁虫 (正式写手)

[求助] DEFINE_SOURCE(energy,c,t,ds,eqn)条件赋值的相关问题

最近做固体发热,采用DEFINE_SOURCE(energy,c,t,ds,eqn)写的udf函数,程序l列举如下:
#include "udf.h"
DEFINE_SOURCE(energy,c,t,ds,eqn)
{real source;
real temp;
temp=C_T(c,t);

if(temp>2000)
{source=(temp-10)*1000;
dS[eqn]=0;
}
else
{source=temp*1000;
dS[eqn]=0;
}
return source;
}

鉴于水平有限,写这个的目的,就是希望,温度T>2000K的时候,加热功率自动减小;低于2000K时,维持此加热功率;目前调试下来,加热功率是一直降低的,无法实现我要的功能,恳请帮忙指导一下,在此谢过。

[ Last edited by hiqun on 2012-11-22 at 15:53 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

47425804

木虫 (正式写手)



xiegangmai: 金币+1, 谢谢参与 2012-11-26 19:11:50
从程序描述的函数来看,若温度低于2000k,散热又太快,功率就是越来越小的。

[ 发自手机版 http://muchong.com/3g ]
2楼2012-11-22 23:16:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与 2012-11-24 20:49:29
hiqun: 金币+25, ★★★很有帮助, 谢谢。 2012-11-27 21:30:29
大概看了一下你的程序,你无法通过source=temp*1000保证加热功率维持,试想,如果你散热很强,温度一直降低,那么你的source值是不是就一直降低,而不是你想要的维持。
   所以,设定的source可以和T无关。
可以改为:


#DEFINE K 90
if(temp>2000)
{source=CURRENT_TIME*K*1000;
dS[eqn]=0;
}
else
{source=1000;
dS[eqn]=0;
}

其中,k是一个因子,具体可调。
   当然,这个程序是抛砖引玉,只是一种思路,将功率和时间等联系起来。低于2000一下固定值等。
3楼2012-11-23 21:03:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

上面的DEFINE应该小写。。。。。
4楼2012-11-23 21:04:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

哥本哈根月光

铁杆木虫 (正式写手)

引用回帖:
3楼: Originally posted by fangdian at 2012-11-23 21:03:33
大概看了一下你的程序,你无法通过source=temp*1000保证加热功率维持,试想,如果你散热很强,温度一直降低,那么你的source值是不是就一直降低,而不是你想要的维持。
   所以,设定的source可以和T无关。
可以 ...

我有一个疑问, dS[eqn]=0.0是此UDF必须要写进去的吗?
你眉目如当年,流转我心间
5楼2012-11-25 11:47:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fanxueyi

金虫 (小有名气)

【答案】应助回帖


xiegangmai: 金币+1, 谢谢参与 2012-11-26 19:11:58
dS[]=0.0必须写,但是你最后在return前写一个就够了。
苦闷的博士
6楼2012-11-25 20:23:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
引用回帖:
6楼: Originally posted by fanxueyi at 2012-11-25 20:23:07
dS[]=0.0必须写,但是你最后在return前写一个就够了。

dS[]=0在这段程序中起啥作用呢?不写好像也能执行这段UDF啊

[ 发自手机版 http://muchong.com/3g ]
7楼2012-11-25 23:09:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

引用回帖:
7楼: Originally posted by 哥本哈根月光 at 2012-11-25 23:09:21
dS[]=0在这段程序中起啥作用呢?不写好像也能执行这段UDF啊
...

dS[]这个是和收敛速度相关的,一般不影响结果,但是影响收敛速度
8楼2012-11-26 09:32:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

哥本哈根月光

铁杆木虫 (正式写手)

引用回帖:
8楼: Originally posted by fangdian at 2012-11-26 09:32:42
dS[]这个是和收敛速度相关的,一般不影响结果,但是影响收敛速度...

谢谢,学到了
你眉目如当年,流转我心间
9楼2012-11-26 13:40:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hiqun 的主题更新
信息提示
请填处理意见