Stoichtools:用于做化学计量的工具

StoichTools包含一组用于进行化学计量分析的Matlab函数。这些函数解析各种化学计量计算的标准化学符号,包括寻找分子量,平衡原子和电荷守恒的反应,寻找独立的反应,并显示希尔符号的公式。这些函数解释了变化和原子平衡,所以它们可以用来平衡离子反应和化学半反应。

Stoichtools拥有广泛的文档,包括一组工作的作业问题,展示了使用功能。

这些职能是为支持化学工程的介绍性课程而开发。金宝app

杰夫康多2010年12月18日

内容

什么是stoichtools?

Stoichtools适用于两种类型的数据:

  1. 化学公式。每个化学配方是用几乎通用的化学符号写入的绳子。例如,H2SO4.代表硫酸。分组是允许的(例如,CH3(CH2)6CH3对于辛烷值)用括号'()'或括号'[]'。充电由尾随+或 - 后跟可选数量(例如,Fe + 3.或者HSO4-)。可以包括相位信息作为终端(AQ),(L),(G)或(S)。在大多数位置可以使用细胞阵列一次使用多个公式(例如,{'H2SO4','H +','SO4-2'})。
  2. 原子代表性。许多计算需要了解电荷,以及化学物质中每种类型的原子数量。这保持在Matlab结构中,例如,例如,R.C是碳原子的数量。点后的符号是元素的标准1或2字符符号。象征问:保留给指示的费用。MATLAB结构阵列用于在单个变量中存储多个原子坏次数。

StoichTools提供以下类型化学计算的功能:

使用化学公式

计算分子量

化学计量

解决方案的家庭作业问题金宝搏官方网站

StoichTools文件夹包含许多工作的作业问题。这些是Matlab脚本,标题在图案中hw_xx.m.。每个脚本都以包含问题语句的单元格开头。随后的细胞证明了解决问题的解决方案。可以使用MATLAB发布功能来查看作业文件。

解析化学公式

鉴于一系列化学物质,r = parse_formula(s)解析化学式的细胞阵列以产生结构阵列R.该值是存在于相应公式中存在的该元素的原子数。结构阵列包括用于该组种类中的每个原子元素的字段。我们称之为物种的原子代表。

%解析甲烷parse_formula('ch4'
ANS = C:1 H:4

其他解析示例

ex {1} ='nahco3';{2} ='KFE3(SO4)2(哦)6';%jorosite.{3} =“KFe3 (AsO4) 2 (HAsO4) 2》;%钾 - 铁 - 砷酸盐{4} ='(CH4)8(H2O)46';%甲烷包裹{4} ='hso4-(aq)';为了k = 1:长度(ex)disp(ex {k});parse_formula(ex {k})结尾
NaHCO3 ANS = NA:1 H:1 C:1 O:3 KFE3(SO4)2(OH)6 ANS = K:1 FE:3 S:2 O:14H:6 KFE3(ASO4)2(HASO4)2ANS = K:1 FE:3 AS:4 O:16 H:2 HSO4-(AQ)ANS = H:1 S:1 O:4问:-1

化学缩写和同位素

parse_formula('d2o'parse_formula('etoh')Molweight({'H2O''d2o''t2o''etoh''phoh''tio2''mo2'});
ANS = D:2 O:1 Ans = C:2 H:6 O:1种摩尔。wt。------- -------- H2O 18.02 D2O 20.03 T2O 22.03 ETOH 46.07 PHOH 94.11 TIO2 79.88 MO2 NAN

非化学计量公式

化学计量的一些应用涉及复杂的化学化合物,不易通过简单的化学梭菌描述。也可以解析所谓的“非化学计量”化合物。

细菌='ch1.8n0.24o0.36';parse_formula(细菌);

从原子到化学式

考虑到原子表示的结构阵列,| S = Hillformula(R)}构建相应化学式的细胞阵列。

辛烷值辛烷值= 8;辛烷值= 18;Hillformula(辛烷)
ans ='c8h18'

希尔符号和规范表征

Hill符号是一种常用的系统,用于以标准形式写入化学公式。%Hillformula(r)产生化学物质的简单规范表示。然而,注意,对于给定公式可能存在许多异构体。

s = {'zr3b2''hbr''hcl''ch3(ch2)6ch3''naco3''cac2''ch3oh'......'ch3cooh''hno3''H2SO4''nh3''snh4''ch3hgch3''(ch3ch2)4pb'......'[CO(NH3)6] +3''[b12h12] -2'};fprintf(“-15年代-15年代\ n % % \ n ---------- ----------\ n '......'公式''山符号');为了k = 1:长度fprintf('%-15s%-15s \ n',s {k},char(hillformula(s {k}));结尾
公式山符号---------- ---------------- Zr3b2 b2zr3 hbr brh hcl ch3(ch2)6ch3 c8h18 naco3 cnao3 cac2 c2ca ch 3 4O4 hnO 3 hnO3 H2SO4 H2O4S NH3 H3N SNH4H4SN CH3HGCH3 C2H6Hg(CH3CH2)4PB C8H20PB [CO(NH3)6] + 3 COH18N6 + 3 [B12H12] -2 B12H12-2

分子量

Mw =摩尔重量(s)

给定细胞阵列的化学式,或原子表示的结构阵列,莫略计算相应的分子量载体。

%分子量的二甲基汞S ='ch3hgch3';mw = molweight('ch3hgch3');fprintf('二甲基汞的分子量(%s)=%g \ n',s,mw);
二甲基汞的分子量(CH3HGCH3)= 230.66

创建分子量表

如果molweight没有输出,那么它打印一个分子量的表。

molweight;
物种摩尔。wt。------- -------- CH3HGCH3 230.66

原子矩阵

[A,atoms,species] = atomic(s) [A,atoms,species] = atomic(r)

给定细胞阵列的化学式S.,或原子表示的结构阵列R.原子计算原子矩阵A.原子是原子元素的细胞阵列,物种是一种细胞的物种。a(i,j)是物种{j}中的元素原子{i}的原子数。在没有输出参数的情况下调用时%,原子显示原子矩阵。

s = {'ch4''O2''H2O''二氧化碳'};原子;a =原子;DISP('');DISP('a =');disp(a);
CH4 O2 H2O CO2 C:1 0 0 1 H:4 0 2 0 O:0 2 1 2 A = 1 0 0 1 4 0 2 0 0 2 1 2

离子物质的原子基质

对于离子物质,添加了另外的行,由“Q”标记,表示矩阵中包括的每种物种上的净电荷。

s = {'fe + 3''so4-2''h +''哦-''H2O''fe2(so4)3'};原子;
FE + 3 SO4-2 H + OH-H2O FE2(SO4)3 FE:1 0 0 0 0 2 H:0 0 0 1 1 2 0 O:0 4 0 1 1 12 S:0 1 0 0 0 3问:3-2 1 -1 0 0

平衡反应

给定细胞阵列的化学式,或者是一系列原子表示,stoich (s)计算满足充电和原子余额的化学计量系数。如果未指定输出,则显示平衡反应。

stoich({'napb''ch3ch2cl''(ch3ch2)4pb''nacl''PB'});stoich({'h +(aq)''oh-(aq)''h2o(l)'});
4 NaPB + 4 CH3CH2CL <=>(CH3CH2)4PB + 4 NaCl + 3 PB H +(AQ)+ OH-(AQ)<=> H2O(L)

化学计量矩阵

给定细胞阵列的化学式,或原子表示的结构阵列,v = stoich(s)计算化学计量矩阵V.v(n,r)是物种的化学计量系数N.在反应中R.。原子和化学计量矩阵满足关系a * v = 0

s = {'c8h18''O2''C''CO''二氧化碳''H2O'};v = stoich(s);DISP('化学计量矩阵v =');DISP(v);
化学计量矩阵v = -1 0 0 0 -1 0 0 0 0 -1 25-2 2 -17 2 -1 9 0 0

确定独立反应

v = stoich(s)DISP_REACTION(v,s)

化学计量矩阵的列V.代表独立反应。功能DISP_REACTION(v,s)以常规人类可读形式显示反应。

s = {'c8h18''O2''C''CO''二氧化碳''H2O'};v = stoich(s);DISP_REACTION(v,s);
C8H18 + 17 CO2 <=> 25 CO + 9 H2O O 2 + 2 CO <=> 2 CO2 C + CO2 <=> 2 CO

复杂反应的进一步实例

例子http://www.chemistryhelp.net/chemisty-calculator/chemical -equation-balancer.

stoich({'p2i4''p4''H2O'“H3PO4”'ph4i'});stoich({'[Cr(N2H4CO)6] 4 [Cr(CN)6] 3''kmno4''H2SO4''k2cr2o7'......'mnso4''二氧化碳''kno3''K2SO4''H2O'});stoich({'Cu(s)''hno3(aq)''Cu(no3)2(aq)''木栓)''h2o(l)'});stoich({'CU''hno3''H2O''Cu(No3)2''不'});stoich({'kmno4''C3H5(OH)3''k2co3''mn2o3''二氧化碳''H2O'});stoich({'k2cr2o7''fecl2''hcl''kcl'......'crcl3''fecl3''H2O'});stoich({'BI(NO3)3(H2O)5''naoh''H2O2''rucl3'......'nano3''nacl''bi2ru2o7''H2O'});stoich({'(NH4)2Moo4''nh4no3''na3po4''H2O'......'(NH4)3 [P(MO3O10)4]''nano3''nh3'});stoich({'h2''CA(CN)2''naalf4''feso4''mgsio3''ki'“H3PO4”......'pbcro4''brcl''cf2cl2''so2''pbbr2''crcl3''mgco3'......'kal(哦)4''fe(scn)3''pi3''na2sio3''caf2''H2O'});stoich({“NH4ClO4”'nay(哦)4''ru(scn)3''PBR5''ticl2cri4''beco3'......'rb2zro3''znat2''cat2i2''RB0.998YAT4'“RuS2”'bezro3''Zn(CN)2'......'nahbr1.997'“H3PO4”'ticro4''cli''H2SO4''H2O'});
10 P2I4 + 13 P4 + 128 H 2 O <=> 32 H3PO4 + 40 pH4i 10 [Cr(N2H4CO)6] 4 [Cr(CN)6] 3 + 1176 kmnO4 + 1399 H2SO4 <=> 35 K2CR2O7 + 1176 MnSO4 + 420 CO 2+ 660 KNO3 + 223 K2SO4 + 1879 H 2 O 3 Cu(S)+ 8HNO3(AQ)<=> 3 Cu(NO 3)2(AQ)+ 2 NO(G)+ 4 H 2 O(L)3 Cu + 8 hnO3 <=> 4 H 2 O + 3 Cu(NO 3)2 + 2 NO 1 1N kmnO4 + 4 C3H5(OH)3 <=> 7 K 2 CO 3 + 7mN2O3 + 5 CO2 + 16 H2O K2CR2O7 + 6 FECL2 + 14 HCl <=> 2 KCl +2 CRCl3 + 6 FECL3 + 7 H2O 2 BI(NO 3)3(H2O)5 + 12 NaOH + H 2 O 2 + 2 ruCl3 <=> 6 NaCl + 6 NaCl + Bi2Ru2O7 + 17 H 2 O 12(NH4)2Moo4 + 3 NH4NO3 + Na3PO4 <=> 12 H 2 O +(NH 4)3 [P(Mo3O10)4] + 3纳米3 + 24 NH 3 88 H 2 + 15 Ca(CN)2 + 6 Naalf4 + 10 FeSO4 + 3mgsiO3 + 6 ki + 2 H3PO4 + 6 PBCRO4 +12 BRCL + 3 CF2Cl2 + 20 SO2 <=> 6 PBBR2 + 6 CRCL3 + 3 mgCO3 + 6 kal(OH)4 + 10 Fe(SCN)3 + 2 PI3 + 3 Na 2 SiO3 + 15 CAF2 + 79 H2O NH4ClO4 + 1.752 Nay(OH)4 + 1.9188 Ru(SCN)3 + 0.69974 PBR5 + 0.37423 TICL2CRI4 + 0.87425 BECL3 + 0.87425 RB2ZRO3 + 3.3782 ZNAT2 + 0.12575 CAT2I2 <=> 1.752 RB0.998YAT4 + 1.9188 RUS2 + 0.87425 BEZRO3 + 3.3782 ZN(CN)2 +1.752 NaHBR1.997 + 0.69974 H3PO4 + 0.37423 Ticro4 + 1.7485 CLI + 1.9188 H2SO4 + 1.6596 H2O

具有离子电荷的化学方程

离子物质上的电荷由+或 - 然后是指示电荷量的可选数字。如果存在离子物质,则电荷平衡包括在化学计量系数的计算中。

stoich({'clo2 +(aq)''H3O +(AQ)''cl2(g)''h2o(l)''clo3-(aq)''clo2(aq)'});stoich({'Bi + 3(aq)''hsno2-(aq)''oh-(aq)''Bi(s)''H2O''sno3-2(aq)'});stoich({'ch3ch2oh''cr2o7-2''h +''ch3cooh''cr + 3''H2O'});stoich({'一世-''i2''Mn + 2''mno4-''h +''H2O'});stoich({'cl2''cl-''fe + 2''fe + 3'});stoich({'Mn + 2''Bio-3''h +''mno4-''Bi3 +''H2O'});stoich({'npo2 + 2''NPO2(OH)H2C2O4 +''npo2 +''二氧化碳''h +''O2'});stoich({“H3PO4”'(NH4)6MO7O24''h +''(NH4)3PO4(MOO3)12''nh4 +''H2O'});
4 ClO2 +(AQ)+ Cl2(g)+ 4 ClO3-(AQ)<=> 10 ClO2(AQ)8 H3O +(AQ)+ Cl 2(g)+ 8clo3-(aq)<=> 12 H2O(L)+ 10 clo2(aq)2 bi + 3(aq)+ 3 hsnO2-(aq)+ 9oh-(aq)<=> 2 Bi(s)+ 6 h 2 O + 3 sno3-2(aq)3 ch 3ch2Oh + 2CR2O7-2 + 16 H + <=> 3 CH3COOH + 4 Cr + 3 + 11 H 2 O 10 I- + 2mNO4- + 16 H + <=> 5 I2 + 2 Mn + 2 + 8 H2O Cl2 + 2 Fe + 2 <=> 2 Cl-+ 2 Fe + 3 4 Mn + 2 + 5 Bi3 + + 31 H 2 O <=> 15 Bio-3 + 62 H + + 4mNO4-6 NPO2 + 2 + 2 NPO2(OH)H2C2O4 + <=> 8 NPO2 + +4 CO2 + 6 H + + O 2 7 H3PO4 + 12(NH4)6MO7O24 + 51 H + <=> 7(NH4)3PO4(MOO3)12 + 51 NH4 + + 36 H2O

化学半方程

包括裸'e-'以平衡化学半反应。在酸性溶液中,如果其金宝搏官方网站中一个主要反应物含有氧气,则添加'H +'和'H2O'。在基本解决方案中,金宝搏官方网站如果其中一个主要反应物含有氧气,则添加'OH-'和'H2O'。

stoich({'Al + 3(aq)''al(s)''e-'});stoich({'cl-(aq)''cl2(g)''e-'});%酸性溶液金宝搏官方网站stoich({'mno4-(aq)''mn + 2(aq)''h2o(l)''h +(aq)''e-'});stoich({'O2(g)''h2o(l)''h +(aq)''e-'});stoich({'ag2o3''ag +''H2O''h +''e-'});stoich({'s2o3-2(aq)''(s)''h2o(l)''h +(aq)''e-'});stoich({'hooccooh(aq)'“二氧化碳(g)”'h2o(l)''h +(aq)''e-'});%碱溶液金宝搏官方网站stoich({'mno4-(aq)''mn + 2(aq)''h2o(l)''oh-(aq)''e-'});stoich({'Cr(哦)6-2''CRO4-2''H2O''哦-''e-'});stoich({'nh3oh(aq)''n2(g)''h2o(l)''oh-(aq)''e-'});stoich({'al(哦)4-(aq)''al(s)''h2o(l)''oh-(aq)''e-'});stoich({'zro(哦)2''zr''H2O''哦-''e-'});
Al + 3(aq)+ 3 e- <=> Al(s)2 cl-(aq)<=> cl2(g)+ 2 e-mnO 4-(aq)+ 8h +(aq)+ 5 e- <=> Mn + 2(AQ)+ 4 H 2 O(L)O 2(G)+ 4h +(AQ)+ 4 e- <=> 2 H 2 O(L)Ag2O3 + 6h + + 4 e-<=> 2 Ag + +3 H 2 O S2O3-2(AQ)+ 6 H +(AQ)+ 4 E- <=> 2 S(S)+ 3 H 2 O(L)HOOCCOOH(AQ)<=> 2 CO 2(G)+ 2 H +(AQ)+ 2 e-mnO 4-(aq)+ 4 h 2 O(l)+ 5 e-<=> Mn + 2(aq)+ 8h-(aq)Cr(OH)6-2 + 2 OH- <=> CRO4-2 + 4 H 2 O + 2 E-2 NH 3 OQ(AQ)+ 4 OH-(AQ)<=> N 2(G)+ 6 H 2 O(L)+ 4 e-Al(OH)4-(AQ)+ 3 e-  <=> al(s)+ 4 oh-(aq)zro(OH)2 + H2O + 4 E- <=> Zr + 4 OH-

嵌套公式

Matlab正则表达式功能用于解析化学公式。虽然这使StoichTools变得简单和快速,但正则表达式的一个缺点是很难匹配嵌套表达式。因此,嵌套仅限于括号内的括号表达式或括号内的括号。根据这一规则,[Fe2(SO4)3]和(Fe2[SO4]3)是允许的,但(Fe2(SO4)3)和[Fe2[SO4]3]不允许。在实践中,化学公式很少需要超过两层的嵌套。

DISP(“这些工作都很好。”);molweight({'[fe2(so4)3]''(fe2 [so4] 3)'});fprintf('\ n \ n');尝试molweight({'(Fe2(SO4)3)''[fe2 [so4] 3]'})抓住例外(“但这没有。”);disp(例外);结尾
这些工作很好。物种摩尔。Wt . ------- -------- [ 价(SO4) 3) 399.88(铁(SO4) 3) 399.88但这并不。不能解析公式:(Fe2(SO4)3) ^

版本历史记录