欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于MSP430单片机的温度PID算法设计毕业设计(论文)(41页).doc

    • 资源ID:37050019       资源大小:250.50KB        全文页数:40页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于MSP430单片机的温度PID算法设计毕业设计(论文)(41页).doc

    -基于MSP430单片机的温度PID算法设计毕业设计(论文)-第 34 页南 阳 理 工 学 院本科生毕业设计(论文)学院(系): 电子与电气工程学院 专 业: 自 动 化 学 生: 黄帅豪 指导教师 : 殷华文 完成日期 2014 年 5 月 南阳理工学院本科生毕业设计(论文)基于MSP430单片机的温度PID算法设计 Design of Temperature PID Algorithm Based on MSP430 Single Chip Microcomputer总 计 : 20 页表 格 : 0 个插 图 : 13 幅南 阳 理 工 学 院 本 科 毕 业 设 计(论文)基于MSP430单片机的温度PID算法设计Design of Temperature PID Algorithm Based on MSP430 Single Chip Microcomputer学 院(系): 电子与电气工程学院 专 业: 自动化 学 生 姓 名: 黄帅豪 学 号: 105090640035 指 导 教 师(职称): 殷华文(副教授) 评 阅 教 师: 完 成 日 期: 南阳理工学院Nanyang Institute of Technology基于MSP430单片机的温度PID算法设计自动化专业 黄帅豪摘 要 本设计基于MSP430F149单片机,以IAR Embedded Workbench软件为开发平台,在MSP430中用自编的位置式PID算法程序实现对电加热锅炉水温的控制,并在上位计算机上实现组态王软件监控。Pt100热电阻信号经放大调理后通过MSP430 ADC模块送入单片机。在MATLAB中通过一元二次方程进行温度数据拟合,把拟合结果在MSP430中编程进行温度数据标度变换,上位机向MSP430发送温度设定值和PID参数,根据组态王软件监控结果对算法进行分析和改进,加入不完全微分和积分分离程序。通过实验验证和结果分析,温度控制无超调,稳态误差<0.3。关键词MSP430单片机;位置式温度PID算法;温度数据拟合;不完全微分;积分分离Design of Temperature PID Algorithm Based on MSP430 Single Chip MicrocomputerAutomation Specialty HUANG Shuai-haoAbstract: The design is based on SCM MSP430F149, using IAR Embedded Workbench software as a development platform, to realize the temperature control of electric water boiler with location PID algorithm program compiled in MSP430, and realizes the Kingview software in upper computer monitoring. Pt100 thermal resistance signal is amplified by MSP430 ADC after conditioning module into the microcontroller. The temperature data through a two quadratic equations in the MATLAB, the fitting results are programmed in MSP430 temperature data scale conversion, computer set value and PID parameter to send set temperature to MSP430, after analyzed and improved on the algorithm according to the monitoring results of Kingview software, with incomplete differential and integral separation procedure. Through experiment and analysis of the results, the temperature control has no overshoot, steady-state error of <0.3 .Key Words: MSP430 single chip microcomputer;position type temperature PID algorithm; temperature data fitting; incomplete differential; integral separation目 录1 引言11.1 单片机温度PID算法的发展现状11.2 本课题的研究意义及前景11.3 论文组织结构12 系统整体方案设计与关键技术分析22.1 系统主要工作原理22.2 系统整体设计方案32.2.1 温度信号采集设计方案32.2.2 单片机程序设计方案33 系统硬件电路的选型及设计53.1 单片机的选型53.2 开关电源模块设计63.3 前向模拟通道设计73.3.1 前置放大器83.3.2 采样保持器83.4 输出驱动模块设计84 系统软件设计84.1 软件开发平台84.2 温度控制程序设计104.2.1 主程序104.2.2 PID算法程序114.2.3 ADC模数转换程序134.2.4 定时器设置程序134.2.5 异步通讯程序144.2.6 温度拟合程序155 系统调试及结果分析165 .1 系统整体的调试和结果165.1.1 MODBUS-ASCII的调试165.1.2 上位机监控画面175.2 结果分析18结束语19附录21致谢481 引言1.1 单片机温度PID算法的发展现状在现代工业生产的许多环节中,温度是非常重要的一个指标,因此温度控制系统在工业控制领域中十分重要。PID控制器问世至今已有近70年历史,PID控制是比例、积分、微分控制的简称,PID控制器是工业过程控制中最常见的一种过程控制器。由于PID控制器算法简单、效果好,因而被广泛应用于化工、冶金、机械、热工和轻工等工业过程控制系统中。单片机在自动化产品制造和控制系统设计中得到了广泛的应用,以单片机为核心的智能仪表即是最典型的自动化产品。1.2 本课题的研究意义及前景单片机在自动化产品制造和控制系统设计中得到了广泛的应用,以单片机为核心的智能仪表即是最典型的自动化产品。但是一般的自动化产品主要用8位单片机,这对于控制算法设计和数据运算来说是不方便的。MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。该系列单片机多应用于需要电池供电的便携式仪器仪表中。用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八种。测温时热电阻或热电偶安装在现场温度检测点,与控制室内的温度显示仪表等二次仪表有一定的距离,为保证温度测量的准确,对热电阻要考虑消除其导线电阻的影响,同时由于被测温度与热电阻阻值之间存在非线性,应考虑非线性补偿问题。对热电偶要采用补偿导线,并考虑冷端温度补偿及热电偶电压值与被测温度之间的非线性补偿。铂电阻温度传感器是利用其电阻和温度成一定函数关系而制成的温度传感器,由于其测量准确度高、测量范围大、复现性和稳定性好等,被广泛用于中温(-200650)范围的温度测量中。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转换器。前向模拟量采集通道的任务是把被控对象的过程参数如温度、压力、流量、液位、重量等模拟信号转换成单片机可以接受的数字量信号,来自于工业现场传感器或变送器的多个模拟量信号首先需要进行信号调理,然后经多路模拟开关,分时切换到后级进行前置放大、采样保持和模数转换,通过接口电路以数字量信号进入单片机系统,从而完成对过程参数的巡回检测任务56。定时器中断: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、以及端口16等外围模块的不同组合。MSP430F149芯片管脚图如图2所示:图2 MSP430F149芯片管脚图 图3 开关电源原理图3.2 开关电源模块设计电源电路是整个系统中十分重要的一环,如何降低功耗成为工程师面临的急需解决的问题。如果电源不稳定可能造成系统不能正常工作,严重的甚至烧坏芯片引发事故。因此电源管理越发显得重要。 电源管理是指如何将电源有效分配给系统的不同组件。电源电路设计主要考虑用哪种类型的电源器件,输入输出电压,输出电流以及控制状态。开关电源原理图如图3所示:开关电源有功耗小,效率高、转换速度很快、功耗很小,电源的效率可以大幅度地提高,其效率可达到80%;体积小,重量轻从开关电源的原理框图可以清楚地看到这里没有采用笨重的工频变压器;稳压范围宽,从开关电源的输出电压是由激励信号的占空比来调节的,输入信号电压的变化可以通过调频或调宽来进行补偿,这样,在工频电网电压变化较大时,它仍能够保证有较稳定的输出电压。此外,改变占空比的方法有脉宽调制型和频率调制型两种。开关电源不仅具有稳压范围宽的优点,而且实现稳压的方法也较多,设计人员可以根据实际应用的要求,灵活地选用各种类型的开关电源; 滤波的效率大为提高,使滤波电容的容量和体积大为减少。所以智能仪表的供电选择开关电源来供电。3.3 前向模拟通道设计由于计算机的工作速度远远快于被测参数的变化,因此一台计算机系统可供几十个检测回路使用,但计算机在某一时刻只能接收一个回路的信号。所以,必须通过多路模拟开关实现多选一的操作,将多路输入信号依次地切换到后级。本设计采用CD4051,结构原理图如下图所示。CD4051由电平转换、译码驱动及开关电路三部分组成。当禁止端为“1”时前后级通道断开,即S0S7端与Sm端不可能接通;当为“0”时,则通道可以被接通,通过改变控制输入端C、B、A的数值,就可以选通8个通道S0S7中的一路。模拟量采样通道流程图如图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 软件开发平台IAR Embedded Workbench软件界面如图7所示:图7 IAR Embedded Workbench软件界面IAR Embedded Workbench 是瑞典 IAR Systems 公司为微处理器开发的一个集成开发环境(下面简称IAR EW),支持ARM、AVR、MPS430等芯片内核平台。EWARM 中包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟各种ARM 内核、外部设备甚至中断的软件运行环境。从中可以了解和评估IAR EWARM 的功能和使用方法9。IAR EWARM 的主要特点如下:1、高度优化的IAR ARM C/C+ Compiler2、IAR ARM Assembler3、一个通用的IAR XLINK Linker4、IAR XAR 和XLIB 建库程序和IAR DLIB C/C+运行库5、功能强大的编辑器6、项目管理器7、命令行实用程序8、IAR C-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.2 PID算法程序本PID算法程序采用位置式控制算式,由于在测试过程中发现温度曲线波动较大且出现毛刺,所以在原有的完全微分的基础上改进为不完全微分,因为完全微分PID是一次微分作用,而不完全微分PID是分几次输出微分作用。微分是一种重要的控制作用,可以较明显的改善闭环系统的控制性能。假如偏差的阶跃幅值较大,在完全微分时,一次输出的微分作用幅值会很大,很可能会因输出限幅而丧失应有的微分作用。而不完全微分,因为微分作用分几次输出,而每次输出幅值较小,所以能较好的保存应有的微分作用。在开停工或大幅度升降设定值时,由于偏差累计较大,故在积分项的作用下会产生一个很大的超调,并产生振荡,特别是对于温度、液面等变化缓慢的过程,这一现象更为严重。为了改进控制性能可采用积分分离的方法,即在受控变量开始跟踪时,取消积分作用,偏差小于某一设定值时,才产生积分作用,程序如下:void PIDCalc(void)float Rate;/误差变化率 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_Error <= 0.45 ) && ( Last_Error <=55) I_OUT=I_OUT * 0.08; /因为锅炉只能加温不能降温所以一旦超过设定值令积分值为零 if( ( Current_Error <= 0 ) && ( Last_Error <=0 ) I_OUT=0; /微分延迟输出处理 D_OUT= ( D_OUT * Sdde_Para + D * Rate * (1-Sdde_Para) )*Gain ; PID_OUT = P_OUT + I_OUT + D_OUT ; if ( PID_OUT >= PWM_DATA_MAX ) PID_OUT = PWM_DATA_MAX; if ( PID_OUT <= PWM_DATA_MIN ) PID_OUT = PWM_DATA_MIN; if( Set_Temp - Pre_Temp >=10) PID_OUT=16383;void main() Device_Init( ); while(1) LED8_Rollback;/系统运行指示灯 Parameter_Show( );4.2.3 ADC模数转换程序该段程序首先完成ADC12模块的通用程序框架,ADC12模块的初始化函数,仅仅实现了多通道的单次和多次转换,单通道的可以用参数,多通道模式下设置一个通道.ADC12启动转换函数完成启动ADC12,开始A/D转换。中断程序必须自己添加处理函数(根据实际使用的通道情况)。这里选用的时钟SMCLK,参考电压内部打开的是2.5v,每次当多个通道转换完成后,打开中断时,单片机会自动调用本函数,使用时需要自己添加处理逻辑12,程序如下:char ADC12Init(char n,char channels,char rep) if(n>15)return 0;ADC12CTL0 = ADC12ON + MSC + SHT0_0 + REFON + REF2_5V;/ 开启ad,参考电压2.5vADC12CTL1 = SHP + ADC12SSEL_3; /Use sampling timer, SMCLKfor(int i = 0;i < n;i+)if(channelsi >= 0x80)return 0;*(char*)(ADC12MCTL0_ + i) = channelsi;/每个MCTL设置*(char*)(ADC12MCTL0_ + n - 1) |= EOS;/序列结束 if(rep != 0)/多次转换ADC12CTL1 |= CONSEQ_3;else ADC12CTL1 |= CONSEQ_1;ADC12IE = 1<<(n-1);/ Enable ADC12IFG.n-1return 1;4.2.4 定时器设置程序设定定时器A控制寄存器使能中断,设置CCR0初值,及100毫秒中断一次,计数器计数设置为加模式初始化定时器B,函数设置PWM中断周期,PWM低电平时间,设置PWMIO口和PWM低电平时间。void TA_Init(void) TACTL=TASSEL0+TACLR;/设定定时器A控制寄存器 CCTL0=CCIE;/使能中断 CCR0=3276;/设置CCR0初值,及100毫秒中断一次 TACTL|=MC0;/计数器加模式void TimerB_Init(void) TBCTL=TBSSEL_1+TBCLR+MC0+ID_3; TBCCTL1=OUTMOD_3; TBCCR0=16384;/PWM中断周期 TBCCR1=4000;/PWM低电平时间 P4DIR|=BIT1;/设置PWMIO口 P4SEL|=BIT1;void TimerB_Duty(u16 duty) TBCCR1=duty;/PWM低电平时间4.2.5 异步通讯程序异步通讯串口数据格式包括起始位、7位或8位数据、奇偶校验位、地址位、一位或二位停止位,每位数据的周期通过所选择的时钟和波特率发生器来确定,本设计采用空闲模式void UART0_Init(void) WDTCTL = WDTPW + WDTHOLD;/ Stop WDT P3SEL |= 0x30;/ P3.4,5 = USART0 TXD/RXD ME1 |= UTXE0+URXE0;/ Enable USART0 TXD/RXD UCTL0 |= CHAR;/ 8-bit character UTCTL0 |= SSEL0;/ UCLK = ACLK UBR00 = 0x03;/ 32k/9600 - 3.41 UBR10 = 0x00; UMCTL0 = 0x4A;/ Modulation UCTL0 &= SWRST;/ Initialize USART state machine IE1 |= URXIE0;/ 使能USART0的接收中断void PutChar(uchar data) while (!(IFG1 & UTXIFG0);/ TX缓存空闲? TXBUF0 = data;/ 发送数据void Blank(void) PutChar(0x20);void Newline() PutChar(0x0d);/发送一个回车 PutChar(0x0a);/发送一个换行void PutString(uchar *ptr) while(*ptr != '0') PutChar(*ptr+);4.2.6 温度拟合程序将采集的温度数值与模数转换后的数字量进行拟合和标度变换,程序如下:float Scale_Conv( u16 Value)float Temp1=0,Temp2=0; /温度拟合(二次函数)Temp1=Value*A_para;Temp1=Value*Temp1;Temp2=Value*B_para;/当前温度=A*X*X+B*X+C-零漂return (Temp1+Temp2+C_para+Null_shift); 5 系统调试及结果分析5 .1 系统整体的调试和结果5.1.1 MODBUS-ASCII的调试调试思路是用串口模拟上位机,按照MODBUS-ASCII上位机的数据格式,给下位机(MSP430)发送数据,观察MSP430能否正确应答,如果能正确应答,就可以让MSP430直接和上位机通信。上位机通信窗口如图9所示图9 上位机通信窗口应用程序下载窗口如图10所示:图10 应用程序下载窗口5.1.2 上位机监控画面上位机监控画面如图11、12、13所示:图11 上位机监控画面P:100 I:0.50 D:0.00 当前温度:69.31 设定温度:70.00图12 上位机监控画面P:110.00 I:0.50 D:0.00 当前温度:69.93 设定温度:70.00图13 上位机监控画面P:115.0 I:0.30 D:0.25 当前温度:65.01 设定温度:65.005.2 结果分析从效果可以看出系统实现静态锅炉温度控制,无超调,稳态误差小于0.3,通过对比可以验证出如果比例系数增大,则系统的动作灵敏响应速度加快,稳态误差减小,如果Kp偏大则导致调节时间加长。Kp太大时,系统会趋于不稳定,Kp太小又会使系统动作缓慢,在系统稳定的情况下,随着Kp的增大,可以减小稳态误差但不能消除稳态误差。动态时,积分控制常使系统的稳定性下降Ti值太小,系统不稳定,Ti值偏小,容易引起系统振荡,Ti值太大,对系统的影响将消弱,稳态时,积分控制可以消除系统静态误差,提高系统精度,但Ti值太大时,因积分控制作用的削弱,反而不能减小稳态误差;微分时间Td对系统性能的主要作用是减小超调量、缩短调节时间、允许加强比例控制,从而减小稳态误差,提高控制精度和改善动态特性等。结束语 本课题研究制作的MSP430单片机的温度PID算法设计借助IAR软件设计平台实现了主程序、PID算法、ADC模数转换、定时器设置、异步通讯以及上位机组态王与单片机的通讯程序,实现了单片机对电加热锅炉静态水的温度控制,通过对PID参数的设置实现了温度监控曲线温度控制超调量<0.5,稳态误差<0.3。在本课题的研究中,主要完成了以下工作:(1)收集资料。在课题研究之前,首先查阅相关资料信息和请教老师同学,了解MSP430单片机的性能,完成了对本课题的初步了解,包括对本课题的设计总体思路、各组成部分的功能以及结构,初步确定了课题的方向。 (2)完成对系统的软硬件设计。在课题开始之后,首先确立了总体的设计框架和设计思路,在此基础上,完成了对各个模块的硬件设计。完成系统的硬件设计之后,根据课题的要求进行了系统的软件设计,同样也是分

    注意事项

    本文(基于MSP430单片机的温度PID算法设计毕业设计(论文)(41页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开