👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现
💥1 概述
模糊控制(FLC)技术具有控制器设计简便、鲁棒性强等特点,尤其适用于非线性系统控制。上世纪80年代以来,在理论和工程实践方面均获得了广泛应用。FLC的最大优点是在模糊集理论的基础上,用语言描述那些难以用数学解析式描述的系统特性及控制方法,从而使得模糊控制能够将人的智能直接应用于控制过程。然而,模糊控制器实质上是一种基于专家经验的非线性控制器,如何准确确定各模糊集的隶属度函数和模糊控制规则,至今仍缺乏有效的设计和调整方法。 针对传统模糊控制器存在的不足之处,本文提出基于粒子群优化算法(PSO)的FLC设计。首先,针对基本PSO算法易陷入局部最优的缺陷,通过分析惯性权重和学习因子对算法性能的影响,本文提出了一种改进算法:基于惯性权重和分段时变学习因子的PSO算法(WFPSO)。标准的Benckmark测试函数实验表明,改进后的PSO算法提高了粒子的全局搜索能力,加快粒子的收敛速度。其次,将这种改进PSO算法应用于模糊控制器的设计中,在线自动调整模糊控制器的量化因子ke、kec和比例因子ku,较好的实现系统快速一无超调的动态性能。 无刷直流电机是一种多变量和非线性的控制系统,传统的控制由于参数不能随着被控对象的变化而作相应的调整,很难满足对它的精确控制。因此,本文把改进粒子群算法优化的模糊控制器应用到无刷直流电机的控制中,就电机的启动转矩、转速调节的快速性与传统模糊控制系统进行对比研究。仿真结果表明,改进后的模糊控制器实现了电机启动转矩脉动小,转速基本无超调、上升速度快、过渡时间短,系统具有较强的自适应能力。
📚2 运行结果
部分代码:
hold on
grid on
axis([ 0 100 0 1.25])
plot(x,mf)
xlabel('X = Universe of Discourse');
ylabel('Membership Grade');
title('Trapazoid Membership Function and Defuzzification');
% Center of Area (CoA) Defuzzification
% z_coa = defuzz(x,mf,'centroid') % using Fuzzy Logic Toolbox
z_coa = trapz(mf.*x)/trapz(mf); % trapz() 'estimates' integral of a trapazoid
stem(z_coa,1,'b')
% Mean of Max (MoM) Defuzzification
% z_mom = defuzz(x,mf,'mom') % using Fuzzy Logic Toolbox
index = find(mf==max(mf)); % all index(s) of mf that equal the max value
mean_index = mean(index); % assuming the max area is contiguous...
z_mom = x(mean_index); % ...can use index with input vector to find z
stem(z_mom,1,'r')
% Bisector of Area (BoA) Defuzzification
% z_boa = defuzz(x,mf,'bisector') % using Fuzzy Logic Toolbox
index=1;
while (logical(trapz(mf(1:index))~=trapz(mf(index:length(mf)))))
index=index+1;
end
z_boa = x(index);
stem(z_boa,1,'g')
legend('Overall Output Membership Function', 'Center of Area (CoA) Defuzzification', 'Mean of Max (MoM) Defuzzification', 'Bisector of Area (BoA) Defuzzification')
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]李爱国,覃征,鲍复民,贺升平.粒子群优化算法[J].计算机工程与应用,2002(21):1-3+17.