控制障碍函数(Control Barrier Function,CBF) 二、示例

二、示例

2.1、系统模型

这里我们举一个CBF作者给出的经典示例

请添加图片描述

我们定义控制输入 u u u 为蓝色车的推力。 p p p 为蓝色车的位置, v v v 为蓝色车的速度, z z z 为蓝色车与黄色车之间的距离, v 0 v_0 v0 为黄色车的速度。我们定义系统的状态为
x = [ p v z ] ∈ R 3 x = \begin{bmatrix} p \\ v \\ z \end{bmatrix} \in \mathbb{R}^3 x= pvz R3
对其求导为
x ˙ = [ v − 1 m F r ( v ) v 0 − v ] + [ 0 1 m 0 ] u \dot x = \begin{bmatrix} v \\ -\frac{1}{m} F_r(v) \\ v_0 - v \end{bmatrix} + \begin{bmatrix} 0 \\ \frac{1}{m} \\ 0 \end{bmatrix} u x˙= vm1Fr(v)v0v + 0m10 u
其中 F r ( v ) = f 0 + f 1 v + f 2 v 2 F_r(v) = f_0 + f_1 v + f_2 v^2 Fr(v)=f0+f1v+f2v2 为滚动阻力

为了保证系统安全,对这个系统做出一些约束

输入约束
− m c d g ≤ u ≤ m c a g -m c_d g \le u \le m c_a g mcdgumcag
稳定性目标,其中 v d v_d vd 为期望速度
v → v d v \to v_d vvd
安全目标,其中 T h T_h Th 为时间前瞻量
z ≥ T h v z \ge T_h v zThv

2.2、设计CLF

系统的稳定目标为 v → v d v \to v_d vvd ,因此系统的原点 x e = [ ⋅ , v d , ⋅ ] T x_e = [\cdot,v_d,\cdot]^T xe=[,vd,]T 。设计李雅普诺夫函数为
V ( x ) = ( v − v d ) 2 V(x) = (v - v_d)^2 V(x)=(vvd)2
对其求梯度
∇ V ( x ) = [ 0 2 ( v − v d ) 0 ] \nabla V(x) = \begin{bmatrix} 0 \\ 2(v-v_d) \\ 0 \end{bmatrix} V(x)= 02(vvd)0
那么
L f V ( x ) = − 2 m F r ( v ) ( v − v d ) L g V ( x ) = − 2 m ( v − v d ) \begin{aligned} L_f V(x) &= -\frac{2}{m} F_r(v) (v-v_d) \\ L_g V(x) &= -\frac{2}{m} (v-v_d) \\ \end{aligned} LfV(x)LgV(x)=m2Fr(v)(vvd)=m2(vvd)
所以CLF约束可以表示为
V ˙ ( x , u ) + λ V ( x ) = L f V ( x ) + L g V ( x ) u + λ V ( x ) = ( v − v d ) { 2 m ( u − F r ) + λ ( v − v d ) } ≤ 0 \dot V(x,u) + \lambda V(x) = L_f V(x) + L_g V(x) u + \lambda V(x) = (v - v_d) \left\{ \frac{2}{m}(u - F_r) + \lambda(v-v_d) \right\} \le 0 V˙(x,u)+λV(x)=LfV(x)+LgV(x)u+λV(x)=(vvd){m2(uFr)+λ(vvd)}0

2.3、设计CBF

安全目标为 z ≥ T h v z \ge T_h v zThv ,即两车间距大于一定值

先以直观的方式定义CBF函数 B ( x ) = z − T h v B(x) = z - T_h v B(x)=zThv

对其求梯度 ∇ B ( x ) = [ 0 − T h 1 ] \nabla B(x) = \begin{bmatrix} 0 & -T_h & 1 \end{bmatrix} B(x)=[0Th1]

那么
L f V ( x ) = T h m F r ( v ) + ( v 0 − v ) L g V ( x ) = − T h m \begin{aligned} L_f V(x) &= \frac{T_h}{m} F_r(v) + (v_0 - v) \\ L_g V(x) &= -\frac{T_h}{m} \\ \end{aligned} LfV(x)LgV(x)=mThFr(v)+(v0v)=mTh
所以有CBF函数的导数
B ˙ ( x , u ) + γ B ( x ) = T h m ( F r ( v ) − u ) + ( v 0 − v ) − T h m + γ ( z − T h v ) ≥ 0 \dot B(x,u) + \gamma B(x) = \frac{T_h}{m} (F_r(v)-u) + (v_0 - v) - \frac{T_h}{m} + \gamma(z - T_h v) \ge 0 B˙(x,u)+γB(x)=mTh(Fr(v)u)+(v0v)mTh+γ(zThv)0
如果忽视滚动阻力的影响,并采用最大的控制量 u = − c d m g u = -c_d mg u=cdmg
B ˙ ( x , u ) + γ B ( x ) = T h c d g + v 0 + γ z − ( 1 + T h γ ) v \dot B(x,u) + \gamma B(x) =T_h c_d g + v_0 + \gamma z - (1+T_h \gamma) v B˙(x,u)+γB(x)=Thcdg+v0+γz(1+Thγ)v
v v v 相对于 T h c d g + v 0 T_h c_d g + v_0 Thcdg+v0 比较大时,那么约束可能不会被满足,即 B ˙ ( x , u ) ≤ 0 \dot B(x,u) \le 0 B˙(x,u)0 v v v 比较大时。

为了解决这个问题,我们多加一项,多加的这一项其实我们看等式的话,相当于将安全区域范围缩小了,但是能消除一部分 B ( x ) B(x) B(x) 中的多项式
B ( x ) = z − T h v − 1 2 ( v − v 0 ) 2 c d g B(x) = z - T_h v - \frac{1}{2} \frac{(v - v_0)^2}{c_d g} B(x)=zThv21cdg(vv0)2
对其求导
B ˙ ( x , u ) = 1 m ( T h + v − v 0 c d g ) ( F r ( v ) − u ) + ( v 0 − v ) \dot B(x,u) = \frac{1}{m} (T_h + \frac{v - v_0}{c_d g}) (F_r(v) - u) + (v_0 - v) B˙(x,u)=m1(Th+cdgvv0)(Fr(v)u)+(v0v)
当 $u = -c_d m g $ 时
B ˙ ( x , u ) = 1 m T h F r ( v ) + T h c d g > 0 \dot B(x,u) = \frac{1}{m} T_h F_r(v) + T_h c_d g > 0 B˙(x,u)=m1ThFr(v)+Thcdg>0
所以CBF可以表示为
B ˙ ( x , u ) + γ B ( x ) = 1 m ( T h + v − v 0 c d g ) ( F r ( v ) − u ) + ( v 0 − v ) + γ ( z − T h v ) ≥ 0 \dot B(x,u) + \gamma B(x) = \frac{1}{m} (T_h + \frac{v - v_0}{c_d g}) (F_r(v) - u) + (v_0 - v) + \gamma (z - T_h v) \ge 0 B˙(x,u)+γB(x)=m1(Th+cdgvv0)(Fr(v)u)+(v0v)+γ(zThv)0

2.4、规划目标

最终,我们得到的是这样一个规划问题
argmin   u T H u subject to   ( v − v d ) { 2 m ( u − F r ) + λ ( v − v d ) } ≤ 0 1 m ( T h + v − v 0 c d g ) ( F r ( v ) − u ) + ( v 0 − v ) + γ ( z − T h v ) ≥ 0 − m c d g ≤ u ≤ m c a g \begin{aligned} \text{argmin} \ \ &u^T H u \\ \text{subject to} \ \ & (v - v_d) \left\{ \frac{2}{m}(u - F_r) + \lambda(v-v_d) \right\} \le 0 \\ & \frac{1}{m} (T_h + \frac{v - v_0}{c_d g}) (F_r(v) - u) + (v_0 - v) + \gamma (z - T_h v) \ge 0 \\ & -m c_d g \le u \le m c_a g \\ \end{aligned} argmin  subject to  uTHu(vvd){m2(uFr)+λ(vvd)}0m1(Th+cdgvv0)(Fr(v)u)+(v0v)+γ(zThv)0mcdgumcag
从上到下分别为CLF约束,CBF约束,控制输入约束。

下一部分我们讲解这里推导的公式怎么用代码实现

  • 26
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 控制障碍函数Control Barrier Function)是一种用于控制系统的安全性的方法。它可以通过定义一个函数来限制系统的状态,使其不会进入不安全的区域。当系统的状态接近不安全区域时,控制器会自动调整控制策略,以确保系统的安全性。控制障碍函数在机器人控制、自动驾驶汽车和无人机等领域得到广泛应用。 ### 回答2: 控制屏障函数Control Barrier FunctionCBF)是一种运动控制策略,常用于机器人运动规划中,旨在实现安全稳定的控制CBF 是在机器人控制领域被广泛研究和应用的控制策略,可以有效帮助机器人实现不碰撞或发生意外的自主控制。 具体来说,CBF 是一种基于非线性力学理论的数学方法,可用于控制系统的设计、分析和开发。该方法利用控制屏障函数来约束机器人系统的动态行为,从而使系统能够在被指定约束条件下实现安全稳定的运动。 控制屏障函数的作用是在系统的动态行为中加入限制条件,并确保这些限制条件不会被破坏。其本质是在动态控制系统中引入一个“屏障函数”,通过优化指定的约束条件来控制机器人的行动,以实现特定的目标。 在实际应用中,CBF 经常用于机器人运动规划中,例如机器人路径规划、机器人操作规划等。通过引入控制屏障函数,可以有效避免机器人碰撞等意外情况的发生,保证机器人的运动安全稳定。 总之,CBF 是一种可以实现安全稳定控制的数学方法,可以应用于机器人控制系统的设计、分析和开发中,是实现机器人自主控制的重要策略。 ### 回答3: 控制障碍函数(Control Barrier Function, CBF)是一种在控制系统中用于保障安全性的技术工具。CBF可以帮助我们判断系统是否处于安全状态,当系统处于非安全状态时,CBF可以引导控制系统通过调整参数、选择合适的控制策略等方式使得系统恢复到安全状态。 CBF最初是在机器人控制领域中提出的,其主要应用是判断机器人系统是否遵守安全界限,例如:机器人是否撞到了墙壁、是否将手捏伤等。通过设计CBF函数,可以保证机器人系统在动态运动过程中不会超过安全边界,从而避免了机器人的意外伤害。 除了机器人控制领域,CBF在自动驾驶、智能家居、智能交通等领域中也得到了广泛应用。例如,在自动驾驶领域,CBF可以用来保障车辆的安全性,避免车辆与其他车辆或障碍物之间的碰撞或者漂移等情况的发生。 在设计CBF函数时,需要先定义系统的安全边界,然后通过数学建模的方式设计使得系统稳定,同时不会超出安全边界的CBF函数,并将CBF函数控制系统结合使用。CBF函数的设计是一个相对复杂的问题,需要考虑系统的复杂性以及数学模型的可行性等因素。 总之,CBF是一种保障控制系统安全性的有效手段,其应用范围广泛,具有重要的理论和实践价值。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LyaJpunov

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值