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

[复制链接]
2171|24
 楼主| Mattheww 发表于 2018-2-28 15:21 | 显示全部楼层 |阅读模式

#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;
}
Erichk 发表于 2018-2-28 15:23 | 显示全部楼层
就是普通的PID啊
Thorald 发表于 2018-2-28 15:34 | 显示全部楼层
这个pid是用来打算控制什么的呢  ?
xietingfeng 发表于 2018-2-28 17:03 | 显示全部楼层
你需要解释哪个?
suzhanhua 发表于 2018-2-28 17:03 | 显示全部楼层
增量式PID
mituzu 发表于 2018-2-28 17:04 | 显示全部楼层
楼主对PID有什么疑问
hellosdc 发表于 2018-2-28 17:04 | 显示全部楼层
楼主直接调用这个函数吧。
uiint 发表于 2018-2-28 17:05 | 显示全部楼层
楼主需要pid控制什么?
xietingfeng 发表于 2018-2-28 17:05 | 显示全部楼层
就是正常的PID算法。
suzhanhua 发表于 2018-2-28 17:05 | 显示全部楼层
这个算法的计算量比较小。
uiint 发表于 2018-2-28 17:05 | 显示全部楼层
需要什么样的反馈量呢?
hellosdc 发表于 2018-2-28 17:05 | 显示全部楼层
PIDcompute在这个函数里面直接设计你需要的数据
mituzu 发表于 2018-2-28 17:05 | 显示全部楼层
最主要的就是PID三个参数的设置。
suzhanhua 发表于 2018-2-28 21:46 | 显示全部楼层
这个程序有什么问题吗
biechedan 发表于 2018-2-28 21:46 | 显示全部楼层
正常的PID算法
pl202 发表于 2018-2-28 21:47 | 显示全部楼层
楼主需要解释哪里?
selongli 发表于 2018-2-28 21:47 | 显示全部楼层
这个调节参数就行。
pixhw 发表于 2018-2-28 21:48 | 显示全部楼层
你需要调定什么程序?
suzhanhua 发表于 2018-2-28 21:48 | 显示全部楼层
不能执行吗?
biechedan 发表于 2018-2-28 21:48 | 显示全部楼层
输入参数就可以运行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

500

帖子

0

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