24小时热门版块排行榜    

查看: 194  |  回复: 0

chuckxian

新虫 (初入文坛)

[求助] 各位大神看看程序···结果有点问题,找不到原因

在调试程序时··我分布执行第二个for循环··显示每步的p值··理论上每循环一次r,显示的应该是该r层所有空间点的值·(应该是115个),循环完之后应该是显示200X115个值
但是奇怪的是我单步执行时发现,没循环一次r···就会把所有的值列遍而且也不对····请问下,这是怎么回事··是我对p(x,y)这类的语法理解错误了吗····我是将求解求解域离散成时间层和空间层的网格····程序主要是逐个时间层求解各个值
u=zeros(200,115);p=zeros(200,115);
deltat=0.01;%%时间步长
deltax=6;%%57节车,每辆车分成两段,过115个节点,列车管总长度除以节点数,得到空间步长
p(1,1:115)=6;%%所有车,充气前的空气压力初值
u(1,1:115)=0;%%所有车,充气前的空气速度
for y=1:60
p(y,1)=6+(8-6)*(1-exp(-3*deltat*y));%%假定往第一辆车充气,空气压力由指数函数决定
end
u(:,115)=0;%%假定终端的速度给定
D=31.75/1000;%%管道直径
Q=0.001;%%管道泄漏量,单位是pa/s,空气压强的单位都是pa
c=deltat/deltax;
f=0.03;%%管道摩擦系数

for r=1:199  %%在时间层上进行逐层求解
   
    p(r+1,2:115)=p(r,2:115).*(1-c*(u(r,2:115)-u(r,1:114)))-u(r,2:115).*(p(r,2:115)-p(r+1,1:114)).*c-Q*deltat%%问题就在此句时发现的
    u(r+1,114:-1:1)=u(r,114:-1:1).*(1-c.*(u(r+1,115:-1:2)-u(r,114:-1:1)))-c./p(r,114:-1:1).*(p(r,114:-1:1)-p(r,115:-1:2))-2*f*abs(u(r,114:-1:1)).*u(r,114:-1:1)/D;
   
end
%%求解语句我删掉了···谢谢各位了····
回复此楼

» 猜你喜欢

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

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 chuckxian 的主题更新
信息提示
请填处理意见