智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1407|回复: 2
打印 上一主题 下一主题

速度PID的问题

[复制链接]

44

主题

135

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3650
威望
2183
贡献
325
兑换币
1339
注册时间
2013-11-26
在线时间
571 小时
毕业学校
南京工程学院
跳转到指定楼层
1#
发表于 2014-6-12 16:43:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/************************************************************************
*电机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 0
#define I_DATA 0
#define D_DATA 0
#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 =10; //目标是 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); //返回增量值
}                                                                            电机10KHZ  pwmer1和4 都是100   为什么我随便给个目标期望,电机转的都差不多呢,给0的时候电机还会转
回复

使用道具 举报

44

主题

135

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3650
威望
2183
贡献
325
兑换币
1339
注册时间
2013-11-26
在线时间
571 小时
毕业学校
南京工程学院
2#
 楼主| 发表于 2014-6-12 16:44:56 | 只看该作者
采集周期是10MS
回复 支持 反对

使用道具 举报

3

主题

220

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1443
威望
661
贡献
414
兑换币
367
注册时间
2013-3-12
在线时间
184 小时
3#
发表于 2014-6-12 18:35:31 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-10-2 18:21 , Processed in 0.039263 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表