搜索
bottom↓
回复: 87

PID整定的另类方法

  [复制链接]

出0入0汤圆

发表于 2012-7-4 09:23:38 | 显示全部楼层 |阅读模式
本帖最后由 coleyao 于 2012-7-4 10:50 编辑

本来几天前要放上来的,下班后移动网一直不好,放不上,还是上班抽空放到论坛,希望对大家有帮助,帖子内容谢绝转载,谢谢(附件打不开已重新上传):

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-7-4 09:58:00 | 显示全部楼层
格式错误?

LZ压缩之后再上传吧

出0入0汤圆

发表于 2012-7-4 10:12:12 | 显示全部楼层
是啊,打不开

出0入0汤圆

 楼主| 发表于 2012-7-4 10:51:45 | 显示全部楼层
本帖最后由 coleyao 于 2012-7-5 09:51 编辑

   Sorry,从QQ中转站转了一下,没想到居然就出问题了,重新确认可用后已再次上传
   另帖子附件内容均为原创,如果阿莫认为帖子内容有料的话希望能加精,以更好地造福各坛友

出0入0汤圆

发表于 2012-7-8 17:08:33 | 显示全部楼层
楼主,你好,最近也在调PID,以前没接触过,有几个问题想请教下你。
我的系统目的是控制气缸里面的压力稳定在我的设定值。
系统的结构是:气泵通过电磁阀连接到气缸,压力传感器也连接在气缸上,我通过压力传感器反馈的压力值,通过DA输出控制TIP122(三极管放大)控制电磁阀通断,(注:电磁阀有一个特性,通过控制通过电磁阀的电流,可以使电磁阀微打开)。请问,如果我用PID进行调节的话,反馈量与控制量怎么选择呢?

我现在反馈量是当前压力值-设定压力值(压力传感器的输入值,其经过AD转换,在通过变算到压力值),控制量是DA值(12位 3.3V),不知这样是否可以?
我在调试的过程中,I D不管,不管怎么调节P,都不能调整到目标设定压力值。

出0入0汤圆

发表于 2012-7-8 18:41:27 | 显示全部楼层
谢谢楼主的理论研究,并分享给大家


我们也在搞温控器,说一点我的感受

对于加热系统,加热是主动的,散热是被动的
防止过冲则尤为重要,其次才是响应速度。
构造一个合理的模型,对整定速度和效果,非常重要。

出0入0汤圆

 楼主| 发表于 2012-7-8 19:58:14 | 显示全部楼层
本帖最后由 coleyao 于 2012-7-8 22:34 编辑
yaodongliang 发表于 2012-7-8 17:08
楼主,你好,最近也在调PID,以前没接触过,有几个问题想请教下你。
我的系统目的是控制气缸里面的压力稳定 ...


    不用客气,大家一起讨论吧,首先我要说明的是我没有做过压力控制系统,其次也没有实际通过经典的方式(即PID参数整定的方式)做过PID控制系统,但是我文中提及的预测式负反馈控制方法我是实际用过的,使用软件仿真的结果也和实际情况接近,故此我对PID控制的研究都只是建立在软件仿真的基础上的。其次理论的东西其实是相通的,所以我就从理论上对你的压力控制系统提一些看法(文中的假设条件是控制周期等于采样周期):
   1)首先你要对你的压力控制系统的建立过程有一个清楚的认识,也即那些是被控量,哪些是输入量,哪些则是控制系统的环境因素,被控量稳定过程是如何建立起来的;
    2)其次要注意对于一般内部相位延迟不是太厉害的系统,通常引入的反馈都是负反馈,如果反馈量弄成正反馈控制系统就调不出来了;
   3)因为我最近对位置式PID的增量形式研究比较多一些,就从位置式PID的增量形式的控制上对你的系统提一些看法,希望对你有帮助;
      a)  首先针对输入输出建立一个大致的范围,例如:需要控制的压力范围为0-100Pa,采用手工方式找到该范围对应的电流控制范围是5-100mA,假设对应的D/A输入为100-2000;
      b)  估计一个大致的控制系统内部延时,如100mS;
         c) 计算PID=Kp*E[n]+0.1Kp*(E[n]-E[n-1]);   注: E[n]为第n个采样周期时得到的设定压力-当前压力,而不是当前压力减去设定压力,0.1即预估的内部延时,Kp取值使得E[n]取最大值时计算得到的PID为pwmmax的3~5%左右;
      d)   如果PID>0 而且(pwmpointer+PID)<=pwmmax)   那么  pwmpointer:=pwmpointer+PID;
               如果PID<0 而且(pwmpointer+PID>=0) 那么  pwmpointer:=pwmpointer+PID;  (计算控制量对应的值)
          e) 如果pwmpointer<0  则 pwmpointer:=0;
              如果pwmpointer>pwmmax  则 pwmpointer:=pwmmax;(pwmmax越大,分辨率越高,控制越精细)
          f)  DAout[n]:=pwmpointer*(MaxDA-MinDA)/pwmmax+MinDA;  (MinDA即a)中的100,MaxDA即a)中的2000)
      g) 每一个控制周期重复c)-f)的动作,得到一个控制系统的响应,评估该响应情况;
      h) 根据评估结果调整Kp值和预估的内部延时(开始时内部延时可稍微估大一些,这样容易建立一个稳定的系统,建立后再逐步减小内部延时值,得到一个尽可能最快速响应的系统,另外开始时Kp值应该小一些,逐步加大到系统不稳定为止,将临界值*0.7~0.8即为理想的Kp值,然后再调整内部延时预估值)
   最后,根据你所说的先调比例部分无法稳定的情况看,你应该是用的增量式PID,而不是位置式PID的增量形式,请注意区分,如果对概念不熟,可以用PID温控仿真软件仿真看看各种PID控制下各个参数在调整中所起的作用 (增量式PID的公式是  PID=KP*E[n] +KI*Sum(E[n]) +KD*(E[n]-E[n-1]),其中Sum()为积分 )。

出0入0汤圆

 楼主| 发表于 2012-7-8 20:00:52 | 显示全部楼层
本帖最后由 coleyao 于 2012-7-9 11:55 编辑
McuPlayer 发表于 2012-7-8 18:41
谢谢楼主的理论研究,并分享给大家


   我自己做了一个名为"PID温控仿真软件"的软件,自认为可以较好地仿真温控系统的各个方面,你有空的话建议用用试试看,我自己仿真了两张图片,分别表示反馈深度和预测深度对过冲的影响,供参考!

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-7-9 10:30:57 | 显示全部楼层
谢谢分享,学习了!

出0入0汤圆

发表于 2012-7-12 17:50:14 | 显示全部楼层
coleyao 发表于 2012-7-8 19:58
不用客气,大家一起讨论吧,首先我要说明的是我没有做过压力控制系统,其次也没有实际通过经典的方式 ...

楼主,谢谢您的解答,我为我的问题开了一个帖子,期待您的分析与解答,谢谢!http://www.amobbs.com/thread-5485936-1-1.html

出0入0汤圆

发表于 2012-7-13 15:43:12 | 显示全部楼层
谢谢楼主分享啊

出0入0汤圆

发表于 2012-7-26 20:56:44 | 显示全部楼层
coleyao 发表于 2012-7-8 20:00
我自己做了一个名为"PID温控仿真软件"的软件,自认为可以较好地仿真温控系统的各个方面,你有空的话建 ...

请问楼主的仿真软件在哪里,能共享一下吗

出0入0汤圆

发表于 2012-7-26 21:20:42 | 显示全部楼层
嗯,下了看看

出0入0汤圆

 楼主| 发表于 2012-7-27 07:35:01 | 显示全部楼层
kakags 发表于 2012-7-26 20:56
请问楼主的仿真软件在哪里,能共享一下吗

请参考我更早的一篇帖子:
http://www.amobbs.com/thread-5482928-1-1.html

出0入0汤圆

发表于 2012-7-27 07:50:40 | 显示全部楼层
mark留着为以后比赛调试用

出0入0汤圆

发表于 2012-7-27 09:17:06 | 显示全部楼层
不开 文件已损坏

出0入0汤圆

 楼主| 发表于 2012-7-27 09:21:38 | 显示全部楼层
anta09 发表于 2012-7-27 09:17
不开 文件已损坏

重新下载一次吧,我刚下载测试是正常的。。。

出0入0汤圆

发表于 2012-8-3 08:57:15 | 显示全部楼层
想向ColeYao请教相关问题

出0入0汤圆

 楼主| 发表于 2012-8-3 11:48:22 | 显示全部楼层
有问题直接提就好了,有空的话我会一起讨论的

出0入0汤圆

发表于 2012-9-1 23:46:37 | 显示全部楼层
mark

出0入46汤圆

发表于 2012-12-14 15:03:40 | 显示全部楼层
好东西,收下

出0入0汤圆

发表于 2012-12-14 15:13:16 | 显示全部楼层
mark留着

出0入0汤圆

发表于 2013-1-16 17:20:17 | 显示全部楼层
谢了,以后有问题了还请教你,希望不吝赐教。

出0入0汤圆

发表于 2013-1-31 16:18:39 | 显示全部楼层
最近也在看这方面的东西,,,刚开始接触,可以看看呀,,

出0入0汤圆

发表于 2013-1-31 16:28:26 | 显示全部楼层
学习了 高手如云啊  谢谢楼主分享

出0入0汤圆

 楼主| 发表于 2014-2-6 11:58:26 | 显示全部楼层
本帖最后由 coleyao 于 2014-2-7 06:31 编辑

发一下PID仿真工具的第三版(二次修正版):
  1)网页浏览功能改进;
  2)预测式算法补充说明!
希望大家能喜欢(不开新帖了,以免有人反对)!

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-2-6 14:17:04 来自手机 | 显示全部楼层
学习,学习,谢谢

出0入0汤圆

发表于 2014-2-6 15:54:13 | 显示全部楼层
感谢楼主!

出0入0汤圆

发表于 2014-2-6 23:05:34 | 显示全部楼层
果断收藏。第一次下载结果打不开,再次下载后解压成功。

出0入0汤圆

发表于 2014-2-9 20:42:49 | 显示全部楼层
好东西,楼主厉害啊!

出0入0汤圆

发表于 2014-4-27 22:43:56 | 显示全部楼层
谢谢。。。

出0入0汤圆

发表于 2014-6-6 20:14:36 | 显示全部楼层
感谢楼主!!

出0入0汤圆

发表于 2014-6-7 07:08:37 来自手机 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-6-12 22:01:26 | 显示全部楼层
lz能给我一份PID控制电机的程序吗,我弄了好久一直没弄出来 、

出0入0汤圆

 楼主| 发表于 2014-6-13 08:16:02 | 显示全部楼层
zhxush 发表于 2014-6-12 22:01
lz能给我一份PID控制电机的程序吗,我弄了好久一直没弄出来 、

我还没有用PID做过项目呢,只做过温控,是预测式负反馈控制方式!

出0入0汤圆

发表于 2014-7-1 15:26:38 | 显示全部楼层
多谢分享。

出0入0汤圆

发表于 2014-8-11 16:13:48 | 显示全部楼层
非常感谢楼主

出0入0汤圆

发表于 2014-8-31 15:47:45 | 显示全部楼层
好帖果断Mark!

出0入0汤圆

发表于 2014-8-31 22:03:55 | 显示全部楼层
感谢楼主共享,学习了

出0入0汤圆

发表于 2014-9-10 13:01:55 | 显示全部楼层
谢谢 楼主 。 楼主在温控方面颇有见解啊

出0入0汤圆

发表于 2014-9-10 13:18:26 | 显示全部楼层
之前见过有人用 自整定的PID来调试直立车,不知道楼主对这有什么看法吗?请教。

出0入4汤圆

发表于 2014-9-10 13:50:27 来自手机 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2014-9-10 13:50:55 | 显示全部楼层
下来看看

出0入0汤圆

 楼主| 发表于 2014-9-10 21:12:40 | 显示全部楼层
cellar 发表于 2014-9-10 13:18
之前见过有人用 自整定的PID来调试直立车,不知道楼主对这有什么看法吗?请教。 ...

  自整定PID是控制算法中的一种,直立车需要实现行走功能可以采取各种控制算法,每种控制算法有它们各自的特点,只要实现了预期的控制目标都是可以的!
  
  预测式负反馈算法是我根据自动控制的特点命名的一个算法,它的算法是从自动控制的本质抽象出来的,符合了几乎所有的生物自动控制其行为的特点:反馈+预测+调节 三个环节循环往复,不断嵌套,实现生物体的各种各样的目

的。反馈即获取物体的位移、速度、加速度等信息,包含了感知和记忆;预测即根据当前物体的位移(速度)通过计算(心算)得到物体在一定时间后的位移(速度),主要是运算;调节即根据物体在一定时间后的位移(速度)来调

节物体当前的速度(加速度)。预测式负反馈算法尽管从理论上分析是属于时间域的算法,而常用的PID控制算法是属于频率域的算法,但预测式负反馈算法的形式和增量式PID很像,应该算是殊途同归吧!

  我所讲的自动控制的算法都是通用的,没有说专门针对温控还是自平衡小车的,所以关键是理解,与具体应用无关,以上希望对你有帮助!

出0入0汤圆

发表于 2014-9-14 13:24:35 | 显示全部楼层
好高端的样子

出0入0汤圆

发表于 2014-9-14 13:31:02 | 显示全部楼层
pid整定,mark

出0入0汤圆

发表于 2014-9-14 14:08:26 | 显示全部楼层
一直对PID充满好奇,有时间要好好学习学习。

出0入0汤圆

发表于 2014-9-14 15:49:34 | 显示全部楼层
学习中。。。

出0入0汤圆

发表于 2014-9-14 15:55:52 | 显示全部楼层
mark,tks……

出0入0汤圆

发表于 2014-9-14 15:58:33 | 显示全部楼层
谢谢分享            

出0入0汤圆

发表于 2014-9-15 17:01:06 | 显示全部楼层
学习学习!

出0入0汤圆

发表于 2014-9-15 17:04:09 | 显示全部楼层
mark,标记一下

出0入0汤圆

发表于 2014-9-17 21:05:47 | 显示全部楼层
普通人用处不大

出0入0汤圆

发表于 2014-9-22 14:28:54 | 显示全部楼层
coleyao 发表于 2014-2-6 11:58
发一下PID仿真工具的第三版(二次修正版):
  1)网页浏览功能改进;
  2)预测式算法补充说明!

谢谢,这个很实用呀!

出0入0汤圆

发表于 2014-9-23 11:03:13 | 显示全部楼层
000000000000000000000000000000000000000000000000

出0入0汤圆

发表于 2014-9-23 22:05:13 | 显示全部楼层
以后下载看看

出0入0汤圆

发表于 2014-9-23 22:29:59 | 显示全部楼层
学习一下!

出0入0汤圆

发表于 2014-11-9 21:05:08 | 显示全部楼层
厉害~学习一下

出0入0汤圆

发表于 2014-12-10 11:40:30 | 显示全部楼层
楼主有木有这个软件的使用说明什么的?先了解这个软件

出0入0汤圆

 楼主| 发表于 2014-12-10 11:53:09 | 显示全部楼层
青春style 发表于 2014-12-10 11:40
楼主有木有这个软件的使用说明什么的?先了解这个软件

软件内有简单的中文说明的!

出0入0汤圆

发表于 2014-12-18 10:04:48 | 显示全部楼层
有朋友再做气体打压控制方面的吗?

出0入0汤圆

发表于 2014-12-24 10:52:39 | 显示全部楼层
PID在电机控制这块也很重要,我正在了解如何利用PID更好的控制电机马达使转速达到稳定的设定值

出0入0汤圆

发表于 2014-12-24 10:53:50 | 显示全部楼层
有人对PID控制电机这块了解多的可以指点一下小弟,我会非常感激的,呵呵

出0入0汤圆

发表于 2015-1-25 02:11:17 | 显示全部楼层
我是来学习的

出0入0汤圆

发表于 2015-2-18 20:49:56 来自手机 | 显示全部楼层
这回复里有精华

出0入0汤圆

发表于 2015-2-25 06:49:22 | 显示全部楼层
PID想做又快又好真不容易。

出0入0汤圆

发表于 2015-4-14 21:06:17 | 显示全部楼层
今天试了一下,低温37度误差十一0.1左右波动,高温70度不容易到达波动大。

出0入0汤圆

发表于 2015-4-19 14:18:27 | 显示全部楼层
学习了,下载了试试

出0入0汤圆

发表于 2015-4-19 14:57:20 | 显示全部楼层
很好的资料 仔细拜读一下

出0入0汤圆

发表于 2015-4-19 14:59:42 | 显示全部楼层
一般实际应用的时候都是凑参数,有些传递函数太复杂啊,不好应用

出0入0汤圆

发表于 2015-4-19 15:00:37 | 显示全部楼层
一般实际应用的时候都是凑参数,有些传递函数太复杂啊,不好应用

出0入0汤圆

发表于 2015-4-19 19:34:26 来自手机 | 显示全部楼层
很不错啊,谢谢!

出0入0汤圆

发表于 2015-4-19 19:34:41 来自手机 | 显示全部楼层
很不错啊,谢谢!

出0入0汤圆

发表于 2015-4-20 15:41:31 | 显示全部楼层
make         

出0入0汤圆

发表于 2015-5-18 17:07:01 | 显示全部楼层
coleyao 发表于 2012-7-8 19:58
不用客气,大家一起讨论吧,首先我要说明的是我没有做过压力控制系统,其次也没有实际通过经典的方式 ...

楼主,最近刚触PID,看到你提到的这个公式: PID=KP*E[n] +KI*Sum(E[n]) +KD*(E[n]-E[n-1]),其中Sum()为积分,你称之为 ”增量式“,但是我在其它文章中看到,很多称之为 “位置式”,最近被这两种方式弄得有点晕,请问如何理解“位置式”PID控制算法?   盼回复,谢谢!

出0入0汤圆

 楼主| 发表于 2015-5-19 08:01:15 | 显示全部楼层
xiaoyucumt 发表于 2015-5-18 17:07
楼主,最近刚触PID,看到你提到的这个公式: PID=KP*E[n] +KI*Sum(E[n]) +KD*(E[n]-E[n-1]),其中Sum()为 ...

PID=KP*E[n] +KI*Sum(E[n]) +KD*(E[n]-E[n-1]),其中Sum()为积分  这个是位置式,增量式是两边取微分,请参考PID的其它资料

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2015-5-21 14:43:44 | 显示全部楼层
coleyao 发表于 2015-5-19 08:01
PID=KP*E[n] +KI*Sum(E[n]) +KD*(E[n]-E[n-1]),其中Sum()为积分  这个是位置式,增量式是两边取微分,请 ...

谢谢,楼主~

出0入0汤圆

发表于 2015-7-6 08:38:21 | 显示全部楼层
顶楼主,昨天我测试了传统PID和楼主的方法,发现PID非常难调,总是振荡。楼主的方法调整3~4次就稳定了。比较好调试。是一个很好的方法。也谢谢楼主的分享。

出0入0汤圆

发表于 2015-7-6 10:50:11 | 显示全部楼层
谢谢楼主分享,收藏了

出0入0汤圆

发表于 2015-7-6 10:58:05 | 显示全部楼层
搂主好人,谢谢分享

出0入8汤圆

发表于 2015-7-6 12:44:28 | 显示全部楼层
现在想玩一下温控~楼主是用什么设备加热以及检测的呢~手头上没有装备~楼主有好的推荐下

出0入0汤圆

 楼主| 发表于 2015-7-6 20:15:02 | 显示全部楼层
justdomyself 发表于 2015-7-6 12:44
现在想玩一下温控~楼主是用什么设备加热以及检测的呢~手头上没有装备~楼主有好的推荐下 ...

加热用加热膜,交直流的都可以,温度检测用DS18B20就好了。

出0入0汤圆

发表于 2015-8-14 01:03:27 | 显示全部楼层
学习了。很有应用价值。

出0入0汤圆

发表于 2015-9-3 13:20:23 | 显示全部楼层
整定pid参数应该有一个统一的方法,但是目前基本都是用试凑法。
楼主给提供了一种新的思路。值得好好学习一下。

出0入0汤圆

发表于 2015-9-6 13:04:41 | 显示全部楼层
这个要学习!一定要看!

出0入42汤圆

发表于 2016-5-17 15:24:20 | 显示全部楼层
楼主看了你的软件说明 你的位置式PID和增量式PID公式一样只是增量式输出为增量,位置式增量式公式就是传统的增量式公式 ,这几个控温哪个效果好一些啊,还有我用你的软件仿真只能看到绿色线条其他颜色的都没有,怎么回事啊

出0入0汤圆

发表于 2016-11-2 08:30:32 | 显示全部楼层
学习了,好东西

出0入0汤圆

发表于 2018-3-14 16:30:30 | 显示全部楼层
没有说明,改了数据不动,收藏以后搞了再用
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 13:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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