基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx

上传人:b****2 文档编号:4812291 上传时间:2023-05-04 格式:DOCX 页数:62 大小:1.24MB
下载 相关 举报
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第1页
第1页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第2页
第2页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第3页
第3页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第4页
第4页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第5页
第5页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第6页
第6页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第7页
第7页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第8页
第8页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第9页
第9页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第10页
第10页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第11页
第11页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第12页
第12页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第13页
第13页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第14页
第14页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第15页
第15页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第16页
第16页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第17页
第17页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第18页
第18页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第19页
第19页 / 共62页
基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx_第20页
第20页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx

《基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx(62页珍藏版)》请在冰点文库上搜索。

基于msp430单片机的温度pid算法设计学士学位论文Word文档下载推荐.docx

黄帅豪

学号:

105090640035

指导教师(职称):

殷华文(副教授)

评阅教师:

完成日期:

南阳理工学院

NanyangInstituteofTechnology

自动化专业黄帅豪

[摘要]本设计基于MSP430F149单片机,以IAREmbeddedWorkbench软件为开发平台,在MSP430中用自编的位置式PID算法程序实现对电加热锅炉水温的控制,并在上位计算机上实现组态王软件监控。

Pt100热电阻信号经放大调理后通过MSP430ADC模块送入单片机。

在MATLAB中通过一元二次方程进行温度数据拟合,把拟合结果在MSP430中编程进行温度数据标度变换,上位机向MSP430发送温度设定值和PID参数,根据组态王软件监控结果对算法进行分析和改进,加入不完全微分和积分分离程序。

通过实验验证和结果分析,温度控制无超调,稳态误差<

0.3℃。

[关键词]MSP430单片机;

位置式温度PID算法;

温度数据拟合;

不完全微分;

积分分离

AutomationSpecialtyHUANGShuai-hao

Abstract:

ThedesignisbasedonSCMMSP430F149,usingIAREmbeddedWorkbenchsoftwareasadevelopmentplatform,torealizethetemperaturecontrolofelectricwaterboilerwithlocationPIDalgorithmprogramcompiledinMSP430,andrealizestheKingviewsoftwareinuppercomputermonitoring.Pt100thermalresistancesignalisamplifiedbyMSP430ADCafterconditioningmoduleintothemicrocontroller.ThetemperaturedatathroughatwoquadraticequationsintheMATLAB,thefittingresultsareprogrammedinMSP430temperaturedatascaleconversion,computersetvalueandPIDparametertosendsettemperaturetoMSP430,afteranalyzedandimprovedonthealgorithmaccordingtothemonitoringresultsofKingviewsoftware,withincompletedifferentialandintegralseparationprocedure.Throughexperimentandanalysisoftheresults,thetemperaturecontrolhasnoovershoot,steady-stateerrorof<

0.3℃.

KeyWords:

MSP430singlechipmicrocomputer;

positiontype 

temperaturePIDalgorithm;

temperature 

datafitting;

incompletedifferential;

integralseparation

1引言

1.1单片机温度PID算法的发展现状

在现代工业生产的许多环节中,温度是非常重要的一个指标,因此温度控制系统在工业控制领域中十分重要。

PID控制器问世至今已有近70年历史,PID控制是比例、积分、微分控制的简称,PID控制器是工业过程控制中最常见的一种过程控制器。

由于PID控制器算法简单、效果好,因而被广泛应用于化工、冶金、机械、热工和轻工等工业过程控制系统中。

单片机在自动化产品制造和控制系统设计中得到了广泛的应用,以单片机为核心的智能仪表即是最典型的自动化产品。

1.2本课题的研究意义及前景

但是一般的自动化产品主要用8位单片机,这对于控制算法设计和数据运算来说是不方便的。

MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(MixedSignalProcessor)。

称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。

该系列单片机多应用于需要电池供电的便携式仪器仪表中。

用MSP430单片机进行智能仪表等自动化产品设计是一个较好的选择[1]。

PID是过程控制中最基本、最常用、最重要的控制算法。

其中P、I、D三个参数的选择直接影响到控制效果,而对于P、I、D三个参数的整定,多为人工经验整定得到,整定的参数常常因人而异。

如果在线获取对象的数学模型,自动计算和整定PID参数对于改进控制算法设计具有积极意义。

在MSP430单片机中设计参数自整定PID算法用来对电加热锅炉进行控制。

通过本题目的设计,提高学生自动化产品设计能力,使学生有能力在自动化产品设计岗位上就业。

1.3论文组织结构

本设计内容安排分为5章,其各章节的内如安排如下:

第1章:

引言。

介绍此课题的现状和未来发展前景。

第2章:

系统整体方案设计与关键技术分析。

分别涉及系统的主要工作原理、系统整体设计方案、关键技术分析。

第3章:

系统硬件电路的选型几设计。

选择MSP430F149控制芯片,选择电加热锅炉、MSP430单片机、前向模拟量输入通道模块、继电输出模块、上位机等,组建硬件系统。

第4章:

系统软件设计。

根据控制系统的要求,利用软件开发平台完成控制软件设计主要包括主程序、ADC模数转换程序、PID控制算法设计、定时器设置程序和异步通讯程序以及上位机软件控制和通讯协议的编写。

第5章:

试验验证及结果分析。

通过前几章搭建出了硬件和软件系统,本章主要是通过试验验证各种指标是否达到要求,并对结果进行分析。

2系统整体方案设计与关键技术分析

2.1系统主要工作原理

通过热电阻Pt100采集信号,经模拟量前向通道进行A/D转换传给单片机进行PID运算,然后控制继电器输出模块来实现电加热锅炉升温控制。

自我编写单极性PID算法,使用开环响应曲线法来确定PID的参数。

先确定P参数,然后Ti参数,最后是Td参数,根据开环响应结果设定积分分离带、积分清零带,同时可加入死区宽度;

利用组态王软件来实现上位机监控,把水温实时曲线,单片机中相应参数显示出来,观察现象。

温度是工业工过程中的四大参数之一,也是很多生产过程中都需要测量和控制的参数。

热电阻和热电偶是工业过程温度测量中最常用的温度传感器。

热电阻以其测温精度高、稳定性好而被广泛应用于650℃以下的温度测量中,而热电偶一般用于更高温度的测量。

常用的热电阻有铂电阻(Pt100)和铜电阻(Cu50、Cu100),常用的热电阻型号有S、R、B、K、N、E、J、T八种。

测温时热电阻或热电偶安装在现场温度检测点,与控制室内的温度显示仪表等二次仪表有一定的距离,为保证温度测量的准确,对热电阻要考虑消除其导线电阻的影响,同时由于被测温度与热电阻阻值之间存在非线性,应考虑非线性补偿问题。

对热电偶要采用补偿导线,并考虑冷端温度补偿及热电偶电压值与被测温度之间的非线性补偿。

铂电阻温度传感器是利用其电阻和温度成一定函数关系而制成的温度传感器,由于其测量准确度高、测量范围大、复现性和稳定性好等,被广泛用于中温(-200℃~650℃)范围的温度测量中。

Pt100是一种广泛应用的测温元件,在-50~600℃范围内具有其他任何温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等。

由于铂电阻的电阻值与温度成非线性关系,所以需要进行非线性校正。

校正分为模拟电路校正和微处理器数字化校正,模拟校正有很多现成的电路,其精度不高且易受温漂等干扰因素影响;

数字化校正则需要在微处理系统中使用,将Pt100的电阻值和温度对应起来后存入EEPROM中,根据电路中实测的AD值以查表方式计算相应温度值;

或者有MATLAB对阻值和温度值进行最小二乘法多项式拟合,其精度可以控制在0.2%以下[2]。

2.2系统整体设计方案

2.2.1温度信号采集设计方案

常用的PT100电阻接法有三线制和两线制,其中三线制接法的优点是将Pt100的两侧相等的的导线长度分别加在两侧的桥臂上,使得导线电阻得以消除,从而减小系统误差。

常用的采样电路有两种:

一是恒流源式测温电路,它在测量中通过施加恒定的电流将电阻值变为电压进行测量。

然而,测量误差还必须考虑其他环节的影响如测温元件的长引线电阻变化对恒流源的影响;

放大及信号调理电路中运算放大器的失调电压、放大倍数以及零点电压的漂移,后级的AD转换器的漂移等以及电源电压的变化等,最终对恒流源的要求将会更加苛刻。

只有全部使用精度很高、温漂极小的元件,才有可能满足系统的测量精度要求,这在工程上实现起来有一定的难度。

二是桥式电阻测温电路,它简单容易实现,本次选择该电路[3]。

2.2.2单片机程序设计方案

单片机PID温度控制系统分为MSP430单片机初始化,前向模拟量采集,A/D转换,定时器中断,串口通信,PWM输出,PID运算等。

(1)串口初始化

通用同步/异步收发器采用一个硬件,支持两种通用串行总线模式。

UART接口(异步模式)和SPI接口(同步模式)。

我们可以根据寄存器UxCTL的SYNC位来选择USART的工作模式,SYNC位为零时USART工作在异步模式下。

在异步模式下USART通过URXD、UTXD这两个引脚与外部系统连接[4]。

串口操作的基本步骤如下:

置位SWRST来复位串口(串口复位主要通过两个操作实现:

上电复位或置SWRST位为1);

初始化所有的USART寄存器;

使能USART模块;

清零SWRST位;

如果需要,则使能中断。

(2)定时器初始化

计数模式设置;

捕捉和比较模式设置;

中断设置;

(3)A/D初始化

选择ADC转换时钟;

参考电压设置;

转换模式设置;

前向模拟量采集通道原理图如图1所示:

图1前向模拟量采集通道原理图

前向模拟量采集通道包括多路模拟开关、前置放大器、采样保持器、A/D转换器。

前向模拟量采集通道的任务是把被控对象的过程参数如温度、压力、流量、液位、重量等模拟信号转换成单片机可以接受的数字量信号,来自于工业现场传感器或变送器的多个模拟量信号首先需要进行信号调理,然后经多路模拟开关,分时切换到后级进行前置放大、采样保持和模数转换,通过接口电路以数字量信号进入单片机系统,从而完成对过程参数的巡回检测任务[5][6]。

定时器中断:

Timer_A模块相关的中断向量有以下两个;

TACCR0中断向量,处理TACCR0的CCIFG中断标志;

TAIV中断向量,处理所有其他的CCIFG和TAIFG中断标志;

TACCR0的中断标志CCIFG在Timer_A中具有最高优先级,并且享有特定的中断向量,当CCIFG中断被响应以后该位自动清零;

TACCR1的CCIFG、TACCR2的CCIFG和TAIFG三个中断的优先级依次降低,且它们共用一个中断源。

中断向量寄存器TAIV用来确定哪一个产生了中断请求,读取该寄存器的值就可以确定发生了什么中断。

串口通信:

MSP430F149有两个USART通讯端口,其性能完全一样,每个通讯口可通过RS232、RS485等芯片转换,与之相应的串行接口电路通讯。

MSP430F149支持串口异步和同步通讯,每种方式都具有独立的帧格式和独立的控制寄存器,本设计采取异步通信,在异步模式下,接收器自身实现帧的同步,外部的通讯设备并不使用这一时钟。

波特率的产生是在本地完成的。

异步帧格式由一个起始位、7或8个数据位、校验位、1个地址位、1或2个停止位。

一般最小帧为9位,最大为13位;

MSP430的波特率发生器是根据波特率选择寄存器UBR和调整寄存器UM来产生的串行数据位,因此在设置上非常灵活,波特率=模块时钟/分频因子=UBR+UM/8,波特率指每秒传送的位,分频因子是指在特定的波特率下,每传送一位数据需要的时钟周期[7]。

PWM输出:

利用定时器自动产生PWM波形输出,本系统主要通过P41口输出一PWM信号通过修改TBCCR0和TBCCR1可以改变PWM波形的频率和占空比

PID运算:

对误差变化率进行限制使锅炉温度变化不可能太大,并进行积分限幅处理,因为锅炉只能升温不能降温,所以当前温度值一旦超过设定值就令积分值为零,并进行微分延迟输出处理,启动定时器A中断程序用来执行PID控制程序,每2S进行一次PID运算,一个控制周期内共计算4次,每4S进行一次PID运算结果输出。

3系统硬件电路的选型及设计

3.1单片机的选型

MSP430的主要特点有超低功耗;

强大的处理能力,单周期指令周期,并且自带硬件乘法器;

高性能模拟技术及丰富的片上外围模块;

高稳定性,方便、高效的集成开发环境;

温度适应范围宽,抗干扰能力强等等[8]。

首先MSP430单片机的电源电压采用的是1.8-3.3V其次MSP430有多个时钟源:

内部DCO振荡器和外部高速、低速晶体振荡器;

MSP430单片机是一个16位的单片机,采用了精简指令集结构,具有丰富的寻址方式、简洁的27条内核指令以及大量的模拟指令,大量的寄存器以及片内数据存储器都可以参加多种运算;

MSP430单片机都集成了较丰富的片内外设。

它们分别是看门狗定时器、模拟比较器A、定时器A、定时器B、串口0/1、硬件乘法器、液晶驱动器、10位/12位ADC、以及端口1—6等外围模块的不同组合。

MSP430F149芯片管脚图如图2所示:

图2MSP430F149芯片管脚图

图3开关电源原理图

3.2开关电源模块设计

电源电路是整个系统中十分重要的一环,如何降低功耗成为工程师面临的急需解决的问题。

如果电源不稳定可能造成系统不能正常工作,严重的甚至烧坏芯片引发事故。

因此电源管理越发显得重要。

电源管理是指如何将电源有效分配给系统的不同组件。

电源电路设计主要考虑用哪种类型的电源器件,输入输出电压,输出电流以及控制状态。

开关电源原理图如图3所示:

开关电源有功耗小,效率高、转换速度很快、功耗很小,电源的效率可以大幅度地提高,其效率可达到80%;

体积小,重量轻从开关电源的原理框图可以清楚地看到这里没有采用笨重的工频变压器;

稳压范围宽,从开关电源的输出电压是由激励信号的占空比来调节的,输入信号电压的变化可以通过调频或调宽来进行补偿,这样,在工频电网电压变化较大时,它仍能够保证有较稳定的输出电压。

此外,改变占空比的方法有脉宽调制型和频率调制型两种。

开关电源不仅具有稳压范围宽的优点,而且实现稳压的方法也较多,设计人员可以根据实际应用的要求,灵活地选用各种类型的开关电源;

滤波的效率大为提高,使滤波电容的容量和体积大为减少。

所以智能仪表的供电选择开关电源来供电。

3.3前向模拟通道设计

由于计算机的工作速度远远快于被测参数的变化,因此一台计算机系统可供几十个检测回路使用,但计算机在某一时刻只能接收一个回路的信号。

所以,必须通过多路模拟开关实现多选一的操作,将多路输入信号依次地切换到后级。

本设计采用CD4051,结构原理图如下图所示。

CD4051由电平转换、译码驱动及开关电路三部分组成。

当禁止端为“1”时前后级通道断开,即S0—S7端与Sm端不可能接通;

当为“0”时,则通道可以被接通,通过改变控制输入端C、B、A的数值,就可以选通8个通道S0—S7中的一路。

模拟量采样通道流程图如图4所示:

图4模拟量采样通道流程图

3.3.1前置放大器

前置放大器的任务是将模拟输入小信号放大到A/D转换的的量程范围之内;

对单纯的微弱信号,可用一个运算放大器进行单端同向放大或单端反向放大,OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。

由于OP07具有非常低的输入失调电压,所以OP07在很多应用场合不需要额外的调零措施。

OP07同时具有输入偏置电流低和开环增益高的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。

管脚分布如图5所示:

图5管脚分布

3.3.2采样保持器

当某一通道进行A/D转换时,由于A/D转换需要一定的时间,如果输入信号变化较快,就会引起较大的转换误差。

为了保证A/D转换的精度,需要应用采样保持器,在A/D通道中,采样保持器的采样和保持电平应与后级的A/D转换相配合,该电平信号既可以由其它控制电路产生,也可以由A/D转换器直接提供。

总之,保持器在采样期间,不启动A/D转换器,而一旦进入保持期间,则立即启动A/D转换器,从而保证A/D转换时的模拟输入电压恒定,以确保A/D转换精度。

3.4输出驱动模块设计

锅炉的温度控制需要PWM波控制接触器的开断来控制加热,实现达到设定值的目的。

但是MSP430不能直接驱动接触器。

所以用MSP430驱动继电器,通过控制继电器的开关,再用继电器控制接触器的开关,实现温度控制。

4系统软件设计

4.1软件开发平台

IAREmbeddedWorkbench软件界面如图7所示:

图7IAREmbeddedWorkbench软件界面

IAREmbeddedWorkbench是瑞典IARSystems公司为微处理器开发的一个集成开发环境(下面简称IAREW),支持ARM、AVR、MPS430等芯片内核平台。

EWARM中包含一个全软件的模拟程序(simulator)。

用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。

从中可以了解和评估IAREWARM的功能和使用方法[9]。

  IAREWARM的主要特点如下:

1、高度优化的IARARMC/C++Compiler

2、IARARMAssembler

  3、一个通用的IARXLINKLinker

  4、IARXAR和XLIB建库程序和IARDLIBC/C++运行库

  5、功能强大的编辑器

  6、项目管理器

  7、命令行实用程序

  8、IARC-SPY调试器(先进的高级语言调试器)

4.2温度控制程序设计

程序流程图如图8所示:

图8程序流程图

单片机将模拟量前向通道采集的模拟量数据进行A/D转换,进入ADC模块中断转换为数字量,利用Modbus通讯协议采用异步通讯的方式与上位机实现通讯,将当前温度反映到组态界面中,并通过比较当前温度与设定温度之间的关系进行PID运算,之后通过设定定时器A和定时器B输出PWM波实现控制功能[10]。

4.2.1主程序

MSP430单片机内部分三种时钟信号即低速晶体振荡器、高速晶体振荡器、数字控制振荡器,高速晶体振荡器是用来进行快速大量的数据计算和快速的外部时间响应的,为满足设计要求[11],本设计使用高速晶体振荡器,程序如下:

BCSCTL1&

=~XT2OFF;

//打开XT2高频晶体振荡

do

{

IFG1&

=~OFIFG;

//清除晶振失败标志

for(i=0xFF;

i>

0;

i--);

//等待8MHz晶体起振

}

while((IFG1&

OFIFG));

//晶振失效标志仍然存在?

BCSCTL2|=SELM_2+SELS;

//MCLK和SMCLK选择高频晶振

4.2.2PID算法程序

本PID算法程序采用位置式控制算式,由于在测试过程中发现温度曲线波动较大且出现毛刺,所以在原有的完全微分的基础上改进为不完全微分,因为完全微分PID是一次微分作用,而不完全微分PID是分几次输出微分作用。

微分是一种重要的控制作用,可以较明显的改善闭环系统的控制性能。

假如偏差的阶跃幅值较大,在完全微分时,一次输出的微分作用幅值会很大,很可能会因输出限幅而丧失应有的微分作用。

而不完全微分,因为微分作用分几次输出,而每次输出幅值较小,所以能较好的保存应有的微分作用。

在开停工或大幅度升降设定值时,由于偏差累计较大,故在积分项的作用下会产生一个很大的超调,并产生振荡,特别是对于温度、液面等变化缓慢的过程,这一现象更为严重。

为了改进控制性能可采用积分分离的方法,即在受控变量开始跟踪时,取消积分作用,偏差小于某一设定值时,才产生积分作用,程序如下:

voidPIDCalc(void)

floatRate;

//误差变化率

Current_Error=Set_Temp-Pre_Temp;

//当前误差计算

Sum_Error+=Current_Error;

//误差积分

Prev_Error=Last_Error;

//存储误差更新

Last_Error=Current_Error;

Rate=(Current_Error-Last_Error)*1000/Ctrl_Period;

//当前误差微分

if(Rate>

5)//对误差变化率进行限制,锅炉温度不可能变化太大

Rate=5;

if(Rate<

-5)

Rate=-5;

P_OUT=P*Gain*Current_Error;

/*比例项*/

I_OUT=I*Gain*Sum_Error;

/*积分项*/

//积分限幅处理

if(I_OUT>

PID_I_MAX)I_OUT=PID_I_MAX;

if(I_OUT<

PID_I_MIN)I_OUT=PID_I_MIN;

if((Current_Error<

=2.5)&

&

(Prev_Error<

=2.8))

I_OUT=I_OUT*0.5;

if((Current_Err

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2