首页 上一页 1 2 下一页 尾页

请教有关pid控制 点击:1331 | 回复:28



章于

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 16回
  • 年度积分:0
  • 历史总积分:40
  • 注册:2006年3月31日
发表于:2006-04-03 10:16:00
楼主
新手请问!
  我的系统是一个单轴系统,主要控制衡梁的上下移动位置,采用的是交流伺服电机,反馈的位置信号是编码器采集,我想对横梁进行位置闭环,打算采用pid控制。
  有个问题不是很明白,我通过编码器读回来的是一个位置参数,与期望值之间形成一个位置误差e,然后通过pid算法之后得到的是一个与位置有关的数值PID(e),可是输入电机的值必须是一个速度值,对应一个电机频率,这个位置有关的数值PID(e)如何转化为一个电机频率啊?  请各位高手指点,不会是用这个 PID(e)除以采样时间吧。。
   



章于

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 16回
  • 年度积分:0
  • 历史总积分:40
  • 注册:2006年3月31日
发表于:2006-04-16 00:45:00
21楼
多谢,我在程序中是设定误差接近零时强制停机的,同时让时间处理函数停止,只是这个问题总是出现,请指教:
Q:当PID(e)很小的时候电机会突然停止几秒钟,然后再运转,当停止时,比例与微分环节数值都停止,只有积分起作用,运行一段时间后横梁再运动,这是为什么?按理来说应该不会这样,并不是因为PID(e)太小缘故,因为它的值超过电机最小驱动很多倍。还是因为windows下消息的阻塞?但改变控制时间也会出现! 请教
每次停止时PID(e)的数字会跟采用时间,还有kp ki kd都有点关系

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2006-04-16 10:52:00
22楼
你的PID(e)输出到驱动器,都有哪些环节?包括软件和硬件的环节?另外,如果驱动器上的参数设置的有问题,负载又比较大的情况下,可能会表现出类似“死区”的现象。

章于

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 16回
  • 年度积分:0
  • 历史总积分:40
  • 注册:2006年3月31日
发表于:2006-04-20 11:33:00
23楼
最近学校网络改造,不好意思
我的PID(e)直接从软件输出到测控卡然后到驱动器。
老师看了我做的这个位置控制,初步表示还可以,说还要在位置
闭环里实现速度闭环,我查阅资料,但还是不是很理解,位置闭环中速度就是变化的,那还用实现什么速度闭环吗?恳请指教!

老柴夫

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 195回
  • 年度积分:0
  • 历史总积分:196
  • 注册:2006年3月02日
发表于:2006-04-20 17:56:00
24楼
在你的设计中,位置控制的实际意义是什么?怎么体现出来?
我想,圆编码器反应出来的是一个间接的量,是把衡(横)梁的直线位移转换成角位移来测量。那么横梁的实际位置和经过转换的电机的转角位置的比较,就是用来控制位置误差的量。
横梁的实际位置从哪里来,在程序中没看到。
定义的位置期望误差比定义一个期望位置可能要有用一些。
你在程序中限制了当PID(e)小于某值的时候就停机的。因此,运行中停机也是对的。经过几秒的积分后,误差大了又重新开机了……是这样吧?

章于

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 16回
  • 年度积分:0
  • 历史总积分:40
  • 注册:2006年3月31日
发表于:2006-04-21 11:55:00
25楼
多谢老柴夫,我的机器是一个材料试验机,就是要实现横梁的上下运动,对材料进行拉伸试验,程序中GetFeedbackSignal()函数是我自己写的,中间的实现代码就是得到编码器的值,经过变换后换算成横梁的实际位置,在程序中我定义一个期望位置,电机运行后我限制的
dError<0.00005停机,这其中的dError指的是横梁实际期望位置与我通过编码器换算后得到的横梁实际位置的差值,我试过直接用PID(e)
来限制电机的运转,但好像不是很好用,所以出现的短暂停机现象我真是不知道为什么,不知是不是像刘岩利老师说的那样是类似死区现象,(短暂停机时,dError不变化,比例,积分都起着作用,PID(e)值比较小,一般在20左右,但这个值正常时电机也应该转动,电机最小驱动频率是0.5),恳请高手们指教。
    还请大家给我讲讲材料试验时,我这对横梁位置闭环后,怎么样对横梁进行速度闭环,因为老师要求电机驱动器自带的不行,要直接对横梁控制。  多谢!!

老柴夫

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 195回
  • 年度积分:0
  • 历史总积分:196
  • 注册:2006年3月02日
发表于:2006-04-21 16:13:00
26楼
如果在立柱导轨上装个光栅呀什么的,那就和编码器组成一个全闭环,这样就可以用PID做位置控制了。
材料实验机工作时的移动距离和速度也不是太大,我记得以前做材料拉伸实验的时候,好象是用恒速的吧,记不太清楚了,那关键就是要稳定。
PID的程序你可以这样做
当误差大于某个数的时候只用比例,
当误差小于某个数的时候就加上积分,
当误差再小于某个数的时候加上微分。
要恒速的话,速度闭环也是必须的,做法差不多。

章于

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 16回
  • 年度积分:0
  • 历史总积分:40
  • 注册:2006年3月31日
发表于:2006-04-21 20:54:00
27楼
TO:老柴夫
   我的这个材料试验机,按试验标准上来说就是要恒速的,但我现在的位置控制中,横梁的速度是变化的,这个变化就和pid算法有关,我现在就是很不明白,又要位置闭环,又要速度恒定,我怎么才能实现呢,位置闭环中位置是由PID(误差)自动得到的,速度当然应该有变化,如果要恒定的话,那即时速度和即时位置怎么得到呢?
多谢!!

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2006-04-22 09:24:00
28楼
又要位置闭环,又要速度恒定
这个,我的理解是 
1、给定位置值需要变化的时候,不要突变,而是按照一定的速度平缓变化,

2、PID(E)的结果不作为速度处理,只作为速度的给定方向(正、负、零),用独立的速度环保证速度的稳定(0或指定速度)

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页