资源简介
一个模糊PID温度控制算法源代码
代码片段和文件信息
#include
#include
#include
#include “pid_fuzzy.h“
//注1:自适应模糊pid最重要的就是论域的选择,要和你应该控制的对象相切合
//注2:以下各阀值、限幅值、输出值均需要根据具体的使用情况进行更改
//注3:因为我的控制对象惯性比较大,所以以下各部分取值较小
//论域e:[-55] ec:[-0.50.5]
//误差的阀值,小于这个数值的时候,不做PID调整,避免误差较小时频繁调节引起震荡
#define Emin 0.0
#define Emid 0.08
#define Emax 0.6
//调整值限幅,防止积分饱和
#define Umax 5
#define Umin -5
//输出值限幅
#define Pmax 7200
#define Pmin 0
#define NB 0
#define NM 1
#define NS 2
#define ZO 3
#define PS 4
#define PM 5
#define PB 6
int kp[7][7]= { {PBPBPMPMPSZOZO}
{PBPBPMPSPSZOZO}
{PMPMPMPSZONSNS}
{PMPMPSZONSNMNM}
{PSPSZONSNSNMNM}
{PSZONSNMNMNMNB}
{ZOZONMNMNMNBNB}
};
int kd[7][7]= { {PSNSNBNBNBNMPS}
{PSNSNBNMNMNSZO}
{ZONSNMNMNSNSZO}
{ZONSNSNSNSNSZO}
{ZOZOZOZOZOZOZO}
{PBNSPSPSPSPSPB}
{PBPMPMPMPSPSPB}
};
int ki[7][7]= { {NBNBNMNMNSZOZO}
{NBNBNMNSNSZOZO}
{NBNMNSNSZOPSPS}
{NMNMNSZOPSPMPM}
{NMNSZOPSPSPMPB}
{ZOZOPSPSPMPBPB}
{ZOZOPSPMPMPBPB}
};
/**************求隶属度(三角形)***************/
float FTri(float xfloat afloat bfloat c)//FuzzyTriangle
{
if(x<=a)
return 0;
else if((a return (x-a)/(b-a);
else if((b return (c-x)/(c-b);
else if(x>c)
return 0;
else
return 0;
}
/*****************求隶属度(梯形左)*******************/
float FTraL(float xfloat afloat b)//FuzzyTrapezoidLeft
{
if(x<=a)
return 1;
else if((a return (b-x)/(b-a);
else if(x>b)
return 0;
else
return 0;
}
/*****************求隶属度(梯形右)*******************/
float FTraR(float xfloat afloat b)//FuzzyTrapezoidRight
{
if(x<=a)
return 0;
if((a return (x-a)/(b-a);
if(x>=b)
return 1;
else
return 1;
}
/****************三角形反模糊化处理**********************/
float uFTri(float xfloat afloat bfloat c)
{
float yz;
z=(b-a)*x+a;
y=c-(c-b)*x;
return (y+z)/2;
}
/*******************梯形(左)反模糊化***********************/
float uFTraL(float xfloat afloat b)
{
return b-(b-a)*x;
}
/*******************梯形(右)反模糊化***********************/
float uFTraR(float xfloat afloat b)
{
return (b-a)*x +a;
}
/**************************求交集****************************/
float fand(float afloat b)
{
return (a}
/**************************求并集****************************/
float forr(float afloat b)
{
return (a}
float ec;
/*========== PID计算部分 ======================*/
int PID_realize(PID *structpiduint16_t suint16_t in)
{
float pwm_var;//pwm调整量
float iError;//当前误差
float setinput;
//计算隶属度表
float es[7]ecs[7]e;
float form[7][7];
int i=0j=0;
int MaxX=0MaxY=0;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-12-12 18:04 一个模糊PID温度控制算法源代码\
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\
文件 28 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\COMMIT_EDITMSG
文件 304 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\config
文件 73 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\desc
文件 23 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\HEAD
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\hooks\
文件 478 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\applypatch-msg.sample
文件 896 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\commit-msg.sample
文件 189 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\post-update.sample
文件 424 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\pre-applypatch.sample
文件 1642 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\pre-commit.sample
文件 1348 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\pre-push.sample
文件 4951 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\pre-reba
文件 544 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\pre-receive.sample
文件 1239 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\prepare-commit-msg.sample
文件 3610 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\hooks\update.sample
文件 305 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\index
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\info\
文件 240 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\info\exclude
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\logs\
文件 678 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\logs\HEAD
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\logs\refs\
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\logs\refs\heads\
文件 529 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\logs\refs\heads\master
文件 155 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\logs\refs\heads\test
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\logs\refs\remotes\
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\logs\refs\remotes\origin\
文件 181 2018-11-06 09:17 一个模糊PID温度控制算法源代码\.git\logs\refs\remotes\origin\HEAD
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\ob
目录 0 2020-12-12 08:40 一个模糊PID温度控制算法源代码\.git\ob
............此处省略103个文件信息
相关资源
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- TCP/IP客户端和服务器端源代码,好用
- 交互式计算机图形学 第六版 OpenGL源代
- 数据结构教程李春葆第五版书中例题
- 三次样条插值类源代码!
- diy写字机grbl v1.1源代码
- pid控制电机
- C语言常用算法源代码
- PID算法.c
- 关于LED制作的源代码合集(38套)
-
STM32-ba
se64加密源代码 - 51超声波避障源代码
- 一个C++实现的源代码行数统计工具
- ZZULIOJ部分答案C语言免费.7z
- 吉他调音软件源代码
- 连连看源代码C语言版
- AVR单片机SPI通讯程序 (C语言源代码)
- Visual+C++数字图像处理-谢凤英-源代码
- 大富翁源代码
- VC++ 中国象棋经典游戏源代码
- C语言斗地主源代码
- C++程序源代码--21点的扑克牌游戏
- 循环冗余校验码(CRC)计算源代码合
- 可解码所有jpeg格式图片的开源JPEG解码
- 通用弹道仿真计算程序(简版)V1.0
- C语言模糊控制程序
- 数据结构算法与应用--C++语言描述 书
- c++ 飞机订票系统设计及分析包含源代
- FPS射击游戏《林海雪原》完整c++源代
评论
共有 条评论