基于分层分布式模型预测控制的AUV编队协同控制方法与流程

文档序号:12459381阅读:来源:国知局

技术特征:

1.一种基于分层分布式模型预测控制的AUV编队协同控制方法,其特征在于步骤如下:

步骤1:假设编队控制中有M个AUV,每个AUV的横滚问题已被解决;通过分析第i个AUV的运动学特性,其中i∈M,建立上层运动学系统的状态方程:

<mrow> <msub> <mover> <mi>z</mi> <mo>&CenterDot;</mo> </mover> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>f</mi> <mo>(</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>)</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,zi(t)表示上层系统的状态矢量,即xi(t)、yi(t)和zi(t)表示第i个AUV在全局空间下t时刻的X轴、Y轴和Z轴的坐标位置,φi(t)和θi(t)表示AUV系统t时刻的偏航角和俯仰角;ui(t)表示上层系统的控制矢量,ui(t)、vi(t)和wi(t)表示AUV在全局空间下t时刻的每个坐标相对应的控制速度,和ri(t)表示t时刻偏航角的角速度和俯仰角的角速度;

步骤2:将上层系统状态方程以采样周期Tu离散化,得到离散的状态方程:

zi(k+1)=Aizi(k)+Biui(k) (2)

其中,Ai为系统矩阵,Bi为系统的控制输入矩阵,k为离散参数点;

步骤3:对上层运动学系统构造二次性能指标:

<mrow> <msub> <mi>J</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>,</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>N</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>L</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mi>j</mi> <mo>|</mo> <mi>k</mi> <mo>,</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>G</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>N</mi> <mo>|</mo> <mi>k</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>L</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>,</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>&alpha;</mi> <mi>i</mi> <mi>x</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mrow> <mi>x</mi> <mi>i</mi> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <msubsup> <mi>&alpha;</mi> <mi>i</mi> <mi>y</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mrow> <mi>y</mi> <mi>i</mi> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <msubsup> <mi>&alpha;</mi> <mi>i</mi> <mi>z</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mrow> <mi>z</mi> <mi>i</mi> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <msubsup> <mi>&alpha;</mi> <mi>i</mi> <mi>&phi;</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>&phi;</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <msubsup> <mi>&alpha;</mi> <mi>i</mi> <mi>&theta;</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>&theta;</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>+</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <mi>M</mi> </mrow> </munder> <msubsup> <mi>&beta;</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>x</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mover> <mi>x</mi> <mo>~</mo> </mover> <mi>j</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msubsup> <mi>L</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>x</mi> </msubsup> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <mi>M</mi> </mrow> </munder> <msubsup> <mi>&beta;</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>y</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mover> <mi>y</mi> <mo>~</mo> </mover> <mi>j</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msubsup> <mi>L</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>y</mi> </msubsup> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <mi>M</mi> </mrow> </munder> <msubsup> <mi>&beta;</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>z</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mover> <mi>z</mi> <mo>~</mo> </mover> <mi>j</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <msubsup> <mi>L</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mi>z</mi> </msubsup> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>G</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mo>(</mo> <mrow> <mi>k</mi> <mo>+</mo> <mi>N</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>q</mi> <mi>i</mi> <mi>x</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mi>N</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mrow> <mi>x</mi> <mi>i</mi> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <msubsup> <mi>q</mi> <mi>i</mi> <mi>y</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mi>N</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mrow> <mi>y</mi> <mi>i</mi> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <msubsup> <mi>q</mi> <mi>i</mi> <mi>z</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mi>N</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mrow> <mi>z</mi> <mi>i</mi> </mrow> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>+</mo> <msubsup> <mi>q</mi> <mi>i</mi> <mi>&phi;</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>&phi;</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mi>N</mi> <mo>)</mo> </mrow> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <msubsup> <mi>q</mi> <mi>i</mi> <mi>&theta;</mi> </msubsup> <mo>|</mo> <mo>|</mo> <msub> <mi>&theta;</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>+</mo> <mi>N</mi> <mo>)</mo> </mrow> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced>

其中,为上层系统优化目标函数的状态量、控制量和终端状态的影响系数,为各AUV的协同合作指标项的影响系数,Ri=(Rxi,Ryi,Rzi,0,0)表示全局空间坐标下控制路径的期望航路点矢量,为邻居jAUV的预测状态,在上式子(6)中,设计Kj为一个可收敛的N*5阶矩阵,表示在空间坐标系下,每个AUV和邻居AUV之间需要协同保证的各个方位的距离信息,其中i,j∈M,且i≠j;公式(6)为合作指标项,保证第i个AUV的状态与邻居的保持编队协同;Gi(zi(k+N))表示系统二次性能指标中的终端成本函数;

步骤4:求解最优的控制序列:

<mrow> <msubsup> <mi>u</mi> <mi>i</mi> <mo>*</mo> </msubsup> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>argmin</mi> <mrow> <msub> <mi>u</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </munder> <msub> <mi>J</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>,</mo> <msub> <mi>z</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <mi>s</mi> <mi>u</mi> <mi>b</mi> <mi>j</mi> <mi>e</mi> <mi>c</mi> <mi>t</mi> <mi> </mi> <mi>t</mi> <mi>o</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

zi(k+1)=Aizi(k)+Biui(k), (8)

umin≤ui(k+j|k)≤umax,j=0,…,N-1, (9)

zi(k+N|k)∈Ωi, (10)

其中,表示系统控制输入最优序列;umin表示控制输入允许的最小值输入量,umax表示控制输入允许的最大值输入量;(9)式按元素满足不等式;对于终端状态满足(10)式终端范围约束;

步骤5:通过优化计算得到第i个AUV上层系统控制器最优的输入控制量,将其传递给下层系统,作为下层系统整个优化过程的参考轨迹也就是下层控制器在[l*T,(l+Nd-1)*T]时间区间内的设定值;

步骤6:对于下层控制系统,通过分析单个AUV的动力学特性,建立下层系统的状态方程:

<mrow> <mover> <mi>u</mi> <mo>&CenterDot;</mo> </mover> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>h</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>w</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>)</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>

其中u(t)表示下层系统的状态矢量,即w(t)表示k时刻下层系统的控制矢量,即w(t)=[τ(t),τ(t),δ(t),δ(t)]T,τ(t)和δ(t)表示在空间X-Y平面坐标系下,t时刻的航行器的推力和舵偏转,τ(t)和δ(t)表示在与X-Y垂直的平面坐标系下,t时刻的航行器的推力和舵偏转;

步骤7:将下层系统状态方程以采样周期Td=Tu/Nd进行离散化,其中Nd为下层系统控制域的循环次数;得到离散的状态方程:

u(l+1)=Au(l)+Bw(l) (12)

其中,A为系统矩阵,B为系统的控制输入矩阵;

步骤8:对下层系统构造二次性能指标:

<mrow> <mi>J</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>,</mo> <mi>u</mi> <mo>,</mo> <mi>w</mi> <mo>,</mo> <msub> <mi>u</mi> <mi>r</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>N</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mi>L</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>+</mo> <mi>j</mi> <mo>|</mo> <mi>l</mi> <mo>,</mo> <mi>u</mi> <mo>,</mo> <mi>w</mi> <mo>,</mo> <msub> <mi>u</mi> <mi>r</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mi>G</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>(</mo> <mi>l</mi> <mo>+</mo> <mi>N</mi> <mo>|</mo> <mi>l</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> </mrow>

L(l+j|l,u,w,ur)=α||u(l+j|l)-ur||2+ρ||w(l+j|l)||2

G(u(l+N|l))=β||u(l+N|l)-ur||2

其中,G(u(l+T|l))表示系统二次性能指标中的终端成本函数;

步骤9:求解最优的控制序列:

<mrow> <msup> <mi>w</mi> <mo>*</mo> </msup> <mrow> <mo>(</mo> <mi>l</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>argmin</mi> <mrow> <mi>w</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>J</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>,</mo> <mi>u</mi> <mo>,</mo> <mi>w</mi> <mo>,</mo> <msub> <mi>u</mi> <mi>r</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <mi>s</mi> <mi>u</mi> <mi>b</mi> <mi>j</mi> <mi>e</mi> <mi>c</mi> <mi>t</mi> <mi> </mi> <mi>t</mi> <mi>o</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>14</mn> <mo>)</mo> </mrow> </mrow>

u(l+1)=Au(l)+Bw(l), (15)

wmin≤w(l+j|l)≤wmax,j=0,…,N-1, (16)

<mrow> <mi>w</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>+</mo> <mi>N</mi> <mo>|</mo> <mi>l</mi> <mo>)</mo> </mrow> <mo>&Element;</mo> <mover> <mi>&Omega;</mi> <mo>&OverBar;</mo> </mover> <mo>,</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>17</mn> <mo>)</mo> </mrow> </mrow>

其中,w*(l)=[w*(l|l),…,w*(l+N-1|l)]T表示控制输入最优序列;wmin表示控制输入允许的最小值输入量,wmax表示控制输入允许的最大值输入量;(16)式按元素满足不等式;对于终端状态满足(17)式的终端范围约束。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1