amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
楼主: sail_007

标准的PID处理例程

  [复制链接]
发表于 2010-3-5 13:44:25 | 显示全部楼层
pid mark
发表于 2010-3-9 17:05:41 | 显示全部楼层
记号,很适合我这样的PID盲
发表于 2010-3-15 11:37:52 | 显示全部楼层
这是位置式PID???
发表于 2010-3-15 13:38:44 | 显示全部楼层
mark
发表于 2010-3-15 16:37:46 | 显示全部楼层
写的有些复杂,先收下了

下面是我的PID程序,使用在Atmega16上,ICCAVR

#define Kp (long)500  //MP项放大1000倍
#define Ti 200 //ms   //Mi项放大1000倍
#define Tc 1 //ms

int ucOCR=0;
unsigned int ad[10]={0,0,0,0,0,0,0,0,0,0};

//在定时中断中处理(定时周期=Tc)
#pragma interrupt_handler timer0_ovf_isr:iv_TIMER0_OVF
void timer0_ovf_isr(void)
{
   int Ef0=0;
   static long Mi=0;
   long Mp=0;
               
   unsigned char i;
   unsigned char cSREG = SREG; /* 保存全局中断标志*/
   _CLI(); /* 禁止中断*/
   
   ad[1] = read_adc(1);//读取控制目标当前AD值
   Ef0 = DestAD - ad[1] ;//DestAD为控制目标的预期AD值
   Mp = Kp * Ef0;
   //遇限制消弱积分法
   if(Mi<=0)
   {   
      if(Ef0>0)  Mi += Mp * Tc / Ti;
   }
   else if(Mi>=255000)
   {
      if(Ef0<0)  Mi += Mp * Tc / Ti;
   }
   else
      Mi += Mp * Tc / Ti;
   ucOCR = (Mp + Mi)/1000 ;
   if(ucOCR>0xFF) ucOCR=0xFF;//ucOCR的有效范围为0~0xFF
   else if(ucOCR<0) ucOCR=0;
   OCR2 = ucOCR;//控制PWM输出          

   SREG = cSREG; /* 恢复全局中断标志*/

}
发表于 2010-3-15 17:46:37 | 显示全部楼层
记号
发表于 2010-3-27 16:14:26 | 显示全部楼层
很好很强大
发表于 2010-4-11 17:24:17 | 显示全部楼层
MARK
发表于 2010-4-12 17:02:58 | 显示全部楼层
做个记号,用时再来看
发表于 2010-4-12 17:22:05 | 显示全部楼层
mark
发表于 2010-4-24 14:56:33 | 显示全部楼层
MARK!
发表于 2010-4-24 15:01:37 | 显示全部楼层
mark
发表于 2010-5-3 16:22:00 | 显示全部楼层
mark
发表于 2010-5-3 16:40:07 | 显示全部楼层
此贴必顶!
发表于 2010-6-2 10:59:43 | 显示全部楼层
mark
发表于 2010-6-2 11:49:43 | 显示全部楼层
mark
发表于 2010-6-2 15:27:17 | 显示全部楼层
mark
发表于 2010-6-2 16:10:36 | 显示全部楼层
晕晕 慢慢研究
发表于 2010-6-2 21:06:01 | 显示全部楼层
不错!!
发表于 2010-6-2 21:59:14 | 显示全部楼层
就不能把注解搞清楚一点啊
发表于 2010-6-2 22:05:14 | 显示全部楼层
不错。慢慢研究一下
发表于 2010-6-3 14:56:10 | 显示全部楼层
学习一下
发表于 2010-6-3 14:56:26 | 显示全部楼层
学习一下
发表于 2010-6-9 18:21:14 | 显示全部楼层
mark
发表于 2010-6-9 19:54:40 | 显示全部楼层
马克一下
发表于 2010-6-15 10:30:19 | 显示全部楼层
mark
发表于 2010-7-2 13:59:45 | 显示全部楼层
mark
发表于 2010-8-20 16:27:31 | 显示全部楼层
亲爱的LZ,帮个忙。我正在做个水温控制系统 设置温度 用PID算法 控制加热和制冷。求一份指导程序 万分感谢!!!
发表于 2010-8-20 16:51:17 | 显示全部楼层
pid   good
发表于 2010-8-20 16:56:34 | 显示全部楼层
回复【楼主位】sail_007
-----------------------------------------------------------------------

亲爱的LZ,帮个忙。我正在做个水温控制系统 设置温度 用PID算法 控制加热和制冷。求一份指导程序 万分感谢!!!
发表于 2010-8-20 17:23:28 | 显示全部楼层
mark
发表于 2010-8-22 19:49:06 | 显示全部楼层
还要回来看的,记下来先
发表于 2010-8-24 16:44:38 | 显示全部楼层
谢谢分享,好好读一下
发表于 2010-8-24 16:48:27 | 显示全部楼层
有用再看……
发表于 2010-8-24 18:44:50 | 显示全部楼层
做个标志,还会再来!!
发表于 2010-8-26 14:54:11 | 显示全部楼层
学习
发表于 2010-8-28 21:49:26 | 显示全部楼层
mark
发表于 2010-8-29 08:55:41 | 显示全部楼层
闭环 相当有用!
发表于 2010-9-17 15:29:54 | 显示全部楼层
mark
发表于 2010-9-17 16:06:35 | 显示全部楼层
不懂
发表于 2010-9-18 14:44:24 | 显示全部楼层
MARK
发表于 2010-9-25 15:28:04 | 显示全部楼层
mark
发表于 2010-9-25 16:15:46 | 显示全部楼层
不错,学习啦
发表于 2010-9-26 15:05:42 | 显示全部楼层
回复【3楼】sail_007
-----------------------------------------------------------------------

不错,学习
发表于 2010-10-6 11:09:56 | 显示全部楼层
mark
发表于 2010-10-6 11:29:11 | 显示全部楼层
mark
发表于 2010-10-8 16:22:38 | 显示全部楼层
标记 mark
发表于 2010-10-8 17:40:35 | 显示全部楼层
mark
发表于 2010-10-9 00:06:59 | 显示全部楼层
没用过,不懂,学习
发表于 2010-10-9 08:30:21 | 显示全部楼层
mark
发表于 2010-10-9 09:21:41 | 显示全部楼层
MARK ,pid
发表于 2010-10-9 09:27:38 | 显示全部楼层
mark
发表于 2010-10-9 09:38:58 | 显示全部楼层
mark
发表于 2010-10-9 10:50:03 | 显示全部楼层
mark
发表于 2010-10-13 19:57:37 | 显示全部楼层
mark
发表于 2010-11-15 23:53:04 | 显示全部楼层
啊,PID!
发表于 2010-11-15 23:59:07 | 显示全部楼层
单片机的 PID 用汇编写应该速度要快些吧~!
发表于 2010-11-16 10:50:37 | 显示全部楼层
mark
发表于 2010-11-16 12:50:22 | 显示全部楼层
MARK
发表于 2010-11-16 13:21:40 | 显示全部楼层
现在在上理论课,很是费解,谢谢各位的讲解!!
发表于 2010-11-17 18:15:25 | 显示全部楼层
MARK
发表于 2010-11-18 12:43:17 | 显示全部楼层
PID记号  估计以后用得着,谢谢楼主分享。
发表于 2010-11-18 15:42:47 | 显示全部楼层
写得比较好
发表于 2010-11-18 16:19:43 | 显示全部楼层
学习
发表于 2010-11-18 16:25:48 | 显示全部楼层
顶一个
发表于 2010-11-18 20:03:37 | 显示全部楼层
学习
发表于 2010-11-23 12:41:45 | 显示全部楼层
mark
发表于 2010-11-23 13:27:45 | 显示全部楼层
智能车上的PID都不知道是如何写的了
发表于 2010-11-23 15:26:08 | 显示全部楼层
mark
发表于 2010-11-24 20:32:24 | 显示全部楼层
mark
发表于 2010-11-25 09:52:25 | 显示全部楼层
mark
发表于 2010-11-26 12:53:24 | 显示全部楼层
回复【8楼】livanfield
主函数里 pidinit ( &amp;spid );                  //  initialize structure   
    spid.proportion = 0.5;              //  set pid coefficients   
spid既然是指向结构的指针,其访问应该是spid-&gt;proportion吧?
-----------------------------------------------------------------------

哥哥,这不是指针
发表于 2010-11-26 13:25:37 | 显示全部楼层
mark
发表于 2010-11-26 15:04:37 | 显示全部楼层
mark
发表于 2010-11-26 15:21:48 | 显示全部楼层
PID记号
发表于 2010-11-26 15:48:24 | 显示全部楼层
PID标记下,学习四轴有用
发表于 2010-11-26 19:59:00 | 显示全部楼层
mark
发表于 2010-12-1 14:34:14 | 显示全部楼层
PID mark
发表于 2010-12-9 19:42:48 | 显示全部楼层
mark
发表于 2010-12-9 22:04:56 | 显示全部楼层
回复【楼主位】sail_007  
-----------------------------------------------------------------------

标记下
发表于 2010-12-9 23:22:00 | 显示全部楼层
mark
发表于 2010-12-9 23:48:35 | 显示全部楼层
mark
发表于 2010-12-14 20:36:38 | 显示全部楼层
标记
发表于 2010-12-22 23:29:50 | 显示全部楼层
mark
发表于 2010-12-23 09:09:14 | 显示全部楼层
Mark!
发表于 2010-12-23 13:28:02 | 显示全部楼层
cool
发表于 2011-1-2 11:14:42 | 显示全部楼层
顶!
发表于 2011-1-2 13:24:54 | 显示全部楼层
mark、
发表于 2011-1-5 09:45:35 | 显示全部楼层
mark
发表于 2011-1-11 10:58:47 | 显示全部楼层
sPID.Proportion = 0.5;              //  Set PID Coefficients  
    sPID.Integral   = 0.5;  
    sPID.Derivative = 0.0;  


参数取得有点那个啥。。。
发表于 2011-3-8 11:17:07 | 显示全部楼层
学习中,顶
发表于 2011-3-11 16:00:32 | 显示全部楼层
好贴
发表于 2011-3-11 16:51:42 | 显示全部楼层
学习
发表于 2011-3-12 10:40:50 | 显示全部楼层
回复【楼主位】sail_007
-----------------------------------------------------------------------

MARK
发表于 2011-3-13 11:38:12 | 显示全部楼层
学习了。
发表于 2011-3-13 12:45:10 | 显示全部楼层
mark
发表于 2011-3-13 13:22:43 | 显示全部楼层
mark
发表于 2011-3-16 17:28:04 | 显示全部楼层
mark!
发表于 2011-3-16 17:54:12 | 显示全部楼层
mark一下啊。
发表于 2011-3-16 19:16:55 | 显示全部楼层
mark!
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 工信部备案:粤ICP备09047143号 公安备案:44190002001997(交互式论坛) )

GMT+8, 2018-6-18 06:27

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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