资源简介
专家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语言 单片机
评论
共有 条评论