智能车制作

标题: PID算法 [打印本页]

作者: 476421477    时间: 2010-4-4 18:36
标题: PID算法
//*****************************************************

//定义PID结构体

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

typedef struct PID

{

    int SetPoint; //设定目标 Desired Value

    double Proportion; //比例常数 Proportional Const

    double Integral; //积分常数 Integral Const

    double Derivative; //微分常数 Derivative Const

    int LastError; //Error[-1]

    int PrevError; //Error[-2]

} PID;

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

//定义相关宏

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

#define P_DATA 100

#define I_DATA
0.6

#define D_DATA
1

#define HAVE_NEW_VELOCITY 0X01

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

//声明PID实体

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

static PID sPID;

static PID *sptr = &sPID;

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

//PID参数初始化

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

void IncPIDInit(void)

{

sptr->LastError = 0; //Error[-1]

sptr->PrevError = 0; //Error[-2]

sptr->Proportion = P_DATA; //比例常数 Proportional Const

sptr->Integral = I_DATA; //积分常数Integral Const

sptr->Derivative = D_DATA; //微分常数 Derivative Const

sptr->SetPoint =100;
目标是100

}

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

//增量式PID控制设计

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

int IncPIDCalc(int NextPoint)

{

   int iError, iIncpid; //当前误差

   iError = sptr->SetPoint - NextPoint; //增量计算

   iIncpid = sptr->Proportion * iError //E[k]项

             - sptr->Integral * sptr->LastError //E[k-1]项

             + sptr->Derivative * sptr->PrevError; //E[k-2]项

    sptr->PrevError = sptr->LastError;
//存储误差,用于下次计算

    sptr->LastError = iError;

    return(iIncpid);
//返回增量值

}

int g_CurrentVelocity;

int g_Flag;


void main(void)

{



DisableInterrupt

InitMCu();


IncPIDInit();

g_CurrentVelocity=0;
//全局变量也初始化

g_Flag=0;
//全局变量也初始化

EnableInterrupt;




While(1)

{


if (g_Flag& HAVE_NEW_VELOCITY)


{


PWMOUT+= IncPIDCalc(CurrentVelocity);


g_Flag&=~ HAVE_NEW_VELOCITY;

}

}

}

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

//采样周期T

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

Interrrupt TIME void

{


CurrentVelocity =GetCurrentVelocity;


g_Flag|= HAVE_NEW_VELOCITY;

}


这是从其他贴复制过来的,请问谁能帮我看看main函数里的错误。。。。。

或者谁有更好的PID程序。。能不能发给我~~
作者: 自然现象swl    时间: 2010-4-4 19:05
看看
作者: stl    时间: 2010-4-4 19:10
路过
作者: 破风    时间: 2010-4-4 21:58
期待高人指点~~~~
作者: 夜色里的幽魂    时间: 2010-4-4 22:03
还没做到。。。急死了。。。
作者: zhuiyi    时间: 2010-4-4 22:07
看看了
作者: max13466549674    时间: 2010-4-4 23:06
深奥
作者: IORI_CC    时间: 2010-4-4 23:27
这程序我也试过~~怎么调参数效果都不理想。。。期望高人指点!
作者: 竹林小溪    时间: 2010-4-4 23:35
看看
作者: 极意旋风    时间: 2010-4-5 11:58
学习了一下程序,问题没看出来,有个资料和这个程序很相近,分享一下吧!!!
作者: xyz2782350    时间: 2010-4-7 21:54

作者: zhangqiangfei    时间: 2010-4-8 00:07
路过看看嘛,
作者: cqwangj    时间: 2010-4-8 11:00
路过
作者: nauxgig    时间: 2010-5-8 22:32
看看看
作者: nauxgig    时间: 2010-5-8 22:32
看看看
作者: nauxgig    时间: 2010-5-8 22:32
看看看
作者: nauxgig    时间: 2010-5-8 22:33
看看看
作者: nauxgig    时间: 2010-5-8 22:33
看看看
作者: nauxgig    时间: 2010-5-8 22:33
看看看
作者: nauxgig    时间: 2010-5-8 22:33
看看看
作者: nauxgig    时间: 2010-5-8 22:33
看看看
作者: nauxgig    时间: 2010-5-8 22:33
看看看
作者: nauxgig    时间: 2010-5-8 22:33
看看看
作者: nauxgig    时间: 2010-5-8 22:33
看看看
作者: nauxgig    时间: 2010-5-8 22:33
看看看
作者: nauxgig    时间: 2010-5-8 22:34
看看看
作者: nauxgig    时间: 2010-5-8 22:34
看看看
作者: nauxgig    时间: 2010-5-8 22:34
看看看
作者: nauxgig    时间: 2010-5-8 22:34
看看看
作者: nauxgig    时间: 2010-5-8 22:34
看看看
作者: nauxgig    时间: 2010-5-8 22:34
看看看
作者: nauxgig    时间: 2010-5-8 22:34
看看看
作者: nauxgig    时间: 2010-5-8 22:34
看看看
作者: nauxgig    时间: 2010-5-8 22:34
看看看
作者: nauxgig    时间: 2010-5-8 22:35
看看看
作者: nauxgig    时间: 2010-5-8 22:35
看看看
作者: nauxgig    时间: 2010-5-8 22:35
看看看
作者: nauxgig    时间: 2010-5-8 22:35
看看看
作者: nauxgig    时间: 2010-5-8 22:35
看看看
作者: nauxgig    时间: 2010-5-8 22:35
看看看
作者: nauxgig    时间: 2010-5-8 22:35
看看看
作者: nauxgig    时间: 2010-5-8 22:35
看看看
作者: nauxgig    时间: 2010-5-8 22:35
看看看
作者: nauxgig    时间: 2010-5-8 22:36
看看看
作者: nauxgig    时间: 2010-5-8 22:36
看看看
作者: nauxgig    时间: 2010-5-8 22:36
看看看
作者: nauxgig    时间: 2010-5-8 22:36
看看看
作者: nauxgig    时间: 2010-5-8 22:36
看看看
作者: nauxgig    时间: 2010-5-8 22:36
看看看
作者: nauxgig    时间: 2010-5-8 22:36
看看看
作者: nauxgig    时间: 2010-5-8 22:36
看看看
作者: nauxgig    时间: 2010-5-8 22:36
看看看
作者: nauxgig    时间: 2010-5-8 22:37
看看看
作者: nauxgig    时间: 2010-5-8 22:37
看看看
作者: nauxgig    时间: 2010-5-8 22:37
看看看
作者: nauxgig    时间: 2010-5-8 22:37
看看看
作者: nauxgig    时间: 2010-5-8 22:37
看看看
作者: nauxgig    时间: 2010-5-8 22:37
看看看
作者: nauxgig    时间: 2010-5-8 22:37
看看看
作者: nauxgig    时间: 2010-5-8 22:37
看看看
作者: nauxgig    时间: 2010-5-8 22:37
看看看
作者: nauxgig    时间: 2010-5-8 22:38
看看看
作者: nauxgig    时间: 2010-5-8 22:38
看看看
作者: nauxgig    时间: 2010-5-8 22:38
看看看
作者: nauxgig    时间: 2010-5-8 22:38
看看看
作者: nauxgig    时间: 2010-5-8 22:38
看看看
作者: nauxgig    时间: 2010-5-8 22:38
看看看
作者: nauxgig    时间: 2010-5-8 22:38
看看看
作者: nauxgig    时间: 2010-5-8 22:38
看看看
作者: nauxgig    时间: 2010-5-8 22:38
看看看
作者: nauxgig    时间: 2010-5-8 22:39
看看看
作者: nauxgig    时间: 2010-5-8 22:39
看看看
作者: nauxgig    时间: 2010-5-8 22:39
看看看
作者: nauxgig    时间: 2010-5-8 22:39
看看看
作者: nauxgig    时间: 2010-5-8 22:39
看看看
作者: nauxgig    时间: 2010-5-8 22:39
看看看
作者: nauxgig    时间: 2010-5-8 22:39
看看看
作者: nauxgig    时间: 2010-5-8 22:39
看看看
作者: nauxgig    时间: 2010-5-8 22:40
看看看
作者: nauxgig    时间: 2010-5-8 22:40
看看看
作者: nauxgig    时间: 2010-5-8 22:40
看看看
作者: nauxgig    时间: 2010-5-8 22:40
看看看
作者: nauxgig    时间: 2010-5-8 22:40
看看看
作者: nauxgig    时间: 2010-5-8 22:40
看看看
作者: nauxgig    时间: 2010-5-8 22:40
看看看
作者: nauxgig    时间: 2010-5-8 22:40
看看看
作者: nauxgig    时间: 2010-5-8 22:40
看看看
作者: nauxgig    时间: 2010-5-8 22:41
看看看
作者: nauxgig    时间: 2010-5-8 22:41
看看看
作者: nauxgig    时间: 2010-5-8 22:41
看看看
作者: nauxgig    时间: 2010-5-8 22:41
看看看
作者: nauxgig    时间: 2010-5-8 22:41
看看看
作者: nauxgig    时间: 2010-5-8 22:41
看看看
作者: nauxgig    时间: 2010-5-8 22:41
看看看
作者: nauxgig    时间: 2010-5-8 22:41
看看看
作者: nauxgig    时间: 2010-5-8 22:41
看看看
作者: nauxgig    时间: 2010-5-8 22:42
看看看
作者: nauxgig    时间: 2010-5-8 22:42
看看看
作者: nauxgig    时间: 2010-5-8 22:42
看看看
作者: nauxgig    时间: 2010-5-8 22:42
看看看




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2