一、回顾

我们先来回顾一下hopf振荡器的最初形式:
dxdt=α(μr2)xωy\frac{dx}{dt} = \alpha(\mu - r^2)x - \omega y

dydt=α(μr2)y+ωx\frac {dy}{dt} = \alpha(\mu-r^2)y+\omega x

在这微分方程组中,我们能够通过α,μ,ω\alpha,\mu, \omega三个参数来控制hopf振荡器的动态特性,分别对应收敛速度,幅值,以及周期,其具体公式如下:

  • 幅值A=μA = \sqrt{\mu}
  • 周期T=2πωT = \frac{2\pi}{\omega}

尽管通过震荡周期可以控制机器人的前进速度,通过幅值来控制关节的活动范围,但这对于我们的四足机器人来说,这可能远远不够用,因为我们可能需要改变机器人的运动步态来适应不同的地形,以及实现更低能耗的运作。

二、引入β\beta

首先我们来考虑不同的步态。尽管我们可以通过控制hopf振荡器之间的耦合关系来控制相位,但是如果不对hopf振荡器进行改进的话,就无法单独控制振荡器的输出信号的形状,即上升沿与下降沿所用的时间是一致的,是一个对称的信号。
四足机器人-CPG控制&Hopf振荡器引入beta参数

为了能够对这两者进行单独控制,使其能够适应不同负载因子下的运动模式,对ω\omega进行以下改进,引入参数a(定值)和β\beta

{ω=ωsteay+1+ωsweay+1ωst=1ββωsw\left\{\begin{matrix} \omega =& \frac{\omega_{st}}{e^{-ay}+1} + \frac{\omega_{sw}}{e^{ay}+1}\\ \\ \omega_{st} =& \frac{1-\beta}{\beta} \omega_{sw} \end{matrix}\right.

其中ωsw,ωst\omega_{sw}, \omega_{st}分别表示摆动相和支撑相的频率,β\beta为负载因子,用于决定,摆动相和支撑相的比例关系,最终我们的模型如下:

dxdt=α(μr2)xωydydt=α(μr2)y+ωxr2=x2+y2ω=ωsteay+1+ωsweay+1ωst=1ββωsw\begin{matrix} \frac{dx}{dt}=& \alpha(\mu-r^2)x-\omega y\\ \\ \frac{dy}{dt}=& \alpha(\mu-r^2)y + \omega x\\ \\ r^2= & x^2 + y^2\\ \\ \omega=&\frac{\omega{st}}{e^{-ay}+1}+ \frac{\omega_{sw}}{e^{ay}+1} \\ \\ \omega_{st} =& \frac{1-\beta}{\beta}\omega_{sw} \end{matrix}

给定参数α=100,μ=1,a=50\alpha=100, \mu=1, a=50,分别取β=0.75,0.5\beta=0.75,0.5,我们得到图像(x值曲线)
四足机器人-CPG控制&Hopf振荡器引入beta参数

我们将其与β=0.5\beta=0.5时的点运动放在一起,看下其点的运动变化:
四足机器人-CPG控制&Hopf振荡器引入beta参数

相关文章: