基于反步法和四元数的姿态控制

基于反步法和四元数的姿态控制

参考资料

1.动力学模型

以最简单的单刚体姿态动力学模型为例

J ω ˙ + ω × J ω = T (1) \boldsymbol{J}\dot{\boldsymbol{\omega}} + \boldsymbol{\omega} \times \boldsymbol{J}\boldsymbol{\omega} = \boldsymbol{T} \tag{1} Jω˙+ω×Jω=T(1)

其中 J \boldsymbol{J} J为相对于刚体质心的主转动惯量在本体系下的列阵, ω \boldsymbol{\omega} ω ω ˙ \dot{\boldsymbol{\omega}} ω˙分别为角速度和角加速度在本体系下的列阵, T \boldsymbol{T} T控制力矩在本体系下的列阵。

2.运动学模型

2.1 四元数

使用欧拉角对姿态进行表示会出现奇异的现象,使用欧拉角动力学进行控制,在奇异点附近会不稳定,四元数解决了这一问题,但是四元数没有欧拉角直观,对四元数,及其运算和一些tips进行总结。

2.1.1 定义

单位四元数可以用来表示旋转

q = [ s v ] = [ c o s θ n s i n θ ] \boldsymbol{q} = \begin{bmatrix} s \\ \boldsymbol{v} \end{bmatrix} = \begin{bmatrix} cos\theta \\ \boldsymbol{n}sin\theta \end{bmatrix} q=[sv]=[cosθnsinθ]

其中 q \boldsymbol{q} q为四元数, s s s为四元数标量部分, v \boldsymbol{v} v为四元数矢量部分,对于其物理意义, n \boldsymbol{n} n为转轴, θ \theta θ为旋转角度的一半。四元数满足 ∣ q ∣ = 1 \begin{vmatrix}q\end{vmatrix} = 1 q =1

2.1.2 对于四元数的计算(及其物理意义TODO)

q 1 = [ s 1 v 1 ] \boldsymbol{q}_1 = \begin{bmatrix} s_1 \\ \boldsymbol{v}_1 \end{bmatrix} q1=[s1v1]

q 2 = [ s 2 v 2 ] \boldsymbol{q}_2 = \begin{bmatrix} s_2 \\ \boldsymbol{v}_2 \end{bmatrix} q2=[s2v2]

加法运算

q 1 + q 2 = [ s 1 + s 2 v 1 + v 2 ] \boldsymbol{q}_1 + \boldsymbol{q}_2 = \begin{bmatrix} s_1 + s_2 \\ \boldsymbol{v}_1 + \boldsymbol{v}_2 \end{bmatrix} q1+q2=[s1+s2v1+v2]
加法运算之后便不是我们使用的用于表示旋转的四元数。

积运算
q 1 ⊗ q 2 = [ s 1 − v 1 T v 1 s 1 I + v ~ 1 ] q 2 = [ s 2 − v 2 T v 2 s 2 I − v ~ 2 ] q 1 \boldsymbol{q}_1 \otimes \boldsymbol{q}_2 = \begin{bmatrix} s_1 & -\boldsymbol{v}_1^\mathrm{T} \\ \boldsymbol{v}_1 & s_1\boldsymbol{I}+\tilde{\boldsymbol{v}}_1 \end{bmatrix} \boldsymbol{q}_2 = \begin{bmatrix} s_2 & -\boldsymbol{v}_2^\mathrm{T} \\ \boldsymbol{v}_2 & s_2\boldsymbol{I}-\tilde{\boldsymbol{v}}_2 \end{bmatrix} \boldsymbol{q}_1 q1q2=[s1v1v1Ts1I+v~1]q2=[s2v2v2Ts2Iv~2]q1

其中

v ~ = [ 0 − v z v y v z 0 − v x − v y v x 0 ] \tilde{\boldsymbol{v}} = \begin{bmatrix} 0 & -v_z & v_y \\ v_z & 0 & -v_x \\ -v_y & v_x & 0 \end{bmatrix} v~= 0vzvyvz0vxvyvx0

四元数的积运算可以计算相对姿态,如

已知1系到2系的四元数为 q 2 1 \boldsymbol{q}^1_2 q21,2系到3系的四元数为 q 3 2 \boldsymbol{q}^2_3 q32,则1系到3系的四元数 q 3 1 \boldsymbol{q}^1_3 q31可以表示为

q 3 1 = q 3 2 ⊗ q 2 1 \boldsymbol{q}^1_3 = \boldsymbol{q}^2_3 \otimes \boldsymbol{q}^1_2 q31=q32q21

因此积运算可以用来求误差四元数

参考资料

共轭与逆

q 1 \boldsymbol{q}_1 q1的共轭 q ‾ \overline{\boldsymbol{q}} q和逆 q − 1 \boldsymbol{q}^{-1} q1

q ‾ = q − 1 = [ s 1 − v 1 ] \overline{\boldsymbol{q}} = \boldsymbol{q}^{-1} = \begin{bmatrix} s_1 \\ -\boldsymbol{v}_1 \end{bmatrix} q=q1=[s1v1]
其表示与 q 1 \boldsymbol{q}_1 q1方向相反大小相等的旋转

参考资料
参考资料

tips

四元数的定义中有 c o s cos cos s i n sin sin,其以 2 π 2\pi 2π为一周期,如下图所示。

在这里插入图片描述

其中蓝线为 c o s cos cos值,橙线为 s i n sin sin值,横坐标值为 θ / 2 \theta/2 θ/2,即横坐标 4 5 ∘ 45^{\circ} 45位置表示逆时针转 9 0 ∘ 90^{\circ} 90。四元数表示两个坐标系之间的姿态关系,图中红色点的位置,表示两个坐标系重合。两个绿色点的位置表示相同的相同的相对位置关系。由于周期性,正 18 0 ∘ 180^{\circ} 180 − 18 0 ∘ -180^{\circ} 180可以看作一个点。

因此可以看出,四元数对于两坐标相对位置关系的表示具有二值性。很好理解,比如绕 a \boldsymbol{a} a轴转 α \alpha α角度,等效于绕 − a -\boldsymbol{a} a轴转 − α -\alpha α角度。因此对于姿态表示,蓝色虚线范围内的四元数足以标志所有的姿态对应关系,因此在进行姿态解算或四元数积分时,可以只取 c o s θ > 0 cos\theta>0 cosθ>0的部分,即 s > 0 s>0 s>0。若解算出来 s < 0 s<0 s<0,可令 q = − q \boldsymbol{q} = -\boldsymbol{q} q=q,两者表示的姿态相同。

利用四元数求两姿态的差值,得的差值范围为 − 18 0 ∘ -180^{\circ} 180 18 0 ∘ 180^{\circ} 180对应的四元数。我们通常将 q = [ 1 , 0 , 0 , 0 ] T \boldsymbol{q} = [1,0,0,0]^{\mathrm{T}} q=[1,0,0,0]T,即图中 0 ∘ 0^{\circ} 0的位置,视为误差为0的点,但是可以看到,如果误差四元数为上图中右边绿色的点,如果控制到 0 ∘ 0^{\circ} 0位置,其需要绕大半圈,前文中提到过 0 ∘ 0^{\circ} 0 − 18 0 ∘ -180^{\circ} 180 18 0 ∘ 180^{\circ} 180都是两坐标重合的位置,因此如果控制到 18 0 ∘ 180^{\circ} 180,则只用烧很小的角度。所有在利用四元数进行控制时,当 s e > 0 s_e>0 se>0时目标四元数取 q = [ 1 , 0 , 0 , 0 ] T \boldsymbol{q} = [1,0,0,0]^{\mathrm{T}} q=[1,0,0,0]T,当 s e < 0 s_e<0 se<0时目标四元数取 q = [ − 1 , 0 , 0 , 0 ] T \boldsymbol{q} = [-1,0,0,0]^{\mathrm{T}} q=[1,0,0,0]T,当然我们也可以将 − 18 0 ∘ -180^{\circ} 180 18 0 ∘ 180^{\circ} 180的误差四元数归一化到 − 9 0 ∘ -90^{\circ} 90 9 0 ∘ 90^{\circ} 90,这样目标四元数就统一到 q = [ 1 , 0 , 0 , 0 ] T \boldsymbol{q} = [1,0,0,0]^{\mathrm{T}} q=[1,0,0,0]T

2.2 基于四元数的运动学模型

参考资料

四元数的导数可以表示为

q ˙ = 1 2 [ 0 w i ] ⊗ q = 1 2 [ s − v T v s I − v ~ ] [ 0 w i ] \boldsymbol{\dot{q}} = \frac{1}{2} \begin{bmatrix} 0 \\ \boldsymbol{w}_i \end{bmatrix} \otimes \boldsymbol{q} = \frac{1}{2} \begin{bmatrix} s & -\boldsymbol{v}^{\mathrm{T}} \\ \boldsymbol{v} & s\boldsymbol{I}-\tilde{\boldsymbol{v}} \end{bmatrix} \begin{bmatrix} 0 \\ \boldsymbol{w}_i \end{bmatrix} q˙=21[0wi]q=21[svvTsIv~][0wi]

或者

q ˙ = 1 2 q ⊗ [ 0 w b ] = 1 2 [ s − v T v s I + v ~ ] [ 0 w b ] (2) \boldsymbol{\dot{q}} = \frac{1}{2} \boldsymbol{q} \otimes \begin{bmatrix} 0 \\ \boldsymbol{w}_b \end{bmatrix} = \frac{1}{2} \begin{bmatrix} s & -\boldsymbol{v}^{\mathrm{T}} \\ \boldsymbol{v} & s\boldsymbol{I}+\tilde{\boldsymbol{v}} \end{bmatrix} \begin{bmatrix} 0 \\ \boldsymbol{w}_b \end{bmatrix} \tag{2} q˙=21q[0wb]=21[svvTsI+v~][0wb](2)

利用四元数导数进行积分时有

q t = q t − Δ t + q ˙ × Δ t \boldsymbol{q}_t = \boldsymbol{q}_{t-\Delta t} + \boldsymbol{\dot{q}} \times \Delta t qt=qtΔt+q˙×Δt

此时 $\boldsymbol{q}_t 会不满足 会不满足 会不满足\begin{vmatrix}q\end{vmatrix} = 1$的约束,也就是说,其不再是一个表示旋转的四元数,因此需要将四元数归一化到1。

q t ′ = q t ∣ q t ∣ \boldsymbol{q}_t^{'} = \frac{\boldsymbol{q}_t}{\lvert \boldsymbol{q}_t \rvert} qt=qtqt

3 控制算法

3.1 基于四元数的控制

定义刚体姿态四元数为

q = [ s v ] \boldsymbol{q} = \begin{bmatrix}s \\ \boldsymbol{v}\end{bmatrix} q=[sv]

期望姿态四元数为

q d = [ s d v d ] (3) \boldsymbol{q}_d = \begin{bmatrix}s_d \\ \boldsymbol{v}_d\end{bmatrix} \tag{3} qd=[sdvd](3)

则误差四元数为

q e = q ˉ d ⊗ q = [ s e v e ] \boldsymbol{q}_e = \bar{\boldsymbol{q}}_d \otimes \boldsymbol{q} = \begin{bmatrix}s_e \\ \boldsymbol{v}_e\end{bmatrix} qe=qˉdq=[seve]

与欧拉角不同的是,误差四元数表示了两个距离间的最短路径,当 q e = [ 1 0 0 0 ] T \boldsymbol{q}_e = \begin{bmatrix}1 & 0 & 0 & 0\end{bmatrix}^{\mathrm{T}} qe=[1000]T时,目标姿态和当前姿态重合。

对式3求导可得

q ˙ e = q ˉ ˙ d ⊗ q + q ˉ d ⊗ q ˙ = 1 2 q ˉ d ⊗ [ 0 ω d ] ⊗ q + 1 2 q ˉ d ⊗ q ⊗ [ 0 ω b ] = 1 2 q ˉ d ⊗ [ 0 ω d ] ⊗ q + 1 2 q e ⊗ [ 0 ω b ] \dot{\boldsymbol{q}}_e = \dot{\bar{\boldsymbol{q}}}_d \otimes \boldsymbol{q} + \bar{\boldsymbol{q}}_d \otimes \dot{\boldsymbol{q}} = \\ \frac{1}{2} \bar{\boldsymbol{q}}_d \otimes \begin{bmatrix} 0 \\ \boldsymbol{\omega}_d \end{bmatrix}\otimes \boldsymbol{q} + \frac{1}{2}\bar{\boldsymbol{q}}_d \otimes \boldsymbol{q} \otimes \begin{bmatrix} 0 \\ \boldsymbol{\omega}_b \end{bmatrix} = \\\frac{1}{2} \bar{\boldsymbol{q}}_d \otimes \begin{bmatrix} 0 \\ \boldsymbol{\omega}_d \end{bmatrix}\otimes \boldsymbol{q} + \frac{1}{2}\boldsymbol{q}_e \otimes \begin{bmatrix} 0 \\ \boldsymbol{\omega}_b \end{bmatrix} q˙e=qˉ˙dq+qˉdq˙=21qˉd[0ωd]q+21qˉdq[0ωb]=21qˉd[0ωd]q+21qe[0ωb]

这样得不到最简形式,我们想要尽量化简,需要利用

q d ⊗ q e = q \boldsymbol{q}_d \otimes \boldsymbol{q}_e = \boldsymbol{q} qdqe=q

等式两边同时求导得

q ˙ d ⊗ q e + q d ⊗ q ˙ e = q ˙ \dot{\boldsymbol{q}}_d \otimes \boldsymbol{q}_e + \boldsymbol{q}_d \otimes \dot{\boldsymbol{q}}_e= \dot{\boldsymbol{q}} q˙dqe+qdq˙e=q˙

1 2 q d ⊗ [ 0 ω d ] ⊗ q e + q d ⊗ q ˙ e = 1 2 q ⊗ [ 0 ω b ] \frac{1}{2}\boldsymbol{q}_d \otimes \begin{bmatrix} 0 \\ \boldsymbol{\omega}_d \end{bmatrix} \otimes \boldsymbol{q}_e + \boldsymbol{q}_d \otimes \dot{\boldsymbol{q}}_e = \frac{1}{2} \boldsymbol{q} \otimes \begin{bmatrix} 0 \\ \boldsymbol{\omega}_b \end{bmatrix} 21qd[0ωd]qe+qdq˙e=21q[0ωb]

等式两边同时右乘 q ˉ d \boldsymbol{\bar{q}}_d qˉd得到

1 2 [ 0 ω d ] ⊗ q e + q ˙ e = 1 2 q d ⊗ q ⊗ [ 0 ω b ] \frac{1}{2} \begin{bmatrix} 0 \\ \boldsymbol{\omega}_d \end{bmatrix} \otimes \boldsymbol{q}_e + \dot{\boldsymbol{q}}_e = \frac{1}{2} \boldsymbol{q}_d \otimes \boldsymbol{q} \otimes \begin{bmatrix} 0 \\ \boldsymbol{\omega}_b \end{bmatrix} 21[0ωd]qe+q˙e=21qdq[0ωb]

q ˙ e = − 1 2 [ 0 ω d ] ⊗ q e + 1 2 q e ⊗ [ 0 ω b ] \boldsymbol{\dot{q}}_e = -\frac{1}{2}\begin{bmatrix} 0 \\ \boldsymbol{\omega}_d \end{bmatrix} \otimes \boldsymbol{q}_e + \frac{1}{2} \boldsymbol{q}_e \otimes\begin{bmatrix} 0 \\ \boldsymbol{\omega}_b \end{bmatrix} q˙e=21[0ωd]qe+21qe[0ωb]

将其展开可得

q ˙ e = [ − 1 2 v e T ( ω b − ω d ) 1 2 [ s e ( ω b − ω d ) + v e × ( ω b + ω d ) ] ] = [ s ˙ e v ˙ e ] \boldsymbol{\dot{q}}_e = \begin{bmatrix} -\frac{1}{2}\boldsymbol{v}_e^{\mathrm{T}} (\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) \\ \frac{1}{2}[s_e(\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) + \boldsymbol{v}_e \times (\boldsymbol{\omega}_b + \boldsymbol{\omega}_d)] \end{bmatrix} = \begin{bmatrix} \dot{s}_e \\ \dot{\boldsymbol{v}}_e \end{bmatrix} q˙e=[21veT(ωbωd)21[se(ωbωd)+ve×(ωb+ωd)]]=[s˙ev˙e]

利用反步法,构造第一级李雅普诺夫函数

V 1 = 1 2 v e T v e + 1 2 ( 1 − s e ) 2 V_1 = \frac{1}{2}\boldsymbol{v}_e^{\mathrm{T}}\boldsymbol{v}_e + \frac{1}{2}(1-s_e)^2 V1=21veTve+21(1se)2

V ˙ 1 = v e T ( 1 2 [ s e ( ω b − ω d ) + v e × ( ω b + ω d ) ] ) + ( 1 − s e ) ( 1 2 v e T ( ω b − ω d ) ) = 1 2 v e T s e ( ω b − ω d ) + v e ⋅ ( v e × ( ω b + ω d ) ) + 1 2 v e T ( ω b − ω d ) − 1 2 v e T s e ( ω b − ω d ) = 1 2 v e T ( ω b − ω d ) \dot{V}_1 = \boldsymbol{v}_e^{\mathrm{T}}(\frac{1}{2}[s_e(\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) + \boldsymbol{v}_e \times (\boldsymbol{\omega}_b + \boldsymbol{\omega}_d)]) + (1-s_e)(\frac{1}{2}\boldsymbol{v}_e^{\mathrm{T}} (\boldsymbol{\omega}_b-\boldsymbol{\omega}_d)) = \\ \frac{1}{2}\boldsymbol{v}_e^{\mathrm{T}}s_e(\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) + \boldsymbol{v}_e \cdot(\boldsymbol{v}_e \times (\boldsymbol{\omega}_b + \boldsymbol{\omega}_d)) +\\ \frac{1}{2} \boldsymbol{v}_e^{\mathrm{T}}(\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) - \frac{1}{2}\boldsymbol{v}_e^{\mathrm{T}}s_e(\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) = \\ \frac{1}{2} \boldsymbol{v}_e^{\mathrm{T}}(\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) V˙1=veT(21[se(ωbωd)+ve×(ωb+ωd)])+(1se)(21veT(ωbωd))=21veTse(ωbωd)+ve(ve×(ωb+ωd))+21veT(ωbωd)21veTse(ωbωd)=21veT(ωbωd)

ω b = ω d − 2 K 1 v e \boldsymbol{\omega}_b = \boldsymbol{\omega}_d - 2K_1\boldsymbol{v}_e ωb=ωd2K1ve时,有, V ˙ 1 = − v e K 1 v e ≤ 0 \dot{V}_1 = -\boldsymbol{v}_eK_1\boldsymbol{v}_e \leq 0 V˙1=veK1ve0,当 K 1 > 0 K_1 > 0 K1>0时。

ω b \boldsymbol{\omega}_b ωb作为中间控制量,令 ω t \boldsymbol{\omega}_t ωt ω b \boldsymbol{\omega}_b ωb虚拟跟踪的量。

ω t = ω d − 2 K 1 v e \boldsymbol{\omega}_t = \boldsymbol{\omega}_d - 2K_1\boldsymbol{v}_e ωt=ωd2K1ve

则,虚拟误差 ω e \boldsymbol{\omega}_e ωe

ω e = ω b − ω t = ω b − ω d + 2 K 1 v e \boldsymbol{\omega}_e = \boldsymbol{\omega}_b - \boldsymbol{\omega}_t = \boldsymbol{\omega}_b - \boldsymbol{\omega}_d + 2K_1\boldsymbol{v}_e ωe=ωbωt=ωbωd+2K1ve

可得

ω ˙ e = ω ˙ b + ω ˙ d + 2 K 1 v ˙ e = J − 1 ( T − ω b × J ω b ) + ω ˙ d + K 1 [ s e ( ω b − ω d ) + v e × ( ω b + ω d ) ] \dot{\boldsymbol{\omega}}_e = \dot{\boldsymbol{\omega}}_b + \dot{\boldsymbol{\omega}}_d + 2K_1\dot{\boldsymbol{v}}_e = \\ \boldsymbol{J}^{-1}(\boldsymbol{T} - \boldsymbol{\omega}_b \times \boldsymbol{J}\boldsymbol{\omega}_b) + \dot{\boldsymbol{\omega}}_d + K_1[s_e(\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) + \boldsymbol{v}_e \times (\boldsymbol{\omega}_b + \boldsymbol{\omega}_d)] ω˙e=ω˙b+ω˙d+2K1v˙e=J1(Tωb×Jωb)+ω˙d+K1[se(ωbωd)+ve×(ωb+ωd)]

则将 V 1 V_1 V1,用 ω e \boldsymbol{\omega}_e ωe重新表示为

V ˙ 1 = − v e T K 1 v e + 1 2 v e T ω e \dot{V}_1 = -\boldsymbol{v}_e^{\mathrm{T}}K_1\boldsymbol{v}_e + \frac{1}{2}\boldsymbol{v}_e^{\mathrm{T}}\boldsymbol{\omega}_e V˙1=veTK1ve+21veTωe

定义考虑 v e \boldsymbol{v}_e ve ω e \boldsymbol{\omega}_e ωe的李亚普诺夫函数

V 2 = V 1 + 1 2 ω e T ω e V_2 = V_1 + \frac{1}{2}\boldsymbol{\omega}_e^{\mathrm{T}}\boldsymbol{\omega}_e V2=V1+21ωeTωe

V ˙ 2 = V ˙ 1 + ω e T ω ˙ e = − v e T K 1 v e + 1 2 v e T ω e + ω e T [ J − 1 ( T − ω b × J ω b ) + ω ˙ d + K 1 [ s e ( ω b − ω d ) + v e × ( ω b + ω d ) ] ] \dot{V}_2 = \dot{V}_1 + \boldsymbol{\omega}_e^{\mathrm{T}}\dot{\boldsymbol{\omega}}_e = -\boldsymbol{v}_e^{\mathrm{T}}K_1\boldsymbol{v}_e + \frac{1}{2}\boldsymbol{v}_e^{\mathrm{T}}\boldsymbol{\omega}_e + \\ \boldsymbol{\omega}_e^{\mathrm{T}}[\boldsymbol{J}^{-1}(\boldsymbol{T} - \boldsymbol{\omega}_b \times \boldsymbol{J}\boldsymbol{\omega}_b) + \dot{\boldsymbol{\omega}}_d + K_1[s_e(\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) + \boldsymbol{v}_e \times (\boldsymbol{\omega}_b + \boldsymbol{\omega}_d)]] V˙2=V˙1+ωeTω˙e=veTK1ve+21veTωe+ωeT[J1(Tωb×Jωb)+ω˙d+K1[se(ωbωd)+ve×(ωb+ωd)]]

我们令

T = ω b × J ω b + J ( ω ˙ d − K 1 ( s e ( ω b − ω d ) + v e × ( ω b + ω d ) ) − K 2 ω e − 1 2 v e ) \boldsymbol{T} = \boldsymbol{\omega}_b \times \boldsymbol{J}\boldsymbol{\omega}_b + \\ \boldsymbol{J}(\dot{\boldsymbol{\omega}}_d -K_1(s_e(\boldsymbol{\omega}_b-\boldsymbol{\omega}_d) + \boldsymbol{v}_e \times (\boldsymbol{\omega}_b + \boldsymbol{\omega}_d)) -K_2\boldsymbol{\omega}_e - \frac{1}{2}\boldsymbol{v}_e) T=ωb×Jωb+J(ω˙dK1(se(ωbωd)+ve×(ωb+ωd))K2ωe21ve)

得到

V ˙ 2 = − v e T K 1 v e + − ω e T K 2 ω e \dot{V}_2 = -\boldsymbol{v}_e^{\mathrm{T}}K_1\boldsymbol{v}_e + -\boldsymbol{\omega}_e^{\mathrm{T}}K_2\boldsymbol{\omega}_e V˙2=veTK1ve+ωeTK2ωe

K 1 < 0 K_1<0 K1<0 K 2 < 0 K_2<0 K2<0时, V ˙ 2 ≤ 0 \dot{V}_2\leq0 V˙20

其中四元数有双倍覆盖问题,使用 s i g n ( s e ) sign(s_e) sign(se),替换 s e s_e se,或者归一化 q e q_e qe以避免绕大圈。

下图是未考虑双倍覆盖问题时的控制

在这里插入图片描述

下图时考虑双倍覆盖时的控制

在这里插入图片描述

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值