资源简介
该源码主要描述了PID控制算法在温度控制中
代码片段和文件信息
#include “Mod_Include.h“
#include
#include
#include
CTempCtrl m_TempCtrl_Dilute(1);//稀释气
//==================================================================================================
//| 函数名称 | CTempCtrl()
//|----------|--------------------------------------------------------------------------------------
//| 函数功能 | 构造函数
//|----------|--------------------------------------------------------------------------------------
//| 输入参数 | 无
//|----------|--------------------------------------------------------------------------------------
//| 返回参数 | 无
//==================================================================================================
CTempCtrl::CTempCtrl(INT8U uch_Ch)
{
b_Enable = TRUE;
b_Active = FALSE;
uch_Chl = uch_Ch;
f_MFCset = 0;
//ul_AlarmTime = 0;
}
//==================================================================================================
//| 函数名称 | CTempCtrlInit()
//|----------|--------------------------------------------------------------------------------------
//| 函数功能 | 构造函数
//|----------|--------------------------------------------------------------------------------------
//| 输入参数 | 无
//|----------|--------------------------------------------------------------------------------------
//| 返回参数 | 无
//==================================================================================================
void CTempCtrl::CTempCtrlInit(void)
{
b_Active = FALSE;
ul_RunTime = 0;
uin_ExceedTime = 0;
uch_PreHeat = PREHEAT_ING;
uch_Status = TEM_ING;
b_StableFlag = FALSE;
b_UnStableFlag = FALSE;
uch_ModStatus = 1;
uin_UnstabelTime = 0;
uch_StableTime = 0;
//f_I = 0.05;
//f_P = 0.25;
f_I = 0.05;
f_P = 0.05;
f_D = 0.0;
StartTickMs(&ul_Time);
}
//==================================================================================================
//| 函数名称 | PIDClac()
//|----------|--------------------------------------------------------------------------------------
//| 函数功能 | 流量控制PID参数计算
//|----------|--------------------------------------------------------------------------------------
//| 输入参数 | 目标 f_TarFlow当前 f_CurFlow
//|----------|--------------------------------------------------------------------------------------
//| 返回参数 | 计算结果 f_result
//|----------|--------------------------------------------------------------------------------------
//==================================================================================================
FP32 CTempCtrl::PIDClac(FP32 f_TarTemFP32 f_CurTem)
{
FP32 f_temp; //偏差信号的绝对值
FP32 f_err; //偏差信号
FP32 f_Dtmp;
f_err = f_TarTem - f_CurTem;
f_temp = fabs(f_err);
f_Dtmp = f_LastErr-f_err;
f_LastErr = f_err;
if(f_temp <= f_IA) //使用PID算法
{
if(uch_Chl == 2)
{
//if(f_err //{
// f_result
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5540 2016-02-18 14:07 Mod_TemCtrl.cpp
文件 1455 2016-02-18 14:11 Mod_TemCtrl.h
----------- --------- ---------- ----- ----
6995 2
评论
共有 条评论