四足机器人(二):Hopf振荡器

本文深入探讨Hopf振荡器在四足机器人步态控制中的应用,包括其数学模型、初始值和参数选择的影响,以及自适应频率跟踪。通过耦合和自适应学习律的仿真分析,展示了Hopf振荡器如何适应并锁定输入信号频率,为机器人步态控制提供稳定节拍信号。
摘要由CSDN通过智能技术生成

目录 

一、Hopf振荡器基础

        1.1 数学模型

        1.2 初始值的选取

        1.3 模型参数的选取

二、振荡器耦合

三、自适应振荡器

3.1 自适应Hopf振荡器模型

3.2 仿真分析

四、参考文献


        Hopf振荡器作为中枢模式发生器(CPG)模型的一种方法,在四足机器人、双足机器人、外骨骼机器人的步态控制中具有重要应用。本文首先介绍了Hopf振荡器的基础知识,包括其基本数学模型,并使用Matlab进行对其输出信息进行动态仿真;分析了振荡器初始值选取与参数之间的关系;振荡器各个参数对动态特性的影响进行了仿真分析。另外对多个振荡器耦合的算法进行了分析,并且通过仿真进行验证。最后,介绍了一种频率自适应振荡器的学习律,这种振荡器可以学习输入信号的频率,对其进行了仿真分析。文末给出了所有仿真源码的地址。

一、Hopf振荡器基础

1.1 数学模型

        Hopf振荡器的数学模型如下:

\frac{dx}{dt}=\alpha (\mu -r^{2})x-\omega y

\frac{dy}{dt}=\alpha (\mu -r^{2})y+\omega x

        其中x,y为振荡器的状态变量,r^{2}=x^{2}+y^{2}\alpha ,\mu ,\omega为模型参数,与振荡器的动态特性相关,各个参数单独影响动态性能。

        当初始值为:\left [ x,y \right ]=\left [ 0.5,0.5 \right ],模型参数为:\alpha =50,\mu =1,\omega =2\pi,振荡器的输出如下图所示。

(a)横坐标x,纵坐标y

(b)x,y的曲线

图1 Hopf振荡器输出

        可以看出,Hopf振荡器的实质就是一个点,从初始位置收敛到一个圆周上,然后在圆周上随着时间做周期运动。收敛的快慢、圆周的大小、运动的速度可以通过模型参数调整。

1.2 初始值的选取

        对于任意非零的初始值,在合适参数下(主要是\alpha),振荡器都能产生相同形状的周期性振荡信号。但是如果参数不合适,会导致信号不平滑,甚至发散。当初始值为:\left [ x,y \right ]=\left [ 1.0,1.0 \right ]\alpha分别为200,100,50时,振荡器的输出如下图所示。

 (a)\alpha =200

(b)\alpha =100

(c)\alpha =50

图2 不同\alpha对应的输出信号

1.3 模型参数的选取

 (1)收敛权值\alpha

        参数\alpha的作用是控制从初始位置收敛到圆环的速度。当初始值为:\left [ x,y \right ]=\left [ 0.5,0.5 \right ],模型参数为:\mu =1,\omega =2\pi,其他参数不变的情况下,\alpha分别为5,10,50时,振荡器的输出曲线如下图所示。

 

 图3 振荡器的收敛速度

        可以看出,\alpha越小,收敛速度越慢,但是如果\alpha太大,会导致振荡甚至发散,如图2所示的情况。实际使用中,不能只最求快速收敛,应综合考虑。收敛太快,可能会导致收敛阶段的信号不平滑,甚至会超过某些幅值限制,例如速度、加速度超出实际系统的最大值。因此,实际使用时,应根据系统自身限制选择合适的收敛速度。

 (2)幅值系数\mu

         振荡器输出信号的幅值,表示的是图1(a)中极限圆的半径,也是图1(b)中周期信号的幅值。当初始值为:\left [ x,y \right ]=\left [ 0.5,0.5 \right ],模型参数为:\alpha =30,\omega =2\pi,其他参数不变的情况下,\mu分别为0.25,1,1.44时,振荡器的输出曲线如下图所示。

 

图4 振荡器的幅值

         可以看出,幅值A与参数\mu的关系为:A=\sqrt{\mu }

(3)频率\omega

        这个参数表示振荡器的角频率,也就是1.1中所说的点绕圆周运动的速度快慢。当初始值为:\left [ x,y \right ]=\left [ 0.5,0.5 \right ],模型参数为:\alpha =30,\mu=1,其他参数不变的情况下,\omega分别为\pi ,2\pi,4\pi时,振荡器的输出曲线如下图所示。

图5 振荡器的频率

        可以看出,当\omega =\pi时,振荡器输出信号的周期T=2,当\omega =2\pi时,振荡器输出信号的周期T=1,当\omega =4\pi时,振荡器输出信号的周期T=0.5,所以,振荡器输出信号的周期T与\omega的关系为:T=\frac{2\pi }{\omega }

二、振荡器耦合

        为什么要讨论多个振荡器耦合的情况?举个例子,四足机器人行走时,每条腿通过一个振荡器来产生固定节拍的信号,从而驱使四足机器人连续行走或小跑。机器人的四条腿并非同时抬起和放下,在一个固定步行模式下,每两条腿之间都有一个固定的相位差,为了保证任意时刻四条腿的节拍信号都满足固定相位差的要求,就需要在多个振荡器之间增加耦合。

        在多个振荡器之间增加耦合的方法,就是在Hopf振荡器数学模型里面加入一个耦合项,如下所示:

         其中,n表示耦合的振荡器个数,i=1,...,n分别对应各个振荡器,\theta _{j}^{i}=2\pi (\varphi _{i}-\varphi _{j}),其中\varphi _{i}\in [0,1)表示相位占比。

         例如对于双足机器人,左右腿各一个振荡器,左腿i=1,右腿i=2,以左腿相位作为参考相位,两条腿交替运动,相位相差50%,则\varphi _{1}=0,\varphi _{2}=0.5。初始值为\left [ x1,y1,x2,y2 \right ]=\left [ 0.5,0,-0.5,0 \right ]\alpha =30,\mu =1,\omega =2\pi时,两个耦合的振荡器输出信号如下图所示。

(a)x1-y1和x2-y2

(b)t-x1和t-x2

图6 振荡器耦合的输出

        可以看出,两个振荡器的输出信号相位始终相差50%。需要特别注意的是,在有些初始值情况下,耦合会失效,两个输出信号会完全相同。

三、自适应振荡器

        这一节内容来自论文:Dynamic Hebbian learning in adaptive frequency oscillators.

        本节介绍一种频率自适应振荡器的学习律,这里只讲用于Hopf振荡器上的自适应方法,这种方法可以类似推广到其他非线性振荡器。

3.1 自适应Hopf振荡器模型

         Hopf振荡器与一个周期输入信号相耦合的模型为:

         其中r=\sqrt{x^{2}+y^{2}}\mu >0决定了振荡器的幅值,\omega是振荡器的固有频率,这表示,如果没有扰动(\varepsilon =0)系统输出以\omega rad/s的速度振荡。这个振荡器与周期信号F进行耦合,如果没有耦合(F=0),系统有一个渐近稳定的极限环。而微小的扰动不会改变渐近稳定系统的整体表现,这个模型结构上是稳定的。

        将上述模型改成极坐标系的描述,令x=rcos\phi ,y=rsin\phi,得到:

         当振荡器的固有频率接近周期输入信号F的一个频率分量时,将会发生锁相现象,这意味着振荡器的频率与输入信号的频率会同步。

        自适应学习律为:

        (这里直接给出自适应学习律,省去了推导过程,感兴趣可以直接看论文)

        这个学习律和上面的公式(*)就组成了自适应Hopf振荡器的全部模型,非常简洁。稳定性证明略。

3.2 仿真分析

(a) 输入信号为单频率周期信号

        首先通过一个简单的例子来说明自适应系统是如何工作的,并讨论学习率参数\varepsilon对整个过程有什么影响。在公式(*)和(**)中,令输入信号为F=cos(30t),参数\mu =1,初始情况下r(0)=1\phi (0)=0\omega (0)=40,当\varepsilon分别为1, 0.8, 0.6, 0.4时进行仿真,结果如下图所示。

图7 不同参数\varepsilon的仿真结果

         可以看出,振荡器的固有频率通过自适应调整,稳定到了输入信号的频率。同时,参数\varepsilon决定了自适应的速度,\varepsilon越大频率学习的速度越快。

(b) 输入信号为多频率周期信号

        当学习多频率输入信号的频率时,我们通常希望振荡器收敛到其中一个频率分量。但是,如何选择自适应振荡器的初始频率范围,才能收敛到特定频率分量呢?在证明稳定性的时候,给出了一个方程,用来描述输入信号频率与振荡器初始固有频率的偏差:

         可以看出,这个方程取决于振荡器初始频率\omega _{0}、输入信号的频率分量n\omega _{F}以及该分量的幅值A_{n}。因此对于一个给定的输入信号,可以计算函数等于零时的\omega _{0}。这些零点给出了收敛区间,振荡器会向与\omega _{0}位于同一区间的频率分量收敛。例如输入信号如下:

 

         主要的频率分量为\omega _{F}=10,各频率分量对应的幅值为A_{2}=\frac{0.2}{2i},A_{3}=\frac{0.5}{2i},A_{4}=\frac{0.3}{2i},其他幅值为A_{i}=0,\forall i\notin \left \{ 2,3,4 \right \}。只需要求出下面方程的根:

         可以求出根为0或\pm \sqrt{\frac{717\pm \sqrt{134089}}{0.76}},因为频率一般大于零,所以有效的解为:\omega _{down}=21.3598,\omega _{up}=37.8233,这两个解划分出了三个区间,当振荡器的初始频率分别处于下列区间时\omega _{0}\in \left [ 0,\omega _{down} \right ],\left [ \omega _{down},\omega _{up} \right ],\left [ \omega _{up},\infty \right ],振荡器固有频率将分别收敛于20,30,40,只是在区间的临界处有一些不确定性。取\varepsilon =0.9\omega _{0}在各区间内任意取值时,振荡器最终收敛情况如下图所示。

图8 初始频率\omega _{0}取不同值时的收敛情况

        图中黑色虚线表示区间的边界,可以看出,当振荡器初始频率\omega _{0}取不同区间的值时,振荡器频率的收敛情况与以上推倒完全一致。

四、参考文献

        [1] Ludovic Righetti, Jonas Buchli, Auke Jan Ijspeert. Dynamic Hebbian learning in adaptive frequency oscillators.

        源代码包里面包括4个m文件:

        1)标准的Hopf振荡器仿真;

        2)2个Hopf振荡器耦合的仿真;

        3)自适应Hopf振荡器跟踪单频率的输入信号仿真;

        4)自适应Hopf振荡器跟踪多频率的输入信号的仿真;

        仿真源代码链接:https://download.csdn.net/download/u014170067/85036702https://download.csdn.net/download/u014170067/85036702

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Hopf振荡器是一种常见的动力学模型,常用于描述生物、物理和工程学科中的周期性运动。而MATLAB是一种强大的数学工具箱,适用于数据分析、科学计算、模型仿真等多个领域。因此,结合MATLAB进行Hopf振荡器的仿真与研究具有广泛的应用价值。 在MATLAB中,Hopf振荡器模型通常采用一系列微分方程来描述。这些微分方程由Hopf本人在20世纪初提出,描述了一种由非线性时间演化方程组成的动力学系统,其运动可近似为谐波运动。 具体而言,Hopf振荡器模型中会涉及到一系列参数,包括自身演化的时间、非线性系数、耗散项等。这些参数会为Hopf振荡器的振荡频率和幅度等特性产生影响,通过MATLAB的程序仿真可以帮助我们更好地理解Hopf振荡器模型的行为特性。 除此之外,MATLAB还提供了各种计算工具和图形化界面,可以方便地进行解析分析和可视化展示。包括拟合、趋势分析、频谱分析等,都可以较为简便地完成。因此,MATLAB Hopf振荡器的研究可帮助我们探究复杂动力学系统的本质规律和性质,具有重要的理论和实际应用意义。 ### 回答2: MATLAB Hopf 振荡器是一种基于 Hopf 件设计和实现的振荡器,用于生成具有特定频率和对称性的信号。 该振荡器在动态系统研究和信号处理领域中广泛应用,可用于探究自然界中的物理行为,如天体物理、流体动力学和生态学等。 除此之外,MATLAB Hopf 振荡器也用于数字信号处理、通信系统、压缩和编解码等技术领域。 MATLAB Hopf 振荡器由跨越各个领域的科学家共同研究和开发,并通过物理学、数学学科的理论基础和 MATLAB 编程语言的工具实现。 它主要由状态方程、耦合函数和信号调制组成,可通过调整参数来生成不同类型、不同频率、不同对称性的振荡信号。 概括而言,MATLAB Hopf 振荡器广泛应用于许多领域,是一项基于理论、数学和计算机科学相结合的前沿技术,为实现信号处理、动态系统研究和数字通信等提供了有力支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

巴普蒂斯塔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值