基于复合粒子群优化的模糊神经预测控制的研究(Matlab代码实现)

  🍒🍒🍒欢迎关注🌈🌈🌈

📝个人主页:我爱Matlab


👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻

🍌希望大家多多支持🍓~一起加油 🤗

💬语录:将来的我一定会感谢现在奋斗的自己!

🍁🥬🕒摘要🕒🥬🍁

在20世纪90年代初产生了模拟自然生物群体行为的优化技术, 称为群体智能。群体智能主要包括Dorigo于1992年提出的蚁群算法、Eberhart与Kennedy于1995年提出的粒子群优化 (Particl Swarm Optimization, PSO) 算法.其中粒子群优化算法的基本思想是模拟鸟群飞行觅食的行为, 通过粒子追随自己找到的最好解和整个群的最好解来完成优化。该算法简单、易实现, 可调参数少, 已得到了广泛研究和应用。

模糊控制(FLC)技术具有控制器设计简便、鲁棒性强等特点,尤其适用于非线性系统控制。上世纪80年代以来,在理论和工程实践方面均获得了广泛应用。FLC的最大优点是在模糊集理论的基础上,用语言描述那些难以用数学解析式描述的系统特性及控制方法,从而使得模糊控制能够将人的智能直接应用于控制过程。然而,模糊控制器实质上是一种基于专家经验的非线性控制器,如何准确确定各模糊集的隶属度函数和模糊控制规则,至今仍缺乏有效的设计和调整方法。 针对传统模糊控制器存在的不足之处,本文提出基于粒子群优化算法(PSO)的FLC设计。首先,针对基本PSO算法易陷入局部最优的缺陷,通过分析惯性权重和学习因子对算法性能的影响,本文提出了一种改进算法:基于惯性权重和分段时变学习因子的PSO算法(WFPSO)。标准的Benckmark测试函数实验表明,改进后的PSO算法提高了粒子的全局搜索能力,加快粒子的收敛速度。其次,将这种改进PSO算法应用于模糊控制器的设计中,在线自动调整模糊控制器的量化因子ke、kec和比例因子ku,较好的实现系统快速一无超调的动态性能。 无刷直流电机是一种多变量和非线性的控制系统,传统的控制由于参数不能随着被控对象的变化而作相应的调整,很难满足对它的精确控制。因此,本文把改进粒子群算法优化的模糊控制器应用到无刷直流电机的控制中,就电机的启动转矩、转速调节的快速性与传统模糊控制系统进行对比研究。仿真结果表明,改进后的模糊控制器实现了电机启动转矩脉动小,转速基本无超调、上升速度快、过渡时间短,系统具有较强的自适应能力。

✨🔎⚡运行结果⚡🔎✨

 

 

 

 

 

 

 

💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂

x = [0:1:100];

mf = trapmf(x,[10 30 50 90]);

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')
 

📜📢🌈参考文献🌈📢📜

[1]李爱国,覃征,鲍复民,贺升平.粒子群优化算法[J].计算机工程与应用,2002(21):1-3+17.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值