本发明属于船舶动力定位控制领域,具体涉及一种基于改进nsga-ⅱ的动力定位多目标优化方法。
背景技术:
随着人们对于资源需求的不断增加,陆地石油及天然气资源日渐枯竭,海洋资源成为了探索和开发的重点。动力定位作为深海开发必不可少的关键性技术受到了重视。动力定位,是指利用船舶自身推进器产生的推力,抵消外部环境如:风、浪、流产生的干扰,维持船舶的位置和艏向,使得船舶能够在指定位置范围内工作。与传统的锚泊系统相比,动力定位技术具有不受水深限制,操作灵活,定位精度高的优点。但是,由于推进器在调整船舶位置和艏向的过程中会消耗燃料,存在经济性和环保性问题。
本发明采用改进nsga-ⅱ的智能控制算法,对于动力定位动态面控制器的控制效果以及船舶的燃料消耗两方面问题进行优化。目前,国内外文献未见利用本方法的动力定位多目标问题优化方法。
技术实现要素:
本发明的目的在于提供一种基于nsga-ⅱ的动力定位多目标优化方法,它解决了控制器控制效果和船舶能源消耗的多目标优化问题。
一种基于改进nsga-ⅱ的动力定位多目标优化方法,包括以下步骤:
(1)建立动力定位船的三自由度动力学模型和运动学模型;
(2)利用动态面控制方法设计船舶动力定位控制律;
(3)建立动力定位船的能源消耗模型;
(4)选取优化目标函数,利用改进的nsga-ⅱ调节动态面控制器的控制参数,对控制器效果及船舶能源消耗进行多目标问题优化。
所述建立动力定位船的三自由度动力学模型和运动学模型,包括:
动力定位船的三自由度动力学模型和运动学模型为以下形式:
其中,η=[x,y,ψ]t表示在大地坐标系下船的位置(x,y)和艏向ψ;υ=[u,v,r]t表示船体坐标系下的纵荡、横荡方向上的线速度u,v和艏摇方向上的角速度r;m为系统惯性矩阵;d(υ)为水动力阻尼系数矩阵;τ为船舶推进系统产生的控制输入量;w为外界环境干扰产生的力和力矩;
其中,m为船舶质量,iz为船舶的转动惯量;xg为重心g在船体坐标系下的位置;
所述利用动态面控制方法设计船舶动力定位控制律,包括:
建立第一个船舶位置姿态误差动态面:
s1=η-ηd
其中:ηd为期望的船舶位置姿态,对s1求导得:
则υ的虚拟反馈控制率为:
φ1=-r-1(ψ)k1s1
其中,k1∈r3×3为正定的对角矩阵;
为φ1设计一个一阶低通滤波器:
其中,td∈r3×3为滤波器的时间常数矩阵,xd为滤波器的输出值;
建立第二个船舶速度误差动态面:
s2=υ-xd
综合上述公式及船舶模型,得到:
船舶动力定位的动态面控制器的控制律设计如下:
其中,k1,k2,td为动态面控制器控制参数;
将设计的控制律τ代入动力定位船的三自由度动力学和运动学模型,得到:
由此,得出每一时刻动力定位船的状态η(k1,k2,td,t)、υ(k1,k2,td,t)。
所述建立动力定位船的能源消耗模型,包括:
船体的螺旋桨推进力为:
ft=(1-tp0)ρn2dp4kt(j)
其中,tp0为推力减额系数;ρ表示流体密度,n为螺旋桨转速;dp为螺旋桨直径;kt(j)为无因次推力系数且满足下式:
kt(j)=k0+k1j+k2j2
其中,
船舶的推进系统的推力为:
ft=av2+bvn+cn2
其中,a,b,c为有因次系数,且满足
a=(1-tp0)(1-wp)2ρd2pk2
b=(1-tp0)(1-wp)2ρd3pk1
c=(1-tp0)ρd4pk0
实际的螺旋桨推进器的功率消耗为:
其中,kq,kt分别表示螺旋桨推进器的推力系数和转矩系数。
所述选取优化目标函数,利用改进的nsga-ⅱ调节动态面控制器的控制参数,对控制器效果及船舶能源消耗进行多目标问题优化,包括:
选取的两个优化目标函数如下:
f1(x)=mine=min{η(x)-ηd}
其中:x=(x1,x2,x3)=(k1,k2,td);
改进的nsga-ii新生成解的接受概率为:
其中,m为优化的目标数,ri为第i个目标的范围;
依据接受概率的局部搜索过程包括:选择要进行局部搜索的个体x,选择单位长度随机向量ν、指定的步长λ遍历周围的解x″=x′+λ·v,x′=x,判断x′和x″的支配关系;
若x″支配x′,则x″解较优,令x′=x″,λ=λ/2,缩小步长,进一步在x″附近搜索更优解;
若二者不存在支配关系,属于同一层级,则把x″作为非支配解加入外部种群;
若x′支配x″,需要依据概率接受x″,计算方式如下:
若任意生成的rand(·)∈(0,1),使得rand(·)≤prob,则依据概率选择接受解x″,缩小步长λ=λ/2;反之,则丢弃这个解,继续下一步搜索,直到满足所规定的总步长,即将指定解的周围搜索完毕,局部搜索结束。
本发明的有益效果在于:
1、本发明应用改进nsga-ⅱ方法对动态面控制器参数进行调整,解决了控制器参数多靠人工经验选取,易造成适应性差、控制效果不佳的问题,提高了优化性能,缩短整定时间,增强对控制目标的适应性。
2、本发明考虑了动力定位改变自身位置及姿态过程中的能源消耗问题,利用改进的nsga-ⅱ整定控制器参数,减小推进器的能耗,增强环保性和经济性。
3、本发明不同于传统的多目标优化问题解决方法,即选取权重将多目标问题转化为单目标问题解决。提出了利用改进的nsga-ⅱ的方法,直接优化多个目标,给出pareto最优解,并可结合实际情况,选出最适应需求的解。
4.本发明提出了改进的nsga-ⅱ方法,增加外部种群,记录存储非支配解,增加了种群的丰富性;引入依据接受概率的局部搜索方法,在一定程度上解决了算法陷入局部最优的问题,提高了算法的搜索能力和性能。
附图说明
图1是船体坐标系和大地固定坐标系;
图2是nsga-ⅱ的算法流程图;
具体实施方式
下面结合附图对本发明做进一步描述。
随着人们对于资源需求的不断增加,陆地石油及天然气资源日渐枯竭,海洋资源成为了探索和开发的重点。动力定位作为深海开发必不可少的关键性技术受到了重视。动力定位,是指利用船舶自身推进器产生的推力,抵消外部环境如:风、浪、流产生的干扰,维持船舶的位置和艏向,使得船舶能够在指定位置范围内工作。与传统的锚泊系统相比,动力定位技术具有不受水深限制,操作灵活,定位精度高的优点。但是,由于推进器在调整船舶位置和艏向的过程中会消耗燃料,存在经济性和环保性问题。
本发明采用改进nsga-ⅱ的智能控制算法,对于动力定位动态面控制器的控制效果以及船舶的燃料消耗两方面问题进行优化。目前,国内外文献未见利用本方法的动力定位多目标问题优化方法。
1、一种基于改进nsga-ⅱ的动力定位多目标优化方法,该方法针对动力定位控制器控制效果和系统的能源消耗两个目标问题,采用了改进的nsga-ⅱ的算法调整动力定位动态面控制器参数,优化控制效果,同时降低能源消耗。首先
建立动力定位船的三自由度动力学模型和运动学模型,
利用动态面控制方法设计船舶动力定位控制律,得到每一时刻下船舶位置姿态与期望的位置姿态的误差;
其次建立动力定位螺旋桨推进系统能源消耗模型,计算在不同时刻的船速下推进系统的能源消耗功率;
最后选取船舶位置姿态误差和推进系统功率消耗作为优化目标函数,两个优化目标函数的自变量是动态面控制器的控制参数。引入带有外部种群和依据接受概率的局部搜索的改进nsga-ⅱ算法,针对上述的两个目标函数进行多目标优化,即对动态面控制器的参数进行整定,能够得到pareto最优解,根据实际情况,选择相应参数,即在可接受的误差范围内,选取使得能源消耗小的解。
选取能够解决反步控制微分爆炸问题的动态面控制方法,来设计动力定位控制器。动力定位的动态面控制律设计为:
式中:k1,k2,td为动态面控制器控制参数。
将设计的控制律τ代入动力定位船的三自由度动力学和运动学模型,可以得到
根据上述公式,可以得出每一时刻动力定位船的状态η(k1,k2,td,t)、υ(k1,k2,td,t),并且它们与动态面控制器参数有关。
选取船舶位置姿态误差和推进系统能源消耗作为优化目标函数,利用nsga-ⅱ的方法对动态面控制器参数进行整定,可以得到pareto最优解,并根据实际情况,选取所需的解。
选取的两个优化目标函数如下:
f1(x)=mine=min{η(x)-ηd}
式中:x=(x1,x2,x3)=(k1,k2,td)
在nsga-ⅱ的基础上,提出了增加种群丰富性和多样性的方法。在算法中设立两个种群,外部种群和内部种群,内部种群在算法的作用下进行选择、交叉、变异,外部种群用来记录、存储通过快速非支配排序得到的非支配解。当内部种群趋于收敛时,由外部种群中的个体随机生成来对原始种群进行更新,即二次初始化。同时,对外部种群的规模进行限制,在外部种群个体数达到最大时,用拥挤度算子来优先删除稠密区域的解。这样增加了种群的多样性,提高了算法的搜索能力和性能。
针对nsga-ⅱ易陷入局部最优解的问题,在遗传算法的选择操作中引入了依据接受概率的局部搜索方法。提高了nsga-ii的局部搜索能力,增加最优解的收敛速度和精度。下面给出新生成解的接受概率。
式中,m为优化的目标数,在这里取m=2,ri为第i个目标的范围。
依据接受概率的局部搜索过程具体描述如下:选择要进行局部搜索的个体x,选择单位长度随机向量ν、指定的步长λ遍历周围的解x″=x′+λ·v,x′=x,判断x′和x″的支配关系。
若x″支配x′,则x″解较优,令x′=x″,λ=λ/2,缩小步长,进一步在x″附近搜索更优解;
若二者不存在支配关系,属于同一层级,则把x″作为非支配解加入外部种群;
若x′支配x″,需要依据概率接受x″,计算方式如下:
若任意生成的rand(·)∈(0,1),使得rand(·)≤prob,则依据概率选择接受解x″,缩小步长λ=λ/2;反之,则丢弃这个解,继续下一步搜索,直到满足所规定的总步长,即将指定解的周围搜索完毕,局部搜索结束。
本发明的目的按以下步骤实现:
1.建立动力定位船的三自由度动力学模型和运动学模型
按照图1建立大地坐标系noe和船体坐标系xbo′yb。
动力定位船的三自由度动力学模型和运动学模型为以下形式:
式中,η=[x,y,ψ]t表示在大地坐标系下船的位置(x,y)和艏向ψ;υ=[u,v,r]t表示船体坐标系下的纵荡、横荡方向上的线速度u,v和艏摇方向上的角速度r;m为系统惯性矩阵;d(υ)为水动力阻尼系数矩阵;τ为船舶推进系统产生的控制输入量;w为外界环境干扰产生的力和力矩。
式中,m为船舶质量,iz为船舶的转动惯量;xg为重心g在船体坐标系下的位置;
2.利用动态面控制方法设计船舶动力定位控制律
动态面控制方法是基于反步控制发展起来的,反步控制在对虚拟控制量求导的过程中容易引起微分爆炸的情况,动态面控制引入一阶积分滤波器来计算虚拟控制量的导数,消除了微分项的膨胀,减少了计算的复杂性。这里为动力定位设计动态面控制器。
(1)建立第一个船舶位置姿态误差动态面
s1=η-ηd
式中:ηd为期望的船舶位置姿态,对s1求导可得:
则υ的虚拟反馈控制率可以设计为:
φ1=-r-1(ψ)k1s1
式中:k1∈r3×3为正定的对角矩阵。为φ1设计一个一阶低通滤波器。
式中:td∈r3×3为滤波器的时间常数矩阵。xd为滤波器的输出值。
(2)建立第二个船舶速度误差动态面
s2=υ-xd
综合上述公式及船舶模型,可以得到:
由此,船舶动力定位的动态面控制器的控制律设计如下:
式中:k2∈r3×3为正定的对角矩阵。
将上面的公式代入计算,可得关于控制参数k1,k2,td的控制律:
τ=d(υ)υ-w-k2(υ-xd)+mtd-1(-r-1(ψ)k1(η-ηd)-xd)
将设计的控制律τ代入动力定位船的三自由度动力学和运动学模型,可以得到
根据上述公式,可以得出每一时刻动力定位船的状态η(k1,k2,td,t)、υ(k1,k2,td,t),并且它们与动态面控制器参数有关。
3.建立动力定位船的能源消耗模型
计算船体的螺旋桨推进力为:
ft=(1-tp0)ρn2dp4kt(j)
式中,tp0为推力减额系数;ρ表示流体密度,n为螺旋桨转速;dp为螺旋桨直径;kt(j)为无因次推力系数且满足
kt(j)=k0+k1j+k2j2
式中:
ft=av2+bvn+cn2
式中:a,b,c为有因次系数,且满足
a=(1-tp0)(1-wp)2ρd2pk2
b=(1-tp0)(1-wp)2ρd3pk1
c=(1-tp0)ρd4pk0
实际的螺旋桨推进器的功率消耗为:
式中:kq,kt分别表示螺旋桨推进器的推力系数和转矩系数。
4.选取优化目标函数,利用改进的nsga-ⅱ调节动态面控制器参数,对控制器效果及船舶能源消耗进行多目标问题优化
本发明欲达到的效果是使得控制器的控制效果精确的同时保证系统能源消耗低,但由于控制效果精确就要控制器不停地调整船舶的位置及姿态来抵御环境力及外界干扰,这就使系统的能源消耗增加,这是两个相互矛盾的多目标优化问题。改进的nsga-ⅱ算法是用来解决这样的多目标优化问题,能够得到pareto最优解,并根据需求选取pareto前沿面上的点作为所求解,即可以在误差可接受的范围内选取能源消耗小的方案。
(1)选取优化目标函数
本发明利用改进的nsga-ⅱ算法调整动态面控制器的参数,使得控制效果精确,控制误差减小,同时,使得推进器能源消耗低。因此,需要有两个值来量化、评测这两个目标,这里选取位置姿态误差和推进器功率消耗。
位置姿态误差
评价控制器的控制效果,将动态面控制器控制后输出的船舶位置姿态与期望的船舶位置姿态相比较,用二者之间的误差来描述控制器的控制效果。选取船舶的位置姿态误差作为第一个目标函数:
f1(x)=mine=min{η(x)-ηd}
推进器功率消耗
选取推进器功率消耗来评价推进系统的能源消耗,为降低系统所消耗的能源,应使得推进器功率消耗最小,选取的第二个目标函数如下:
式中:x=(x1,x2,x3)=(k1,k2,td)
(2)改进的nsga-ⅱ算法
本文选取的用来解决多目标优化问题的nsga-ⅱ算法,是在nsga的基础上提出的,它比nsga算法更加优越:它采用了快速非支配排序算法,解决了nsga一直被人诟病的计算复杂性问题;利用计算较为简便的拥挤度和拥挤度比较算子作为快速非支配排序分层后同一层级中比较的标准,代替了需要指定的共享半径,使准pareto域中的个体能均匀分布到整个pareto域上去,保持了种群的多样性;引入了精英策略,扩大了采样空间,防止最佳个体的丢失,提高了算法的运算速度和鲁棒性。
本发明在nsga-ⅱ算法的基础上进行了改进,提出了增加外部种群进行二次初始化以及依据接受概率的局部搜索方法。通过这两处改进,增加了种群的多样性,提高了算法的搜索能力,解决了nsga-ⅱ算法易陷入局部最优的问题,提高了算法的性能。
nsga-ⅱ算法的流程图如附图2。具体执行步骤如下:
步骤一:初始化种群
根据所选的优化目标函数和约束条件,随机产生规模为n的初始种群,快速非支配排序后,增加外部种群用来记录存储排序后的非支配解,以备稍后用来进行二次初始化。通过遗传算法的选择、交叉、变异三个基本操作得到内部种群的第一代子代种群。该算法的优越处在于在选择算子执行前,根据个体之间的支配关系进行分层,可以加快后续操作的过程。同时增加了外部种群记录非支配解,以待内部种群收敛时进行二次初始化,对内部种群进行更新,增加了种群多样性,防止陷入局部最优解。
快速非支配排序
初始化种群为n,根据两个优化目标函数,能够得到个体之间的支配关系,计算每个个体i的两个参数np和sp,即种群中支配个体i的个体数和个体i支配种群中其他个体的个体数。算法的主要步骤是:找到种群中所有np=0的个体,并保存在当前集合f中;对于当前集合f中的每个个体,其所支配的个体集合为si,遍历si中的每个个体l,执行nl=nl-1,如果nl=0则将个体l保存在集合h中;记f中得到的个体为第一个非支配层的个体,并以h作为当前集合,重复上述操作,直至整个种群被分层
外部种群
本发明在基础的算法上进行了改进,增加了一组外部种群,用来记录存储通过快速非支配排序后得到的非支配解,内部种群在遗传算子的作用下进行选择、遗传、变异,在其趋于收敛时,由外部种群中的个体随机生成来对内部种群进行更新,即二次初始化。同时,对外部种群的规模进行限制,在外部种群个体数达到最大时,用拥挤度算子来优先删除稠密区域的解。这样增加了种群多样性,提高了算法的搜索能力和性能。
步骤二:从第二代开始,将父代种群与子代种群合并,进行快速非支配排序,同时对每个非支配层中的个体进行拥挤度计算,根据非支配关系以及个体的拥挤度选取合适的个体组成新的父代种群;
拥挤度计算及拥挤度比较算子
计算拥挤度nd,对于每个目标函数,基于该目标函数对种群进行排序,令边界的两个个体的拥挤度为无穷,计算nd=nd+(fm(i+1)-fm(i-1)),n=2,3,…,n-1。通过快速非支配排序及拥挤度计算后,种群的每个个体都有非支配序rank和拥挤度nd两个属性,可以区分种群中任意两个个体的支配和非支配关系。定义拥挤度比较算子≥n,个体的优劣比较依据为:i≥nj,即个体i优于个体j,当且仅当irank<jrank或irank=jrank且id>jd
依据接受概率的局部搜索方法
在利用遗传算法进行选择操作的时候,为了提高nsga-ii的局部搜索能力,增加最优解的收敛速度和精度,这里引入了一种依据概率的局部搜索方法。下面给出新生成解的接受概率。
式中,m为优化的目标数,在这里取m=2,ri为第i个目标的范围。
依据接受概率的局部搜索过程具体描述如下:选择要进行局部搜索的个体x,选择单位长度随机向量ν、指定的步长λ遍历周围的解x″=x′+λ·v,x′=x,判断x′和x″的支配关系。
若x″支配x′,则x″解较优,令x′=x″,λ=λ/2,缩小步长,进一步在x″附近搜索更优解;
若二者不存在支配关系,属于同一层级,则把x″作为非支配解加入外部种群;
若x′支配x″,需要依据概率接受x″,计算方式如下:
若任意生成的rand(·)∈(0,1),使得rand(·)≤prob,则依据概率选择接受解x″,缩小步长λ=λ/2;反之,则丢弃这个解,继续进行下一步搜索,直到满足所规定的总步长,即将指定解的周围搜索完毕,局部搜索结束。通过这种依据接受概率的局部搜索方式加快了最优解的收敛速度,增加了最优解的精度,避免算法陷入局部最优解。
步骤三:通过遗传算法的基本操作产生新的子代种群:依此类推,直到满足程序结束的条件,输出最优解。
本发明的目的是这样实现的:
1.建立动力定位船的三自由度动力学模型和运动学模型
2.利用动态面控制方法设计船舶动力定位控制律
3.建立动力定位船的能源消耗模型
4.选取优化目标函数,利用改进的nsga-ⅱ调节动态面控制器的控制参数,对控制器效果及船舶能源消耗进行多目标问题优化。
1、本发明应用改进nsga-ⅱ方法对动态面控制器参数进行调整,解决了控制器参数多靠人工经验选取,易造成适应性差、控制效果不佳的问题,提高了优化性能,缩短整定时间,增强对控制目标的适应性。
2、本发明考虑了动力定位改变自身位置及姿态过程中的能源消耗问题,利用改进的nsga-ⅱ整定控制器参数,减小推进器的能耗,增强环保性和经济性。
3、本发明不同于传统的多目标优化问题解决方法,即选取权重将多目标问题转化为单目标问题解决。提出了利用改进的nsga-ⅱ的方法,直接优化多个目标,给出pareto最优解,并可结合实际情况,选出最适应需求的解。
4.本发明提出了改进的nsga-ⅱ方法,增加外部种群,记录存储非支配解,增加了种群的丰富性;引入依据接受概率的局部搜索方法,在一定程度上解决了算法陷入局部最优的问题,提高了算法的搜索能力和性能。