⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 例6-5.m

📁 MATLAB 7基础与提高书的配套源程序
💻 M
字号:
%变量和图形初始化,输入气体的摩尔数为nMoles,初始压力为P(1),初始容积V(1)
%气体常数R=8.314;给定起始总功WTotal=0;点序号iPoint=1;画等温线使用
%的点数NCurve=100;P-V图第一点坐标PPlot=P(1);VPlot=V(1)

nMoles=input('输入nMoles: ');
P(1)=input('输入初始压力: ');
V(1)=input('输入初始容积: ');
R=8.314;
iPoint=1;
WTotal=0;
NCurve=100;
%算出初始温度
T(1)=P(1)*V(1)/(nMoles*R);                            
PPlot=P(1);
VPlot=V(1);

%在进入循环之前,设置两个不相等的PathType和QuitType值
QuitType=4; PathType=0;
while(PathType~=QuitType)                            %在菜单上选择“退出”之前不断循环
    %选择路径类型或退出
    iPoint=iPoint+1;
    fprintf('对过程#%g\n',iPoint-1);
    PathType=menu(sprintf('过程%g:选择下一路径',iPoint-1),...          
        '等压','等容','等温','退出'); 
    switch PathType
    case 1                                          	%等压路径
        V(iPoint)=input('输入新容积:');
        P(iPoint)=P(iPoint-1);                          	%压力不变
        T(iPoint)=P(iPoint)*V(iPoint)/(nMoles*R);        	%按新容积算出温度
        W=P(iPoint)*(V(iPoint)-V(iPoint-1));            	%计算等压过程所做的功
        VPlot=[VPlot,V(iPoint)];                       	%加上新的容积和压力点,用以绘图
        PPlot=[PPlot,P(iPoint)];
        
     case 2                                         	%等容路径
          P(iPoint)=input('输入新压力:');
          V(iPoint)=V(iPoint-1);                      	%容积不变
          T(iPoint)=P(iPoint)*V(iPoint)/(nMoles*R);      	%按新压力算出温度
          W=0;                                    	%等容路径上所做的功为零
          VPlot=[VPlot,V(iPoint)];                    	%加上新的容积和压力点,用以绘图 
          PPlot=[PPlot,P(iPoint)];
          
     case 3
         V(iPoint)=input('输入新容积:');
         T(iPoint)=T(iPoint-1);                        	%温度不变
         P(iPoint)=nMoles*R*T(iPoint)/V(iPoint);        	%按新容积求新压力
         W=nMoles*R*T(iPoint)*log(V(iPoint))/V(iPoint-1);	%求所做的功         
         
        %用元素群运算求等温路径上的P和V,加进绘图数据中
        VNew=linspace(V(iPoint-1),V(iPoint),NCurve);
        PNew=nMoles*R*T(iPoint)./VNew;
        VPlot=[VPlot,VNew];                           %将新的V、P点加入绘图数据中
        PPlot=[PPlot,PNew];   
     
      otherwise
    end
    
    %画出到目前为止的PV图
    if(PathType~=QuitType)
        WTotal=WTotal+W;                             %将新做的功加进总功
         figure(gcf);
         plot(V,P,'o',VPlot,PPlot,'-')                     %图形窗移前,绘图
    end
end  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -