西北工业大学太仓长三角研究院;西北工业大学罗建超获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网获悉西北工业大学太仓长三角研究院;西北工业大学申请的专利一种优化含有换刀操作的柔性装配系统总能耗的调度方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN116931512B 。
龙图腾网通过国家知识产权局官网在2026-02-13发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202310713819.1,技术领域涉及:G05B19/418;该发明授权一种优化含有换刀操作的柔性装配系统总能耗的调度方法是由罗建超设计研发完成,并于2023-06-15向国家知识产权局提交的专利申请。
本一种优化含有换刀操作的柔性装配系统总能耗的调度方法在说明书摘要公布了:本发明公开了一种优化含有换刀操作的柔性装配系统总能耗的调度方法,第一,基于系统的扩展达图,建立了两种节点的能量方程,一种考了资源空闲、保持、换刀操作的能耗,另一种考虑了资源空闲、加工、占用但没有加工、换刀操作的能耗,以计算能量的消耗。第二,建立了六个新的启发式函数,以更好指导启发式搜索。第三,建立了避免无效搜索策略,避免无效和重复搜索,提高搜索效率。第四,通过能量函数、启发式函数、避免无效搜索策略、与死锁避免策略结合在一起,并嵌入到搜索过程中,建立混合启发式搜索调度算法。本发明填补了含有装配过程的制造装配系统无死锁能量优化调度的空白。
本发明授权一种优化含有换刀操作的柔性装配系统总能耗的调度方法在权利要求书中公布了:1.一种优化含有换刀操作的柔性装配系统总能耗的调度方法,其特征在于,包括如下步骤: 步骤1:柔性装配系统建模; 步骤1.1:Petri网; Petri网是一种包括位置和变迁两种类型的顶点的有向二部图,其中位置用圆圈表示,变迁用矩形表示,位置和变迁之间通过有向弧连接,表示非负整数集,表示正整数集,表示正整数集合{1,2,…,k},其中k是一个任意的正整数;Petri网的具体定义如下: Petri网是一个3元组N=P,T,F,其中P是位置集,T是变迁集,为有向弧集,P和T是有限不相交的非空集,即在Petri网N=P,T,F中,给定一个顶点x∈P∪T,用·x={y∈P∪T|y,x∈F}和x·={y∈P∪T|x,y∈F}分别表示x的前置集和后置集,给定一个集合使·X=∪x∈X·x和X·=∪x∈Xx·; Petri网N=P,T,F的标识是一个从位置集到非负整数集的映射M:P→Z*,对于位置p∈P和标识M,Mp表示在标识M下位置p中token的数目,位置中的token数用正整数表示,具有初始标识M0的Petri网N称做标识Petri网,记为N,M0; 用向量表示标识,即M=Mp1,Mp2,…,Mp|P|T,用∑p∈PMpp表示标识M; 给定Petri网N=P,T,F,t∈T是N中的一个变迁,M是N中的一个标识,如果Mp0,则称变迁t在标识M下是使能的,记作M[t;在标识M下引发变迁t会使系统从标识M变迁到标识M′,记作M[tM′,其中,M′p=Mp‑1;M′p=Mp+1; 否则,M′p=Mp;给定控制器C,令M[t,C表示在标识M引发使能变迁t是被控制器C许可的,使能的对于变迁序列τ=t1t2…tk,ti∈T,i∈Zk,如果Mi[tiMi+1,其中M1=M,则称τ在M下是可行的; 一个调度α=t1t2…tk是一个变迁序列,其中k是α的长度;调度序列α是从M1可行的,如果其中Mi表示ti引发时系统的标识; 步骤1.2:FASs的装配PN调度模型APNS; APNS由m种资源组成,通过n种零件生产出l种产品;让表示第i种零件的集合,ρi表示第i种零件的数量;因此,零件的总数为x=ρ1+ρ2+…+ρn;使qj表示Q中的第j个零件,则Q表示为每种零件都只有一条加工路线,用Li表示Ji零件加工路线上的总操作次数,pij表示Ji零件的第j个操作发生的位置;对于令tij∈·pij,tij+1∈pij·;用pis和pie分别表示开始和结束位置,因此,Ji的路线用pisti1pi1ti2pi2...tiLi+1pie建模;由于|tij·|=1,因此路线被简化为ωi=ti1ti2...tiLi+1,因此,ωi的PN模型表示为: 其中Pi={pi1,...,piLi}.Ti={ti1,ti2,...,tiLi+1},Fi={pis,ti1,ti1,pi1,...,piLi,tiLi+1,tiLi+1,pie}; 用表示第i类资源,χi表示ri的容量,资源实例集合就是对于每个ri,分配一个资源位置,也表示为ri;用Rp表示位置p需要的资源类型,资源位置的集合用PR表示,与PR相关的弧集合用FR表示; 用为操作位置的集合,dp表示位置p∈Po的加工时间,Hr={p∈Po|Rp=r}表示需要r的操作位置集合,FAS的模型由PN标识如下: N,M0=Po∪Ps∪Pe∪PR,T,F,M0其中F=FQ∪FR,M0是初始标识,定义为当所有零件完成它们的操作后,N到达其最终标识,即Mf,其中对于t∈T,rt表示t的输入资源位置的集合,tr表示t的输出资源位置的集合,ot表示t的输入操作位置的集合,to表示t的输出操作位置的集合;对于标识M,如果对于所有的p∈ot,Mp0,则t在M上是操作使能的;如果存在p∈rt,使得Mp0,则t是资源使能的; 在APNS中使用死锁预防控制器避免死锁,表示为C;用ΞM,C表示在C监督下在M上使能的变迁的集合,仅当变迁t是操作使能的,资源使能的,并且经由C被允许引发时,t∈ΞM,C; 路线定义为加工路径的子序列,它从不同位置开始和结束;对于p∈{Po∪Ps},令ωp=pt1p1t2p2…twpw表示从p到pw∈Pe的路线,Tp={t1,t2,…,tw},Pp={p1,p2,…,pw};对于所有的p∈Po∪Ps,令为虚构的结束位置;如果对于所有的t∈T,|ot|=1,则对于所有的pi∈Pp,令如果存在则让tx为具有最小索引的此类变迁;如果py∈{Pp∩otx}不是otx中索引最小的操作位置,则对于所有的pz∈{p,p1,p2,…,py},否则,通过上述过程使用递归方式来计算定义扩展可达图ERG,ERG中的一个顶点包含一个标识M和一个变迁序列α,表示为M,α;ERG中所有顶点的集合为V,E表示从一个标识指向另一个标识的有向弧;因此,N,M0的ERG表示为用α0表示一个空的变迁序列,那么初始顶点可以表示为M0,α0;对于一系列变迁α,如果M0[αMf,Mf,α是一个最终的顶点; 步骤2:定义能量方程; 对于带标识的PNN,M0,对于可达顶点能量函数EM,α被应用于计算从M0,α0到M,α的总能量消耗;由于从M0引发α只能得到M,因此将EM,α表示为Eα; 为FASs建立了两个能量函数,即E1α和E2α;在E1中,资源的状态被分类为三种类型,即保持、空闲和换刀;当资源不在换刀时,如果资源中存在零件,它处于保持状态,如果不存在零件,则处于空闲状态;在E2中,E1中的保持状态被分为工作状态和占用状态;当资源处于保持状态时,如果它正在处理零件,则处于工作状态,如果其中的零件已经完成但还没有移开,则处于占用状态; 步骤2.1:换刀操作; 在rij∈R处理操作之前,如果上一次rij处理不同的操作,那么在rij上会进行换刀操作; 假设当第一个操作安排在rij上时,在rij上会进行换刀操作,假设不同的换刀操作具有相同的换刀时间μ和每单位时间能量消耗ec; 给定顶点和变迁让ψα成为α|α|的引发时间,其中|α|是α的长度;令ri∈rt,提出贪心资源分配策略,用于为引发t选择一个空闲类型i的资源以最小化能量消耗,资源分配策略如下: 让S1M,α,t表示ψα时空闲的类型i资源的集合,S1M,α,t不为空集,否则将不会分配ri;让O表示t·中的p的操作位置集合,令S2M,α,t={rij∈S1M,α,t|rij上次处理过O中的操作}; 如果|S2M,α,t|≥1,则选择S2M,α,t中j最小的rij;否则,选择S1M,α,t中j最小的rij; 步骤2.2:能量方程; α的能量消耗是通过将资源在所有状态下消耗的能量相加计算得出的,通过两个步骤获得;首先,迭代计算的引发时间,并记录在矩阵Tα中;接着,使用Tα计算资源在不同状态下花费的时间并转化为能量后相加;能量函数E1和E2的第一步相同,表示如下: 给定一个标识的PNN,M0,让α成为从M0开始的一个可行的变迁序列;Tα是一个矩阵,用于记录α中所有变迁的引发时间,其维度为x×y,其中x是零件的总数,让表示一个零件,sef表示qe的第f个变迁,φsef表示N中sef对应的变迁,让ψsef,α表示α中φsef的引发时间,那么Tα=ψsef,αx×y,其中ψsef,α是Tα中行为e,列为f的元素;如果则让ψsef,α=0;让α[k]表示α中的前k个元素的子序列,αk表示α中的第k个元素;由于αk对应于一个集合因此αk的引发时间也表示为ψαk;为填充Tα,计算并将ψαk放入Tα[e][f]中,即ψsef,α,其中sef∈△′; 计算ψαk的步骤如下:假设ψα1=0;给定tij∈T,让表示与tij对应的△中的变迁的集合;让Ψ=oαk;给定p∈Ψ,让Θα,k,p={sef|sef∈ξtij,tij∈·p};对于sef∈Θα,k,p,让Tcα,sef表示在α中的φsef引发后rφsef上的换刀时间;如果引发sef后没有发生换刀操作,则Tcα,sef=0;否则,Tcα,sef=μ;然后,ψαk=max{ψαk‑1,max{min{ψsef,α+doαk+Tcα,sef|sef∈Θα,k,p}|p∈Ψ}}; 以下述方式确定所有sef∈△′:对于p∈Ψ,让qe∈Q表示首先完成其在p中操作的零件; 如果有多个零件同时完成,则选择下标最小的一个作为qe;对于所选的qe,让αk成为qe的第f个变迁;在访问Ψ中的所有位置后,所有sef∈△′都已确定; 能量函数E1和E2的第二步计算分别如步骤2.2.1和2.2.2所示; 步骤2.2.1:能量函数E1; 在能量函数E1中,一个资源实例有三种状态,即保持、空闲和换刀;给定一个可行的变迁序列α,令EHα、EIα和ECα分别表示在τα时间内保持、空闲和换刀状态的能量消耗; 则E1α=EHα+EIα+ECα;对于让e0ri和e2ri分别表示ri在保持和空闲状态下的单位时间能量消耗; 是△的一个子集,其中仅包含对应于α的变迁;在引发sef∈△α之后,可能会发生换刀操作;对于零件令sef∈△α表示qe的第f个变迁,则εα,sef表示在qe的当前操作中,通过引发sef后至τα的经过的换刀时间;如果在引发sef后没有发生换刀操作,则εα,sef=0;否则,εα,sef=min{μ,τα‑ψsef,α}; 资源处于等待状态的时间通过Tα中同一行的两个相邻元素的差值来计算;令HTα,sef表示在qe当前操作中,在时间为τα时引发sef时经过的等待时间;如果sef+1∈△α,则HTα,sef=ψsef+1,α–ψsef,α–εα,sef;否则,HTα,sef=τα–ψsef,α–εα,sef; 令HTα,p表示所有零件在τα时在p∈Po中所花费的等待时间,然后,EHα可以通过计算; 让TTα,p表示所有零件在时刻τα内花费在工序p∈Po的总时间,即对于让ITα,ri表示所有ri的资源实例在时刻τα内处于空闲状态的总时间,然后,通过计算出EIα; 让ECα,sef=ecεα,sef表示在εα,sef期间消耗的换刀能量;那么到时刻τα为止,换刀操作消耗的总能量为然后,步骤2.2.2:能量函数E2;在能量函数E2中,一个资源实例有四种状态,即工作、占用、空闲和换刀;对于让e0ri和e1ri分别表示ri在工作状态和占用状态下的单位时间能量消耗;对于一个可行的变迁序列α,让EWα和EOα分别表示在工作状态和占用状态下的总能量消耗;EIα和ECα与E1中的定义相同;因此,在E2下α的总能量消耗为E2α=EWα+EOα+EIα+ECα; 对于一个工件qe∈Q和一个状态sef∈△α,假设p∈Po是qe的路径上的一个位置,且·p=φsef;让WTα,p,qe表示在时间τα时Rp用于加工qe的实际工作时间,即WTα,p,qe=min{dp,max{0,τα‑ψsef,α‑εα,sef}}; EWα由所有操作位置的工作能量消耗相加来得到;让WTα,p表示所有资源实例在p上花费的总加工时间,即则,资源花费在占用状态的时间是通过将工作时间从保持时间中减去得到,即EIα和ECα与E1中的相同;故,步骤3:构建混合启发式搜索算法及其启发式函数; 调度是在APNS的ERG中从M0,α0到结束节点Mf,αf的路径,将图搜索算法A*应用于调度问题;A*执行迭代过程,从M0,α0到Mf,αf构建路径;在每个迭代中,A*通过启发式函数选择候选列表中的顶点进行探索,并从中创建新的顶点;A*的启发式函数是fM,α=gM,α+hM,α,其中gM,α是从M0,α0到M,α的成本,hM,α是从M,α到最终节点Mf,αf的估算成本;提出六个启发式函数来评估顶点M,α的前景,表示为fiM,α=gM,α+hiM,α,其中i属于gM,α是从M0,α0到M,α的能源消耗,即在E1下,gM,α=E1M,α,在E2下,gM,α=E2M,α;hiM,α是从M,α到最终节点Mf,αf的估算能源消耗;h1M,α包括完成当前操作和未开始的操作所需的资源的最小可能能量;h2M,α,h3M,α和h4M,α基于h1M,α;与h1M,α不同,h2M,α考虑空闲状态所需的能量;与h1M,α不同,h3M,α和h4M,α都估算占用状态所需的能量;h5M,α和h6M,α分别将h2M,α与h3M,α和h4M,α相结合;具体来说,h1M,α‑h6M,α定义如下; 步骤3.1:h1M,α; h1M,α包括两种能量消耗;第一种是完成那些在时刻τα之前就已经开始的操作所需的能量;第二种是完成那些还未开始的操作所需的能量; 设p属于Po,j属于令ζp,j表示p中第j个零件或者令牌,并且假设ζp,j=qe;令sef是qe路线上的第f个变迁,且φsef=·p;设RTζp,j,M,α表示在τα时刻结束ζp,j的当前操作所需的剩余时间,则RTζp,j,M,α=max{0,ψsef,α+Tcα,sef+dp‑τα}; 设REζp,j,M,α表示ζp,j在τα时刻结束其当前操作所需的能量;令r=Rp;如果Tcα,sef=0,则REζp,j,M,α=RTζp,j,M,αe0r;如果Tcα,sef≠0且RTζp,j,M,α≤dp,则REζp,j,M,α=RTζp,j,M,αe0r;否则,REζp,j,M,α=dpe0r+RTζp,j,M,α‑dpec; 对于p属于{Po∪Ps},令假设存在一条从p到p的路径pt1p1t2p2…twpw=p,其中pj属于设PTp,p表示完成从p到p的操作所需的可能的最短时间,即PTp,p=∑j=1,…wdpj;从p到p的最小可能消耗的能量表示为PEp,p=∑j=1,…wdpje0Rpj;如果p属于Pe,则PEp,p简化为PEp;定义: h1M,α是指在假设A1资源充足,A2零件不必等待资源,A3不会发生换刀操作,和A4装配操作不会导致零件互相等待的条件下,从M,α到最终顶点Mf,αf的能量消耗; h1M,α适用于E1和E2;在E1下,h1M,α是在假设A1‑A4下,从M,α到最终顶点Mf,αf的所有资源实例在保持状态下的总能量消耗;在E2下,h1M,α是在假设A1‑A4下,从M,α到最终顶点Mf,αf的所有资源实例在加工状态的总能量消耗; 步骤3.2:h2M,α; 除了h1M,α中的能量消耗,h2M,α还考虑了ri∈R处于空闲状态的能量消耗;对于p∈Po∪Ps,设Vp为位置p的集合,满足对于任意p∈Vp,存在从p到p路径pt1p1t2p2...piti+1p;定义OTp,M,α为从τα到p中存在完成操作的零件之前,所需的最小时间;如果则否则,OTp,M,α=+∞; 对于t∈T,OTt,M,α是从τα开始到t操作使能需要的最小时间,OTt,M,α=max{OTp,M,α|p∈ot};对于ri∈R,OTri,M,α从τα到存在一个操作使能的变迁t∈ri·之间的最小时间间隔,OTri,M,α=min{OTt,M,α|t∈ri·}; 对于所有ri∈R,RTri,M,α表示从τα到存在空闲的实例之间的时间间隔;如果Mri0,则RTri,M,α=0;否则,让ZM,ri表示在M占据ri的零件集合,令lζp,j表示ζp,j∈ZM,ri离开p的最早时间;则RTri,M,α=min{lζp,j‑τα|ζp,j∈ZM,ri}; 给定顶点和资源实例在t∈ri·中存在操作使能的变迁之前,rij将处于空闲状态;定义Gri,M,α为rij从τα到处理下一个操作之前的空闲状态中消耗的最小能量;那么,Gri,M,α=e2rimax{OTri,M,α,RTri,M,α}–RTri,M,α;δri,M,α是一个二值函数;如果对于所有的p∈ori·,都有Mp0,则δri,M,α=1;否则,δri,M,α=0;定义: 步骤3.3:h3M,α和h4M,α; 为了在E1和E2下使用h3M,α和h4M,α,在E1下让eλ等于e0,在E2下让eλ等于e1; 设Π={t∈T||ot|0且|rt|0};对于所有的t∈Π,如果p∈ot的某个零件完成其操作,它将占用Rp的一个资源实例,直到rt的一个资源实例可用;对于所有的t∈Π,从M,α到最终顶点Mf,αf占用的所有Rot的占用能量可以估计为如果t是一个装配变迁,即|ot|1,则在OTt,M,α之前,ot中的零件可能会互相等待,从而导致额外的占用能量,其定义如下;对于p∈ot,令Ip=Vp∪{p};如果存在p∈Ip使得Mp0,则在to中至少会发生一个装配操作;ot中的零件必须相互等待,直到上面都有一个完成的零件;从M,α到最终顶点,t所引起的这种占用能量消耗可以通过来计算; 设Jt,M,α表示从M,α到最终顶点因为t所引起的占用能量的估计;如果|ot|=1,则Jt,M,α=EO1t,M,α;否则,Jt,M,α=EO1t,M,α+EO2t,M,α; 对于所有的κt,M,α=0或1是一个二值函数;如果对于所有的p∈ot,都有Mp0,则κt,M,α=1;否则,κt,M,α=0;定义: h3M,α=h1M,α+∑t∈Πκt,M,αJt,M,α提出了h4;在h4中,只要存在p∈ot和p∈Ip使得Mp0,就会考虑Jt,M,α; 对于任意的t属于Π,θt,M,α只能取值为0或1;若|ot|=1,则θt,M,α=κt,M,α; 若|ot|1,则对于所有的p属于ot,若存在p属于ot,并且存在p属于Ip使得Mp0成立,则θt,M,α=1,否则θt,M,α=0;定义: h4M,α=h1M,α+∑t∈Πθt,M,αJt,M,α步骤3.4:h5M,α和h6M,α; 定义h5M,α=h2M,α+∑t∈Πκt,M,αJt,M,αh6M,α=h2M,α+∑t∈Πθt,M,αJt,M,α因此,h5M,α是h2M,α和h3M,α的组合,而h6M,α是h2M,α和h4M,α的组合; 步骤3.5:动态窗口和两个选择函数; 构建一种基于A*算法的动态窗口搜索DWS算法,并提出和使用两个用于避免无效搜索的选择函数; 步骤3.5.1:动态窗口及其参数; 一个顶点M,α的深度被表示为|α|;用BESTα表示当前深度|α|下所有顶点的最小f值;该窗口的大小由四个参数决定,分别为high、max_vertexes、max_size和max_top;它们之间的距离固定为high=top_depth–bottom_depth,其中top_depth和bottom_depth分别为当前搜索窗口中顶点的最大和最小深度;max_vertexes表示每个顶点所拥有的子顶点的最大数量;max_size是可以在设定深度探索的最大顶点数;max_top是顶部深度上可以停留的最大顶点数;在深度i处探索和未探索的顶点数量分别被表示为和步骤3.5.2:选择函数; 设K表示柔性装配系统每单位时间的估计能源消耗;在E1下,在E2下,对于所有的t属于T且M[t,假设M[tM1,且αt=α1;定义为系统从τα到t最早可能的引发时间所需的能源消耗,因此对于E1,对于E2,由此定义,设M[tM1且αt=α1,则定义对于所有的t属于ΞM,C,定义为所有的平均值,即对于对于所有不同α的可能M,α,使用选择函数BM,α选择有前途的顶点,定义步骤3.5.3:APNS的无死锁动态窗搜索算法; 基于A*算法提出一种针对APNS的无死锁DWS方法D2WS: 输入:APNSN,M0,high,max_vertexes,max_size和max_top; 输出:一个可行的变迁序列a; 初始化:OPEN={M0,α0};top_depth=high;bottom_depth=0; 步骤3.5.3.1:当OPEN不等于时,进入步骤3.5.3.1.1到步骤3.5.3.1.6的循环,具体步骤如下: 步骤3.5.3.1.1:若等于0,则top_depth加1;bottom_depth加1,否则跳转到步骤3.5.3.1.2; 步骤3.5.3.1.2:从OPEN中选择一个顶点M,a,其fM,a值为最小,且|a|top_depth; 步骤3.5.3.1.3:OPEN=OPEN\{M,a};CLOSED=CLOSED∪{M,a}; 步骤3.5.3.1.4:将ΞM,C中的元素按照At,M,a的升序排列; 步骤3.5.3.1.5:va=0; 步骤3.5.3.1.6:当ΞM,C不等于时,进入步骤3.5.3.1.6.1到步骤3.5.3.1.6.6的循环,具体步骤如下: 步骤3.5.3.1.6.1:令t属于ΞM,C并为ΞM,C中第一个变迁; 步骤3.5.3.1.6.2:ΞM,C=ΞM,C\{t}; 步骤3.5.3.1.6.3:令M[tM1,且a1=at; 步骤3.5.3.1.6.4:若M1=Mf,则返回a1; 步骤3.5.3.1.6.5:若在OPEN中存在一点aM1,a2,并满足BM1,a1≤BM1,a2,那么OPEN=OPEN\{M1,a2}∪{M1,a1},否则执行步骤3.5.3.1.6.6; 步骤3.5.3.1.6.6:若在OPEN和CLOSED中不存在一个标识为M1的节点,或在CLOSED中存在一个节点M1,a2满足BM1,a1小于BM1,a2,则跳转至步骤3.5.3.1.6; 步骤3.5.3.1.6.6.1:若或fM1,a1BESTa1,则OPEN=OPEN∪{M1,a1},va++,否则执行步骤3.5.3.1.6.6.2; 步骤3.5.3.1.6.6.2:若大于等于max_top,则放弃在深度为bottom_depth处的顶点,top_depth++,bottom_depth++,否则执行步骤3.5.3.1.6.6.3; 步骤3.5.3.1.6.6.3:若va大于等于max_vertexes,则跳转至步骤3.5.3.1。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人西北工业大学太仓长三角研究院;西北工业大学,其通讯地址为:215400 江苏省苏州市太仓市科教新城子冈路27号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
以上内容由龙图腾AI智能生成。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

皖公网安备 34010402703815号
请提出您的宝贵建议,有机会获取IP积分或其他奖励