📄 例6-5.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 + -