智能车制作

标题: 关于控制电机PID的问题 [打印本页]

作者: JudeScorpio    时间: 2013-1-26 19:50
标题: 关于控制电机PID的问题
请问控制电机的PID的时候,采用闭环控制,如何将编码器读取的那个值,通过PID那个公式,转化为给PWMDTY的那个值呢?
这两个值得含义不一样,比如我设置PWMDTY为345而经过每间隔5s蓝牙读取到的编码器的值为165,那么我在通过那个公式怎么写才比较号?  通过每次读取的那个编码器的当前值,与我设置的165预期值,来比较么?  那请问最后如何转化为PWMDTY比较合适?

作者: JudeScorpio    时间: 2013-1-26 20:20
/**********************************************************************
* 函数名称?void speed_pid()
* 函数功能: 速度控制PID      采用增量式PID
* 入口参数:pro_speed 制定速度 cur_speed 当前速度
* 出口参数:无
***********************************************************************/
void speed_pid(float pro_speed,float cur_speed)
{
  speed_error = pro_speed - cur_speed;
  pwm_speed = PWMDTY45 + Kp*(speed_error - last_speed_error);
  last_speed_error = speed_error;
  PWMDTY45 =  (int)(pwm_speed);
}


pro_speed 是我先设置一定的PWMDTY,我通过蓝牙,读取的编码器最大值
cur_speed是当前读取到的值
不知道这个思路对不对
作者: JudeScorpio    时间: 2013-1-26 23:01
童鞋们。。。求高手指点
作者: yukunlinykl    时间: 2013-1-27 01:51
PID参数其实是带量纲的。它实现了两个物理量之间的转化。他的单位是伏特每线。
作者: ludlee    时间: 2013-1-27 07:10
学习一下
作者: JudeScorpio    时间: 2013-1-27 21:06
yukunlinykl 发表于 2013-1-27 01:51
PID参数其实是带量纲的。它实现了两个物理量之间的转化。他的单位是伏特每线。

。。。。。。这个  ,我等会再看一下理论吧,就简单的看了点资料,所以对PID还不是太了解,只是单纯的认为,通过那个公式来计算出误差,进而调节。

作者: JudeScorpio    时间: 2013-1-29 16:37
为什么逛了一下论坛有不少人建议用位置式PID?而不建议用增量式
作者: 一个好青年    时间: 2013-4-7 11:04
好艰难啊
作者: 辉小河    时间: 2015-11-15 11:15
我也在郁闷
作者: xqw车    时间: 2016-4-20 13:12
楼主 你这个问题解决了么 ?




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