pid算法c语言源程序实现自动调整

来源:本站
导读:目前正在解读《pid算法c语言源程序实现自动调整》的相关信息,《pid算法c语言源程序实现自动调整》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《pid算法c语言源程序实现自动调整》的详细说明。
简介:本文主要为pid算法c语言源程序实现自动调整,希望对你的学习有所帮助。

#include <stdlib.h>

#include "global_varible.h"

/****************************************************************************

* 模块名: PID

* 描述: PID调节子程序

* 采用PID-PD算法。在偏差绝对值大于△e时,用PD算法,以改善动态品质。

* 当偏差绝对值小于△e时,用PID算法,提高稳定精度。

* PIDout=kp*e(t)+ki*[e(t)+e(t-1)+...+e(1)]+kd*[e(t)-e(t-1)]

*============================================================================

* 入口: 无

* 出口: 无

* 改变: PID_T_Run=加热时间控制

*****************************************************************************/

void PID_Math(void)

{

signed long ee1; //偏差一阶

//signed long ee2; //偏差二阶

signed long d_out; //积分输出

if(!Flag_PID_T_OK)

return;

Flag_PID_T_OK=0;

Temp_Set=3700; //温度控制设定值37.00度

PID_e0 = Temp_Set-Temp_Now; //本次偏差

ee1 = PID_e0-PID_e1; //计算一阶偏差

//ee2 = PID_e0-2*PID_e1+PID_e2; //计算二阶偏差

if(ee1 > 500) //一阶偏差的限制范围

ee1 = 500;

if(ee1 < -500)

ee1 = -500;

PID_e_SUM += PID_e0; //偏差之和

if(PID_e_SUM > 200) //积分最多累计的温差

PID_e_SUM = 200;

if(PID_e_SUM < -200)

PID_e_SUM = -200;

PID_Out = PID_kp*PID_e0+PID_kd*ee1; //计算PID比例和微分输出

if(abs(PID_e0) < 200) //如果温度相差小于1.5度则计入PID积分输出

{

if(abs(PID_e0) > 100) //如果温度相差大于1度时积分累计限制

{

if(PID_e_SUM > 100)

PID_e_SUM = 100;

if(PID_e_SUM < -100)

PID_e_SUM = -100;

}

d_out = PID_ki*PID_e_SUM; //积分输出

if(PID_e0 < -5) //当前温度高于设定温度0.5度时积分累计限制

{

if(PID_e_SUM > 150)

PID_e_SUM = 150;

if(PID_e_SUM > 0) //当前温度高于设定温度0.5度时削弱积分正输出

d_out >>= 1;

}

PID_Out += d_out; //PID比例,积分和微分输出

}

else

PID_e_SUM=0;

PID_Out/=100; //恢复被PID_Out系数放大的倍数

if(PID_Out > 200)

PID_Out=200;

if(PID_Out<0)

PID_Out=0;

if(PID_e0 > 300) //当前温度比设定温度低3度则全速加热

PID_Out=200;

if(PID_e0 < -20) //当前温度高于设定温度0.2度则关闭加热

PID_Out=0;

Hot_T_Run=PID_Out; //加热时间控制输出

PID_e2 = PID_e1; //保存上次偏差

PID_e1 = PID_e0; //保存当前偏差

}

////////////////////////////////////////////////////////////void PID_Math() end.

提醒:《pid算法c语言源程序实现自动调整》最后刷新时间 2024-03-14 00:56:33,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《pid算法c语言源程序实现自动调整》该内容的真实性请自行鉴别。