STM32单片机作控制器,设计温度单反馈的控制系统
发表时间:2023-11-05 14:02:56
文章来源:炫佑科技
浏览次数:221
菏泽炫佑科技
STM32单片机作控制器,设计温度单反馈的控制系统
1.控制系统硬件设计
1、控制系统硬件总体设计
温度是一个需要精确控制的重要变量。 温度控制系统通常用于保持温度恒定或使温度按照一定的规定规则变化。 闭环控制是*常见的温度控制系统类型。 本设计是一个闭环温度控制系统。 闭环温度控制框图如图1所示。
温度控制系统由被控对象、测量装置、调节器和执行机构组成。 测量装置测量受控电热水器中的水温。 控制器将测量值与给定值进行比较。 如果存在偏差,控制器处理偏差信号并向执行器输出控制信号以启动或停止电热水器。 热水器工作并*终将温度调节至设定值。 被控对象是电热水器内水的温度。
本控制系统是根据上述理论设计的。 本系统的硬件主要包括:STM32单片机、PT100温度传感器、开关电源、模拟量正向通道、继电器输出模块、HH52P固态继电器、CJ20-10接触器、电热水器,控制系统硬件结构图为如图2所示。
2.STM32单片机简介
STM32单片机是整个温度控制系统的核心部分。 由于温度控制器具有较高的要求,如高执行速度、高控制精度、高稳定性和高灵敏度,因此选择高性能且经济的单片机已成为必然。 本设计采用STM32系列单片机作为控制电路的核心部件。 该微控制器是意法半导体公司生产的32位高性能、低成本、低功耗增强型系列微控制器。 其核心采用ARM。 新开发的-M3架构,该核心专为满足用户高性能、低功耗、经济实用的需求而设计。 ARM-M3处理器架构体系结构的增强,让STM32增强系列微控制器受益匪浅。 它使用的THUMB-2指令集使其指令更加高效、更强。
它采用薄型四方扁平封装技术(LQFP),有100个引脚。 片上拥有512KB的FLASH和64KB的RAM(片上集成了12Bit A/D、D/A、PWM、CAN、USB、安全数字输入输出卡SDIO、可变静态存储控制器FSMC等资源)。 1个串行外设接口(SPI)总线控制(16MB容量串行FLASH),用于存储数据、代码、字体、图像等。一个2.8英寸26万色显示屏(TFT(带触摸屏))接口,使用MCU的FSMC的16位数据接口方式,触摸屏由带有硬SPI接口的(4线电阻式触摸屏转换接口芯片)芯片控制。 STM32微控制器采用2.0~3.6V的电源电压,可工作在-40℃~85℃的温度范围。 其*高工作频率为72MHz。 其引脚分布如图3所示。
微控制器具有三种不同的时钟源可供选择来驱动系统时钟,即HIS振荡器时钟、HSE振荡器时钟和PLL时钟。 这些器件还具有 2 个辅助时钟源,分别是 40KHz 的低速内部 RC 和 32KHz 的低速外部时钟源,可用于驱动看门狗时钟和 RTC。 任何时钟源在不使用时都可以独立关闭或打开,以优化系统功耗。
微控制器采用-3.3芯片电路供电,输入+5V,提供3.3V的固定电压输出。 为了减少电磁干扰,在给CPU供电之前需要经过C7-C10滤波。 R8为DGND和AGND之间的连接电阻,R9和D5 LED将该电阻连接到电源指示灯,电源电路如图4所示。
RTC的备用电源采用VBAT 3.3V锂离子芯片电池。 RTC的备用电源如图5所示。
单片机外部晶振/陶瓷谐振器(HSE)(P12、P13),Y1为8MHz晶振,C22、C23为谐振电容,尺寸选择22P。 通过PLL模块将系统时钟提高到72MHz。 单片机的低速外部时钟源(LSE)(P8、P9),Y2为32晶振,C20、C21的谐振电容选择22PF。需要注意的是,根据推荐Y2应使用ST公司的晶振,电容负载为6PF,否则可能停振。 时钟电路如图6所示。
目前,STM32微控制器已经应用于很多场合,并开发出了许多性能优良的产品,如可编程逻辑控制器、打印机、扫描仪、电机控制和一些数码产品等。 STM32已经成为非常成熟的适用控制器。 本设计选择的开发板如图 7 所示。
3.硬件接线及其原理介绍
当温控系统正常工作时,PT100温度传感器首先检测被控对象电热水器内水的当前温度信号,并将PT100温度传感器的电阻值变化在模拟量正向变换和放大。通道,冷端温度补偿,线性化。 然后将模拟正向通道输出的模拟电压信号发送至主控模块的STM32单片机进行处理。 经过数字处理后与给定温度值的数字量进行比较。 单片机根据预定的PID控制算法处理数据,并通过显示屏显示当前温度和设定值。 程序自动判断系统是否存在异常。 如果系统正常运行,则将PID运算结果作为输出控制量,控制PWM波形的输出。 ,控制执行机构的动作,从而达到接通或断开电阻炉主电路的目的,实现对电热水器的控制。 单片机控制水温的同时,可以选择连接上位机进行配置监控,将变量信息传递给上位机使用,并将上位机设定的参数下载到控制器STM32中,从而实现本次设计的系统控制回路接线如图8所示。
模拟前向通道采用了TI(又名)公司生产的芯片,加上经过特殊处理的前级模拟信号运放等一些基础元件,成功实现了微弱信号的测量。 具有以下特点:输入阻抗高,对被测电路几乎无影响; 具有自动校零功能; 精确的差分输入电路; 自动识别信号极性; 过压、欠压输出信号; 采用位扫描(共5位),带BCD码输出。 本设计使用 PT100 作为温度传感器。 需要连接三根信号线,其中两根内部短路。 信号经单个8通道数控模拟电子开关选通后,经过运算放大器,得到与温度信号对应的模拟电压值。 本设计选择的处理方式是通过6脚运算放大器导出模拟电压信号,直接使用单片机实现数字处理。 模拟前向通道如图 9 [6] 所示。
继电器输出模块主要用于执行STM32输出的PWM控制信号,及时接通或断开其后面的固态继电器HH52P和交流接触器CJ20-10,从而控制加热器的主电路。 由于单片机输出的PWM信号电压较低,约为3.3V,不能直接用于驱动24V固态继电器HH52P。 因此,中间需要添加一个继电器输出模块。 继电器输出模块的供电电压为12V。 只要有输入信号,就可以控制线圈。 继电器输出模块的吸合与断开如图10所示。
PT100是铂热电阻自动化软件开发,其阻值随温度变化而变化。 PT后面的100表示其电阻在0℃时为100欧姆,在100℃时其电阻约为138.5欧姆。 常见的PT100感温元件有陶瓷元件、玻璃元件、云母元件等。 它们由铂丝分别缠绕在陶瓷骨架、玻璃骨架和云母骨架上,然后经过复杂的工艺加工而成[7]。 PT100的工作原理:当PT100在0℃时,其电阻为100欧姆,随着温度的升高,其电阻会以近似恒定的速率增加。 但它们之间的关系并不是简单的比例关系,而应该更接近于抛物线。
铂电阻阻值随温度变化的计算公式如式(1)和式(2)所示。
式中的A、B和系数是通过实验确定的。 PT100铂电阻的RT曲线如图11
PT100阻值随温度的变化如表1所示
本次设计的系统硬件电路实物图如图12所示。
2.控制系统软件设计
1. 软件开发环境和工具
C语言编程
C语言是一种计算机编程语言。 它兼有高级语言和汇编语言的特点。 它可以用作系统设计语言来编写工作系统应用程序,也可以用作应用程序设计语言来编写不依赖于计算机硬件的应用程序。 因此,它具有广泛的应用范围。 C语言是国内外广泛使用的语言。 使用的计算机编程语言。 C语言是一种层次清晰的结构化语言,很容易以模块化的方式组织程序,并且易于调试和维护。 C语言作为高级编程语言被广泛使用。 用C语言编写的软件程序不针对特定的硬件系统,可以根据不同的单片机进行移植。 基于C语言的上述诸多特点和优点,本设计软件编程采用C语言编程[9]。
软件开发工具简介
编程软件采用德国Keil公司的MDK。 该编程软件已被全球超过10万名嵌入式工程师或学者验证和使用。 它是ARM针对各种嵌入式处理器推出的*新软件开发工具。 它集成了业界*领先的技术,集成了国内大多数软件工程师所需的特性和功能。 集成开发环境支持ARM7、ARM9以及*新的-M3核心处理器,自动配置启动代码,集成Flash模块,功能强大。 性能分析功能。 其集成开发环境如图13所示。
集成开发环境的主要特点:
(1)源代码编辑器非常强大。
(2)可根据开发工具配置设备数据库。
(3) 可以使用项目管理器来创建和维护项目。
(4)编译工具集成了组装、编译、连接过程。
(5) 设置开发工具配置的对话框。
(6)真正集成高速CPU和片上外设模拟器的源代码级调试器。
(7) 先进的GDI接口,可用于目标硬件的软件调试以及与仿真器的连接。
(8) Flash编程器用于将应用程序下载到Flash ROM中。
(9) 完整的开发工具手册、器件数据手册和用户指南。
2.STM32工程创建与配置
经过学习软件编程,我对STM32编程有了初步的了解。 以下是创建和配置项目的整个过程。
(1)新建一个文件夹(以后编辑的每个工程都会放到这个文件夹中,并自己命名,这里的所有文件都可以自己命名,例如:STM32文件)。 这里使用的库函数版本是V3.5库函数版本。
(2)创建一个文件夹(名称可以根据自己写的程序来命名,如:Demo)。 新建子文件夹User,存放用户源程序。 新建子文件夹,用户KEIL工程文件。 下面依次创建Obj和List子文件夹,用于存放编译过程中生成的中间文件。 将main..h、.c、.h、.c等文件复制到User文件中。
(3) 将源代码复制到Demo文件夹中。
将整个 lib3.5/ 文件夹复制到 Demo 文件夹中。 这是ST的标准库,以源代码形式提供。 也可以直接将该文件夹复制到STM32文件夹中,使其与后面创建的其他项目在同一目录下,这样就可以共享该目录下的项目了。 这样可以避免以后创建项目时必须复制一次。
(4)新建Keil MDK工程
启动Keil MDK,点击菜单New,然后按照向导操作。 选择CPU类型为。 当提示是否复制启动代码时,选择否。为了延长芯片的使用寿命和加快仿真速度,可以直接在ram中仿真(ram仿真速度快)。 使用ram模拟后,断电后所有数据都会丢失。 修改名称,添加两个,一个Flash,一个Ram。
为了方便代码管理,在此下创建多个Group。 User:存放用户编写的源代码; RVMDK:存放启动文件(汇编文件);:存放ST标准库文件; CMSIS:存放CMSIS接口文件(这也是库的一部分); 创建完Group后,我们开始一一添加文件。添加用户:如main.c .c 添加RVMDK:.x; 补充:我们使用的STM32温控系统设计
一些.C 文件。 如:misc.c.c.c等; 添加 CMSIS:.c 10x.c。
(5) 配置项目并单击“”按钮。
打开Flash,调整Flash设置,切换到,然后选择文件夹,勾选文件前的复选框,将名称更改为。
切换到,选择文件夹。 切换到C/C++,添加两个预编译宏(这两个宏是ST库使用的),并修改路径。 切换到Debug,选择硬件调试器,我们选择ST-Link,勾选Run to main之前的复选框。 切换到,选择调试器类型,我们选择ST-Link。
打开Ram 并调整Ram 设置。 切换到,切换到。 选择文件夹并选中 Hex 文件。 将名称更改为 . 切换到,选择文件夹。 切换到C/C++,选择One ELF per,添加两个预编译宏(这两个宏是ST库使用的),修改路径。 这样就创建了一个新的项目,我们可以根据自己想要实现的功能来编辑程序。
3、软件系统总体设计
1. 软件程序结构
在深入学习STM32编程、PID控制算法、组态王软件的基础上,进行温度控制系统的软件设计。 软件设计主要包括温度数据采集与转换、PID算法设计、PWM输出信号控制、触摸屏显示设计、上位机监控画面设计。 上位机监控画面的设计主要包括主监控画面的设计、报警画面的设计等。整个程序系统主要由主控程序、初始化程序、温度设定程序、PID设定程序、温度采集程序、温度显示程序、PID控制算法程序、PWM控制信号输出程序和串行通讯程序。 其结构如图14所示。 3.2.2 主程序设计
主程序是整个软件系统的支柱。 它位于程序的顶层。 它引导系统进入正常工作状态,协调各程序块之间的调用关系,使硬件系统能够正常工作,完成温度控制系统。 该任务,其流程如图15所示。 3.2.3 初始化程序设计
系统初始化程序在系统上电或复位时对温控器的硬件和软件进行初始化,并完成系统配置。 初始化程序主要包括:显示初始化、系统时钟初始化、I/O口配置、时序等。 设备初始化。
2.温度采集程序设计
温度检测电路由PT100温度传感器和模拟正向通道组成,由两者直接完成温度检测。 利用温度检测电路获取与温度变化相对应的模拟电压信号。 信号直接由STM32进行A/D转换。 由于转换后的值与实际温度值并不线性相关,因此必须采集相应的温度值。 温度值是为了验证当前温度是否正确,并用这个温度值对应正向通道输出的模拟电压值来拟合数值和温度值之间的曲线,得到它们之间的函数关系。 该拟合曲线如图 16 所示。
曲线线性化是曲线拟合的重要手段之一。 一些非线性数据可以通过简单的变量变换来线性化,从而根据*小二乘原理可以得到变换后的变量的直线方程。 在实际工作中,经常使用这个直线方程来绘制数据的标准工作曲线。 同时,可以根据需要将该线性方程恢复为曲线方程,实现数据的曲线拟合。 *终得到的曲线公式如式(3)所示。
温度采集相关程序核心代码如下:
void (void) //模拟前向通道温度采集
整数总和=0;
u8 计数,i;
对于(i=0;i《12;i++)
for(计数=0;计数《;计数++)
sum += [计数][i];
[i]=总和/;
总和=0;
本程序用于获取当前温度对应的模拟信号,转换为数字信号,通过拟合公式计算出对应的温度值。
3.位置PID控制算法设计
在工业生产过程中,常常要求生产装置的温度、压力、流量、液位等过程变量保持在一定值或按一定规律变化,以满足生产工艺的要求。 PID控制算法的原理是根据偏差调节整个控制系统,使被控变量的实际值与过程要求的预定值一致。 由于PID控制算法具有技术成熟、易于人们熟悉和掌握、无需建立数学模型、控制效果好、鲁棒性强等优点,PID控制算法已成为应用*广泛的控制算法。
单片机控制是一种采样控制,只能根据采样时的偏差值计算出控制量。 因此不能直接采用连续PID控制算法,需要采用离散化的方法。 由于大多数工业生产过程都是缓慢变化的过程,只要控制机的采样周期T足够短,间歇控制形式就趋于连续控制形式。 数字PID控制算法分为增量式PID控制算法和位置式PID控制算法。 由于位置式PID控制算法具有较高的控制精度,而增量式PID控制算法则存在:积分截断效应大、静态误差、溢出等问题。 存在影响大等缺点,因此本设计选用的控制算法为位置PID控制算法。
位置PID控制公式如式(4)所示。
PID控制算法参数整定及采样周期选择
PID控制算法参数整定的方法有很多种,概括起来可以分为以下两类:
(1)理论计算及整定方法。 主要是根据系统的数学模型,通过理论计算确定控制器参数。 该方法得到的计算数据不能直接使用,必须通过实际工程进行调整和修改。
(2)工程设定法。 主要依靠工程经验,直接在控制系统的试验中进行。 该方法简单易掌握,在工程实践中得到广泛应用。 PID控制算法参数的工程整定方法主要有临界比例法、响应曲线法和衰减法。 这三种方法各有特点,但共同点是通过实验调整控制器参数,然后根据工程经验公式。 但无论采用哪种方法,获得的控制器参数都需要在实际运行中进行*终的调整和改进。
本文采用经验方法对PID控制算法参数进行整定。 下面详细解释经验方法的调整步骤:
(1) 令调节器参数的积分系数I=0、微分系数D=0,使控制系统进入闭环运行,将比例系数P由小变大,让扰动信号发生阶跃变化,观察控制过程,直至满意为止。 到控制过程。
(2) 将比例系数P作为当前值乘以0.83,将积分系数I从小到大增大,同时也让扰动信号进行阶跃变化,直至得到满意的控制过程。
(3) 保持积分系数I不变,改变比例系数P,观察控制过程是否有改善。 如果有改善,继续调整,直到满意为止。 否则,增大原比例系数P,然后调整积分系数I,尝试改进控制过程。 重复此过程,直到找到满意的比例系数P和积分系数I。
(4)引入适当的微分系数D。此时可以适当增大比例系数P和积分系数I。 与前面的步骤类似,微分系数的设置也需要反复调整,直到控制过程满意为止。
经验法简单可靠STM32单片机作控制器,设计温度单反馈的控制系统,但需要一定的现场操作经验,设置时容易出现主观片面性。 使用PID控制算法时,由于整定参数有多个,重复试验的次数增多,从而增加了获得*优整定参数的难度。
需要说明的是,本设计中使用的PID控制算法的参数与工业PID控制算法的参数不同。 在工业中,由于对象体积大、容量大、控制室与现场距离较远等因素,PID控制算法的参数一般都大于本设计的参数。 书籍和参考资料中的PID控制算法参数大多是从工业生产过程中获得的,因此这种经验数据不适合设计PID控制算法的参数。
采样周期的选择,按照一定的时间间隔T,将在时间和幅度上连续的信号转换成在时刻0、T2、…、kT的一系列脉冲输出信号,这个过程称为采样过程。 执行采样动作的开关S称为采样开关或采样器。 采样后的脉冲序列ty*称为采样信号。 采样器的输入信号ty称为原始信号。 采样开关每次通断的时间间隔T称为采样周期。 采样信号ty在时间上是离散的,但在幅度上仍然是连续的,因此采样信号是离散的模拟信号。 信号采样流程如图18所示。
从信号采样过程可以看出,采样后并不是一直取信号值,而是在某些时刻取信号值。 这种处理会导致信号丢失吗? 香农采样定理指出:如果模拟信号(包括干扰)频谱的*高频率为maxf,只要按照采样频率进行采样,那么采样信号ty*可以唯一观测到 ty。 采样定理给出了 ty* 能够唯一观察 ty 所需的*小采样频率。 在实际应用中,常常取,甚至更高。
4、确定采样周期时需要注意以下事项:
(1)从执行机构的特性要求来看,有时输出信号需要保持一定的宽度。 采样周期必须大于该时间。
(2)从控制系统的跟随性和抗干扰性能角度考虑,要求采样周期较短。
(3)从单片机的工作量和各调节环路的计算量来看,采样周期一般要求较大。
(4)从单片机的精度角度来看,采样周期太短是不合适的。
经过多次调试设置,选择采样周期T为1s,以获得*佳的采样效果,且信号采样不失真。
5. PWM输出程序设计
脉宽调制(PWM),是英文“Pulse Width”的缩写,是一种利用微处理器的数字输出来控制模拟电路的非常有效的技术。 它广泛应用于从测量到通信的各个领域。 功率控制和转换的许多领域[14]。 PWM控制技术以其控制简单、灵活、动态响应好等优点,成为电力电子技术中应用*广泛的控制方法。
利用单片机输出的PWM信号控制固态继电器的通断,通过改变一定时间内通过的交流波的数量来控制电热水器内的水温。 我国公共电网的频率为50HZ,周期为0.02秒。 设置 PWM 信号的输出周期为 4 秒,即 STM32 单片机以 0.25Hz 的频率输出 PWM,并改变 PWM 的占空比。 4秒周期内,当PID算法的控制量大于100时,交流电源的*大周期波数为100。当PID算法的控制量小于0时,交流电源的*小周期波数为0。当控制量在0~100之间时,根据比例转换确定PWM输出信号的占空比。 The STM32 has /, and each timer/ can a PWM . This uses the TIM3 timer/ of the to PWM at the PB5 pin. The PWM is shown in 19.
4. of host
1. of host
King () was by Yacon Co., Ltd. The was by Mr. Lin Wei, a of the of and of China and a of . It took of five years to and is the best . , first in and sales of in the . is a with ease of use, and . to focus on of , , and . Just fill in the form to a and data for users. and can be the to the goal of " ." The by is a new type of that is the with an of and . It has , good , easy , , and Short cycle times and other . is used in of due to its such as high , anti- , , , and high cost .
2.
Basic for using to of :
(1) of ;
(2) a ;
(3) ;
(4) and .
Based on the of the above , the is this time as shown in 20
See Table 2 for data .
the of the as :
name: ASCII;
: port;
name: STM32;
the port : COM4;
: 1.0.
, are shown in Table 3.
3. Alarm and event
alarm time is an of . " King" and a to alarm and time .
and in alarm , , user login and . these and , users can and view , , and the of each . When and occur, they will be in real time in the alarm to the set [16]. the alarm group. The alarm this time is shown in 21.
5. and
1. and
After many times of , the of each group of , it is that the is best when the PID in the are as shown in Table 4.
: The core of this is the PID , and the is the of the PID . 22 shows the of the curve when the is 50°C and the set is 60°C. After 9 of , the , the the set , the -state error is 0.4°C, and the is zero. 。 In this , the can reach the set , the is small, and the -state is very good.
2. and
the -week , I many . In the past, it took a lot of time to solve these . Of , this also gives me an of the that I or may in .
(1) The host on-site data
: The is that the the and the is wrong or loose, and the used by the port is set . When using to the I/O , the name ASCII be .
(2) The of the host the water .
: The of the in the host is with the .
(3) The error is large after the is
: The for the error are: the is a large , the is sent from the to the solid-state relay pull-in, and then the wire stops . In this , there are time , and other .
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等