求助:关于PID自动调节 点击:5032 | 回复:83



szllc

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-10-30 11:39:00
楼主
各位兄台,偶想编一个程序,自动调节伺服电机控制板PID参数。请问该从那里下手? 这个程序的思路应该是如何?



szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-02 19:50:00
21楼
只能说目前这种板卡看不到规划曲线,有的卡他们已经加了这种功能;但这种卡还没加。 但是对我这种初学的没经验的人来说,如果再没有一些工具帮忙,怎样才算调好,心里也没个准啊。 在调电机中发现,在同一个滚珠丝杠上的不同部分,以相同的参数跑动相同的距离,实际响应曲线不同。原本有的震动不太厉害,震动一两下就稳定,有的却震动3-4下,振幅也大,最大大约在7-8个左右,不知是否正常?还是什么原因? 什么参数没调好?

刘岩利

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 269回
  • 年度积分:30
  • 历史总积分:841
  • 注册:2002年9月03日
发表于:2004-11-03 08:42:00
22楼
在丝杠不同的位置上,负载不同实际是很正常的。负载的不可预期也是个人不认同自动调整PID的原因。 在实际工作的系统中,负载的变化是不能确定的一个因素,在理论上恒定的负载,往往会由于加工、装配的误差造成负载的差异。这种差异无法用数学方式建立模型(即使为一台设备建立了模型,也不能保证在下一台同样的设备上有效),所有前馈、滤波都对此没有什么作用,只能靠PID来克服。 调PID,首先要保证的是全程安全,在效果最差的位置得到的性能,才是可以用来标注的性能。对于行程不是很长的平台,我通常会一毫米一毫米的走完整个行程(当然,如果行程以米为单位,我的定位距离也会变成10厘米)。

szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-03 11:47:00
23楼
但是对于同一种机器呢?应该是有些意义吧。负载都差不多。 我的思路是:先设置一个kp值,然后让电机跑动;取实际位置与时间关系,存入数组;然后再进行判断;超调则加Kd,稳态误差大则变Ki.响应速度慢则加Kp.然后再跑,再测,再判断。再调。直到满意为止。你可以先给系统一个指标,让他达到这个指标就认为合适。 请刘兄及杨世祥老先生指正。 程序是编出一点了,试验起来效果是比手工调要差。但是,即使给出个参考的,大致的参数也可呀。毕竟只是调pid吗。况且这是命令,不干不行啊。

刘岩利

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 269回
  • 年度积分:30
  • 历史总积分:841
  • 注册:2002年9月03日
发表于:2004-11-03 12:56:00
24楼
如果不干不行,那就只能考虑怎么干了。 你的算法让我想起来一个很古老的笑话,和面的时候,面硬了就加水,面软了就加干面。你的算法中有没有处理盆子装不下的情况? 找些自控原理的书吧,里面经常会有 PID 的经验公式,这可能比你自己摸还有效一点。不过要注意,书上的PID与你产品上的PID是否完全对应,有时表达式会有点差异,需要换算一下。

blacksmith

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 81回
  • 年度积分:0
  • 历史总积分:329
  • 注册:2002年10月19日
发表于:2004-11-03 14:00:00
25楼
你说的是PID的自整定功能。现在很多dcs,plc都具备这个功能。

TellTruth

  • 精华:1帖
  • 求助:0帖
  • 帖子:10帖 | 451回
  • 年度积分:0
  • 历史总积分:1302
  • 注册:2003年10月29日
发表于:2004-11-03 15:37:00
26楼
先去了解系统辨识和自适应是怎么回事,然后再去讨论PID自整定才有意义,否则是异想天开。无范围的试凑PID参数,就好比期望瞎猫能逮住耗子一样。

szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-03 16:26:00
27楼
那就请TellTruth谈谈系统辨识和自适应是怎么回事。我还真不知道。只是凭感觉理解。 刘兄,我找到能得到当前规划位置与实际位置的误差的函数了!不好意思,以前没发现。5555。。。。 是不是这个函数得到的值加上实际位置值就是规划位置? 由此得到规划曲线,将其与实际曲线比较,可以较好的调节参数?

szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-03 16:35:00
28楼
我的算法中考虑了“盆子装不下”的情况。就是设置了一个上限。我测出大致的参数范围。呵呵。目前不知道别人如何做的,只能先慢慢来了。 做得不好,让大家笑话了。

刘岩利

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 269回
  • 年度积分:30
  • 历史总积分:841
  • 注册:2002年9月03日
发表于:2004-11-03 17:02:00
29楼
要得到规划函数是加还是减,看定义吧。 把规划曲线和实际曲线重在一起看。在这样能明显看出响应滞后了多少,超调了多少,震荡是由于超调引起的,还是负载引起的。大概是GALIL卡用多了,我在调伺服时很依赖这张对比图。在这张图上,PID的作用就会直观得多了。按照你的思路,先单用P值,是什么效果,加入I以后,对整个过程是如何影响的,之后,是D值的影响。我一般都是前馈加比例,有时会用到积分,再控制伺服电机时,几乎没有用过微分。 你好象一直都很定位的关心时间,从图上读一下,根据你给的参数,理论上需要多长时间来完成这个动作。

szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-03 20:16:00
30楼
多谢刘兄。 我已经把规划曲线和实际曲线华在了同一幅图上。对比发现,确实有超调,实际曲线比理论曲线震荡的要利害一些。实际曲线比规划曲线有滞后。 我在调机时发现,如果设置ki的话,即使设成1,系统达到稳定的时间也会很长(几十mx);但是kd减小超调的作用还比较明显。 但是那个前馈速度设起来好像作用不大,至少效果不明显。 我关心定位时间,是因为伺服电机在定位之后,还要打线,如果不迅速定位,打线就没有保证;或是影响打线质量。 刘兄,明天我把我的实际曲线与规划曲线传上来,你看看先。

刘岩利

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 269回
  • 年度积分:30
  • 历史总积分:841
  • 注册:2002年9月03日
发表于:2004-11-04 09:25:00
31楼
如果方便的话,也把固高的手册给我看一下行不行,所有指令、参数、函数?固高在国内也算很有名气的一款卡,不应该有太大的问题。 还是建议这样尝试,取消积分与微分,只用前馈与比例,把比例设小一点,试出适当的前馈值。 一般来说,理论曲线不应该存在震荡的,如果如果你看到的理论曲线本身就有震荡,那多半是因为获得理论位置的算法有问题,比如,用于计算的实际位置与误差位置不是同一时刻的。

szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-04 10:41:00
32楼
刘兄,我已将规划曲线与实际曲线比较图发至你信箱,注意察看。

szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-04 15:41:00
33楼
是不是一个控制板,可以配大部分伺服电机?什么控制半配什么电机有区别吗?

刘岩利

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 269回
  • 年度积分:30
  • 历史总积分:841
  • 注册:2002年9月03日
发表于:2004-11-04 18:22:00
34楼
回了你的邮件,不常打这么多字,发之前也没有看有没有错别字。 控制卡与伺服放大器之间是标准接口,不存在匹配的问题。

刘岩利

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 269回
  • 年度积分:30
  • 历史总积分:841
  • 注册:2002年9月03日
发表于:2004-11-05 09:08:00
35楼
系统调出来没有?性能是否能满足要求?

szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-05 16:31:00
36楼
从开始调到调好机器得花多长时间啊? 今天我们不上班。刘兄。 让你操心了。 我怀疑是不是我的实际曲线与规划曲线华的不对? 我是用一个得到当前位置的函数,再用一个计时器,把当前位置和当前时间存到数组里,然后再显示出来。但是采样时间很长啊,几乎在300-400um左右。

刘岩利

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 269回
  • 年度积分:30
  • 历史总积分:841
  • 注册:2002年9月03日
发表于:2004-11-05 18:08:00
37楼
我不太清楚固高的工作流程,但是,你得到实际曲线的方式不会给你调伺服带来问题的。不过,你的规划曲线本身肯定有问题,实际的规划曲线是不会抖动的。无论如何,有了这两条不太精确的曲线图,总比没有要强很多的。 顺便说一下,相对于伺服驱动器两毫秒的响应,毫秒一下的采样时间足够用了,其实,就是4ms的采样时间来绘图,其实也差不多。

szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-05 22:06:00
38楼
原来如此。 我用一个计时器测固高指令的执行时间,为200us,还以为不正常。 看来是与驱动器有关啊。可能也与伺服周期有关。

szllc

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 220回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2004年9月15日
发表于:2004-11-06 11:35:00
39楼
刘兄,按照你教授的方法,系统现在响应达到较好的水平!!! 小弟不胜感激! 系统在到达稳定时,一般会有1-2个脉冲的稳定误差。不过估计这对生产影响不大。 还有一个问题,就是在同样的参数下,电机在滚珠丝杠上跑同样一段距离时,为何偶尔出现响应差别很大的现象? 还有,是不是系统的初始零漂调节很重要?我发觉倘若零票调节不好,不稳定下来的话,响应有时会很差。但有时这个零漂老不稳定,总在那0-1-0-1的跳动,或者说是设置一个零漂值,只管用一段时间;呆会还得设置。但总不能老调节零漂玩吧? 有何可以消除或是尽量减小的办法?在电源线上加噪声滤波器?

刘岩利

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 269回
  • 年度积分:30
  • 历史总积分:841
  • 注册:2002年9月03日
发表于:2004-11-07 16:02:00
40楼
能把机器调好一点,一切都好。 系统中存在不可预期的扰动因素很正常,这才是PID真正需要解决的问题。 零漂不可能绝对准,有0-1-0-1的变化很正常,是应该的。除非把伺服关了,否则它总是要动的。 在电源线上加滤波器对于稳定零漂有什么作用,这个我还真没有经验。

热门招聘
相关主题

官方公众号

智造工程师