基于头脑风暴优化的模糊PI控制系统simulink建模与仿真

embedded/2024/12/23 4:53:04/

目录

1.课题概述

2.系统仿真结果

3.核心程序与模型

4.系统原理简介

5.完整工程文件


1.课题概述

     头脑风暴优化(Brain Storm Optimization, BSO)是一种受人类集体创新过程启发的群体智能算法。它通过模拟团队成员之间的信息交流和想法生成来寻找最优解。将BSO应用于模糊PI控制系统的参数优化中,可以提高控制系统的性能。本课题将通过MATLAB/simulink来实现基于头脑风暴优化的模糊PI控制系统simulink建模与仿真。

2.系统仿真结果

(完整程序运行后无水印)

3.核心程序与模型

版本:MATLAB2022a

function z = func_fitness(x)P_0=x(1);
I0=x(2);kS3_1 = x(3);
kS4_1 = x(4);kk1 = x(5);
kk2 = x(6);
k3  = x(7);
k4  = x(8);P_3 = x(9);
P_2 = x(10);
P_1 = x(11);
P0  = x(12);
P1  = x(13);
P2  = x(14);
P3  = x(15);save tmp.mat P_0 I0 kS3_1 kS4_1 kk1 kk2 k3 k4 P_3 P_2 P_1 P0 P1 P2 P3% open('opt.slx');
sim('opt.slx');load NewPIfuzzy_simulinkmodel\F2_d.mat
NFPIdat1 = ans.Data;
NFPIdat2 = ans.Time;%计算超调
obj1 = max(NFPIdat1);%计算收敛时间
indx = [];
for i = 1:length(NFPIdat1)-1e5if mean(NFPIdat1(i:i+1e5))<=1e-5indx = [indx;i];end
end
obj2 = NFPIdat2(indx(1));
%计算抖动
obj3 = std(NFPIdat1(end-100:end));z = obj1+obj2+obj3;
08_079m

4.系统原理简介

        头脑风暴优化(brain storm optimization,BSO)是一种基于人类的创造性解决问题的一种新的智能算法。

       头脑风暴优化算法按如下步骤进行:

       第一、产生种群大小为n的个体,并使用k-means聚类算法将n个个体分为m类,并从m个类别中分别选取一个最优的个体作为对应的中心体。

       第二、选择m个类中任意一个类的中心体,并按概率大小确定是否被其他随机个体所替代。

       第三、通过特定的方式进行个体的更新。更新方式主要有如下四种模式:
   1).随机选择一个类,将随机扰动加到类中心上产生新的个体。
   2).选择选择一个类,在该类中再随机选择一个个体,将随机扰动加到被选择的个体上产生新的个体。
    3).随机选择两个类,将他们的中心进行融合,然后再加上一个随机的扰动产生一个新的个体。
   4).随机选择两个类,每类中随机选择一个个体,然后进行融合并加上随机扰动产生一个新的个体。

      通过头脑风暴优化算法,优化决定控制器性能的参数主要有:

一般是通过优化算法,去优化模糊规则的权值。

控制器的调整时间越短越好,

稳定后,控制器的抖动越小越好,

基本优化的目标就是这三个。

根据目前的情况,控制器的再优化过程中,设置仿真时间1s。

然后这个过程仿真速度非常慢。

综上所述,优化函数可以表示为:

然后通过头脑风暴优化算法,获得上述几个参数的最优值,然后再作用到系统进行控制。

5.完整工程文件

v

v


http://www.ppmy.cn/embedded/127825.html

相关文章

海康威视云台相机图像获取

直接上代码&#xff1a; import cv2# 替换为正确的RTSP链接 rtsp_url rtsp://admin:abcd12345192.168.1.64:554/h264/ch1/main/av_stream cap cv2.VideoCapture(rtsp_url)if not cap.isOpened():print("无法打开视频流&#xff0c;检查RTSP URL和凭证") else:whil…

Linux便捷查询使用手册 第十章:安全与权限

目录 10.1 Linux安全模型 10.1.1 权限与拥有者 示例&#xff1a;查看文件权限 10.1.2 用户与组管理 示例&#xff1a;创建用户和组 10.1.3 文件权限管理 示例&#xff1a;更改文件权限 10.2 安全工具与技术 10.2.1 防火墙&#xff08;iptables&#xff09; 示例&…

【WebGIS】Cesium:界面与默认控件

Cesium 是一个用于构建三维地球与地图应用的开源 JavaScript 库。在开发 WebGIS 应用时&#xff0c;了解 Cesium 的界面与默认控件是非常关键的。本文将详细介绍 Cesium 的界面组成、默认控件的功能和自定义配置方法&#xff0c;帮助你快速上手。 Cesium Viewer 界面概述 Ces…

javaWeb项目-ssm+jsp企业人力资源管理系统功能介绍

本项目源码&#xff08;点击下方链接下载&#xff09;&#xff1a; java-ssmjsp中小企业人力资源管理系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端…

Qt5.14.2 安装详细教程(图文版)

Qt 是一个跨平台的 C 应用程序开发框架&#xff0c;主要用于开发图形用户界面&#xff08;GUI&#xff09;程序&#xff0c;但也支持非 GUI 程序的开发。Qt 提供了丰富的功能库和工具&#xff0c;使开发者能够在不同平台上编写、编译和运行应用程序&#xff0c;而无需修改代码。…

【Vue.js】vue2 项目在 Vscode 中使用 Ctrl + 鼠标左键跳转 @ 别名导入的 js 文件和 .vue 文件

js 文件跳转 需要安装插件 Vetur 然后需要我们在项目根目录下添加 jsconfig.json 配置&#xff0c;至于配置的作用&#xff0c;可以参考我的另外一篇博客&#xff1a; 【React 】react 创建项目配置 jsconfig.json 的作用 它主要用于配置 JavaScript 或 TypeScript 项目的根…

基于Java+Springboot+Vue开发的反诈视频宣传系统

项目简介 该项目是基于JavaSpringbootVue开发的反诈视频宣传系统&#xff08;前后端分离&#xff09;&#xff0c;这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能&#xff0c;同时锻炼他们的项目设计与开发能力。通过学习基于Java的反…

计算机网络-RSTP快速生成树基础概念

一、STP概念复习 在之前的学习中我们已经学习了STP的概念与作用。参考文章&#xff1a;计算机网络-生成树基础 STP&#xff08;Spanning Tree Protocol&#xff0c;生成树协议&#xff09; 是一种用于在局域网中消除数据链路层物理环路的协议。主要作用是防止交换机冗余链路产生…