?? fuzzy.h
字號:
// Fuzzy.h: interface for the Fuzzy class.
//
//////////////////////////////////////////////////////////////////////
#include <math.h>
#include <memory.h>
#if !defined(AFX_FUZZY_H__46E55F21_6CA9_4125_ABCD_77F6A04ED01C__INCLUDED_)
#define AFX_FUZZY_H__46E55F21_6CA9_4125_ABCD_77F6A04ED01C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
/********************************************************************
created: 2007/02/08
created: 8:2:2007 21:21
Classname: FuzzyControl
InputFunc: FuzzyProcess(通信內容)
OutputVar: m_pObstacleList障礙物鏈表的頭指針;
m_daBallPoleCord[2]球或目標的極坐標
author: 高揚
purpose: 獲取仿真程序所需要的所有球場信息
*********************************************************************/
class FuzzyControl
{
public:
inline double trapmf(double inputx,double sig1,double c1,double sig2,double c2);//->梯形隸屬函數
void ProcessFuzzyControl(double TargetAngle,double Danger);//->進行邏輯推理并反模糊化
FuzzyControl();
virtual ~FuzzyControl();
protected:
// double sigmf(double sig1,double c1,double sig2,double c2);
double m_aAngleMemberFunctionPar[8];//->角度隸屬函數中用到的參數,0,1為ZERO;2,3為NS;4,5為NM,6,7為NB。每個函數有多個參數,分別按MATLAB中相應函數的格式順序如:6為A,7為C,sigma為4,C為5
double m_aDangerMemberFunctionPar[12];//->危險隸屬函數中用到的參數,0,1為ZERO;2,3,4,5為Near;6,7,8,9為Mid,10,11為far。每個函數有兩個參數,分別按MATLAB中相應函數的格式順序如:6為A,7為C,sigma為4,C為5
void FuzzyInput(double AngleInput,double DangerInput);//->模糊輸入變量
double m_aAngleBelongDegree[4];//->角度的語言隸屬度,0~3分別對應Zero,Ns,Nm,Nb
double m_aDangerBelongDegree[4];//->危險的語言隸屬度,0~3分別對應Zero,NEAR,Mid,FAR
double m_aAngleMemberFunCenterValue[4];//->角度的語言隸屬函數中心點值,順序同上
double m_aDangerMemberFunCenterValue[4];//->危險的語言隸屬函數中心點值,順序同上
double m_aLineSpeedMemberFunCenterValue[4];//->線速度輸出語言變量的中心值,依次為ZERO,SLOW,MID,FAST的中心
double m_aCornerSpeedMemberFunCenterValue[4];//->角速度輸出語言變量的中心值,依次為ZERO,LESSSHARP,MIDSHARP,FASTSHARP的中心
double m_aFuzzyRuleActiveDegree[16];//->規則激活度,規則順序按MATLAB中的順序,具體參見ProcessFuzzyControl函數中推理時各激活度求解建立用到的順序.
int m_anSingleRuleResultLineSpeedCenterValue[16];//->每條規則中的結果部分是第幾個線速度語言變量,其中的內容為0~3的整數依次為ZERO,SLOW,Mid,FAST
int m_anSingleRuleResultCornerSpeedCenterValue[16];//->每條規則中的結果部分是第幾個角速度語言變量,其中的內容為0~3的整數依次為ZERO,LESSSHARP,MidSHARP,SHARP
public:
double LineSpeedOutPut;//線速度輸出結果
double CornerSpeedOutPut;//角速度輸出結果
};
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
#endif // !defined(AFX_FUZZY_H__46E55F21_6CA9_4125_ABCD_77F6A04ED01C__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -