1.本发明涉及水下自主航行器技术领域,特别是涉及一种基于模型预测控制的水下自主航行器深度和纵向解耦耦控制方法及系统。
背景技术:
2.水下自主航行器(autonomous underwater vehicle),简称auv,是一种具有自主能力的水下智能运载装备,被广泛应用于海上救援、海底探测和海底管道铺设等场景,具有深远的应用价值与研究意义。
3.对于auv的运动控制,可以分为深度、纵向和航向控制三个维度。由于auv在航行时,需要避开海底的障碍,并且需要根据实际情况调整纵向速度,所以auv的深度和纵向速度控制成为人们研究的热点问题。
4.检索现有专利,关于auv运动控制方法的专利数量不多。浙江大学的专利“基于不确定海流扰动下的多auv分布式协同跟踪控制方法”(专利号:cn201810142114.8)提出了一种基于神经网络的控制方法来解决不确定海流扰动带来的控制难题;清华大学的专利“基于深度强化学习的自主水下航行器轨迹跟踪控制方法”(专利号:cn201810535773.8)提出了一种基于深度强化学习的轨迹跟踪控制方法,可以使auv不受到历史轨迹的影响;西北工业大学的专利“基于分层分布式模型预测控制的auv编队协同控制方法”(专利号:cn201611163767.1)提出了一种基于分层分布式的模型预测控制方法,将auv分为运动学模型和动力学模型两层,从而实现分层的多auv分布式控制。
5.检索现有论文,ge guo和zhenyu gao在论文“fixed
‑
time sliding mode formation control of auvs based on a disturbance observer”中提出了一种有扰动情况下auv滑模控制算法,使其在有限时间内,在多重扰动下实现全局稳定。haoliang wang等在论文“adaptive cooperative diving of saucer
‑
type underwater gliders subject to model uncertainties and input constraints”中提出了一种处理模型不确定性的自适应方法。除此之外,基于神经网络、模糊控制和模型预测控制等的方法也被应用到了auv的运动控制中。chao shen等在论文“model predictive control for an auv with dynamic path planning”中提出了一种动态路径规划和模型预测控制共同作用的方法,来解决复杂环境下auv规划和控制的问题。
6.但是,由于模型预测控制计算负担较重,当模型具有强非线性、强耦合性时,控制的实时性较难得到保证。
技术实现要素:
7.本发明的目的在于提供一种基于模型预测控制的水下自主航行器深度和纵向解耦控制方法和系统,以期提高计算效率来降低计算负担,提高控制的实时性。
8.为实现上述目的,本发明的实施例提供一种基于模型预测控制的水下自主航行器深度和纵向解耦控制方法,所述方法包括建模步骤s0,所述建模步骤s0对水下自主航行器
进行动力学建模,使得所述模型符合水下自主航行器的动力学特性,且适于采用于模型预测控制,所述建模步骤s0具体包括:
9.步骤s01,对于水下自主航行器建立深度和纵向速度耦合的系统模型如下:
[0010][0011]
各符号表示的意义如下:
[0012]
z——深度;
[0013]
u——纵向速度;
[0014]
θ——俯仰角;
[0015]
q——俯仰角速度;
[0016]
x
|u|u
——计算流体阻力的系统水动力系数;
[0017]
——计算横向惯性力矩的加速度水动力系数;
[0018]
——计算纵向惯性力的加速度水动力系数;
[0019]
m
q
——俯仰角速度水动力系数;
[0020]
x
wq
——垂向速度俯仰角速度水动力系数;
[0021]
m
w
——垂向速度水动力系数;
[0022]
——舵角水动力系数;
[0023]
i
y
——沿横向轴的转动惯量;
[0024]
z
g
——重心在垂直方向的位置;
[0025]
z
b
——浮力中心在垂直方向的位置;
[0026]
w——重力;
[0027]
b——浮力;
[0028]
δ
s
——与深度控制相关的舵角,即垂直舵角;在本发明中,为了简化表述,除非特别指明,舵角都是指即垂直舵角;
[0029]
t——纵向推力;
[0030]
m——水下自主航行器的质量;
[0031]
步骤s02,将上述系统模型分解为纵向速度控制子系统模型和深度控制子系统模型,
[0032]
纵向速度控制子系统模型为:
[0033][0034]
深度控制子系统模型为:
[0035][0036]
步骤s03,确定水下自主航行器系统状态向量y、水下自主航行器的深度控制子系
统状态向量x,水下自主航行器的速度控制子系统状态向量u,
[0037]
其中,水下自主航行器的系统状态向量y=[z,θ,q,u],
[0038]
水下自主航行器的深度控制子系统状态向量x=[z,θ,q],
[0039]
水下自主航行器的速度控制子系统状态向量u=[u],
[0040]
用x(k),y(k),u(k)分别表示上述状态向量在任意离散时刻k的值,
[0041]
步骤s04,用采样时间δt离散化上述状态向量,步骤s04包括下述步骤:
[0042]
步骤s041,将深度控制子系统状态向量用采样时间δt离散化,得到:
[0043]
即:x(k 1)=f[x(k),u(k),δ
s
(k)],
[0044]
步骤s042,将速度控制子系统状态向量用采样时间δt离散化,得到:
[0045]
即:u(k 1)=g[x(k),u(k),t(k)],
[0046]
步骤s043,将系统状态向量用采样时间δt离散化,得到:
[0047][0048]
即:y(k 1)=h[x(k),u(k),δ
s
(k),t(k)]。
[0049]
优选地,根据本发明实施例的方法利用建模步骤s0中建立的模型以及离散化的状态向量表达式,对解耦的纵向速度控制子系统模型和深度控制子系统模型,分别以舵角δ
s
和纵向推力t为控制输入量,构建优化问题,分别获取舵角δ
s
和纵向推力t的最优控制输入,并以所述最优控制输入控制水下自主航行器。
[0050]
优选地,在根据本发明实施例的方法中,采样水下自主航行器的参数,基于采样参数和离散公式,获取水下自主航行器在未来最大预测步长n
p
个时刻内的预测状态,
[0051]
把上一离散时刻求得的预测最优状态序列内的纵向速度序列作为深度控制子系统中纵向速度的值,对深度控制子系统进行优化来求解未来n
p
个时刻内的最优控制舵角输入序列,
[0052]
同时,把上一离散时刻求得的预测最优状态序列内的俯仰角序列作为纵向速度控制子系统中的对应量的值,对纵向速度控制子系统进行优化来求解未来n
p
个时刻内的最优控制纵向推力输入序列,
[0053]
以所述最优控制舵角输入序列的第一个值、所述最优控制纵向推力输入序列的第一个值来控制水下自主航行器,输入序列的其他值用于生成水下自主航行器在后续未来n
p
个时刻的预测最优状态序列,并重新采样再获取预测最优状态序列,如此循环,直至完成控
制任务。
[0054]
优选地,根据本发明实施例的方法包括下述的控制步骤:
[0055]
步骤s1,在t=t0的起始时刻,采样水下自主航行器的状态,并对水下自主航行器系统进行初始化,
[0056]
采样的参数如下:
[0057]
y(0)=[z(0),θ(0),q(0),u(0)],或者,表示为
[0058]
y(t)=[z(t),θ(t),q(t),u(t)],其中,t=t0,
[0059]
对水下自主航行器系统的初始化包括:获取水下自主航行器在未来n
p
个时刻内的预测最优状态及
[0060]
需要指出的是,“预测最优状态”仅仅是一个假定的状态,或者是一个设定的状态,并非是实际的运行状态。“预测最优状态”根据上一离散时刻求得的最优状态而来或者直接给定,仅仅用于给两个子系统的耦合变量赋值,从而解耦两个子系统,进而求取最优的舵角输入及推力输入。
[0061]
其中,n
p
为最大预测步长,为大于等于1的自然数,
[0062]
所述np个时刻为t=t0 1*δt,t0 2*δt,
…
,t0 k*δt,
…
,t0 (np
‑
1)*δt,t0 np*δt,δt为采样周期或采样时间间隔,
[0063][0064][0065][0066][0067]
表示在时刻t对时刻t之后k步的预测最优值,或(t k*δt)时刻的预测最优值,
[0068]
其中,分别为水下自主航行器的深度、俯仰角、俯仰角速度、和纵向速度的预测最优值,
[0069]
步骤s2,对深度控制子系统和纵向速度控制子系统分别构建优化问题,即构建对深度控制子系统的最优控制优化问题p
d
(t),以及构建对纵向速度控制子系统的最优控制优化问题p
l
(t),
[0070]
对于p
d
(t),把作为深度控制子模型中时刻t之后n
p
个离散时刻纵向速度的预测值,以舵角输入作为变量,以舵角最小、与预测最优状态的状态偏离最小、以及/或者与预设约束状态之间的偏差最小为优化目的,以便获取舵角最优控制输入序列,
[0071]
对于p
l
(t),把中的俯仰角序列作为纵向速度控制子模型中时刻t之后n
p
个离散时刻俯仰角的预测值,以纵向推力输入作为变量,以纵向推力最小、与预测最优状态的状态偏离最小、以及/或者与预设约束状态之间的偏差最小为优化目的,以便获取纵向推力最优控制输入序列,
[0072]
需要指出的是,此处的预设约束状态可以是参考轨迹或跟踪轨迹,但不限于参考轨迹或跟踪轨迹,还可以是其他预设约束状态。例如可以是仅仅在某些时间段具有参考轨迹;或者可以是要求在某些时间段中,处于设定的深度,或者处于设定的位置,或者而处于设定的纵向速度,或者要求在特定的时间段或特定的区域纵向推力小于设定值。
[0073]
所述其他预设约束状态具体通过优化问题的代价函数中代表预测状态与其他预设约束状态之间误差的惩罚来体现。在不存在其他预设约束状态,或者在某些时段不存在其他预设约束状态的情况下,所述惩罚取值为0。
[0074]
在不能计算其他预设约束状态、或不能计算预测状态与其的误差的情况下;或者,在某些时段不能计算存在其他预设约束状态、或不能计算预测状态与其的误差的情况下,所述惩罚取值为0。
[0075]
步骤s3,求解优化问题,获取最优控制输入序列,
[0076]
具体地,通过求解优化问题p
d
(t),获取舵角最优控制输入序列,获取的舵角最优控制输入序列=[δ
s
(0|t),δ
s
(1|t),
…
,δ
s
(k|t),
…
,δ
s
(n
p
‑
1|t)],
[0077]
通过求解优化问题p
l
(t),获取纵向推力最优控制输入序列,获取的纵向推力最优控制输入序列=[t(0|t),t(1|t),
…
,t(k|t),
…
,t(np
‑
1|t)],
[0078]
步骤s4,将步骤s3获取的舵角最优控制输入序列的第一个值δ
s
(0|t)和纵向推力最优控制输入序列的第一个值t(0|t)作为真实控制量作用于水下自主航行器,
[0079]
基于步骤s3获取的本采样周期的最优控制舵角输入值序列的值,确定下一采样周期的舵角预设序列如下,
[0080]
[δ
s*
(0|t δt),δ
s*
(1|t δt),
…
,δ
s*
(k|t δt),
…
,δ
s*
(np
‑
1|t δt)]
[0081]
=[δ
s
(1|t),
…
,δ
s
(k|t),
…
,δ
s
(n
p
‑
1|t),δ
s
(n
p
|t)=设定舵角值],设定舵角值可以根据需要设置,例如δ
s
(n
p
|t)设置为等于零,以便于快速实现优化收敛,以较快的计算速度或效率实现舵角最小的优化目标;或者δ
s
(n
p
|t)设置为等于已经确定的δ
s
(n
p
‑
1|t),从而,有利于增进运行中舵角的稳定。需要指出的是,δ
s
(n
p
|t)的值仅仅是一个给出的假定初始值,最终的输出舵角取决于优化的结果。
[0082]
基于步骤s3获取的本采样周期的最优控制纵向推力输入值序列的值,确定下一采样周期的纵向推力预设序列如下,
[0083]
[t
*
(0|t δt),t
*
(1|t δt),
…
,t
*
(k|t δt),
…
,t
*
(np
‑
1|t δt)]
[0084]
=[t(1|t),
…
,t(k|t),
…
,t(np
‑
1|t),t(np|t)=设定纵向推力值],设定纵向推力值可以根据需要设置,例如t(np|t)可以设置为等于零,以便于快速实现优化收敛,以较快的计算速度或效率实现纵向推力最小的优化目标;或者t(np|t)设置为等于已经确定的t(n
p
‑
1|t),从而,有利于增进运行中纵向推力的稳定。需要指出的是,t(n
p
|t)的值仅仅是一个给出的假定初始值,最终的输出纵向推力取决于优化的结果。
[0085]
步骤s5,经过一个采样周期后,t=t δt,再次采样水下自主航行器状态,得到采样的参数y(t)=[z(t),θ(t),q(t),u(t)],
[0086]
基于采样的参数、当前采样周期的预设控制输入序列,利用离散公式y(k 1)=h[x(k),u(k),δ
s
(k),t(k)],获取水下自主航行器在未来n
p
个时刻内的预测最优状态及
[0087]
然后,转步骤s2。
[0088]
在本发明的一些实施例中,为了结束控制,设置有结束判断步骤,在所述结束判断步骤中,判断是否满足结束对水下自主航行器的深度和纵向解耦控制的条件,如果满足,则结束控制;否则继续进行。
[0089]
所述结束判断步骤可以设置在步骤s1至s5的任何阶段,或者可以设置为一个中断触发入口,在满足相信的触发条件后,即中断上述控制方法的进行。
[0090]
中断的条件可以根据需要设置,例如,可以是完成控制任务,如到达目的地;或运行了设定时长;或者,可以是已经无法执行签署控制方法,例如卸载的能量低于设定阈值,或者在设定的时长内,无法完成优化而求解出相应的最优控制输入序列。
[0091]
在本发明的一些实施例中,在步骤s1中,直接给定与起始时刻对应的采样周期的预设控制输入序列,然后,基于采样的参数、直接给定的预设控制输入序列,利用离散公式y(k 1)=h[x(k),u(k),δ
s
(k),t(k)],获取水下自主航行器在未来n
p
个时刻内的预测最优状态及或者
[0092]
在步骤s1中,根据经验值,或者根据所要跟踪的轨迹,直接给定水下自主航行器在未来n
p
个时刻内的预测最优状态及
[0093]
在本发明的一些实施例中,在步骤s2中,构建对深度控制子系统的最优控制优化问题p
d
(t)如下:
[0094][0095]
其中,为待优化的代价函数,
[0096]
l
d
为待优化的代价函数的表达式,
[0097]
为预测舵角输入,在最优控制优化问题p
d
(t)的优化过程中为待优化的变量,
[0098]
为t时刻之后的第k个预测舵角输入,其值在本优化周期中,或者更具体地,在优化问题p
d
(t)的求解过程中,在一定的阈值内变化,以得到优化的结果,
[0099]
是待优化的变量,通过变化的取值,从而计算最小的代价函数,
[0100]
x
p
为深度控制子系统状态向量的预测值,在优化过程中,其值根据而变化,
[0101]
x
a
为深度控制子系统状态向量的假设值或比较基准值,
[0102][0103]
x
a
为深度控制子系统状态向量的假设值或比较基准值,
[0104]
x
r
为所述控制方法所跟踪的跟踪轨迹y
r
的子集,
[0105]
跟踪轨迹y
r
(t)=[z
r
(t),θ
r
(t),q
r
(t),u
r
(t)]=[x
r
(t),u
r
(t)],跟踪轨迹y
r
(t)包含了每个时刻水下自主航行器的理想状态,其中,x
r
(k|t)=x
r
(t k),u
r
(k|t)=u
r
(t k),
[0106]
上述优化问题p
d
(t)满足:
[0107]
x
p
(0|t)=x(t),
[0108][0109][0110][0111]
其中,
[0112]
为舵角输入约束,例如,所述舵角输入约束具体为:舵角的取值,应该确保俯仰角处于设定的范围之内,或者舵角的变化速度应该处于设定的范围之内等等,当然也可以是其他与舵角相关的约束。
[0113]
为水下自主航行器的垂向状态约束,例如,所述垂向状态约束具体为纵向速度的取值,应该确保深度或者深度变化速度处于设定的范围之内等等,当然也可以是其他与与舵角相关的约束。
[0114]
可以根据具体的优化目的确定,在一个实施例中,其定义为下式:
[0115][0116]
其中,代表对控制输入的惩罚,
[0117]
代表对预测状态与参考状态误差的惩罚,
[0118]
代表预测状态与跟踪轨迹误差的惩罚
[0119]
r
d
、f
d
和g
d
为权重系数,
[0120]
对于矩阵x,定义p范数:
[0121]
在本发明的一些实施例中,在步骤s2中,构建对纵向速度控制子系统的最优控制优化问题p
l
(t)如下:
[0122][0123]
其中,为待优化的代价函数,
[0124]
l
l
为待优化的代价函数的表达式,
[0125]
t
p
为预测纵向推力输入,在最优控制优化问题p
l
(t)的优化过程中为待优化的变量,
[0126]
t
p
(k|t)为纵向速度控制子系统在t时刻之后的第k个预测纵向推力输入,t
p
(k|t)是待优化的变量,通过变化t
p
(k|t)的取值,从而计算最小的代价函数,
[0127]
u
p
为纵向速度控制子系统状态向量的预测值,在优化过程中,其值根据t
p
而变化,
[0128]
u
a
为纵向速度控制子系统状态向量的假设值或比较基准值,
[0129][0130]
u
r
为所述控制方法所跟踪的跟踪轨迹y
r
的子集,
[0131]
跟踪轨迹y
r
(t)=[z
r
(t),θ
r
(t),q
r
(t),u
r
(t)]=[x
r
(t),u
r
(t)],跟踪轨迹y
r
(t)包含了每个时刻水下自主航行器的理想状态,其中,x
r
(k|t)=x
r
(t k),u
r
(k|t)=u
r
(t k),
[0132]
上述优化问题p
l
(t)满足:
[0133]
u
p
(o|t)=u(t),
[0134][0135][0136][0137]
其中,
[0138]
为纵向速度控制子系统的输入约束,
[0139]
为水下自主航行器纵向状态约束,
[0140]
l
l
(u
p
,t
p
,u
a
;k|t)可以根据具体的优化目的确定,在一个实施例中,其定义为下式:
[0141][0142]
其中,代表对控制输入的惩罚,
[0143]
代表对预测状态与参考状态误差的惩罚,
[0144]
代表预测状态与跟踪轨迹误差的惩罚,
[0145]
r
l
、g
l
和f
l
是权重系数,
[0146]
对于矩阵或参数x,定义p范数:
[0147]
本发明的实施例还提供一种基于模型预测控制的水下自主航行器深度和纵向解耦控制系统,所述基于模型预测控制的水下自主航行器深度和纵向解耦控制系统包括:状态传感器单元、数据解耦计算单元、优化控制计算单元和控制执行单元等,
[0148]
其中,状态传感器单元与优化控制计算单元和数据解耦计算单元连接,优化控制计算单元与数据解耦计算单元和控制执行单元连接,
[0149]
状态传感器单元以设定的采样周期探测水下自主航行器的状态,所述状态包括:水下自主航行器的深度、俯仰角、俯仰角速度、纵向速度,所述状态的值被传输至优化控制计算单元和数据解耦单元,
[0150]
数据解耦单元根据所接受的状态和上一时刻接受于最优控制计算单元的最优控制序列,计算未来的预测最优状态,从而解耦水下自主航行器的纵向速度控制子模型和深度控制子模型,并生成两个子系统的最优化问题,
[0151]
优化控制计算单元接受数据解耦单元发送的最优化问题,基于所述状态的值,以
及预测状态的值,得到最优控制输入,以得到的最优控制输入来控制执行单元驱动auv运动,并将得到的最优控制输入传输到控制执行单元和数据解耦计算单元中,用于下一周期的预测及优化。
[0152]
在本发明的一些实施例中,所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制系统,采用如上任一项所述的方法来进行深度与纵向解耦控制。
[0153]
在本发明的一些实施例中,所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制系统进一步包括水平舵角控制单元,用于控制水平舵角。水平舵角控制单元的控制方法,可以采用任何适当的控制方法,例如可以借鉴在路面上行驶的车辆的横向运动控制方法。
[0154]
本发明实施例的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法和系统,将深度和纵向进行解耦,大大提高了计算效率,降低计算负担,显著提高了控制的实时性。
附图说明
[0155]
图1是根据本发明一实施例的水下自主航行器深度和纵向解耦耦控制系统的示意图。
具体实施方式
[0156]
在附图中,使用相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面结合附图对本发明的实施例进行详细说明。
[0157]
在本发明的描述中,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
[0158]
水下自主航行器是一种综合了人工智能和其他先进计算技术的任务控制器,集成了深潜器、传感器、环境效应、计算机软件、能量储存、转换与推进、新材料与新工艺、以及水下智能武器等高科技,主要用于海洋科学考察及水下搜救工作。军事上则能够用于反潜战、水雷战、侦察与监视和后勤支援等领域。
[0159]
但是,因为运行轨迹的立体化,水下自主航行器的运行控制极其复杂,尤其是其深度和纵向速度控制,因为彼此耦合在一起,进行控制时,运算极其复杂。
[0160]
模型预测控制(model predictive control),简称mpc,是一种基于预测未来时刻的系统状态,设计代价函数,求取最优控制输入的方法,在航空航天、汽车等工业控制领域得到了很好的应用。
[0161]
本发明的实施例,将模型预测控制引入水下自主航行器的控制,通过对水下自主航行器进行动力学建模,并分解所述动力学模型,从而实现深度与纵向的解耦,大大简化了控制过程中的计算,提高了运算效率,有利于保证控制的实时性。
[0162]
根据本发明一实施例的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法首先包括建模步骤s0。所述建模步骤s0对水下自主航行器进行动力学建模,使得所述模型符合水下自主航行器的动力学特性,且适于采用于模型预测控制方法来进行控制。
[0163]
所述建模步骤s0具体包括:
[0164]
步骤s01,对于水下自主航行器建立深度和纵向速度耦合的系统模型如下:
[0165][0166]
各符号表示的意义如下:
[0167]
z——深度;
[0168]
u——纵向速度;
[0169]
θ——俯仰角;
[0170]
q——俯仰角速度;
[0171]
x
|u|u
——计算流体阻力的系统水动力系数;
[0172]
——计算横向惯性力矩的加速度水动力系数;
[0173]
——计算纵向惯性力的加速度水动力系数;
[0174]
m
q
——俯仰角速度水动力系数;
[0175]
x
wq
——垂向速度俯仰角速度水动力系数;
[0176]
m
w
——垂向速度水动力系数;
[0177]
——舵角水动力系数;
[0178]
i
y
——沿横向轴的转动惯量;
[0179]
z
g
——重心在垂直方向的位置;
[0180]
z
b
——浮力中心在垂直方向的位置;
[0181]
w——重力;
[0182]
b——浮力;
[0183]
δ
s
——与深度控制相关的舵角,即垂直舵角;在本发明中,为了简化表述,除非特别指明,舵角都是指即垂直舵角;
[0184]
t——纵向推力;
[0185]
m——水下自主航行器的质量;
[0186]
步骤s02,将上述系统模型分解为纵向速度控制子系统模型和深度控制子系统模型,
[0187]
纵向速度控制子系统模型为:
[0188][0189]
深度控制子系统模型为:
[0190][0191]
步骤s03,确定水下自主航行器系统状态向量y、水下自主航行器的深度控制子系统状态向量x,水下自主航行器的速度控制子系统状态向量u,
[0192]
其中,水下自主航行器的系统状态向量y=[z,θ,q,u],
[0193]
水下自主航行器的深度控制子系统状态向量x=[z,θ,q],
[0194]
水下自主航行器的速度控制子系统状态向量u=[u],
[0195]
用x(k),y(k),u(k)分别表示上述状态向量在任意离散时刻k的值,
[0196]
步骤s04,用采样时间δt离散化上述状态向量,步骤s04包括下述步骤:
[0197]
步骤s041,将深度控制子系统状态向量用采样时间δt离散化,得到:
[0198][0199]
即:x(k 1)=f[x(k),u(k),δ
s
(k)],
[0200]
步骤s042,将速度控制子系统状态向量用采样时间δt离散化,得到:
[0201]
即:u(k 1)=g[x(k),u(k),t(k)],
[0202]
步骤s043,将系统状态向量用采样时间δt离散化,得到:
[0203][0204]
即:y(k 1)=h[x(k),u(k),δ
s
(k),t(k)]。
[0205]
优选地,根据本发明实施例的方法利用建模步骤s0中建立的模型以及离散化的状态向量表达式,对解耦的纵向速度控制子系统模型和深度控制子系统模型,分别以舵角δ
s
和纵向推力t为控制输入量,构建优化问题,分别获取舵角δ
s
和纵向推力t的最优控制输入,并以所述最优控制输入控制水下自主航行器。
[0206]
优选地,在根据本发明实施例的方法中,采样水下自主航行器的参数,基于采样参数和离散公式,获取水下自主航行器在未来最大预测步长n
p
个时刻内的预测状态,
[0207]
把上一离散时刻求得的预测最优状态序列内的纵向速度序列作为深度控制子系统中纵向速度的值,对深度控制子系统进行优化来求解未来n
p
个时刻内的最优控制舵角输入序列,
[0208]
同时,把上一离散时刻求得的预测最优状态序列内的俯仰角序列作为纵向速度控制子系统中的对应量的值,对纵向速度控制子系统进行优化来求解未来n
p
个时刻内的最优控制纵向推力输入序列,
[0209]
以所述最优控制舵角输入序列的第一个值、所述最优控制纵向推力输入序列的第一个值来控制水下自主航行器,输入序列的其他值用于生成水下自主航行器在后续未来n
p
个时刻的预测最优状态序列,并重新采样再获取预测最优状态序列,如此循环,直至完成控制任务。
[0210]
本发明的实施例具有以下优点:1、将复杂的auv模型分成两个部分,有助于提高计算效率和控制器的实时性;2、两个系统的最优化计算互不干扰,在实际控制中可以分开调节系统参数。
[0211]
具体地,根据本发明一实施例的方法包括下述的控制步骤s1至步骤s5。步骤s1至步骤s5形成一个循环,反复地运行。
[0212]
步骤s1为初始步骤,在t=t0的起始时刻,采样水下自主航行器的状态,并对水下自主航行器系统进行初始化,
[0213]
采样的参数如下:
[0214]
y(0)=[z(0),θ(0),q(0),u(0)],或者,表示为
[0215]
y(t)=[z(t),θ(t),q(t),u(t)],其中,t=t0,
[0216]
对水下自主航行器系统的初始化包括:获取水下自主航行器在未来n
p
个时刻内的预测最优状态及
[0217]
需要指出的是,“预测最优状态”仅仅是一个假定的状态,或者是一个设定的状态,并非是实际的运行状态。“预测最优状态”仅仅用于求取舵角输入及推力输入。
[0218]
其中,n
p
为最大预测步长,为大于等于1的自然数。最大预测步长可以根据需要设置,最大预测步长越大,越能够满足控制要求,但是计算量也越大。
[0219]
所述np个时刻为t=t0 1*δt,t0 2*δt,
…
,t0 k*δt,
…
,t0 (np
‑
1)*δt,t0 np*δt,δt为采样周期或采样时间间隔,
[0220][0221][0222][0223][0224]
表示在时刻t对时刻t之后k步的预测最优值,或(t k*δt)时刻的预测最优值,
[0225]
其中,分别为水下自主航行器的深度、俯仰角、俯仰角速度、和纵向速度的预测最优值。
[0226]
步骤s2为最优控制优化问题构建步骤。在步骤s2中,对深度控制子系统和纵向速度控制子系统分别构建优化问题,即构建对深度控制子系统的最优控制优化问题p
d
(t),以及构建对纵向速度控制子系统的最优控制优化问题p
l
(t)。
[0227]
对于p
d
(t),把作为深度控制子模型中时刻t之后n
p
个离散时刻纵向速度的定常参数,以舵角输入作为变量,以舵角最小、与预测最优状态的状态偏离最小、以及/或者与预设约束状态之间的偏差最小为优化目的,以便获取舵角最优控制输入序列。
[0228]
对于p
l
(t),把中的俯仰角序列作为纵向速度控制子模型中时刻t之后n
p
个离散时刻俯仰角的定常参数,以纵向推力输入作为变量,以纵向推力最小、与预测最优状态
的状态偏离最小、以及/或者与预设约束状态之间的偏差最小为优化目的,以便获取纵向推力最优控制输入序列。
[0229]
通过把为纵向速度序列作为深度控制子系统中纵向速度的值,同时把内的俯仰角序列作为纵向速度控制子系统的对应量的值,由此动力学模型解耦成为独立的两个子模型,可以分别进行优化求解。
[0230]
需要指出的是,此处的预设约束状态可以是参考轨迹或跟踪轨迹,但不限于参考轨迹或跟踪轨迹,还可以是其他预设约束状态。例如可以是仅仅在某些时间段具有参考轨迹;或者可以是要求在某些时间段中,处于设定的深度,或者处于设定的位置,或者而处于设定的纵向速度,或者要求在特定的时间段或特定的区域纵向推力小于设定值。
[0231]
所述其他预设约束状态具体通过优化问题的代价函数中代表预测状态与其他预设约束状态之间误差的惩罚来体现。在不存在其他预设约束状态,或者在某些时段不存在其他预设约束状态的情况下,所述惩罚取值为0。
[0232]
在不能计算其他预设约束状态、或不能计算预测状态与其的误差的情况下;或者,在某些时段不能计算存在其他预设约束状态、或不能计算预测状态与其的误差的情况下,所述惩罚取值为0。
[0233]
步骤s3为优化求解步骤。在步骤s3中,求解优化问题,获取最优控制输入序列。
[0234]
具体地,通过求解优化问题p
d
(t),获取舵角最优控制输入序列,获取的舵角最优控制输入序列=[δ
s
(0|t),δ
s
(1|t),
…
,δ
s
(k|t),
…
,δ
s
(n
p
‑
1|t)],以及
[0235]
通过求解优化问题p
l
(t),获取纵向推力最优控制输入序列,获取的纵向推力最优控制输入序列=[t(0|t),t(1|t),
…
,t(k|t),
…
,t(np
‑
1|t)]。
[0236]
步骤s4为输出最优控制输入的步骤。
[0237]
在步骤s4中,将步骤s3获取的舵角最优控制输入序列的第一个值δ
s
(0|t)和纵向推力最优控制输入序列的第一个值t(0|t)作为真实控制量作用于水下自主航行器,
[0238]
此外,基于步骤s3获取的本采样周期的最优控制舵角输入值序列的值,确定下一采样周期的舵角预设序列如下,
[0239]
[δ
s*
(0|t δt),δ
s*
(1|t δt),
…
,δ
s*
(k|t δt),
…
,δ
s*
(np
‑
1|t δt)]
[0240]
=[δ
s
(1|t),
…
,δ
s
(k|t),
…
,δ
s
(n
p
‑
1|t),δ
s
(n
p
|t)=设定舵角值],设定舵角值可以根据需要设置,例如δ
s
(n
p
|t)设置为等于零,以便于快速实现优化收敛,以较快的计算速度或效率实现舵角最小的优化目标;或者δ
s
(n
p
|t)设置为等于已经确定的δ
s
(n
p
‑
1|t),从而,有利于增进运行中舵角的稳定。需要指出的是,δ
s
(n
p
|t)的值仅仅是一个给出的假定初始值,最终的输出舵角取决于优化的结果。
[0241]
基于步骤s3获取的本采样周期的最优控制纵向推力输入值序列的值,确定下一采样周期的纵向推力预设序列如下,
[0242]
[t
*
(0|t δt),t
*
(1|t δt),
…
,t
*
(k|t δt),
…
,t
*
(np
‑
1|t δt)]
[0243]
=[t(1|t),
…
,t(k|t),
…
,t(np
‑
1|t),t(np|t)=设定纵向推力值],设定纵向推力值可以根据需要设置,例如t(np|t)可以设置为等于零,以便于快速实现优化收敛,以较快的计算速度或效率实现纵向推力最小的优化目标;或者t(np|t)设置为等于已经确定的t(n
p
‑
1|t),从而,有利于增进运行中纵向推力的稳定。需要指出的是,t(n
p
|t)的值仅仅是一
个给出的假定初始值,最终的输出纵向推力取决于优化的结果。
[0244]
步骤s5为重新采样步骤,经过一个采样周期后,t=t δt,再次采样水下自主航行器状态,得到采样的参数y(t)=[z(t),θ(t),q(t),u(t)],
[0245]
基于采样的参数、当前采样周期的预设控制输入序列,利用离散公式y(k 1)=h[x(k),u(k),δ
s
(k),t(k)],获取水下自主航行器在未来n
p
个时刻内的预测最优状态及
[0246]
然后,转步骤s2。由此形成一个循环的控制过程。
[0247]
在本发明的一些实施例中,为了结束控制,设置有结束判断步骤,在所述结束判断步骤中,判断是否满足结束对水下自主航行器的深度和纵向解耦控制的条件,如果满足,则结束控制;否则继续进行。
[0248]
所述结束判断步骤可以设置在步骤s1至s5的任何阶段,或者可以设置为一个中断触发入口,在满足相信的触发条件后,即中断上述控制方法的进行。
[0249]
中断的条件可以根据需要设置,例如,可以是完成控制任务,如到达目的地;或运行了设定时长;或者,可以是已经无法执行签署控制方法,例如卸载的能量低于设定阈值,或者在设定的时长内,无法完成优化而求解出相应的最优控制输入序列。
[0250]
在本发明的一些实施例中,在步骤s1中,直接给定与起始时刻对应的采样周期的预设控制输入序列,然后,基于采样的参数、直接给定的预设控制输入序列,利用离散公式y(k 1)=h[x(k),u(k),δ
s
(k),t(k)],获取水下自主航行器在未来n
p
个时刻内的预测最优状态及或者
[0251]
在步骤s1中,根据经验值,或者根据所要跟踪的轨迹,直接给定水下自主航行器在未来n
p
个时刻内的预测最优状态及
[0252]
在本发明的一些实施例中,在步骤s2中,构建对深度控制子系统的最优控制优化问题p
d
(t)如下:
[0253][0254]
其中,为待优化的代价函数,
[0255]
l
d
为待优化的代价函数的表达式,
[0256]
为预测舵角输入,在最优控制优化问题p
d
(t)的优化过程中为待优化的变量,
[0257]
为t时刻之后的第k个预测舵角输入,其值在本优化周期中,或者更具体地,在优化问题p
d
(t)的求解过程中,在一定的阈值内变化,以得到优化的结果,
[0258]
是待优化的变量,通过变化的取值,从而计算最小的代价函数,
[0259]
x
p
为深度控制子系统状态向量的预测值,在优化过程中,其值根据而变化,
[0260]
x
a
为深度控制子系统状态向量的假设值或比较基准值,
[0261][0262]
x
a
为深度控制子系统状态向量的假设值或比较基准值,
[0263]
x
r
为所述控制方法所跟踪的跟踪轨迹y
r
的子集,
[0264]
跟踪轨迹y
r
(t)=[z
r
(t),θ
r
(t),q
r
(t),u
r
(t)]=[x
r
(t),u
r
(t)],跟踪轨迹y
r
(t)包含了每个时刻水下自主航行器的理想状态,其中,x
r
(k|t)=x
r
(t k),u
r
(k|t)=u
r
(t k),
[0265]
上述优化问题p
d
(t)满足:
[0266]
x
p
(0|t)=x(t),
[0267][0268][0269][0270]
其中,
[0271]
为舵角输入约束,例如,所述舵角输入约束具体为:舵角的取值,应该确保俯仰角处于设定的范围之内,或者舵角的变化速度应该处于设定的范围之内等等,当然也可以是其他与舵角相关的约束。
[0272]
为水下自主航行器的垂向状态约束,例如,所述垂向状态约束具体为纵向速度的取值,应该确保深度或者深度变化速度处于设定的范围之内等等,当然也可以是其他与与舵角相关的约束。
[0273]
可以根据具体的优化目的确定,在一个实施例中,其定义为下式:
[0274][0275]
其中,代表对控制输入的惩罚,
[0276]
代表对预测状态与参考状态误差的惩罚,
[0277]
代表预测状态与跟踪轨迹误差的惩罚
[0278]
r
d
、f
d
和g
d
为权重系数,
[0279]
对于矩阵x,定义p范数:
[0280]
在本发明的一些实施例中,在步骤s2中,构建对纵向速度控制子系统的最优控制优化问题p
l
(t)如下:
[0281]
[0282]
其中,为待优化的代价函数,
[0283]
l
l
为待优化的代价函数的表达式,
[0284]
t
p
为预测纵向推力输入,在最优控制优化问题p
l
(t)的优化过程中为待优化的变量,
[0285]
t
p
(k|t)为纵向速度控制子系统在t时刻之后的第k个预测纵向推力输入,t
p
(k|t)是待优化的变量,通过变化t
p
(k|t)的取值,从而计算最小的代价函数,
[0286]
u
p
为纵向速度控制子系统状态向量的预测值,在优化过程中,其值根据t
p
而变化,
[0287]
u
a
为纵向速度控制子系统状态向量的假设值或比较基准值,
[0288][0289]
u
r
为所述控制方法所跟踪的跟踪轨迹y
r
的子集,
[0290]
跟踪轨迹y
r
(t)=[z
r
(t),θ
r
(t),q
r
(t),u
r
(t)]=[x
r
(t),u
r
(t)],跟踪轨迹y
r
(t)包含了每个时刻水下自主航行器的理想状态,其中,x
r
(k|t)=x
r
(t k),u
r
(k|t)=u
r
(t k),
[0291]
上述优化问题p
l
(t)满足:
[0292]
u
p
(0|t)=u(t),
[0293][0294][0295][0296]
其中,
[0297]
为纵向速度控制子系统的输入约束,
[0298]
为水下自主航行器纵向状态约束,
[0299]
l
l
(u
p
,t
p
,u
a
;k|t)可以根据具体的优化目的确定,在一个实施例中,其定义为下式:
[0300][0301]
其中,代表对控制输入的惩罚,
[0302]
代表对预测状态与参考状态误差的惩罚,
[0303]
代表预测状态与跟踪轨迹误差的惩罚,
[0304]
r
l
、g
l
和f
l
是权重系数,
[0305]
对于矩阵或参数x,定义p范数:
[0306]
本发明的实施例还提供一种基于模型预测控制的水下自主航行器深度和纵向解耦控制系统,所述基于模型预测控制的水下自主航行器深度和纵向解耦控制系统包括:状态传感器单元、数据解耦计算单元、优化控制计算单元和控制执行单元等,
[0307]
其中,状态传感器单元与优化控制计算单元和数据解耦计算单元连接,优化控制
计算单元与数据解耦计算单元和控制执行单元连接,
[0308]
状态传感器单元以设定的采样周期探测水下自主航行器的状态,所述状态包括:水下自主航行器的深度、俯仰角、俯仰角速度、纵向速度,所述状态的值被传输至优化控制计算单元和数据解耦单元,
[0309]
数据解耦单元根据所接受的状态和上一时刻接受于最优控制计算单元的最优控制序列,计算未来的预测最优状态,从而解耦水下自主航行器的纵向速度控制子模型和深度控制子模型,并生成两个子系统的最优化问题,
[0310]
优化控制计算单元接受数据解耦单元发送的最优化问题,基于所述状态的值,以及预测状态的值,得到最优控制输入,以得到的最优控制输入来控制执行单元驱动auv运动,并将得到的最优控制输入传输到控制执行单元和数据解耦计算单元中,用于下一周期的预测及优化。
[0311]
也就是说,就本发明一实施例的基于模型预测控制的水下自主航行器深度和纵向解耦控制系统包括状态传感器单元、数据解耦计算单元、优化控制计算单元和控制执行单元等。状态传感器单元与优化控制计算单元连接,优化控制计算单元与数据解耦计算单元和控制执行单元连接。状态传感器探测此时的auv状态,输入到优化控制计算单元,优化控制计算单元将得到的最优控制输入传输到控制执行单元和数据解耦计算单元中,控制执行单元驱动auv运动,数据解耦计算单元根据最优控制输入计算未来的预测状态,从而解耦两个子系统。该系统可支持上述方法的具体实施。
[0312]
在本发明的一些实施例中,所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制系统,采用如上任一项所述的方法来进行深度与纵向解耦控制。
[0313]
在本发明的一些实施例中,所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制系统进一步包括水平舵角控制单元,用于控制水平舵角。水平舵角控制单元的控制方法,可以采用任何适当的控制方法,例如可以借鉴在路面上行驶的车辆的横向运动控制方法。
[0314]
本发明实施例的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法和系统,将深度和纵向进行解耦,大大提高了计算效率,降低计算负担,显著提高了控制的实时性。
[0315]
最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。本领域的普通技术人员应当理解:可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种基于模型预测控制的水下自主航行器深度和纵向解耦控制方法,其特征在于,包括建模步骤s0,所述建模步骤s0对水下自主航行器进行动力学建模,使得所述模型符合水下自主航行器的动力学特性,且适于采用于模型预测控制,所述建模步骤s0具体包括:步骤s01,对于水下自主航行器建立深度和纵向速度耦合的系统模型如下:各符号表示的意义如下:z——深度;u——纵向速度;θ——俯仰角;q——俯仰角速度;x
|u|u
——计算流体阻力的系统水动力系数;——计算横向惯性力矩的加速度水动力系数;——计算纵向惯性力的加速度水动力系数;m
q
——俯仰角速度水动力系数;x
wq
——垂向速度俯仰角速度水动力系数;m
w
——垂向速度水动力系数;——舵角水动力系数;i
y
——沿横向轴的转动惯量;z
g
——重心在垂直方向的位置;z
b
——浮力中心在垂直方向的位置;w——重力;b——浮力;δ
s
——与深度控制相关的舵角,即垂直舵角;t——纵向推力;m——水下自主航行器的质量;步骤s02,将上述系统模型分解为纵向速度控制子系统模型和深度控制子系统模型,纵向速度控制子系统模型为:深度控制子系统模型为:步骤s03,确定水下自主航行器系统状态向量y、水下自主航行器的深度控制子系统状态向量x,水下自主航行器的速度控制子系统状态向量u,
其中,水下自主航行器的系统状态向量y=[z,θ,q,u],水下自主航行器的深度控制子系统状态向量x=[z,θ,q],水下自主航行器的速度控制子系统状态向量u=[u],用x(k),y(k),u(k)分别表示上述状态向量在任意离散时刻k的值,步骤s04,用采样时间δt离散化上述状态向量,步骤s04包括下述步骤:步骤s041,将深度控制子系统状态向量用采样时间δt离散化,得到:即:x(k 1)=f[x(k),u(k),δ
s
(k)],步骤s042,将速度控制子系统状态向量用采样时间δt离散化,得到:即:u(k 1)=g[x(k),u(k),t(k)],步骤s043,将系统状态向量用采样时间δt离散化,得到:即:y(k 1)=h[x(k),u(k),δ
s
(k),t(k)]。2.如权利要求1所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法,其特征在于,利用建模步骤s0中建立的模型以及离散化的状态向量表达式,对解耦的纵向速度控制子系统模型和深度控制子系统模型,分别以舵角δ
s
和纵向推力t为控制输入量,构建优化问题,分别获取舵角δ
s
和纵向推力t的最优控制输入,并以所述最优控制输入控制水下自主航行器。3.如权利要求1所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法,其特征在于,采样水下自主航行器的参数,基于采样参数和离散公式,获取水下自主航行器在未来最大预测步长n
p
个时刻内的预测状态,把上一离散时刻求得的预测最优状态序列内的纵向速度序列作为深度控制子系统中纵向速度的值,对深度控制子系统进行优化来求解未来n
p
个时刻内的最优控制舵角输入序列,同时,把上一离散时刻求得的预测最优状态序列内的俯仰角序列作为纵向速度控制子系统中的对应量的值,对纵向速度控制子系统进行优化来求解未来n
p
个时刻内的最优控制纵向推力输入序列,以所述最优控制舵角输入序列的第一个值、所述最优控制纵向推力输入序列的第一个值来控制水下自主航行器,输入序列的其他值用于生成水下自主航行器在后续未来n
p
个时
刻的预测最优状态序列,并重新采样再获取预测最优状态序列,如此循环,直至完成控制任务。4.如权利要求1
‑
3中任一项所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法,其特征在于,包括下述的控制步骤:步骤s1,在t=t0的起始时刻,采样水下自主航行器的状态,并对水下自主航行器系统进行初始化,采样的参数如下:y(0)=[z(0),θ(0),q(0),u(0)],或者,表示为y(t)=[z(t),θ(t),q(t),u(t)],其中,t=t0,对水下自主航行器系统的初始化包括:获取水下自主航行器在未来n
p
个时刻内的预测最优状态及其中,n
p
为最大预测步长,为大于等于1的自然数,所述np个时刻为t=t0 1*δt,t0 2*δt,...,t0 k*δt,...,t0 (np
‑
1)*δt,t0 np*δt,δt为采样周期或采样时间间隔,t,δt为采样周期或采样时间间隔,t,δt为采样周期或采样时间间隔,t,δt为采样周期或采样时间间隔,t,δt为采样周期或采样时间间隔,表示在时刻t对时刻t之后k步的预测最优值,或(t k*δt)时刻的预测最优值,其中,分别为水下自主航行器的深度、俯仰角、俯仰角速度、和纵向速度的预测最优值,步骤s2,对深度控制子系统和纵向速度控制子系统分别构建优化问题,即构建对深度控制子系统的最优控制优化问题p
d
(t),以及构建对纵向速度控制子系统的最优控制优化问题p
l
(t),对于p
d
(t),把作为深度控制子模型中时刻t之后n
p
个离散时刻纵向速度的预测值,以舵角输入作为变量,以舵角最小、与预测最优状态的状态偏离最小、以及/或者与预设约束状态之间的偏差最小为优化目的,以便获取舵角最优控制输入序列,对于p
l
(t),把中的俯仰角序列作为纵向速度控制子模型中时刻t之后n
p
个离散时刻俯仰角的预测值,以纵向推力输入作为变量,以纵向推力最小、与预测最优状态的状态偏离最小、以及/或者与预设约束状态(参考轨迹)之间的偏差最小为优化目的,以便获取纵向推力最优控制输入序列,步骤s3,求解优化问题,获取最优控制输入序列,具体地,通过求解优化问题p
d
(t),获取舵角最优控制输入序列,获取的舵角最优控制输入序列=[δ
s
(0|t),δ
s
(1|t),
…
,δ
s
(k|t),
…
,δ
s
(n
p
‑
1|t)],通过求解优化问题p
l
(t),获取纵向推力最优控制输入序列,获取的纵向推力最优控制
输入序列=[t(0|t),t(1|t),
…
,t(k|t),
…
,t(np
‑
1|t)],步骤s4,将步骤s3获取的舵角最优控制输入序列的第一个值δ
s
(0|t)和纵向推力最优控制输入序列的第一个值t(0|t)作为真实控制量作用于水下自主航行器,基于步骤s3获取的本采样周期的最优控制舵角输入值序列的值,确定下一采样周期的舵角预设序列如下,[δ
s*
(0|t δt),δ
s*
(1|t δt),
…
,δ
s*
(k|t δt),
…
,δ
s*
(np
‑
1|t δt)]=[δ
s
(1|t),
…
,δ
s
(k|t),
…
,δ
s
(n
p
‑
1|t),δ
s
(n
p
|t)=设定舵角值],基于步骤s3获取的本采样周期的最优控制纵向推力输入值序列的值,确定下一采样周期的纵向推力预设序列如下,[t
*
(0|t δt),t
*
(1|t δt),
…
,t
*
(k|t δt),
…
,t
*
(np
‑
1|t δt)]=[t(1|t),
…
,t(k|t),
…
,t(np
‑
1|t),t(np|t)=设定纵向推力值],步骤s5,经过一个采样周期后,t=t δt,再次采样水下自主航行器状态,得到采样的参数y(t)=[z(t),θ(t),q(t),u(t)],基于采样的参数、当前采样周期的预设控制输入序列,利用离散公式y(k 1)=h[x(k),u(k),δ
s
(k),t(k)],获取水下自主航行器在未来n
p
个时刻内的预测最优状态及然后,转步骤s2。5.如权利要求4所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法,其特征在于,在步骤s1中,直接给定与起始时刻对应的采样周期的预设控制输入序列,然后,基于采样的参数、直接给定的预设控制输入序列,利用离散公式y(k 1)=h[x(k),u(k),δ
s
(k),t(k)],获取水下自主航行器在未来n
p
个时刻内的预测最优状态及或者在步骤s1中,根据经验值,或者根据所要跟踪的轨迹,直接给定水下自主航行器在未来n
p
个时刻内的预测最优状态及6.如权利要求4所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法,其特征在于,在步骤s2中,构建对深度控制子系统的最优控制优化问题p
d
(t)如下:其中,为待优化的代价函数,l
d
为待优化的代价函数的表达式,为预测舵角输入,在最优控制优化问题p
d
(t)的优化过程中为待优化的变量,为t时刻之后的第k个预测舵角输入,
是待优化的变量,通过变化的取值,从而计算最小的代价函数,x
p
为深度控制子系统状态向量的预测值,在优化过程中,其值根据而变化,x
a
为深度控制子系统状态向量的假设值或比较基准值,x
a
为深度控制子系统状态向量的假设值或比较基准值,x
r
为所述控制方法所跟踪的跟踪轨迹y
r
的子集,跟踪轨迹y
r
(t)=[z
r
(t),θ
r
(t),q
r
(t),u
r
(t)]=[x
r
(t),u
r
(t)],跟踪轨迹y
r
(t)包含了每个时刻水下自主航行器的理想状态,其中,x
r
(k|t)=x
r
(t k),u
r
(k|t)=u
r
(t k),上述优化问题p
d
(t)应满足:x
p
(0|t)=x(t),(0|t)=x(t),(0|t)=x(t),其中,为舵角输入约束,为水下自主航行器的垂向状态约束,为水下自主航行器的垂向状态约束,代表对控制输入的惩罚,代表对预测状态与参考状态误差的惩罚,代表预测状态与跟踪轨迹误差的惩罚r
d
、f
d
和g
d
为权重系数,对于矩阵x,定义p范数:7.如权利要求4所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法,其特征在于,在步骤s2中,构建对纵向速度控制子系统的最优控制优化问题p
l
(t)如下:其中,为待优化的代价函数,l
l
为待优化的代价函数的表达式,t
p
为预测纵向推力输入,在最优控制优化问题p
l
(t)的优化过程中为待优化的变量,t
p
(k|t)为纵向速度控制子系统在t时刻之后的第k个预测纵向推力输入,t
p
(k|t)是待
优化的变量,通过变化t
p
(k|t)的取值,从而计算最小的代价函数,u
p
为纵向速度控制子系统状态向量的预测值,在优化过程中,其值根据t
p
而变化,u
a
为纵向速度控制子系统状态向量的假设值或比较基准值,u
r
为所述控制方法所跟踪的跟踪轨迹y
r
的子集,跟踪轨迹y
r
(t)=[z
r
(t),θ
r
(t),q
r
(t),u
r
(t)]=[x
r
(t),u
r
(t)],跟踪轨迹y
r
(t)包含了每个时刻水下自主航行器的理想状态,其中,x
r
(k|t)=x
r
(t k),u
r
(k|t)=u
r
(t k),上述优化问题p
l
(t)应满足:u
p
(0|t)=u(t),(0|t)=u(t),(0|t)=u(t),其中,为纵向速度控制子系统的输入约束,为水下自主航行器纵向状态约束,为水下自主航行器纵向状态约束,代表对控制输入的惩罚,代表对预测状态与参考状态误差的惩罚,代表预测状态与跟踪轨迹误差的惩罚,r
l
、g
l
和f
l
是权重系数,对于矩阵或参数x,定义p范数:8.一种基于模型预测控制的水下自主航行器深度和纵向解耦控制系统,其特征在于,所述基于模型预测控制的水下自主航行器深度和纵向解耦控制系统包括:状态传感器单元、数据解耦计算单元、优化控制计算单元和控制执行单元等,其中,状态传感器单元与优化控制计算单元和数据解耦计算单元连接,优化控制计算单元与数据解耦计算单元和控制执行单元连接,状态传感器单元以设定的采样周期探测水下自主航行器的状态,所述状态包括:水下自主航行器的深度、俯仰角、俯仰角速度、纵向速度,所述状态的值被传输至优化控制计算单元和数据解耦单元,数据解耦单元根据所接受的状态和上一时刻接受于最优控制计算单元的最优控制序列,计算未来的预测最优状态,从而解耦水下自主航行器的纵向速度控制子模型和深度控制子模型,并生成两个子系统的最优化问题,优化控制计算单元接受数据解耦单元发送的最优化问题,基于所述状态的值,以及预测状态的值,得到最优控制输入,以得到的最优控制输入来控制执行单元驱动auv运动,并
将得到的最优控制输入传输到控制执行单元和数据解耦计算单元中,用于下一周期的预测及优化。9.如权利要求8所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制系统,其特征在于,采用权利要求1
‑
8中任一项所述的方法来进行深度与纵向解耦控制。10.如权利要求8所述的基于模型预测控制的水下自主航行器深度和纵向解耦控制系统,其特征在于,进一步包括水平舵角控制单元,用于控制水平舵角。
技术总结
本发明公开了一种基于模型预测控制的水下自主航行器深度和纵向解耦耦控制方法及系统。本发明的基于模型预测控制的水下自主航行器深度和纵向解耦控制方法和系统,将深度和纵向进行解耦,大大提高了计算效率,降低计算负担,显著提高了控制的实时性。显著提高了控制的实时性。显著提高了控制的实时性。
技术研发人员:边有钢 张俊杰 徐彪 秦兆博 秦洪懋 秦晓辉 谢国涛 王晓伟 胡满江 李崇康 丁荣军
受保护的技术使用者:湖南大学
技术研发日:2021.03.26
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-1164.html