基于欧拉角的PD控制+基于反步法的控制律设计

基于欧拉角的PD控制+基于反步法的控制律设计

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基于欧拉角的运动学模型

采用ZYX的旋转顺序得到角速度 ω \boldsymbol{\omega} ω到欧拉角导数的 [ φ ˙ , θ ˙ , ψ ˙ ] T [\dot{\varphi},\dot{\theta},\dot{\psi}]^{\mathrm{T}} [φ˙,θ˙,ψ˙]T,其中 φ ˙ \dot{\varphi} φ˙表示绕X轴旋转的角速度, θ ˙ \dot{\theta} θ˙表示绕Y轴旋转的角速度, ψ ˙ \dot{\psi} ψ˙表示绕Z轴旋转的角速度。(推导过程TODO )

ω = [ ω x ω y ω z ] = [ 1 0 − S θ 0 C φ C θ S φ 0 − S φ C θ C φ ] [ φ ˙ θ ˙ ψ ˙ ] = T ‾ [ φ ˙ θ ˙ ψ ˙ ] (2) \boldsymbol{\omega} = \begin{bmatrix} \omega_x \\ \omega_y \\ \omega_z \end{bmatrix} = \begin{bmatrix} 1 & 0 & -S\theta \\ 0 & C\varphi & C\theta S\varphi \\ 0 & -S\varphi & C\theta C\varphi \end{bmatrix} \begin{bmatrix} \dot{\varphi} \\ \dot{\theta} \\ \dot{\psi} \end{bmatrix} = \underline{T} \begin{bmatrix} \dot{\varphi} \\ \dot{\theta} \\ \dot{\psi} \end{bmatrix} \tag{2} ω= ωxωyωz = 1000CθSφCθCφ φ˙θ˙ψ˙ =T φ˙θ˙ψ˙ (2)

ϕ ˙ = [ φ ˙ θ ˙ ψ ˙ ] = 1 C θ [ C θ S φ S θ C φ S θ 0 C φ C θ − S φ C θ 0 S φ C φ ] ω = M ‾ ( ϕ ) ω (3) \dot{\boldsymbol{\phi}} = \begin{bmatrix} \dot{\varphi} \\ \dot{\theta} \\ \dot{\psi} \end{bmatrix} = \frac{1}{C\theta} \begin{bmatrix} C\theta & S\varphi S\theta & C\varphi S\theta \\ 0 & C\varphi C\theta & -S\varphi C\theta \\ 0 & S\varphi & C\varphi \end{bmatrix} \boldsymbol{\omega} = \underline{M}(\phi)\boldsymbol{\omega} \tag{3} ϕ˙= φ˙θ˙ψ˙ =1 00SφSθCφCθCφSθSφCθ ω=M(ϕ)ω(3)

在小角度下,可以进行线性化,即, C θ = 1 C\theta = 1 =1, S θ = θ S\theta = \theta =θ θ \theta θ θ ˙ \dot{\theta} θ˙等均为小值,二阶及以上小值=0。

上式可以写为:

[ ω x ω y ω z ] = [ 1 0 − θ 0 1 − φ 0 − φ 1 ] [ φ ˙ θ ˙ ψ ˙ ] = [ φ ˙ − θ ψ ˙ θ ˙ − φ ψ ˙ ψ ˙ − φ θ ˙ ] = [ φ ˙ θ ˙ ψ ˙ ] (4) \begin{bmatrix} \omega_x \\ \omega_y \\ \omega_z \end{bmatrix} = \begin{bmatrix} 1 & 0 & -\theta \\ 0 & 1 & -\varphi \\ 0 & -\varphi & 1 \end{bmatrix} \begin{bmatrix} \dot{\varphi} \\ \dot{\theta} \\ \dot{\psi} \end{bmatrix} = \begin{bmatrix} \dot{\varphi} - \theta \dot{\psi}\\ \dot{\theta} - \varphi \dot{\psi}\\ \dot{\psi} - \varphi \dot{\theta} \end{bmatrix} = \begin{bmatrix} \dot{\varphi}\\ \dot{\theta}\\ \dot{\psi} \end{bmatrix} \tag{4} ωxωyωz = 10001φθφ1 φ˙θ˙ψ˙ = φ˙θψ˙θ˙φψ˙ψ˙φθ˙ = φ˙θ˙ψ˙ (4)

ϕ ˙ = [ φ ˙ θ ˙ ψ ˙ ] = [ 1 φ θ θ 0 1 − φ 0 φ 1 ] ω = [ ω x + θ ω z ω y − φ ω z ω z + φ ω y ] (5) \dot{\boldsymbol{\phi}} = \begin{bmatrix} \dot{\varphi} \\ \dot{\theta} \\ \dot{\psi} \end{bmatrix} = \begin{bmatrix} 1 & \varphi \theta & \theta \\ 0 & 1 & -\varphi \\ 0 & \varphi & 1 \end{bmatrix} \boldsymbol{\omega} = \begin{bmatrix} \omega_x + \theta \omega_z\\ \omega_y - \varphi \omega_z\\ \omega_z + \varphi \omega_y \end{bmatrix} \tag{5} ϕ˙= φ˙θ˙ψ˙ = 100φθ1φθφ1 ω= ωx+θωzωyφωzωz+φωy (5)

将式子4带入式1得到

[ J x φ ¨ J y θ ¨ J z ψ ¨ ] = [ T x T y T z ] (6) \begin{bmatrix} J_x \ddot{\varphi} \\ J_y \ddot{\theta} \\ J_z \ddot{\psi} \end{bmatrix} = \begin{bmatrix} T_x \\ T_y \\ T_z \end{bmatrix} \tag{6} Jxφ¨Jyθ¨Jzψ¨ = TxTyTz (6)

3.控制算法

3.1 欧拉角PID控制

设目标欧拉角为

ϕ d = [ φ d θ d ψ d ] = [ − 2 0 ∘ 5 ∘ 1 5 ∘ ] \boldsymbol{\phi}_d = \begin{bmatrix} \varphi_d \\ \theta_d \\ \psi_d \end{bmatrix} = \begin{bmatrix} -20^{\circ} \\ 5^{\circ} \\ 15^{\circ} \end{bmatrix} ϕd= φdθdψd = 20515

当前的欧拉角为

ϕ = [ φ θ ψ ] \boldsymbol{\phi} = \begin{bmatrix} \varphi \\ \theta \\ \psi \end{bmatrix} ϕ= φθψ

则误差欧拉角为

ϕ e = ϕ d − ϕ \boldsymbol{\phi}_e = \boldsymbol{\phi}_d - \boldsymbol{\phi} ϕe=ϕdϕ

ϕ ˙ e = ϕ d ˙ − ϕ ˙ \dot{\boldsymbol{\phi}}_e = \dot{\boldsymbol{\phi}_d} - \dot{\boldsymbol{\phi}} ϕ˙e=ϕd˙ϕ˙

可以看到,在小角度时,可以看成线性化模型,使用pid控制律如下所示

K p = 8 ∗ d i a g ( [ 1 1 1 ] ) Kp = 8*diag (\begin{bmatrix} 1 & 1 & 1 \end{bmatrix}) Kp=8diag([111])

K d = 10 ∗ d i a g ( [ 1 1 1 ] ) Kd = 10*diag (\begin{bmatrix} 1 & 1 & 1 \end{bmatrix}) Kd=10diag([111])

控制力矩为
u = K p ϕ e + K d ϕ ˙ e u = Kp\boldsymbol{\phi}_e + Kd\dot{\boldsymbol{\phi}}_e u=Kpϕe+Kdϕ˙e

控制结果如下图所示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 基于反步法的非线性控制

参考博客

基于上述讨论,我们有

ϕ ˙ e = ϕ d ˙ − ϕ ˙ = ϕ d ˙ − M ‾ ( ϕ ) ω (10) \dot{\boldsymbol{\phi}}_e = \dot{\boldsymbol{\phi}_d} - \dot{\boldsymbol{\phi}} = \dot{\boldsymbol{\phi}_d} - \underline{M}(\phi)\boldsymbol{\omega} \tag{10} ϕ˙e=ϕd˙ϕ˙=ϕd˙M(ϕ)ω(10)

ω ˙ = J − 1 ( T − ω × J ω ) (11) \dot{\boldsymbol{\omega}} = \boldsymbol{J}^{-1}(\boldsymbol{T} - \boldsymbol{\omega} \times \boldsymbol{J}\boldsymbol{\omega}) \tag{11} ω˙=J1(Tω×Jω)(11)

其中式10为运动学,由角速度得到角度,这一层可以通过改变角速度,控制角度。式11为动力学,由力矩得到角速度,这一次可以通过改变力矩,控制角速度。

反步法(backstepping)将非线性系统分解成不超过系统阶数的子系统,然后为每个子,系统设计部分Lyapunov 函数(简称V函数)和中间虚拟控制量,一直“后退到整个系统将它们集成起来完成整M个控制律的设计。

对于运动学层,需要将$\boldsymbol{\phi}_e $控制到0,设李雅普诺夫函数为:

V 1 = 1 2 ϕ e T ϕ e (12) V_1 = \frac{1}{2}\boldsymbol{\phi}_e^{\mathrm{T}}\boldsymbol{\phi}_e \tag{12} V1=21ϕeTϕe(12)

V ˙ 1 = ϕ e T ( ϕ d ˙ − M ‾ ( ϕ ) ω ) (12) \dot{V}_1 = \boldsymbol{\phi}_e^{\mathrm{T}}(\dot{\boldsymbol{\phi}_d} - \underline{M}(\phi)\boldsymbol{\omega}) \tag{12} V˙1=ϕeT(ϕd˙M(ϕ)ω)(12)

M ‾ ( ϕ ) ω = ϕ d ˙ + K 1 ϕ e \underline{M}(\phi)\boldsymbol{\omega} = \dot{\boldsymbol{\phi}_d} + K_1\boldsymbol{\phi}_e M(ϕ)ω=ϕd˙+K1ϕe,则有 V ˙ 1 = − 1 2 ϕ e T K 1 ϕ e < 0 \dot{V}_1 = -\frac{1}{2}\boldsymbol{\phi}_e^{\mathrm{T}}K_1\boldsymbol{\phi}_e<0 V˙1=21ϕeTK1ϕe<0 K 1 > 0 K_1>0 K1>0时。

因此,对于动力学层,需要将 ω \boldsymbol{\omega} ω控制到满足 M ‾ ( ϕ ) ω = ϕ d ˙ + K 1 ϕ e \underline{M}(\phi)\boldsymbol{\omega} = \dot{\boldsymbol{\phi}_d} + K_1\boldsymbol{\phi}_e M(ϕ)ω=ϕd˙+K1ϕe,定义新的控制量 ω d = M ‾ ( ϕ ) − 1 ( ϕ d ˙ + K 1 ϕ e ) \boldsymbol{\omega}_d = \underline{M}(\phi)^{-1}(\dot{\boldsymbol{\phi}_d} + K_1\boldsymbol{\phi}_e) ωd=M(ϕ)1ϕd˙+K1ϕe,则角速度误差定义为:

ω e = ω d − ω (13) \boldsymbol{\omega}_e = \boldsymbol{\omega}_d - \boldsymbol{\omega} \tag{13} ωe=ωdω(13)

带入式12,重写 V 1 ˙ \dot{V_1} V1˙

V 1 ˙ = − 1 2 ϕ e T K 1 ϕ e + ϕ e T T ‾ − 1 ω e \dot{V_1} = -\frac{1}{2}\boldsymbol{\phi}_e^{\mathrm{T}}K_1\boldsymbol{\phi}_e + \boldsymbol{\phi}_e^{\mathrm{T}}\underline{T}^{-1}\boldsymbol{\omega}_e V1˙=21ϕeTK1ϕe+ϕeTT1ωe

结合上述推推导,我们有

ω ˙ e = ω ˙ d − ω ˙ = M ‾ ( ϕ ) − 1 ˙ ( ϕ d ˙ + K 1 ϕ e ) + M ‾ ( ϕ ) − 1 ( ϕ d ¨ + K 1 ϕ ˙ e ) − J − 1 ( T − ω × J ω ) (13) \dot{\boldsymbol{\omega}}_e = \dot{\boldsymbol{\omega}}_d - \dot{\boldsymbol{\omega}} = \\ \dot{\underline{M}(\phi)^{-1}}(\dot{\boldsymbol{\phi}_d} + K_1\boldsymbol{\phi}_e)+ \underline{M}(\phi)^{-1}(\ddot{\boldsymbol{\phi}_d} + K_1\dot{\boldsymbol{\phi}}_e)- \\ \boldsymbol{J}^{-1}(\boldsymbol{T} - \boldsymbol{\omega} \times \boldsymbol{J}\boldsymbol{\omega}) \tag{13} ω˙e=ω˙dω˙=M(ϕ)1˙ϕd˙+K1ϕe+M(ϕ)1ϕd¨+K1ϕ˙eJ1(Tω×Jω)(13)

其中,

T ‾ = [ 1 0 − S θ 0 C φ C θ S φ 0 − S φ C θ C φ ] \underline{T} = \begin{bmatrix} 1 & 0 & -S\theta \\ 0 & C\varphi & C\theta S\varphi \\ 0 & -S\varphi & C\theta C\varphi \end{bmatrix} T= 1000CθSφCθCφ

M ‾ = 1 C θ [ C θ S φ S θ C φ S θ 0 C φ C θ − S φ C θ 0 S φ C φ ] \underline{M} = \frac{1}{C\theta} \begin{bmatrix} C\theta & S\varphi S\theta & C\varphi S\theta \\ 0 & C\varphi C\theta & -S\varphi C\theta \\ 0 & S\varphi & C\varphi \end{bmatrix} M=1 00SφSθCφCθCφSθSφCθ

T ‾ = M ‾ − 1 \underline{T} = \underline{M}^{-1} T=M1

T ‾ ˙ = [ 0 0 − C θ 0 − S φ − S θ S φ + C θ C φ 0 − C φ − S θ C φ − C θ S φ ] \dot{\underline{T}} = \begin{bmatrix} 0& 0& -C\theta \\ 0& -S\varphi& -S\theta S\varphi + C\theta C\varphi \\ 0& -C\varphi& -S\theta C\varphi - C\theta S\varphi \end{bmatrix} T˙= 0000SθSφ+CθCφSθCφCθSφ

所有式13可用写为
ω ˙ e = ω ˙ d − ω ˙ = T ‾ ˙ ( ϕ d ˙ + K 1 ϕ e ) + T ‾ ( ϕ d ¨ + K 1 ( ϕ ˙ d − T ‾ − 1 ω ) ) − J − 1 ( T − ω × J ω ) (14) \dot{\boldsymbol{\omega}}_e = \dot{\boldsymbol{\omega}}_d - \dot{\boldsymbol{\omega}} = \\ \dot{\underline{T}}(\dot{\boldsymbol{\phi}_d} + K_1\boldsymbol{\phi}_e)+ \underline{T}(\ddot{\boldsymbol{\phi}_d} + K_1(\dot{\boldsymbol{\phi}}_d-\underline{T}^{-1}\boldsymbol{\omega}))- \\ \boldsymbol{J}^{-1}(\boldsymbol{T} - \boldsymbol{\omega} \times \boldsymbol{J}\boldsymbol{\omega}) \tag{14} ω˙e=ω˙dω˙=T˙ϕd˙+K1ϕe+Tϕd¨+K1(ϕ˙dT1ω)J1(Tω×Jω)(14)

为使系统稳定,选取李雅普诺夫函数:

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

V ˙ 2 = V ˙ 1 + ω e T ω ˙ e = − 1 2 ϕ e T K 1 ϕ e + ϕ e T T ‾ − 1 ω e + ω e T ω ˙ e = − 1 2 ϕ e T K 1 ϕ e + ϕ e T T ‾ − 1 ω e + ω e T ( T ‾ ˙ ( ϕ d ˙ + K 1 ϕ e ) + T ‾ ( ϕ d ¨ + K 1 ( ϕ ˙ d − T ‾ − 1 ω ) ) − J − 1 ( T − ω × J ω ) ) \dot{V}_2 = \dot{V}_1 + \boldsymbol{\omega}_e^{\mathrm{T}}\dot{\boldsymbol{\omega}}_e = \\ -\frac{1}{2}\boldsymbol{\phi}_e^{\mathrm{T}}K_1\boldsymbol{\phi}_e + \boldsymbol{\phi}_e^{\mathrm{T}}\underline{T}^{-1}\boldsymbol{\omega}_e + \boldsymbol{\omega}_e^{\mathrm{T}}\dot{\boldsymbol{\omega}}_e = \\ -\frac{1}{2}\boldsymbol{\phi}_e^{\mathrm{T}}K_1\boldsymbol{\phi}_e + \boldsymbol{\phi}_e^{\mathrm{T}}\underline{T}^{-1}\boldsymbol{\omega}_e +\\ \boldsymbol{\omega}_e^{\mathrm{T}}(\dot{\underline{T}}(\dot{\boldsymbol{\phi}_d} + K_1\boldsymbol{\phi}_e)+ \underline{T}(\ddot{\boldsymbol{\phi}_d} + K_1(\dot{\boldsymbol{\phi}}_d-\underline{T}^{-1}\boldsymbol{\omega}))- \\ \boldsymbol{J}^{-1}(\boldsymbol{T} - \boldsymbol{\omega} \times \boldsymbol{J}\boldsymbol{\omega})) V˙2=V˙1+ωeTω˙e=21ϕeTK1ϕe+ϕeTT1ωe+ωeTω˙e=21ϕeTK1ϕe+ϕeTT1ωe+ωeT(T˙ϕd˙+K1ϕe+Tϕd¨+K1(ϕ˙dT1ω)J1(Tω×Jω))


T = ( ω × J ω ) + J ‾ ( K 2 ω e + ( T ‾ − 1 ) T ϕ e + T ‾ ˙ ( ϕ d ˙ + K 1 ϕ e ) + T ‾ ( ϕ d ¨ + K 1 ( ϕ ˙ d − T ‾ − 1 ω ) ) ) \boldsymbol{T} = (\boldsymbol{\omega} \times \boldsymbol{J}\boldsymbol{\omega}) + \\ \underline{J} (K_2\boldsymbol{\omega}_e+(\underline{T}^{-1})^{\mathrm{T}}\boldsymbol{\phi}_e+ \dot{\underline{T}}(\dot{\boldsymbol{\phi}_d} + K_1\boldsymbol{\phi}_e)+ \underline{T}(\ddot{\boldsymbol{\phi}_d} + K_1(\dot{\boldsymbol{\phi}}_d-\underline{T}^{-1}\boldsymbol{\omega}))) T=(ω×Jω)+J(K2ωe+(T1)Tϕe+T˙(ϕd˙+K1ϕe)+T(ϕd¨+K1(ϕ˙dT1ω)))

可得

V ˙ 2 = − 1 2 ϕ e T K 1 ϕ e − 1 2 ω e T K 2 ω e (17) \dot{V}_2 = -\frac{1}{2}\boldsymbol{\phi}_e^{\mathrm{T}}K_1\boldsymbol{\phi}_e - \frac{1}{2}\boldsymbol{\omega}_e^{\mathrm{T}}K_2\boldsymbol{\omega}_e \tag{17} V˙2=21ϕeTK1ϕe21ωeTK2ωe(17)

K 1 > 0 K_1>0 K1>0, K 2 > 0 K_2>0 K2>0时,系统稳定。其中, T \boldsymbol{T} T中的 K 2 ω e K_2\boldsymbol{\omega}_e K2ωe项使式17中多出 − 1 2 ω e T K 2 ω e - \frac{1}{2}\boldsymbol{\omega}_e^{\mathrm{T}}K_2\boldsymbol{\omega}_e 21ωeTK2ωe,为了 ϕ e = 0 \boldsymbol{\phi}_e=0 ϕe=0 ω e ≠ 0 \boldsymbol{\omega}_e\neq0 ωe=0时,控制力矩仍然能向目标值控制。

设置参数 K 1 = 2 K_1 = 2 K1=2 K 2 = 2 K_2 = 2 K2=2

控制结果如下图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值