基于改进粒子群算法的无人救生圈最优鲁棒控制方法转让专利

申请号 : CN202210903023.8

文献号 : CN114967428B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张玉璘唐子浩李忠涛

申请人 : 济南大学

摘要 :

本发明公开了一种基于改进粒子群算法的无人救生圈最优鲁棒控制方法;其特征在于:在无人救生圈控制系统引入基于改进粒子群算法的PID控制器,通过改进粒子群算法对PID控制器的参数进行在线实时调整,PID控制器的三个参数kp、ki、kd由改进的粒子群算法优化后输出得到;所述改进粒子群算法引入“收敛再唤醒”机制,在粒子群收敛后重新唤醒一部分粒子离开收敛域再次进行局部搜索以得到更优解,提高了无人救生圈控制系统的稳定性。

权利要求 :

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参数进行计算输出;

其中,驱动电路模块输出驱动电压进行电机驱动;

其中,电流检测模块和速度检测模块分别从系统中采集当前电流值和当前速度值。

说明书 :

基于改进粒子群算法的无人救生圈最优鲁棒控制方法

技术领域

[0001] 本发明涉及PID控制技术领域,具体涉及一种基于改进粒子群算法的无人救生圈最优鲁棒控制方法。

背景技术

[0002] 随着严夏季的到来,溺水事件频频高发,溺水死亡严重威胁到我国人民的生命财产安全。而城市河流、公园湖泊、郊区水库以及海滨场所是溺水事件的高发场所。传统的溺水救援方式中,依靠人力的救援具有施救者死亡比例高,施救风险大的缺点。而救援冲锋舟、皮筏艇等大型救生产品价格太贵导致救援设备数量难以扩大,使得在危急时期无法迅速征调救援设备,贻误救援时机。并且在出现救援距离远等问题时,此类设备机动性缓慢,极易耽误救援时间。因此一种可以在水域快速前进的无人救生圈可以在溺水发生时稳定高效地进行现场救援。
[0003] 控制系统是电动无人救生圈的大脑,其性能优劣将直接影响无人救生圈的续航里程、扭矩输出、安全可靠性等整体性能。由此可见,研究并掌握无人救生圈控制系统的高端控制技术至关重要,尤其是提升系统的高效性与稳定性非常关键。
[0004] 无人救生圈控制系统本身就是一个多变量、非线性、强耦合系统,因此很难对这样一个复杂的系统进行精确的目标化控制。目前,无人救生圈的电机普遍采用速度和电流双闭环控制方法,对速度的控制大部分利用传统的 PID 控制器,传统 PID 控制虽然原理简单,但是鲁棒性和抗干扰性有待提高。现有的针对无人救生圈的控制方法主要包括以下两个方面:第一,在控制器搭建完毕后,PID参数需要依靠经验调节,不能快速找到最优参数值,加之永磁同步电机参数和实际运行环境千差万别,因此,PID参数的调节有一定的难度。第二,传统PID控制器存在参数不能在线实时调整以及面对复杂非线性系统应用效果不佳,可能会使无人救生圈使用中突然发生失速的严重故障。

发明内容

[0005] 针对现有技术的不足,本发明提供了一种基于改进粒子群算法的无人救生圈最优鲁棒控制方法,该方法能够使无人救生圈具有强鲁棒性和高稳定性的同时也兼备高效性和强抗扰动能力。通过改进粒子群优化算法不仅可以解决传统PID控制性能效率低和对工作环境变化适应性差的问题,而且跟一般的粒子群算法相比,此方法在粒子群算法中引入“收敛再唤醒”机制的重大改进,可以更好、更快地更新解,并防止过早收敛。
[0006] 本发明的目的通过如下技术方案来实现:
[0007] 步骤一:搭建无人救生圈控制系统模型;
[0008] 所述步骤一中无人救生圈控制系统模型,包括:误差计算模块、改进粒子群算法模块、速度PID控制器模块、电流PID控制器模块、驱动电路模块、电机模块、电流检测模块、速度检测模块。其中,误差计算模块来计算期望速度与当前速度的误差以及期望电流以及当前电流的误差;改进粒子群算法模块通过采集误差值并且经过算法迭代计算得到最优PID参数值,并将PID参数值注入PID控制器模块来使系统获得最优鲁棒控制;速度PID控制器模块采集速度误差值结合PID参数值进行计算输出,电流PID控制器模块采集电流误差值结合PID参数进行计算输出;驱动电路模块输出驱动电压进行电机驱动;电流检测模块和速度检测模块分别从系统中采集当前电流值和当前速度值;
[0009] 步骤二:获取控制系统的当前速度值和当前电流值,并将当前速度值与期望速度值进行比较得到速度误差值;
[0010] 步骤三:构建改进粒子群算法的模型,将误差值输入到改进粒子群算法模型中,改进粒子群算法进行迭代得到优化后的PID参数;
[0011] 步骤四:将速度误差值输入到速度PID控制器中,速度PID控制器应用粒子群算法优化后的PID参数进行计算并输出电机期望电流值到下一误差计算模块;控制系统获取当前电流值并与期望电流值进行比较计算得到电流误差值,将电流误差值输入到电流PID控制器中,所述电流PID控制器应用粒子群算法优化后的PID参数进行计算并输出电机参考电流值到驱动电路模块,最后经驱动电路模块输出电机所需的三相电压来驱动电机以需要的扭矩和速度进行运转,从而对无人救生圈进行控制。
[0012] 进一步地,所述步骤一中无人救生圈控制系统模型,包括:误差计算模块、改进粒子群算法模块、速度PID控制器模块、电流PID控制器模块、驱动电路模块、电机模块、电流检测模块、速度检测模块。其中,误差计算模块来计算期望速度与当前速度的误差以及期望电流以及当前电流的误差;改进粒子群算法模块通过采集误差值并且经过算法迭代计算得到最优PID参数值,并将PID参数值注入PID控制器模块来使系统获得最优鲁棒控制;速度PID控制器模块采集速度误差值结合PID参数值进行计算输出,电流PID控制器模块采集电流误差值结合PID参数进行计算输出;驱动电路模块输出驱动电压进行电机驱动;电流检测模块和速度检测模块分别从系统中采集当前电流值和当前速度值。
[0013] 进一步地,所述步骤四中PID控制器,其特征在于,PID控制器的三个参数kp、ki、kd由改进的粒子群算法优化后输出得到,该经由改进的粒子群算法优化过的PID控制器具有较快的收敛速度、抑制抖振现象、受干扰时PID增益的实时调整以及显著降低跟踪误差等优点。
[0014] 进一步地,改进的粒子群优化算法,其特征在于,粒子群中注入的粒子包含位置和速度两个维度的信息,所述粒子群每次迭代后都会更新整个粒子群在搜索空间中的最佳位置以及粒子群中每个粒子自身最佳已知位置。在经过多次迭代后整个粒子群会最终收敛,通过引入“收敛再唤醒”机制将收敛后但没有得到最优解的粒子群重新唤醒,使粒子群再次开始迭代计算以获取更优的解。
[0015] 进一步地,“收敛再唤醒”机制,其特征在于,当粒子群收敛但求得的解并非全局最优时,随机选择唤醒一部分已经收敛的粒子,迫使它们离开收敛域再次开始迭代搜索以寻求更优解。
[0016] 进一步地,所述步骤三中粒子群算法优化PID参数,包括:
[0017] a、在寻优范围内初始化m个粒子,即粒子群,包括初始化粒子的初始速度与初始位置,用速度和位置这两个指标表示粒子特征;速度表示每个粒子演化的方向,位置表示PID控制器中三个参数取值;初始化每个粒子时,利用公式(1)计算控制力矩τPID,并将控制力矩τPID应用到无人救生圈控制系统;
[0018]    (1)
[0019] 其中,式(1)中,τPID为控制力矩,kp、ki、kd分别为PID控制器的比例增益、积分增益、微分增益,e(t)为期望值与实际值的误差;
[0020] b、利用公式(2)计算目标函数f(ti),在保存粒子和f(ti)对应的值后,更新粒子的自身最佳已知位置(Pbi)和整个粒子群在搜索空间中的最佳位置(Pg);
[0021]    (2)
[0022] 其中,式(2)中,t为粒子当前所处时刻,公式(2)测量了粒子到ti时刻的平均累积误差。在粒子更新完Pbi和Pg之后,利用公式(3)和公式(4)更新整个粒子群使各粒子获取到最新的速度和位置,惯性权重w随机减小;
[0023]  (3)
[0024]   (4)
[0025] 其中,式(3)和式(4)中,i为粒子群中粒子的编号, 为编号i粒子的第k代粒子的速度,w为粒子的惯性权重,所述惯性权重的大小决定了继承上一代粒子运动速度的程度;c1,c2为加速度常数(非负);r1, r2为每次迭代中0‑1之间的随机数; 为第k代粒子的位置;Pbi为粒子的自身最佳已知位置;Pg为整个粒子群在搜索空间中的最佳位置;
[0026] c、为了防止在环境干扰的背景下算法过早收敛,本发明对传统的粒子群算法加以改进,在算法收敛的过程中引入了“收敛再唤醒”的机制,具体来说,包括两个关键条件:
[0027]     (5)
[0028] 其中,式(5)中,σ为粒子速度的标准差,量化了粒子之间的速度差异;σmin为规定的粒子速度标准差的最小值,当σ低于σmin时,可以认为粒子群算法是收敛的。第二个条件:
[0029]   (6)
[0030] 其中,式(6)中,f(ti)为粒子到ti时刻的平均累积误差,Nf为一个不大于1的常数;式(6)量化了平均累积误差的变化趋势,若该比率高于规定值Nf,则可以假定ti时刻应用的控制不是最优的,这可能是由来自环境的干扰引起的;
[0031] 若公式(5)或公式(6)有一个不满足,即粒子群没有收敛或者ti时刻的控制是最优的,则继续执行算法迭代,更新粒子群;
[0032] 若公式(5)和公式(6)都满足,即收敛后的解不是最优解,则执行“收敛再唤醒”机制。进一步地,为了执行“收敛再唤醒”机制,随机选取t(t=0.2m)个粒子,让这些粒子在当前收敛值的邻域内进行搜索,以寻找新的最优解。局部搜索的邻域是一个半径为R的多维超球,选取的粒子位置初始化如下:
[0033]     (7)
[0034] 其中,式(7)中,j取1到t,ρ∈R为在‑1和1之间的一个随机数向量,每次在对t个粒子进行评估时,都会更新对应粒子j的自身最佳已知位置(Pbi)和整个粒子群在搜索空间中最佳位置(Pg)。
[0035] 由于粒子数量较少、搜索空间有限且惯性权重w在不断减小,因此总能满足公式(5)。但是,局部搜索将继续,直到公式(6)不再满足为止。这样,整个粒子群(有m个粒子)中所有粒子位置都会被Pg所取代,得到当前时刻相对最优解,进化回退到初始状态,利用公式(1)计算控制力矩τPID,并将控制力矩τPID应用到无人救生圈控制系统,循环往复。
[0036] 本发明的有益效果如下:
[0037] 该控制器在快速收敛、抑制PID增益的抖振、遇到内外干扰时自适应调整PID系数、提高位置和速度跟踪精度等方面优于标准粒子群算法和常规PID控制器。因此,当无人救生圈处于不同水域中工作时,能够具备优秀的抗干扰能力和环境自适应能力,达到快速启动和稳定高效工作的目的。

附图说明

[0038] 图1无人救生圈控制系统结构图。
[0039] 图2改进粒子群算法优化PID参数流程图。
[0040] 图3改进粒子群算法优化PID参数伪代码。

具体实施方式

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