1. 首页 > 科技快讯 >

模糊控制算法 模糊控制算法的过程是什么

小柳给大家谈谈模糊控制算法,以及模糊控制算法的过程是什么应用的知识点,希望对你所遇到的问题有所帮助。

模糊控制算法 模糊控制算法的过程是什么模糊控制算法 模糊控制算法的过程是什么


模糊控制算法 模糊控制算法的过程是什么


1、智能小车的速度控制算法采用模糊控制。

2、请点击输入图片描述1.变量模糊化在模糊控制中,输入输出变量大小用语言形式进行描述。

3、常选用的7个语言值为{负大,负中,负小,零,正小,正中,正大},即{NB,NM,NS,O,PS,PM,PB}。

4、对小车当前行驶方向和赛道方向形成的偏e及其变化率ec作为模糊控制器的输入,小车的目标车速为模糊控制器的输出。

5、设偏值的模糊量为E,偏变化率模糊量为EC,U为目标车速。

6、为了让速度切换更加细腻流畅,设置偏e、偏变化ec和控制量u的基本论域为[-6,6],并划分为13个等级,即{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}。

7、E、EC和U均使用三角形隶属函数进行模糊化请点击输入图片描述/2.模糊查询表的计算对模糊量EC、E和U设置相关的模糊控制规则表请点击输入图片描述/规则库蕴含的模糊关系:请点击输入图片描述计算出模糊规则蕴含的模糊关系R后,通过遍历E和EC所有的论域对模糊值进行选取并计算模糊输出值:其中,o表示模糊矩阵的合成,类似于普通矩阵的乘积运算,将乘积运算换成“取小”,将加法运算换成“取大”。

8、请点击输入图片描述在遍历过程中,对E和EC所有论域对应的模糊输出值一一采取加权平均法去模糊化,得到终的模糊控制器查询表。

9、float R[169][13] = { 0 };float R1[13][13] = { 0 };float AdBd1[13][13] = { 0 };float R2[169] = { 0 };float AdBd2[169] = { 0 };float R3[169][13] = { 0 };float Cd[13] = { 0 };float Fuzzy_Table[13][13] = { 0 };float SPEED[13] = { 200,220,230,240,250,270,300,270,250,240,230,220,200 };//调试参数int Max_Input1_value = 0, Max_Input2_value = 0;/3.模糊查询表设置车速将模糊查询表进入代码程序,将实际的e和ec映射到论域中后,在模糊查询表中查询结果并设置目标车速。

10、int_16 Fuzzy_Table[13][13]= { 203,211,211,211,226,226,230,230,228,210,210,210,210,209,221,221,221,238,238,241,241,237,231,231,231,227,209,221,221,221,238,238,241,241,237,231,231,231,227,209,221,221,221,238,238,241,241,237,231,231,231,227,215,238,238,238,245,245,266,266,246,237,237,237,232,215,238,238,238,245,245,266,266,246,237,237,237,232,218,250,250,250,276,276,283,283,280,245,245,245,216,218,250,250,250,276,276,283,283,280,245,245,245,216,232,240,240,240,250,250,271,271,246,236,236,236,217,226,230,230,230,236,236,239,239,236,214,214,214,208,226,230,230,230,236,236,239,239,236,214,214,214,208,226,230,230,230,236,236,239,239,236,214,214,214,208,211,211,211,211,226,226,230,230,228,208,208,208,203} ;int_16 get_speed_set(void) {调好参数,完胜PID。

本文到这结束,希望上面文章对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息