智能车制作
标题:
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