资源简介
两输入单输出模糊控制c语言程序.c文件,c语言编写,此程序原为本人用在模糊PID上
代码片段和文件信息
#include “common.h“
#include “include.h“
float Fuzzy(float Pfloat D)
{
/*输入量P语言值特征点*/
float PFF[7]={-24-12-6061224};
/*输入量D语言值特征点*/
float DFF[5]={-6.5-3036.5};
/*输出量U语言值特征点*/
float UFF[7]={01520355080120};
/*规则表*/
int8 rule[7][5]={
// -2 -1 0 1 2 ec e
{ 1 1 1 0 0} // -3
{ 4 2 1 0 0} // -2
{ 6 4 1 1 0} // -1
{ 3 3 0 3 3} // 0
{ 0 1 1 4 6} // 1
{ 0 0 1 2 4} // 2
{ 0 0 1 1 1} // 3
};
/*输出值的精确量*/
float U=0;
/*偏差偏差微分以及输出值的隶属度*/
float PF[2]={0}DF[2]={0}UF[4]={0};
int8 Pn=0Dn=0Un[4]={0};
float t1=0t2=0t3=0t4=0temp1=0temp2=0;
/*****隶属度的确定*****/
/*根据P的指定语言值获得有效隶属度*/
if(P>PFF[0] && P {
if(P<=PFF[1])
{
Pn=-2;
PF[0]=(PFF[1]-P)/(PFF[1]-PFF[0]);
}
else if(P<=PFF[2])
{
Pn=-1;
PF[0]=(PFF[2]-P)/(PFF[2]-PFF[1]);
}
else if(P<=PFF[3])
{
Pn=0;
PF[0]=(PFF[3]-P)/(PFF[3]-PFF[2]);
}
else if(P<=PFF[4])
{
Pn=1;
PF[0]=(PFF[4]-P)/(PFF[4]-PFF[3]);
}
else if(P<=PFF[5])
{
Pn=2;
PF[0]=(PFF[5]-P)/(PFF[5]-PFF[4]);
}
else if(P<=PFF[6])
{
Pn=3;
PF[0]=(PFF[6]-P)/(PFF[6]-PFF[5]);
}
}
else if(P<=PFF[0])
{
Pn=-2;
PF[0]=1;
}
else if(P>=PFF[6])
{
Pn=3;
PF[0]=0;
}
PF[1]=1-PF[0];
/*根据D的指定语言值获得有效隶属度*/
if(D>DFF[0]&&D {
if(D<=DFF[1])
{
Dn
- 上一篇:基于mpu9250的磁力计校准算法
- 下一篇:校园卡信息管理系统
相关资源
- C语言实战——基于51单片机的RFID射频
- 黑客帝国C语言
- C语言程序扑克发牌
- C语言考研真题汇编(2)
- Windows+C语言构建网络聊天室内含源程
- ISD4004语音芯片C语言程序
- NES 游戏 C语言开发教程
- C语言100道练习题
- c语言 linux 贪吃蛇.doc
- 标准H.264编解码源代码,C语言实现
- c语言实现的模板(list queue stack)
- 基于51单片机的c语言程序 电机转速测
- BCH编译码c语言实现
- SM2算法C语言实现
- 用C语言实现成绩表的快速排序程序设
- GPS网间接平差C语言程序
- RSA算法纯C语言代码实现,带测试dem
- c语言标准库源码大全
- [算法:C语言实现(第1-4部分)基础知
- MPI与OpenMP并行程序设计:C语言版
- C语言程序设计课件全套
- 几本英文原版的c语言经典图书
- 单片机交通灯课程设计.zip
- 课程设计--C语言学生成绩管理系统内
- 利用C语言实现的ATM机
- C语言程序设计第四版谭浩强课后习题
- 现代优化设计黄金分割法和二次插值
- 数据结构c语言版第2版课后习题答案
- 谭浩强C语言教程
- 求曼德勃罗集合C语言串行并行代码
评论
共有 条评论