资源简介
根据偏差与斜率构建模糊规则表,确定P,D参数,用于舵机转向与电机控速。获得智能车国一
代码片段和文件信息
#include “include.h“
/******此处将P改为中线的err ,D改为中线的斜率即可*********/
float Fuzzy(float Pfloat D)
{
/*输入量P语言值特征点*/
float PFF[7]={-15-10-5051015};
/*输入量D语言值特征点*/
float DFF[5]={-13-60613};
/*输出量U语言值特征点(根据赛道类型选择不同的输出值)*/
float UFF[7]={01520355080120};
int 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};
/*偏差偏差微分以及输出值的隶属度*/
int Pn=0Dn=0Un[4]={0};
float t1=0t2=0t3=0t4=0temp1=0temp2=0;
/*隶属度的确定*/
/*根据PD的指定语言值获得有效隶属度*/
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=-2;
DF[0]=(DFF[1]-D)/(DFF[1]-DFF[0]);
}
- 上一篇:中国联通光纤分布系统网管技术规范V2.0
- 下一篇:操作系统期末试卷与答案
相关资源
- LabVIEW实现Fuzzy_PID的补充资源
- k66说明,智能车K66
- 四轴飞控源码 PID参考apm 采用了dmp自带
- 平衡小车之家全套资料
- 基于ARM的高精度PID温度控制器_张军
- 基于粤嵌GEC-6818开发板的智能车库系统
- 基于STM32F07单片机风洞程序
- 实现飞思卡尔两轮智能车的直立芯片
- 飞思卡尔智能车摄像头组
- 智能车摄像头图像处理
- 基于PLC的直流带式输送机系统的自适
- 基于51单片机的直流电机PID控制
- 基于STM32的智能服务型多功能多足机器
- 基于STM32PID电机控制
- 摄像头四轮.rar
- STM32直流有刷电机PID控制
- STM32F407. 基于PID速度环的步进电机速度
- 基于stm32F103的两轮自平衡小车
- 模糊PID算法控制
- 倒立摆调试,使用步进电机,完全成
- STM32F103 模糊自整定位置式PID控制电机
- 基于模糊控制与神经网络的智能PID温
- USB的驱动vid—1f3a—pid—efe8驱动
- 西门子博途编的PID温度模拟量控制
- 基于PID控制方式的4A开关电源-multisi
- 基于遗传优化的无刷直流电机模糊控
- 无人机飞行PID控制及智能PID控制技术
- PID电机控制与调速
- 欧姆龙可编程序控制器PID
- 西门子S7-300在温度控制中的应用
评论
共有 条评论