資源簡(jiǎn)介
DSP28335,PID程序,函數(shù)
代碼片段和文件信息
//==============================================================
//PID.c文件
//==============================================================
#include?“DSP28x_Project.h“?
#include?“C28x_FPU_FastRTS.h“
#include?
#include?“PID.h“
//========函數(shù)定義?===========================
//**********************************
/*
??@?Description:
??@?Param
??@?Return
*/
//**********************************
void?PIDfunc_calc(PID_FUNC?*p)
{
?//使用條件編譯指令進(jìn)行切換
?#if?PID_DEBUG??//在校正PID參數(shù)時(shí),使用宏定義將PID_DEBUG設(shè)為1,從而執(zhí)行以下程序
???float?a0a1a2;
??
???//這里每次都要計(jì)算?a0、a1、a2的值
???a0?=?p->Kp*(1?+?p->T/p->Ti?+?p->Td/p->T);
???a1?=?p->Kp*(1?+?2*p->Td/p->T);
???a2?=?p->Kp*p->Td/p->T;
???
???//計(jì)算PID調(diào)節(jié)器的輸出
???p->Output?=?p->LastOutput?+?a0*p->Ek?-?a1*p->Ek_1?+?a2*p->Ek_2;
???
?#else??//當(dāng)參數(shù)校正完成后,那么得到固定的a0、a1、a2的值,使用宏定義將PID_DEBUG設(shè)為0,從而執(zhí)行以下過(guò)程
????//當(dāng)參數(shù)校正完成后,初始化時(shí)直接為p->a0、p->a1、p->a2賦值,省去計(jì)算過(guò)程
p->Output?=?p->LastOutput?+?p->a0*p->Ek?-?p->a1*p->Ek_1?+?p->a2*p->Ek_2;
?#endif
??//輸出限幅
???if(p->Output?>?p->OutMax)?p->Output?=?p->OutMax;
???if(p->Output?OutMin)?p->Output?=?p->OutMin;
??//保存上一周期的值
???p->LastOutput?=?p->Output;
???p->Ek_1?=?p->Ek;
???p->Ek_2?=?p->Ek_1;
}
//==============================================================
//End?of?file.
//==============================================================
- 上一篇:QQ盜號(hào)源碼.e
- 下一篇:PRESENT加密算法
評(píng)論
共有 條評(píng)論