[STM32F1] 求解释PID程序

[复制链接]
 楼主| liuzaiy 发表于 2021-7-30 22:17 | 显示全部楼层 |阅读模式
#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;
}
wyjie 发表于 2021-7-30 22:19 | 显示全部楼层
就是普通的PID啊
xxrs 发表于 2021-7-30 22:22 | 显示全部楼层
这个pid是用来打算控制什么的呢  ?
chuxh 发表于 2021-7-30 22:24 | 显示全部楼层
你需要解释哪个?
llljh 发表于 2021-7-30 22:27 | 显示全部楼层
增量式PID
chenho 发表于 2021-7-30 22:29 | 显示全部楼层
楼主对PID有什么疑问
llljh 发表于 2021-7-30 22:31 | 显示全部楼层
楼主直接调用这个函数吧。
huanghuac 发表于 2021-7-30 22:34 | 显示全部楼层
楼主需要pid控制什么?
bqyj 发表于 2021-7-30 22:35 | 显示全部楼层
就是正常的PID算法。
stly 发表于 2021-7-30 22:37 | 显示全部楼层
这个算法的计算量比较小。
happy_10 发表于 2021-7-30 22:39 | 显示全部楼层
需要什么样的反馈量呢?
bqyj 发表于 2021-7-30 22:40 | 显示全部楼层
PIDcompute在这个函数里面直接设计你需要的数据
wenfen 发表于 2021-7-30 22:43 | 显示全部楼层
最主要的就是PID三个参数的设置。
dingy 发表于 2021-7-30 22:44 | 显示全部楼层
这个程序有什么问题吗
huanghuac 发表于 2021-7-30 22:46 | 显示全部楼层
正常的PID算法
chuxh 发表于 2021-7-30 22:49 | 显示全部楼层
楼主需要解释哪里?
huanghuac 发表于 2021-7-30 22:52 | 显示全部楼层
这个调节参数就行。
zhuhuis 发表于 2021-7-30 22:54 | 显示全部楼层
你需要调定什么程序?
wenfen 发表于 2021-7-30 22:58 | 显示全部楼层
不能执行吗?
guoyt 发表于 2021-7-30 23:00 | 显示全部楼层
输入参数就可以运行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

735

主题

7546

帖子

2

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