[应用相关] 求解释PID程序

[复制链接]
 楼主| liuzaiy 发表于 2019-9-1 22:32 | 显示全部楼层 |阅读模式

#include "pid.h"

float PP=0.5,II=0.5,DD=0;

double SumError=0,PrevError=0,LastError=0;
int dError=0,Error=0;

void PID_init(void)
{
        Error=0;SumError=0;LastError=0;
}

void PIDcompute(unsigned int Target,unsigned int Real)
{
  /*--------------------------------------------------------------------
根据设定及采集值进行计算PID调节,计算pwm输出值
--------------------------------------------------------------------*/
float j=0.0,i;

                Error =(Target-Real);                     
                SumError +=Error;                  
    dError=Error-LastError;
    LastError=Error;
            
                i=PP;
                j=Error*i;
                i=II;
                j=j+SumError*i;
                i=DD;
                j=j+dError*i;

                j=j/100;

         if(j>=hArrPwmVal)OutPwmValue=hArrPwmVal;
         else if(j<1)OutPwmValue=1;
         else OutPwmValue=j;
}
bqyj 发表于 2019-9-1 22:35 | 显示全部楼层
就是普通的PID啊
bqyj 发表于 2019-9-1 22:42 | 显示全部楼层
这个pid是用来打算控制什么的呢  ?
chuxh 发表于 2019-9-1 22:45 | 显示全部楼层

你需要解释哪个?
llljh 发表于 2019-9-1 22:48 | 显示全部楼层

增量式PID
chenho 发表于 2019-9-1 22:51 | 显示全部楼层

楼主对PID有什么疑问
llljh 发表于 2019-9-1 22:54 | 显示全部楼层

楼主直接调用这个函数吧。
huanghuac 发表于 2019-9-1 22:59 | 显示全部楼层
楼主需要pid控制什么?
bqyj 发表于 2019-9-1 23:01 | 显示全部楼层
就是正常的PID算法。
stly 发表于 2019-9-1 23:04 | 显示全部楼层

这个算法的计算量比较小。
happy_10 发表于 2019-9-1 23:07 | 显示全部楼层
需要什么样的反馈量呢?
bqyj 发表于 2019-9-1 23:09 | 显示全部楼层
PIDcompute在这个函数里面直接设计你需要的数据
wenfen 发表于 2019-9-1 23:12 | 显示全部楼层

最主要的就是PID三个参数的设置。
songqian17 发表于 2019-9-1 23:17 | 显示全部楼层
这个程序有什么问题吗
huanghuac 发表于 2019-9-1 23:20 | 显示全部楼层

正常的PID算法
chenho 发表于 2019-9-1 23:22 | 显示全部楼层
楼主需要解释哪里?
huanghuac 发表于 2019-9-1 23:25 | 显示全部楼层
这个调节参数就行。
zhuhuis 发表于 2019-9-1 23:28 | 显示全部楼层
你需要调定什么程序?
chenho 发表于 2019-9-1 23:32 | 显示全部楼层
不能执行吗?
huwr 发表于 2019-9-1 23:35 | 显示全部楼层

输入参数就可以运行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

735

主题

7546

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部