打印

水位控制的pid调节问题

[复制链接]
2077|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuandaoxy|  楼主 | 2012-2-19 19:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原来用pid做过恒温度控制,效果还行,主要是使用pid控制pwm调节占空比

这次没有pwm,就是dac直接输出4-20ma,给调节阀,问题出在衡水位,调节部分

阀门好像没有一个维稳的过程,不是全关,就是全开,下面是代码片段

else                           //如果是在1cm范围内,则运行PID计算
      
                   {  
                       for(i=0;i<10;i++)
         
                            {
        
                             
        s=u;
                                rin = s;                      // Read Input  
                                rout = PIDCalc ( &spid,rin ); // Perform PID Interation  
                             }  
                                    if (high_time<=100)
           
                                   { high_time=(uchar)(rout/800);
           
         IDA1=(high_time/100*1697)+351;}
         
                                    else  
                                             high_time=100;  
                                             low_time= (100-high_time);
                                             IDA1=2048;
            
              
                     }

high_time是温控时用的我理解在这里就是开阀的角度和开阀行程的占空比,不知对否
然后根据high_time反推IDA1的数值,但是好像变化很小,肯定是哪里出问题了
哪位指点一下,谢谢
顺便解释一下上面的code

IDA1=(high_time/100*1697)+351;

351输出4ma,关闭阀门,也就是开阀的基准值,

1697是开阀的行程,2048全开,减去351就是1697

(high_time/100*1697)=pid算出的微调量


下面这3句话就是出问题的地方,老跳进去把阀门全打开

                                            high_time=100;  
                                             low_time= (100-high_time);
                                             IDA1=2048;

还请大家拍砖

相关帖子

沙发
wangbowen| | 2013-6-27 18:59 | 只看该作者
有仿真程序吗?

使用特权

评论回复
板凳
zhaohe2001| | 2013-7-4 16:49 | 只看该作者
只用PI试试

使用特权

评论回复
地板
wu760324| | 2013-7-8 22:57 | 只看该作者
不错,学习了!

使用特权

评论回复
5
copper319| | 2013-7-31 14:14 | 只看该作者
看看。。。。。。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

843

主题

1029

帖子

4

粉丝