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

news/2024/11/29 23:42:11/

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥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.

🌈4 Matlab代码实现


http://www.ppmy.cn/news/887.html

相关文章

【Python教学】pyqt6入门到入土系列,超详细教学讲解

一、什么是PyQt6? 简单介绍一下PyQt6 1、基础简介 PyQt6 Digia 公司的 Qt 程序的 Python 中间件。Qt库是最强大的GUI库之一。PyQt6的官网:www.riverbankcomputing.co.uk/news。PyQt6是由Riverbank Computing公司开发的 资料大礼包点击蓝色字体领取 Python零基础…

靶向嵌合体PEG-ethoxycarbonyl-propanoic/Dodecaethylene glycol

蛋白水解靶向嵌合体(proteolysis targeting chimeras,PROTACs)通过连接基团将靶蛋白配体与E3连接酶配体利用化学键连接,将E3连接酶“募集”到靶蛋白附近,并利用细胞内的泛素-蛋白酶体系统,实现靶蛋白的泛素化标记和蛋白降解。靶蛋白一旦被降解,PROTACs分子便游离出来,参与到下一…

【SpringBoot项目中Knife4j在线API文档】

目录 1. Knife4j在线API文档基本使用 2. 配置API文档信息 1. Knife4j在线API文档基本使用 Knife4j是一款基于Swagger 2的在线API文档框架。 使用Knife4j的基础步骤: 添加依赖在application.properties / application.yml中添加配置在项目中添加配置类关于依赖项…

互联网企业面试必问 Spring 源码? 拿下Spring 源码,看完这篇就够了

前言 不用说,Spring 已经成为 Java 后端开发的事实上的行业标准。无数公司选择 Spring 作为基本开发框架。大多数 Java 后端程序员在日常工作中也会接触到 Spring。因此,如何很好地使用 Spring,已成为 Java 程序员的必修课之一。 同时&…

cmd命令以及一些操作

文章目录前言set和echoif语句判断有无指定文件夹相对路径创建文件夹创建bat脚本换行符前言 因为下载下来的代码用bash脚本写的,cmd不能完美运行,因此想着对照着转成cmd,这样就方便了。 set和echo set demohello world!!! echo %demo%这就是…

RabbitMQ之集群管理

1、在node2、node3、node4三台Linux虚拟机中安装RabbitMQ。 2、从node2拷贝.erlang.cookie到node3、node4的相应目录 如果没有该文件,手动创建/var/lib/rabbitmq/.erlang.cookie ,生成Cookie字符串,或者启动一次RabbitMQ自动生成该文件。生产…

2020年全国职业院校技能大赛改革试点赛样卷二

目录 一、竞赛介绍 1.登录 2.系统配置 3.竞赛环境 二、竞赛时间

网页去色变黑白+网页黑白恢复为彩色

前言 特定节日,你会发现网页和app首页都会变成灰色,以此来表达我们的哀思之情。 好奇宝宝想知道各个网站都是使用哪些小技巧来做出这种效果的(由彩变灰,由灰变彩),于是稍微学习了一下… 由灰变彩 稍微想…