智能车制作

标题: PID算法——完美篇 [打印本页]

作者: 艾玛    时间: 2012-2-13 16:45
本主题需向作者支付 2 贡献 才能浏览
作者: 艾玛    时间: 2012-2-13 18:11
文档里部分PID程序,
  1. typedef struct PID
  2. {
  3.     int SetPoint; //设定目标 Desired Value
  4.     double Proportion; //比例常数 Proportional Const
  5.     double Integral; //积分常数 Integral Const
  6.     double Derivative; //微分常数 Derivative Const
  7.     int LastError; //Error[-1]
  8.     int PrevError; //Error[-2]
  9. } PID;
  10. //*****************************************************
  11. //定义相关宏
  12. //*****************************************************
  13. #define P_DATA 100
  14. #define I_DATA  0.6
  15. #define D_DATA  1
  16. #define HAVE_NEW_VELOCITY 0X01
  17. //*****************************************************
  18. //声明PID实体
  19. //*****************************************************
  20. static PID sPID;
  21. static PID *sptr = &sPID;
  22. //*****************************************************
  23. //PID参数初始化
  24. //*****************************************************
  25. void IncPIDInit(void)
  26. {
  27. sptr->LastError = 0; //Error[-1]
  28. sptr->PrevError = 0; //Error[-2]
  29. sptr->Proportion = P_DATA; //比例常数 Proportional Const
  30. sptr->Integral = I_DATA; //积分常数Integral Const
  31. sptr->Derivative = D_DATA; //微分常数 Derivative Const
  32. sptr->SetPoint =100;  目标是100
  33. }
  34. //*****************************************************
  35. //增量式PID控制设计
  36. //*****************************************************
  37. int IncPIDCalc(int NextPoint)
  38. {
  39.    int iError, iIncpid; //当前误差
  40.    iError = sptr->SetPoint - NextPoint; //增量计算
  41.    iIncpid = sptr->Proportion * iError //E[k]项
  42.              - sptr->Integral * sptr->LastError //E[k-1]项
  43.              + sptr->Derivative * sptr->PrevError; //E[k-2]项
  44.     sptr->PrevError = sptr->LastError;   //存储误差,用于下次计算
  45.     sptr->LastError = iError;
  46.     return(iIncpid);                          //返回增量值
  47. }
  48. Int g_CurrentVelocity;
  49. Int g_Flag;
复制代码
但是如果要彻头彻尾地弄PID,建议多调试,写几个仿真程序
这是刘金锟先生的《先进PID控制及其MATLAB仿真.pdf》,方便大家实际演练PID
作者: fanyu19900706    时间: 2012-2-13 21:04
抠啊
作者: 222    时间: 2012-2-14 13:08

作者: 摆摊收回忆    时间: 2012-2-14 18:10
不错,通俗易懂的说
作者: 艾玛    时间: 2012-2-15 11:05
这个PID资料我好不容易找到的,没有功劳也有苦劳吧。。
作者: 月光疾风    时间: 2012-2-15 12:42
艾玛 发表于 2012-2-15 11:05
这个PID资料我好不容易找到的,没有功劳也有苦劳吧。。

这个用指针和结构体写的,跟不用指针结构体写有什么异同么,我找到的资料也都是用指针结构体写的~
作者: 艾玛    时间: 2012-2-15 17:06
月光疾风 发表于 2012-2-15 12:42
这个用指针和结构体写的,跟不用指针结构体写有什么异同么,我找到的资料也都是用指针结构体写的~

使用指针的话,可以把任意更改指针所指的对象,便于以后以后和更改。而且所指对象一般出现在宏定义中,这样经过长时间再回头看的话也会更清楚一点。
这个主要是程序的写法问题,跟功能没有关系的

作者: 月光疾风    时间: 2012-2-16 01:19
艾玛 发表于 2012-2-15 17:06
使用指针的话,可以把任意更改指针所指的对象,便于以后以后和更改。而且所指对象一般出现在宏定义中,这 ...

呵呵,多谢,明白了~~
还有个问题想请教下,就是调试过程中,PID,陀螺仪和加速度计角度融合等等的的图像曲线用什么来看啊?是自己写上位机界面把这些参数作成实时图像,还是另有什么软件可以直接看吗?小弟新手,求解答~~

作者: pcj2011    时间: 2012-2-16 13:20
我也想知道,我看网上别人那个分析图像,不知道怎么来的啊
作者: 艾玛    时间: 2012-2-16 21:34
要让加速度计和角速度计的配合使用,需要卡尔曼滤波算法的,要观察对比滤波算法的效果才需要上位机软件的,这种软件自己编太复杂了吧。。网上找找吧有木有
作者: ahjdyty    时间: 2012-2-19 14:49

作者: liaogao2    时间: 2012-2-19 22:55
望免费分享
作者: AK47-CTBU    时间: 2012-2-19 22:56

作者: renqinglei    时间: 2012-2-19 23:07

作者: chenyuanjin    时间: 2012-2-20 13:57
shishi
作者: erchowyo    时间: 2012-2-20 20:24
有上位机的用法资料么?
作者: doyoung1    时间: 2012-2-25 11:18

作者: 琼天小猪11    时间: 2012-3-4 11:06
定一个
作者: 龙游天下明    时间: 2012-3-4 11:28

作者: 卡丁车一号    时间: 2012-3-4 17:30
谢了哈
作者: 摄像头组菜鸟    时间: 2012-3-4 22:27

作者: 君子兰    时间: 2012-3-4 22:45
是什么呢?

作者: 君子兰    时间: 2012-3-4 22:56
有谁用上位机协助调试小车 么?
作者: 君子兰    时间: 2012-3-4 22:56
用什么样的上位机的,推荐一下!!

作者: 88251656    时间: 2012-3-9 15:15
滔滔
作者: 88251656    时间: 2012-3-9 15:16
好东西

作者: 582870373    时间: 2012-3-10 01:58
谢了,顶起
作者: 天天不coding    时间: 2012-3-10 09:47
打不开?????
作者: win2000_li    时间: 2012-3-19 12:02
我顶一个!
作者: usstwhw    时间: 2012-3-23 16:52
菜鸟求学  新手已无贡献  肿么办  
大神你就发一份给我吧
740126966
作者: jingandlin    时间: 2012-3-27 20:43
没有共同进步的意识
作者: cjinxing    时间: 2012-3-28 00:21
这个要顶啊,好人
作者: 409791715    时间: 2012-4-15 21:12
谢谢哈
作者: lujiongjian    时间: 2012-4-18 13:12
无语
作者: MusicMe    时间: 2012-4-21 16:43
希望对自己有用!
作者: 799381008    时间: 2012-4-26 11:50
鼓励一下!学习中

作者: char_rp    时间: 2012-4-26 13:17
看看
作者: 锕BEN    时间: 2012-5-7 19:09

作者: excellentlizhen    时间: 2012-5-7 19:22

作者: excellentlizhen    时间: 2012-5-7 19:27

作者: yanxi10    时间: 2012-5-10 18:15
图片看不到啊。。。
作者: 十七岁不哭    时间: 2012-5-11 19:48
没钱
作者: 汪稳wangwen    时间: 2012-6-8 21:57
不错,超给力
作者: 汪稳wangwen    时间: 2012-6-8 21:59
忘免费分享
作者: linping9656    时间: 2012-6-8 22:49
这个代码我好似乎见过啊
作者: wdf    时间: 2012-6-22 10:16

作者: 安徽梦之队    时间: 2013-1-14 21:10
不错,非常好
作者: 睡石答春绿    时间: 2016-1-18 10:46
感谢楼主分享
作者: czddule    时间: 2018-3-26 14:36
:lol:lol:lol:lol
作者: czddule    时间: 2018-3-26 14:39
:lol:lol:lol:lol
作者: zijian9665    时间: 2018-3-26 23:17
楼主厉害!!!!!




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