1.一种基于改进粒子群算法的无人救生圈最优鲁棒控制方法,其特征在于:具体包括以下步骤:步骤一:搭建无人救生圈控制系统模型;
步骤二:获取控制系统的当前速度值和当前电流值,并将当前速度值与期望速度值进行比较得到速度误差值;
步骤三:构建改进粒子群算法的模型,将误差值输入到改进粒子群算法模型中,改进粒子群算法进行迭代得到优化后的PID参数;
步骤四:将速度误差值输入到速度PID控制器中,速度PID控制器应用粒子群算法优化后的PID参数进行计算并输出电机期望电流值到下一误差计算模块;控制系统获取当前电流值并与期望电流值进行比较计算得到电流误差值,将电流误差值输入到电流PID控制器中,所述电流PID控制器应用粒子群算法优化后的PID参数进行计算并输出电机参考电流值到驱动电路模块,最后经驱动电路模块输出电机所需的三相电压来驱动电机以需要的扭矩和速度进行运转,从而对无人救生圈进行控制;
其中,步骤三中改进粒子群算法优化PID参数,其特征在于:包括以下步骤:
a、在寻优范围内初始化m个粒子,即粒子群,包括初始化粒子的初始速度与初始位置,用速度和位置这两个指标表示粒子特征;速度表示每个粒子演化的方向,位置表示PID控制器中三个参数取值;初始化每个粒子时,利用公式(1)计算控制力矩τPID,并将控制力矩τPID应用到无人救生圈控制系统;
其中,式(1)中,τPID为控制力矩,kp、ki、kd分别为PID控制器的比例增益、积分增益、微分增益,e(t)为期望值与实际值的误差;
b、利用公式(2)计算目标函数f(ti),在保存粒子和f(ti)对应的值后,更新粒子的自身最佳已知位置Pbi和整个粒子群在搜索空间中的最佳位置Pg;
其中,公式2测量了粒子到ti时刻的平均累积误差;
在粒子更新完Pbi和Pg之后,利用公式(3)和公式(4)更新整个粒子群使各粒子获取到最新的速度和位置,惯性权重w随机减小;
k
其中,式(3)和式(4)中,i为粒子群中粒子的编号,Vi为编号i粒子的第k代粒子的速度,w为粒子的惯性权重,所述惯性权重的大小决定了继承上一代粒子运动速度的程度;c1,c2为加速度常数,c1,c2为非负值;r1,r2为每次迭代中0‑1之间的随机数; 为第k代粒子的位置;
Pbi为粒子的自身最佳已知位置;Pg为整个粒子群在搜索空间中的最佳位置;
c、为了防止在环境干扰的背景下算法过早收敛,对传统的粒子群算法加以改进,在算法收敛的过程中引入了“收敛再唤醒”的机制,具体来说,包括两个关键条件:σ<σmin (5)
其中,式(5)中,σ为粒子速度的标准差,量化了粒子之间的速度差异;σmin为规定的粒子速度标准差的最小值,当σ低于σmin时,可以认为粒子群算法是收敛的;第二个条件:f(ti)/f(ti‑1)>Nf (6)
其中,式(6)中,f(ti)为粒子到ti时刻的平均累积误差,Nf为一个不大于1的常数;式(6)量化了平均累积误差的变化趋势,若公式(6)成立,则可以假定ti时刻应用的控制不是最优的,这可能是由来自环境的干扰引起的;
若公式(5)或公式(6)有一个不满足,即粒子群没有收敛或者ti时刻的控制是最优的,则继续执行算法迭代,更新粒子群;
若公式(5)和公式(6)都满足,即收敛后的解不是最优解,则执行“收敛再唤醒”机制;进一步地,为了执行“收敛再唤醒”机制,从m个粒子中随机选取t个粒子,使这t个粒子在当前收敛值的邻域内进行搜索,以寻找新的最优解;t取值为0.2m;局部搜索的邻域是一个半径为R的多维超球,选取的粒子位置初始化如下:其中,式(7)中,j取1到t,ρ∈R为在‑1和1之间的一个随机数向量,每次在对t个粒子进行评估时,都会更新对应粒子j的自身最佳已知位置Pbi和整个粒子群在搜索空间中最佳位置Pg;
由于粒子数量较少、搜索空间有限且惯性权重w在不断减小,因此总能满足公式(5);但是,局部搜索将继续,直到公式(6)不再满足为止;这样,整个粒子群中所有粒子的位置都会被Pg所取代,得到当前时刻相对最优解,进化回退到初始状态,利用公式(1)计算控制力矩τPID,并将控制力矩τPID应用到无人救生圈控制系统,循环往复。
2.根据权利要求1所述的一种基于改进粒子群算法的无人救生圈最优鲁棒控制方法,其特征在于:控制系统模型包括:误差计算模块、改进粒子群算法模块、速度PID控制器模块、电流PID控制器模块、驱动电路模块、电机模块、电流检测模块、速度检测模块;
其中,误差计算模块来计算期望速度与当前速度的误差以及期望电流以及当前电流的误差;
其中,改进粒子群算法模块通过采集误差值并且经过算法迭代计算得到最优PID参数值,并将PID参数值注入PID控制器模块来使系统获得最优鲁棒控制;
其中,速度PID控制器模块采集速度误差值结合PID参数值进行计算输出,电流PID控制器模块采集电流误差值结合PID参数进行计算输出;
其中,驱动电路模块输出驱动电压进行电机驱动;
其中,电流检测模块和速度检测模块分别从系统中采集当前电流值和当前速度值。