CN105511480B - 一种基于人工蜂群优化的模型预测的欠驱动uuv深度控制方法 - Google Patents

一种基于人工蜂群优化的模型预测的欠驱动uuv深度控制方法 Download PDF

Info

Publication number
CN105511480B
CN105511480B CN201610104499.XA CN201610104499A CN105511480B CN 105511480 B CN105511480 B CN 105511480B CN 201610104499 A CN201610104499 A CN 201610104499A CN 105511480 B CN105511480 B CN 105511480B
Authority
CN
China
Prior art keywords
uuv
delta
honey source
honey
rudder angle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610104499.XA
Other languages
English (en)
Other versions
CN105511480A (zh
Inventor
张伟
郭毅
梁志成
孟德涛
周佳加
张宏瀚
严浙平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN201610104499.XA priority Critical patent/CN105511480B/zh
Publication of CN105511480A publication Critical patent/CN105511480A/zh
Application granted granted Critical
Publication of CN105511480B publication Critical patent/CN105511480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/04Control of altitude or depth
    • G05D1/048Control of altitude or depth specially adapted for water vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Feedback Control In General (AREA)

Abstract

一种基于人工蜂群优化的模型预测的欠驱动UUV深度控制方法,本发明涉及欠驱动UUV深度控制方法。本发明是要解决存在复杂水平舵角约束条件时UUV深度控制问题,而提出的一种基于人工蜂群优化的模型预测的欠驱动UUV深度控制方法。该方法是通过一、得到欠驱动UUV增量型的垂直面预测模型;二、将水平舵角的控制输入约束条件统一处理为:H△U(k)≤γ;三、通过模型预测控制将UUV深度控制问题转化为约束条件下的二次规划问题;四、求得蜜源的全局最优位置,五、得到k时刻的控制输入;六、确保UUV达到指定UUV下潜的深度R(k+1)完成下潜作业等步骤实现的。本发明应用于UUV深度控制领域。

Description

一种基于人工蜂群优化的模型预测的欠驱动UUV深度控制 方法
技术领域
本发明涉及欠驱动UUV深度控制方法,特别涉及基于人工蜂群优化的模型预测的欠驱动UUV深度控制方法。
背景技术
无人水下航行器(Unmanned Underwater Vehicle,UUV)具有活动范围大、潜水深、机动性好、安全、智能化、运行和维护费用低等优点,作为人类在海洋活动中,特别是深海活动中的重要替代者和执行者,已被广泛应用于科学考察,深海作业,打捞救生等领域,其在作业时需要保持在一定的深度,因此,切实有效的深度控制方法对UUV的性能有着重要的作用。
目前,国内外学者针对UUV深度控制问题做了大量的研究,相应提出了很多控制方法,如自抗扰法,反步法等等。自抗扰法是一种利用特殊的非线性效应,结合实际的非线性工程算法,是一种自动补偿对象模型的新型控制方法,其抗干扰能力强,运用此方法可以解决海洋环境下UUV近水面垂直面运动的控制扰动问题。反步法计算简单,实时性好,响应快,对传感器要求低,在工程应用中得到了广泛的应用,但该方法中存在虚拟控制量的高阶导数问题。但大多都未能够充分考虑UUV在复杂约束条件下的深度控制问题,因此,将此因素引入UUV深度控制中对其能够安全可靠地执行各种作业任务具有重要的意义。
2014年5月Proceedings of the Institution of Mechanical Engineers PartM:Journal of Engineering for the Maritime Environment第228卷中的“Modelpredictive control of a hybrid autonomous underwater vehicle withexperimental verification”提出将模型预测控制用于 AUV悬停状态时深度控制,但其对UUV艏艉槽道推进器推力变化只进行了简单的卡边处理,在推力约束条件变得更加复杂时,该方法将无法有效处理,这将会影响控制器对 UUV深度的控制效果,本发明引入人工蜂群优化算法可以有效的处理较为复杂的约束条件。
发明内容
本发明的目的是为了解决存在复杂水平舵角约束条件时UUV深度控制问题而提出的一种基于人工蜂群优化的模型预测的欠驱动UUV深度控制方法。
上述的发明目的是通过以下技术方案实现的:
步骤一、将UUV垂直面模型整理为状态空间模型,将状态空间模型离散化得到欠驱动UUV增量型的垂直面预测模型;
步骤二、在k时刻,根据水平舵特性建立水平舵角的控制输入约束;所述的水平舵角的控制输入约束包括幅值约束和每一拍动作的增量约束;并将水平舵角的控制输入约束条件统一处理为:
HΔU(k)≤γ
其中,ΔU为水平舵控制输入增量序列;H=[TT -TT ET -ET]T,γ=[γ1 γ2]T
γ、H、T、γ1、E和γ2为中间矩阵;水平舵特性包括死区特性和饱和特性;
步骤三、根据步骤一得到的欠驱动UUV增量型的垂直面预测模型和步骤二得到的水平舵角的控制输入约束条件通过模型预测控制将UUV深度控制问题转化为约束条件下的二次规划问题如下:
st h(ΔU(k))≤0 (8)
式中,J(ΔU(k))=ΔU(k)THΔU(k)-G(k+1|k)TΔU(k),h(ΔU(k))=HΔU(k)-γ;J(·) 为反映ΔU(k)的性能指标,h(·)为描述函数,G(·)为中间变量,
步骤四、利用基于罚函数的人工蜂群优化算法求解约束条件下的二次规划问题,求得蜜源的全局最优位置,即xbest=[Δδs(k),Δδs(k+1),…,Δδs(k+m-1)]T为UUV水平舵角控制输入增量序列ΔU(k);其中,Δδs(k+m-1)为第k+m-1步水平舵角的增量,m为控制时域;
步骤五、在求解出蜜源最终全局最优解xbest后,令ΔU(k)=xbest T,然后取优化解序列ΔU(k)的第一个分量,并加上k-1时刻的控制输入作为k时刻的控制输入:
步骤六、在k时刻的控制输入δs(k)作用下测得新的状态变量和UUV下潜深度,当UUV未达到指定UUV下潜的深度R(k+1)时,将测得新的状态变量和UUV下潜深度转步骤三,直至当UUV达到指定UUV下潜的深度R(k+1)完成下潜作业;其中,新的状态变量包括UUV状态变量垂向速度、UUV状态变量纵倾角速度、UUV状态变量下潜深度和UUV状态变量纵倾角。
发明效果
本发明提供一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法。基于人工蜂群优化的约束模型预测控制方法解决的是欠驱动UUV在约束条件下准确的下潜到指定深度的问题。本发明首先将欠驱动UUV深度控制问题通过模型预测控制转化为约束条件下的二次规划问题,然后通过人工蜂群优化算法求解约束条件下的二次规划问题,最后将优化解序列的第一个分量加上前一时刻的控制输入作为欠驱动UUV当前时刻的控制输入。问题的求解过程具备在线执行的特点,可以使UUV有效降低不确定性因素的累积作用。本发明能够为欠驱动UUV存在复杂约束条件时的深度控制提供一种切实有效的方法。在考虑控制约束条件下能够有效的实现深度控制,具有在线优化的特点,可以极大减小外界扰动和系统结构参数变化等不确定性因素对UUV深度控制效果的影响如图1、图2和图3。
本发明提供一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法,其直接将UUV深度控制问题转换约束条件下的二次规划问题,并通过人工蜂群算法在约束域中寻找优化解,可以很好的解决在存在约束条件时的UUV深度控制。
附图说明
图1为具体实施方式一提出的UUV的垂直面建模图;
图2为具体实施方式一提出的基于人工蜂群优化的模型预测的欠驱动UUV深度控制的流程图;
图3为具体实施方式一提出的基于人工蜂群优化的模型预测的欠驱动UUV深度控制框图;
图4(a)为具体实施方式一提出的UUV深度的曲线图;其中,p为预测时域;m为控制时域;
图4(b)为具体实施方式一提出的UUV纵倾角的曲线图;
图5(a)为具体实施方式一提出的UUV纵倾角角速度的曲线图;
图5(b)为具体实施方式一提出的UUV垂向速度的曲线图;
图6(a)为具体实施方式一提出的UUV水平舵角曲线图。
图6(b)为具体实施方式一提出的UUV水平舵角的每一拍增量变化曲线图。
具体实施方式
具体实施方式一:本实施方式的一种基于人工蜂群优化的模型预测的欠驱动UUV深度控制方法,具体是按照以下步骤制备的:
附图2和附图3分别给出了基于人工蜂群优化的模型预测的欠驱动UUV深度控制的流程图和控制框图;
步骤一、将UUV垂直面模型整理为状态空间模型,将状态空间模型离散化得到欠驱动UUV增量型的垂直面预测模型;
步骤二、在k时刻,根据水平舵特性建立水平舵角的控制输入约束;所述的水平舵角的控制输入约束包括幅值约束和每一拍动作的增量约束;并将水平舵角的控制输入约束条件统一处理为:
HΔU(k)≤γ
其中,ΔU为水平舵控制输入增量序列;H=[TT -TT ET -ET]T,γ=[γ1 γ2]T
γ、H、T、γ1、E和γ2为中间矩阵;水平舵特性包括死区特性和饱和特性;
步骤三、根据步骤一得到的欠驱动UUV增量型的垂直面预测模型和步骤二得到的水平舵角的控制输入约束条件通过模型预测控制将UUV深度控制问题转化为约束条件下的二次规划问题如下:
st h(ΔU(k))≤0 (8)
式中,J(ΔU(k))=ΔU(k)THΔU(k)-G(k+1|k)TΔU(k),h(ΔU(k))=HΔU(k)-γ;J(·) 为反映ΔU(k)的性能指标,h(·)为描述函数,G(·)为中间变量,
步骤四、利用基于罚函数的人工蜂群优化算法求解约束条件下的二次规划问题,求得蜜源的全局最优位置,即xbest=[Δδs(k),Δδs(k+1),…,Δδs(k+m-1)]T为UUV水平舵角控制输入增量序列ΔU(k);其中,Δδs(k+m-1)为第k+m-1步水平舵角的增量,m为控制时域;
步骤五、在求解出蜜源最终全局最优解xbest后,令ΔU(k)=xbest T,然后取优化解序列ΔU(k)的第一个分量,并加上k-1时刻的控制输入作为k时刻的控制输入:
δs(k)=Δδs(k)+δs(k-1)
但只取控制输入序列的第一个分量Δδs(k)作用于系统;
步骤六、在k时刻的控制输入δs(k)作用下测得新的状态变量和UUV下潜深度,当UUV未达到指定UUV下潜的深度R(k+1)时,将测得新的状态变量和UUV下潜深度转步骤三,直至当UUV达到指定UUV下潜的深度R(k+1)完成下潜作业;其中,新的状态变量包括UUV状态变量垂向速度、UUV状态变量纵倾角速度、UUV状态变量下潜深度和UUV状态变量纵倾角;
仿真分析:
结合图4(a)~图6(b)仿真结果,从图4(a)和图4(b)可以看出:在m一定时,随着p的增大,超调量明显减小,但响应的时间变慢了;在一定时,随着m的增大,同样,有超调量量减小,响应时间变缓,但伴随着震荡加剧;可以看出,不管是p还是m增大了,在一定程度上都会提高控制效果,但由于p和m的增大,将会增大QP问题求解的计算量,这将使响应变得迟缓;从图5(a)和图5(b)可以看出,随着m和p的增大,纵倾角角速度和垂向速度的超调量都有所降低,但伴有震荡加剧特点;从图6(a)和图6(b)中可以看出,水平舵在±30°之间变化,同时对每一拍的水平舵角增量可以进行严格控制,这里限制为每拍±20°之间,可以避免舵角大范围变动,同样随着p和m的增大,水平舵的舵角和舵角增量震荡加剧;在实际工程应用中,对于不同的作业要求,可以通过对控制参数的调节来达到要求的性能。
本实施方式效果:
本实施方式提供一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法。基于人工蜂群优化的约束模型预测控制方法解决的是欠驱动UUV在约束条件下准确的下潜到指定深度的问题。本实施方式首先将欠驱动UUV深度控制问题通过模型预测控制转化为约束条件下的二次规划问题,然后通过人工蜂群优化算法求解约束条件下的二次规划问题,最后将优化解序列的第一个分量加上前一时刻的控制输入作为欠驱动UUV当前时刻的控制输入。问题的求解过程具备在线执行的特点,可以使UUV有效降低不确定性因素的累积作用。本实施方式能够为欠驱动UUV存在复杂约束条件时的深度控制提供一种切实有效的方法。在考虑控制约束条件下能够有效的实现深度控制,具有在线优化的特点,可以极大减小外界扰动和系统结构参数变化等不确定性因素对UUV深度控制效果的影响如图1、图2和图3。
本实施方式提供一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法,其直接将UUV深度控制问题转换约束条件下的二次规划问题,并通过人工蜂群算法在约束域中寻找优化解,可以很好的解决在存在约束条件时的UUV深度控制。
具体实施方式二:本实施方式与具体实施方式一不同的是:步骤一中将UUV垂直面模型整理为状态空间模型,将状态空间模型离散化得到欠驱动UUV增量型的垂直面预测模型具体过程为:
步骤一一、结合图1,建立了UUV的坐标系统,其中,UUV的坐标系统包括固定坐标系E-ξηζ和运动坐标系O-XYZ;
步骤一二、取状态变量水平舵的舵角δs(t)和t时刻UUV下潜深度y(t)建立UUV垂直面的状态空间方程即连续的状态空间模型:
式中,Cc=[0 0 0 1]; d(t)=[ω1 ω2]T;ρ为流体密度,L为UUV长度;
为在垂直加速度状态下测得的UUV无因次水动力系数;
为在纵倾角加速度状态下测得的UUV无因次水动力系数;
为在垂直加速度状态下测得的UUV无因次水动力系数;
为在纵倾角加速度状态下测得的UUV无因次水动力系数;
Z′uw为在纵向速度u和垂向速度w状态下测得的UUV无因次水动力系数;
Z′uq为在纵向速度u和纵倾角速度q状态下测得的UUV无因次水动力系数;
M′uw为在纵向速度u和垂向速度w状态下测得的UUV无因次水动力系数;
M′uq为在纵向速度u和纵倾角速度q状态下测得的UUV无因次水动力系数;
为UUV水平舵的舵效系数(下标δs代表水平舵);
w为UUV状态变量垂向速度;
q为UUV状态变量纵倾角速度;
z为UUV状态变量下潜深度;
θ为UUV状态变量纵倾角;
下角标中c代表连续;
t为时间变量;
δ为水平舵角;
d为系统不确定因素及外界扰动;
Ac为连续状态空间模型的系统矩阵
B为连续状态空间模型的水平舵角δ的参数矩阵
Bcd为连续状态空间模型的在系统不确定因素及外界扰动d下的参数矩阵
Cc为连续状态空间模型的输出矩阵;
d(t)=[ω1 ω2]T为t时刻系统不确定因素及外界扰动;ω1为系统在垂向运动上不确定因素及外界扰动,ω2为系统在纵倾运动上不确定因素及外界扰动;
步骤一三、控制器设计是建立在离散系统模型上,根据工程经验,取采样时间为Ts,将连续状态空间模型转换为离散状态空间模型:
其中,C=Cc
A、Bδ、Bd和C为离散状态空间模型参数矩阵;
A为离散状态空间模型系统矩阵
C为离散状态空间模型输出矩阵
τ为积分变量,
Bδ为离散化后系统的参数矩阵,
Bd为离散化后系统的参数矩阵,
Ts为采样时间,Ts为0.1s~1.2s,e为自然常数,k为离散系统的时刻;
步骤一四、给出如下定义:
Δx(k)=x(k)-x(k-1)
Δδs(k)=δs(k)-δs(k-1)
Δd(k)=d(k)-d(k-1)
Δδs(·)为UUV控制输入水平舵角增量;
Δd(·)为系统不确定因素及外界扰动增量;
Δx(·)为离散的状态变量增量;
δs(·)为UUV控制输入水平舵角,
x(·)为离散的状态变量,
y(·)为UUV下潜的深度,
d(·)系统不确定因素和外界扰动
通过离散系统整理获得欠驱动UUV增量型的垂直面预测模型:
其中,y(·)为UUV下潜的深度。
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:步骤一三中的Ts为 0.5s。其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:步骤二中将水平舵角的控制输入约束具体为:
δs(k+i)为第k+i时刻水平舵角;
δsMIN为δs(k+i)中舵角最小值;
δsMAX为δs(k+i)中舵角最大值;
Δδs(k+i)为第k+i时刻水平舵角的增量;
ΔδsMIN为Δδs(k+i)中水平舵角增量的最小值;
ΔδsMAX为Δδs(k+i)中水平舵角增量的最大值;
m为控制时域;
将公式(4)中表示的约束条件转换为:
式中
进一步
表示为:
HΔU(k)≤γ (6)
为单位矩阵,nu为控制输入维数,这里控制输入只有水平舵角,所以nu=1,其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:步骤三中根据步骤一得到的欠驱动UUV增量型的垂直面预测模型和步骤二得到的水平舵角的控制输入约束条件通过模型预测控制将UUV深度控制问题转化为约束条件下的二次规划问题具体过程为:
(1)、根据式(3)所示增量型的垂直面预测模型预测的p步系统输出,由系统预测输出所构成的向量和m步控制输入序列构成的向量为:
其中,Yp(·)为预测输出矩阵,下角标p为预测时域;
(2)、将系统预测输出进一步表示为:
Yp(k+1k)=SxΔx(k)+Iy(k)+SdΔd(k)+SδΔU(k) (7)
其中
式中,
Sx为状态变量Δx(k)系数矩阵;
I为UUV下潜深度y(k)系数矩阵;
Sd为系统不确定因素及外界扰动增量Δd(k)系数矩阵;
Sδ为控制输入水平舵角增量序列ΔU(k)系数矩阵;
(3)、设UUV给定控制输出参考序列,即UUV下潜的深度R(k+1),如下式所示:
R(k+1)=[r(k+1) r(k+2) … r(k+p)]T
R(·)为p步控制输出参考序列,r(·)为R(·)中每一步的控制输出参考序列;
(4)、根据MPC算法的特点,引入目标函数:
J(ΔU(k))=||Γy(Yp(k+1|k)-R(k+1))||2+||ΓδΔU(k)||2 (6)
其中,Γy和Γδ是对称正定加权矩阵,并给出如下定义:
Γy=diag{Γy,1y,2,…,Γy,p}p×p
Γδ=diag{Γδ,1δ,2,…,Γδ,m}m×m
(5)、定义Ep(k+1|k)=R(k+1)-SxΔx(k)-Iy(k)-SdΔd(k),则目标函数表示为:
J(ΔU(k))=ΔU(k)THΔU(k)-G(k+1|k)TΔU(k) (7)
其中
H、Ep(·)和G(·)为中间变量;
(6)、将UUV的深度控制问题转化为二次规划(Quadratic programming,QP)问题进行求解,即有约束二次规划问题为:
其中J(ΔU(k))=ΔU(k)THΔU(k)-G(k+1|k)TΔU(k),h(ΔU(k))=HΔU(k)-γ。其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:步骤四中利用基于罚函数的人工蜂群优化算法求解约束条件下的二次规划问题,求得蜜源的全局最优位置,即xbest=[Δδs(k),Δδs(k+1),…,Δδs(k+m-1])T为UUV水平舵角控制输入增量序列ΔU(k)具体为:
步骤四一、应用人工蜂群算法,引入惩罚函数法,将带有约束条件的优化问题转换成无约束的优化问题;
(1)、罚函数法是通过一系列罚因子,求罚函数的极小点来逼近原约束问题的最优点,针对式(8)所描述的约束优化问题,建立如下罚函数以及增广目标函数 F(ΔU(k),σ):
其中,σ是一个给定的相对比较大的正数,一般被叫为罚因子;
(2)、当ΔU(k)在约束域即满足h(ΔU(k))≤0时,max{0,h(△U(k))}=0,此时有F(△U(k),σ)=J(△U(k));
(3)当ΔU(k)在约束域外时,max{0,h(ΔU(k))}=h(ΔU(k)),此时有 为罚函数,F(·)为增广目标函数;
(4)、则式(8)的带有约束条件的优化问题转化为如下无约束的优化问题:
步骤四二、采用人工蜂群优化算法(Artificial bee colony,ABC)求解式(15)所示的二次规划问题;
设在d维空间里,人工蜂群优化方法取ΔU(水平舵控制输入增量序列)作为蜜源地址,即第l个蜜源位置记为Xl=(xl1,xl2,…,xld),(每个蜜源代表优化问题的一个优化解,为最佳控制输入序列ΔU(k);(ΔU(k)即可以通过求解式(15)获得,这里又将ΔU(k)与蜜源位置对应,即为Xl=(xl1,xl2,…,xld));将SN个蜜源与采蜜蜂初始位置一一对应,则 2×SN个蜜源中每一个解的适应度值按下式求得:
其中,fitl代表第l个蜜源的适应度,其越大代表着拥有更多的蜂蜜,也表明优化解质量越高,被选中的概率越高,fl=F(ΔU(k),σ),ΔU(k)为UUV水平舵角控制输入增量序列;根据式(11)清晰地看出,fl的值越小,所对应的蜜源适应度fitl越大;abs(·) 为绝对值函数;人工蜂群种群包括采蜜蜂、观察蜂和侦查蜂,xld为第l个蜜源位置中第d 个分量;人工蜂群的数目为2×SN,采蜜蜂和观察蜂均为SN;2×SN个人工蜂群蜜源包括SN个采蜜蜂蜜源和SN个观察蜂蜜源;根据式(11)求得SN个采蜜蜂蜜源中每一个解的适应度值;l=1,2,3,…,2×SN;2×SN为人工蜂群蜜源的总个数;
步骤四三、设置人工蜂群优化方法迭代求解二次规划问题的次数为Cycle=1;
步骤四四、当执行第n=1次步骤一到步骤六时,将步骤四二中2×SN个初始解的适应度值最大的解记为全局最优初始解xbest;当执行第n>1次步骤三到步骤六时,为了改善了人工蜂群算法的求解效率,取n-1次步骤五中ΔU(k)剩余的m-1步控制输入分量作为人工蜂群全局最优位置的全局最优初始解,即:
xbest=[Δδs(k+1),…,Δδs(k+m-1),Δδs(k+m-1)];
步骤四五、在ABC优化算法搜索最优蜜源的过程中,采蜜蜂根据式(9)搜索新的采蜜蜂蜜源:
vlj=xlj+r1(xlj-xhj)+r2(xbest,j-xlj) (9)
其中,h是一个随机产生的整数,h∈1,2,…,SN,h≠i,j∈1,2,…,d,r1∈[-1,1]也是一个随机数,r2∈[0,1],xbest,j为全局最优解的第j个元素;vlj第l个采蜜蜂蜜源位置中第j个分量的更新值;xlj第l个采蜜蜂蜜源位置中第j个分量;xhj第h个采蜜蜂蜜源位置中第j个分量;
按式(11)求解新采蜜蜂蜜源的适应度值,在新采蜜蜂蜜源的适应度值和步骤四二采蜜蜂的适应度值之间实施贪婪选择,若新采蜜蜂蜜源适应度值比步骤四二采蜜蜂的适应度值大,则第l个蜜源位置中第j个分量根据式(9)求得更新值vlj,否则,保留步骤四二采蜜蜂蜜源;
步骤四六、在步骤四五得到采蜜蜂蜜源的位置上,观察蜂按轮盘赌方法以选择概率Pl对采蜜蜂的蜜源进行选择得到观察蜂的蜜源;其中概率Pl具体为:
根据观察蜂的蜜源按式(9)搜索新的观察蜂蜜源,并按式(11)求出新的观察蜂蜜源的适应度值和观察蜂的蜜源适应度值,在新的观察蜂蜜源的适应度值和观察蜂的蜜源的适应度值之间实施贪婪选择,若新的观察蜂蜜源的适应度值比观察蜂的蜜源的适应度值大,则第l个蜜源位置中第j个分量为根据式(9)求得更新值vlj,否则,保留观察蜂蜜源的位置;
步骤四七、将步骤四五得到的最终的采蜜蜂蜜源适应度值和步骤四六得到的最终的观察蜂蜜源的适应度值进行比较得到适应度值最大的蜜源作为全局最优解xbest;若此xbest对应的最大适应度值在0.998~1.002之间,则输出全局最优解xbest作为最终全局最优解,若此 xbest对应的最大适应度值不在0.98~1.02之间,该全局最优解xbest作为当前全局最优解,同时将采蜜蜂蜜源转至步骤四八;
步骤四八、如果采蜜蜂的蜜源连续经过5~20次的步骤四一到四七后,蜜源质量依旧得不到改善,即该蜜源所对应的适应度值在所有采蜜蜂中不是最大,且两次相邻的数值变化在-0.001~0.001之间,那么采蜜蜂将会丢弃此处蜜源,并将采蜜蜂转变为侦查蜂,并根据式(12)随机产生侦查蜂的蜜源:
xlj=ΔδsMIN+rand(0,1)(ΔδsMAX-ΔδsMIN) (12)
其中,ΔδsMIN为变量xlj的下边界;ΔδsMAX为变量xlj的上边界;
侦查蜂的蜜源添加到丢弃后的采蜜蜂的蜜源中得到最终的采蜜蜂的蜜源并转至步骤四九;
步骤四九、Cycle=Cycle+1,如果Cycle小于设定次数500,将最终的采蜜蜂的蜜源转步骤四五;反之,如果Cycle大于等于设定次数500,输出全局最优解xbest作为最终全局最优解。其它步骤及参数与具体实施方式一至五之一相同。

Claims (6)

1.一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法,其特征在于:一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法具体是按照以下步骤进行的:
步骤一、将UUV垂直面模型整理为状态空间模型,将状态空间模型离散化得到欠驱动UUV增量型的垂直面预测模型;
步骤二、在k时刻,根据水平舵特性建立水平舵角的控制输入约束;所述的水平舵角的控制输入约束包括幅值约束和每一拍动作的增量约束;并将水平舵角的控制输入约束条件统一处理为:
HΔU(k)≤γ
其中,ΔU为水平舵控制输入增量序列;H=[TT -TT ET -ET]T,γ=[γ1 γ2]T
γ、H、T、γ1、E和γ2为中间矩阵;
步骤三、根据步骤一得到的欠驱动UUV增量型的垂直面预测模型和步骤二得到的水平舵角的控制输入约束条件通过模型预测控制将UUV深度控制问题转化为约束条件下的二次规划问题如下:
<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>&amp;Delta;</mi> <mi>U</mi> <mrow> <mo>(</mo> <mi>K</mi> <mo>)</mo> </mrow> </mrow> </munder> </mtd> <mtd> <mrow> <mi>J</mi> <mrow> <mo>(</mo> <mi>&amp;Delta;</mi> <mi>U</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced>
st h(ΔU(k))≤0 (8)
式中,J(ΔU(k))=ΔU(k)THΔU(k)-G(k+1|k)TΔU(k),h(ΔU(k))=HΔU(k)-γ;J(·)为反映ΔU(k)的性能指标,h(·)为描述函数,G(·)为中间变量,其中,Sδ为控制输入水平舵角增量序列ΔU(k)系数矩阵,Γy是对称正定加权矩阵,Ep(·)为中间变量;
步骤四、利用基于罚函数的人工蜂群优化算法求解约束条件下的二次规划问题,求得蜜源的全局最优位置,即xbest=[Δδs(k),Δδs(k+1),…,Δδs(k+m-1)]T为UUV水平舵角控制输入增量序列ΔU(k);其中,Δδs(k+m-1)为第k+m-1步水平舵角的增量,m为控制时域;
步骤五、在求解出蜜源最终全局最优解xbest后,令ΔU(k)=xbest T,然后取优化解序列ΔU(k)的第一个分量,并加上k-1时刻的控制输入作为k时刻的控制输入:
<mrow> <mtable> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> <mi>&amp;Delta;</mi> <mi>U</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;delta;</mi> <mi>s</mi> </msub> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>=</mo> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> <mo>;</mo> </mrow>
步骤六、在k时刻的控制输入δs(k)作用下测得新的状态变量和UUV下潜深度,当UUV未达到指定UUV下潜的深度R(k+1)时,将测得新的状态变量和UUV下潜深度转步骤三,直至当UUV达到指定UUV下潜的深度R(k+1)完成下潜作业;其中,新的状态变量包括UUV状态变量垂向速度、UUV状态变量纵倾角速度、UUV状态变量下潜深度和UUV状态变量纵倾角。
2.根据权利要求1所述一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法,其特征在于:步骤一中将UUV垂直面模型整理为状态空间模型,将状态空间模型离散化得到欠驱动UUV增量型的垂直面预测模型具体过程为:
步骤一一、建立了UUV的坐标系统,其中,UUV的坐标系统包括固定坐标系E-ξηζ和运动坐标系O-XYZ;
步骤一二、取状态变量水平舵的舵角δs(t)和t时刻UUV下潜深度y(t)建立UUV垂直面的状态空间方程即连续的状态空间模型:
<mrow> <mtable> <mtr> <mtd> <mrow> <mover> <mi>x</mi> <mo>&amp;CenterDot;</mo> </mover> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>A</mi> <mi>c</mi> </msub> <mi>x</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>B</mi> <mrow> <mi>c</mi> <mi>&amp;delta;</mi> </mrow> </msub> <msub> <mi>&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>B</mi> <mrow> <mi>c</mi> <mi>d</mi> </mrow> </msub> <mi>d</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>y</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>C</mi> <mi>c</mi> </msub> <mi>x</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
式中,Cc=[0 0 0 1]; d(t)=[ω1 ω2]T;ρ为流体密度,L为UUV长度;
为在垂直加速度状态下测得的UUV无因次水动力系数;
为在纵倾角加速度状态下测得的UUV无因次水动力系数;
为在垂直加速度状态下测得的UUV无因次水动力系数;
为在纵倾角加速度状态下测得的UUV无因次水动力系数;
Z′uw为在纵向速度u和垂向速度w状态下测得的UUV无因次水动力系数;
Z′uq为在纵向速度u和纵倾角速度q状态下测得的UUV无因次水动力系数;
M′uw为在纵向速度u和垂向速度w状态下测得的UUV无因次水动力系数;
M′uq为在纵向速度u和纵倾角速度q状态下测得的UUV无因次水动力系数;
为UUV水平舵的舵效系;
w为UUV状态变量垂向速度;
q为UUV状态变量纵倾角速度;
z为UUV状态变量下潜深度;
θ为UUV状态变量纵倾角;
下角标中c代表连续;
t为时间变量;
δ为水平舵角;
d为系统不确定因素及外界扰动;
Ac为连续状态空间模型的系统矩阵
B为连续状态空间模型的水平舵角δ的参数矩阵
Bcd为连续状态空间模型的在系统不确定因素及外界扰动d下的参数矩阵
Cc为连续状态空间模型的输出矩阵;
d(t)=[ω1 ω2]T为t时刻系统不确定因素及外界扰动;ω1为系统在垂向运动上不确定因素及外界扰动,ω2为系统在纵倾运动上不确定因素及外界扰动;
步骤一三、取采样时间为Ts,将连续状态空间模型转换为离散状态空间模型:
<mrow> <mtable> <mtr> <mtd> <mrow> <mi>x</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> <mo>=</mo> <mi>A</mi> <mi>x</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>B</mi> <mi>&amp;delta;</mi> </msub> <msub> <mi>&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>B</mi> <mi>d</mi> </msub> <mi>d</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>y</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>C</mi> <mi>x</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
其中,C=Cc
A、Bδ、Bd和C为离散状态空间模型参数矩阵;
A为离散状态空间模型系统矩阵
C为离散状态空间模型输出矩阵
τ为积分变量,
Bδ为离散化后系统的参数矩阵,
Bd为离散化后系统的参数矩阵,
Ts为采样时间,Ts为0.1s~1.2s,e为自然常数,k为离散系统的时刻;
步骤一四、给出如下定义:
Δx(k)=x(k)-x(k-1)
Δδs(k)=δs(k)-δs(k-1)
Δd(k)=d(k)-d(k-1)
Δδs(·)为UUV控制输入水平舵角增量;
Δd(·)为系统不确定因素及外界扰动增量;
Δx(·)为离散的状态变量增量;
δs(·)为UUV控制输入水平舵角,
x(·)为离散的状态变量,
y(·)为UUV下潜的深度,
d(·)系统不确定因素和外界扰动
通过离散系统整理获得欠驱动UUV增量型的垂直面预测模型:
<mrow> <mtable> <mtr> <mtd> <mrow> <mi>&amp;Delta;</mi> <mi>x</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> <mo>=</mo> <mi>A</mi> <mi>&amp;Delta;</mi> <mi>x</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>B</mi> <mi>&amp;delta;</mi> </msub> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>B</mi> <mi>d</mi> </msub> <mi>&amp;Delta;</mi> <mi>d</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>y</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>C</mi> <mi>&amp;Delta;</mi> <mi>x</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>y</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>
其中,y(·)为UUV下潜的深度。
3.根据权利要求2所述一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法,其特征在于:步骤一三中的Ts为0.5s。
4.根据权利要求3所述一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法,其特征在于:步骤二中将水平舵角的控制输入约束具体为:
<mrow> <mtable> <mtr> <mtd> <mrow> <msub> <mi>&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>I</mi> <mi>N</mi> </mrow> </msub> <mo>&amp;le;</mo> <msub> <mi>&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>i</mi> </mrow> <mo>)</mo> </mrow> <mo>&amp;le;</mo> <msub> <mi>&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>I</mi> <mi>N</mi> </mrow> </msub> <mo>&amp;le;</mo> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>i</mi> </mrow> <mo>)</mo> </mrow> <mo>&amp;le;</mo> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>
δs(k+i)为第k+i时刻水平舵角;
δsMIN为δs(k+i)中舵角最小值;
δsMAX为δs(k+i)中舵角最大值;
Δδs(k+i)为第k+i时刻水平舵角的增量;
ΔδsMIN为Δδs(k+i)中水平舵角增量的最小值;
ΔδsMAX为Δδs(k+i)中水平舵角增量的最大值;
m为控制时域;
将公式(4)中表示的约束条件转换为:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mi>T</mi> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <mi>T</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> <mi>&amp;Delta;</mi> <mi>U</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>&amp;le;</mo> <msub> <mi>&amp;gamma;</mi> <mn>1</mn> </msub> <mo>,</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mi>E</mi> </mtd> </mtr> <mtr> <mtd> <mo>-</mo> <mi>E</mi> </mtd> </mtr> </mtable> </mfenced> <mi>&amp;Delta;</mi> <mi>U</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>&amp;le;</mo> <msub> <mi>&amp;gamma;</mi> <mn>2</mn> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>
式中
<mrow> <mi>T</mi> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> <mtd> <mtable> <mtr> <mtd> <mrow></mrow> </mtd> </mtr> <mtr> <mtd> <mrow></mrow> </mtd> </mtr> <mtr> <mtd> <mrow></mrow> </mtd> </mtr> </mtable> </mtd> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>m</mi> <mo>&amp;times;</mo> <mi>m</mi> </mrow> </msub> <mo>,</mo> <mi>E</mi> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> <mtd> <mtable> <mtr> <mtd> <mrow></mrow> </mtd> </mtr> <mtr> <mtd> <mrow></mrow> </mtd> </mtr> <mtr> <mtd> <mrow></mrow> </mtd> </mtr> </mtable> </mtd> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <msub> <mi>I</mi> <mrow> <msub> <mi>n</mi> <mi>u</mi> </msub> <mo>&amp;times;</mo> <msub> <mi>n</mi> <mi>u</mi> </msub> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>m</mi> <mo>&amp;times;</mo> <mi>m</mi> </mrow> </msub> </mrow>
<mrow> <msub> <mi>&amp;gamma;</mi> <mn>1</mn> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>I</mi> <mi>N</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>-</mo> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>I</mi> <mi>N</mi> </mrow> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <msub> <mi>&amp;gamma;</mi> <mn>2</mn> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msub> <mi>&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>I</mi> <mi>N</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>&amp;delta;</mi> <mrow> <mi>s</mi> <mi>M</mi> <mi>I</mi> <mi>N</mi> </mrow> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
进一步
表示为:
HΔU(k)≤γ (6)
为单位矩阵,nu为控制输入维数,nu=1,
5.根据权利要求4所述一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法,其特征在于:步骤三中根据步骤一得到的欠驱动UUV增量型的垂直面预测模型和步骤二得到的水平舵角的控制输入约束条件通过模型预测控制将UUV深度控制问题转化为约束条件下的二次规划问题具体过程为:
(1)、根据式(3)所示增量型的垂直面预测模型预测的p步系统输出,由系统预测输出所构成的向量和m步控制输入序列构成的向量为:
<mrow> <msub> <mi>Y</mi> <mi>p</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>|</mo> <mi>k</mi> <mo>)</mo> </mrow> <munder> <munder> <mrow> <mi>d</mi> <mi>e</mi> <mi>f</mi> </mrow> <mo>&amp;OverBar;</mo> </munder> <mo>&amp;OverBar;</mo> </munder> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>y</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>|</mo> <mi>k</mi> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>y</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mn>2</mn> <mo>|</mo> <mi>k</mi> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>y</mi> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>p</mi> <mo>|</mo> <mi>k</mi> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>p</mi> <mo>&amp;times;</mo> <mn>1</mn> </mrow> </msub> <mo>,</mo> <mi>&amp;Delta;</mi> <mi>U</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <munder> <munder> <mrow> <mi>d</mi> <mi>e</mi> <mi>f</mi> </mrow> <mo>&amp;OverBar;</mo> </munder> <mo>&amp;OverBar;</mo> </munder> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;&amp;delta;</mi> <mi>s</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>m</mi> <mo>&amp;times;</mo> <mn>1</mn> </mrow> </msub> </mrow>
其中,Yp(·)为预测输出矩阵,下角标p为预测时域;
(2)、将系统预测输出进一步表示为:
Yp(k+1|k)=SxΔx(k)+Iy(k)+SdΔd(k)+SδΔU(k) (7)
其中
<mrow> <msub> <mi>S</mi> <mi>x</mi> </msub> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>C</mi> <mi>A</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <msup> <mi>CA</mi> <mi>i</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>p</mi> </munderover> <msup> <mi>CA</mi> <mi>i</mi> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>p</mi> <mo>&amp;times;</mo> <mn>1</mn> </mrow> </msub> <mo>,</mo> <mi>I</mi> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>p</mi> <mo>&amp;times;</mo> <mn>1</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>S</mi> <mi>d</mi> </msub> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <msub> <mi>CB</mi> <mi>d</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>2</mn> </munderover> <msup> <mi>CA</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> </msup> <msub> <mi>B</mi> <mi>d</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>p</mi> </munderover> <msup> <mi>CA</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> </msup> <msub> <mi>B</mi> <mi>d</mi> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>p</mi> <mo>&amp;times;</mo> <mn>1</mn> </mrow> </msub> </mrow>
式中,
Sx为状态变量Δx(k)系数矩阵;
I为UUV下潜深度y(k)系数矩阵;
Sd为系统不确定因素及外界扰动增量Δd(k)系数矩阵;
Sδ为控制输入水平舵角增量序列ΔU(k)系数矩阵;
(3)、设UUV给定控制输出参考序列,即UUV下潜的深度R(k+1),如下式所示:
R(k+1)=[r(k+1) r(k+2) … r(k+p)]T
R(·)为p步控制输出参考序列,r(·)为R(·)中每一步的控制输出参考序列;
(4)、根据MPC算法的特点,引入目标函数:
J(ΔU(k))=||Γy(Yp(k+1|k)-R(k+1))||2+||ΓδΔU(k)||2 (6)
其中,Γy和Γδ是对称正定加权矩阵,并给出如下定义:
Γy=diag{Γy,1y,2,…,Γy,p}p×p
Γδ=diag{Γδ,1δ,2,…,Γδ,m}m×m
(5)、定义Ep(k+1|k)=R(k+1)-SxΔx(k)-Iy(k)-SdΔd(k),则目标函数表示为:
J(ΔU(k))=ΔU(k)THΔU(k)-G(k+1|k)TΔU(k) (7)
其中
H、Ep(·)和G(·)为中间变量;
(6)、将UUV的深度控制问题转化为二次规划问题进行求解,即有约束二次规划问题为:
<mrow> <mtable> <mtr> <mtd> <munder> <mi>min</mi> <mrow> <mi>&amp;Delta;</mi> <mi>U</mi> <mrow> <mo>(</mo> <mi>K</mi> <mo>)</mo> </mrow> </mrow> </munder> </mtd> <mtd> <mrow> <mi>J</mi> <mrow> <mo>(</mo> <mrow> <mi>&amp;Delta;</mi> <mi>U</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>s</mi> <mi>t</mi> </mrow> </mtd> <mtd> <mrow> <mi>h</mi> <mrow> <mo>(</mo> <mi>&amp;Delta;</mi> <mi>U</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>&amp;le;</mo> <mn>0</mn> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>
其中J(ΔU(k))=ΔU(k)THΔU(k)-G(k+1|k)TΔU(k),h(ΔU(k))=HΔU(k)-γ。
6.根据权利要求5所述一种基于人工蜂群优化的约束模型预测的欠驱动UUV深度控制方法,其特征在于:步骤四中利用基于罚函数的人工蜂群优化算法求解约束条件下的二次规划问题,求得蜜源的全局最优位置,即xbest=[Δδs(k),Δδs(k+1),…,Δδs(k+m-1)]T为UUV水平舵角控制输入增量序列ΔU(k)具体为:
步骤四一、应用人工蜂群算法,引入惩罚函数法,将带有约束条件的优化问题转换成无约束的优化问题;
(1)、针对式(8)所描述的约束优化问题,建立如下罚函数以及增广目标函数F(ΔU(k),σ):
<mrow> <mover> <mi>p</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mo>(</mo> <mi>&amp;Delta;</mi> <mi>U</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mrow> <mo>&amp;lsqb;</mo> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mo>{</mo> <mn>0</mn> <mo>,</mo> <mi>h</mi> <mrow> <mo>(</mo> <mi>&amp;Delta;</mi> <mi>U</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>}</mo> <mo>&amp;rsqb;</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <mi>F</mi> <mrow> <mo>(</mo> <mi>&amp;Delta;</mi> <mi>U</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>,</mo> <mi>&amp;sigma;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>J</mi> <mrow> <mo>(</mo> <mi>&amp;Delta;</mi> <mi>U</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>+</mo> <mi>&amp;sigma;</mi> <mover> <mi>p</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mo>(</mo> <mi>&amp;Delta;</mi> <mi>U</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>14</mn> <mo>)</mo> </mrow> </mrow>
其中,σ为罚因子;
(2)、当ΔU(k)在约束域即满足h(ΔU(k))≤0时,max{0,h(ΔU(k))}=0,此时有F(ΔU(k),σ)=J(ΔU(k));
(3)当ΔU(k)在约束域外时,max{0,h(ΔU(k))}=h(ΔU(k)),此时有 为罚函数,F(·)为增广目标函数;
(4)、则式(8)的带有约束条件的优化问题转化为如下无约束的优化问题:
<mrow> <mtable> <mtr> <mtd> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>&amp;Delta;</mi> <mi>U</mi> <mrow> <mo>(</mo> <mi>K</mi> <mo>)</mo> </mrow> </mrow> </munder> </mtd> <mtd> <mrow> <mi>F</mi> <mrow> <mo>(</mo> <mi>&amp;Delta;</mi> <mi>U</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>,</mo> <mi>&amp;sigma;</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>15</mn> <mo>)</mo> </mrow> </mrow>
步骤四二、采用人工蜂群优化算法求解式(15)所示的二次规划问题;
设在d维空间里,人工蜂群优化方法取ΔU作为蜜源地址,即第l个蜜源位置记为Xl=(xl1,xl2,…,xld);将SN个蜜源与采蜜蜂初始位置一一对应,则2×SN个蜜源中每一个解的适应度值按下式求得:
<mrow> <msub> <mi>fit</mi> <mi>l</mi> </msub> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>1</mn> <mo>/</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msub> <mi>f</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>f</mi> <mi>l</mi> </msub> <mo>&amp;GreaterEqual;</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>1</mn> <mo>+</mo> <mi>a</mi> <mi>b</mi> <mi>s</mi> <mrow> <mo>(</mo> <msub> <mi>f</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>f</mi> <mi>l</mi> </msub> <mo>&lt;</mo> <mn>0</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>
其中,fitl代表第l个蜜源的适应度,ΔU(k)为UUV水平舵角控制输入增量序列;abs(·)为绝对值函数;人工蜂群种群包括采蜜蜂、观察蜂和侦查蜂,xld为第l个蜜源位置中第d个分量;人工蜂群的数目为2×SN,采蜜蜂和观察蜂均为SN;2×SN个人工蜂群蜜源包括SN个采蜜蜂蜜源和SN个观察蜂蜜源;l=1,2,3,…,2×SN;2×SN为人工蜂群蜜源的总个数;
步骤四三、设置人工蜂群优化方法迭代求解二次规划问题的次数为Cycle=1;
步骤四四、当执行第n=1次步骤一到步骤六时,将步骤四二中2×SN个初始解的适应度值最大的解记为全局最优初始解xbest;当执行第n>1次步骤三到步骤六时,取n-1次步骤五中ΔU(k)剩余的m-1步控制输入分量作为人工蜂群全局最优位置的全局最优初始解,即:
xbest=[Δδs(k+1),…,Δδs(k+m-1),Δδs(k+m-1)];
步骤四五、在ABC优化算法搜索最优蜜源的过程中,采蜜蜂根据式(9)搜索新的采蜜蜂蜜源:
vlj=xlj+r1(xlj-xhj)+r2(xbest,j-xlj) (9)
其中,h是一个随机产生的整数,h∈1,2,…,SN,h≠i,j∈1,2,…,d,r1∈[-1,1]也是一个随机数,r2∈[0,1],xbest,j为全局最优解的第j个元素;vlj第l个采蜜蜂蜜源位置中第j个分量的更新值;xlj第l个采蜜蜂蜜源位置中第j个分量;xhj第h个采蜜蜂蜜源位置中第j个分量;
按式(11)求解新采蜜蜂蜜源的适应度值,在新采蜜蜂蜜源的适应度值和步骤四二采蜜蜂的适应度值之间实施贪婪选择,若新采蜜蜂蜜源适应度值比步骤四二采蜜蜂的适应度值大,则第l个蜜源位置中第j个分量根据式(9)求得更新值vlj,否则,保留步骤四二采蜜蜂蜜源;
步骤四六、在步骤四五得到采蜜蜂蜜源的位置上,观察蜂按轮盘赌方法以选择概率Pl对采蜜蜂的蜜源进行选择得到观察蜂的蜜源;其中概率Pl具体为:
<mrow> <msub> <mi>P</mi> <mi>l</mi> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>fit</mi> <mi>l</mi> </msub> </mrow> <mrow> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>S</mi> <mi>N</mi> </mrow> </munderover> <msub> <mi>fit</mi> <mi>j</mi> </msub> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>
根据观察蜂的蜜源按式(9)搜索新的观察蜂蜜源,并按式(11)求出新的观察蜂蜜源的适应度值和观察蜂的蜜源适应度值,在新的观察蜂蜜源的适应度值和观察蜂的蜜源的适应度值之间实施贪婪选择,若新的观察蜂蜜源的适应度值比观察蜂的蜜源的适应度值大,则第l个蜜源位置中第j个分量为根据式(9)求得更新值vlj,否则,保留观察蜂蜜源的位置;
步骤四七、将步骤四五得到的最终的采蜜蜂蜜源适应度值和步骤四六得到的最终的观察蜂蜜源的适应度值进行比较得到适应度值最大的蜜源作为全局最优解xbest;若此xbest对应的最大适应度值在0.998~1.002之间,则输出全局最优解xbest作为最终全局最优解,若此xbest对应的最大适应度值不在0.98~1.02之间,该全局最优解xbest作为当前全局最优解,同时将采蜜蜂蜜源转至步骤四八;
步骤四八、如果采蜜蜂的蜜源连续经过5~20次的步骤四一到四七后,即该蜜源所对应的适应度值在所有采蜜蜂中不是最大,且两次相邻的数值变化在-0.001~0.001之间,那么采蜜蜂将会丢弃此处蜜源,并将采蜜蜂转变为侦查蜂,并根据式(12)随机产生侦查蜂的蜜源:
xlj=ΔδsMIN+rand(0,1)(ΔδsMAX-ΔδsMIN) (12)
其中,ΔδsMIN为变量xlj的下边界;ΔδsMAX为变量xlj的上边界;
侦查蜂的蜜源添加到丢弃后的采蜜蜂的蜜源中得到最终的采蜜蜂的蜜源并转至步骤四九;
步骤四九、Cycle=Cycle+1,如果Cycle小于设定次数500,将最终的采蜜蜂的蜜源转步骤四五;反之,如果Cycle大于等于设定次数500,输出全局最优解xbest作为最终全局最优解。
CN201610104499.XA 2016-02-25 2016-02-25 一种基于人工蜂群优化的模型预测的欠驱动uuv深度控制方法 Active CN105511480B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610104499.XA CN105511480B (zh) 2016-02-25 2016-02-25 一种基于人工蜂群优化的模型预测的欠驱动uuv深度控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610104499.XA CN105511480B (zh) 2016-02-25 2016-02-25 一种基于人工蜂群优化的模型预测的欠驱动uuv深度控制方法

Publications (2)

Publication Number Publication Date
CN105511480A CN105511480A (zh) 2016-04-20
CN105511480B true CN105511480B (zh) 2018-03-06

Family

ID=55719540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610104499.XA Active CN105511480B (zh) 2016-02-25 2016-02-25 一种基于人工蜂群优化的模型预测的欠驱动uuv深度控制方法

Country Status (1)

Country Link
CN (1) CN105511480B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201996A (zh) * 2016-07-19 2016-12-07 宝鸡文理学院 一种改进的三角函数切换算法
CN106292287B (zh) * 2016-09-20 2019-03-05 哈尔滨工程大学 一种基于自适应滑模控制的uuv路径跟踪方法
CN108008628B (zh) * 2017-11-17 2020-02-18 华南理工大学 一种不确定欠驱动无人艇系统的预设性能控制方法
CN108227502B (zh) * 2018-01-22 2020-09-25 哈尔滨工程大学 一种过驱动auv执行机构切换控制方法
CN109032136B (zh) * 2018-07-23 2020-09-08 西北工业大学 基于主从分布式模型预测控制的欠驱动多无人船编队跟踪方法
CN109002636B (zh) * 2018-08-02 2022-11-01 哈尔滨工程大学 一种水下无人潜航器低耦合分层架构逐级优化方法
CN111506090A (zh) * 2020-04-18 2020-08-07 华中科技大学 一种水下机器人深度区间控制方法和系统
CN111880563B (zh) * 2020-07-17 2022-07-15 西北工业大学 一种基于maddpg的多无人机任务决策方法
CN117419731B (zh) * 2023-12-19 2024-03-12 青岛哈尔滨工程大学创新发展中心 基于多策略人工蜂群算法在海洋环境下的路径规划方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61148513A (ja) * 1984-12-21 1986-07-07 Nec Corp 潜水船の操縦制御装置
DE19537642A1 (de) * 1995-10-10 1997-04-17 Siemens Ag Verfahren und Anordnung zur Schweberegelung von getauchten Fahrzeugen
CN101984378B (zh) * 2010-11-11 2012-07-25 西北工业大学 深度模拟器实时控制系统及控制方法
CN103336887A (zh) * 2013-06-05 2013-10-02 哈尔滨工程大学 一种基于蜂群算法辨识水动力系数的方法
CN103487056A (zh) * 2013-09-24 2014-01-01 哈尔滨工程大学 一种基于人工蜂群算法和平均Hausdorff距离的重力匹配方法
CN104268625B (zh) * 2014-10-09 2017-06-20 哈尔滨工程大学 一种基于海洋环境信息的自主式水下潜器航迹预测方法

Also Published As

Publication number Publication date
CN105511480A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
CN105511480B (zh) 一种基于人工蜂群优化的模型预测的欠驱动uuv深度控制方法
CN108803321B (zh) 基于深度强化学习的自主水下航行器轨迹跟踪控制方法
CN110928189B (zh) 一种基于强化学习和李雅普诺夫函数的鲁棒控制方法
Su et al. Attitude control of underwater glider combined reinforcement learning with active disturbance rejection control
CN111290270B (zh) 一种基于Q-learning参数自适应技术的水下机器人反步速度和艏向控制方法
CN115016496A (zh) 基于深度强化学习的水面无人艇路径跟踪方法
JP2016173686A (ja) 情報処理装置
CN107315348B (zh) 一种基于惩罚式小波网络的无人潜航器位姿控制方法
CN108717263A (zh) 波浪滑翔器多体艏向融合的无模型自适应航向控制方法
Palmisano et al. Robotic pectoral fin thrust vectoring using weighted gait combinations
JP6372046B2 (ja) 外乱加速度の推定方法、船体の自動制御方法及び外乱加速度の推定装置並びに外乱加速度の推定用コンピュータプログラム
CN109901622A (zh) 一种基于机理模型的自主水下机器人预测s面控制方法
CN111813143B (zh) 一种基于强化学习的水下滑翔机智能控制系统及方法
Szymak Selection of method for underwater robot control
Anderlini et al. Towards autonomy: A recommender system for the determination of trim and flight parameters for Seagliders
Dong et al. Gliding motion optimization for a biomimetic gliding robotic fish
CN116400726A (zh) 一种基于强化学习的旋翼无人机逃逸方法及系统
Liu et al. Physics-informed identification of marine vehicle dynamics using hydrodynamic dictionary library-inspired adaptive regression
Zhang et al. Gliding control of underwater gliding snake-like robot based on reinforcement learning
Al-Awad Model reference adaptive control-based genetic algorithm design for heading ship motion
Li et al. Prioritized experience replay based reinforcement learning for adaptive tracking control of autonomous underwater vehicle
Aruna Heave and Roll control of Biomimetic AUV using Advanced control strategies
Fernandes et al. Trajectory tracking motion control system for observation class ROVs
Wang et al. Experimental study of intelligent autopilot for surface vessels based on neural network Optimised PID controller
Nurhadi et al. Design of sliding mode control for surge, heave and pitch motion control of UNUSAITS AUV

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant