一种基于k-means算法的溶液浓度识别方法与流程

文档序号:23731228发布日期:2021-01-26 09:36阅读:221来源:国知局
一种基于k-means算法的溶液浓度识别方法与流程

[0001]
本发明涉及一种基于k-means算法的溶液浓度识别方法,属于深度学习领域。


背景技术:

[0002]
j.b.macqueen在1967年首次提出了k-means算法的要点,经典的k-means算法,是基于质心的一种新的聚类算法。在总结了前人的经验之后,j.b.macqueen彻底掌握的k-means算法的核心要点,总结出了k-means算法的总体步骤。并且,通过数学的方法合理的进行了正确性证明,证明了算法的合理性。k-means算法作为一个非常典型的基于距离的聚类算法,使用距离当作相似性的评判指标,算法认为,数据目标之间距离越小,它们之间的相似程度就会变得愈大。k-means算法把簇构成认为是距离特别靠近的两个目标数据组成,所以能到得到内部密集的并且相对外部独立的簇就是该算法的最终目标。而选取k个初始类聚类中心点,将会极大的影响聚类效果,所以,在k-means算法开始的时候,选取的k个对象作为聚类中心时,往往是随机选取,这样能让其代表一个初始的簇。每次迭代中,k-means算法都会将数据集合中余留下来的每个对象与各个簇的中心距离重新给与距离最近的簇。而当所有的数据都被审查完成后,就算一次迭代运算的彻底完成,因此,新的聚类中心也会诞生。如果这一次完整的的迭代运算已经完成,却发现j的值并没有任何改变,那么就意味着算法收敛,整个过程结束:
[0003]
(1)完全随机选取k个数据作为质心(从n个数据中)
[0004]
(2)然后把剩下的所有数据再次测量一遍,测量其到相应的质心它们两者的距离,把它们和与它们相距最近的质心归类到一起。
[0005]
(3)接着对所有类的质心再进行一次计算。
[0006]
(4)迭代运算前两步,直到新产生的质心和原来的初始质心相等,或者小于某个指定的值,就算做k-means算法运算结束。


技术实现要素:

[0007]
本发明提出了一种基于k-means算法的溶液浓度识别方法,用matlab实现k-means聚类算法,将采集的1000个浓度点按k=10进行分类得到的正确率可说明此方法可以快速且高效地识别溶液浓度。
[0008]
本发明为解决其技术问题采用如下技术方案:
[0009]
1、一种基于k-means算法的溶液浓度识别方法,包含化学反应模块、数据采集模块、数据处理模块、数据识别及分类模块,其特征在于:由颜色传感器采集观察皿中的溶液浓度颜色rgb值经单片机处理后显示数据,分别采集10个浓度值的100组数据,使用matlab实现k-means聚类,得到1000个数据点的三维分类效果。
[0010]
2、上述的一种基于k-means算法的溶液浓度识别方法,其化学反应模块中的测试溶液是由氨氮标准溶液及蒸馏水配制浓度为2mg/l、3mg/l、4mg/l、5mg/l、6mg/l、8mg/l、9mg/l、10mg/l、12mg/l、15mg/l的十个标准浓度点,加入快速检测试剂使得测试溶液显色;
将10ml测试溶液由蠕动棒通过导管注入观察皿中;其中,观察皿置于完全密封的暗盒当中,测试完成由蠕动棒将测试溶液由导管排出。
[0011]
3、上述的一种基于k-means算法的溶液浓度识别方法,其数据采集模块是由tcs3200颜色传感器提供四个led灯,由led灯提供的正白光将溶液颜色反射至传感器的芯片中,获得检测信号并转换成由rgb三个通道上的数值组成的电信号后输出。
[0012]
4、上述的一种基于k-means算法的溶液浓度识别方法,其数据处理模块是由stm32单片机为核心的处理模块,其中stm32单片机提供lcd液晶屏显示检测数据。
[0013]
5、上述的一种基于k-means算法的溶液浓度识别方法,其数据识别及分类模块是基于matlab的k-means算法的三维实现,将1000个浓度点按10个浓度标准分类,多次迭代更新簇中心,直至算法收敛。
[0014]
本发明采取的以上技术方案与现有的技术相比,具有以下特点:
[0015]
1、本发明基于stm32单片机与四通道tcs3200传感器进行颜色识别,识别精度高,拓展性强;同时具有高性能,低成本,易于操作和维护;
[0016]
2、本发明所设计化学反应模块使用暗盒装置在光信号进入传感器前对外界杂光进行了控制和去除,降低了外界杂光对实验结果的影响;
[0017]
3、本实验所使用的k-means聚类算法对实验结果的识别与分析,大大提高了溶液浓度识别的准确率,缩短了人工比对的时间,将理论应用到实际生活中,具有一定的现实意义;
附图说明
[0018]
图1为本发明公开的溶液浓度识别方法的流程图。
[0019]
图2为暗盒内部传感器和观察皿的切面图。
[0020]
图3为基于matlab实现k-means聚类算法的三维效果图。
[0021]
图4为实际实验装置架构图。
具体实施方式
[0022]
下面结合附图和具体实施方式,进一步阐明本发明。
[0023]
如图1所示,一种基于k-means算法的溶液浓度识别方法,包含化学反应模块、数据采集模块、数据处理模块、数据识别及分类模块,步骤如下:
[0024]
步骤1.用氨氮标准溶液及蒸馏水配制浓度为2mg/l、3mg/l、4mg/l、5mg/l、6mg/l、8mg/l、9mg/l、10mg/l、12mg/l、15mg/l的十个标准浓度点;用快速检测试剂使得不同浓度的溶液显色。
[0025]
步骤2.如图2所示,1号为颜色传感器,2号、3号为传感器所提供的led正白光,4号为观察皿也即溶液输入仓,5号为连接单片机的传线孔,6号为溶液输出口,7号为溶液输入口,因传感器上方的pcb板与整个仓大小相同,所以整个测试环境为密闭空间,不会因传线孔有光的进入;先将1号颜色传感器白平衡校准;然后,打开7号进水阀,将配制的显色溶液输送到暗盒中的4号观察皿中,并在stm32单片机的lcd显示屏上读取rgb值,分别采集10个浓度值的100组数据,得到1000个数据并将数据二值化。
[0026]
步骤3.如图3所示,将数据用matlab处理仿真,得到k-means算法的三维实现,多次
迭代更新簇中心,直至算法收敛。
[0027]
步骤4.得到k-means算法识别溶液浓度的准确率很高,说明此方法可以快速且高效地完成溶液浓度的识别。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1