資源簡介
該源碼主要描述了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
評論
共有 條評論