智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2863|回复: 13
打印 上一主题 下一主题

配合上位机的pid调整方案with source code

[复制链接]

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
754
威望
368
贡献
170
兑换币
56
注册时间
2012-3-20
在线时间
157 小时
毕业学校
bit
跳转到指定楼层
1#
发表于 2012-3-31 11:35:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简单来说,pid就是通过定时中断,每隔一个周期进行一次速度改变,最终达到理想速度
把自己的方案贴上来,抛砖引玉
首先,PIT定时中断初始化,此处以20ms为例
  • /********************定时中断初始化 PIT 初始化*******************************/
  • void INIT_PIT(void) {
  •    PITCFLMT_PITE=0;     //PIT is disabled (40Mbus clock)
  •    PITCE_PCE0=1;        //PIT chanel_0 定时器 0 (共四个定时器)enabled
  •    PITLD0=9999;         //1 毫秒 PIT Load Register
  •    PITMTLD0=79;          //time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS
  •    PITMUX=0x00;          //0 The corresponding 16-bit timer counts with micro time base 0
  •    PITINTE_PINTE0=1;     //PIT Interrupt Enable Register
  •    PITCFLMT_PITE=1;       //PIT is enabled
  • }

复制代码

在中断函数中写下中断内容
  • /****************************定时中断进行 pid 计算******************************/
  • #pragma CODE_SEG __NEAR_SEG NON_BANKED
  • void interrupt 66  PIT0Interrupt(void)//测速的中断程序
  • {
  •     CarSpeed=PACNT;//车速度值
  •     PITTF_PTF0=1; //定时器 1 标志位清零
  •     PACNT=0X0000;
  •     Speed_Ctrl();                   //Speed_PID
  •     PWMDTY1=SpeedPWM;
  • PITTF_PTF0=1; //定时器 1 标志位清零
  • }
  • #pragma CODE_SEG DEFUALT /**/

复制代码

再根据自己小车的实际情况 提供速度选择方案
  • /************************速度控制**************************************/
  • void Speed_Ctrl(void) {
  • if(虚线)
  •        SpeedPWM=Speed_PID(Speed_Normal,CarSpeed);
  • else
  •        SpeedPWM=Speed_PID(Speed_Bend,CarSpeed);
  • }

复制代码

其中pid算法函数
  • /****************************速度 PID*******************************/
  • unsigned char Speed_PID(unsigned int ideal_speed,unsigned int pulse_count) //连个参数分别为理想速度和 实际速度
  • {
  •     float temp;
  •     error=ideal_speed-pulse_count;
  •     temp=error/10+50*(error-pre_error)/100;
  •     SpeedPWM=SpeedPWM+(int)(temp);
  •       pre_error=error;
  •     if(SpeedPWM>200)
  •         SpeedPWM=200;
  •       if(SpeedPWM<=0)
  •         SpeedPWM=0;
  •       return SpeedPWM;
  • }

复制代码

然后配合上位机绘图功能 ,空载和负载情况下分别测试,直到出现pid经典波形


方案比较简单,欢迎提出各种改进
AD:如果你需要上位机,可以移步http://item.taobao.com/item.htm?id=14478455287


补充内容 (2012-3-31 16:39):
清明~~~小长假 大促销 全场6折!!!!!!!!!!!!!!!!!!!!!!!

32

主题

782

帖子

1

精华

常驻嘉宾

帮主

Rank: 8Rank: 8

积分
3869
威望
2079
贡献
698
兑换币
86
注册时间
2010-10-22
在线时间
547 小时
2#
发表于 2012-3-31 11:43:20 | 只看该作者
ding!
回复 支持 反对

使用道具 举报

32

主题

782

帖子

1

精华

常驻嘉宾

帮主

Rank: 8Rank: 8

积分
3869
威望
2079
贡献
698
兑换币
86
注册时间
2010-10-22
在线时间
547 小时
3#
发表于 2012-3-31 11:44:29 | 只看该作者
额。。。竟然卖100大票子,望而止步啊。。。还是自己做吧。。。
回复 支持 反对

使用道具 举报

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
754
威望
368
贡献
170
兑换币
56
注册时间
2012-3-20
在线时间
157 小时
毕业学校
bit
4#
 楼主| 发表于 2012-3-31 16:40:22 | 只看该作者
我是北丐 发表于 2012-3-31 11:44
额。。。竟然卖100大票子,望而止步啊。。。还是自己做吧。。。

清明 促销,6折优惠! 重要的是一定提供给你 绝对可靠的技术支持
回复 支持 反对

使用道具 举报

0

主题

84

帖子

0

精华

高级会员

Rank: 4

积分
876
威望
478
贡献
204
兑换币
2
注册时间
2011-10-13
在线时间
97 小时
5#
发表于 2012-4-1 00:45:17 | 只看该作者
Mark
回复 支持 反对

使用道具 举报

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
754
威望
368
贡献
170
兑换币
56
注册时间
2012-3-20
在线时间
157 小时
毕业学校
bit
6#
 楼主| 发表于 2012-4-1 09:24:15 | 只看该作者
回复 支持 反对

使用道具 举报

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
754
威望
368
贡献
170
兑换币
56
注册时间
2012-3-20
在线时间
157 小时
毕业学校
bit
7#
 楼主| 发表于 2012-4-1 22:43:15 | 只看该作者
回复 支持 反对

使用道具 举报

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
754
威望
368
贡献
170
兑换币
56
注册时间
2012-3-20
在线时间
157 小时
毕业学校
bit
8#
 楼主| 发表于 2012-4-2 11:48:04 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

高级会员

Rank: 4

积分
596
威望
375
贡献
133
兑换币
0
注册时间
2012-2-8
在线时间
44 小时
毕业学校
电大
9#
发表于 2012-4-2 12:13:10 | 只看该作者
:@坑爹
回复 支持 反对

使用道具 举报

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
754
威望
368
贡献
170
兑换币
56
注册时间
2012-3-20
在线时间
157 小时
毕业学校
bit
10#
 楼主| 发表于 2012-4-2 13:50:32 | 只看该作者
郭大侠哦 发表于 2012-4-2 12:13
坑爹

没有用过,不要乱说哦。我是给需要的童鞋们提供,不需要可以自己做。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 19:32 , Processed in 0.072882 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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