智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 9244|回复: 25
打印 上一主题 下一主题

配合上位机的PID调整方案,含代码

  [复制链接]

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
754
威望
368
贡献
170
兑换币
56
注册时间
2012-3-20
在线时间
157 小时
毕业学校
bit
跳转到指定楼层
1#
发表于 2012-3-31 10:45:45 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
简单来说,pid就是通过定时中断,每隔一个周期进行一次速度改变,最终达到理想速度
把自己的方案贴上来,抛砖引玉
首先,PIT定时中断初始化,此处以20ms为例
  1. /********************定时中断初始化 PIT 初始化*******************************/
  2. void INIT_PIT(void) {

  3.    PITCFLMT_PITE=0;     //PIT is disabled (40Mbus clock)
  4.    PITCE_PCE0=1;        //PIT chanel_0 定时器 0 (共四个定时器)enabled   
  5.    PITLD0=9999;         //1 毫秒 PIT Load Register
  6.    PITMTLD0=79;          //time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS
  7.    PITMUX=0x00;          //0 The corresponding 16-bit timer counts with micro time base 0
  8.    PITINTE_PINTE0=1;     //PIT Interrupt Enable Register
  9.    PITCFLMT_PITE=1;       //PIT is enabled
  10. }  
复制代码
在中断函数中写下中断内容
  1. /****************************定时中断进行 pid 计算******************************/  
  2.   
  3. #pragma CODE_SEG __NEAR_SEG NON_BANKED  
  4. void interrupt 66  PIT0Interrupt(void)//测速的中断程序  
  5. {
  6.     CarSpeed=PACNT;//车速度值  
  7.     PITTF_PTF0=1; //定时器 1 标志位清零  
  8.     PACNT=0X0000;  
  9.     Speed_Ctrl();                   //Speed_PID  
  10.     PWMDTY1=SpeedPWM;      

  11. PITTF_PTF0=1; //定时器 1 标志位清零   
  12. }     
  13. #pragma CODE_SEG DEFUALT /**/
复制代码
再根据自己小车的实际情况 提供速度选择方案
  1. /************************速度控制**************************************/  
  2. void Speed_Ctrl(void) {  
  3.   
  4. if(虚线)        
  5.        SpeedPWM=Speed_PID(Speed_Normal,CarSpeed);  
  6. else  
  7.        SpeedPWM=Speed_PID(Speed_Bend,CarSpeed);  
  8.   
  9. }  
复制代码
其中pid算法函数
  1. /****************************速度 PID*******************************/  
  2. unsigned char Speed_PID(unsigned int ideal_speed,unsigned int pulse_count) //连个参数分别为理想速度和 实际速度
  3. {  
  4.     float temp;  
  5.     error=ideal_speed-pulse_count;  
  6.     temp=error/10+50*(error-pre_error)/100;   
  7.     SpeedPWM=SpeedPWM+(int)(temp);  
  8.       pre_error=error;  
  9.       
  10.     if(SpeedPWM>200)  
  11.         SpeedPWM=200;  
  12.       if(SpeedPWM<=0)  
  13.         SpeedPWM=0;  
  14.       return SpeedPWM;  
  15. }
复制代码
然后配合上位机绘图功能 ,空载和负载情况下分别测试,直到出现pid经典波形


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


补充内容 (2012-3-31 16:41):
清明~~~小长假 大促销 全场6折!!!!!!!!!!!!!!!!!!!!!!!
店主一定会提供给你的最可靠的技术支持!

补充内容 (2012-3-31 18:09):
1
2
3
5
4
6
7
8

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

1

主题

89

帖子

0

精华

高级会员

Rank: 4

积分
615
威望
279
贡献
232
兑换币
125
注册时间
2014-10-31
在线时间
52 小时
毕业学校
26#
发表于 2015-1-29 11:24:44 | 只看该作者
:):)
回复 支持 反对

使用道具 举报

9

主题

43

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1107
威望
548
贡献
327
兑换币
341
注册时间
2012-12-5
在线时间
116 小时
毕业学校
饶平一中
25#
发表于 2013-3-7 23:27:00 | 只看该作者
好贵啊
回复 支持 反对

使用道具 举报

12

主题

85

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2980
威望
1346
贡献
726
兑换币
484
注册时间
2012-2-4
在线时间
454 小时
毕业学校
安大
24#
发表于 2013-3-7 18:36:50 | 只看该作者
原来是买东西的
回复 支持 反对

使用道具 举报

0

主题

1672

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13030
QQ
威望
7128
贡献
3436
兑换币
424
注册时间
2013-1-5
在线时间
1233 小时
23#
发表于 2013-2-24 09:27:55 | 只看该作者
参考下
回复 支持 反对

使用道具 举报

2

主题

181

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1872
威望
1048
贡献
360
兑换币
250
注册时间
2011-11-11
在线时间
232 小时
22#
发表于 2013-2-18 02:43:06 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

1672

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13030
QQ
威望
7128
贡献
3436
兑换币
424
注册时间
2013-1-5
在线时间
1233 小时
21#
发表于 2013-2-17 15:04:03 | 只看该作者
好!!
回复 支持 反对

使用道具 举报

4

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2134
威望
770
贡献
474
兑换币
503
注册时间
2012-12-12
在线时间
445 小时
20#
发表于 2013-2-16 20:06:42 | 只看该作者
好东西
回复 支持 反对

使用道具 举报

5

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
威望
119
贡献
67
兑换币
64
注册时间
2012-11-21
在线时间
17 小时
19#
发表于 2013-1-2 11:14:09 | 只看该作者
回复 支持 反对

使用道具 举报

24

主题

603

帖子

1

精华

跨届大侠

西点君

Rank: 10Rank: 10Rank: 10

积分
8838

活跃会员奖章优秀会员奖章论坛元老奖章在线王奖章资源大师奖章

威望
3135
贡献
3875
兑换币
1580
注册时间
2011-5-9
在线时间
914 小时
18#
发表于 2012-12-8 00:05:42 | 只看该作者
这个不错
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 11:48 , Processed in 0.072840 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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