基于复合粒子群优化的模糊神经预测控制的研究(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.

相关文章
|
26天前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
101 2
|
26天前
|
canal 算法 vr&ar
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
|
26天前
|
机器学习/深度学习 存储 算法
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
|
1月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
1月前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
151 14
|
26天前
|
机器学习/深度学习 算法 安全
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
109 2
|
1月前
|
机器学习/深度学习 算法
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
|
1月前
|
机器学习/深度学习 传感器 算法
【裂纹检测】检测和标记图片中的裂缝(Matlab代码实现)
【裂纹检测】检测和标记图片中的裂缝(Matlab代码实现)
146 5
|
1月前
|
存储 算法 安全
【多目标工程应用】基于MOGWO的地铁隧道上方基坑工程优化设计研究(Matlab代码实现)
【多目标工程应用】基于MOGWO的地铁隧道上方基坑工程优化设计研究(Matlab代码实现)
|
1月前
|
传感器 机器学习/深度学习 编解码
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)

热门文章

最新文章