- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PID神经元网络解耦控制算法
%% 清空环境变量
clc
clear
%% 粒子初始化
%粒子群算法中的两个参数
c1=1.49445;
c2=1.49445;
%最大最小权值
wmax=0.9;
wmin=0.1;
%最大最小速度
Vmax=0.03;
Vmin=-0.03;
%最大最小个体
popmax=0.3;
popmin=-0.3;
maxgen=50; % 进化次数
sizepop=20; %种群规模
%随机产生一个种群
for i=1:sizepop
pop(i,:)=0.03*rand(1,45); %个体编码
fitness(i)=fun(pop(i,:)); %染色体的适应度
V(i,:)=0.003*rands(1,45); %初始化速度
end
%% 初始种群极值
%找最好的染色体
[bestfitness bestindex]=min(fitness);
zbest=pop(bestindex,:); %全局最佳
gbest=pop; %个体最佳
fitnessgbest=fitness; %个体最佳适应度值
fitnesszbest=bestfitness; %全局最佳适应度值
%% 迭代寻优
for i=1:maxgen
i
for j=1:sizepop
w=(wmax-wmin)*(i-1)/(maxgen)+wmin; %权值线性变化
V(j,:)=w*V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:)); %速度更新
V(j,find(V(j,:)Vmax))=Vmax; %小于最大速度
V(j,find(V(j,:)Vmin))=Vmin; %大于最小速度
%种群更新
pop(j,:)=pop(j,:)+0.5*V(j,:);
for k=1:45
if rand0.95
pop(j,k)=0.3*rand; %自适应变异
end
end
pop(j,find(pop(j,:)popmax))=popmax; %小于个体最大值
pop(j,find(pop(j,:)popmin))=popmin; %大于个体最小值
%适应度值
fitness(j)=fun(pop(j,:));
end
for j=1:sizepop
%个体极值更新
if fitness(j)fitnessgbest(j)
gbest(j,:) = pop(j,:);
fitnessgbest(j) = fitness(j);
end
%全局极值更新
if fitness(j)fitnesszbest
zbest = pop(j,:);
fitnesszbest = fitness(j);
end
end
%记录最优适应度值
yy(i)=fitnesszbest;
end
%% 最优个体控制
figure(1)
plot(yy)
title(粒子群算法进化过程);
xlabel(进化代数);ylabel(适应度);
individual=zbest;
w11=reshape(individual(1:6),3,2);
w12=reshape(individual(7:12),3,2);
w13=reshape(individual(13:18),3,2);
w21=individual(19:27);
w22=individual(28:36);
w23=individual(37:45);
rate1=0.006;rate2=0.001; %学习率
k=0.3;K=3;
y_1=zeros(3,1);y_2=y_1;y_3=y_2; %输出值
u_1=zeros(3,1);u_2=u_1;u_3=u_2; %控制率
h1i=zeros(3,1);h1i_1=h1i; %第一个控制量
h2i=zeros(3,1);h2i_1=h2i; %第二个控制量
h3
文档评论(0)