PID算法在应用中出了问题,谁帮指导下 点击:908 | 回复:12



沉睡

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 82回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2004年11月22日
发表于:2005-08-05 08:04:00
楼主
大家好: 我是个新人,对西门子的东西知道的不太多,在工程中用到PID算法,可是输出值和实际值有很大的偏差,工程的控制要求是: 1.模拟量温度输入AIW0(0-50℃) 2.确定控制温度范围在22℃ 3.PID输出值AQW0给变频器 4.直接取实际温度的换算作为过程变量 5.设定SPn=0.44 6.增益KC=0.22 7.采样时间TS=0.1秒 8.积分时间TI=30分 9.微分时间TD=0 以下是我做的程序:(STL) 主程序: LD SM0.0 CALL SBR_0 子程序: 1 LD SM0.1 MOVR DW#0.44, VD104 MOVR DW#0.22, VD112 MOVR DW#0.1, VD116 MOVR DW#30.0, VD120 MOVR DW#0.0, VD124 MOVB B#100, SMB34 ATCH INT_0, B#10 ENI 2 LD SM0.0 ITD AIW0, AC0 DTR AC0, AC0 /R DW#32000.0, AC0 MOVR AC0, VD100 3 LD I0.0 PID VB100, B#0 4 LD SM0.0 MOVR VD108, AC0 *R DW#32000.0, AC0 ROUND AC0, AC0 DTI AC0, AC0 MOVW AC0, AQW0 希望有经验的哥哥们指导指导,小弟在这里先作揖了.



沉睡

  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 82回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2004年11月22日
发表于:2005-08-05 08:54:00
1楼
哥哥们敲起你手中的键盘,不管什么,留下几个美妙的字符不可以吗?

唐僧

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 106回
  • 年度积分:0
  • 历史总积分:175
  • 注册:2002年11月15日
发表于:2005-08-05 09:10:00
2楼
输出值和实际值指什么? 你的程序没有对MX的处理,直接拿例程改的吧,在例程前一两页有一些重要的内容,要好好看看欧。

沉睡

  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 82回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2004年11月22日
发表于:2005-08-05 09:19:00
3楼
我就是说这个问题,我要对MX修改,我用指令MOVR 0.6 VD128去执行,之后数据还能刷新吗?

沉睡

  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 82回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2004年11月22日
发表于:2005-08-05 09:24:00
4楼
输出值就是AQW0的输出 实际的PID换算得到的值和输出值有差异,还不是偏差 差值大小不一样,随时间变化而变化

如火

  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-08-05 09:38:00
5楼
运行后,您有没有看到设定值SPn和反馈值VD100之间的差值是在增大还是减少,如果是不断增大,则修改gain的极性,如果是在不断减少,说明pid在正常调节,此时增大增益KC:VD112,或减少积分时间TI:VD120,可以加快调节,但是过了的话就会出现振荡。需要不断修改使调节过程比较正常。

沉睡

  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 82回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2004年11月22日
发表于:2005-08-05 09:46:00
6楼
谢谢哥哥指导,正在调试中.对了我记得上学的时候学的比例调节是减小偏差,积分作用消除系统稳态误差,微分作用是减小超调,减少调节时间,但是我这里怎么也弄不明白,PID换算的输出值和我预期的有很大的差异啊.到底怎么回事,我的设定值都是原理换算出来的,因该不会有太大的差异啊

唐僧

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 106回
  • 年度积分:0
  • 历史总积分:175
  • 注册:2002年11月15日
发表于:2005-08-05 10:10:00
7楼
PID指令每执行一次,MX都会被上次运算的MIn-1值更新.因此在PID运行中不要对MX修改,只能赋初值。再看一便手册\\指令集\PID指令。 在数据监控界面好好观察一下AIW0,VD100,VD128,VD132,VD108, AQW0的变化规律。

划天

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2003年3月31日
发表于:2005-08-05 10:11:00
8楼
呵呵,那既然出现了很大差异,那就是什么地方出问题了呗,可能你模型建得不对,什么地方没考虑到.计算值只是指导参考值,实际还是要慢慢调的

沉睡

  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 82回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2004年11月22日
发表于:2005-08-05 10:27:00
9楼
哥哥们说的有道理 但是我对越界值的计算非常准确 假设我现在是0℃,PID自动运行,29分钟后,基本输出最大10伏 我也纳闷了,他到底怎么搞的?为什么中间的不准确呢?

唐僧

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 106回
  • 年度积分:0
  • 历史总积分:175
  • 注册:2002年11月15日
发表于:2005-08-05 10:29:00
10楼
VD108=Kc(SPn-PVn)+Kc*Ts/Ti*(SPn-PVn)+MX =0.22*(0.44-VD100)+0.22*0.1/1800*(0.44-VD100)+VD128 这是S7200 PID模块TD=0时的算法,和你用来计算的一致吗?

沉睡

  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 82回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2004年11月22日
发表于:2005-08-05 10:32:00
11楼
差在MX,但是0时候的MX应该是设定值吧

沉睡

  • 精华:1帖
  • 求助:0帖
  • 帖子:23帖 | 82回
  • 年度积分:0
  • 历史总积分:208
  • 注册:2004年11月22日
发表于:2005-08-05 10:40:00
12楼
上面的三位哥哥,我已经加你们为工控挚友,以后还要向哥哥虚心请教,不要把我拒之门外哦 留下我的联系方式: 于彦博 大连光洋科技工程有限公司 yuyanbo411@163.com qq:1728938 以后长联系

热门招聘
相关主题

官方公众号

智造工程师