基于VDEVS的离散制造车间虚拟实体行为模型描述方法
2021-11-10刘怀兰閤辰皓赵文杰
刘怀兰,岳 鹏,閤辰皓,赵文杰
(1.华中科技大学,机械工程学院,湖北 武汉 430074;2.武汉高德信息产业有限公司,湖北 武汉 430070)
0 引言
信息物理系统是一个综合计算、通信、网络、控制和物理环境的多维复杂系统,基于信息物理系统的制造是智能制造的核心与关键技术,也是难点与瓶颈。数字孪生(Digital Twin, DT)是集成多物理、多尺度、概率模拟的系统,通过使用数字模型、传感器信息和输入数据,能够对其物理孪生兄弟的活动以及性能进行仿真和预测[1],其为构建信息物理系统过程中信息空间以及物理空间如何交互融合这一核心瓶颈问题的解决提出了一种方法。离散制造活动的执行依托于离散制造车间,因此离散制造车间数字孪生系统的构建为基于信息物理系统的制造这一难点技术的实现提供了有效的解决手段。
数字孪生的概念最早于2003年由Grieves教授在他的产品全生命周期管理课程上提出,他认为数字孪生可以定义为一个三维模型:物理实体、虚拟实体、二者间的连接[2]。经过多年发展,当前数字孪生可通过一个五维模型来表述:物理实体、虚拟实体、服务、孪生数据、各部分之间的连接[3]。无论如何对数字孪生进行定义,虚拟实体都是数字孪生中不可缺少的一部分,用以描述物理实体在信息空间中的映射。虚拟车间即数字孪生车间的虚拟实体,数字孪生车间的构建同样也离不开其虚拟实体的准确描述,虚拟车间本质上是要素、行为、规则3个模型的集合,其行为模型描述了虚拟车间在外部环境与内部运行机制作用下的实时响应[4]。对于数字孪生车间虚拟实体及其行为模型的构建,诸多学者已经开展了一定的研究。柳林燕等[5]提出了车间生产过程数字孪生系统体系架构,将虚拟车间定义为车间生产过程数字孪生模型、设备数字孪生模型、产品数字孪生模型、人员数字孪生模型、环境孪生模型的组合,并从概念上将行为模型定义为功能模型的一种;赵浩然等[6]从车间几何信息,生产系统模型对虚拟车间进行了描述,并利用了扩展随机高级Petri网对其行为进行了建模;郭东升等[7]从产品、资源、工艺3个方面对数字孪生车间进行了模型定义;WU等[8]基于Unity3D建立了虚拟车间,并通过Web-Service以及OPC-UA和物理车间进行数据通信,实现了虚拟车间与物理车间的同步运行;ZHANG等[9]建立了虚拟与同步集成的数字孪生系统,并将其应用在了中空玻璃生产线上。
综上所述,当前对于数字孪生车间虚拟实体的构建仍处于探索阶段,导致其行为模型构建缺乏统一的模型描述方法,各自独立发展的模型缺乏可扩展性和建模效率。为此,本文首先基于数字孪生五维模型提出了数字孪生车间虚拟实体分层模型,并对离散事件系统规范(Discrete Event System Specification, DEVS)进行扩展提出基于值的离散事件系统规范(Value-based Discrete Event System Specification, VDEVS)以描述数字孪生车间虚拟实体的行为模型,最后给出了典型加工单元的数字孪生虚拟实体行为模型实例。
1 数字孪生虚拟实体分层模型
1.1 分层模型定义
陶飞等[3]提出的数字孪生模型可以表示为一个五元组:
MDT=(PE,VE,SS,DD,CN)。
(1)
其中:PE表示物理实体,该物理实体按照功能及结构一般分为单元级PE,系统级PE和复杂系统级PE;VE表示虚拟实体,其可以从几何模型(Gv)、物理模型(Pv)、行为模型(Bv)和规则模型(Rv)4个角度描述,
VE=(Gv,Pv,Bv,Rv);
(2)
SS表示服务;DD表示孪生数据;CN表示组成各部分之间的连接。数字孪生结构如图1所示。
数字孪生五维模型的提出推动了数字孪生技术在相关领域和行业的应用。其中虚拟实体模型是数字孪生五维模型的关键,但该模型仅从顶层简单地将虚拟实体分为了几何模型、物理模型、行为模型、和规则模型,并未对其进行层次化的描述,这就导致了:①虚拟实体无法与划分为单元级、系统级、复杂系统级的物理实体一一映射;②在对虚拟实体进行建模时,效率低下,不易扩展且难以维护。数字孪生虚拟实体分层模型实际上对虚拟实体在单元级、系统级、复杂系统级3个层级上进行了封装,从而提高了虚拟实体模型的复用性并以此提高建模效率,其低耦合的特点使得虚拟实体模型更加灵活且易于扩展以及维护。因此,本文首先从单元级、系统级、复杂系统级3个层级对车间虚拟实体进行定义。其中:VU表示单元级虚拟实体,VS表示系统级虚拟实体,VC表示复杂系统级虚拟实体,定义如下:
(1)单元级虚拟实体定义
单元级虚拟实体定义为一个四元组:
VU=(Gv,Pv,UnitBv,UnitRv)。
(3)
式中:Gv为描述单元级别虚拟实体几何参数(形状、尺寸、位置等)与关系(装配关系)参数的集合;Pv为描述物理属性、约束及特征等属性的集合;UnitBv为单元级的虚拟实体行为模型;UnitRv为单元级虚拟实体的规则模型。
(2)系统级虚拟实体定义
系统级虚拟实体定义为一个三元组:
VS=(R,{VUr|r∈R},SystemBv,SystemRv)。
(4)
式中:R表示子虚拟实体名称集合,{VUr|r∈R}为该系统级虚拟实体包含的单元级虚拟实体;SystemBv为系统级的虚拟实体行为模型;SystemRv为系统级虚拟实体的规则模型。
(3)复杂系统级虚拟实体定义
复杂系统级虚拟实体定义为一个三元组:
VC=(R,{VSr|r∈R},CSystemBv,
CSystemRv)。
(5)
式中:R为子虚拟实体名称集合;{VSr|r∈R}为该系统级虚拟实体包含的单元级虚拟实体;CSystemBv为复杂系统级的虚拟实体行为模型;CSystemRv为复杂系统级虚拟实体的规则模型。
1.2 离散制造车间虚拟实体分层模型的行为模型
本文主要对离散制造车间进行研究,为了精确描述离散制造车间虚拟实体的行为,同样需要在单元级、系统级、复杂系统级3个层次对其虚拟实体的行为模型进行层次化的定义,其结构如图2所示。其中,上层虚拟实体由下层虚拟实体组成,其行为主要由与其层级对应的行为模型进行描述,该行为模型由下一层的行为模型通过外部输入耦合、内部耦合、外部输出耦合3种耦合关系组成,底层行为模型由基本功能模型之间的耦合组成。功能模型描述了车间生产过程中关键生产要素对物料流、能量流、信息流的基本操作以及转换,基本功能模型的识别、分类、定义以及不同功能模型之间的耦合机制能够对单元级虚拟车间的行为模型进行描述,进而能够对系统级、复杂系统级虚拟车间的行为模型进行描述,这一过程的关键在于底层功能的划分以及行为模型的描述方法。
1.2.1 离散制造车间虚拟实体行为模型底层功能划分
离散制造车间属于离散事件系统,因此对于其数字孪生虚拟实体行为模型可借助离散事件系统进行描述。
离散事件系统中,事件的发生间隔以及活动的持续时间呈现一定的随机性,因此其模型构建的关键步骤是针对所研究的问题进行抽样,并进行合理的分析,从已知的统计分布中进行选择,估算其分布参数从而确定活动持续时长或者是事件发生间隔时间,进而对整个仿真模型进行描述。数字孪生虚拟实体与物理实体的建立并不存在先后关系,虚拟实体也可能先于物理实体构建,因此在对其行为模型构建时,无法进行所对应物理实体数据的统计、抽样分析,也就存在利用离散事件系统建模时,行为模型构建不准确的问题。为此,本文首先对离散事件系统中实体活动持续时间的方法进行扩展,增加了通过基于虚拟实体关键属性的函数以及基于物理实体同步运行的扩展方法,如图3所示。
传统离散事件系统中活动的持续时间主要通过基于确定值与基于统计方法进行确定。基于确定值即明确的给出能够度量某个活动持续时间的正数,而基于统计方法则要依据特定的统计分布进行抽样,并将其作为活动的持续时间,如以均匀分布在[1,1.2]中随机的获取时间变量。在对数字孪生虚拟实体行为模型进行描述时,各个虚拟实体的活动持续时间除了基于传统方法确定之外,还可通过对虚拟实体关键属性的操作以及基于物理实体的同步运行两种方法进行确定。基于对虚拟实体关键属性的操作即对真实物理实体运行情况的模拟,可表现为以虚拟实体几何模型(Gv)、物理模型(Pv)属性为参数的计算函数,例如:为了分析自动导引运输车(Automated Guided Vehicle, AGV)沿某一段路径运动的时长,可以利用其速度、加速度、位姿、路径来构建模拟运行函数,从而对其真实运行情况进行模拟;而对于基于物理实体的同步运行来说,其能够准确地复现物理实体的行为,例如:在对加工单元进行虚拟实体构建时,虚拟机器人运动路径的运动学反解可交由实验物理机器人进行运算,并实时地将其速度、加速度、关节角度信息反馈至虚拟机器人并控制其动作,从而可以实现基于实验物理机器人来精确描述虚拟实体活动,进而对该活动时间进行确定。在利用扩展后的离散事件系统建模方法构建虚拟实体的行为模型时,某一活动的持续时间一方面可以通过对物理实体运行时的情况利用相关数学函数进行模拟,另一方面可以适当地构建实验物理实体,通过对该物理实体的同步运行来确定该活动的持续时间。
因此,车间行为模型底层功能需要从时间变量的生成、对虚拟实体关键属性的操作以及基于物理实体的同步运行3个维度来进行划分,从而借助离散事件系统建模方法对车间生产要素的行为提供统一、快速的描述。
时间变量生成这一底层功能主要通过随机数生成技术产生随机数,然后基于生成的随机数通过逆变换法、舍选法、特征法等方法生成符合特定分布的随机变量。
基于Gv与Pv的关键属性的计算函数模拟了物理实体真实的运行情况,更准确地说是对机电产品运行情况的模拟,将其封装为功能组件并通过事件进行驱动,能够实现物理实体运行情况的准确模拟。机电产品包括执行机构子系统、传感检测子系统、信息处理及控制子系统,其中执行机构子系统又由驱动原件和执行机构组成,驱动原件负责驱动执行机构的运动,执行机构子系统本质上改变了物理实体的装配属性以及位姿属性。因此,虚拟实体对于物理实体真实运行情况的功能组件首先要从Gv装配关系以及位姿属性的修改进行设计。对于装配关系功能来说,主要就是将某一实体安装到父实体,或者将父实体的子实体进行拆除,因此可以对这两个功能进行封装,得到“安装实体”和“拆除实体”功能组件。对于其位姿的修改来说,本文主要对制造系统常见主动实体的运动进行归纳分析,文献[5]将车间的主动实体分为机器人、数控机床、专用加工设备、人员、自动导引运输车(AGV)、传送带、立体仓库以及产品/零部件等,本文对这些主动实体主要运动形式进行了归纳与整理,如表1所示。
表1 离散制造车间主要主动实体运动形式
由表1可知,车间主动实体的主要运动形式是沿直线移动、绕某一轴的旋转运动、沿某一不规则路径的移动,因此本文依据这3种运动形式对物理实体的运动进行模拟并将传感检测子系统封装为功能组件:“单项路径”、“双向路径”、“实体旋转”、“实体移动”等。整个车间中的物料生成以及对物料的暂存将其封装为物料生成以及物料容纳功能组件。物理实体设备的传感检测子系统同样也需要虚拟实体的模拟,将传感检测子系统封装为传感器功能组件,用于检测虚拟实体的相关信息。控制系统子组件能够依据传感系统子组件反馈的信息对执行系统进行控制,对于机器人和数控设备,其主要控制功能即解析程序并生成笛卡尔坐标,同时通过运动学的反解将笛卡尔坐标转换为各轴的轴坐标,因此将其程序解析功能封装为机器人控制器和数控设备控制器功能组件,将运动学的正逆解封装为功能组件;对于AGV,主要根据设置的路径进行移动,因此将沿路径移动封装为功能组件。这些功能组件之间需要利用事件进行同步,不同事件之间需要通过布尔运算来进行运算,因此将事件之间的布尔运算封装为功能组件。
基于物理实体的同步运行能够使得虚拟实体基于实验物理设备运行时进行实时的响应,从而更加精确地描述其活动,因此其需要能够与物理设备进行通讯。对于机器人来说,可以将虚拟实体运行路径发送至物理机器人,物理机器人反解后实时将轴数据同步至机器人虚拟实体,将其同步行为封装为程序容器功能组件;对于数控设备来说,可以实时同步物理实体执行加工程序时各轴的轴坐标,将其封装为数控程序容器功能组件;对于其他机电设备来说,需要通过发送数据和采集数据,精准地描述该机电设备虚拟实体活动的持续时间,将其封装为通讯服务功能块。行为模型基本功能划分如表2所示。
表2 行为模型基本功能划分
续表2
1.2.2 虚拟车间行为描述方法
离散制造车间属于离散事件系统,其虚拟实体的行为模型描述需要借助离散事件系统层次化描述方法。DEVS由Zeigler教授于1976年提出,其利用了形式化的方法对系统模型进行规范,该规范从面向对象的(Objcet-Oriented)角度出发依据系统理论描述了离散事件系统。该规范建立了系统完备的模型框架,保证了模型的规范性、重用性、仿真互操作,并为离散事件系统建模提供了层次化、模块化的机制[10],因此,本文借由该方法对数字孪生车间虚拟实体行为模型进行描述。DEVS包括原子模型和耦合模型,其定义分别如下[11]:
(1)原子模型(Atomic DEVS model)
原子模型定义为一个七元组:
A=(X,Y,S,s0,tα(s),δx,δy)。
(6)
式中:X为输入事件集合;Y为输出事件集合;S为离散状态集合;s0为其初始状态;tα(s)为时间推进函数;δx为外部状态转换函数;δy为输出和内部状态转换函数。
(2)耦合模型(Coupled DEVS)
耦合模型层次化、模块化的描述了系统的结构,其定义为一个七元组:
N=(X,Y,D,{Mi},EIC,ITC,EOC)。
(7)
式中:X为输入事件集合;Y为输出事件集合;D为耦合成员名字集合;{Mi}为其耦合成员集合;EIC为外部输入耦合集;ITC为内部输入耦合集;EOC为外部输出耦合集。
DEVS从系统论演变而来,是一种对离散事件系统的形式化描述规范,研究者们针对不同的应用领域提出了许多DEVS的扩展形式[11],包括动态结构DEVS(Dynamic Structure Discrete Event System, DSDEVS)、符号DEVS(symbolic-DEVS)、元胞自动机DEVS(cell-DEVS)、模糊DEVS(fuzzy-DEVS)、实时DEVS(Real Time DEVS, RT-DEVS)等。其中:DSDEVS用于描述模型在仿真运行时结构动态改变的系统,如系统连通性的进化,生物进化等;symbolic-DEVS用于探索并发和同步方式处理的多模型行为,表示在符号时间中发生的事件;cell-DEVS结合元胞自动机建模仿真,为元胞建模提供了动态层次化与模块化描述的机制;fuzzy-DEVS将模糊集合理论应用于经典DEVS理论上的集合和函数,用于描述不确定模型;RT-DEVS主要应用于实时仿真,其仿真时钟不再是虚拟的时钟,而是一个实时的时钟。上述DEVS扩展形式均基于传统的离散事件系统建模体系,对于活动的持续时间依旧是通过确定值或者是符合某种分布的随机变量,而数字孪生行为模型在离散制造车间中无法通过观测物理实体对其某个活动的持续时间进行确定,因此需要通过对物理实体运动进行模拟以及基于实验物理实体的同步运行来描述某个活动。传统DEVS在这方面有所欠缺,如利用DEVS原子模型可以描述虚拟车间功能模型,通过其时间推进函数能够确定某一状态在未接收到外部输入情况下的持续时间,该时间在编译模型时即可确定,但虚拟车间的功能模型中,某一状态在未接收到外部输入情况下的持续时间可能在运行时才能确定,例如正向运动学功能模型(如图4)。
该功能模型负责将输入的虚拟机器人6个轴的各个关节角度值通过正向运动学算法转换为机器人末端执行器的位姿,使用传统的DEVS原子模型定义如下:
forward_kinematics=(X,Y,S,s0,tα(s),δx,δy)。
式中:X={(J1,J2,J3,J4,J5,J6)|J1,J2,J3,J4,J5,J6∈A},其中A为机器人限位角度集合;S={Calculate,Wait};s0=Wait;δy(Calculate)=((X,Y,Z,RX,RY,RZ),Wait);tα(Wait)=+∞;tα(Calculate)=calculatingtime;δx(Wait,(J1,J2,J3,J4,J5,J6))=Send。
该功能模型的输入端口接受值为数组(J1,J2,J3,J4,J5,J6)的事件,输出端口输出值为数组(X,Y,Z,RX,RY,RZ)的事件,其状态包括Calculate和Wait,Wait状态持续时间为+∞,该状态下某时刻接收到输入事件时,会转换为Calculate状态。在Calculate状态下,原子模型需要执行正运动学算法,将输入的关节角度值转换为输出的空间坐标值,并在执行完成后,将状态变换为Wait状态继续等待输入。值得注意的是,Calculate状态的持续时间无法在定义时给出,只有执行算法对输入值进行计算时,即在模型仿真运行时才能知道该状态的持续时间。
在虚拟车间中,功能模型涉及到对该模型输入值与关键属性的计算,以及基于实验物理实体的同步运行。从上述示例可以看出,由于没有明确给出对值计算时的相关定义,无法定义该状态的时间推进函数,也就无法利用DEVS原子模型对这种涉及到输入值计算的功能模型进行定义;与此同时,DEVS原子模型事件之间的连接用于描述模型之间的同步行为,无法描述对于物理实体数据的采样以及不同模型之间数据的传输。为解决上述问题,本文对传统的DEVS模型进行扩展,称为VDEVS,使其具备对输入值的计算以及对物理实体采样与模型间数据传输的能力。
2 VDEVS模型定义
对DEVS进行扩展的目的是为了能够利用其对离散车间虚拟实体的分层行为模型进行描述。如前文所述,传统离散事件系统建模与仿真方法不再适用于虚拟实体先于物理实体构建的情况。而由于DEVS理论是离散事件系统的建模规范,对于DEVS主要基于扩展后的离散事件系统进行扩展,其扩展思路如图5所示。
DEVS中,耦合模型的定义主要是确定各个模型之间的耦合关系,换句话说DEVS耦合模型由原子模型“搭建”而成,因此对DEVS耦合模型的扩展需要基于DEVS扩展后的原子模型。原子模型的扩展首先增加了内部变量,该变量可用来对虚拟实体的关键属性进行引用并在原子模型内保存与物理实体交互时的缓冲数据。随后为了能够在不同模型之间进行数据的传递,对原子模型扩展了数据端口及配对关系。为了实现原子模型基于虚拟实体的计算函数以及物理实体的同步运行,为DEVS原子模型扩展了计算函数,该函数能够使得原子模型和虚拟实体以及物理实体实现交互。
2.1 VDEVS原子模型(Atomic VDEVS model)定义
VDEVS原子模型定义如下:
A=(X,Y,DI,DO,C,M,PI,PO,S,s0,δτ,δx,δy)。
(8)
式中:
定义1X为输入事件集合,X={(p,v)|p∈EventInPorts,v∈(true,false)}。
定义2Y为输出事件集合,Y={(p,v)|p∈EventOutPorts,v∈(true,false)}。
定义3DI为输入数据集合,DI={(dp,v)|dp∈DataInPorts,v∈DIp}。
定义4DO为输出数据集合,DO={(dp,v)|dp∈DataOutPorts,v∈DOp}。
定义5M为内部变量。
定义6C为数据计算函数,即2DI×2DO×2M→2DO×2M,其中DI为数据输入集合,DO为数据输出集合,M为内部变量。
定义7PI为输入事件与输入数据连接函数,PI(EventInPorts,DataInports)=EventInPorts×2DataInports。该函数表明输入事件端口与输入数据端口的配对关系,当该输入事件端口接收事件时候,与其配对的数据端口允许采样。
定义8PO为输出事件与输出数据连接函数,PO(EventOutPorts,DataOutports)=EventOutPorts×2DataOutports。
定义9S为一组该模型的状态。
定义10s0为初始状态,其中s0∈S。
定义11δτ为δτ状态转移事件产生函数,定义为{X∪{∅}}×2DI×2DO×2M→Xτ,其中Xτ表示状态转移事件集。公式表明状态转移事件由数据端口内部变量以及事件端口的布尔逻辑式得来。
定义12δx为状态转换函数,定义为S×Xτ×C→S。
定义13δy为输出函数,定义为S→Y×DO。
以上定义规范了具备数据处理能力的VDEVS原子模型,其中定义1~定义4、定义7~定义8对DEVS中的事件进行了更加精确的定义与扩展。在DEVS原子模型中,事件定义为端口与值的二元组。在VDEVS原子模型中,由于对输入数据的处理需要一定的时间,为了保证对输入数据的持续采样,需要将DEVS中的事件进一步拆分为true和false值的条件事件、value值的数据,以及两者之间的配对关系。定义5规定了原子模型的定义必须包括内部变量,其作用域仅在当前原子模型内有效。定义6规定了数据计算函数,即在原子模型的定义时需要规定对输入数据、输出数据、内部数据的计算函数。定义12将DEVS原子模型中的外部状态转换函数以及内部状态转换函数进行了统一说明,其状态转换依赖于定义11中所定义的状态转移事件Xτ,其中Xτ的产生由状态事件转移函数决定,该函数表现为输入事件以及输入数据、输出数据、内部变量所构成的布尔表达式,该布尔表达式中与内部变量相关的部分替代了DEVS原子模型中由时间推进函数所决定的内部状态转换。定义13规定了某状态的输出函数,该输出函数在本状态的计算函数执行完成后执行。
2.2 VDEVS耦合模型(Coupled VDEVS model)定义
VDEVS耦合模型定义如下:
N=(X,Y,DI,DO,D,{Mi},EIC,DIC,IEC,
IDC,EOC,DOC)。
(9)
式中:
定义14X为耦合模型输入事件集合,X={(p,v)|p∈EventInPorts,v∈(true,false)}。
定义15Y为耦合模型输出事件集合,Y={(p,v)|p∈EventOutPorts,v∈(true,false)}。
定义16DI为输入数据集合,DI={(dp,v)|dp∈DataInPorts,v∈DIp}。
定义17DO为输出数据集合,DO={(dp,v)|dp∈DataOutPorts,v∈DOp}。
定义18{Mi}为子组件集合。
定义19EIC为输入事件耦合函数,功能模型定义为EIC⊆{((N,eipN),(d,eipd))|eipN∈EventInPorts,d∈D,ipd∈EventInPortsd},其中N为该耦合组件名称。
定义20DIC为输入数据耦合函数,其定义为DIC⊆{((N,dipN),(d,dipd))|dipN∈DataInPorts,d∈D,dipd∈DataInPortsd}。
定义21IEC为内部事件耦合函数,其定义为IEC⊆{((a,eopa),(b,eipb))|a∈D,b∈D,eopa∈EventOutPortsd,eipb∈EventInPortsd}。
定义22IDC为内部数据耦合函数,其定义为IDC⊆{((a,dopa),(b,dipb))|a∈D,b∈D,dopa∈DataOutPortsd,dipb∈DataInPortsd}。
定义23EOC为输出事件耦合函数,其定义为EOC⊆{((d,eopd),(N,eopN))|eopN∈EventOutPorts,d∈D,eopd∈EventOutPortsd}。
定义24DOC为输出数据耦合关系,其定义为DOC⊆{((d,dopd),(N,dopN))|dopN∈DataOutPorts,d∈D,dopd∈DataOutPortsd}。
以上定义规范了VDEVS的耦合模型,其在DEVS的基础上增加了数据的耦合,使得事件以及与数据可以在耦合模型的子组件之间进行传递。值得注意的是,原子模型和原子模型之间的数据耦合,必须严格依据连接函数所定义的连接关系。
在VDEVS下,如图3所示的正向运动学功能模型可借由VDEVS原子模型进行定义,如图6所示。
该功能模型包括两个事件端口以及两个数据端口,功能模型定义如下:
X={(p,v)|p∈{EI},v∈{true,false}};
Y={(p,v)|p∈{EO},v∈{true,false}};
DI={(p,v)|p∈{DI1},v∈{(J1,J2,J3,J4,J5,J6)|J1,J2,J3,J4,J5,J6∈A}},其中A为工业机器人限位角度;
DO={(p,v)|p∈{DO2},v∈{(X,Y,Z,RX,RY,RZ)|X,Y,Z,RX,RY,RZ∈C}},其中C为工业机器人可达范围;
M={calculatedone},内部数据为calculate_done变量,其类型为bool,定义域为当前原子模型;
C((J1,J2,J3,J4,J5,J6),(calculatedone,false))=((X,Y,Z,RX,RY,RZ),(calculatedone,true));
PI={(EI1,DI1)};
PO={(EO1,DO1)};
S={Calculate,Wait};
s0=Wait;
δτ(EI1)=X1τ;
δτ(calculate_done,true)=X2τ;
δx(wait,X1τ)=Calculate;
δx(Calculate,(calculate_done,true),C)=Wait;
δy(Calculate)=((EO,true),(O,(X,Y,Z,RX,RY,RZ)));
在该定义下,正向运动学功能模型依然包括Calculate和Wait两个状态,且wait为初始状态。其输入事件端口为EI1,输出事件端口为EO1,输入数据端口为DI1,属于数据为(J1,J2,J3,J4,J5,J6),输出数据端口为DO1,输出数据为(X,Y,Z,RX,RY,RZ),其中输入事件端口和输入数据端口关联,输出事件端口与输出数据端口关联。内部数据为calculatedone,其类型为bool类型,定义域为该原子模型内部。计算函数主要将(J1,J2,J3,J4,J5,J6)转换为(X,Y,Z,RX,RY,RZ),同时将标志位Calculatedone的值由false设为true,该函数在Calculate状态下执行。当在Wait状态时,其状态由外部事件X驱动,并变为Calculate状态,当处于Calculate状态时,其状态是否变化为wait由Calculatedone值是否为ture决定。同时,在数据计算完成转换至Wait状态时,向事件端口输出true以输出事件并向数据端口DO1输出数据(X,Y,Z,RX,RY,RZ)。
3 基于VDEVS的虚拟车间行为模型
VDEVS在原有DEVS基础上扩展了对输入数据的修改能力,其原子模型可对虚拟车间功能模型进行描述,其耦合模型可对数字孪生车间单元级、系统级、复杂系统级虚拟实体行为进行描述。
(1)单元级虚拟实体行为模型定义
UnitBv为单元级的虚拟实体行为模型,定义其为VDEVS耦合模型:
UnitBv=(X,Y,DI,DO,D,{Fi|i∈D},
EIC,DIC,IEC,IDC,EOC,DOC)。
其中{Fi}为子功能集合,Fi定义为VDEVS原子模型,
Fi=(X,Y,DI,DO,C,M,PI,PO,S,s0,δτ,δx,δy)。
其中单元级虚拟实体的Gv⊆M且Pv⊆M,即虚拟资源中的几何参数以及物理参数定义为原子模型的内部变量,此时的数据计算函数C即为在输入数据下对当前虚拟资源集合参数以及物理参数的变换。
(2)系统级虚拟实体行为模型定义
系统级虚拟实体行为模型定义为单元级虚拟实体行为模型的耦合:
SystemBv=(X,Y,DI,DO,R,{UnitBr|r∈R},
EIC,DIC,IEC,IDC,EOC,DOC)。
(3)复杂系统级虚拟实体行为模型定义
复杂系统级虚拟实体行为模型定义为系统级虚拟实体行为模型的耦合:
CSystemBv=(X,Y,DI,DO,R,{SystemBr|
r∈R},EIC,DIC,IEC,IDC,EOC,DOC)。
以上提出了扩展的数字孪生车间虚拟实体行为模型,并利用该模型对车间各层实体行为进行了封装,系统级虚拟实体行为模型由单元级虚拟实体耦合形成,复杂系统级虚拟实体行为模型又以系统级虚拟实体行为模型耦合形成,上层行为模型通过事件与端口的连接协调下层行为模型。
4 基于VDEVS的虚拟车间行为模型实例
为了验证所提VDEVS方法,本文首先设计了VDEVS语言,并基于该语言以及面向对象思想开发了VDEVS仿真原型系统,主要界面如图7所示。
该原型系统的主要功能即读取格式为.VDevs的模型定义语言,在对其进行语法、语义分析后将其加载至仿真系统中,点击开始仿真后系统依据VDEVS仿真规则进行模型间的数据交互、状态切换、计算函数等执行,同时在仿真时能够实时展示系统性能度量的部分指标,如设备利用率、产量等。
本文以一加工单元作为仿真实例进行验证。该加工单元由产生器Generator、入料传送带Convey1、机器人Robot、处理器Processor1、处理器Processor2、出料传送带Conveyor2以及吸收器Sink组成,其布局如图8所示。
该加工单元的虚拟实体属于系统级虚拟实体,其行为模型CSystemBv如图9所示。该行为模型描述了加工单元的行为,其动作流程为:Robot对工件搬运动作的仿真结束后,将该工件发送至Processor1的wi端口;Processor1对加工过程进行模拟,完成后其eo以及wo端口分别向自己的ei1以及机器人wi2端口发送事件以及数据;Robot再次模拟搬运过程,完成后从wo2发送工件至Processor2数据输入端口wi;Processor2对加工过程进行模拟,完成后其eo以及wo端口分别向自己的ei1以及机器人wi3端口发送事件以及数据;Robot模拟搬运过程,完成后从其wo3端口向Conveyor2端口发出数据,Conveyor2模拟完成出料过程后将其发送至Sink的wi端口;Sink对接受到的工件进行计数,统计当前加工完成的工件数量。在上述过程中,机器人wi1、wi2、wi3和入料传送带的wi以及Processor1、Processor2的wi数据端口均会在配对事件未发生时阻塞数据,充当缓冲队列。
为了验证本文所提出的VDEVS方法,机器人行为模型Robot通过计算函数Robotmove()与RobotStudio中的机器人虚拟实体进行交互,而数控加工中心行为模型Processor1则通过计算函数CNCExcute()与真实加工单元中的数控设备物理实体进行交互,如图10所示。其余模型的活动持续时间、事件发生间隔时间均通过符合泊松分布、正态分布的随机变量生成函数确定。
本文首先根据图9所示行为模型以及上述关键计算函数,基于VDEVS模型定义语言对该加工单元进行描述,随后加载.VDevs文件至VDEVS仿真原型系统中,设置仿真时间为1 h、仿真速度为6倍。模型实际运行时间为10 min,仿真结束时,系统处理了30个工件,仿真过程中系统最大产量为6个工件,如图11所示。最终,各设备利用率分别为ρGenerator=50.37%、ρConveyor1=46.96%、ρRobot=63.1%,ρProcessor1=40.8%,ρProcessor2=39.51%,ρConveyor2=69.04%,ρSink=43.92%,如图12所示。
5 结束语
数字孪生车间虚拟实体行为模型是虚拟车间建立的关键,然而当前对该行为模型缺乏准确、清晰、层次化的描述,导致数字孪生车间虚拟实体建模效率低下,可扩展性不高。针对虚拟车间定义行为模型定义不精确的问题,提出了虚拟实体分层模型和基于VDEVS的行为模型描述方法。本文首先基于五维模型提出了数字孪生虚拟车间分层模型与两种新的离散事件系统时间变量确定方法,随后基于这两种方法对传统DEVS进行了扩展,在保持该建模方法对模型层次化、模块化描述的同时扩展了其数据处理能力以及与物理实体的数据交互能力,进而提出了VDEVS。为了减少因模型定义模糊而导致的虚拟车间行为描述歧义,便于开发可复用的应用,通过数学集合语言对虚拟车间进行了层次化、模块化的形式描述,最后给出了实例描述。
由于传统DEVS的仿真引擎中对于事件的同步基于原子模型的时间推进函数,而本文将该函数移除,传统DEVS的仿真引擎不再适用,下一步工作将对模型仿真引擎执行语义进行形式化描述,使虚拟车间行为模型能够进行准确的仿真。