亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

外置式與增量式PID模板程序(51單片機c語言)

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年11月11日   【字體:

外置式PID模板

#define MuBiaoCS 0 //目標(biāo)常數(shù)
#define CHang_aCS 0 //比例常數(shù)
#define CHang_bCS 0 //積分常數(shù)
#define CHang_cCS 0 //微分常數(shù)
/*******************************************************************************************/
struct P_I_D {
int MuBiao; //設(shè)定目標(biāo) Desired Value
double CHang_a; //比例常數(shù) Proportional Const
double CHang_b; //積分常數(shù) Integral Const
double CHang_c; //微分常數(shù) Derivative Const
int Error1; //Error[-1]
int Error2; //Error[-2]
}Pidn;
struct P_I_D *PID=&Pidn;
/********************************************************************************************/
void Pidinit(void) //pid初始化
{
PID->MuBiao=MuBiaoCS;
PID->CHang_a=CHang_aCS;
PID->CHang_b=CHang_bCS;
PID->CHang_c=CHang_cCS;
PID->Error1=0;
PID->Error2=0;
}

int PID_WZ(int SRuu) //位置式PID
{
int Error0,SCuu;
Error0 = PID->MuBiao - SRuu;
PID->Error1+=Error0;
SCuu = PID->CHang_a*Error0 //比例項
+ PID->CHang_b*PID->Error1 //積分項
+ PID->CHang_c*(Error0-PID->Error2);//微分項
PID->Error2=Error0;
return SCuu;
}
void main(void)
{
Pidinit();
}

增量式PID模板

#define MuBiaoCS 0 //目標(biāo)常數(shù)
#define CHang_aCS 0 //比例常數(shù)
#define CHang_bCS 0 //積分常數(shù)
#define CHang_cCS 0 //微分常數(shù)
/*******************************************************************************************/
struct P_I_D {
int MuBiao; //設(shè)定目標(biāo) Desired Value
double CHang_a; //比例常數(shù) Proportional Const
double CHang_b; //積分常數(shù) Integral Const
double CHang_c; //微分常數(shù) Derivative Const
int Error1; //Error[-1]
int Error2; //Error[-2]
}Pidn;
struct P_I_D *PID=&Pidn;
/********************************************************************************************/
void Pidinit(void) //pid初始化
{
PID->MuBiao=MuBiaoCS;
PID->CHang_a=CHang_aCS;
PID->CHang_b=CHang_bCS;
PID->CHang_c=CHang_cCS;
PID->Error1=0;
PID->Error2=0;
}

int PID_WC(int SRuu) //增量式PID
{
int Error0,SCuu;
Error0 = PID->MuBiao - SRuu; //偏差
SCuu = PID->CHang_a*Error0 //Error項
- PID->CHang_b*PID->Error1 //Error1項
+ PID->CHang_c*PID->Error2; //Error2項
PID->Error2=PID->Error1; //將上次偏差存PID->Error2
PID->Error1=Error0; //將這次偏差存PID->Error1
return SCuu;
}

void main(void)
{
Pidinit();
}
 

 

關(guān)閉窗口

相關(guān)文章