面向FMS生产调度和控制的零件动态工艺模型研究*
注意:本文已经在《中国机械工程》(1998,9(9):36~38)杂志发表 使用者请注明文章内容出处
赵天奇 邓建春 童国帆 李培根 段正澄
摘要:提出一种基于FMS生产调度与控制的零件动态工艺模型。该模型由零件加工工序和各个工序之间的约束关系描述两部分组成,去掉了传统人为的加工顺序约束,易于与生产调度控制系统集成,能充分发挥FMS生产调度柔性的特点,为FMS优化生产调度的实现提供一条较好的途径。 关键词 FMS 生产调度 CAPP 动态工艺模型 中国图书资料分类法分类号 TH165
笔者根据FMS生产调度的特点,在现有零件模型的基础上提出零件的动态工艺模型。
1 零件工艺模型的常用表达方法 通常的CAPP系统只能设计出静态的或只具有部分柔性的理想化的工艺规程。 1.1 固定加工顺序的工艺文件方式 通常生产调度中使用的零件工艺文件格式为 零件名; 零件号; 工序1,机床名 加工时间; 工序2,机床名 加工时间; …… 工序n,机床名 加工时间; END 该方法的优点是表达方式简单明了,缺点是限制了加工的自由度及柔性,使得加工只能严格按给定的工艺顺序进行,从而限制了柔性加工系统最优指标的实现。该方法对单机加工或JOB—SHOP生产较合适。 1.2 多工艺方案与/或图的表示方法[1,2] 图1为一个实例零件的与/或图。用与/或图
 图1 实例零件的加工顺序与/或图
可以表示出零件加工顺序的部分约束关系。通过对该图按一定的启发式搜索算法进行搜索可得到多个可行的加工工艺路线。 该方法在一定程度上增加了CAPP的柔性,并考虑到了静态生产环境,但是没有考虑实际的动态生产情况,因而还很难在FMS生产系统中应用。 1.3 有向图表示方法 有向图可以表示零件的加工工艺顺序。图2为一实例。通过对有向图的遍历可得到多个工艺方案。
 图2 实例零件工序结构的有向图表示
该方法直观地表达了零件加工工序及工序之间的约束关系,可用图论的方法进行描述与变换,但对FMS可替代加工工序无法表达,须对多个加工工艺方案进行复杂的评价才有可能得到可行的加工方案。
2 基于FMS的零件动态工艺模型 为了适应FMS生产柔性的特点,零件工艺描述必须既能反映零件的所有加工特征,又能反映出加工工序之间的约束关系,同时还能表示出加工工序的可替代性。所谓可替代加工工序是指某一工序可以由不同的机床加工完成,一旦确定好加工机床,则可完成该工序加工的其它候补工序即取消。 为了增加零件工艺表达的灵活性,减少人为的对工艺加工顺序的约束,笔者以现有零件工艺模型为基础,提出了一种更灵活的表示方法。 零件动态工艺模型仍用有向图表示(见图3),图中节点表示零件的一个加工工序或一系列的可替代加工工序,该工序与加工机床及对应的加工参数相联系(如加工时间、刀具号、NC文件名等);有向弧表示零件工序的加工顺序约束关系。任何从头节点(Head)到尾节点(End)的遍历路径都是一个有效的加工工艺路线。
 图3 实例零件的动态工艺模型
假设该有向图有n条遍历路线(工艺方案),第i道工序有ki种加工方案(即有ki-1个可替代加工工序),共有m个节点(不计Head和End节点),则零件可能有的加工方案数为 。 常用的CAPP系统产生的工艺方案较大地限制了零件工艺表达的柔性。较好的情况是仅考虑了部分生产调度的静态因素,而且一定要产生完整的和确定的加工工艺路线(一般要通过对多工艺方案进行评价后得到),这使得CAPP系统过于复杂。这里提出的零件动态工艺模型却是仅提供零件的工序、可替代工序及工序加工顺序之间的约束关系,至于实际生产中具体选择什么样的加工顺序、每道工序中选择哪一个可替代工序则完全由实际生产中的资源状态、零件本身的加工情况以及用户的具体要求进行选择,零件的具体加工工艺路线不需要事先确定,直到零件加工好后才知道,并且相同类型的零件可能有不同的工艺路线,零件的具体加工工艺是在实际加工中根据系统的状态及加工性能指标动态重组而成。 这样的零件描述相对传统的Job-Shop生产而言似乎是不完备的,但却为现代化的柔性生产提供了更大的调度空间。该方法不仅大大减少了CAPP的工作量及难度,显著提高了实际生产调度控制中的灵活性,而且不会提高调度控制的难度,从而为FMS生产性能(如系统生产率、总加工时间、机床负荷平衡率等)的提高创造了条件。
3 零件动态工艺模型的计算机表示方法及数据结构 3.1 零件工艺参数描述 该部分描述了零件的所有工序参数,以文件形式表示,其结构为 零件名; 零件号; 工序1,工序11 工序12 … 工序1k1; 工序2,工序21 工序22 … 工序2k2; …… 工序n,工序n1 工序n2 … 工序nkn; END 工序i表示第i道工序的信息节点;工序ij表示工序i的所有可完成该工序加工的工序节点序列。上述文件表示零件共有n道加工工序,其中工序1有k1种实现方法,工序2有k2种实现方法,……工序n有kn种实现方法。 工序信息节点及可替代工序节点的数据结构(C++语言表示)为 class ProcedureInfo ∥工序信息节点类 { public: ProcedureInfo(): ∥构造函数 ProcedureInfo(int,float,ProcedureInfo* AlternativeProcedureInfo=NULL); ~ProcedureInfo(); ∥析构函数 int Machine_No; ∥机床号 float Machining_Time; ∥加工时间 ProcedureInfo* Alternative ProcedureInfo; ∥替代工序的加工信息 }; class Procedure ∥工序节点类 { public: Procedure(); ∥构造函数 Procedure(int); ∥构造函数 ~Procedure(); ∥析构函数 int Procedure_No; ∥工序号 ProcedureInfo*ThisProcedureInfo; ∥当前工序 Procedure* NextProcedure; ∥下一道工序 }; 3.2 工艺约束关系描述 零件工艺约束关系主要描述各加工工序之间的加工顺序。因工序是有向图中的节点,工序之间的约束关系即为节点之间的关系,可用图论方法进行描述。 3.2.1 用邻接矩阵方法 以图3为例来说明。 邻接矩阵 

因实际零件邻接矩阵多为稀疏矩阵,也可用十字链表结构表示。 3.2.2 用邻接表方法 仍以图3为例说明。其邻接表(见图4)为
 图4 实例零件的邻接表形式
邻接表中每个方框表示零件的一道工序(即工序节点),方框内的数字表示工序号。工序节点按工序号顺序排放(第一列),并用箭头指向其相邻的工序节点。相邻的工序节点中节点号为正表示该节点为后续工序节点,为负表示该节点为前继工序节点。邻接表中工序节点的结构与类Procedure相似。
4 基于零件动态工艺模型的调度控制方法的实现算法与特点 4.1 实现算法 基于零件动态工艺模型的调度控制算法是在零件动态工艺模型的基础上结合启发式动态调度算法实现的,其过程为 Step 1:搜索零件邻接表,把无前继节点的工序节点加入可调度工序集合中。 Step 2:在可调度工序集合中动态选择一工序。 Step 3:搜索出该工序节点的后续节点。 a.删除这些后续工序节点中对应所 [1] [2] 下一页
“面向FMS生产调度和控制的零件动态工艺模型研究提供各类毕业论文!”版权归作者所有,转载请著名出处。 |