基于MSP430单片机的温度PID算法设计毕业设计(论文)(41页).doc
《基于MSP430单片机的温度PID算法设计毕业设计(论文)(41页).doc》由会员分享,可在线阅读,更多相关《基于MSP430单片机的温度PID算法设计毕业设计(论文)(41页).doc(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-基于MSP430单片机的温度PID算法设计毕业设计(论文)-第 34 页南 阳 理 工 学 院本科生毕业设计(论文)学院(系): 电子与电气工程学院 专 业: 自 动 化 学 生: 黄帅豪 指导教师 : 殷华文 完成日期 2014 年 5 月 南阳理工学院本科生毕业设计(论文)基于MSP430单片机的温度PID算法设计 Design of TemperaturePID AlgorithmBased on MSP430 Single Chip Microcomputer总 计 : 20 页表 格 : 0 个插 图 : 13 幅南 阳 理 工 学 院 本 科 毕 业 设 计(论文)基于MSP43
2、0单片机的温度PID算法设计Design of TemperaturePID AlgorithmBased on MSP430 Single Chip Microcomputer学 院(系): 电子与电气工程学院 专 业: 自动化 学 生 姓 名: 黄帅豪 学 号: 105090640035 指 导 教 师(职称): 殷华文(副教授) 评 阅 教 师: 完 成 日 期: 南阳理工学院Nanyang Institute of Technology基于MSP430单片机的温度PID算法设计自动化专业 黄帅豪摘 要 本设计基于MSP430F149单片机,以IAR Embedded Workbench
3、软件为开发平台,在MSP430中用自编的位置式PID算法程序实现对电加热锅炉水温的控制,并在上位计算机上实现组态王软件监控。Pt100热电阻信号经放大调理后通过MSP430 ADC模块送入单片机。在MATLAB中通过一元二次方程进行温度数据拟合,把拟合结果在MSP430中编程进行温度数据标度变换,上位机向MSP430发送温度设定值和PID参数,根据组态王软件监控结果对算法进行分析和改进,加入不完全微分和积分分离程序。通过实验验证和结果分析,温度控制无超调,稳态误差0.3。关键词MSP430单片机;位置式温度PID算法;温度数据拟合;不完全微分;积分分离Design of Temperature
4、PID AlgorithmBased 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
5、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
6、 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 experim
7、ent and analysis of the results, the temperature control has no overshoot, steady-state error of 0; i-);/等待8MHz晶体起振 while (IFG1 & OFIFG);/晶振失效标志仍然存在? BCSCTL2 |= SELM_2 + SELS;/MCLK和SMCLK选择高频晶振4.2.2 PID算法程序本PID算法程序采用位置式控制算式,由于在测试过程中发现温度曲线波动较大且出现毛刺,所以在原有的完全微分的基础上改进为不完全微分,因为完全微分PID是一次微分作用,而不完全微分PID是分几次
8、输出微分作用。微分是一种重要的控制作用,可以较明显的改善闭环系统的控制性能。假如偏差的阶跃幅值较大,在完全微分时,一次输出的微分作用幅值会很大,很可能会因输出限幅而丧失应有的微分作用。而不完全微分,因为微分作用分几次输出,而每次输出幅值较小,所以能较好的保存应有的微分作用。在开停工或大幅度升降设定值时,由于偏差累计较大,故在积分项的作用下会产生一个很大的超调,并产生振荡,特别是对于温度、液面等变化缓慢的过程,这一现象更为严重。为了改进控制性能可采用积分分离的方法,即在受控变量开始跟踪时,取消积分作用,偏差小于某一设定值时,才产生积分作用,程序如下:void PIDCalc(void)float
9、 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(Rate5)/对误差变化率进行限制,锅炉温度不可能变化太大Rate=5;if(RatePID_I_MAX ) I_OUT = PID_I_MAX;i
10、f( I_OUTPID_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 = PWM_DATA_MAX ) PID_OUT = PWM_DATA_MAX; if ( PID_OUT =10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MSP430 单片机 温度 PID 算法 设计 毕业设计 论文 41
限制150内