APP下载

基于PID算法的LabVIEW温控系统设计与仿真

2021-04-04崔业梅杨焕峥

现代信息科技 2021年18期
关键词:微控制器虚拟仪器温度控制

崔业梅 杨焕峥

摘  要:为了提高温控系统的控制精度,采用热电偶测量温控系统的温度,将采集的电压信号进行放大,由STM32F103芯片进行A/D转换、运行PID算法、输出PWM信号对温控系统的温度进行快速与稳定控制,并通过该芯片的串口将当前温度值上传上位机,上位机运行LabVIEW软件,编有程序框图和前面板程序,程序框图包含串口发送和接收数据程序,前面板包含数据波形、仪表显示。通过Proteus和LabVIEW软件联合仿真表明,系统控制温度精度高、快速与稳定、界面友好,通过进一步提高温度控制范围,可适用于更多加热场合。

关键词:温度控制;算法;虚拟仪器;微控制器;仿真

中图分类号:TP368;TN72   文献标识码:A 文章编号:2096-4706(2021)18-0040-04

Abstract: In order to improve the control accuracy of the temperature control system, the thermocouple is used to measure the temperature of the temperature control system, amplify the collected voltage signal, conduct A/D conversion by STM32F103 chip, run PID algorithm and output PWM signal to quickly and stably control the temperature of the temperature control system, upload the current temperature value to the upper computer through the serial port of the chip, and the upper computer runs LabVIEW software, The program block diagram and front panel program are compiled. The program block diagram includes the serial port sending and receiving data program, and the front panel includes data waveform and instrument display. The joint simulation of Proteus and LabVIEW software shows that the system has high temperature control accuracy, fast and stable, friendly interface, and can be applied to more heating occasions by further improving the temperature control range.

Keywords: temperature control; algorithm; virtual instrument; microcontroller; simulation

0  引  言

溫控系统在各种加热场合应用广泛,研究温度控制具有重要意义。测温元件热电偶可以将检测的温度转变为电压信号输出。由运算放大器芯片构成的放大电路可以将热电偶输出的电压信号进行放大[1]。PID算法是控制行业经典的算法,被广泛用于温度控制、电机转速控制等[2,3]。意法半导体集团的STM32F103芯片内部包含有A/D转换、串口通信、定时器等功能模块,可以运行PID算法等程序,可以采用“多合一”STM32CubeIDE集成软件对该芯片进行图形化的配置、编写功能程序、进行程序编译与下载等工作[4]。LabVIEW软件可用于图形化的虚拟仪器编程,实现数据采集、系统设计、界面显示等功能[5]。Proteus软件可以绘制STM32F103等芯片构成的电路,并结合LabVIEW软件进行功能仿真[6]。虚拟串口助手软件可以在两个串口进行连接调试时使用。项目融合以上技术,实现一种温控系统的设计与仿真,具有一定的新颖性,能提高控制温度的精度,实现快速与稳定的控制,人机界面友好,通过进一步提高温度控制范围,利用BP神经网络等算法快速整定PID参数,可适用于更多加热场合。

1  系统结构

该项目利用热电偶测量温控系统的温度,通过运算放大器构成的电路将采集的电压信号放大,利用STM32F103芯片将放大后的信号进行A/D转换,根据编写的PID算法程序,输出不同占空比的PWM信号经过加热电路对温度进行控制,实现快速与稳定的温控效果。并且,通过芯片的串口通信方式将当前温度值传送给上位机,上位机利用LabVIEW软件编写有接收数据与显示程序,分为程序框图和前面板,前面板采用图形化和仪表形态的方式显示数据。系统结构如图1所示。

2  电路设计及算法编程

2.1  温控电路设计

温度采集与控制电路如图2所示,采集部分由热电偶TC1、信号放大电路OPAMP等组成,控制部分由加热部件OV1、控制阀SW1、信号处理电路U1等组成。

2.2  STM32芯片初始化

通过STM32CubeIDE软件集成的STM32CubeMX软件创建项目,选择STM32F103芯片。选择晶体振荡器作为高速时钟,选择PD0、PD1引脚外接的晶振作为芯片工作所用外部时钟源。设置STM32F103微控制器工作主频为8 MHz。打开USART1,设置串口通信模式为异步收发、“9600-N-8-1”模式,即波特率数值为9 600,无校验,数据位为8位,停止位为1位,并使能USART1中断。设置PA0引脚为ADC1_IN0模式,设置连续转换等方式,采用DMA传输方式,循环模式,并打开DMA中断使能。设置定时器1预分频系数为400-1,计数周期为20-1,定时1 ms作为项目基本计时用,定时器3预分频系数为8-1,计数周期为1000-1,开启PWM模式,然后分别开启中断。在工程管理选项里最小堆栈大小设置为0x600,选择只复制所需要的库文件,每个外围设备都会生成单独的.c和.h文件,然后生成C语言代码。

2.3  PID算法编程

PID算法实现系统控制是通过给定值和实际值之间形成的偏差进行,比例、积分和微分系数分别是Kp、Ki、Kd,它将偏差的Kp、Ki、Kd通过线性组合构成控制量。PID参数的整定是通过调节Kp、Ki和Kd,使PID控制器具有更好的控制性能。调整这三个参数将对PID控制系统产生不同的影响,增大Kp会加快系统的响应时间,但过大的Kp会引起系统的振荡和超调,过小的Kp会降低系统的响应速度;增大Ki可以提高系统的稳定性,但Ki过大会引起系统振荡次数过多,过小会导致积分控制过弱,不能有效消除残差;增大Kd能改善系统的动态特性,但Kd太大或太小都会适得其反。PID控制的参数选择将直接影响其控制效果,因此这三个参数的选择非常重要,可通过优化得到最佳整定值。通过STM32CubeIDE软件编写了STM32F103芯片的PID温控程序为:

main()函数中while (1)代码:

while (1)

{

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

ADC_Value =0;                     //A/D转换初始数值

for(i = 0;i < 20;++i)

{

ADC_Value += ADC_ConvertedValue[i];

}

ADC_Value = ADC_Value / 20;       //A/D转换求多次平均后的数值

Input = ADC_Value*25/819.0;       //计算得到当前温度值

PrintFloat(Input);              &nbsp; //串口带小数输出当前温度值

if (Compute())                     //计算PID输出

{

pwm = Output;

pwm_output(pwm);              //调节输出PWM信号占空比

}

}

PID()函数代码:

void PID(double* Input,double* Output,double* Setpoint,

double Kp,double Ki,double Kd,int POn,int ControllerDirection)

{

myOutput = Output;

myInput = Input;

mySetpoint = Setpoint;

inAuto = false;

SetOutputLimits(0,999); //默认输出限值对应于PWM限值

SampleTime = 10;          //默认控制器采样时间为0.1秒

SetControllerDirection(ControllerDirection);

SetTunings(Kp,Ki,Kd,POn);

lastTime = millis()-SampleTime;

}

编写的程序通过Proteus软件的STM32F103芯片仿真运行,实现PWM信号控制温度和串口数据通信。如图3所示。

3  LabVIEW编程

3.1  LabVIEW前面板设计

新建一个空的LabVIEW工程文件后,分别放置串口选择、波形与仪表控件等,来显示热电偶检测的当前温度值及其变化,分别放置输入控件、按键等,来设定温控系统需要达到的温度值。LabVIEW软件设计的前面板如图4所示。

3.2  LabVIEW程序框图设计

进行串口通信框图设计,放置读/写串口缓冲区等控件,设置串口通信“9600-N-8-1”模式,即波特率数值为9 600,无校验,数据位为8位,停止位为1位,根据自己电脑的串口选择串口号,这里选择COM3端口。LabVIEW软件设计的程序框图如图5所示。

4  系统仿真

利用虚拟串口助手软件将Proteus软件的STM32F103芯片连接的COM4端口和LabVIEW软件的COM3端口连接,启动Proteus和LabVIEW软件进行仿真,此时在虚拟串口助手软件上看到COM3和COM4端口都被打开进行通信。在Proteus仿真软件上看到热電偶测量温控系统的温度,将采集的电压信号进行放大,由STM32F103芯片进行A/D转换、运行PID算法、输出PWM信号对温控系统的温度进行快速与稳定控制,并通过该芯片的串口将当前温度值上传上位机。在LabVIEW软件上看到,前面板显示当前温度值,数据波形、仪表显示,通过设定温度窗口,输入设定的温度值,发送后,下位机STM32F103芯片通过PID算法调整输出PWM信号占空比,使温控系统的温度快速与稳定的达到设定值。通过LabVIEW前面板设定温控系统的温度分别为30 ℃和70 ℃的时候,仿真温控系统的温度从25 ℃分别变化到30 ℃和70 ℃,通过PID算法实现了快速与稳定控制。数据分别如表1、表2所示,曲线如图6所示。

5  结  论

该项目采用热电偶测量温控系统的温度,将采集的电压信号进行放大,结合A/D转换、PID算法和PWM控制等对温度进行快速与稳定的调节。采用串口通信的方式,实现了数据上、下位机之间的传输。上位机采用LabVIEW软件编写了图形化和仪表形态的数据显示界面,结合Proteus软件的温度采集与控制、STM32F103芯片电路进行了系统仿真。系统结构清晰,能稳定运行,具有测量精度较高、界面友好等特点。在实际使用中,通过进一步提高温度控制范围,利用BP神经网络等算法快速整定PID参数,可适用于更多加热场合。

参考文献:

[1] 宋冬萍.模糊自整定PID温控系统的设计及仿真分析 [J].邢台职业技术学院学报,2012,29(5):82-86.

[2] 王金.便携式PCR仪温控系统设计与仿真研究 [D].大连:大连海事大学,2015.

[3] 王荣.基于Smith预估器的温控系统设计与仿真 [J].仪器仪表用户,2012,19(5):58-60.

[4] 戴明,李军科,孟召议.基于STM32处理器与Modbus/ 485协议的主轴电机温控系统设计 [J].无锡商业职业技术学院学报,2020,20(4):107-112.

[5] 高毅.一种果蔬保鲜箱温控系统的设计与仿真 [J].山东工业技术,2017(17):5-6+261.

[6] 翟一兵,何琦,杨利民,等.基于PROTEUS仿真的温度报警器在仪器仓的应用 [J].装备维修技术,2020(2):285.

作者简介:崔业梅(1983—),女,汉族,江苏东台人,实验师,高级技师,硕士,研究方向:教育学、电路技术;杨焕峥(1980—),男,汉族,江苏无锡人,副教授,硕士,研究方向:嵌入式人工智能与物联网。

猜你喜欢

微控制器虚拟仪器温度控制
电饭锅为什么不会把饭做糊?
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
高职院校应用虚拟仪器技术的研究与实践①
谈建筑工程大体积混凝土施工技术及温度控制
大体积承台混凝土施工质量监督管理
电磁导向智能车设计探讨
基于MC9S08QG8低端微控制器的无线控制器设计
基于LabVIEW与USB的虚拟仪器接口设计
基于虚拟仪器技术测控人才培养模式的研究与探索
虚拟仪器的类型及其发展情况