• 大小: 5.05KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-02-22
  • 标签: Control  pid  c  c++  嵌入式  

资源简介

fuzzy-PID-controller-master

PID 控制算法实现

fuzzy-PID-controller
This repository uses C to implement a fuzzy PID controller to automatically tune PID parameters Kp,Ki and Kd.


资源截图

代码片段和文件信息


#include“fuzzy_PID.h“


FuzzyPID::FuzzyPID(float e_maxfloat de_maxfloat kp_maxfloat ki_maxfloat kd_maxfloat Kp0float Ki0float Kd0):
target(0)actual(0)emax(e_max)demax(de_max)delta_Kp_max(kp_max)delta_Ki_max(ki_max)delta_Kd_max(kd_max)e_mf_paras(NULL)de_mf_paras(NULL)
Kp_mf_paras(NULL)Ki_mf_paras(NULL)Kd_mf_paras(NULL)
{
   e=target-actual;
   e_pre_1=0;
   e_pre_2=0;
   de=e-e_pre_1;
   Ke=(N/2)/emax;
   Kde=(N/2)/demax;
   Ku_p=delta_Kp_max/(N/2);
   Ku_i=delta_Ki_max/(N/2);
   Ku_d=delta_Kd_max/(N/2);
   mf_t_e=“No type“;
   mf_t_de=“No type“;
   mf_t_Kp=“No type“;
   mf_t_Ki=“No type“;
   mf_t_Kd=“No type“;
   Kp=Kp0;
   Ki=Ki0;
   Kd=Kd0;
   A=Kp+Ki+Kd;
   B=-2*Kd-Kp;
   C=Kd;
}

FuzzyPID::FuzzyPID(float *fuzzyLimitfloat *pidInitVal)
{
target=0;
actual=0;
e=0;
e_pre_1=0;
    e_pre_2=0;
    de=e-e_pre_1;
emax=fuzzyLimit[0];
demax=fuzzyLimit[1];
delta_Kp_max=fuzzyLimit[2];
delta_Ki_max=fuzzyLimit[3];
delta_Kd_max=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-06-28 07:28  fuzzy-PID-controller-master\
     文件         135  2017-06-28 07:28  fuzzy-PID-controller-master\README.md
     文件       10863  2017-06-28 07:28  fuzzy-PID-controller-master\fuzzy_PID.cpp
     文件        2651  2017-06-28 07:28  fuzzy-PID-controller-master\fuzzy_PID.h
     文件        2122  2017-06-28 07:28  fuzzy-PID-controller-master\main.cpp

评论

共有 条评论