%基于SOA算法的PID参数优化
clc % 清屏
clear all; % 删除workplace变量
close all; % 关掉显示图形窗口
%%参数设置
Umax=0.9500;%最大隶属度值
Umin=0.0111;%最小隶属度值
Wmax=0.9;%权重最大值
Wmin=0.1;%权重最小值
Dim = 3; % 维数
SwarmSize =30; % 粒子群规模
MaxIter = 100; % 最大迭代次数
MinFit = 10; % 最小适应值
Ub = [100 100 100];
Lb = [0 0 0];
%%种群初始化
Range = ones(SwarmSize,1)*(Ub-Lb);
Swarm = rand(SwarmSize,Dim).*Range + ones(SwarmSize,1)*Lb; % 初始化粒子群
fSwarm = zeros(SwarmSize,1);
for i=1:SwarmSize
fSwarm(i,:) = PID_SOA(Swarm(i,:)); % 粒子群的适应值
end
%%个体极值和群体极值
[bestf bestindex]=min(fSwarm);
zbest=Swarm(bestindex,:); % 全局最佳
gbest=Swarm; % 个体最佳
fgbest=fSwarm; % 个体最佳适应值
fzbest=bestf; % 全局最佳适应值
%迭代寻优
Di=0*rand(SwarmSize,Dim);
Buchang=0*rand(SwarmSize,Dim);
C=0*rand(SwarmSize,Dim);
Diego=0*rand(SwarmSize,Dim);
Dialt=0*rand(SwarmSize,Dim);
Dipro=0*rand(SwarmSize,Dim);
iter = 0;
y_fitness = zeros(1,MaxIter); % 预先产生4个空矩阵
K_p = zeros(1,MaxIter);
K_i = zeros(1,MaxIter);
K_d = zeros(1,MaxIter);
while( (iter < MaxIter) && (fzbest > MinFit) )
for i=1:SwarmSize
W=Wmax-iter*(Wmax-Wmin)/MaxIter;
Diego(i,:)=sign(gbest(i,:) -Swarm(i,:));%确定利己方向
Dialt(i,:)=sign(zbest -Swarm(i,:));%确定利他方向
if PID_SOA(gbest(i,:))>=PID_SOA(Swarm(i,:))%确定预动方向
Dipro(i,:)=-Di(i,:);
else
Dipro(i,:)=Di(i,:);
end
Di(i,:)=sign(W* Dipro(i,:)+0.5*Diego(i,:)+0.5*Dialt(i,:));%确定经验梯度方向
[Orderfgbest,Indexfgbest]=sort(fgbest,'descend');
u=Umax-(SwarmSize-Indexfgbest(i))*(Umax-Umin)/(SwarmSize-1);
U=u+(1-u)*rand;
H=(MaxIter-iter)/MaxIter;%迭代过程中权重的变化
C(i,:)=H*abs(zbest-10*rand(1,3));%确定高斯函数的参数
T=sqrt(-log(U));
Buchang(i,:)=C(i,:)*T;%确定搜索不长的大
Buchang(i,find(Buchang(i,:)>3*max(C(i,:))))=3*max(C(i,:));
%更新位置
Swarm(i,:)=Swarm(i,:)+Di(i,:).*Buchang(i,:);
Swarm(i,find(Swarm(i,:)>100))=100;
Swarm(i,find(Swarm(i,:)<0))=0;
% 适应值
fSwarm(i,:) =PID_SOA(Swarm(i,:));
% 个体最优更新
if fSwarm(i) < fgbest(i)
gbest(i,:) = Swarm(i,:);
fgbest(i) = fSwarm(i);
end
% 群体最优更新
if fSwarm(i) < fzbest
zbest = Swarm(i,:);
fzbest = fSwarm(i);
end
end
iter = iter+1; % 迭代次数更新
y_fitness(1,iter) = fzbest; % 为绘图做准备
K_p(1,iter) = zbest(1);
K_i(1,iter) = zbest(2);
K_d(1,iter) = zbest(3);
end
%%绘图
figure(1) % 绘制性能指标ITAE的变化曲线
plot(y_fitness,'LineWidth',2)
title('最优个体适应值','fontsize',10);
xlabel('迭代次数','fontsize',10);ylabel('适应值','fontsize',10);
set(gca,'Fontsize',10);
grid on
figure(2) % 绘制PID控制器参数变化曲线
plot(K_p,'r','LineWidth',2)
hold on
plot(K_i,'g','LineWidth',2)
plot(K_d,'b','LineWidth',2)
title('Kp、Ki、Kd 优化曲线','fontsize',10);
xlabel('迭代次数','fontsize',10);ylabel('参数值','fontsize',10);
set(gca,'Fontsize',10);
legend('Kp','Ki','Kd',1);
grid on
没有合适的资源?快使用搜索试试~ 我知道了~
MATLAB Simulink系统仿真 代码大合集.zip
共338个文件
slx:138个
m:88个
png:54个
1 下载量 21 浏览量
2023-01-05
10:35:13
上传
评论
收藏 3.68MB ZIP 举报
温馨提示
MATLAB Simulink系统仿真 代码大合集.zip
资源推荐
资源详情
资源评论
收起资源包目录
MATLAB Simulink系统仿真 代码大合集.zip (338个子文件)
ysw11_6.asv 256B
work1.asv 238B
ysw3_26plot.asv 151B
untitled.slx.autosave 18KB
ysw3_48.slx.autosave 11KB
ysw.bmp 231KB
ysw.fis 2KB
Desktop_1.ini 10B
Desktop_1.ini 10B
Desktop_2.ini 10B
Desktop_2.ini 10B
Desktop_2.ini 10B
Desktop_1.ini 10B
SOA.m 3KB
ysw12_1.m 3KB
PSO.m 3KB
BP_PID.m 2KB
ysw1_2.m 2KB
GA.m 2KB
ysw13_5s.m 2KB
sfun_ysw_s.m 1KB
sfun_ysw.m 1KB
ysw9_2ctrl.m 1KB
pid_GA.m 1KB
pid_pso.m 1KB
PID_SOA.m 1KB
ysw2_8.m 1KB
ysw9_4plant.m 1KB
ysw5_3.m 1KB
ysw9_3plant.m 1KB
ysw9_4ctrl.m 968B
ysw9_7ctrl.m 968B
ysw6_3.m 956B
ysw9_1ctrl2.m 916B
ysw4_11.m 870B
ysw15_8.m 846B
ysw3_26plant.m 805B
ysw9_6plant.m 800B
work1.m 797B
ysw9_6ctrl.m 780B
ysw9_3ctrl.m 777B
ysw9_1plant.m 761B
ysw9_5ctrl.m 760B
ysw9_5plant.m 755B
ysw9_7model.m 747B
ysw9_2plant.m 747B
ysw9_1ctrl1.m 739B
ysw1_1.m 738B
ysw9_7plant.m 736B
ysw13_3.m 722B
ysw9_1model.m 715B
ysw3_26ctrl.m 703B
ysw5_1.m 609B
ysw2_2.m 583B
ysw4_6.m 554B
ysw11_6.m 540B
shuchuquxianpso.m 538B
chap16_1.m 538B
chap16_11.m 534B
shuchuquxianGA.m 531B
shuchuquxianSOA.m 529B
ysw4_3.m 492B
ysw4_8.m 463B
ysw1_5.m 462B
ysw9_2plot.m 451B
ysw1_6.m 433B
ysw9_3plot.m 367B
ysw9_4plot.m 366B
ysw9_1plot.m 364B
ysw9_7plot.m 363B
chap16_9.m 359B
chap16_3.m 359B
ysw9_5plot.m 357B
ysw9_6plot.m 352B
ysw10_1.m 352B
chap16_12.m 345B
ysw5_2.m 344B
chap16_10.m 319B
chap16_2.m 318B
ysw4_2.m 291B
ysw1_8.m 276B
my_fun.m 266B
ysw1_3.m 259B
ysw13_4ctrl.m 255B
ysw13_4plot.m 244B
ysw13_5plot.m 242B
ysw15_5.m 235B
ysw15_4.m 220B
chap16_8.m 216B
ysw15_6.m 214B
chap16_6.m 200B
work2.m 192B
chap16_5.m 171B
ysw12_3.m 170B
chap16_7.m 169B
chap16_4.m 161B
ysw13_3plant.m 132B
ysw12_5.m 130B
hylv.m 80B
ysw1_4.m 57B
共 338 条
- 1
- 2
- 3
- 4
资源评论
海澜明月
- 粉丝: 25
- 资源: 3594
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功