基于STM32的PH自动控制加液机的设计 - 图文

更新时间:2023-11-02 19:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业设计(论文)

学生姓名: 王程 学 号: 1501110524 所在学院: 自动化与电气工程学院 专 业: 自动化 设计(论文)题目:基于STM32的pH自动控制加液机的设计 指导教师: 徐启

2015年 5月 20日

基于STM32的pH自动控制加液机的设计

摘要

pH值的控制过程广泛存在于石油、化工、造纸、制药、废水处理及给水处理中,在工业生产过程中必须将pH值严格控制在某特定范围之内,否则将会造成产品质量的下降,原料的浪费,导致生产不能运行,经济效益下降,环境污染。因此pH值的控制有着非常重要的意义。

本文的核心在于基于ARM的pH值自动控制系统,该系统的pH采样部分采用高精度的pH传感器将pH值转化为电压值,采用高性能的A/D转换模块将采集到的电压值转化为数字量,该数字量一部分通过显示模块显示,另一部分进入PID控制器控制蠕动泵加酸或加碱,最终使pH值控制在设定范围之内。该系统通过建立闭环控制系统以实现对pH值的控制。由于闭环控制可以有效地抑制闭环中各种扰动的影响,这将使得被控量趋近于设定值。

关键词:PID控制器 ARM A/D转换

I

The design of pH automatic control liquid filling machine based on STM32

Abstract

pH control process widely in petroleum, chemical, pHarmaceutical, paper,wastewater treatment and water treatment, the pH value in the industrial production must be strictly controlled within a specified range, otherwise may cause the decline in product quality, raw material waste,production cannot be carried out smoothly, economic decline, or even cause environmental pollution, so the pH within a certain range of great significance.

The core of this article is the pH automatic control system based on ARM. The pH sampling parts of the system uses the high-precision pH sensors to converted pH value into voltage values and uses the high performance A/D conversion module to collected voltage into digital quantity. The one part of the digital is displayed by the display module, the other part go into the PID controller to control the peristaltic pump adding acid or alkali, Finally ,which makes the pH control within the set. The system through the establishment of the closed loop control system in order to realize the control of the pH value. Because the closed loop control can effectively curb the influence of various disturbances in closed loop, which will make the charged amount tend to set value.

Key Words: The PID controller ARM A/D conversion

II

目 录

摘要 ....................................................................................................................................................................... I Abstract ................................................................................................................................................................ II 第一章 绪论 ........................................................................................................................................................ 1

1.1 pH自动控制系统的研究背景和意义 .................................................................................................. 1 1.2 pH自动控制系统的发展概况 .............................................................................................................. 1 1.3 课题的主要工作概述 ........................................................................................................................... 2 本章小结 ...................................................................................................................................................... 2 第二章 pH自动控制系统的原理和方法 .......................................................................................................... 3

2.1 pH自动控制系统的原理 ...................................................................................................................... 3 2.2 pH自动控制系统的设计方法 .............................................................................................................. 3 2.3 硬件和软件介绍 ................................................................................................................................... 4

2.3.1 STM32微控制器简介 ................................................................................................................ 4 2.3.2 软件介绍 .................................................................................................................................... 5 本章小结 ...................................................................................................................................................... 5 第三章 pH自动控制加液机硬件设计 .............................................................................................................. 6

3.1 pH自动控制加液机硬件组成 .............................................................................................................. 6 3.2 STM32F103最小系统简介 ................................................................................................................ 7

3.2.1 pH自动控制系统MCU简介 .................................................................................................... 7 3.2.2 复位电路 .................................................................................................................................... 8 3.2.3时钟电路 ..................................................................................................................................... 8 3.2.4 启动模式选择电路 .................................................................................................................... 9 3.2.5 电源电路 .................................................................................................................................. 10 3.3 pH控制器 ............................................................................................................................................ 10 3.4 阻抗匹配电路 ..................................................................................................................................... 10 3.5 STM32F103RBT6 ADC .......................................................................................................................11 3.6 蠕动泵 ................................................................................................................................................. 12

3.6.1 步进电机的工作原理 .............................................................................................................. 12 3.6.2 两相步进电机的工作方式 ...................................................................................................... 13 3.6.3步进电机驱动器 ....................................................................................................................... 13 3.7 LCD显示屏 ......................................................................................................................................... 14 3.8 按键电路 ............................................................................................................................................. 15 本章小结 .................................................................................................................................................... 15 第四章 pH自动控制加液机软件设计 ............................................................................................................ 16

4.1 pH自动控制系统软件结构 ................................................................................................................ 16 4.2 PID程序设计 ...................................................................................................................................... 17 4.3 A/D数据采集程序设计 ...................................................................................................................... 18 4.4步进电机驱动程序设计 ...................................................................................................................... 20 4.5显示模块驱动程序设计 ...................................................................................................................... 20 4.6 按键程序设计 ..................................................................................................................................... 23 本章小结 .................................................................................................................................................... 24

III

第五章 调试过程和结果分析 .......................................................................................................................... 25

5.1 硬件调试 ............................................................................................................................................. 25

5.1.1 步进电机调试 .......................................................................................................................... 25 5.1.2 pH控制器调试 ......................................................................................................................... 26 5.2 软件调试 ............................................................................................................................................. 27 5.3 PID参数整定 ...................................................................................................................................... 29 5.4 结果分析 ............................................................................................................................................. 30 本章小结 .................................................................................................................................................... 33 第六章 设计总结 .............................................................................................................................................. 34 致谢 .................................................................................................................................................................... 35 参考文献 ............................................................................................................................................................ 36 附录1 ................................................................................................................................................................. 38 附录2 ................................................................................................................................................................. 47

IV

南京工业大学本科生毕业设计(论文)

第一章 绪论

1.1 pH自动控制系统的研究背景和意义

在如制药、发酵、造纸、电镀、废水处理及给水处理等这些现代化工业生产过程中,由于pH值对溶液的物理性质以及化学性质都有很大的影响,因此pH值的检测问题时刻存在。然而pH值的自动控制在整个工业自动化中是一个薄弱的环节,甚至还会出现即使是使用的相同仪表, 但应用在不同设计和不同的场合中所取得的pH值控制效果相差甚远的现象。因此,在工业生产过程中我们必须让pH值严格控制在特定范围内,否则可能会造成产品质量下降,原料浪费,生产不能顺利进行,企业的竞争力下降,甚至造成环境污染,另外强酸强碱还会腐蚀生产设备,降低设备寿命,并影响生产,甚至产生危险,故pH值的控制问题在工业过程中占有举足轻重的地位。因此,无论是对工业生产过程控制而言,还是对生态环境的保护而言,对pH值进行有效控制具有重要的意义。针对此现象,设计各种相应的pH值过程自动控制系统是很重要的。

1.2 pH自动控制系统的发展概况

传统的酸碱废水处理是通过人工进行调节的,经过人工的分析,并由人工操作不断加入调节剂,经过分析化验后排掉废水。这样处理调节周期长,加酸或加碱的量不能把握,而且占地面积大,能耗高,且手工配药无法在密封的环境下进行,有剧毒的化学物质严重危害着操作者的身心健康。因此可以看出手动控制安全可靠性差,工作效率低,很难满足实时控制系统的要求和符合合格排放标准。所以采用pH值自动控制系统取代人工调节系统是未来发展的必然趋势。从国内外pH值自动控制系统的控制策略的研究来看,多数控制方法采用的是模拟量调节器,这在今后大型化和复杂化的工业生产过程中将会举步维艰,也无法满足生产控制在安全、平稳、优质、高效等方面的要求。所以急需将计算机控制技术、过程控制技术、仪表技术、电子技术等多种技术结合起来,研制出能适用于各种工业生产过程场合的通用的高精密pH值全自动控制系统。

随着数字化产品向小型、高速、大容量、低成本的迅速发展,使得各种性能的微处理器不断推出,特别是适用于实时控制的工业计算机、单片机、可编程控制器(PLC)、ARM等在控制领域的应用,更加促进pH值自动控制系统的发展。

1

第一章 绪论

1.3 课题的主要工作概述

本课题是基于ARM Cortex-M3控制芯片对pH自动加液系统进行设计,在掌握步进电机的驱动原理、数据采集和A/D转换方法、显示模块驱动条件、PID控制原理及算法等基础上设计一基于ARM Cortex-M3的pH自动控制加液系统。ARM Cortex-M3控制芯片可以实现步进电机的驱动、A/D转换、数据的静态显示动态显示及显示曲线、PID控制。为了研究此系统方案的正确性和可行性,可在实体模型上进行调试及改进。论文的研究内容包括以下几个方面:

1. 完成步进电机驱动部分的设计

2. 完成动态数据、静态数据及曲线显示部分的设计 3. 完成数据采集及A/D转换部分的设计 4. 完成PID控制器的设计 5. 完成按键调节部分的设计 6. 调试和结果分析

本章小结

本章首先介绍了pH自动控制系统的研究背景、意义以及发展概况,接着叙述了该课题的工作概述,为下面章节对pH自动控制系统的研究提供了方向。

2

南京工业大学本科生毕业设计(论文)

第二章 pH自动控制系统的原理和方法

2.1 pH自动控制系统的原理

pH自动控制加液机采用STM32系列Cortex-M3微控制器作为核心控制部件,链接现场的传感器、加酸泵、加碱泵等现场设备。该系统通过建立闭环控制系统以实现对pH值的控制,闭环控制可以有效地抑制系统各种外部扰动的影响,来使得测量值慢慢趋近于设定值。在pH值自动控制系统中,使用pH控制器将溶液的pH值转换为标准量程的电流信号,经过阻抗匹配电路将电流信号转化为电压信号,然后送给STM32自带的12位的模数转换器件,得到0~4095之间数字量经量程变换得到对应的pH值。CPU将该pH值与设定值比较产生偏差,并按PID控制算法对偏差进行运算,并根据运算得到的数字量给步进电机发送脉冲,通过发送脉冲的个数来控制加酸泵和加碱泵的流量,实现对pH 值的闭环控制,其方框图如图2-1所示。STM32F103计算得到的数字量除了驱动步进电机之外还经过某些数学变换送到显示模块。该系统在数据采样之前还必须要进行信号调理,方可使采集的信号比较精确。

—测量值 A/D 检测变送 给定值+ PID控制器 酸/碱泵 液体混合罐 pH值 图2-1 pH自动控制加液机方框图

pH自动控制加液机—双泵自动添加酸性或碱性液体,既可以对溶液进行pH值静态或在线检测调整,也可进行以pH值为指标的试液控制添加。该系统集pH值的自动检测显示、pH值的自动调节控制、pH值的自动加酸加碱机构于一体。结构简单紧凑,pH精度高,有广泛的用途。

2.2 pH自动控制系统的设计方法

在实际工程设计中,比例、积分、微分控制是应用最为广泛的控制规律,其简称PID控制,或者PID调节。PID控制器问世至今已有近70年历史,它以其工作可靠、稳定性

3

第二章 pH自动控制系统原理和方法

好、结构简单、调整方便而成为工业控制的主要技术之一。当被控对象的参数和结构不能被完全掌握,或者控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定不能得到精确的数学模型时,应用PID控制技术最为方便。即当我们不能通过有效的测量手段来获得系统参数或不完全了解一个系统的被控对象时,使用PID控制技术最为适合。PID控制器是根据系统设定值和采样值间的偏差,利用比例、积分、微分计算出控制量控制执行机构的。

PID控制分为模拟量PID控制和数字量PID控制。由于该系统是采用嵌入式系统进行控制的,因此连续的PID控制算法不能使用,只能采用数字PID控制,它是根据采样时刻的偏差来计算控制量。

根据系统要求,在确定数字PID算法时可以有两种方法: 1.位置式PID控制算法 2.增量式PID控制算法

由于增量式PID输出的控制量是增量式输出,如果STM32微控制器出现故障,输出的增量对执行机构(步进电机)的误动作影响较小,而执行机构本身也具有记忆的功能,仍保持原位,因此不会严重影响系统工作;而位置式的输出直接给执行机构,因此对系统影响较大。而且增量式PID对内存的要求相对较低,所以选择增量式PID控制算法更合适。

2.3 硬件和软件介绍

2.3.1 STM32微控制器简介

STM32系列Cortex-M3微控制器用于处理要求低功耗和高度集成的嵌入式应用。ARM Cortex-M3是下一代的新生内核,它提供系统增强型特性,其包括支持更高级别的块集成以及现代化调试特性。

STM32系列Cortex-M3微控制器的CPU采用的是哈佛结构、具有3级流水线并且包含一个支持随机跳转的内部预取指单元,其操作频率最高可达72MHZ。STM32系列Cortex-M3微控制器带有独立的数据总线、用于外设的稍微低性能的第三条总线和本地指令集。

在本课题的设计中,我们采用的是STM32F103RBT6,其外设组件包含128K的FLASH存储器、20K的SRAM、2个IIC接口、2个SPI接口、1个USB、2个12位ADC、1条

4

南京工业大学本科生毕业设计(论文)

CAN通道、1个16位的高级定时器、普通的16位定时器、3个串口和51个通用I/O引脚。

2.3.2 软件介绍

2013年10月,Keil公司(ARM公司之一)正式推出Keil MDK V5,该版本使用uVision5 IDE集成开发环境,是目前针对ARM微控制器,尤其是ARM Cortex-M内核微控制器最佳的一款集成开发工具。

MDK v5向后兼容Keil MDK-ARM uVision4,以前的项目同样可以在MDK v5上进行开发, MDK v5同时加强了针对Cortex-M微控制器开发的支持,并且对传统的开发模式和界面进行升级,将分成两个部分,MDK Core和Software Packs。其中,Software Packs可以独立于工具链进行新芯片支持和中间库的升级。

MDK Core包含微控制器开发所有的所有组件,包括IDE(uVision5)、编辑器、ARM C/C++编辑器、uVision调试跟踪器和Pack Installer。

MDK最为强大的一个功能就是能够提供软件的仿真,通过软件的仿真可以让我们发现许多将要出现的问题,这避免了下载到ARM里来找出这些问题,这样的最大好处就是能很方便发现程序存在的潜在问题。由于在MDK的仿真界面,我们可以读取很多硬件相关的寄存器,通过对这些寄存器的观察,我们可以知道代码是不是正确。MDK的另外一个优点是不要进行频繁的刷机,因此延长了ARM的FLASH寿命。虽然,软件仿真的功能很强大,但是它不是万能的,有许多问题还是要在线调试才能解决的。

本章小结

本章首先介绍了pH自动控制加液系统的原理,加深了对该系统的理解,在此基础上提出了增量式PID的设计方法。接着对软硬件进行了介绍,从而为后面软硬件结合研究打下了坚实的基础。

5

第三章 pH自动控制加液机硬件设计

第三章 pH自动控制加液机硬件设计

3.1 pH自动控制加液机硬件组成

ARM单片机及外围电路的总体设计如下图3-1所示, 其主要由输入采集部分、输出控制部分和控制决策部分组成。系统中采用一片STM32F103作为控制器的核心芯片,前项通道为数据采集部分,后项通道为控制部分,通过按键和显示屏显示进行人机交互。

图3-1 ARM单片机及外围电路的总体设计

控制接口电路 步进电机驱动电路 显示屏 数据采集电路 测量模拟量电路 A/D STM32 F103 按键 ◆输入采集部分主要采集本系统的参数即pH值,并通过A/D转换将采集到的pH值转化为数字量;

◆控制输出部分是把控制器输出的控制量作用于执行机构,实现对pH值的控制; ◆控制决策部分由STM32F103来实现,该部分是根据系统的工况、测量内容、显示方式等要求设计的,是硬件电路设计的核心部分; ◆键盘输入部分可以设定pH设定值、PID参数;

◆显示部分用于显示pH设定值、采样pH值、PID参数及设定值与采样值曲线。

为了完成该pH自动控制系统,我们设计了基于STM32F103 的控制板作为控制部分,其板载资源如下:

1. CPU:STM32F103RBT6,LQFP64,FLASH:128K,SRAM:20K; 2. 1个标准的2.4/ 2.8寸LCD接口,支持触摸屏 3. 1个USB串口,可用于程序下载和代码调试 4. 1组5V电源供应/接入口

6

南京工业大学本科生毕业设计(论文)

5. 1组3.3V电源供应/接入口 6. 1个启动模式选择配置接口 7. 1个RTC后备电池座(带电池) 8. 1个复位按钮,可用于复位MCU和LCD 9. 3个功能按钮

10.1个电源开关,控制整个板的电源 11.2个步进电机驱动接口

3.2 STM32F103最小系统简介

3.2.1 pH自动控制系统MCU简介

图3-2 STM32F103RBT6原理图

pH自动控制系统选择的是STM32F103RBT6作为MCU,STM32F103的型号众多,我们选择这款的原因是看重其性价比,作为一低端开发板,选择 STM32F103RBT6是最佳的选择。 128K FLASH、20K SRAM、2个 SPI、3个串口、1个 USB、1个 CAN、2个

7

第三章 pH自动控制加液机硬件设计

12 位的 ADC 、 RTC、51个可用IO脚…,该芯片配置充足,价格低廉,其高的性价比让我们选择它作为主芯片,其原理图如上图3-2所示。 3.2.2 复位电路

复位电路的基本功能是:系统上电时提供复位信号,当为可靠起见电源稳定后还要经一定的延时直至系统电源稳定后才撤销,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。

图3-3 STM32F103复位电路图

如图3-3 STM32F103复位电路图,STM32F103的复位信号是从RST脚输入到片内触发器中的复位电路。当系统处于正常工作状态,且振荡器工作稳定后,如在RST引脚上有从低电平上升到高电平并维持2个机器周期(24个振荡周期)以上,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使引脚保持10ms以上的高电平。只要RST保持高电平,单片机就循环复位。当RST从高电平变为低电平以后,单片机从起始地址开始执行程序。

在本系统中采用手动复位电路,即在系统带电情况下进行手动复位,使用灵活方便。 3.2.3时钟电路

STM32F103的系统时钟选用8MHZ的HSE晶体作为振荡器晶振。如图3-4所示,由R4、Y2(HSE晶振)、C5、C6构成的系统时钟电路。HSE晶体可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。

8

南京工业大学本科生毕业设计(论文)

图3-4 系统时钟电路

STM32F103的实时时钟电路选择LSE时钟模式,如图3-5所示,由Y1(LSE晶振)、C3、C4构成LSE旁路,提供一个32.768KHZ的低速外部晶体或陶瓷谐振器。它为实时时钟提供或者其他定时功能提供一个低功耗且精确的时钟源。

图3-5 实时时钟电路

3.2.4 启动模式选择电路

根据BOOT[1:0]引脚的选择,可以有三种不同的启动模式,如下表3-1所示。

表3-1启动模式 启动模式选择引脚 BOOT1 X 0 1

启动模式 用户闪存存储器 系统存储器 内置SRAM 9

说明 用户闪存存储器被选为启动区域 系统存储器被选为启动区域 内置SRAM被选为启动区域 BOOT0 0 1 1

第三章 pH自动控制加液机硬件设计

一般情况下,在使用串口下载代码,必须先配置BOOT1为0,BOOT0为1,下载完成后需要将BOOT0设为0,以便每次复位后都可以运行用户代码。因此,串口下载专门设置了一键下载电路,使得不必手动切换BOOT[1:0]状态。 3.2.5 电源电路

由于各电路模块所需的电压不同,所以本设计需要多种电源供电。STM32F103主控制芯片采用3.3V供电,步进电机驱动则采用5V供电,因此,根据设计要求本设计进行了电源转换的设计。本设计采用AMS1117-3.3将5V转换为3.3V,其中电容的作用是进行滤波,使得得到的电压更稳定。具体电路图如图3-6所示。

图3-6 电源电路

3.3 pH控制器

在该系统中,我们采用pH控制器进行pH值的采集和变送。本次设计我们采用的是杭州联测自动化技术有限公司LYP510型号的pH控制器,其优点如下:

1. pH控制器集采集与变送于一体使用方便,其作用是将采集到的0-14的pH值信号转化为4-20mA的电流信号输出。

2. pH控制器提供pH值的显示,这样我们可将采集到的pH值和pH控制器上的pH值进行比较来判别采集到的pH值正确与否。

3. pH控制器提供温度显示。酸碱反应会出现放热,温度显示可以让我们了解反应的温度,操作更安全。

3.4 阻抗匹配电路

阻抗匹配是指负载阻抗与激励源内部阻抗相互适配,得到最大功率输出的一种工作状

10

南京工业大学本科生毕业设计(论文)

态。

阻抗匹配电路的前端是一个I/V变换电路,它采用250欧姆的电阻将4-20mA的电流信号转化为1-5V的电压信号。随后的运算放大器作跟随器使用(根据虚短、虚断原理),使输出电压等于输入电压,该器件在电压不变的情况下起很好的隔离作用。2个10K电阻起到分压作用,由于STM32采集的电压必须小于3.3V,因此我们需将1-5V电压转化为0.5-2.5方便A/D转换。最后的电容起滤波作用让采集的电压值更稳定。其电路原理图如图3-7所示。

图3-7 阻抗匹配电路原理图

3.5 STM32F103RBT6 ADC

STM32F103RBT6包含2个ADC,我们使用ADC1的通道1来测量外部电压。其端口如图3-2中的PA1。

STM32F103的ADC模块特点如下:

◆STM32F103 ADC最大转换速率为1MHZ,也就是转换时间为1us(在ADCCLK=14M,采样周期为1.5个ADC时钟下得到),不要让ADC的时钟超过14M,否则将导致结果准确度下降。

◆STM32F103 ADC为12位转换,其范围为0-4095。

◆STM32F103 ADC输入范围:0~3.3V (当你需要将采集的数据用电压来显示的话: 设你采集的数据为:x[0~4095],此时的计算公式就为:(x / 4096) * 3.6))

◆STM32F103 ADC供电要求:2.4V~3.6 V(千万不要接到 5V 上) ◆STM32F103 ADC有8种转换模式

11

第三章 pH自动控制加液机硬件设计

◆STM32F103 ADC最多有18个通道:16个外部通道和2个内部通道

3.6 蠕动泵

在本系统设计过程中,执行器是蠕动泵,控制器输出驱动其加酸或加碱。蠕动泵的核心部分是步进电机,本项目中的蠕动泵采用的是型号为57H704的两相步进电机。下面就详细描述一下步进电机。

步进电机又叫脉冲电机,它是一种将电脉冲信号转换为角位移的机电式数模(D/A)转换器。该课题使用步进电机作为驱动元件进行加酸和加碱。步进电机接收微控制器发来的指令脉冲,控制步进电机作相应的转动。很明显,指令脉冲的总数就决定了加酸和加碱的量。

3.6.1 步进电机的工作原理

步进电机的工作就是步进转动。在一般的步进电机工作中,其电源都是采用单极性的直流电源。要使步进电机转动,就必须对步进电机定子的各相绕组以适当的时序通电。步进电机的步进过程可以用图3-8来说明。

A

A1 图3-8 步进电机的内部结构图

B B1 初始状态时,A得电,由于A相绕组和转子之间的磁力线作用,使得转子的磁极和A相绕组对齐。同理B,A1,B1得电亦是如此。如此给步进电机定子的各相绕组以适当的时序通电,电机就会转动。

对于一个步进电机,如果它的转子齿数为Z,步进电机的工作拍数为N,则它的步距角θ可以表示如公式3-1所示:

θ=360°/(NZ) (3-1)

在本课题中,步进电机的步距角为1.8度并设置了25000细分,这使得步进电机运行

12

南京工业大学本科生毕业设计(论文)

更加稳定。

3.6.2 两相步进电机的工作方式

1. 两相步进电机两拍工作方式

单两拍工作方式各相的通电顺序为:A-B-A-…,各相通电的电压波形为图3-9所示。 2.两相步进电机四拍工作方式

双四拍工作方式各相的通电顺序为:A-AB-B-…,各相通电的电压波形为图3-10所示。

A B A B

图3-9 单两拍工作电压波形 图3-10 双四拍工作电压波形

3.6.3步进电机驱动器

步进电机驱动器是一种将电脉冲信号转化为角位移的执行机构。其原理图如下图3-11所示。每当驱动器接收到一个脉冲信号,它就会驱动步进电机按设定的方向转动一个步距角。因此,可以通过脉冲的数量来控制角位移,从而达到准确定位的目的,本次课题就是利用其此特点来精确控制加酸加碱的量。

图3-11步进电机驱动器原理图

该系统我们采用的是雷塞公司的M542驱动器,其接口描述如下: 1. M542驱动器弱电接线信号接口如表3-2描述

13

第三章 pH自动控制加液机硬件设计

表3-2 M542驱动器弱电接线信号接口描述

名称 功能 PUL+(+5V) 脉冲信号,脉冲控制信号,此时脉冲下降沿有效,PUL-高电平时4-5V,低电平0-0.5VPUL- DIR+(+5V) DIR- 为了可靠响应,脉冲宽度大于1.5Us。如采用+12V或+24V时需串电阻限流。 方向信号,方向控制信号,保证电机可靠响应。电机的初始化运行方向和电机的接线密切相关,互相任一相绕组(如A+、A-交换)的交换都能够改变电机初始运行的方向,DIR-高电平时4-5V,低电平时0-0.5V。 ENA+(+5V) 使能信号,此输入信号用于使能/禁止,高电平使能,低电平时驱动器不能工作。一般ENA- 情况下可以不接,使之悬空而自动使能

2.M542驱动器强电接线信号接口如表3-2描述

表3-3 M542驱动器强电接线信号接口描述

名称 DC+ DC- A B 功能 直流电源正极,+18V - +75V间任意值均可,但推荐值+36V - +50VDC左右。 直流电源地 电机A相。A+、A-互调,可更换一次电机运转方向 电机B相。B+、B-互调,可更换一次电机运转方向

3.7 LCD显示屏

该设计中,我们采用2.8寸TFT-LCD液晶显示屏进行PH值的显示、设定值的显示、曲线的显示等。该屏是电容式的触摸屏,体积小,功能强大,其每一个像素上设定有一个TFT,能够有效地去除不必要的干扰,从而实现静态特性和扫描线数不相关连,因此大大提高了图像质量。在本次设计中,我们只用到了其显示功能,并没有用到其触摸功能。

TFT-LCD一般都自带驱动模块,驱动模块一般有数据总线、控制总线、复位端子以及电源接口等。其电路原理图如下图3-12所示。

14

LCD_DrawLine(54 , 240, 54, 238); LCD_DrawLine(78 , 240, 78, 238); LCD_DrawLine(102 , 240, 102, 238); LCD_DrawLine(126 , 240, 126, 238); LCD_DrawLine(150 , 240, 150, 238); LCD_DrawLine(174 , 240, 174, 238); LCD_DrawLine(198 , 240, 198, 238); a=0; b++;} else LCD_DrawLine(30+a , 240-Yk2, 30+a+1, 240-Yk1);//显示测量曲线 POINT_COLOR=BLUE; if(a==0) {LCD_DrawPoint(30+a,240-pH0);} else LCD_DrawLine(30+a , 240-pH0, 30+a+1, 240-pH);//显示设定值 Yk2=Yk1; pH0=pH; if(a%2==0) {LCD_ShowString(40,280,200,16,16,\ if(a%2==1)

{LCD_Fill(30,260,192,300,WHITE);} a++;

//显示横坐标标度值

LCD_ShowxNum(45,245,2+15*b,2,16,0); LCD_ShowxNum(69,245,4+15*b,2,16,0); LCD_ShowxNum(93,245,6+15*b,2,16,0); LCD_ShowxNum(117,245,8+15*b,2,16,0); LCD_ShowxNum(141,245,10+15*b,2,16,0); LCD_ShowxNum(165,245,12+15*b,2,16,0); LCD_ShowxNum(189,245,14+15*b,2,16,0); } TIM3->SR&=~(1<<0);//清除中断标志位 }

//这里使用的是定时器3中断初始化! void TIM3_Int_Init(u16 arr,u16 psc) { RCC->APB1ENR|=1<<1; //时钟使能 TIM3->ARR=arr; //设定计数器重装值 TIM3->PSC=psc; //预分频设置 TIM3->DIER|=1<<0; //允许中断更新 TIM3->CR1|=0x01; //使能定时器

MY_NVIC_Init(1,3,TIM3_IRQn,2);//优先级设置

40

}

酸泵脉冲发送程序 void PWM(u16 t) { u16 i; for(i=0;i

碱泵脉冲发送程序 void PWM1(u16 t) { u16 i; for(i=0;i

按键程序

#include \#include \#include \#include \#include \#include \#include \

//外部中断0服务程序 volatile int pH=70; volatile int pHb; volatile int pHc; volatile int KP=1; volatile int KI=1; volatile int KD=1; int move=0;

void EXTI0_IRQHandler(void) { delay_ms(10);//消抖

41

if(WK_UP==1) //按键2 { move++; if(move==5) {move=0;} POINT_COLOR=BLUE; LCD_ShowxNum(184,10,move,1,16,0); } EXTI->PR=1<<0; //清除中断标志位 }

//外部中断服务程序

void EXTI15_10_IRQHandler(void) { delay_ms(10); //去抖动 if(move==1) { if(KEY0==0) { pH=pH+1; if(pH>140) pH=0; pHc=pH/10; pHb=pH; POINT_COLOR=BLUE; LCD_ShowxNum(92,10,pHc,2,16,0); LCD_ShowxNum(116,10,pHb,1,16,0); }else if(KEY1==0) { pH=pH-1; if(pH<0) pH=140; pHc=pH/10; pHb=pH; POINT_COLOR=BLUE; LCD_ShowxNum(92,10,pHc,2,16,0); LCD_ShowxNum(116,10,pHb,1,16,0); } }

if(move==2) { if(KEY0==0) //按键0 { KP=KP+1;

42

if(KP>50) KP=0; POINT_COLOR=BLUE; LCD_ShowxNum(84,30,KP,2,16,0); }else if(KEY1==0)//按键1 { KP=KP-1; if(KP<0) KP=50; POINT_COLOR=BLUE; LCD_ShowxNum(84,30,KP,2,16,0); } }

if(move==3) { if(KEY0==0) //按键0 { KI=KI+1; if(KI>9) KI=0; POINT_COLOR=BLUE; LCD_ShowxNum(134,30,KI,1,16,0); }else if(KEY1==0)//按键1 { KI=KI-1; if(KI<0) KI=9; POINT_COLOR=BLUE; LCD_ShowxNum(134,30,KI,1,16,0); } }

if(move==4) { if(KEY0==0) //按键0 { KD=KD+1; if(KD>50) KD=0; POINT_COLOR=BLUE; LCD_ShowxNum(184,30,KD,2,16,0); }else if(KEY1==0)//按键1 {

43

KD=KD-1; if(KD<0) KD=50; POINT_COLOR=BLUE; LCD_ShowxNum(184,30,KD,2,16,0); } } EXTI->PR=1<<13; //清除中断标志位 EXTI->PR=1<<15; //清除中断标志位 }

//外部中断初始化 void EXTI_Init(void) { KEY_Init(); Ex_NVIC_Config(GPIO_A,0,RTIR); //上升沿触发 Ex_NVIC_Config(GPIO_A,13,FTIR); //下降沿触发 Ex_NVIC_Config(GPIO_A,15,FTIR); MY_NVIC_Init(2,2,EXTI0_IRQn,2); //抢占2,子优先级2,组2 MY_NVIC_Init(2,1,EXTI15_10_IRQn,2); //抢占2,子优先级1,组2 }

主程序(包括一部分显示程序、初始化程序、PID程序) #include \#include \#include \#include \ #include \ #include \ #include \ #include \ #include \#include \

int main(void) { extern int pHb; extern int pHc;

44

南京工业大学本科生毕业设计(论文)

图3-12 TFTLCD原理图

3.8 按键电路

在本设计项目中,显示屏显示值中包括pH设定值、PID参数(KP、KI、KD)这些值都需要通过按键来设定,因此在下图3-13中设置了按键电路。

图3-13 按键电路

本章小结

硬件是软件的基础,本章首先对硬件进行了总体介绍,让我们大概了解需要用到的硬件,接着对各部分硬件进行分部介绍,让我们能够深刻的了解本系统中的各部分硬件的原理及作用,为实现本课题搭建了框架。

15

第四章 pH自动控制加液机软件设计

第四章 pH自动控制加液机软件设计

4.1 pH自动控制系统软件结构

在pH自动控制加液系统的设计过程中,其软件部分主要包括A/D数据采集部分的程序设计、PID部分程序设计、步进电机驱动程序设计、显示模块驱动程序设计以及按键程序的设计。其主程序结构流程图如下图4-1所示。

图4-1 软件部分主程序结构流程图 调用步进电机驱动子程序 调用PID子程序 静态显示程序 调用串口、延时、显示屏、A/D、外部中断、定时中断初始化子程序 设置系统时钟 开始 主程序主要是实现PID运算、静态显示和步进电机的驱动。此外,按键程序和部分动态显示程序(包括设定值及设定值曲线等)通过外部中断来实现;采样程序和剩余部分动态显示程序(包括测量值以及测量值曲线)则通过定时中断来实现。

16

南京工业大学本科生毕业设计(论文)

4.2 PID程序设计

由于该课题的执行器件是步进电机,因此采用增量型数字PID控制,由式(4-1)可以看出,增量式PID不仅不需要进行偏差的累加,而且占用内存单元较少、便于编程。该系统采用的是PID分程控制,根据偏差的正负控制是加酸泵动作还是加碱泵动作。图4-2给出了增量型数字PID分程控制算法的流程图。

图4-2 数字PID控制算法流程图

是 采样时间到否? 否 e(k-2)=e(k-1) e(k-1)=e(k) △u(k)输出 酸/碱泵 按式(4-1)计算控制增量△u(k) 求e(k)=r(k)-y(k) 将A/D结果赋给y(k) A/D 控 对 象 被 离线计算q0、q1、q2置e(k-1)=e(k)=0 △u(k)=q0e(k)+q1e(k-1)+q2e(k-2) (4-1)

其中:

q0=Kp(1+T/TI+TD/T)

q1=-Kp(1+2TD/T) q2=KpTD/T

17

第四章 pH自动控制加液机软件设计

在图中我们根据e(k)的正负进行分程控制:当e(k)>0时,驱动加酸泵进行加酸;当e(k)<0时,则驱动加碱泵加碱。

4.3 A/D数据采集程序设计

在A/D数据采样过程中,数据采集模块主要是对输入的电压信号进行采样。首先把要采集的电压信号采集过来,然后通过STM32计算并进行量程变换后,存入相应的存储单元。在该系统中ADC的转换时间由下式(4-2)所示。

Tcovn=采样时间+12.5个周期 (4-2) 其中:Tcovn为总转换时间,采样时间是根据每个通道的SMP位来设置的。在本系统中,ADC时钟选择12MHz。为了提高采样精度,采样时间选择239.5个周期,则Tcovn=239.5个周期+12.5个周期=252个周期=21us。

由于该系统是一个缓慢的过程,为防止采样过快带来误差,控制器每5秒读取一次 A/D采样值。该系统采用TIM3作为定时中断,其中断时间计算如下式(4-3)所示。

Tout=(arr+1)*(psc+1)/Tclk (4-3)

其中:

Tclk:TIM3的输入时钟频率(单位为KHz) Tout:TIM3的溢出时间(单位为ms)。

该系统定时器初始化程序为void TIM3_Int_Init(u16 arr,u16 psc),其中arr =49999, psc =7199,Tclk=72MHz(APB1=36MHz二分频)。计算可得出溢出时间为5s。

采样程序包括初始化程序和采样程序,流程图如下图4-3和4-4所示。

在采样完成之后,我们仍需做量程变换才能得出采样得到的PH值。首先我们要将采样值转化为电压信号即V=3.3/adcx,然后将电压信号转化为4-20mA电流信号I=8*V,最后将电流信号转化为pH值Yk=(7/8)I-(7/2)。根据这些关系,可得出PH值和采样值的关系如下式(4-4)所示。

Yk=(231*(float)adcx)/40960-3.5 (4-4)

其中

Yk为pH值(0-14);

18

南京工业大学本科生毕业设计(论文)

adcx为采样值(0-4095)。

图4-3 初始化程序设计流程图 设置ADC1规则序列的相关信息 开启A/D转换器,并校准 使能ADC1时钟,并设置分频因子 设置ADC1的工作模式 开启PA口时钟,设置PA1为模拟输入

图4-4 采样程序流程图

19

开始 初始化 启动A/D 等待 N A/D完成 Y N 采样10次 Y 求10个转换数据平均值 读取A/D值 定时中断5S

第四章 pH自动控制加液机软件设计

4.4步进电机驱动程序设计

对于pH自动控制加液系统的执行器,我们采用的是蠕动泵,其核心是两相步进电机。由于步进电机匹配了对应的驱动器,因此我们只需给驱动器相应的脉冲信号即可。由于该系统只是利用脉冲个数来控制步进电机加酸或加碱的量,因此我们无需使用STM32单片机自带的PWM发生器。为了简化编程,编写如下程序来给步进电机驱动器发送脉冲。

void PWM(u16 t)

{ u16 i;

for(i=0;i

}

该程序根据得到的偏差经过PID控制器计算得到脉冲个数,并将脉冲数值赋给该程序中的t即可。

同理,加碱泵程序亦是如此。

4.5显示模块驱动程序设计

显示模块程序主要完成显示系统当前pH值、设定pH值、静态字符标识以及曲线。其中动态数据通过定时器中断或外部中断使数据动态显示,静态字符通过字符显示子函数显示,曲线通过线段显示子函数来显示。其中主程序静态显示流程图如下图4-5所示,外部中断和定时中断动态显示流程图如下图4-6、4-7所示。

调用字符显示子函数 调用线段显示子函数 图4-5 主程序静态显示流程图

20

开始 初始化 南京工业大学本科生毕业设计(论文)

图4-6 外部中断程序动态显示流程图

恢复现场 调用线段显示子函数 开外部中断 保护现场 调用数据显示子函数 返回

图4-7定时中断程序动态显示流程图

恢复现场 开定时中断 保护现场 调用数据显示子函数 调用线段显示子函数 返回 在该显示模块主要显示部分是外部中断下的设定值的显示和定时中断下的测量值的显示,其显示方法相同。其原理都是先将设定值或测量值扩大十倍,除以十商和余数分别放在整数位和小数位。

显示模块曲线的显示是根据上面得到的测量值和设定值演化为线段坐标并显示出来的。在该系统中,由于曲线到达平衡状态需要很长时间,所以时间轴采用分钟作为单位,

21

第四章 pH自动控制加液机软件设计

可以让曲线完整的显示。

在本次系统的显示模块中用到几个子函数,其中包括线段显示子函数LCD_DrawLine(u16 x1,u16 y1,u16 x2,u16 y2),字符串显示子函数LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)和数字显示子函数LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size)。下面我们这些函数详细介绍。

1.在线段显示子函数中(x1,y1)起点坐标,(x2,y2)终点坐标。其流程图如下图4-8所示:

图4-8 线段显示子函数流程图

运行步数未到 否 偏差>基准增量 是 按单步方向画点 偏差=偏差-增量 计算运行步数 根据X、Y轴增量分别判定X、Y轴单步方向 选取基准增量 计算X、Y轴偏差 △x=x2-x1 △y=y2-y1 设置X偏差和Y偏差=0 (1)根据坐标增量分别判别X、Y轴的单步方向。

(2)比较X、Y轴增量大小,选取较大的增量作为基准增量。

22

南京工业大学本科生毕业设计(论文)

(3)根据基准增量加一得到运行步数即循环次数。

(4)将X、Y轴偏差每加一个增量与基准增量比较如果大于基准增量则沿着(1)的方向进1,然后将偏差减去基准增量。

2.在字符串显示子函数中(x ,y)起点坐标,width height 区域大小,size字体大小,*p字符串起始地址。根据字符串起始地址判别是否为非法字符,如果不是非法字符则顺序调用单个字符显示函数依次显示每个字符。单个字符的显示有专门的字库。例如要显示Aabc,先判别该字符串中没有空格,然后依次显示A、a、b、c。

3. 在数字显示子函数中(x ,y)起点坐标,num数值,len 数字的位数,size字体大小。例如:要显示321,调用单个字符显示函数将321显示在个位,将(321/10)显示在十位,将(321 /10)/10显示在百位。

4.6 按键程序设计

在该系统中按键的作用同样是至关重要的,它可以调节设定pH值和PID参数(KP、KI、KD),如若每个参数设置两个按键进行加减调节,则需要8个按键,为了节约硬件资源,我们采用了按键的切换,这使得原来的8个按键减少到三个,这大大节约了成本,同时操作也很方便。

为了实现按键的功能,我们采用外部中断对按键进行控制。该系统我们采用WK_UP作为切换按键,KEY0作为数字递减按键,KEY1作为数字递增按键。其运行流程图如下图4-9所示。

23

第四章 pH自动控制加液机软件设计

KD递减 KI递减 KEY0 KP递减 KEY0 设定值递减 KEY0 N 开始 按键初始化 按键WK_UP按下? Y KEY1 WK_UP、KEY0、KEY1? WK_UP 设定值递增 WK_UP、KEY0、KEY1? WK_UP KEY1 KP递增 WK_UP、KEY0、KEY1? WK_UP KEY1 KI递增 KEY0 WK_UP、KEY0、KEY1? WK_UP KEY1 KD递增 图4-9 按键操作流程图

本章小结

本章首先对软件框架进行了总体介绍,大体介绍了各部分的功能。接着对软件各个部分分别介绍,用流程图叙述了各个部分的工作流程,为后面编写程序打下了基础。

24

南京工业大学本科生毕业设计(论文)

第五章 调试过程和结果分析

5.1 硬件调试

5.1.1 步进电机调试

在该系统调试过程中我们采用驱动器来控制步进电机,这不仅使得控制方便而且使得编写软件程序也更加方便。在步进电机调试过程中,我们需要对步进电机驱动器M542进行接线。根据通电电流的大小,接线过程分为强电接线信号接口的接线和弱电接线信号接口的接线。

对驱动器的弱电接线信号接口的PUL+和PUL-端子间给一定电压的脉冲信号。对DIR+和DIR-则根据给定的电平信号的不同,步进电机的转动方向则不同。使能端ENA+和ENA-我们则选择悬挂不接。接线图如图5-1所示。

ENA- PA8/PB2 PUL+ GND PUL- +5V 控制器ARM DIR+ GND DIR- ENA+ 驱动器M542 图5-1弱电接线信号接口接线图

对于驱动器的强电接线信号接口我们需按照步进电机的每一相进行接线,另外还需对步进电机进行供电。接线图如图5-2所示。

该系统采用STM32F103作为主控制器件,这不仅使程序调试变得方便而且程序运行也十分稳定。在该系统中控制器是将采集到的数据与设定值进行比较,进行PID运算后来驱动步进电机。根据脉冲的个数来确定加酸量和加碱量。

25

第五章 调试过程和结果分析

A+ A- B+ 步进电机 M 驱动器M542 B- DC+ 24-50V DC- 图5-2 强电接线信号接口接线图

5.1.2 pH控制器调试 1.pH控制器接线

图5-3 PH控制器接线接口

如图5-3所示,端口9、12、13、14已接传感器。我们需将接端子7和8接220V供电,端子15和16则采集4-20mA的电流信号。 2.pH控制器校准

将传感器放入已知PH值浓度的溶液中,根据溶液PH值校准PH控制器的值 3.pH控制器与阻抗匹配电路连接

只需将15、16号端子连接到阻抗匹配电路的AO端子和地即可。必须注意15和16

26

南京工业大学本科生毕业设计(论文)

端子电流的方向。

通过以上步骤的调试,硬件调试完成。总体硬件调试如图5-4所示,左侧为碱泵,吸取浓度为10.5的碱液;右侧为酸泵,吸取浓度为2.5的酸液。

图5-4 总体硬件调试图

5.2 软件调试

1.新建MDK工程

首先打开MDK软件,再点击Project-New uVision Project选择路径新建USER文件夹然后保存。如下图5-5所示:

27

第五章 调试过程和结果分析

图5-5 新建MDK工程

2选择芯片型号

我们使用的是STM32F103RBT6,所以选择STM32F103RB,如下图5-6所示。

图5-6器件选择界面

3.把系统文件夹粘贴到第一级文件夹下。如下图5-7所示:

图5-7 工程文件夹

4.添加文件如下图5-8

28

南京工业大学本科生毕业设计(论文)

图5-8 添加文件界面

5.修改程序不断调试。(程序详见附录1)

5.3 PID参数整定

比例控制的作用:比例控制能迅速反应误差,从而减小误差,但是比例控制不能消除稳态误差。KP的加大,可以加快响应速度,如若过大,会使系统产生震荡,使系统稳定性变坏。

积分控制的作用:只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差,因而,只要有足够的时间,积分控制将能完全消除误差,积分的作用太强即KI过大,会使系统超调加大,甚至使系统出现振荡。

微分控制的作用:微分控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。

本次系统设计,我们采用试凑法来设置PID的参数。根据老师给定的KP、KI、KD的范围,先改变KP的值,使KP满足要求,再改变KI的值,最后改变KD的值。通过此改变参数的方法可以很快的使系统达到稳定的状态。

29

第五章 调试过程和结果分析

5.4 结果分析

在该系统中我们调节系统的采样值和设定值间的差值在1.0-1.5,调节分别调节KP、KI、KD的值,进行多组实验,其数据和曲线如下:

图5-9 调试结果 图5-10 调试结果

图5-11 调试结果 图5-12调试结果

30

南京工业大学本科生毕业设计(论文)

如上图5-9、5-10、5-11、5-12所示,调节按键WK_UP、KEY0、KEY1使KP分别等于2、5、10、15,KI和KD相同。由实验曲线可以得出:KP越大,曲线的响应速度越快,但与此同时振荡也越剧烈。因此,KP适当的增大一点是必要的,但不可过大,否则,曲线很难趋于平衡状态。由上面四图比较可知,在该实验中KP取5最合适,曲线没有出现振荡,误差范围也很小,响应时间也适宜。

图5-13 调试结果 图5-14 调试结果

见上图5-13和5-14所示,调节按键WK_UP、KEY0、KEY1使KP和KI相同,图5-13无微分环节,而图5-14有微分环节。从这两条曲线可以看出:有微分环节的控制效果明显要好出许多。因此,在此控制过程中微分环节是必不可少的,由于该系统是一个大滞后控制系统,微分环节具有超前调节的作用。这对于滞后大的系统由很好的效果。

见下图5-15和5-16所示,调节按键WK_UP、KEY0、KEY1使KP和KD相同,图5-15的积分参数KI比图5-16偏大,曲线也趋于上限值。从这两条曲线可以看出:积分参数越大,曲线响应越剧烈。因此,在此控制过程中,积分环节的调节起着至关重要的作用。由上面两张图比较可知,在该实验中KI取比较合适,曲线没有出现振荡,误差范围很小,响应时间适宜。

31

第五章 调试过程和结果分析

图5-15 调试结果 图5-16 调试结果

总结:

从上面曲线的比较我们可以得出KP、KI、KD的作用是和理论上是一样的。本次设计算是成功的。

在pH自动控制系统的设计过程中,采样时间的确定很重要。(本次实验设计5秒,还可增加采样时间)由于酸碱中和反应过程需要一定的时间且带有很大的不确定性,因此,需要尽量延长采样时间,从而使得反应充分完成之后再进行后面的操作。

在本次设计中,有诸多因素能够直接影响PID的参数值(KP、KI、KD),其影响因素列举如下:

1.酸碱液的配置浓度。(本次设计中酸液pH值为2.5,碱液pH值为10.5)蠕动泵抽取的酸碱液的浓度直接影响PID参数,浓度越高反应速度越快,曲线容易出现振荡,因此,我们需要减小蠕动泵抽取酸碱液的量,从而降低曲线的响应速度,来使得曲线能够最终趋向平衡状态。

2.蠕动泵的大小。在本次实验中使用的蠕动泵偏大,抽取的酸碱液量偏大,反应速度快,为避免曲线振荡失去平衡,需要减小KP的值来降低曲线的响应速度,从而实现酸碱液在偏差范围内的自动控制。

3.反应罐的大小。反应罐的大小也是影响PID参数的重要因素之一,如果反应罐过大,则反应速度慢,因此需要增大酸液和碱液的量来加快曲线的响应速度,使曲线快速趋于平

32

南京工业大学本科生毕业设计(论文)

衡,使系统快速趋于稳定。

除上面所述主要影响因素之外,影响该系统的干扰还有许多,因此我们选用闭环控制系统来消除系统的内部变化和外部的扰动。在闭环控制系统中,只要测量值偏移设定值PID控制器就会消除误差。因此,它对元件特性变化不敏感且具有抗干扰的能力,可以改善系统的响应特性。

本章小结

软硬件结合是本章的特点,本章首先介绍了系统的硬件调试,对系统进行了接线。接着加之软件调试得出结果。最后通过实验结果分析得出结论。

33

第六章 设计总结

第六章 设计总结

经过了几个月的努力和老师细心的指导,终于实现了pH自动控制加液系统的功能。在这次PH自动控制加液系统的实现过程中,我学到了很多原来都不知道的东西,如什么是数字PID控制,PID控制的作用,阻抗匹配,STM32的AD通道采样,步进电机的驱动,以及STM32怎么驱动显示屏显示等知识。在这次项目完成的过程中,我认识到一个道理:复杂的东西都是由许多单一的东西组建起来的。因此,相对简单的东西也是值得我们注意的,我们不能因为简单而忽略它们。我们只有弄懂了这些才能去学习更多的知识。

这次毕业设计是一个艰难的过程,回首过去这几个月,我很惊讶到底是什么支撑我坚持下来的。在项目的选题时,我都不知道自己要做的是什么。到后来自己慢慢的摸索到项目的完成,我发现自己做的项目也没有那么难,它都是由一些很简单的东西组成的。在此之前觉得很困难,是因为从没有做过这么复杂的设计。虽然该系统的设计对我来说已经算比较复杂,但是真正的设计可能比这还要复杂,以我现在拥有的知识要去完成那些设计还是远远不够的。因此,我要更加的勤奋努力,不骄不躁,不弃不馁,坚持踏实,勇往直前,多学习知识,多和他人交流,以此来不断的锻炼自己的能力,提升自己的品质。

34

南京工业大学本科生毕业设计(论文)

致谢

转眼之间,几个多月的毕业设计就要结束了,也就意味着我的大学生活也逐渐步入尾声。这次的毕业设计,让我学习到了许多许多……与此同时也让我深刻认识到学好专业知识的重要性和理论联系实际的必要性。这次毕业设计让我我深深明白每一次学习实践都是来之不易的,都是通过老师深思熟虑后给我们定下的,然后让我们朝着既定的目标前进,让我们在知识的海洋里翱翔,让我们领略随着年龄的增长学无止境的意境,让我们不断地扩充自己的知识领域,也逐渐长大成熟。为今后能够在自己的工作岗位上充分发挥自己的才能奠定了坚实的基础。

这次毕业设计,让我看到了许多热心的人,在此我要感谢他们。首先我要感谢我的指导老师徐启徐老师。从项目的选题,到项目的实施,到项目的改进完成,最后到论文的撰写,这期间他总是会给予我们细心的指导和不懈的支持,他不仅向我传授了知识、解答了疑惑,还给予了我很多方面的支持。在他尽心尽力的帮助下,我的毕业设计才能如期顺利完成。在此谨向我们的徐老师致以最崇高的敬意和最诚挚的谢意!与此同时同学之间的互助也在为这次成功添砖加瓦。最后我要要感谢母校这几年来的教育和培养,它教会了我做人做事。在此我希望望我们的母校更加辉煌,永远年轻,为国家培育更多的栋梁之才。

由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和同学批评和指正!

35

参考文献

参考文献

1.郭红霞. pH值控制方法的研究及其控制器的设计[J] 检测技术与自动化装置,2008.

2.王苑增、黄文涛、何宙兴. ARM Cortex-M3 的STM32微控制器实战教程[M]. 北京:电子工业出版社,2014.

3.李宁.ARM MCU开发工具MDK使用入门[M].北京:北京航空航天大学出版社,2012.

4.孟强、徐慧、万青苗.基于STM32的数据采集及显示系统的设计[J] 电脑知识与技术,2013,(13):15~17.

5.蔡晓霞. 基于PLC 的pH值自动控制系统[J] 设计与制造,2010,23(12).

6.喻金钱,喻斌.STM32F系列ARMCortex-M3核微控制器开发与应用[M].北京:清华大学出版社,2011.

7.刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.

8.彭刚,春志强.基于ARMCortex-M3的STM32系列嵌入式微控制器应用实践[M].北京:电子工业出版社,2011.

9.王永虹,徐炜,郝立平. ARMCortex-M3微控制器原理与实践[M].北京:北京航空航天大学出版社,2008.

10.黄志伟,王兵.STM32F32位ARM微控制器应用设计与实践[M].北京:北京航空航天大学出版社,2012.

11.贾宝会,王超.除盐水PH值自动控制系统开发[J].微计算机信息,2009,(16):21~23. 12.朱立华,王立柱.C语言程序设计[M].北京:人民邮电出版社,2012. 13.于海生.计算机控制技术[M].北京:机械工业出版社,2013. 14.武平丽. pH值的在线检测和控制[J].检测和控制,2006,(8).

15.商建东,陈康宁.工业生产过程的新型pH智能控制器[J].仪表技术与传感器,1998(5). 16.蔡晓霞. 基于PLC的污水处理控制系统的研究[J].机械工程,2010:60~60.

17.朱晓锋.基于STM32的污水处理pH值控制系统的设计[J].模糊识别与智能系统,2012(2):87~88. 18.郭红霞,刘磊.pH值控制方法的研究[J].价值工程,2012(6)283~284.

19.陈朝大,杜启亮,秦传波,田联房,肖志远. 基于DSP技术的排险机器人车体控制系统[J]. 新型工业化,2013(12):62~68.

20.邱云平. 基于ARM的LED显示屏设计及显示效果的算法研究[J]. 计算机技术,2012:61~61. 21.李俊华,吴慎言.利用AT89S51单片机设计pH值控制器[J]. 机床与液压,2010(2):92~93.

36

南京工业大学本科生毕业设计(论文)

22.李丽.单片机复位电路的抗干扰设计[J]. 辽宁师专学报,2009(4):26~27.

23.马建伟.基于STM32的空气动力学数据采集系统的设计[J]. 测试计量技术与仪器,2010:69~69. 24.张慧.基于单片机的步进电机控制系统实用设计[J]. 机电信息,2013(21):111~112. 25.王钊,陈真. 基于Simulink的PID控制器设计[J].信息与控制工程,2007(5):70~72.

37

附录1

PID程序

#include \#include \#include \

static float Ek_1 = 0; static float Ek_2 = 0; static float Ek1_1 = 0; static float Ek1_2 = 0; extern int KP; extern int KI; extern int KD;

float PID_Dispose(u16 adcx,int pH) {

float Yk,Duk,Ek,Ek1;

Yk=(231*(float)adcx)/4096-35; //量程变换 Ek=pH-Yk; //求偏差 Ek1=-Ek; if(Ek>4) //加酸泵控制精度 { Duk=(KP+KI+KD)*Ek -(KP+2*KD)* Ek_1 +KD*Ek_2; PWM(Duk); Ek_2 = Ek_1; Ek_1 = Ek; }

if(Ek1>5) //加碱泵控制精度 { Duk=(KP+KI+KD)*Ek1 -(KP+2*KD)*Ek1_1 +KD*Ek1_2; PWM1(Duk); Ek1_2 = Ek1_1; Ek1_1 = Ek1; }

return Duk; }

采样程序及动态显示程序 #include \#include \#include \#include \

38

volatile u16 adcx; u16 addx; float temp; int Yk1; int Yk2; int Ykb; int Ykc; int a=0; int b=0; int pH0;

extern int pH;

//定时器3中断服务程序 void TIM3_IRQHandler(void) { if(TIM3->SR&0X0001)//溢出中断 {

adcx=Get_Adc_Average(ADC_CH1,10); POINT_COLOR=BLUE; Yk1=(231*(float)adcx)/4096-35; //计算10倍PH值 Ykc=Yk1/10; Ykb=Yk1; LCD_ShowxNum(92,70,Ykc,2,16,0); //显示整数位数值 LCD_ShowxNum(116,70,Ykb,1,16,0);//显示小数位数值 temp=(float)adcx*(3.3/4096); addx=temp; LCD_ShowxNum(156,50,addx,1,16,0);//显示电压值 temp-=addx; temp*=1000; LCD_ShowxNum(172,50,temp,3,16,0X80); POINT_COLOR=RED; if(a==0) {LCD_DrawPoint(30+a,240-Yk2);} if(a==180) {LCD_Fill(31,100,210,239,BLACK); POINT_COLOR=GREEN;

//显示曲线标度

LCD_DrawLine(30 , 100, 32, 100); LCD_DrawLine(30 , 120, 32, 120); LCD_DrawLine(30 , 140, 32, 140); LCD_DrawLine(30 , 160, 32, 160); LCD_DrawLine(30 , 180, 32, 180); LCD_DrawLine(30 , 200, 32, 200); LCD_DrawLine(30 , 220, 32, 220);

39

本文来源:https://www.bwwdw.com/article/kh52.html

Top