当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:介绍了用电导法测定乙酸解离常数的实验原理和步骤,给出了用计算机对电导法测定乙酸解离常数的实验数据 进行处理的软件设计方法,同时给出了用Visual FoxPro 6.0编写电导法测定乙酸解离常数的处理软件的基本结构和部分程 序代码。

引言

高校实验是传授知识和技能、训练科学思维和方法、培 养科学精神和品德、全面实施高等教育的重要环节,在高等 教育中起着无法替代的作用。物理化学实验是一门独立的基 础实验课程。随着电子技术、计算机技术在高等教育中的应用, 高校的物理化学研究已经渗透到自然科学的各个领域,并派 生了许多与物理化学相关的交叉学科,因此,物理化学实验 是通往现代科学研究的桥梁。物理化学实验的主要目的是使 学生初步了解物理化学的研究方法与技能,学会重要的物理化 学性能测定,熟悉物理化学实验现象的观察和记录、实验条 件的判断和选择、实验数据的测量和处理、实验结果的分析 和归纳等一整套实验方法,加深对物理化学基本理论的理解, 培养学生严谨认真、实事求是的科学态度和作风以及解决实 际化学问题的能力。

为此,本文给出了如何用Visual FoxPro 6.0软件来编写 电导法测定乙酸解离常数的具体方法。

1弱电解质电离常数的测定

1.1测定原理

一般情况下,当AB型弱电解质在溶液中的电离达到平 衡时,电离平衡常数Kc与原始浓度C和电离度a有以下关系:

(1)

由于在一定温度下,Kc是常数,因此,可以通过测定AB 型弱电解质在不同浓度时的a值来通过式(1)求出Kc。

醋酸溶液的电离度可用电导法来测定。一般情况下,将 电解质溶液注入电导池内,溶液电导G的大小与两电极之间 的距离/成反比,与电极的面积A成正比:

G=kA/1(2)

式中,A〃为电导池常数,以Ke”表示;为电导率。其物理意 义表示在两平行且相距1 m,面积均为1 m2的两电极间,电 解质溶液的电导,其单位以S • m-1表示。

由于电极的/和A不易精确测量,因此,实验中可用一 种已知电导率值的溶液,先求出电导池常数Kce,„然后把待测 溶液注入该电导池,测出其电导值,再根据式Q)求出其电导率。

溶液的摩尔电导率是把含有1Q电解质的溶液置于相距 为1 m的两平行板电极之间的电导。通常以&表示,单位为 S • m2 • mol-1^摩尔电导率与电导率的关系为:

TOC \o "1-5" \h \z

/Km

以CAm对1/Am作图,其直线的斜率为(K3)2Kc。这样, 若已知Km值,就可求得Kc。

1.2实验步骤

基于上述原理,所确定的实验步骤如下:

调整恒温槽温度为25.0笆±0.3 °C。

用洗净、烘干的叉形管1支,加入20 mL的0.1 mol/ L醋酸溶液,测其电导率。

⑶用吸取醋酸的移液管从电导池中吸出10 mL溶液弃去, 用另一支液管取10 mL电导水注入电导池,混合均匀,等温 度恒定后,测其电导率。如此操作,共稀释四次。

(4)倒去醋酸,洗净电导池,然后用电导水淋洗。最后注 入20 mL电导水,测其电导率。

2软件设计

2.1软件开发工具的选择

本软件使用 Visual FoxPro 6.0 开发制作。Visual FoxPro

6.0是一个强大的Windows平台开发工具,具有面向对象编 程的特点和可视化的编程方法,Visual FoxPro 6.0可提供对象 和事件处理模式,并可利用面向对象编程(OOP)的特点,使用 户不用加入太多代码,就可方便地写出具有模拟操作系统功能 的、标准的Windows程序。Visual FoxPro 6.0是以关系模型 为基础的、功能强大的数据库管理系统(DBMS),它能够迅 速而简单地建立用户的数据库,从而方便地使用和管理数据。

Visual FoxPro 6.0是自含型数据库管理系统,是解释型和编译 型混合的系统,可以解释方式定义并操纵数据库,也可以将 操作过程编写为程序进行编译,然后脱离系统直接运行,由 它生成的软件,小巧灵活,使用方便,占用内存小[6]。

2.2系统功能

本系统主要具有以下几方面的功能:

2.2.1实验选项信息的输入、修改与保存

本系统可以随时方便地输入、修改实验选项信息。由于 实验结果会受到环境的影响,因此,需要客观准确地保存室温、 大气压、实验时间、所用仪器编号等实验选项信息,以方便 以后的数据分析。

2.2.2实验数据的输入、计算、保存与显示

本系统可以方便地输入测定的实验数据,并精确地计算 和明确地显示。本文的实验过程需要测定乙酸的电导率、水 的电导率等数据,由于这些数据通常都以科学计数法表示, 输入比较困难,同时,这些数据都比较小(在10-5左右),而 计算的结果可能会达到10-10左右,这就给数据的输入、计算、 保存、显示都提出了很高的要求。

2.2.3实验数据的输出与读取

本系统对于测定的实验数据可随时方便地保存与读取。 此实验需要测定的数据较多,实验用时较长,对实验数据方 便的保存与读取将会让实验过程变得简单、轻松,减少不必 要的重复,同时也保证了数据的准确性。

2.2.4实验结果的显示

通过本系统可以快速计算出实验结果并显示。通过结果 的显示,有利于发现误差较大的数据,并及时修改。

2.2.5实验报告单的输出

本系统可以方便、快速地生成专业的实验报告单。记录 实验者、实验温度、室温、实验时间、所用仪器,实验结果 等与实验相关的所有信息,并对实验数据进行统计处理。

2.3关键程序设计及说明

根据以上实验需求,本系统可由实验选项信息输入、实 验数据输入、实验结果显示、实验报告单输出等四大模块组成。 2.3.1实验数据的输入与计算程序

由于实验中测定的数据是以科学计数法表示的,为了方 便、快速输入,本设计采用文本框加微调按钮的方式输入。 而对于显示,由于在计算机中用科学计数法表示的数字将保 留15位有效数字,不利于查看,因此,本系统将计算的结果 四舍五入保留4位有效数字后转化成文本类型,以便于观察。 具体代码如下:

**以下是输入数据验证程序

if thisform.spinner1.value>100 or thisform.spinner1.

value<0

messagebox(" 您输入的 温度 数值不正确,请检查

更改!",0+16," 错误提示 ")

thisform.spinner1.setfocus

return 0

endif

if thisform.text3.value<=0

messagebox(" 您输入的 乙酸溶液浓度 数值不正确,

请检查更改!",0+16," 错误提示 ")

thisform.text3.setfocus

return 0

endif

if thisform.text2.value<0

messagebox(" 您输入的 电导水电导率 数值不正确,

请检查更改!",0+16," 错误提示 ")

thisform.text2.setfocus

return 0

endif

if thisform.text2.value=0

P=messagebox(" 您输入的 电导水电导率为 0 ,是否

继续?",4+32+256," 提示信息 ")

if p=7

thisform.text2.setfocus

return 0

endif

endif

if thisform.text1.value<0

messagebox(" 您输入的 原溶液电导率 数值不正确,

请检查更改!",0+16," 错误提示 ")

thisform.text1.setfocus

return 0

endif

if thisform.text1.value=0

p=messagebox(" 您输入的 原 溶液电导率为 0 ,是

否继续?",4+32+256," 提示信息 ")

if p=7

thisform.text1.setfocus

return 0

endif

endif

if thisform.text4.value<0

messagebox(" 您输入的 第 一 次稀释溶液电导率 数

值不正确,请检查更改!",0+16," 错误提示 ")

thisform.text4.setfocus

return 0

endif

if thisform.text4.value=0

p=messagebox(" 您输入的 第 一 次稀释溶液电导率

为 0 ,是否继续?",4+32+256," 提示信息 ")

if p=7

thisform.text4.setfocus

return 0

endif

endif

if thisform.text5.value<0

messagebox(" 您输入的 第 二 次稀释溶液电导率 数

值不正确,请检查更改!",0+16," 错误提示 ")

thisform.text5.setfocus

return 0

endif

if thisform.text5.value=0

p=messagebox(" 您输入的 第 二 次稀释溶液电导率

为 0 ,是否继续?",4+32+256," 提示信息 ")

if p=7

thisform.text5.setfocus

return 0

endif

endif

if thisform.text6.value<0

messagebox(" 您输入的 第 三 次稀释溶液电导率 数

值不正确,请检查更改!",0+16," 错误提示 ")

thisform.text6.setfocus

return 0

endif

if thisform.text6.value=0

p=messagebox(" 您输入的 第 三 次稀释溶液电导率

为 0 ,是否继续?",4+32+256," 提示信息 ")

if p=7

thisform.text6.setfocus

return 0

endif

endif

if thisform.text7.value<0

messagebox(" 您输入的 第 四 次稀释溶液电导率 数

值不正确,请检查更改!",0+16," 错误提示 ")

thisform.text7.setfocus

return 0

endif

if thisform.text7.value=0

p=messagebox(" 您输入的 第 四 次稀释溶液电导率

为 0 ,是否继续?",4+32+256," 提示信息 ")

if p=7

thisform.text7.setfocus

return 0

endif

endif

if thisform.text1.value=0 and thisform.text4.value=0 and

thisform.text5.value=0 and thisform.text5.value=0 and thisform.

text7.value=0

messagebox(" 您没有输入任何电导率数据,请重新

输入!",0+16," 错误提示 ")

thisform.text1.setfocus

return 0

endif

2.3.2 实验数据输出程序

为了方便随时保存实验数据,本设计制作了实验数据

保存表单,可将实验数据保存到任意路径。具体代码如下:

“输出数据”按钮的单击事件代码如下:

** 以下检测试验数据有效性

do case

case thisform.spinner1.value>100 or thisform.spinner1.

value<0

messagebox(" 您输入的 温度 数值不正确,请检查

更改!",0+16," 错误提示 ")

thisform.spinner1.setfocus

return 0

case thisform.text3.value<=0

messagebox(" 您输入的 乙酸溶液浓度 数值不正

确,请检查更改!",0+16," 错误提示 ")

thisform.text3.setfocus

return 0

case thisform.text2.value<0

messagebox(" 您输入的 电导水电导率 数值不正

确,请检查更改!",0+16," 错误提示 ")

thisform.text2.setfocus

return 0

case thisform.text1.value<0

messagebox(" 您输入的 原溶液电导率 数值不正

确,请检查更改!",0+16," 错误提示 ")

thisform.text1.setfocus

return 0

case thisform.text4.value<0

messagebox(" 您输入的 第一次稀释溶液电导率 数

值不正确,请检查更改!",0+16," 错误提示 ")

thisform.text4.setfocus

return 0

case thisform.text5.value<0

messagebox(" 您输入的 第二次稀释溶液电导率 数

值不正确,请检查更改!",0+16," 错误提示 ")

thisform.text5.setfocus

return 0

case thisform.text6.value<0

messagebox(" 您输入的 第三次稀释溶液电导率 数

值不正确,请检查更改!",0+16," 错误提示 ")

thisform.text6.setfocus

return 0

case thisform.text7.value<0

messagebox(" 您输入的 第四次稀释溶液电导率 数

值不正确,请检查更改!",0+16," 错误提示 ")

thisform.text7.setfocus

return 0

case thisform.text1.value=0 and thisform.text4.value=0

and thisform.text5.value=0 and thisform.text5.value=0 and

thisform.text7.value=0

messagebox(" 您没有输入任何电导率数据,请重新

输入!",0+16," 错误提示 ")

thisform.text1.setfocus

return 0

OTHERWISE

&& 以下是文件路径选择和命名

do form save

&& 以下是用输入的名称在制定的路径生成数据文件

if not empty(wjlj)

creat dbf ("&wjlj") ; && 此处的 " " 不可省略

(SPINNER1 n(4,2),;

TEXT3 n(8,4),;

TEXT2 N (5,4),;

SPINNER3 i,;

text1 n(8,4),;

spinner2 i,;

text4 n(8,4),;

spinner4 i,;

text5 n(8,4),;

spinner5 i,;

text6 n(8,4),;

spinner6 i,;

text7 n(8,4),;

spinner7 i )

&& 以下是数据保存

insert into "&wjlj" values (thisform.spinner1.value,; &&

此处的“”不可省略

thisform.text3.value,;

thisform.text2.value,;

thisform.spinner3.value,;

thisform.text1.value,;

thisform.spinner2.value,;

thisform.text4.value,;

thisform.spinner4.value,;

thisform.text5.value,;

thisform.spinner5.value,;

thisform.text6.value,;

thisform.spinner6.value,;

thisform.text7.value,;

thisform.spinner7.value)

use

messagebox(" 数据保存成功 ! ",0+64," 提示信息 ")

else

messagebox(" 您的数据尚未保存! ",0+48," 提示信息 ")

endif

endcase

“数据保存”表单的“路径选择”按钮单击事件代码如下:

cdir=getdir()

if empty(cdir)

thisform.text2.value="mainp"+"\DATA\"

else

thisform.text2.value=cdir

endif

thisform.command3.setfocus

thisform.refresh

“数据保存”表单的“保存”按钮单击事件代码 [7] 如下:

if empty(alltrim(thisform.text1.value))

messagebox(" 请输入文件名称!",0+16," 错误提示 ")

thisform.text1.setfocus

return 0

endif

cdir=thisform.text2.value

cdirfile="cdir+alltrim(thisform.text1.value)"

public wjlj

wjlj=(&cdirfile)

thisform.release

2.3.3 实验数据读取程序

为了方便数据输入,本设计还制作了实验数据读取表

单,以随时方便地从任意位置读取以前保存的试验数据。具

体代码 [8] 如下:

“读取数据”按钮的单击事件代码如下:

do form read

** 以下是数据查询

if empty(dqlj)

messagebox(" 没有可读取的数据! ",0+48," 提示信

息 ")

else

** 定义数组 temp1

dimension temp1(1)

SELECT *;

FROM "&dqlj"; && 此处的 "" 不可省略

inTO array temp1

if alen(temp1)<>14

messagebox(" 您选取的数据文件错误! ",0+16," 错

误提示 ")

else

** 以下是数据显示

thisform.spinner1.value=temp1(1)

thisform.text3.value=temp1(2)

thisform.text2.value=temp1(3)

thisform.spinner3.value=temp1(4)

thisform.text1.value=temp1(5)

thisform.spinner2.value=temp1(6)

thisform.text4.value=temp1(7)

thisform.spinner4.value=temp1(8)

thisform.text5.value=temp1(9)

thisform.spinner5.value=temp1(10)

thisform.text6.value=temp1(11)

thisform.spinner6.value=temp1(12)

thisform.text7.value=temp1(13)

thisform.spinner7.value=temp1(14)

THISFORM.refresh

messagebox(" 数据读取成功! ",0+64," 提示信息")

endif

endif

“读取数据”表单的“路径选择”按钮单击事件代码如下:

if curdir()<>"mainp"+"\DATA\"

CD &MAINP.+"\DATA\"

endif

cdir=getfile(" 数据文件 :dbf"," 数据文件名 :","",0," 选择文

件 ")

if empty(cdir)

thisform.command3.enabled=.f.

thisform.command2.setfocus

else

thisform.text1.value=cdir

thisform.command3.enabled=.t.

thisform.command3.setfocus

endif

cd ..

thisform.refresh

2.4系统界面设计与使用方法

为了更好地记录实验进行的过程,系统中也设计了实验 选项表单,可以进行实验者、室温、气压等信息的输入,这 样有助于后边生成详细的实验报告单。在以上工作都完成后, 即可通过“打印结果”按钮打印出实验报告单。

3结语

本系统是为物化实验“电导法测定乙酸解离度”量身定 做的,可与实验过程紧密配合,并可对实验数据进行快捷精 确处理,而且能迅速生成专业化的实验报告单,不用人工进 行任何工作就可直接得到实验结果。

实验过程中所得数据大多为科学计数法表示的数字,难 以输入,而本系统采用底数、指数分别输入的方式,因而使得 数据的输入变得简单有趣。

利用本系统,在整个实验过程中,只需要输入实验中测 定的电导率数据,就可以得到最终的实验结果并生成实验报 告单,整个处理过程不需要任何人工干预,简单快捷。实验 完成后,可快速得到专业详尽的实验报告单,实验报告单包含 实验时间、气压、所用仪器编号、实验人员等信息,同时省略 了对实验数据的处理。

20210916_6142cbd91a354__电导法测定乙酸解离常数实验数据处理软件设计

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭