sange 发表于 2010-9-15 17:23:35

标记。。。。

rodger 发表于 2010-9-15 18:05:18

good & mark

326498096 发表于 2010-11-10 08:44:35

good & mark

lindabell 发表于 2010-11-10 10:58:11

前些日子弄一个控制电机转速的PID,一直没有弄好。值的参考!!

xqlftg 发表于 2010-11-14 23:49:21

mark

liusoldier 发表于 2010-11-15 07:00:21

这个要MARK一下。

ycwjl728 发表于 2010-12-18 16:40:36

Mark!
感谢楼主!

liguanmao 发表于 2010-12-19 14:00:47

niu

xsydzw 发表于 2010-12-20 13:49:53

楼主是用什么仪器测量的呢?

mountainqy 发表于 2010-12-20 15:41:51

mark

k10k10 发表于 2010-12-27 22:07:40

mark

just_interest 发表于 2010-12-28 12:57:34

mark

lijintao 发表于 2010-12-28 13:15:43

赞一个!

harng 发表于 2011-1-12 09:57:50

mark

zuceyige 发表于 2011-1-12 10:16:10

mark!!!

pang7 发表于 2011-1-12 10:16:25

pid mark

728196 发表于 2011-1-12 10:40:32

mark

xczxwy 发表于 2011-1-12 10:42:21

以后也许用的上呢~~

miminzhang 发表于 2011-1-12 12:35:00

路过

deadline2012 发表于 2011-1-12 12:56:17

mk ,温度PID

kongan 发表于 2011-1-12 13:38:41

几号

hellotwty 发表于 2011-1-12 14:06:04

以后用到再来看看啊

eric_wang 发表于 2011-1-12 14:15:03

MARK PID

i7456 发表于 2011-1-12 15:12:42

PID mark

pinocchio 发表于 2011-1-12 16:35:28

PID在初始化的时候,把Error和SumError 初始化为0,这样在第一次运行PID的时候,Error会很大,同时造成SumError也很大,对处理结果影响很大,不知道这个怎么处理?还是不用管?

zuceyige 发表于 2011-1-12 17:22:15

好贴,学习!

wpnx 发表于 2011-1-12 18:25:37

mark

NUAA_hp 发表于 2011-1-12 18:47:36

挺好的~!

proco 发表于 2011-1-13 08:27:25

很好的资料,谢谢分享!

ju748 发表于 2011-1-17 19:02:04

这样好的帖子~一定要顶

jiabin1024 发表于 2011-1-18 14:03:23

讲的很清楚

abcdzhy 发表于 2011-1-18 18:47:54

mark

ZacharyGuo 发表于 2011-1-18 19:04:21

收藏~

yoko 发表于 2011-2-1 23:55:09

mark

saintyou 发表于 2011-2-2 14:56:58

回复【楼主位】fsmcu
-----------------------------------------------------------------------

mark

pwcpp 发表于 2011-2-3 01:39:45

找到一篇老外写的继电器法自整定PID,或许可以参考一下

点击此处下载 ourdev_614499E39LAH.pdf(文件大小:957K) (原文件名:Relay Method Automates PID Loop Tuning.pdf)

wukong 发表于 2011-2-8 14:41:44

mark

hizzx 发表于 2011-2-12 15:47:19

做个记号

gc56198 发表于 2011-2-12 20:36:37

mark

mosidao 发表于 2011-2-13 08:25:26

标记下呵呵

xiaolinr 发表于 2011-2-15 14:46:21

MARK11

03024003 发表于 2011-2-15 16:00:11

hao pid楼主牛

aahui 发表于 2011-2-19 21:47:40

治学态度严谨啊

fw190d9 发表于 2011-2-19 22:11:25

mark

gxy508 发表于 2011-2-23 14:51:12

mark

7120223 发表于 2011-2-23 20:15:34

看了还是有好多不理解的地方。
如何先确定kp,如楼主kp = 9.0时对应程序就是       
ppid.errk = (float)(ppid.sp - ppid.pv);//目标温度 - 当前温度
pterm = ppid.kp * ppid.errk;
输出ppid.Last_Out = pterm;
如当前温度79度,目标温度80度 那么pterm = 9.2 * 1;那么只是输出9.2么,取整9,500等分,只占有9/500 *200W = 3.6W
是输出这么小的瓦数么,感觉我应该是错了啊,但不知哪里出错,望指点!

omlarn 发表于 2011-2-23 22:34:43

MARK

CHENSHENGG 发表于 2011-2-26 11:32:44

哇,好帖,学习了

red_pig 发表于 2011-2-26 12:36:17

mark

leif 发表于 2011-2-26 15:19:22

mark

yywin 发表于 2011-2-26 17:05:32

很好的资料,谢谢分享!

Hello_World 发表于 2011-2-27 02:35:19

mark

myhonour 发表于 2011-2-28 10:48:46

mark

bmw53 发表于 2011-3-4 07:55:29

能用PROTEUS做仿真吗,楼主努力。

wjkly 发表于 2011-3-4 09:19:14

学习了

Chester 发表于 2011-3-7 09:47:33

顶LZ

xinxinEC 发表于 2011-3-8 13:58:11

请教楼主:可控硅的型号?

mawanli25 发表于 2011-3-9 12:32:53

很好的资料,谢谢楼主,及同志们!

jt6245 发表于 2011-3-15 21:45:47

mark,学习!

lcmdw 发表于 2011-3-16 13:43:02

mark pid

xdco 发表于 2011-3-18 01:42:16

mark

fesu02 发表于 2011-3-18 13:17:00

标记

yu_wen 发表于 2011-3-18 16:06:52

mark

hwdpaley 发表于 2011-3-22 14:38:26

现在才看到,也不迟

zhaoguoqing297 发表于 2011-3-25 10:38:53

mark with bigPEN

cunlingwang 发表于 2011-3-30 12:00:41

顶,受益匪浅啊!

dwywwz 发表于 2011-4-15 15:27:14

我弄了一个控温系统,调节p无论多大都不会出现震荡,不知啥原因啊

avr-job 发表于 2011-4-15 15:42:21

mark

csqfine 发表于 2011-4-15 18:37:04

mark

user_cou 发表于 2011-4-23 13:05:37

回复【楼主位】fsmcu
-----------------------------------------------------------------------

楼主,pid 的参数的计算周期怎么确定的,上面看到是5秒。

原文是:

——————————
因为是对加热的铁块温度进行控制,属于滞后效应系统,所以采样周期先定为5秒(这里指的是PID计算的周期,注意我的温度采样是时时的),
——————————

ithink987 发表于 2011-5-2 11:38:33

mark下

zyqcome 发表于 2011-5-2 11:59:16

好东东,收藏了

ithink987 发表于 2011-5-2 19:57:33

收藏之,确实很优秀的帖子

rafd 发表于 2011-5-2 22:09:25

支持

zprs 发表于 2011-5-2 22:29:18

mark

mmy168 发表于 2011-5-5 13:58:13

好文

bluecat322 发表于 2011-5-6 14:32:09

mark

wkgwz 发表于 2011-5-6 16:12:43

mark

zyw4210 发表于 2011-5-9 18:51:13

回复【楼主位】fsmcu
-----------------------------------------------------------------------
好东西呀,刚好用上,楼主还讲的这么详细,太感谢了

szq790601 发表于 2011-5-17 12:24:21

我按照楼主的说法做实验,折腾了一夜也没个结果,苦恼中。
我的加热设备是一个500w的电热块,被加热的设备是一个约3斤重的铝块;
也用MAX6675采集温度,用可控硅控制加热,通过串口将数据输出到电脑查看工作曲线;
也是5秒钟计算一次PID,定时器10ms中断一次,5秒钟中断500次;
通过计算得出5秒钟要导通的次数来控制加热量;
以上跟楼主做实验的设备原理基本上是一样的;

源程序如下:

struct pid
{
float sp;
float pv;
float errk;
float errk_1;
float errk_2;
float      sum;
float      kp;
float      ki;
float      kd;
float      Last_Out;
};
struct pid ppid;

//PID计算
void PID_Cal(void)
{
float pterm,iterm,dterm;

//把当前的温度和设定的目标温度定义好
ppid.pv = f_temp;                        //当前温度
ppid.sp = 110;                           //设定的温度

ppid.kp = 200;                           //先求临界震荡
ppid.ki = 0;
ppid.kd = 0;

//PID数学模型
//u(t) = kp * e(t) + ki * + kd *

ppid.errk = (float)(ppid.sp - ppid.pv);         //偏差 = 设定温度 - 当前温度

pterm = ppid.kp * ppid.errk;                  //比例系数 * 偏差   kp * e(t)

ppid.sum += ppid.errk;                        // e(1) + e(2) + ....+ e(t)
iterm = ppid.ki * ppid.sum;                     //ki *

pid_sum = ppid.sum;

dterm = ppid.kd * (ppid.errk_1 - ppid.errk_2);    //kd *    这里与楼主源程序有点区别,源程序是(ppid.errk - ppid.errk_1)

ppid.Last_Out = pterm + iterm + dterm;    //u(t) = kp * e(t) + ki * + kd *

ppid.errk_2 = ppid.errk_1;
ppid.errk_1 = ppid.errk;

if(ppid.Last_Out > SampleT)
ppid.Last_Out = SampleT;
else if(ppid.Last_Out < 0)
ppid.Last_Out = 0;

sprintf(tx_buf,"%5.2f\n",f_temp);//输出测量的数据
v_sent_uart1_str(tx_buf,0);
   
}



开始试验,

我要控制达到的温度是110,而我实验比例调节时(Pi,Pd=0),只有KC = 200时,才会震荡,而KC低于70时,温度根本达不到设定的110,楼主的9.3是怎么来的?当kp=9.3时,当温度接近设

定温度时,如相差2度,则pterm = ppid.kp * ppid.errk=9.3*2=18.6,也就是每五秒钟只导通18.6/500*5=0.186秒?可能我理解的不对,可不知道错在哪里。
我试验的数据如图,我的图形远没有楼主的那么平滑。

根据数据我计算的PID参数:

振荡周期为:Pc=51*5=255
T=5s
Td=0.12Pc=30.6
Ti=0.5Pc=127.5
Kp=0.65KC=130
Kd=Kp*Td/T=795
Ki=Kp*T/Ti=5.1

把这些数据带到程序中,结果一运行,温度到180度都没停下,吓得我赶紧断了电。


另,关于pi的算法,根据公式ki * ,我从最低温加热到设定的温度,这个值会很大,我的达到了几千,再小的Ki与他相乘也会变得

很大,是这样计算的吗?

求高人指点一下我,可怜我昨晚一直做实验到天亮。

http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_640383GV74AA.JPG
(原文件名:临界震荡.JPG)

littlepig 发表于 2011-5-17 23:39:45

mark

wxx116zh 发表于 2011-5-18 09:26:48

MARK

tuoyinhe 发表于 2011-5-28 10:16:46

mark

hlt512 发表于 2011-6-1 20:49:39

MARK

leang521 发表于 2011-6-1 21:58:51

mark

cong2010 发表于 2011-6-3 10:42:47

帖子很棒

feng200808 发表于 2011-6-3 10:47:47

留名

hydraulics 发表于 2011-6-3 14:10:50

mark

anvy178 发表于 2011-6-4 09:16:20

MARK

lcmdw 发表于 2011-6-4 16:04:51

mark

updown 发表于 2011-6-4 22:43:42

remind

rafd 发表于 2011-6-4 23:07:56

支持

waking 发表于 2011-6-20 08:44:13

MARK

lhb0709 发表于 2011-6-24 16:15:09

Ziegler-Nichols参数

控制器                Kp                Ti                Td
P                0.50*Kc                /                /
PD                0.65*Kc                /                0.12*Pc
PI                0.45*Kc                0.85*Pc                /
PID                0.65*Kc                0.5*Pc                0.12*Pc

我先做PD实验:
根据临界增益KC=9.2 震荡周期Pc=225秒,计算出Kp=5.98,Td=27秒,公式Kd=Kp*Td/T=5.98*27/5=32.392
**********************************************************************************************
参数表怎么来的?求高手解答~~~~

bingshuihuo888 发表于 2011-6-24 22:03:06

标记!!!!!

vjcmain 发表于 2011-6-24 22:07:01

mark

beiguoqishi 发表于 2011-6-26 23:01:04

怎么没有matlab的程序啊,期待楼主共享啊

mengzhihu2 发表于 2011-6-27 00:49:54

理论,实践贴,先mark先了

chushichongyu 发表于 2011-6-27 01:52:57

自动化的学生飘过。。。

pcwhy 发表于 2011-6-27 02:09:19

呵呵,好帖子啊、。
页: 1 2 3 [4] 5 6 7 8
查看完整版本: 温控PID参数调节实验过程