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

举报
yd_293572134 发表于 2025/05/27 15:28:09 2025/05/27
【摘要】 1.课题概述     头脑风暴优化(Brain Storm Optimization, BSO)是一种受人类集体创新过程启发的群体智能算法。它通过模拟团队成员之间的信息交流和想法生成来寻找最优解。将BSO应用于模糊PI控制系统的参数优化中,可以提高控制系统的性能。本课题将通过MATLAB/simulink来实现基于头脑风暴优化的模糊PI控制系统simulink建模与仿真。2.系统仿真结果(完...

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

2.系统仿真结果
(完整程序运行后无水印)

1.jpeg

2.jpeg

3.jpeg

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)-1e5
    if mean(NFPIdat1(i:i+1e5))<=1e-5
       indx = [indx;i];
    end
end
obj2 = NFPIdat2(indx(1));
%计算抖动
obj3 = std(NFPIdat1(end-100:end));
z = obj1+obj2+obj3;

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

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

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

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

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

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

4.jpeg

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

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

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

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

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

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

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

5.jpeg

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

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。