• 大小: 57KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-08
  • 语言: C/C++
  • 标签: PID  

资源简介

专家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((areturn  (x-a)/(b-a);
else if((breturn (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((areturn (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


评论

共有 条评论