{"rsdb":{"rid":"158451","subhead":"","postdate":"0","aid":"118820","fid":"49","uid":"1","topic":"1","content":"
\n

<\/p>\n

\u5b9e\u73b0\u6a21\u7cca\u63a7\u5236\u5668\u9700\u8981\u4ee5\u4e0b\u6b65\u9aa4\uff1a<\/p> \u786e\u5b9a\u6a21\u7cca\u63a7\u5236\u5668\u7684\u8f93\u5165\u548c\u8f93\u51fa\u91cf \u8bbe\u8ba1\u6a21\u7cca\u63a7\u5236\u5668\u7684\u63a7\u5236\u89c4\u5219 \u786e\u7acb\u6a21\u7cca\u5316\u548c\u975e\u6a21\u7cca\u5316\u7684\u65b9\u6cd5 \u9009\u62e9\u6a21\u7cca\u63a7\u5236\u5668\u7684\u8f93\u5165\u53d8\u91cf\u548c\u8f93\u51fa\u53d8\u91cf\u7684\u8bba\u57df\u5e76\u786e\u5b9a\u6a21\u7cca\u63a7\u5236\u5668\u7684\u53c2\u6570\uff08\u5982\u91cf\u5316\u56e0\u5b50\uff0c\u6bd4\u4f8b\u56e0\u5b50\u7b49\uff09 \u7f16\u5236\u6a21\u7cca\u63a7\u5236\u7b97\u6cd5\u7684\u5e94\u7528\u7a0b\u5e8f \n

\u5408\u7406\u9009\u62e9\u6a21\u7cca\u63a7\u5236\u7b97\u6cd5\u7684\u91c7\u6837\u65f6\u95f4<\/p> \n

\u672c\u6a21\u7cca\u63a7\u5236\u5668\u91c7\u7528\u53cc\u8f93\u5165\u5355\u8f93\u51fa\u7684\u5f62\u5f0f\uff0c\u8f93\u5165\u53d8\u91cf\u4e3a\u8bef\u5deee\u548c\u8bef\u5dee\u7684\u53d8\u5316\u7387de,\u8f93\u51fa\u4e3a\u63a7\u5236\u91cfu\uff1be,de,u\u7684\u91cf\u5316\u8bba\u57df\u8303\u56f4\u4e3a[-3,-2,-1,0,1,2,3],\u5212\u5206\u7684\u6a21\u7cca\u5b50\u96c6\u4e3a\uff1a[NB,NM,NS,ZO,PS,PM,PB].\u57fa\u672c\u8bba\u57df\u7684\u8303\u56f4\u9009\u53d6\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u6765\u786e\u5b9a\u4e0a\u9650\u503cemax,demax,umax.
\u91cf\u5316\u56e0\u5b50:Ke=3\/emax, Kde=3\/demax,
\u8f93\u51fa\u7f29\u653e\u56e0\u5b50\uff1aKu=umax\/3
\u4e3a\u4e86\u51cf\u5c11\u8ba1\u7b97\u91cf\uff0ce,de,u\u7684\u96b6\u5c5e\u5ea6\u51fd\u6570\u90fd\u9009\u7528\u4e09\u89d2\u5f62\u96b6\u5c5e\u5ea6\u51fd\u6570\u3002\u5982\u4e0b\u56fe\u6240\u793a\uff1a
\"\u6a21\u7cca\u96c6\u5408\u5212\u5206\"
\u6a21\u7cca\u63a7\u5236\u6700\u91cd\u8981\u7684\u662f\u8981\u786e\u5b9a\u6a21\u7cca\u63a7\u5236\u89c4\u5219\uff0c\u5b83\u53ef\u4ee5\u901a\u8fc7\u4e13\u5bb6\u7ecf\u9a8c\u83b7\u5f97\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u91c7\u6837\u6570\u636e\u83b7\u5f97\uff0c\u8fd9\u91cc\u4f7f\u7528\u7684\u6a21\u7cca\u63a7\u5236\u89c4\u5219\u8868\u5982\u4e0b\uff1b
\"\u63a7\u5236\u89c4\u5219\u8868\"
\u5728\u5fae\u5904\u7406\u5668\u4e2d\u5b9e\u73b0\u6a21\u7cca\u63a7\u5236\u7684\u4e00\u822c\u91c7\u7528\u79bb\u7ebf\u67e5\u8868\u7684\u65b9\u6cd5\u3002\u9996\u5148\u6a21\u7cca\u5316\u8f93\u5165\u5230\u63a7\u5236\u5668\u4e2d\u7684e\u548cde\uff0c\u8ba1\u7b97\u4ed6\u4eec\u7684\u5728\u6bcf\u4e2a\u6a21\u7cca\u5b50\u96c6\u4e2d\u7684\u96b6\u5c5e\u5ea6\u503c\uff0c\u7136\u540e\u627e\u51fa\u6fc0\u6d3b\u7684\u6a21\u7cca\u5b50\u96c6\uff0c\u5b58\u50a8\u8d77\u6765\uff0c\u6700\u540e\u4f7f\u7528\u52a0\u6743\u5e73\u5747\u7684\u65b9\u6cd5\u8ba1\u7b97\u8f93\u51fa\u503c\u3002\u5177\u4f53\u7684\u516c\u5f0f\u5982\u4e0b\uff1a
\"\u516c\u5f0f1\"
Zi\u4e3au\u7684\u6a21\u7cca\u96b6\u5c5e\u5ea6\u51fd\u6570\u7684\u5c16\u70b9\u6240\u5bf9\u5e94\u7684\u6a2a\u5750\u6807\u503c\u3002
\u4e0b\u9762\u8bb2\u8bb2\u600e\u4e48\u7528C++<\/a>\u5b9e\u73b0\u6a21\u7cca\u63a7\u5236\u5668\u3002
\u9996\u5148\u9700\u8981\u5efa\u7acb\u4e00\u4e2aFuzzy_controller\u7684\u7c7b\uff1a<\/p> \n

\r\nclass Fuzzy_controller\r\n{\r\npublic:\r\n    const static int N=7;\/\/\u5b9a\u4e49\u91cf\u5316\u8bba\u57df\u6a21\u7cca\u5b50\u96c6\u7684\u4e2a\u6570\r\nprivate:\r\n    float target;\/\/\u7cfb\u7edf<\/a>\u7684\u63a7\u5236\u76ee\u6807\r\n    float actual;\/\/\u91c7\u6837\u83b7\u5f97\u7684\u5b9e\u9645\u503c\r\n    float e;     \/\/\u8bef\u5dee\r\n    float e_pre; \/\/\u4e0a\u4e00\u6b21\u7684\u8bef\u5dee\r\n    float de;    \/\/\u8bef\u5dee\u7684\u53d8\u5316\u7387\r\n    float emax;  \/\/\u8bef\u5dee\u57fa\u672c\u8bba\u57df\u4e0a\u9650\r\n    float demax; \/\/\u8bef\u5dee\u8fa9\u5316\u7387\u57fa\u672c\u8bba\u57df\u7684\u4e0a\u9650\r\n    float umax;  \/\/\u8f93\u51fa\u7684\u4e0a\u9650\r\n    float Ke;    \/\/Ke=n\/emax,\u91cf\u5316\u8bba\u57df\u4e3a[-3,-2,-1,0,1,2,3]\r\n    float Kde;   \/\/Ke=n\/demax,\u91cf\u5316\u8bba\u57df\u4e3a[-3,-2,-1,0,1,2,3]\r\n    float Ku;    \/\/Ke=umax\/n,\u91cf\u5316\u8bba\u57df\u4e3a[-3,-2,-1,0,1,2,3]\r\n    int rule[N][N];\/\/\u6a21\u7cca\u89c4\u5219\u8868\r\n    string mf_t_e;   \/\/e\u7684\u96b6\u5c5e\u5ea6\u51fd\u6570\u7c7b\u578b\r\n    string mf_t_de;  \/\/de\u7684\u96b6\u5c5e\u5ea6\u51fd\u6570\u7c7b\u578b\r\n    string mf_t_u;   \/\/u\u7684\u96b6\u5c5e\u5ea6\u51fd\u6570\u7c7b\u578b\r\n    float *e_mf_paras; \/\/\u8bef\u5dee\u7684\u96b6\u5c5e\u5ea6\u51fd\u6570\u7684\u53c2\u6570\r\n    float *de_mf_paras;\/\/\u8bef\u5dee\u7684\u504f\u5dee\u96b6\u5c5e\u5ea6\u51fd\u6570\u7684\u53c2\u6570\r\n    float *u_mf_paras; \/\/\u8f93\u51fa\u7684\u96b6\u5c5e\u5ea6\u51fd\u6570\u7684\u53c2\u6570\r\n\r\npublic:\r\n    Fuzzy_controller(float e_max,float de_max,float u_max);\r\n    ~Fuzzy_controller();\r\n    float trimf(float x,float a,float b,float c);          \/\/\u4e09\u89d2\u96b6\u5c5e\u5ea6\u51fd\u6570\r\n    float gaussmf(float x,float ave,float sigma);          \/\/\u6b63\u6001\u96b6\u5c5e\u5ea6\u51fd\u6570\r\n    float trapmf(float x,float a,float b,float c,float d); \/\/\u68af\u5f62\u96b6\u5c5e\u5ea6\u51fd\u6570\r\n    \/\/\u8bbe\u7f6e\u6a21\u7cca\u96b6\u5c5e\u5ea6\u51fd\u6570\u7684\u53c2\u6570\r\n    void setMf(const string & mf_type_e,float *e_mf,const string & mf_type_de,float *de_mf,const string & mf_type_u,float *u_mf);\r\n    void setRule(int rulelist[N][N]);                          \/\/\u8bbe\u7f6e\u6a21\u7cca\u89c4\u5219\r\n    float realize(float t,float a);              \/\/\u5b9e\u73b0\u6a21\u7cca\u63a7\u5236\r\n    void showInfo();                                      \/\/\u663e\u793a\u8be5\u6a21\u7cca\u63a7\u5236\u5668\u7684\u4fe1\u606f\r\n    void showMf(const string & type,float *mf_paras);      \/\/\u663e\u793a\u96b6\u5c5e\u5ea6\u51fd\u6570\u7684\u4fe1\u606f\r\n};<\/pre> \n 

\u7136\u540e\u7ed9\u51fa\u7c7b\u65b9\u6cd5\u7684\u5b9a\u4e49\uff1a<\/p> \n

\r\nFuzzy_controller::Fuzzy_controller(float e_max,float de_max,float u_max):\r\ntarget(0),actual(0),emax(e_max),demax(de_max),umax(u_max),e_mf_paras(NULL),de_mf_paras(NULL),u_mf_paras(NULL)\r\n{\r\n   e=target-actual;\r\n   e_pre=0;\r\n   de=e-e_pre;\r\n   Ke=(N\/2)\/emax;\r\n   Kde=(N\/2)\/demax;\r\n   Ku=umax\/(N\/2);\r\n   mf_t_e="trimf";\r\n   mf_t_de="trimf";\r\n   mf_t_u="trimf";\r\n}\r\n\r\nFuzzy_controller::~Fuzzy_controller()\r\n{\r\n  delete [] e_mf_paras;\r\n  delete [] de_mf_paras;\r\n  delete [] u_mf_paras;\r\n}\r\n\/\/\u4e09\u89d2\u96b6\u5c5e\u5ea6\u51fd\u6570\r\nfloat Fuzzy_controller::trimf(float x,float a,float b,float c)\r\n{\r\n   float u;\r\n   if(x>=a&&x<=b)\r\n       u=(x-a)\/(b-a);\r\n   else if(x>b&&x<=c)\r\n       u=(c-x)\/(c-b);\r\n   else\r\n       u=0.0;\r\n   return u;\r\n\r\n}\r\n\/\/\u6b63\u6001\u96b6\u5c5e\u5ea6\u51fd\u6570\r\nfloat Fuzzy_controller::gaussmf(float x,float ave,float sigma) \r\n{\r\n    float u;\r\n    if(sigma<0)\r\n    {\r\n       cout<<"In gaussmf, sigma must larger than 0"<\n  \n   =a&&x\n   \n    =b&&x\n    \n     =c&&x<=d) u=(d-x)\/(d-c); else u=0; return u; } \/\/\u8bbe\u7f6e\u6a21\u7cca\u89c4\u5219 void Fuzzy_controller::setRule(int rulelist[N][N]) { for(int i=0;i\n     \n      =umax) u=umax; else if(u<=-umax) u=-umax; e_pre=e; return u; } void Fuzzy_controller::showMf(const string & type,float *mf_paras) { int tab; if(type=="trimf") tab=2; else if(type=="gaussmf") tab==1; else if(type=="trapmf") tab=3; cout<&","orderid":"0","title":"\u6a21\u7cca\u63a7\u5236\u7b97\u6cd5\u7684C++\u5b9e\u73b0(\u4e00)","smalltitle":"","mid":"0","fname":"c++\u7f16\u7a0b\u57fa\u7840","special_id":"0","bak_id":"0","info":"0","hits":"8165","pages":"2","comments":"0","posttime":"2017-09-19 13:06:16","list":"1505797576","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"\u6a21\u7cca<\/A> \u63a7\u5236<\/A> \u7b97\u6cd5<\/A> \u5b9e\u73b0<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"113.108.110.181","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"\u6a21\u7cca\u63a7\u5236\u7b97\u6cd5\u7684C++\u5b9e\u73b0","lastview":"1691481034","digg_num":"9567","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}