1.一种基于Petri网建模的柔性制造系统的加工时间计算方法,其特征在于,包括以下步骤:S1、利用赋时Petri网对柔性制造系统进行建模,每个操作只对应一类加工资源,只有当工件开始进行下一步操作才会释放上一步操作使用的资源;
S2、按照工序序列计算每步工序对应资源的开始加工时间,以及对应的工件的预估完成时间;
S3、比较所有工件的预估完成时间,取最大值即为该工序序列的加工时间;
所述S2具体包括以下步骤:
S2.1、初始化工件时间集合J,令集合J={J1,J2,...,Jn},其中Jk为第k个工件的预估完成时间,令所有Jk的值为0,代表所有工件还没有开始加工;
S2.2、初始化资源时间矩阵R,设置一个r行,c列的矩阵R,其中Rab代表第a类资源中的b个资源的加工时间,令矩阵R的所有元素为0,代表所有的资源都没有被占用;
S2.3、设置i=0,代表判断到第i步工序,设置集合JU={JU1,JU2,...,JUn},JUN={JUN1,JUN2,...,JUNn},其中n为工件个数,JUk代表工件k为第JUk类工件,JUNk代表工件k为第JUk类工件中的第JUNk个工件,令集合JU和JUN中的每个值为0;
S2.4、令i=i+1,判断i是否小于等于length,length为工序序列的长度,若i≤length,则进行步骤S2.5,否则进行步骤S3;
S2.5、设置user为当前工序用到的第几类资源,usenum为此类资源中加工时间最短的资源序号,设置timeuse为第user类资源中第usenum个资源的加工时间;
S2.6、比较当前工序加工工件的预估完成时间Jk和timeuse的大小,取其中较大的值设为stime;S2.7、判断timeuse是否小于第i个工序对应的工件k的预估完成时间Jk;若timeuse≤Jk,则进行步骤S2.8,否则进行步骤S2.9;
S2.8、找出user类资源中在满足加工时间小于Jk的条件下加工时间最大的资源,并将该加工时间最大的资源序号赋值给usenum,进行步骤S2.9;
S2.9、令Jk=stime+worktime,worktime为当前工序对应的加工时间;判断JUk是否等于
0,若等于0,进行步骤S2.10,否则令R[JUk,JUNk]=stime,进行步骤S2.10;
S2.10、判断第i步工序的是不是工件k的最后一个加工步骤,若是工件的最后一个加工步骤,进行步骤S2.11,若不是进行步骤S2.12;
S2.11、令R[user,usenum]=Jk,进行步骤S2.4;
S2.12、令R[user,usenum]=∞,令JUk=user,JUNk=usenum,进行步骤S2.4。
2.根据权利要求1所述的一种基于Petri网建模的柔性制造系统的加工时间计算方法,其特征在于,所述S1中的利用赋时Petri网对柔性制造系统进行建模的具体步骤为:利用3
Petri网子类SPN网对柔性制造系统进行建模:操作库所中的托肯数代表正在进行此操作的工件数,资源库所中的托肯数代表空闲的资源数,变迁代表着上一步操作的结束,以及下一步操作的开始,库所与变迁间的关系弧表示柔性制造系统中的规则,添加两类虚拟的操作库所Ps和Pf,Ps代表等待加工,Pf代表加工完成。
3.根据权利要求1所述的一种基于Petri网建模的柔性制造系统的加工时间计算方法,其特征在于,所述S3具体包括以下步骤:S3.1、设置makespan=0,代表所有工件的预估完成时间中的最大完成时间,设置k=0,代表判断到第k个工件;
S3.2、令k=k+1,如果k>n,则判断完成进行步骤S3.4;否则,进行步骤S3.3;
S3.3、判断第k个工件的预估完成时间Jk是否大于makespan;如果第k个工件的预估完成时间Jk>makespan,则令makespan=Jk,然后进行步骤S3.2,否则直接进行步骤S3.2;
S3.4、输出加工时间makespan。
4.根据权利要求1所述的一种基于Petri网建模的柔性制造系统的加工时间计算方法,其特征在于,所述S2.8具体包括以下步骤:S2.8.1、设置r=0;
S2.8.2、令r=r+1,若r小于等于user类资源的个数,进行步骤S2.8.3,否则进行步骤S2.9;S2.8.3、判断r是否满足R[user,r]>timeuse并且R[user,r]≤Jk;若不满足,则直接进行步骤S2.8.2,若满足,则令usenum=r,然后进行步骤S2.8.2。