资源简介
带有约束条件的粒子群算法代码pso.m
代码片段和文件信息
% 改进的快速粒子群优化算法 (APSO)
function apso
clear all;
Lb=[0.9 0.9 0 0.75 0 0]; %下边界
Ub=[1 1 1 1 12 2500]; %上边界
% 默认参数
para=[25 250 0.95]; %[粒子数,迭代次数,gama参数]
% APSO 优化求解函数
[gbestfmin]=pso_mincon(@cost@constraintLbUbpara);
% 输出结果
Bestsolution=gbest % 全局最优个体
fmin
%% 目标函数
function f=cost(x)
%s=[0;0;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0];%内燃机工作状态
%a=[1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1];%制冷剂工作12小时
%c=[0.524;0.524;0.524;0.524;0.524;0.524;0.524;0.524;0.875;0.875;0.875;1.217;1.217;1.217;1.217;1.217;0.875;0.875;0.875;1.217;1.217;1.217;0.875;0.875];%电价
f=x(1)*0.059*700+x(2)*0.039*4000*5+x(3)*0.0013*13800+x(4)*0.013*1200+x(5)*1000*0.43+x(6)*0.5;
% 非线性约束
function [ggeq]=constraint(x)
% 不等式限制条件
%Pd=xlsread(‘春夏负荷.xlsx‘‘sheet1‘‘C1:C24‘);
%Qh=xlsread(‘春夏负荷.xlsx‘‘sheet1‘‘B1:B24‘);
%Cload=xlsread(‘春夏负荷.xlsx‘‘sheet1‘‘A1:A24‘);
% 如果没有等式约束,则置geq=[];
Pd=9.95;
Qh=17.06;
Cload=1.8;
%Pd=xlsread(‘春夏负荷.xlsx‘‘sheet1‘‘C1:C24‘);
%Qh=xlsread(‘春夏负荷.xlsx‘‘sheet1‘‘B1:B24‘);
%Cload=xlsread(‘春夏负荷.xlsx‘‘sheet1‘‘A1:A24‘);
% 如果没有等式约束,则置geq=[];
g(1)=x(5)+x(1)*0.7+x(2)*4-Pd*1.0001-3.94*x(3);
g(2)=Pd*0.9999-(x(5)+x(1)*0.7+x(2)*4-3.94*x(3));
g(3)=x(1)+x(2)*4+0.8*x(6)/120-x(4)-Qh*1.0001;
g(4)=0.9999*Qh-(x(1)+x(2)*4+0.8*x(6)/120-x(4));
g(5)=1.2*x(4)+13.8*x(3)-Cload*1.0001;
g(6)=Cload*0.9999-(1.2*x(4)+13.8*x(3));
%if x(1)<0.5 x(1)=0;elsex(1)=1;end
geq=[];
%% APSO Solver
function [gbestfbest]=pso_mincon(fhandlefnonlinLbUbpara)
if nargin<=6
para=[25 250 0.95];
end
n=para(1);% 粒子种群大小
time=para(2); %时间步长,迭代次数
gamma=para(3); %gama参数
scale=abs(Ub-Lb); %取值区间
% 验证约束条件是否合乎条件
if abs(length(Lb)-length(Ub))>0
disp(‘Constraints must have equal size‘);
return
end
alpha=0.2; % alpha=[01]粒子随机衰减因子
beta=0.5; % 收敛速度(0->1)=(slow->fast);
% 初始化粒子群
best=init_pso(nLbUb);
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论