%% Tunning of PID controller using Particle Swarm Optimization
%
%
% Author: Wael Mansour ([email protected])
%
% MSc Student, Electrical Enginering Dept,
% Faculty of Engineering Cairo University, Egypt
%
%% Initialization
clear
clc
n = 50; % Size of the swarm " no of birds "
bird_setp =50; % Maximum number of "birds steps"
dim = 2; % Dimension of the problem
c2 =1.2; % PSO parameter C1
c1 = 0.12; % PSO parameter C2
w =0.9; % pso momentum or inertia
fitness=0*ones(n,bird_setp);
%-----------------------------%
% initialize the parameter %
%-----------------------------%
R1 = rand(dim, n);
R2 = rand(dim, n);
current_fitness =0*ones(n,1);
%------------------------------------------------%
% Initializing swarm and velocities and position %
%------------------------------------------------%
current_position = 10*(rand(dim, n)-.5);
velocity = .3*randn(dim, n) ;
local_best_position = current_position ;
%-------------------------------------------%
% Evaluate initial population %
%-------------------------------------------%
for i = 1:n
current_fitness(i) = tracklsq(current_position(:,i));
end
local_best_fitness = current_fitness ;
[global_best_fitness,g] = min(local_best_fitness) ;
for i=1:n
globl_best_position(:,i) = local_best_position(:,g) ;
end
%-------------------%
% VELOCITY UPDATE %
%-------------------%
velocity = w *velocity + c1*(R1.*(local_best_position-current_position)) + c2*(R2.*(globl_best_position-current_position));
%------------------%
% SWARMUPDATE %
%------------------%
current_position = current_position + velocity ;
%------------------------%
% evaluate anew swarm %
%------------------------%
%% Main Loop
iter = 0 ; % Iterations�counter
while ( iter < bird_setp )
iter = iter + 1;
for i = 1:n,
current_fitness(i) = tracklsq(current_position(:,i)) ;
end
for i = 1 : n
if current_fitness(i) < local_best_fitness(i)
local_best_fitness(i) = current_fitness(i);
local_best_position(:,i) = current_position(:,i) ;
end
end
[current_global_best_fitness,g] = min(local_best_fitness);
if current_global_best_fitness < global_best_fitness
global_best_fitness = current_global_best_fitness;
for i=1:n
globl_best_position(:,i) = local_best_position(:,g);
end
end
velocity = w *velocity + c1*(R1.*(local_best_position-current_position)) + c2*(R2.*(globl_best_position-current_position));
current_position = current_position + velocity;
sprintf('The value of interation iter %3.0f ', iter );
end % end of while loop its mean the end of all step that the birds move it
xx=fitness(:,50);
[Y,I] = min(xx);
current_position(:,I)
%

八九不离双
- 粉丝: 14
最新资源
- 846899267_ERPEL_31336_1755671174253.zip
- 846899267_ERP-frontend_34172_1755671144042.zip
- 基于知乎用户分享的旋转矩阵姿态估计算法优化项目_融合机械转速并忽略四元数k分量噪声以提高数值稳定性_采用更可读的矩阵运算子程序接口_用于提高无人机或机器人运动控制的精度和鲁棒性_技.zip
- 卡尔曼滤波器学习笔记项目_卡尔曼滤波算法原理推导与实现_状态估计与预测_传感器数据融合与噪声处理_线性系统建模与最优估计理论_递归贝叶斯滤波与最小均方误差准则_时间更新与测量更新步.zip
- 土木工程基于TRM法的饱和成层地基-梁耦合系统动力响应分析:地铁列车运行引发的地表振动建模与仿真(论文复现含详细代码及解释)
- 卡尔曼滤波算法入门教程与示例代码实现_卡尔曼滤波原理_状态估计_预测与更新_协方差矩阵_线性系统_噪声处理_传感器数据融合_最优估计_递归算法_数学推导_代码注释_实际应用案例_动.zip
- 卡尔曼滤波算法MATLAB仿真实现与代码示例_基于黄小平王岩编著教材第三章内容分离上传的代码文件夹_提供卡尔曼滤波原理学习与实践的MATLAB仿真资源_包含状态估计噪声处理系统.zip
- 卡尔曼滤波实验三项目_基于卡尔曼滤波算法的多传感器数据融合与状态估计系统_用于实时跟踪和预测动态系统的状态变化如目标跟踪导航定位和运动控制等场景_卡尔曼滤波状态估计数据融合.zip
- 卡尔曼滤波算法实现与Git版本控制回顾实践项目_状态估计噪声处理预测校正传感器数据融合线性系统建模协方差矩阵递归贝叶斯估计最优滤波理论MATLABPython仿真.zip
- 卡尔曼滤波算法实现与演示项目_状态估计噪声处理线性系统预测校正数据融合实时滤波传感器数据处理最优估计理论递归算法协方差矩阵观测更新时间更新_用于教学演示算法.zip
- ydldarling_mmwRadarPose_25548_1755669101470.zip
- 2015年全国大学生电子设计竞赛瑞萨杯风力摆控制系统开源项目_基于K60单片机与MPU6050传感器的风力摆控制系统设计_包含硬件原理图PCB工程代码工程上位机辅助开发工具及相关技.zip
- AI影视导航网_人工智能资源聚合平台_提供全球最全面的AI工具与影视内容整合服务涵盖ChatGPT对话Midjourney绘画AI图像生成智能写作视频处理编程辅助办公.zip
- Android10系统自动拒接非联系人短于8秒来电的智能过滤应用_电话拦截_联系人白名单_通话管理_智能识别_自动拒接_安卓应用开发_提升通话质量_减少骚扰电话_优化手机使用体验_.zip
- aiheshuyi_Power-System_15124_1755670905706.zip
- BesingCRX_5GMEC_UPF_34172_1755671259163.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


