EtherCAT消息传输过程中对瞬时故障进行容错的方法与流程

文档序号:12739363阅读:566来源:国知局
EtherCAT消息传输过程中对瞬时故障进行容错的方法与流程

本发明涉及EtherCAT系统中消息调度技术,尤其涉及一种在满足系统截止时限错失率的前提下,通过对EtherCAT系统消息传输过程中的瞬时故障进行容错方法,提高系统可靠性的容错算法。



背景技术:

随着工业自动化技术和以太网技术的发展,已经开始将以太网的高速和实现简单等特点引入工业自动化控制领域,并制定了相关的国际标准。这种工业以太网之所以存在是想要弥补传统以太网传输实时性问题,其中EtherCAT作为工业以太网中较出色的一种,凭借其技术的开放性、通信的实时性和较强的抗干扰性等特点已经被企业和科研机构广泛关注。因此,对EtherCAT的研究已经成为一个非常重要的课题。

基于EtherCAT技术的I/O、控制器、伺服驱动等各种产品正如雨后春笋般涌现。目前EtherCAT已经开始应用到不同的领域中,例如:无人驾驶汽车、伺服控制器、智能机器人等。著名的美国绿岸望远镜和德国Kuka公司机器人控制器均使用了EtherCAT技术。目前国内外对EtherCAT的研究大多集中于EtherCAT网络在实时控制系统中的实现及EtherCAT主站或从站的设计,只有很少的文献对EtherCAT中消息的调度进行了研究,但它们都没有研究消息调度中的容错方法。因此对EtherCAT的容错方法的研究尚处空白。

在实际的工程应用中,因为系统规模不断扩大,实时性要求不断提高,通信网络的可靠性和实时性都需迫切提高,因为在自动化通信领域一旦出现故障,带来的损失将无法估量。因此对工业实时以太网的容错方法的研究是十分必要的。在国内外对EtherCAT网络消息传输过程中的容错方法的研究还处于空白状态,并且随着EtherCAT网络的应用越来越广泛,对其实时性和可靠性的要求将越来越高。因此研究如何提高其实时性和可靠性具有现实意义。



技术实现要素:

本发明的目的是根据EtherCAT主从式结构和消息集束帧的方式进行飞速传输的特性,提供了一种EtherCAT系统中消息调度时容忍瞬时故障的容错方法,以提高周期性消息在EtherCAT系统传输时的实时性和可靠性。

实现本发明目的的具体技术方案是:

本发明提出了一种EtherCAT系统中基于反馈控制的容错机方法,包括以下步骤:

步骤1:根据泊松分布计算消息集Γ中的消息发生故障的概率,计算满足单个消息可靠性目标RGi时需要的备份数目ni;

步骤2:将任务集中的消息按照ni进行备份,并在同一数据帧中传输;

步骤3:消息准备进入PID控制器;

步骤4:准入控制器AC控制消息是否可以进入,并且调用容错等级控制器调节消息的容错等级;

步骤5:统计消息的截止时限错失率MissRatio(t),并计算消息的截止时限错失率与目标值之差ΔMissRatio(t);

步骤6:;当ΔMissRatio(t)<ε时不断调整消息调度,根据相关参考文献,令ε取值为0.05;所述步骤1具体包括:

步骤A1:确定消息在链路上的失效率λL,λL(t)=λL=const;确定消息在结点上的平均故障到达概率λN,λN=γ*e-αf,其中γ和α都是常数,f是处理器发送消息的频率,e为自然对数的底;

步骤A2:根据平均故障到达概率λN和失效率λL以及消息的长度Li对单个消息在结点成功发送的概率和链路传输成功的概率进行计算;

步骤A3:计算消息满足其可靠性目标RGi时,需要进行备份的数目ni;

步骤A4:计算消息在ni个备份数目下的连通可靠性和网络利用率。

所述步骤6具体包括:

步骤B1:消息进入PID控制器,将消息的截止时限错失率与目标值之差ΔMissRatio(t)转化为网络利用率改变量ΔCPU(t);

步骤B2:如果ΔCPU(t)<0,调节容错等级控制器适应网络利用率,并计算减少的最大值ΔCPU(t)i;如果ΔCPU(t)>0,调节容错等级控制器适应网络利用率,并计算增加的最大值ΔCPU(t)i,如果容错等级控制器改变的网络利用率量不足以适应全部的改变量,还需要调用准入控制器;

其中,调节容错等级控制器适应网络利用率的过程为:

步骤C1:首先判断网络利用率改变量是否为正,即ΔCPU(t)≥0是否成立,得出需要提高或降低消息的容错等级;

步骤C2:计算消息mi在最高容错等级Fi,max时的网络利用率Ui,max和消息的网络利用率可改变量△Ui,得到所有消息占用的网络利用率改变量的总和为Σ△Ui

步骤C3:根据Σ△Ui与ΔCPU(t)的大小来判断提高或降低当前队列中的消息的容错等级Fi,k是否满足消息的网络利用率的改变量;

步骤C4:使用博弈论方法分配网络利用率,计算出提高或降低哪些消息的容错等级和将容错等级提高或降低至多少满足系统要求;

步骤C5:然后返回容错等级控制器调节的网络利用率改变量;

其中,调用准入控制器的过程为:

步骤D1:当容错等级控制器不足以适应网络利用率改变量ΔCPU(t)时,准入控制器会发挥其调节网络利用率的功能,且准入控制器调节的网络利用率的大小为ΔCPU(t)0=ΔCPU(t)-ΔCPU(t)i

步骤D2:使用EDF算法对消息发送和传输顺序进行排序,根据消息距离截止时限的长度确定消息的优先级,消息距离截止时限的长度越小,消息的优先级相对较高;

步骤D3:如果消息mi满足CPU(t)+Ui,0<1,则计算消息在各容错等级下的利用率Ui,k

步骤D4:将消息mi送入就绪队列,并选择最高的容错版本。

所述步骤C4具体包括:

步骤E1:将网络利用率的分配抽象为一个带约束的优化问题;

步骤E2:使用拉格朗日乘子法解决E1中的优化问题,并使用该方法计算出消息的备份个数的改变量△ni

本发明既考虑了系统整体的可靠性要求,又满足了单个消息的可靠性目标。通过向EtherCAT系统中引入控制反馈系统,可以在消息满足其截止时限错失率的情况下,使系统整体可靠性最高。

附图说明

图1为实施本发明的反馈控制系统(FC-EDF-PB)结构图;

图2为本发明流程图;

图3为本发明与无容错方法和被动备份容错方法在系统可靠性方面的对比图。

具体实施方式

结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。

本发明适用于实时以太网EtherCAT系统,该系统是由主站和从站设备通过标准以太网线缆连接而成,其介质访问控制方式采用了主从模式,主站负责发送和控制消息,而从站只负责接收消息,消息经过所有从站后会回到主站。EtherCAT系统消息传输的两个特点分别是集束帧和飞速传输,主站将同周期内需要传输的报文添加到同一个帧中发送,发送过程采用飞速传输(“on the fly”)的方式将报文传递到从站,从而实现数据的传输。

本发明所使用的消息集Γ由N个独立的实时消息{τ12,…,τN}所构成。即所有消息都是实时的、非抢占的、其请求都是周期性的、并且消息的执行顺序相互独立。消息τi可以用一个元组{I,T,L,D,F,U,RG}表示。每个消息τi有至少一个逻辑版本Ii=(τi,0i,1,……,τi,k),每个逻辑版本的区别在于每个消息拥有的备份个数不同。备份(back-up)即消息的副本,它拥有和主消息相同的内容,且会在主消息之后发送。所以不同的逻辑版本代表了不同的容错等级Fi=(Fi,0,Fi,1,……,Fi,k),消息τi在容错等级Fi=Fi,0时,没有备份;随着消息τi的容错等级越高,每个消息拥有的备份越多,即容错等级Fi=Fi,k时,消息拥有K个副本。

因此需要计算消息在不同容错等级下的网络利用率。Ui则表示每个消息在不同容错等级下占用的网络利用率Ui=(Ui,1,Ui,2,……,Ui,k),消息最初的容错等级由消息的可靠性目标RGi确定,Ti表示消息τi的周期,Li表示消息τi的长度,Di表示消息τi的截止时间,RGi表示消息τi的可靠性目标。本发明适用的故障类型为瞬时故障。

工业以太网的基本可靠性表现为连通可靠性,连通可靠性分为结点的可靠性和链路的可靠性。这里以环形拓扑结构为例分析EtherCAT系统的整体可靠性。因为EtherCAT系统中的消息在节点和链路中均可能发生瞬时故障,所以将对故障在这两部分发生的概率分别进行预测。

本发明考虑到消息传输的实时性和EtherCAT网络的特性,采取主动备份的方法,即根据消息的连通可靠性和可靠性目标计算出消息可靠性达到目标值的情况下需要的备份个数。消息在结点处理的过程相当于处理器的执行任务的过程,因此故障发生的概率使用泊松分布来模拟。λN表示消息的平均故障到达概率:

λN=γ*e-αf

式中γ和α都是常数,f是处理器发送消息的频率,e为自然对数的底。处理器发送单个消息的时间用WNi表示,因为消息的长度为Li,因此消息的执行时间可以通过计算得出:WNi=Li*f。

在已经知道消息的平均故障到达概率和消息执行时间的情况下,可以计算消息在结点发生故障的概率。每条消息发生k个故障的概率为:

P(k)=(λN*WNi)^k*e^(-λN*WNi)/k! (1)

其中,e为自然对数的底,每个消息τi发送成功的概率为:

P(k=0)=e^(-λN*WNi) (2)

因为在EtherCAT系统的主从结构中,每条消息会经过整个网络的所有结点(主站和从站),假设整条网络的结点个数为h,那么单个消息τi在h个结点中均成功发送的概率为:

Ph=e^(-h*λN*WNi) (3)

假设每个消息τi备份的个数为ni,那么拥有ni个备份的消息的可靠性为:

因为消息集Γ中有N个消息,每个消息有ni个备份,所有消息在所有结点组成的系统中的可靠性为:

其中,影响链路中消息可靠性的主要因素是数据传输错误,本发明将采用通过失效率的方法计算链路中消息的可靠性。失效率λL(t)通过对时间t求导为:

λL(t)=(d(1-R(t))/dt)/2R(t)=-dInR(t)/dt (6)

失效率λL(t)函数有三种类型:随着时间的增长而增长、随着时间的增长而下降和随着时间的增长没有变化。此处分析时取后面一种,即

λL(t)=λL=const (7)

因此单个消息的链路可靠性Pl为:

Pl=e^(-m*λL*WLi) (8)

其中m为网络中的链路个数,在主从式环形EtherCAT系统中,链路个数m与结点个数h一般相同,即m=h,WLi为消息在链路中的传输时间。

每个消息的连通可靠性P为:

有ni个备份的消息τi在链路和结点上的整体可靠性R为:

因此整个系统的连通可靠性RS为:

每个消息τi都有其对应的可靠性要求RGi,当R>=RGi时,可以求出消息τi满足其可靠性要求需要传递的最小的副本个数Ci_min,当R=1时Ci_max表示消息τi能传递的备份个数的上限。因此将拥有最小的备份个数Ci_min的消息的容错等级定为Fi,Ci_min,将拥有Ci_min+1个备份的消息的容错等级为Fi,Ci_min+1,以此类推,直到备份个数为ci_max时容错等级为Fi,Ci_max。消息的容错等级越高,消息的备份个数越多,EtherCAT系统可靠性也越高。

参阅图1,该图为实施本发明的有容错功能的反馈控制系统(FC-EDF-PB系统),它包括PID控制器、EDF调度器、容错等级控制器(FLC)和准入控制器(AC)。

其中,PID控制器将截止时限错失率与截止时限错失率目标值之差转化为需要改变的网络利用率ΔCPU(t),从而通过调节网络利用率使截止时限错失率维持在一定范围。PID控制器接收到的误差量为ΔMissRatio(t),该值是周期釆样的,采样周期为消息周期的最小公倍数,即超周期,ΔCPU(t)如下式计算:

式中,Cp,CI,CD为可调节的参数,IW为计算误差的时间窗口,DW为误差的微分时间窗口。PID控制器输出的ΔCPU(t)表示当前的网络利用率需要改变的量,它将该值传递给容错等级控制器,容错等级控制器再根据ΔCPU(t)调节网络的利用率。

本发明采用了博弈论的方法分配网络利用率,从而使系统总的可靠性最高。在分配网络利用率时要同时考虑系统整体的可靠性,单个消息的可靠性,以及就绪队列中消息占有的网络利用率的公平性。这种从整体出发又兼顾个体的模型可以用合作博弈来描述,在合作博弈中,整体利益和个体的利益会达到一种平衡。就绪队列中有N个消息,N个消息对有限的可用网络利用率ΔCPU(t)进行竞争。可以将每个消息的可靠性作为效用函数f(R):

因为本发明考虑的是混合关键性消息,因此每个消息都有一个最低的可靠性目标RGi,每个消息要满足最低容错等级,即每个消息拥有至少Ci_min个副本。因此假设ΔCPU(t)>0,即可以分配的网络利用率为正,所以N个消息最终的可靠性都会严格优于初始可靠性。公式表示,消息的备份个数越多,其对应的可靠性就越高,所以消息希望自己得到更多的备份。由于可以改变的网络利用率是有限的,所以消息不仅要考虑其自身也需要为整个系统考虑。消息与消息之间需要竞争也需要合作,因为既想达到单个消息的可靠性目标又想使系统整体可靠性较高,也就是既要整体的效用值比较高(系统的可靠性),又兼顾每个消息自身的可靠性(每个消息的可靠性也相对较高)。

所以,基于合作博弈的网络利用率分配问题可描述为:一段时间需要调整的网络利用率为ΔCPU(t),每个消息的可靠性目标为RGi,N个消息既合作又竞争,最终会得到一个兼顾效率与公平的网络利用率分配方案(即纳什讨价还价解),以上过程可以被抽象为一个带约束的优化问题(称为原问题):

等价于:

问题可以转化为:

构造函数L1为

对于上述优化问题,可以使用拉格朗日乘子法解决,对应的拉格朗日函数L为:

其中α为拉格朗日乘子。

上式对Δni进行求导,求导后公式为:

因此使用上述方法分配网络利用率改变量后,此时每个消息τi的备份个数应该为ni+Δni

其中:

因为变量RGi,WNi,WLi,Ti,ni等参数均为已知,只有α一个未知变量,α为拉格朗日乘子,其取值范围为[0,1],因此可以求出Δni的解。通过公式(18)即可求得最优的网络利用率分配方案,从而提高系统的可靠性。

实施例

本实验中任务集定为Γ={τ123,…,τ10},在统计系统截止时限错失率时将随机产生100个任务集的样本。每个任务集中消息τi可以用一个元组{I,T,L,D,F,U,RG}表示。任务的可靠性目标RG=0.9999,假设该任务集含有10个周期性消息,该任务集中消息的长度分别为L={52,25,58,50,69,100,68,34,124,102}byte。消息的传输或执行速率为C=100*1024*1024byte/s,因此消息的传输或执行时间为WN=WL={3.97,1.91,4.43,3.82,5.27,7.63,5.19,2.6,9.47,7.79}μs,该任务集中消息的传输周期为T=100μs,根据故障到达概率符和泊松分布,故障到达速率λ=0.01。本实验选取的拓扑结构为环形,其网络规模有两种,第一种包含10个从站,即网络拓扑1;第二种含有20个从站,即网络拓扑2;因为两种网络拓扑中EtherCAT系统中的从站数目不同,所以消息在两种网络拓扑中传输的时间不同,即m=h=10或20。这些参数作为调度方法的输入。

表1列出了需要定义和设置的具体参数,表2展示了表1中参数对应的取值或取值范围。

表1仿真过程中需要用到的参数

本发明采用了根据预测的可靠性以主动备份的方式进行容错,并使用PID控制器通过截止时限错失率动态调节利用率。参考实验选取经典的被动备份容错方法,即对消息的备份不是发生在消息主版本发送阶段,而是先发送消息的主版本,然后检测消息是否发生故障,如果消息传输失败,则再发送消息的副本,且副本只发送一次。

表2仿真过程中的参数取值

步骤1:根据泊松分布计算消息集Γ中的消息发生故障的概率,计算满足单个消息可靠性目标RGi时需要的备份数目ni;

根据试验中给出的任务集及传输参数,计算任务集中消息满足其可靠性需要进行备份的个数,因此ni={0,0,0,0,1,1,1,0,1,1}。

步骤2:将任务集中的消息按照ni进行备份,并在同一数据帧中传输;

步骤3:消息准备进入PID控制器;

步骤4:准入控制器AC控制消息是否可以进入,并且调用容错等级控制器调节消息的容错等级;

步骤5:统计消息的截止时限错失率MissRatio(t),并计算消息的截止时限错失率与目标值之差ΔMissRatio(t);

在该仿真模型中没有考虑电缆的传输延迟,因为电缆传输延迟在各种数据帧传输的容错方法中都是相同的,它只跟各节点之间的电缆的长度有关。该仿真模型判定的标准是比较仿真网络的传输时间,该传输时间的计算使用公式如下:

Teth是传输EtherCAT头部和帧检查序列(Frame Check Sequence)的时间;Tetc是EtherCAT头部的传输时间;L是报文的数量;Tto是报文头部和工作计数的传输时间;Tct(i)是传输第i个报文必须的时间;M是从站的数量;Tsv是从站处理EtherCAT帧的时间;Tif表示帧间距。因此有备份的消息的传输时间为Tc*(1+Δni),然后统计所有样本中该值大于消息的周期T的个数,从而得到消息的截止时限错失率。

将消息的截止时限错失率目标值MissRatio(t)0设定为2%,计算消息的截止时限错失率与目标值之差ΔMissRatio(t)=MissRatio(t)-MissRatio(t)0

步骤6:;当ΔMissRatio(t)<ε时不断调整消息调度,根据相关参考文献,令ε取值为0.05;

将步骤5得到的误差值ΔMissRatio(t)输入PID控制器,控制器根据公式(13)计算出网络利用率改变量,PID控制器具体参数表2已给出。计算得到的网络利用率改变量利用博弈论的思想来分配,具体分配方法请参考基于合作博弈的网络利用率分配问题讲解。

下面通过实验来验证本发明提高系统可靠性的效果。为了使实验数据更加充分,增加了对比试验。对比试验有两种,一种是无备份的情况,另一种是被动备份的情况。被动备份是指在消息执行完成时,检查消息是否正确执行,否则继续执行消息的备份。下面来分别验证。

本发明中的故障预测算法实验分别在上文介绍的两种不同的网络拓扑中进行,并且在不同的网络拓扑中使用了三种不同的任务集,即任务集中任务的数量为N={5,10,20}。首先计算消息在节点执行失败的概率和可靠性,然后计算消息在链路传输失败的概率和可靠性,根据设定的单个消息的可靠性目标,对消息备份的个数进行计算。然后根据计算的备份进行消息传输,并得出消息的截止时限错失率Missrate(t)、网络利用率CPU(t)和系统的可靠性Rs,并且跟消息在无备份的情况做对比;其中Missrate(t)、CPU(t)和Rs分别代表无备份方法的消息截止时限错失率、网络利用率和系统可靠性;Missrate(t)*、CPU(t)*和Rs*分别代表本发明的故障预测方法的消息截止时限错失率、网络利用率和系统可靠性;对比结果如下所示:

表3故障预测算法实验_本发明的故障预测备份方法与无备份方法的实验数据对比

仅采用本发明的故障预测备份方法,系统的可靠性和网络利用率有了大幅度的提高,但是系统的截止时限错失率有所增加,因此本发明采用了控制反馈方法对截止时限错失率进行检测,并设计了一个闭环系统,可以对截止时限错失率进行控制。并且能够在保证截止时限错失率在合理范围内时,使系统的可靠性和网络利用率都处在较高水平。

本发明中的反馈控制算法实验分别在上文介绍的两种不同的网络拓扑中进行,并且在不同的网络拓扑中使用了三种不同的任务集,即任务集中任务的数量为N={5,10,20}。本实施例将基于控制反馈的容错方法与无备份方法和被动备份方法做对比。其中Missrate(t)、CPU(t)和Rs分别表示无备份情况下的截止时限错失率、网络利用率和系统可靠性;Missrate(t)’、CPU(t)'和Rs'分别表示被动备份情况下的截止时限错失率、网络利用率和系统可靠性;FC-Missrate(t)、FC-CPU(t)和FC-Rs分别表示采用了控制反馈方法时的截止时限错失率、网络利用率和系统可靠性。

表4反馈控制算法实验_本发明的反馈控制算法、无备份方法和被动备份方法的实验数据对比

在两种网络拓扑下,本发明具有较好的性能。无备份情况下,虽然系统截止时限错失率较低,但是可靠性和网络利用率较低,而被动备份情况下,虽然可靠性和网络利用率有一定的提高,但是无法控制系统的截止时限错失率,因此不适合系统负载发生变化的情况。而本发明可以在损失较少的网络利用率和可靠性的情况下将截止时限错失率维持在一个合理的范围,实现在保证截止时限错失率的情况下,整个系统拥有较高的可靠性,能够适应系统负载发生变化的情况,因此整个系统具有较高的可靠性和稳定性。

本发明中的博弈论分配利用率算法实验会根据截止时限错失率情况动态调节网络利用率,而调节网络利用率的具体做法是使用基于博弈论的分配方法。为了使单个消息满足可靠性要求的同时,系统整体的可靠性还可以处在较高水平,该部分实验选取了普通的平均分配网络利用率方法做对比。在本节试验中假设ΔCPU(t)>0,ΔCPU(t)的取值为{15%,20%,25%,30%}时,计算系统整体的可靠性,如下表所示:

表5博弈论分配利用率算法实验_本发明的博弈论方法、平均分配利用率方法和不采用任何网络利用率分配方法的实验数据对比

通过以上对比试验,不难发现,当同一任务集,并且ΔCPU(t)值相同的情况下,基于本发明的分配方法下的系统可靠性明显高于平均分配方法下的系统可靠性。

图3给出了不同消息集中消息采用无备份方法、被动备份方法及本发明在系统可靠性方面的实验结果。本发明提出的预测故障备份方法比无备份容错方法的系统可靠性提高了8%-13%;本发明中的基于控制反馈的容错算法的可靠性与采用被动备份的方法基本相当,略低1%;本发明中的博弈论方法分配网络利用率的实验与平均分配网络利用率方法相比:在利用率改变量相同的情况下,基于本发明中的博弈论的网络利用率分配方案比普通平均分配方案高出4%-10%。

通过上述两种网络拓扑下的实验数据,能够很清楚的看出本发明无论是在提高系统可靠性方面,还是在维持消息截止时限错失率方面,都具有很好的性能。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1