24小时热门版块排行榜    

查看: 599  |  回复: 1

lookgs

木虫 (小有名气)

[求助] Matlab做gui界面问题

本人菜鸟一枚,做个图像,需要用界面输入几个变量的数值进行运算,总是出错。

界面如下图,需输入六个变量进行计算

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
Va=str2num(get(handles.edit1,'string'));
Vb=str2num(get(handles.edit2,'string'));
Pa=str2num(get(handles.edit3,'string'));
Pb=str2num(get(handles.edit4,'string'));
Ta=str2num(get(handles.edit5,'string'));
Tb=str2num(get(handles.edit6,'string'));
A=str2num(get(handles.edit7,'string'));


k=1.4;
K=0.0397
Rg=286.9865;
Cv=717.4663;
Cp=1.0045e+003;

t=0.00003;
bata=(2/(k+1))^(k/(k-1));


Ma=Pa*Va/(Rg*Ta);%质量
Mb=Pb*Vb/(Rg*Tb);
mda=Pa/(Rg*Ta)%1罐内的密度
mdb=Pb/(Rg*Tb)%2罐内的密度

n=0;
N=[n];
Paa=[Pa];
Pbb=[Pb];
while  Pa-Pb>=0.0001
if      Pa*bata>=Pb;%声速流动
        mda=Pa/(Rg*Ta);%1罐内的密度
        %mdb=Pb/(Rg*Tb);%2罐内的密度
        S2=(2*k*Rg*Ta/(k+1))^(1/2); %出口处的临界速度值
        md2=mda*(2/(k+1))^(1/(k-1));
        m=md2*A*S2*0.0003;%质量流量
        Tb=(m*Ta+Mb*Tb)/(m+Mb);
        Mb=Mb+m;
        Pb=Mb*Rg*Tb/Vb
        
        Pbb=[Pbb Pb];
        Ma=Ma-m;
        Pa=Ma*Rg*Ta/Va
        Paa=[Paa Pa];
        n=n+t;
        N=[N n];
else
     
   
   
   

        mda=Pa/(Rg*Ta);%1罐内的密度
        md2=(Pa/Pb)^(1/k)*mda
        S2=((Pa-Pb)/md2)^(1/2)
        %mdb=Pb/(Rg*Tb);%2罐内的密度
        m=md2*A*S2*0.0003;%质量流量
        Tb=(m*Ta+Mb*Tb)/(m+Mb);
        Mb=Mb+m;
        Pb=Mb*Rg*Tb/Vb
        Pbb=[Pbb Pb];
        Ma=Ma-m;
        Pa=Ma*Rg*Ta/Va
        Paa=[Paa Pa];
        n=n+t;
        N=[N n];
end
end
Pa=real(Pa);
Pb=real(Pb);
plot(Paa,Pbb);
Matlab做gui界面问题
1
回复此楼

» 猜你喜欢

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

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

baobiao007

木虫 (职业作家)

中国特色

为何不直接贴出  你的错误信息 ?
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2013-12-22 12:28:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lookgs 的主题更新
信息提示
请填处理意见