资源简介
专家PID与模糊PID的C语言实现,及文档 ,有算法实现,和原理
代码片段和文件信息
#define NB 0
#define NM 1
#define NS 2
#define ZO 3
#define PS 4
#define PM 5
#define PB 6
float uf(float xfloat afloat bfloat c)
{
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;
}
float cuf(float xfloat afloat bfloat c)
{ float yz;
z=(b-a)*x+a;
y=c-(c-b)*x;
return (y+z)/2;
}
float ufl(float xfloat afloat b)
{
if(x<=a)
return 1;
else if((a return (b-x)/(b-a);
else if(x>b)
return 0;
}
float cufl(float xfloat afloat b)
{
return b-(b-a)*x;
}
float ufr(float xfloat afloat b)
{
if(x<=a)
return 0;
if((a return (x-a)/(b-a);
if(x>=b)
return 1;
}
float cufr(float xfloat afloat b)
{
return (b-a)*x+a;
}
float fand(float afloat b)
{
return (a}
float forr(float afloat b)
{
return (a}
void main()
{
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 e=0ec=0e1=0eg=25;
float es[7]ecs[7]n=26;
e=n-eg;
ec=e-e1;
e1=e;
es[NB]=ufl(e-3-1); //e
es[NM]=uf(e-3-20);
es[NS]=uf(e-3-11);
es[ZO]=uf(e-202);
es[PS]=uf(e-113);
es[PM]=uf(e023);
es[PB]=ufr(e13);
ecs[NB]=ufl(ec-0.3-0.1);//ec
ecs[NM]=uf(ec-0.3-0.20);
ecs[NS]=uf(ec-0.3-0.10.1);
ecs[ZO]=uf(ec-0.200.2);
ecs[PS]=uf(ec-0.10.10.3);
ecs[PM]=uf(ec00.20.3);
ecs[PB]=ufr(ec0.10.3);
float form[7][7];
int ij;
for(i=0;i<7;i++)
{float whr;
for(j=0;j<7;j++)
{
h=es[i];
r=ecs[j];
w=fand(hr);
form[i][j]=w;
}
}
int a=0b=0;
for(i=0;i<7;i++)
{
for(j=0;j<7;j++)
{
if(form[a][b] {
a=i;
b=j;
}
}
}
float lsd;
int pdin;
lsd=form[a][b];
p=kp[a][b];
d=kd[a][b];
in=ki[a][b];
float detkpdetkddetki;
if(p==NB)
detkp=cufl(lsd-0.3-0.1);
else if(p==NM)
detkp=cuf(lsd-0.30.20);
else if(p==NS)
detkp=cuf(lsd-0.30.10.1);
else if(p==ZO)
detkp=cuf(lsd-0.200.2);
else if(p==PS)
detkp=cuf(lsd-0.10.10.3);
else if(p==PM)
detkp=cuf(lsd00.20.3);
else if(p==PB)
detkp=cufr(lsd0.10.3);
if(d==NB)
detkd=cufl(lsd-3-1);
else if(d==NM)
detkd=cuf(lsd-320);
else if(d==NS)
detkd=cuf(lsd-311);
else if(d==ZO)
detkd=cuf(lsd-202);
else if(d==PS)
detkd=cuf(lsd-113);
else if(d==PM)
detkd=cuf(lsd023);
else if(d==PB)
detkd=cufr(lsd13);
if(in==NB)
detki=cufl(lsd-0.06-0.02);
else if(in==NM)
detki=cuf(lsd-0.06-0.040);
else if
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5260 2007-05-31 11:42 专家PID与模糊PID的C语言实现\fuzzypid\fuzzypid.m
文件 1391 2018-08-23 08:57 专家PID与模糊PID的C语言实现\fuzzypid\fuzzypid.rar
文件 3466 2005-06-19 08:52 专家PID与模糊PID的C语言实现\fuzzypid.cpp
文件 4011 2018-08-23 09:04 专家PID与模糊PID的C语言实现\fuzzypid.rar
文件 10863 2017-06-27 21:26 专家PID与模糊PID的C语言实现\Fuzzy_PID\Fuzzy_PID\fuzzy_PID.cpp
文件 2651 2017-06-27 16:29 专家PID与模糊PID的C语言实现\Fuzzy_PID\Fuzzy_PID\fuzzy_PID.h
文件 2120 2017-06-30 10:49 专家PID与模糊PID的C语言实现\Fuzzy_PID\Fuzzy_PID\main.cpp
文件 4292 2018-08-23 08:50 专家PID与模糊PID的C语言实现\Fuzzy_PID\Fuzzy_PID.rar
文件 337920 2018-08-23 08:53 专家PID与模糊PID的C语言实现\专家PID与模糊PID的C语言实现.doc
目录 0 2018-08-23 08:55 专家PID与模糊PID的C语言实现\Fuzzy_PID\Fuzzy_PID
目录 0 2018-08-23 09:04 专家PID与模糊PID的C语言实现\fuzzypid
目录 0 2018-08-23 08:55 专家PID与模糊PID的C语言实现\Fuzzy_PID
目录 0 2018-08-23 09:04 专家PID与模糊PID的C语言实现
----------- --------- ---------- ----- ----
371974 13
- 上一篇:c语言单纯形法c语言单纯形法
- 下一篇:UTF8转GBK C语言 单片机
相关资源
- 单片机PID控制(C语言)
- Proteus仿真:PID算法输出.rar
- 一个模糊PID温度控制算法源代码
- pid控制电机
- PID算法.c
- C语言模糊控制程序
- SpiderMonkey1.61.7 编译文件全部libdllh文件
- 先进PID控制MATLAB仿真
- 模糊PID硕士期刊论文及源码.zip
- 先进pid控制及其matlab仿真64898
- 网络爬虫 C++ Crawler Spider
- 获取U盘VIDPID盘符物理序列号源码可运
- PID调节电机转速 配合MPU6050
- 积分分离型PID控制 匿名四轴波形输出
- PID参数整定一本通
- rapid Scada组态软件
- PID学习资料 各种PID解释和应用
- 自适应PID,C语言源码
- DSP的PID控制程序
- SuperPid修改进程PID工具驱动级.别名.
- C语言实现PID控制直流电机调速含pro
- NCDDE服务连接DDE封装的APIddehelper
- 数字PID控制器 Proteus软件仿真
- 模糊PID控制C语言程序.doc
- Project1.rar
- 模糊PID的C语言程序
- 自适应模糊PID代码 C++实现
- 控制方法的C语言实现
- VS2010版c++PID控制算法详尽注释
- PID算法Matlab仿真程序和C程序
评论
共有 条评论