資源簡介
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
- 上一篇:STM32工業控制器常用元器件封裝
- 下一篇:光敏二極管傳感器資料
評論
共有 條評論