【论文笔记】基于Control Barrier Function的二次规划(QP)控制

2023-11-19

写在前面

原论文:Control Barrier Function Based Quadratic Programs for Safety Critical Systems.

本文为近期阅读的论文(Ames 2017)1的笔记。该论文介绍了两种barrier function,即reciprocal barrier function (RBF)和zeroing barrier function (ZBF),目的是将它们扩展为control barrier function (CBF),并以二次规划(QP)形式与control Lyapunov function (CLF)结合起来,实现带有约束的控制器。

针对给定集合 C \mathcal C C,如果 B ( x ) B(x) B(x)在集合边界处无界,即 B ( x ) → ∞ B(x)\to \infty B(x) as x → ∂ C x\to\partial \mathcal C xC,则称函数 B B B为RBF;如果 h ( x ) h(x) h(x)在集合边界处为0,即 h ( x ) → 0 h(x)\to 0 h(x)0 as x → ∂ C x\to\partial \mathcal C xC,则称函数 h h h为ZBF。以上任意一种情况的 B B B h h h满足Lyapunov-like条件,则可以保证 ∂ C \partial \mathcal C C不变性(forward invariance)。

问题描述

考虑非线性系统
x ˙ = f ( x ) ( 1 ) \dot x=f(x)\qquad(1) x˙=f(x)(1)
其中 x ∈ R n x\in\mathbb R^n xRn,假设 f f f是locally Lipschitz。集合 C \mathcal C C对于(1)不变(forward invariant),如果对每一个 x 0 ∈ C x_0\in\mathcal C x0C,都有 x ( t ) ∈ C x(t)\in\mathcal C x(t)C ∀ t ∈ [ 0 , ∞ ) \forall t\in[0,\infty) t[0,)

RBF

问题1:给定闭集 C : = { x ∈ R n ∣ h ( x ) ≥ 0 } \mathcal C:=\{x\in\mathbb R^n|h(x)\geq 0 \} C:={xRnh(x)0},确定函数 B : int ⁡ ( C ) → R B:\operatorname{int}(\mathcal C)\to \mathbb R B:int(C)R并构建CBF使得 int ⁡ ( C ) \operatorname{int}(\mathcal C) int(C)不变,其中 h : R n → R h:\mathbb R^n\to\mathbb R h:RnR是连续可微函数。同时假设 C \mathcal C C非空没有孤立点(isolated point),即 int ⁡ ( C ) ≠ ∅ \operatorname{int}(\mathcal C)\neq \emptyset int(C)= int ⁡ ( C ) ‾ = C \overline{\operatorname{int}(\mathcal C)}=\mathcal C int(C)=C

1. Logarithmic

选取logarithmic barrier function candidate
B ( x ) = − log ⁡ ( h ( x ) 1 + h ( x ) ) ( 2 ) B(x)=-\log\left(\frac{h(x)}{1+h(x)} \right)\qquad (2) B(x)=log(1+h(x)h(x))(2)
满足 inf ⁡ x ∈ int ⁡ ( C ) B ( x ) ≥ 0 \inf_{x\in\operatorname{int}(\mathcal C)}B(x)\geq 0 infxint(C)B(x)0 lim ⁡ x → ∂ C B ( x ) = ∞ \lim_{x\to\partial\mathcal C}B(x)=\infty limxCB(x)=

设计条件
B ˙ ≤ γ B , ( 3 ) \dot B\leq \frac{\gamma}{B},\qquad (3) B˙Bγ(3)
使得 B B B在远离边界时可以增大,越接近边界增大速率越接近于0。

证明:对(2)求导代入条件中,得到 h ˙ ≥ γ ( h + h 2 ) log ⁡ ( h 1 + h ) \dot h\geq \frac{\gamma(h+h^2)}{\log(\frac{h}{1+h})} h˙log(1+hh)γ(h+h2),由比较引理(Comparison Lemma)得到,如果 x 0 ∈ int ⁡ ( C ) x_0\in\operatorname{int}(\mathcal C) x0int(C),那么 ∀ t ≥ 0 \forall t\geq 0 t0,有
h ( x ( t , x 0 ) ) ≥ 1 exp ⁡ ( 2 γ t + log ⁡ 2 ( h ( x 0 ) + 1 h ( x 0 ) ) ) − 1 > 0 h(x(t,x_0))\geq \frac{1}{\exp\left(\sqrt{2\gamma t+\log^2\left(\frac{h(x_0)+1}{h(x_0)}\right)}\right)-1}>0 h(x(t,x0))exp(2γt+log2(h(x0)h(x0)+1) )11>0
成立,即 x ( t , x 0 ) ∈ int ⁡ ( C ) x(t,x_0)\in\operatorname{int}(\mathcal C) x(t,x0)int(C) ∀ t ≥ 0 \forall t\geq 0 t0。该函数下界收敛于0

2. Inverse-type

选取inverse-type barrier candidate
B ( x ) = 1 h ( x ) 。 B(x)=\frac{1}{h(x)}。 B(x)=h(x)1
同理,有 h ( x ( t , x 0 ) ) ≥ 1 2 γ t + 1 h 2 ( x 0 ) > 0 h(x(t,x_0))\geq \frac{1}{\sqrt{2\gamma t+\frac{1}{h^2(x_0)}}}>0 h(x(t,x0))2γt+h2(x0)1 1>0。该函数下界始终大于0

3. Reciprocal

定义1:对动态系统(1),一个连续可微函数 B : int ⁡ ( C ) → R B: \operatorname{int}(\mathcal C)\to \mathbb R B:int(C)R是集合 C \mathcal C C的RBF,如果存在 K \mathcal K K类函数 α 1 \alpha_1 α1 α 2 \alpha_2 α2 α 3 \alpha_3 α3使得, ∀ x ∈ int ⁡ ( C ) \forall x\in\operatorname{int}(\mathcal C) xint(C)
1 α 1 ( h ( x ) ) ≤ B ( x ) ≤ 1 α 2 ( h ( x ) ) , L f B ( x ) ≤ α 3 ( h ( x ) ) 。 \begin{aligned} \frac{1}{\alpha_1(h(x))}\leq B(x)&\leq \frac{1}{\alpha_2(h(x))},\\ L_f B(x)&\leq \alpha_3(h(x))。 \end{aligned} α1(h(x))1B(x)LfB(x)α2(h(x))1α3(h(x))

定理1:给定动态系统(1)和由连续可微函数 h h h定义的集合 C \mathcal C C,如果存在 B B B是一个RBF,那么 int ⁡ ( C ) \operatorname{int}(\mathcal C) int(C)对于(1)是不变的。

ZBF

定义2:对于 a , b > 0 a,b>0 a,b>0,连续函数 α : ( − b , a ) → ( − ∞ , ∞ ) \alpha:(-b,a)\to (-\infty,\infty) α:(b,a)(,)被认为属于扩展 K \mathcal K K类函数,如果它严格单调增且 α ( 0 ) = 0 \alpha(0)=0 α(0)=0

扩展 K \mathcal K K类函数和 K \mathcal K K类函数区别在于,定义域和值域可以取负数,如果令 b = 0 b=0 b=0,值域为 [ 0 , ∞ ) [0,\infty) [0,),那么扩展 K \mathcal K K类函数即 K \mathcal K K类函数。

定义3:对动态系统(1),一个连续可微函数 h : R n → R h:\mathbb R^n\to \mathbb R h:RnR是集合 C \mathcal C C的ZBF,如果存在扩展 K \mathcal K K类函数 α \alpha α和集合 D \mathcal D D( C ⊆ D ⊂ R n \mathcal C\subseteq \mathcal D\subset \mathbb R^n CDRn)使得, ∀ x ∈ D \forall x\in\mathcal D xD
L f h ( x ) ≥ − α ( h ( x ) ) 。 L_fh(x)\geq -\alpha(h(x))。 Lfh(x)α(h(x))

注意:将 h h h定义在一个比 C \mathcal C C大的集合 D \mathcal D D上可以考虑模型扰动的影响。

命题1:给定动态系统(1)和由连续可微函数 h h h定义的集合 C \mathcal C C,如果 h h h是一个定义在 D \mathcal D D上的ZBF,那么 int ⁡ ( C ) \operatorname{int}(\mathcal C) int(C)对于(1)是不变的。

证明:对任意 x ∈ ∂ C x\in\partial \mathcal C xC h ˙ ( x ) ≥ − α ( h ( x ) ) = 0 \dot h(x)\geq -\alpha(h(x))=0 h˙(x)α(h(x))=0。由Nagumo定理知,集合 C \mathcal C C是不变的。

Nagumo定理2:考虑系统 x ˙ = f ( x ) \dot x=f(x) x˙=f(x),假设对每个集合 D \mathcal D D中的初始值,系统都有一个全局唯一解。令 C ⊆ D \mathcal C\subseteq \mathcal D CD是闭凸集。那么集合 C \mathcal C C对系统是不变的,当且仅当 f ( x ) ∈ T C ( x ) f(x)\in T_{\mathcal C}(x) f(x)TC(x)(切锥), ∀ x ∈ C \forall x\in\mathcal C xC

因为当 x ∈ int ⁡ C x\in\operatorname{int} \mathcal C xintC T C = R n T_{\mathcal C}=\mathbb R^n TC=Rn,所以只用关心 x ∈ ∂ C x\in\partial \mathcal C xC的情况。由于 h ( x ) h(x) h(x)处处光滑,故切锥为半平面。当 x ∈ ∂ C x\in\partial \mathcal C xC L f h ( x ) = ∇ h T ( x ) f ( x ) ≥ 0 L_fh(x)=\nabla h^T(x)f(x)\geq 0 Lfh(x)=hT(x)f(x)0,即 f ( x ) f(x) f(x)和梯度夹角小于 π 2 \frac{\pi}{2} 2π,所以 f ( x ) ∈ T C ( x ) f(x)\in T_{\mathcal C}(x) f(x)TC(x),如下图所示。

Nagumo定理对非凸集合也成立,但是唯一解要求必须满足。

命题2:令 h : D → R h:\mathcal D\to \mathbb R h:DR为定义在开集 D ⊆ R n \mathcal D\subseteq \mathbb R^n DRn上的连续可微函数。如果 h h h是系统(1)的ZBF,那么由 h h h定义的集合 C \mathcal C C渐进稳定。

命题2告诉我们,即使初始位置在集合 C \mathcal C C之外,也有 x x x渐进收敛于 C \mathcal C C

两者的联系

命题3:给定动态系统(1)和由连续可微函数 h h h定义的集合 C \mathcal C C。如果 C \mathcal C C是不变的,那么 h ∣ C h|_{\mathcal C} hC C \mathcal C C上定义的ZBF。

命题1和3共同证明,集合 C \mathcal C C是不变的,当且仅当存在一个ZBF。同样的对RBF,也能证明必要性,见原论文的定理2,这里不再详述。

RBF、ZBF和集合不变性的联系如下图所示。

CBF构建

类似于利用Lyapunov函数构建CLF的方法,我们也可以利用RBF和ZBF构建CBF。

RCBF

考虑仿射控制系统
x ˙ = f ( x ) + g ( x ) u , ( 4 ) \dot x=f(x)+g(x)u,\qquad (4) x˙=f(x)+g(x)u(4)
其中 f f f g g g局部Lipschitz, x ∈ R n x\in\mathbb R^n xRn u ∈ U ⊂ R m u\in U\subset\mathbb R^m uURm

定义4:对系统(4)和由连续可微函数 h h h定义的集合 C \mathcal C C,一个连续可微函数 B : int ⁡ ( C ) → R B: \operatorname{int}(\mathcal C)\to \mathbb R B:int(C)R是RCBF,如果存在 K \mathcal K K类函数 α 1 \alpha_1 α1 α 2 \alpha_2 α2 α 3 \alpha_3 α3使得, ∀ x ∈ int ⁡ ( C ) \forall x\in\operatorname{int}(\mathcal C) xint(C)
1 α 1 ( h ( x ) ) ≤ B ( x ) ≤ 1 α 2 ( h ( x ) ) , inf ⁡ u ∈ U [ L f B ( x ) + L g B ( x ) u − α 3 ( h ( x ) ) ] ≤ 0 。 \begin{aligned} \frac{1}{\alpha_1(h(x))}\leq B(x)&\leq \frac{1}{\alpha_2(h(x))},\\ \inf_{u\in U}[L_f B(x)+L_g B(x)u&-\alpha_3(h(x))]\leq0 。 \end{aligned} α1(h(x))1B(x)uUinf[LfB(x)+LgB(x)uα2(h(x))1α3(h(x))]0
RCBF B B B局部Lipschitz连续,如果 α 3 \alpha_3 α3 ∂ B ∂ x \frac{\partial B}{\partial x} xB都局部Lipschitz连续。

给定RCBF B B B ∀ x ∈ int ⁡ ( C ) \forall x\in \operatorname{int}(\mathcal C) xint(C),定义集合
K rcbf ⁡ ( x ) = { u ∈ U ∣ L f B ( x ) + L g B ( x ) u − α 3 ( h ( x ) ) ≤ 0 } 。 K_{\operatorname{rcbf}}(x)=\{u\in U|L_fB(x)+L_g B(x)u-\alpha_3(h(x))\leq 0 \}。 Krcbf(x)={uULfB(x)+LgB(x)uα3(h(x))0}

推论1:考虑集合 C \mathcal C C,令 B B B是系统(4)的RCBF。那么任意局部Lipschitz连续的控制器 u : int ⁡ ( C ) → U u:\operatorname{int}(\mathcal C)\to U u:int(C)U使得 u ( x ) ∈ K rcbf ⁡ ( x ) u(x)\in K_{\operatorname{rcbf}}(x) u(x)Krcbf(x)都能保证集合 int ⁡ ( C ) \operatorname{int}(\mathcal C) int(C)的不变性。

ZCBF

定义5:对系统(4)和由连续可微函数 h : R n → R h:\mathbb R^n\to \mathbb R h:RnR定义的集合 C \mathcal C C h h h是定义在集合 D \mathcal D D上( C ⊆ D ⊂ R n \mathcal C\subseteq \mathcal D\subset \mathbb R^n CDRn)的ZCBF,如果存在扩展 K \mathcal K K类函数 α \alpha α使得,
sup ⁡ u ∈ U [ L f h ( x ) + L g h ( x ) u + α ( h ( x ) ) ] ≥ 0 。 \sup_{u\in U}[L_f h(x)+L_g h(x)u+\alpha(h(x))]\geq 0 。 uUsup[Lfh(x)+Lgh(x)u+α(h(x))]0
ZCBF h h h局部Lipschitz连续,如果 α \alpha α ∂ h ∂ x \frac{\partial h}{\partial x} xh都局部Lipschitz连续。

给定ZCBF h h h ∀ x ∈ D \forall x\in \mathcal D xD,定义集合
K zcbf ⁡ ( x ) = { u ∈ U ∣ L f h ( x ) + L g h ( x ) u + α ( h ( x ) ) ≥ 0 } 。 K_{\operatorname{zcbf}}(x)=\{u\in U|L_f h(x)+L_g h(x)u+\alpha(h(x))\geq 0 \}。 Kzcbf(x)={uULfh(x)+Lgh(x)u+α(h(x))0}

推论2:考虑集合 C \mathcal C C,令 h h h是集合 D \mathcal D D上的ZCBF。那么任意局部Lipschitz连续的控制器 u : D → U u:\mathcal D\to U u:DU使得 u ( x ) ∈ K zcbf ⁡ ( x ) u(x)\in K_{\operatorname{zcbf}}(x) u(x)Kzcbf(x)都能保证集合 C \mathcal C C的不变性。

QP设计

用QP来协调控制效果和安全约束。考虑仿射控制系统
[ x ˙ 1 x ˙ 2 ] = [ f 1 ( x 1 , x 2 ) f 2 ( x 1 , x 2 ) ] + [ g 1 ( x 1 , x 2 ) 0 ] u 。 \begin{bmatrix} \dot x_1\\ \dot x_2 \end{bmatrix}=\begin{bmatrix} f_1(x_1,x_2)\\ f_2(x_1,x_2) \end{bmatrix}+\begin{bmatrix} g_1(x_1,x_2)\\ 0 \end{bmatrix}u。 [x˙1x˙2]=[f1(x1,x2)f2(x1,x2)]+[g1(x1,x2)0]u
其中 x 1 ∈ X x_1\in X x1X是可控状态(或输出), x 2 ∈ Z x_2\in Z x2Z是不可控状态。

ES-CLF

定义6:连续可微函数 V : X × Z → R V:X\times Z\to \mathbb R V:X×ZR是ES-CLF(exponetial stabilizing control Lyapunov function),如果存在正常数 c 1 , c 2 , c 3 > 0 c_1,c_2,c_3> 0 c1,c2,c3>0使得 ∀ x = ( x 1 , x 2 ) ∈ X × Z \forall x=(x_1,x_2)\in X\times Z x=(x1,x2)X×Z,下列不等式成立,
c 1 ∥ x 1 ∥ 2 ≤ V ( x ) ≤ c 2 ∥ x 1 ∥ 2 , inf ⁡ u ∈ U [ L f V ( x ) + L g V ( x ) u + c 3 V ( x ) ] ≤ 0 。 c_1\|x_1\|^2\leq V(x)\leq c_2\|x_1\|^2,\\ \operatorname{inf}_{u\in U}[L_f V(x)+L_g V(x)u+c_3V(x)]\leq 0。 c1x12V(x)c2x12infuU[LfV(x)+LgV(x)u+c3V(x)]0

定义集合
K clf ⁡ ( x ) = { u ∈ U ∣ L f V ( x ) + L g V ( x ) u + c 3 V ( x ) ≤ 0 } 。 K_{\operatorname{clf}}(x)=\{u\in U|L_f V(x)+L_g V(x)u+c_3 V(x)\leq 0 \}。 Kclf(x)={uULfV(x)+LgV(x)u+c3V(x)0}
局部Lipschitz控制器 u : X × Z → U u:X\times Z\to U u:X×ZU满足
u ( x ) ∈ K clf ⁡ ( x ) ⇒ ∥ x 1 ( t ) ∥ ≤ c 2 c 1 e − c 3 2 t ∥ x 1 ( 0 ) ∥ 。 u(x)\in K_{\operatorname{clf}}(x) \Rightarrow \|x_1(t)\|\leq \sqrt{\frac{c_2}{c_1}}e^{-\frac{c_3}{2}t}\|x_1(0)\|。 u(x)Kclf(x)x1(t)c1c2 e2c3tx1(0)

CLF-CBF QP

对于RCBF,考虑如下形式的QP问题
u ∗ ( x ) = arg ⁡ min ⁡ u = ( u , δ ) ∈ R m × R 1 2 u T H ( x ) u + F ( x ) T u s.t. ⁡ L f V ( x ) + L g V ( x ) u + c 3 V ( x ) − δ ≤ 0 L f B ( x ) + L g B ( x ) u − α ( h ( x ) ) ≤ 0 \begin{aligned} \boldsymbol u^*(x)&= {\arg\min}_{\boldsymbol{u}=(u,\delta)\in\mathbb R^m\times \mathbb R} \frac{1}{2}\boldsymbol u^TH(x)\boldsymbol u+F(x)^T\boldsymbol u\\ \operatorname{s.t.} &\quad \begin{aligned}L_fV(x)+L_gV(x)u+c_3 V(x)-\delta&\leq 0\\ L_f B(x)+L_g B(x)u-\alpha(h(x))&\leq 0 \end{aligned} \end{aligned} u(x)s.t.=argminu=(u,δ)Rm×R21uTH(x)u+F(x)TuLfV(x)+LgV(x)u+c3V(x)δLfB(x)+LgB(x)uα(h(x))00
其中, c 3 > 0 c_3>0 c3>0是常数, α \alpha α K \mathcal K K类函数, H ( x ) ∈ R ( m + 1 ) × ( m + 1 ) H(x)\in \mathbb R^{(m+1)\times(m+1)} H(x)R(m+1)×(m+1)正定, F ( x ) ∈ R m + 1 F(x)\in\mathbb R^{m+1} F(x)Rm+1

下述定理提供 u ∗ ( x ) \boldsymbol u^*(x) u(x)局部Lipschitz连续的充分条件,保证控制器的局部存在性和解的唯一性这些前提条件,从而推论1、2得以应用。

定理3:假设 f , g , B , V , H , F f,g,B,V,H,F f,g,B,V,H,F都局部Lipschitz连续。再假设相对度为1,即 L g B ( x ) ≠ 0 L_g B(x)\neq 0 LgB(x)=0 ∀ x ∈ int ⁡ ( C ) \forall x\in\operatorname{int}(\mathcal C) xint(C)。那么CLF-CBF QP的解 u ∗ ( x ) \boldsymbol u^*(x) u(x) int ⁡ ( C ) \operatorname{int}(\mathcal C) int(C)上局部Lipschitz连续。另外, u ∗ ( x ) \boldsymbol u^*(x) u(x)可以写成一个闭环解析式。

证明:令 v = u + H − 1 F \boldsymbol v=\boldsymbol u+H^{-1}F v=u+H1F ⟨ v , v ⟩ = v T H v \langle \boldsymbol v,\boldsymbol v\rangle=\boldsymbol v^TH\boldsymbol v v,v=vTHv
A = [ a 1 , a 2 ] = [ L g V L g B − 1 0 ] , b = [ − L f V − c 3 V − L f B + α ( h ) ] + A T H − 1 F 。 A =[a_1,a_2]= \begin{bmatrix} L_g V&L_g B\\ -1&0 \end{bmatrix},b=\begin{bmatrix} -L_f V-c_3 V\\ -L_f B+\alpha(h) \end{bmatrix}+A^TH^{-1}F。 A=[a1,a2]=[LgV1LgB0]b=[LfVc3VLfB+α(h)]+ATH1F
原QP问题重写为
v ∗ = arg ⁡ min ⁡ 1 2 ⟨ v , v ⟩ s.t. ⁡ A T v ≤ b \begin{aligned} \boldsymbol v^*=&\arg\min \frac{1}{2}\langle \boldsymbol v,\boldsymbol v \rangle\\ \operatorname{s.t.}&\quad A^T\boldsymbol v\leq b \end{aligned} v=s.t.argmin21v,vATvb
因为代价函数是凸的且不等式为线性,所以KKT条件是充要条件。令 G = A T H − 1 A = [ a 1 T H − 1 a 1 a 1 T H − 1 a 2 a 2 T H − 1 a 1 a 2 T H − 1 a 2 ] G=A^TH^{-1}A=\begin{bmatrix}a_1^TH^{-1}a_1&a_1^TH^{-1}a_2\\ a_2^TH^{-1}a_1& a_2^TH^{-1}a_2\end{bmatrix} G=ATH1A=[a1TH1a1a2TH1a1a1TH1a2a2TH1a2]是Gram矩阵,由于 a 1 a_1 a1 a 2 a_2 a2线性无关, G G G是正定的。由KKT条件可知,该问题的唯一解是 v ∗ = H − 1 A λ \boldsymbol v^*=H^{-1}A\lambda v=H1Aλ,其中 λ ∈ R 2 \lambda\in\mathbb R^2 λR2,且满足
{ 0 ≥ λ , 0 ≥ A T H − 1 A λ − b = G λ − b , 0 = λ T ( A T H − 1 A λ − b ) = λ T ( G λ − b ) 。 \left\{ \begin{aligned} 0&\geq\lambda,\\ 0&\geq A^TH^{-1}A\lambda-b=G\lambda-b,\\ 0&=\lambda^T(A^TH^{-1}A\lambda-b)=\lambda^T(G\lambda-b)。 \end{aligned} \right. 000λATH1Aλb=Gλb=λT(ATH1Aλb)=λT(Gλb)
可知,若 [ G λ − b ] i < 0 [G\lambda-b]_i<0 [Gλb]i<0,则 λ i = 0 \lambda_i=0 λi=0。( G λ − b G\lambda-b Gλb λ \lambda λ不可能同时小于0,相互垂直的向量肯定在不同象限或者坐标轴。) 又因为 G G G正定, G 11 > 0 G_{11}>0 G11>0,且 G 11 G 22 − G 12 G 21 > 0 G_{11}G_{22}-G_{12}G_{21}>0 G11G22G12G21>0。由schur complement condition, G 22 > 0 G_{22}>0 G22>0

分类讨论:

  • [ G λ − b ] 1 < 0 [G\lambda-b]_1<0 [Gλb]1<0 [ G λ − b ] 2 = 0 [G\lambda-b]_2=0 [Gλb]2=0

  • [ G λ − b ] 1 = 0 [G\lambda-b]_1=0 [Gλb]1=0 [ G λ − b ] 2 < 0 [G\lambda-b]_2<0 [Gλb]2<0

  • [ G λ − b ] 1 < 0 [G\lambda-b]_1<0 [Gλb]1<0 [ G λ − b ] 2 < 0 [G\lambda-b]_2<0 [Gλb]2<0

  • [ G λ − b ] 1 = 0 [G\lambda-b]_1=0 [Gλb]1=0 [ G λ − b ] 2 = 0 [G\lambda-b]_2=0 [Gλb]2=0

情况1:将 λ 1 = 0 \lambda_1=0 λ1=0代入 [ G λ − b ] 2 = 0 [G\lambda-b]_2=0 [Gλb]2=0,解出 λ 2 = b 2 / G 22 ≤ 0 \lambda_2=b_2/G_{22}\leq 0 λ2=b2/G220。再将 λ 1 = 0 \lambda_1=0 λ1=0代入 [ G λ − b ] 1 = 0 [G\lambda-b]_1=0 [Gλb]1=0,得到 G 12 b 2 − G 22 b 1 < 0 G_{12}b_2-G_{22}b_1<0 G12b2G22b1<0。即,当 G 12 b 2 − G 22 b 1 < 0 G_{12}b_2-G_{22}b_1<0 G12b2G22b1<0 b 2 ≤ 0 b_2\leq 0 b20时, λ = [ 0 b 2 / G 22 ] \lambda=\begin{bmatrix}0\\b_2/G_{22} \end{bmatrix} λ=[0b2/G22]

情况2:将 λ 2 = 0 \lambda_2=0 λ2=0代入 [ G λ − b ] 1 = 0 [G\lambda-b]_1=0 [Gλb]1=0,解出 λ 1 = b 1 / G 11 ≤ 0 \lambda_1=b_1/G_{11}\leq 0 λ1=b1/G110。再将 λ 2 = 0 \lambda_2=0 λ2=0代入 [ G λ − b ] 2 = 0 [G\lambda-b]_2=0 [Gλb]2=0,得到 G 21 b 1 − G 11 b 2 < 0 G_{21}b_1-G_{11}b_2<0 G21b1G11b2<0。即,当 G 21 b 1 − G 11 b 2 < 0 G_{21}b_1-G_{11}b_2<0 G21b1G11b2<0 b 1 ≤ 0 b_1\leq 0 b10时, λ = [ b 1 / G 11 0 ] \lambda=\begin{bmatrix}b_1/G_{11}\\ 0 \end{bmatrix} λ=[b1/G110]

情况3:当 b 1 , b 2 > 0 b_1,b_2>0 b1,b2>0时, λ = [ 0 , 0 ] T \lambda=[0,0]^T λ=[0,0]T

情况4:此时 λ = G − 1 b ≤ 0 \lambda=G^{-1}b\leq 0 λ=G1b0

综上所述,对 x ∈ int ⁡ ( C ) x\in\operatorname{int}(\mathcal C) xint(C) λ \lambda λ可写为如下闭环解析形式:

G 12 min ⁡ { b 2 , 0 } − G 22 b 1 < 0 G_{12}\min\{b_2,0\}-G_{22}b_1<0 G12min{b2,0}G22b1<0时, λ = [ 0 min ⁡ { b 2 , 0 } / G 22 ] \lambda=\begin{bmatrix}0\\\min\{b_2,0\}/G_{22} \end{bmatrix} λ=[0min{b2,0}/G22];当 G 21 min ⁡ { b 1 , 0 } − G 11 b 2 < 0 G_{21}\min\{b_1,0\}-G_{11}b_2<0 G21min{b1,0}G11b2<0时, λ = [ min ⁡ { b 1 , 0 } / G 11 0 ] \lambda=\begin{bmatrix}\min\{b_1,0\}/G_{11}\\ 0 \end{bmatrix} λ=[min{b1,0}/G110];其他情况时, λ = [ min ⁡ { G 22 b 1 − G 21 b 2 } min ⁡ { G 11 b 2 − G 12 b 1 } ] / ( G 11 G 22 − G 12 G 21 ) \lambda=\begin{bmatrix}\min\{G_{22}b_1-G_{21} b_2\}\\ \min\{G_{11}b_2-G_{12}b_1 \}\end{bmatrix}/(G_{11}G_{22}-G_{12}G_{21}) λ=[min{G22b1G21b2}min{G11b2G12b1}]/(G11G22G12G21)。(最后一个情况 λ \lambda λ不可能为0,因为 G G G的行向量线性无关。)

对于ZCBF,考虑如下形式的QP问题
u ∗ ( x ) = arg ⁡ min ⁡ u = ( u , δ ) ∈ R m × R 1 2 u T H ( x ) u + F T ( x ) u s.t. ⁡ L f V ( x ) + L g V ( x ) u + c 3 V ( x ) − δ ≤ 0 − L f h ( x ) − L g h ( x ) u − α ( h ( x ) ) ≤ 0 \begin{aligned} \boldsymbol u^*(x)&= {\arg\min}_{\boldsymbol{u}=(u,\delta)\in\mathbb R^m\times \mathbb R} \frac{1}{2}\boldsymbol u^TH(x)\boldsymbol u+F^T(x)\boldsymbol u\\ \operatorname{s.t.} &\quad \begin{aligned}L_fV(x)+L_gV(x)u+c_3 V(x)-\delta&\leq 0\\ -L_f h(x)-L_g h(x)u-\alpha(h(x))&\leq 0 \end{aligned} \end{aligned} u(x)s.t.=argminu=(u,δ)Rm×R21uTH(x)u+FT(x)uLfV(x)+LgV(x)u+c3V(x)δLfh(x)Lgh(x)uα(h(x))00
其中, c 3 > 0 c_3>0 c3>0是常数, α \alpha α K \mathcal K K类函数, H ( x ) ∈ R ( m + 1 ) × ( m + 1 ) H(x)\in \mathbb R^{(m+1)\times(m+1)} H(x)R(m+1)×(m+1)正定, F ( x ) ∈ R m + 1 F(x)\in\mathbb R^{m+1} F(x)Rm+1。同理,我们有关于ZCBF的定理。

定理4:假设 f , g , h , V , H , F f,g,h,V,H,F f,g,h,V,H,F都局部Lipschitz连续。再假设相对度为1,即 L g h ( x ) ≠ 0 L_g h(x)\neq 0 Lgh(x)=0 ∀ x ∈ D \forall x\in\mathcal D xD。那么CLF-CBF QP的解 u ∗ ( x ) \boldsymbol u^*(x) u(x) D \mathcal D D上局部Lipschitz连续,且解可以写成一个闭环解析式。


  1. Ames, A. D., Xu, X., Grizzle, J. W., & Tabuada, P. (2017). Control Barrier Function Based Quadratic Programs for Safety Critical Systems. IEEE Transactions on Automatic Control, 62(8), 3861–3876. https://doi.org/10.1109/TAC.2016.2638961 ↩︎

  2. Blanchini, F. (1999). Set invariance in control. Automatica. Elsevier Science Ltd. https://doi.org/10.1016/S0005-1098(99)00113-2 ↩︎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【论文笔记】基于Control Barrier Function的二次规划(QP)控制 的相关文章

随机推荐

  • CMake Tutorial Step1

    CMake Tutorial Step1 参考资料 Step 1 A Basic Starting Point CMake 3 26 3 Documentation Tutorial工程 官方Tutorial工程 开发环境 CLion CM
  • 数据库/MySQL - 深入探究 - 1

    1 应用场景 主要用于了解和掌握数据库 MySQL 更新操作详细流程 2 学习 操作 1 文档阅读 主要来自于AI的对话 geek chat chatgpt 以及官方文档资料 以及其他技术文章 专栏等 2 整理输出 抛出问题 数据库 这里以
  • Jenkins部署

    链接 手把手教你用 Jenkins 自动部署 SpringBoot 江南一点雨 jekins 江南一点雨的博客 CSDN博客 bin bash jenkins要在后台执行脚本 需要在脚本前加上BUILD ID dontKillMe BUIL
  • Python while循环结构

    视频版教程 Python3零基础7天入门实战视频教程 循环语句可以在满足循环条件的情况下 反复执行某一段代码 这段被重复执行的代码被称为循环体 当反复执行这个循环体时 需要在合适的时候把循环条件改为假 从而结束循环 否则循环将一直执行下去
  • pycharm语句用法

    Python介绍 Python 是一个高层次的结合了解释性 编译性 互动性和面向对象的脚本语言 Python 的设计具有很强的可读性 相比其他语言经常使用英文关键字 其他语言的一些标点符号 它具有比其他语言更有特色语法结构 Python 是
  • 多种JS代码混淆加密,效果一览。

    演示代码如下 用JShaman对这段代码进行混淆加密 function demo alert hello www jshaman com demo 一 通用版 1 配置选项 压缩代码 保护效果 function demo alert hel
  • SQL数据库的连接、创建操作

    目录 1 数据库的连接 创建 2 对字段的操作 alter table 3 对数据的操作 插入 修改 删除 4 数据查询 select 5 多表查询 join on 6 约束操作 一 数据库的连接 创建 1 连接root数据库 cmd中输入
  • Python爬虫从入门到精通:(8)数据解析_xpath解析基础_Python涛哥

    xpath解析基础 环境安装 pip install lxml 解析原理 html标签是以树状的形式进行展示 实例化一个etree对象 且将待解析的页面源码数据加载到该对象中 调用etree对象的xpath方法结合着不同的xpath表达式实
  • 写了一个 SSO 单点登录的代码示例给胖友!

    发危 摘要 原创出处 http www iocoder cn Spring Security OAuth2 learning sso 芋道源码 欢迎转载 保留摘要 谢谢 1 概述 2 搭建统一登录系统 3 搭建 XXX 系统 666 彩蛋
  • js正则表达式多行匹配

    在js匹配网页内容时 往往需要匹配一段代码比如 div div 中间可能有很多行 这个时候一般 的匹配规则是匹配不出来的 如下介绍一个折中的方法 var content 这里是内容 var re p class s S p gt g var
  • win10微软应用商店不能用?简单两步完美解决

    想安装微软的软件 发现微软应用商店打不开 无论是我刷新还是重启 找了各种办法终于解决了 解决办法 1 打开键盘 田 R 键 输入 inetcpl cpl 2 然后去高级那里打开 勾上 使用TLS 1 2 选项 或者还原高级设置 3 最后打开
  • javaweb前后台交互传递数据的几种方法

    前端传后台 form表单传递
  • Django-ORM 单表查询

    目录 数据准备 查询关键字 1 QuerySet 对象 first方法 last方法 values方法 values list 方法 count exists 2 all 3 filter kwargs 4 get kwargs 不推荐使用
  • layui动态生成的手风琴实现默认第一个展开+鼠标悬浮展开

    嘿嘿嘿 我百度了一下 发现没有这个玩意 作为小白白的我自己摸索着成功实现了 今日好开心 耶耶耶 首先 我是从数据库提取数据 在前端用foreach循环展示 但是 循环出来的都是统一样式 要不都是展开 要不都是折叠 全部折叠 div clas
  • Database consistency

    consistency 这个词在不同的环境下有着不同的含义 各个方向都在使用 导致很难理解 多副本的一致性 即distirbuted 一致性hash CAP理论的一致性 ACID里的一致性 而这几个一致性的含义都不相同 结合各种资料 自己做
  • 回归测试策略

    什么是回归测试 开发人员把Bug修复好之后 测试人员需要重新验证Bug是否修复好了 同时在新版本中进行测试以检测开发人员在修复代码过程中是否引入新的Bug 此过程就称为回归测试 1 即使上一轮的Bug被修复了 在下一轮的测试中还可能发现新的
  • python 不省略打印tensor、numpy、panda,在终端中打印numpy数组时避免行的换行显示

    文章目录 1 python 不省略打印tensor numpy panda 1 1 tensor 1 2 numpy 1 3 panda 2 在终端中打印numpy数组时避免行的换行显示 1 python 不省略打印tensor numpy
  • 一文总结c++中的lambda

    基本构造 一般情况下 编译器可以自动推断出lambda表达式的返回类型 所以我们可以不指定返回类型 捕获 参数 函数体 捕获 可以捕捉lambda函数所在函数 的局部变量 值捕获 int c 1 auto show c cout lt
  • Unity制作适配全屏的Quad图形

    在Unity项目中 有时候需要呈现一直跟随摄像头移动的 能够全屏的一个quad长方形 quad加载纹理 就可以一直显示全屏了 把这个脚本绑定到Camera上 具体代码如下 using System Collections using Sys
  • 【论文笔记】基于Control Barrier Function的二次规划(QP)控制

    文章目录 写在前面 问题描述 RBF 1 Logarithmic 2 Inverse type 3 Reciprocal ZBF 两者的联系 CBF构建 RCBF ZCBF QP设计 ES CLF CLF CBF QP 写在前面 原论文 C