当前位置:网站首页 >> 历史

温控程序部分报告基于msp430g255

时间:2020-02-15 21:57:37 来源:互联网 阅读:0次

温控程序部分报告——基于msp430g2553

Createdon:

Author:zhangbin

学习笔记

formsp430g2553

redesignedbyzhangbin

versions:12_09_01

AllRightsReserved

程序是整个系统中很重要的一个组成部分,它在硬件的基础上协调着整个系统各个硬件部分的一同工作,控制着整个温控系统的一举一动。软件的主要功能包括有:

(1)传感器信号的采集、处理

(2)加热丝的PWM输出

(3)加热的温度和速度控制

(4)温控系统运行流程控制:程序初始化、温控的启动与结束、液晶显示模块控制

(5)温控信息显示与参数设定:状态显示、控制算法参数设定等

上面的几个能中,除了程序的初始化在主函数中执行,其他的各个部分都是在中断函数中执行的,其中键盘检测和数据输入是在键盘中断中执行,其他的数据采集、处理、控制等都是在定时器5ms中断中执行的

。单片机平时处于低功耗模式,降低功耗。

程序的流程图如下:

本文主要采用两种算法实现题目要求:

个是PID算法的改进,由于温度控制是一个只能加热不能制冷的控制,所以我们只用了PI。首先通过P让温度加到一个离设定温度较近的温度,然后利用I逼近设定温度。

程序如下:

voidpid()

{

if(set_t-now_t>13)

e2=0;

e1=set_t-now_t;//设定值和实际值之间的误差

uk=kp*e1+ki*e2+kd*e3;

//wr_float(0,1,e2);

e2=e1+e2;

e3=e1-e4;

e4=e1;

if(uk>speed)//防止升温过快

uk=speed;

if(uk

control_value=1-uk;//pid输出的控制量即PWM的占空比

}

第二个是时间控制的线性算法

在时间控制中要求温度从40均匀加热到60,并且时间任意可设。

本程序实现的方法是:设定时间set_time是以s为单位,把40到60的这20温差平均分成set_time份。然后在控制周期中,每一个周期让时间段time_m自加1,然后根据平均的公式算出该时间段应该达到的温度,公式如下:

因为控制时间输入set_time是以s为单位,而控制周期是100ms,所以上面要除以10。

具体的实现代码如下:

control_m_value=(float)time_m/set_time;

control_m_value=control_m_value/10;//时间的控制以100ms为单位,时间的设定是以1s为单位

control_m_value=40+20*control_m_value;

set_t=control_m_value;

pid();

CCR1=control_value*12000;//调节PWM的占空比12000为PWM周期

深圳远大医院
天津市人民医院怎么样
治疗癫痫病哪家医院好
温州看白癜风到哪家医院
上海妇科专科医院

相关文章

一周热门

热点排行

热门精选

友情链接:
媒体合作:

Copyright (c) 2011 八零CMS 版权所有 备案号:苏ICP备17012668号-3

网站地图