MATLAB×物理化学实验:乙醇水溶液偏摩尔体积测定
版权声明:
如要转载,请与我联系。
摘要
乙醇-水溶液属于多组分体系,其广度性质-体积V并不单纯是两者体积之和。该文参照物理化学的知识原理,利用实验数据,运用Matlab求解,最后得出乙醇水溶液的体积。
关键词:乙醇水溶液、比重瓶法、偏摩尔体积
理论依据
一、比重瓶法测密度
其核心思想是利用标准液求解待测液的相对密度。由于盛入比重瓶的液体体积相同,因此可将两者体积消去,余下的是比重瓶和瓶内液体的总质量和参比液体的密度。公式如下:
ρ
2
=
m
2
−
m
0
m
1
−
m
0
ρ
1
\rho_2=\frac{m_2-m_0}{m_1-m_0} \rho_1
ρ2=m1−m0m2−m0ρ1
式中,
m
2
m_2
m2是待测液的质量,
ρ
2
\rho_2
ρ2是待测液的密度,
m
0
m_0
m0是比重瓶的质量,
m
1
m_1
m1是标准液的质量,
ρ
1
\rho_1
ρ1是标准液的密度,一般以蒸馏水/去离子水作为标准液,以实验温度下的蒸馏水/去离子水的密度作为标准液的密度。
二、多组分液体的体积
加和公式
多组分体系的体积是广度性质,故可以使用多组分体系的加和公式:
V
=
∑
i
=
1
∞
n
i
V
i
V=\sum^\infty_{i=1}n_iV_i
V=i=1∑∞niVi
我们实验使用的是乙醇水溶液,体系中只有乙醇(B)和水(A)两种组分,故加和公式写为:
V
=
n
A
V
A
+
n
B
V
B
V=n_AV_A+n_BV_B
V=nAVA+nBVB
在此公式的基础上,除以一个
M
M
M(组分总质量),等式的左边为该各组分下的密度的倒数,称为比容
a
a
a;
V W = n A V A W + n B V B W \frac VW=\frac{n_AV_A}{W}+\frac{n_BV_B}{W} WV=WnAVA+WnBVB
由于物质的量 n i = W i M i n_i=\frac {W_i}{M_i} ni=MiWi ,
V W = W A V A W M A + W B V B W M B \frac VW=\frac{W_AV_A}{WM_A}+\frac{W_BV_B}{WM_B} WV=WMAWAVA+WMBWBVB
W B W = W B % \frac {W_B}{W}=W_B\% WWB=WB%,即质量分数W%;
V W = a \frac VW=a WV=a, V i W i = a i \frac {V_i}{W_i}=a_i WiVi=ai,即比容 a a a和组分 i i i的偏摩尔体积(因为摩尔质量是常数)。公式写为:
a
=
W
A
%
a
A
+
W
B
%
a
B
a={W_A\%}{a_A}+{W_B\%}{a_B}
a=WA%aA+WB%aB
显然,A、B的质量分数之和为1。此实验研究乙醇(B)多一些,因此将A的质量分数
W
A
%
W_A\%
WA%替换为
(
1
−
W
B
%
)
(1-W_B\%)
(1−WB%)。
a
=
(
1
−
W
B
%
)
a
A
+
W
B
%
a
B
a={(1-W_B\%)}{a_A}+{W_B\%}{a_B}
a=(1−WB%)aA+WB%aB
推至此步可得一个比容a正比于质量分数
W
B
%
W_B\%
WB%,若此时用比容
a
a
a对
W
B
%
W_B\%
WB%求导后,其导函数为组分B偏摩尔体积
a
B
a_B
aB和组分A的偏摩尔体积
a
A
a_A
aA之差。
∂
a
∂
W
B
%
=
−
a
A
+
a
B
\frac{\partial a}{\partial W_B\%}=-a_A+a_B
∂WB%∂a=−aA+aB
由
W
B
%
W_B\%
WB%的定义域易知,组分B偏摩尔体积
a
B
a_B
aB和组分A偏摩尔体积
a
A
a_A
aA就是其切线在
W
B
%
=
0
W_B\%=0
WB%=0和
W
B
%
=
1
W_B\%=1
WB%=1时切线纵坐标的值。
求解思想
我们通过乙醇水溶液偏摩尔体积的实验,得到了多组密度和质量分数相关联的数据。以实验数据为蓝本。用Matlab进行多项式拟合,得到曲线公式。要想得到多项式曲线的切线方程,就要对多项式进行求导。这时,我们有了曲线方程和曲线的切线方程,只需代入需要求解的质量分数进行求解,利用切线方程与 W B % = 0 W_B\%=0 WB%=0和 W B % = 1 W_B\%=1 WB%=1的交点,求得其偏摩尔体积 V V V。
另外,为方便观察曲线是否正常,进行画图。
核心语句:
polyfit(x,y,n) #最小二乘法对[x,y]拟合进行n次拟合
polyder(q) #多项式q进行求导(即对应项与次数相乘)
绘图相关语句:
plot(x,y)
lengend('String1','String2')
xlabel('String')
ylabel('String')
gird on
程序实现
以下matlab的.m函数文件,注意使用时候需要将文件名和函数名设置相同。
程序内容
%{
filename:Ethanol_water.m
author:Lyn#reo
create:2020.10.15
#可以根据需要修改
#如有二次发送的必要
#请留下修改者和修改日期:)
#感激您的真诚#
%}
%程序开始
function Ethanol_water(WB,a,M,g)
p1=polyfit(WB,a,3); %三次拟合
rangeWB =0:0.05:1; %范围0~1,以0.05为步长
a1=polyval(p1,rangeWB); %算出区域内拟合曲线的所有值
disp('a-WB%多项式曲线公式')
a_=poly2str(p1,'WB%')
p2=polyder(p1); %多项式求导
ak=polyval(p2,M);
yb=polyval(p1,M);
k=ak; %切线斜率
b=yb-k*M; %切线截距
aL=polyval([k,b],rangeWB); %以切线斜率和截距算大小
aA=aL(1); %读取切线在质量分数WB%=0的比容a的大小,即aA的值
disp('A(水)的偏摩尔体积')
VA=(aA*18);
fprintf('VA=%.2fcm^3\n',VA) %输出VA,即A(水)的偏摩尔体积
aB=aL(end); %读取切线在质量分数WB%=1的比容a的大小,即aB的值
disp('B(酒精)的偏摩尔体积')
VB=(aB*46);
fprintf('VB=%.2fcm^3\n',VB) %输出VB,即B(酒精)的偏摩尔体积
fprintf('%dg该液体的体积\n',g)
aa=(1-M)* aA+M*aB; %质量分数为M时比容a的大小
V=g*aa; %密度为溶液总质量g和比容的乘积
fprintf('V=%.2fcm^3\n',V)
%绘图指令的一些设定
plot(rangeWB,a1,'-bo',rangeWB,aL,'-.r',M,yb,'h')
legend('a-WB拟合曲线','质量分数30%的切线','M点')
title('比容a-质量分数WB%')
xlabel('质量分数WB%')
ylabel('比容a')
grid on
%程序结束
该程序需要输入
W B W_B WB与 a a a对应的数据;用来拟合多项式方程并算出切线方程
需要求解的 M M M位置以及;用来求解M位置的各项参数
多少克- g g g;用来计算 g g g克下该溶液的总体积
范例
注:数据是我为举例随机顺序生成的,与真实数据差距巨大。为避免不必要的麻烦,还请不要照搬。
质量分数 W B % W_B\% WB% | 比容 a a a |
---|---|
0% | 1.0020231 |
20% | 1.0352304 |
40% | 1.0732232 |
60% | 1.1332523 |
80% | 1.1952545 |
100% | 1.2707437 |
输入数据
x=[0,0.2,0.4,0.6,0.8,1]
y=[1.0020231,1.0352304,1.0732232,1.1332523,1.1952545,1.2707437]
调用函数
%以M=0.3,g=100为例
Ethanol_water(x,y,0.3,100)
执行结果
>> Ethanol_water(x,y,0.3,100)
a-WB%多项式曲线公式
a_ =
' -0.019308 WB%^3 + 0.16622 WB%^2 + 0.12127 WB% + 1.0025'
A(水)的偏摩尔体积
VA=17.79cm^3
B(酒精)的偏摩尔体积
VB=55.40cm^3
100g该液体的体积
V=105.33cm^3
写在最后
文案、代码、制作:Lyn#reo
该文基于我的实验课,是其中一个小实验。
其数据处理可以用MATLAB进行,于是就有了这篇文章。
尽管excel也能处理,但想用matlab装*
第一次在CSDN的写文章,如有语言不通畅敬请谅解请加以指正。
如果有人看的话,祝你变得更强,下次见
参考文献
·物理化学.上册/傅献彩等编.——5版——北京:高等教育出版社,2005.7
·物理化学实验(工科类专业用)/李晔,韦美菊主编.——北京:化学工业出版社,2013.3
·MATLAB与数学实验/艾冬梅等编著.——2版.——北京:机械工业出版社,2014.6