版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
pid温度控制实验报告本实验旨在设计和实现PID温度控制系统,通过控制电热水壶水温,检验PID控制系统在温度控制方面的效果。
一、设计和建立PID温度控制系统
本实验采用Arduino开发板作为控制器,其中温度传感器采用DS18B20数字温度传感器,用于感知电热水壶内部的温度。为了控制电热水壶的加热和停止加热,我们采用继电器模块,通过控制继电器的开关状态来实现电热水壶的加热和停止加热。本实验还采用了LCD1602液晶显示屏,显示实时温度数据和PID控制结果。
PID控制器由三个部分组成,分别是P(proportional)、I(integral)、D(derivative),它能够根据被控对象的反馈信号及预设值,计算出控制量,实现控制目标。
在本实验中,我们需要控制电热水壶加热时的水温,设定的目标温度为40℃。
二、实验步骤
1、硬件连接
连接Arduino开发板和其他硬件模块,电热水壶的加热和停止加热分别由继电器的开关状态来实现。
2、编程实现
编写程序,包括温度检测、PID控制计算、控制电热水壶加热和停止加热、LCD显示等功能模块。具体的程序实现细节见下文。
3、调试
进行调试,测试温度控制系统的效果。
三、实验结果
电热水壶温度控制的PID算法具体实现如下:
```c++
//定义PID控制器
structPID
{
floatKp;//P参数
floatKi;//I参数
floatKd;//D参数
floatpre_error;//上次误差
floatintegral;//积分值
}pid;
pid.Kp=5;//由系统特性等确定
pid.Ki=0.1;
pid.Kd=1;
constintrelayPin=2;//继电器控制引脚2
constintledPin=13;//LED控制引脚13
voidsetup()
{
Serial.begin(9600);
lcd.begin(16,2);
pinMode(relayPin,OUTPUT);
lcd.display();
lcd.clear();
//变量初始化
pid.pre_error=0;
egral=0;
}
voidloop()
{
//读取温度
floattemp=getTemperature();
//计算PID
floaterror=setpoint-temp;
egral+=error*sampleTime;
floatderivative=(error-pid.pre_error)/sampleTime;
floatoutput=pid.Kp*error+pid.Ki*egral+pid.Kd*derivative;
//控制电热水壶
if(output>0)
{
digitalWrite(relayPin,HIGH);
digitalWrite(ledPin,HIGH);
}
else
{
digitalWrite(relayPin,LOW);
digitalWrite(ledPin,LOW);
}
//保存本次误差
pid.pre_error=error;
//显示温度和PID值
lcd.setCursor(0,0);
lcd.print("Temp:");
lcd.print(temp,1);
lcd.setCursor(0,1);
lcd.print("PID:");
lcd.print(output,1);
//延时一段时间
delay(sampleTime);
}
//读取温度
floatgetTemperature()
{
bytedata[12];
byteaddr[8];
if(!ds.search(addr))
{
ds.reset_search();
delay(250);
return-1000;
}
if(OneWire::crc8(addr,7)!=addr[7])
{
Serial.println("CRCisnotvalid!");
return-1000;
}
if(addr[0]!=0x28)
{
Serial.println("DeviceisnotaDS18B20familydevice.");
return-1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1);
bytepresent=ds.reset();
ds.select(addr);
ds.write(0xBE);
for(inti=0;i<9;i++)
{
data[i]=ds.read();
}
int16_traw=(data[1]<<8)|data[0];
if(type_s)
{
raw=raw<<3;
if(data[7]==0x10)
{
raw=(raw&0xFFF0)+12-data[6];
}
}
else
{
bytecfg=(data[4]&0x60);
if(cfg==0x00)raw=raw&~7;//9bitresolution,93.75ms
elseif(cfg==0x20)raw=raw&~3;//10bitres,187.5ms
elseif(cfg==0x40)raw=raw&~1;//11bitres,375ms
//defaultis12bitresolution,750msconversiontime
}
floatcelsius=(float)raw/16.0;
returncelsius;
}
```
实验通过控制器成功将水温控制在设定值40℃左右,且温度波动很小,表明PID控制器具有很好的控制效果。实验结果表明本PID温度控制系统具有较好的控制精度和控制响应速度,能够稳定地将水温维持在指定的温度范围内,能够满足实际应用的要求。
四、实验心得
本实验基于Arduino开发板,设计和实现了PID温度控制系统,通过加热和停止加热的控制,将电热水壶水温控制在指定的温度范围内,并通过LCD显示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基层治理考试题及答案高中
- 驾驶考试题技巧大全及答案
- 2026-2030中国线下零售行业市场深度调研及发展潜力与投资前景研究报告
- 四、设计机器人程序教学设计小学信息技术粤教版B版五年级下册-粤教版(B版)
- 树牢安全意识维护国家安全 教案2025-2026学年国家安全教育日主题班会
- 人教版高中生物必修二第六章第1节《杂交育种与诱变育种》教学设计
- 高中生物(人教版2019)必修25.1基因突变和基因重组教学设计(表格式)
- 浙教版2023小学信息技术六年级下册 第5课《控制系统中的数据》教学设计及反思
- 2025年洗衣机维修(波轮洗衣机故障处理)试题及答案
- 2025年物业管理(物业档案信息化管理)试题及答案
- 2026学年湖北省武汉市四年级数学期末深度自测重点试卷(详细参考解析)详细答案和解析
- 2026年甘肃金麟锂电新材料有限公司招聘78人笔试备考题库及答案详解
- 公司车辆使用管理制度文档模板
- 航天禁(限)用工艺目录(2021版)-发文稿(公开)
- (完整版)学习动机策略问卷(MSLQ)
- 2023版中国近现代史纲要课件第一专题历史是最好的教科书PPT
- ISO9000程序文件大全
- GB/T 41819-2022信息安全技术人脸识别数据安全要求
- 中医学课件气血津液
- 宝钢高炉炼铁工艺介绍201607
- 《车辆工程专业导论》全套教学课件
评论
0/150
提交评论