【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】

⛄一、粒子群算法优化PID简介

1 PID控制器原理
PID控制器,由比例P、积分I和微分D 3个参数所构成.作为二阶线性控制器,比例、积分和微分这3个参数可以直接影响PID控制器的控制效果.所以,通过对比例、积分和微分3个参数进行调整[3],使系统达到良好的控制特性.协调这3个参数来实现控制器目标的最优值,并引入改进粒子群算法的特性,在给定的范围内对3个参数进行优化使其能达到最为合适的值,进而使整个控制系统性能达到最优.

在控制工业中最常见到的PID控制器的工作原理为:
【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第1张图片
其中,e(t)为控制误差,即:
在这里插入图片描述
用传递函数表示,则为:
在这里插入图片描述
其中,Kp为比例系数;Ki为积分系数;Kd为微分系数.

2 标准粒子群算法
粒子群算法(PSO)是一种较为成熟的群智能算法,启发于鸟群、蜂群等觅食的场景,把生物个体当作一个个粒子,并都处在一个D维空间进行搜索,通过迭代寻找最优解,并用适应度来评价解的好坏,最后根据当前搜索到的最优解来寻找全局最优解[4,5,6].在迭代过程中,粒子群由速度和位置两部分组成,其粒子速度由惯性部分、自我认知、社会经验3部分构成.粒子群的优化方程如公式(4)和公式(5)所示.
【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第2张图片
式中小标j表示微粒的第j维;i表示微粒i;t表示迭代次数;r1、r2是相互独立的随机函数(取值范围在0-1之间).c1、c1为学习因子加速常量(取值范围在0-2之间),是调节全局最优粒子飞行方向和粒子飞行步长的关键参数,所以适当的选择学习因子对整个系统是非常关键的[7].学习因子选择过大或者过小都会导致粒子不会飞向目标区域,c1、c1的适当选择需要考虑收敛速度的同时还要考虑算法陷入局部最优,所以通常把c1、c1学习因子的值设定为2.
其算法流程图如图1所示.
【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第3张图片
图1 标准PSO算法流程图

⛄二、部分源代码

clc
clear
close all
format long
global A_D; A_D = pi/180;
rho = 1025;
L = 0.5;
Fmax=[22.05;22.05;22.05;22.05;22.05;22.05];
nu = zeros(3,1);
eta = zeros(3,1);
error = zeros(3,3);
U_tao = zeros(3,1);
position =[4.5;3;A_D*10];
givenposition = zeros(3,1);

l_x1 = -0.25;
l_x2 = -0.25;
l_x3 = 0;
l_x4 = 0;
l_x5 = 0.25;
l_x6 = 0.25;

l_y1 = 0.25;
l_y2 = -0.25;
l_y3 = 0.25;
l_y4 = -0.25;
l_y5 = 0.25;
l_y6 = -0.25;

% 系统惯性矩阵
M = zeros(3,3);
M(1,1) = 4.9592;
M(2,2) = 5.4197;
M(2,3) = 0.0252;
M(3,2) = 0.0252;
M(3,3) = 0.2099;

% 阻尼矩阵
D = zeros(3,3);
D(1,1) = 0;
D(2,2) = 0.9788;
D(2,3) = -0.0601;
D(3,2) = 0.0559;
D(3,3) = 0.0378;

B_1 = [zeros(3,3);inv(M)];
E = B_1;

B_2=[1 0 1 0 1 0 1 0 1 0 1 0;
0 1 0 1 0 1 0 1 0 1 0 1;
l_y1 l_x1 l_y2 l_x2 l_y3 l_x3 l_y4 l_x4 l_y5 l_x5 l_y6 l_x6];
B = B_1*B_2;
C = [eye(3,3),zeros(3,3)];
A = [zeros(3,3),eye(3,3);zeros(3,3),-inv(M)*D];
h = 0.8;
j = 500;

⛄三、运行结果

【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第4张图片
【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第5张图片
【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第6张图片
【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第7张图片
【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第8张图片
【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第9张图片
【优化控制】基于matlab粒子群算法优化PID船舶航迹控制【含Matlab源码 2332期】_第10张图片

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]董如意,唐玉玉,桑可可.基于改进粒子群算法的PID控制器参数整定优化[J].吉林化工学院学报. 2022,39(07)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

你可能感兴趣的:(优化求解(Matlab),matlab)