个实用的单片机pid方式控.ppt
上传者:相惜
2022-06-19 09:39:21上传
PPT文件
222 KB
一个单片机PID方式控温实例
精选课件
基本情况说明
本例中控制对象是一款小型专用工业烘箱要求:恒温范围: 室温--300℃ 恒温精度: ±1℃(其它指标略)
精选课件
控制原理图
精选课件
控制器硬件
单片机 采用C51系列
内部有8通道24位AD转换器
串行口在线编程
前向通道温度信号(来自烘箱的电阻信号)经C51放大送入AD
后向通道 I/O口驱动光耦,再驱动大功率双向可控硅输出
LED(3位)显示温度值(软件切换显示目标温度或采样温度)
电源 +5V单电源
精选课件
软件设计
流程
精选课件
温度采样
采样周期
取决于烘箱的固有响应特性参数
比如纯滞后时间θ以及响应时间常数τ)一般值在4--20秒之间(例中取16秒)
精选课件
PID运算
每采样一次之后进行一次PID运算,得到一个输出量,供输出函数调用
定义几个变量
T_target 表示目标温度T_real 表示当前温度T_diff 表示当前温差
T_diff = T_target - T_real
精选课件
PID运算表达式如下
PWMOUT=POUT+IOUT+DOUT+PH
其中 POUT=KP*(Tdiff)
IOUT=KI*Σ(diff)
DOUT=KD*Δdiff
Σ(diff) :是由当前算起前面N次采样温差和
Δdiff : 当前温差-上次温差
精选课件
源程序
#define KP 3.0 #define KI 0.3
#define KD 200.0 #define KC 0.1 #define Tc 16 sbit PID_port=P3^5; float T_target=0;
float T_real=0; float PWM=0;
bit read_AD_enable=0;
精选课件
主程序
void main (void){ //-------程序初始化(略) while (1) { if(read_AD_enable==1) { read_AD_enable=0; read_AD(); pid(); } }}
精选课件
精选课件
基本情况说明
本例中控制对象是一款小型专用工业烘箱要求:恒温范围: 室温--300℃ 恒温精度: ±1℃(其它指标略)
精选课件
控制原理图
精选课件
控制器硬件
单片机 采用C51系列
内部有8通道24位AD转换器
串行口在线编程
前向通道温度信号(来自烘箱的电阻信号)经C51放大送入AD
后向通道 I/O口驱动光耦,再驱动大功率双向可控硅输出
LED(3位)显示温度值(软件切换显示目标温度或采样温度)
电源 +5V单电源
精选课件
软件设计
流程
精选课件
温度采样
采样周期
取决于烘箱的固有响应特性参数
比如纯滞后时间θ以及响应时间常数τ)一般值在4--20秒之间(例中取16秒)
精选课件
PID运算
每采样一次之后进行一次PID运算,得到一个输出量,供输出函数调用
定义几个变量
T_target 表示目标温度T_real 表示当前温度T_diff 表示当前温差
T_diff = T_target - T_real
精选课件
PID运算表达式如下
PWMOUT=POUT+IOUT+DOUT+PH
其中 POUT=KP*(Tdiff)
IOUT=KI*Σ(diff)
DOUT=KD*Δdiff
Σ(diff) :是由当前算起前面N次采样温差和
Δdiff : 当前温差-上次温差
精选课件
源程序
#define KP 3.0 #define KI 0.3
#define KD 200.0 #define KC 0.1 #define Tc 16 sbit PID_port=P3^5; float T_target=0;
float T_real=0; float PWM=0;
bit read_AD_enable=0;
精选课件
主程序
void main (void){ //-------程序初始化(略) while (1) { if(read_AD_enable==1) { read_AD_enable=0; read_AD(); pid(); } }}
精选课件
个实用的单片机pid方式控