王凤花 刘志迎 赖庆辉 熊海辉 陈可凡 鲁超宇
(昆明理工大学现代农业工程学院, 昆明 650500)
农机装备是我国农业生产实现高效化、实现资源的有效利用、推动农业生产可持续性的重要工具[1-3],随着农业科学技术的发展,农业装备更新换代周期缩短,在实际生产中产品的设计以适应性设计和变型设计为主[4-5],据统计,制造业中约有75%的产品设计采用修改已有产品来解决设计问题[6]。因此,有效地利用企业已经存在的成熟设计模型,将分散、异构的设计知识和实例模型进行组织和融合到动态的设计上,提高产品的设计效率和知识重用水平,已成为产品开发过程的一个迫切需求。
近年来参数化设计技术得到了广泛的应用[7-10],目前大多是根据实例的设计理论、行业规则和设计经验等相关知识建立用户输入参数和模型实例驱动关系[11-14]。李长林等[15]基于参数化设计思想,研究了插秧机底盘设计系统;刘宏新等[16]研究了基于骨架设计的参数化设计方法,将模型、参数、知识信息等资源与平台结合,完成了脱粒装置交互设计系统;张延安等[17]将知识库、推理机和参数化模型相结合,提出了一种基于知识的拖拉机变速箱箱体快速设计方法;YOON 等[18]使用计算流体力学与试验设计方法研究了一种可用于农作物保护的无人机参数化设计原型系统。以上的研究是将模型的参数设计规则和系统构建建立直接联系,其设计过程依托于专业人员对系统的搭建,对设计技术具有专业依赖性。运用模型参数标记的方法提取设计参数,基于知识元描述的方法对模型参数知识进行表达,可提高知识管理和重用的程度,降低参数化设计的门槛,提高设计效率。毕经元等[19]利用知识链接的方法搭建了以汽车零部件为知识背景的知识管理系统;李海生等[20]提出基于设计过程知识元的模具设计方法,实现了冲压模具设计的智能化;LI等[21]利用知识元理论构建了Green development system模型的理论框架。
本文构建一套基于知识元描述的模型参数化设计交互系统,即使用基于知识元对模型设计知识进行获取和表示,利用SolidWorks的二次开发技术,以模型的参数标记、提取为基础,建立模型参数关联与修改的可视化操作,使用VB.NET语言和MySQL数据库管理进行系统集成,通过人机交互式的参数填充过程完成实例的参数化构建,以保证系统的独立性,弱化专业背景知识的限制,有效提高产品参数化设计的准确性与专业性,以谷物收获机械的切割装置为研究对象,采用知识元描述的方法对切割装置的设计知识进行定量、定性的知识表达,构建切割装置的设计重用实例库,为农业装备的设计重用技术提供一种方案的借鉴。
为降低农机模型参数化设计过程的专业素质要求,实现高效率和高质量的设计水平,本文通过构建具有通用性的参数化设计的交互式创建系统,将模型参数信息的提取、设计知识的填充、参数化模型的调用、生成等数据化资源封装设计,以人机交互的方式完成模型实例的参数化设计过程,自动化实现具备专业知识的模型参数化过程。系统的总体方案如图1所示。
知识获取和整理是完成实例参数化的前提,主要任务是将模型设计知识和设计参数进行分析、关联,完成模型关键零部件设计参数的知识整理[22]。农机模型的设计知识主要来源于文献专利、专家知识、设计手册和国家标准等,通过检索和咨询的方式对添加的模型实例相关知识进行整理、归纳,根据知识之间的差异将知识分为选型规则、设计规则和计算规则。
参数化模型是实现设计重用的基础,通过 Visual Studio平台对 SolidWorks进行二次开发,读取模型实例的特征信息和标记参数信息,并结合整理的模型知识以人机交互的方式分别完成用户输入参数、驱动参数、设计规则及求解参数的填充,输入完成后,系统将模型参数信息和输入信息整理融合形成知识元信息,进而转换为可以被系统驱动修改的模型实例,储存在参数化实例库。
参数化实例库的功能是将模型实例设计知识转换成相应的参数概念集,根据用户对模型的选择,从数据库匹配符合要求的参数化实例,构建模型的参数设计文档,建立模型设计重用的人机交互界面,从而满足设计人员在产品设计过程中对实例的修改和完善,实现设计参数与产品数据资源的关联,解决复杂产品参数散乱、关联性差和设计知识重用性低的问题。
根据用户设计需求,选择重用模型,并打开该模型的UI设计界面,根据系统推送的相应参数的知识元信息,输入设计参数的值,系统从参数化实例库中调用该实例,通过输入值与设计规则建立联系,求解参数,调用封装化的模型驱动函数,完成驱动变型,实现实例的重构和装配,最终输出到设置导出的储存位置,并将本次设计信息保存到实例信息库。
参数化实例库由实例信息库、实例模型库、知识元数据库组成,其中实例信息库用于储存实例的特征、功能、结构等信息,即通过系统对模型的数据集读取后转换为知识信息存储于MySQL数据库中。实例模型库存储了通过系统进行操作处理后转换为可以被系统驱动的三维模型,用于实例模型的调用和修改。知识元数据库储存了模型的参数设计知识,是由系统通过人机交互的方式进行建立,用于完成模型驱动参数的关联与求解。
通过系统对实例知识的抽取和整理,将实例的领域知识以可视化的表达形式展现在系统中,这种组织结构一方面可以让用户准确定位知识,找到所需求的模型设计要求,另一方面便于后续模型信息的管理维护。
本文使用五元组来定义实例的特征信息,即
CK={PID,BI,CKA,KC,UK}
(1)
其中:PID为实例唯一标识;BI表示实例的基本信息,如实例的创建时间、创建者、格式信息、案例所属知识库等;CKA表示实例特征信息,是系统通过实例数据集读取到的结构信息,如实例材料、密度、体积等;KC表示实例的视图信息;UK表示实例设计信息,包括实例结构、设计信息、功能描述信息、用户设计该实例时需要输入的参数信息、该产品的求解参数信息以及该实例衍生出来的案例。
系统将实例的知识信息进行整理融合,如图2所示,以人机交互的形式显示,便于用户查找使用。
实例模型库的构建流程包括配置开发环境、设置实例库路径、模型预处理、参数信息读取、参数分析与填充、生成实例驱动程序等,如图3所示。
2.2.1模型预处理
为了完成系统对用户设计参数进行读取,保证模型实例在驱动过程中的稳健性,需对入库的模型实例作预处理操作,即参数标记处理和装配基准的调整。
(1)参数标记
参数标记方法是将默认参数名称更改为系统能够读取到的名称格式,如图4所示, V是系统识别参数的标识符,用户可以使用系统默认定义“Var_”的格式,也可以进行自定义设置,A则是用户对参数标记时定义的名称,为便于参数特性的识别,可以使用包含参数含义的命名方法,T是由系统进行定义,其含义是参数所属特征名称。
操作方式如图5所示,选择模型特征树下的参数特征,双击参数数值,在跳出的窗体中将原参数名称更改为用户定义的形式。
(2)装配基准调整
为了解决由装配关系约束不当引起实例参数化驱动过程出现干涉现象的问题,需要将实例所使用的配合基准进行调整,调整方法是在模型实例装配关系多变的情况下,考虑装配关系和使用的参照基准是否随模型的变更一直有效,如无法一直有效,采用以基准轴、基准线等参考体替代实体的点、线、面等作为基准。
2.2.2标记参数提取
参数化设计实际是一个参数分类、关联和求解的过程,为便于用户对参数的操作,利用编程语言和SolidWorks二次开发环境对实例数据集的数据进行读取,提取实例的特征信息及标记参数信息,图6为读取实例标记参数信息的流程。
系统通过驱动SolidWorks打开预处理模型,判定模型文件的分类,根据模型格式为.sldasm和.sldprt 选择不同的遍历函数。
其部分代码如下
∥打开模型
SwMode=swApp.OpenDoc6
∥读取模型的特征树下的第一个特征信息
thisDisplayDim=feature.GetFirstDisplayDimension
∥遍历边界数据
For i = 0 To UBound(vChildComp)
While Not swFeat Is Nothing
While Not thisDisplayDim Is Nothing
∥判断是否是标记参数信息
dimen=thisDisplayDim.GetDimension()
If Contains(ValStr) = True Then
∥读取当前标记参数信息
thisDisplayDim=feature.GetNextDisplayDimension(thisDisplayDim)
∥退出当前特征循环
End While
∥遍历下一个特征信息
swFeat=swFeat.GetNextFeature
End While
Next i
注:SwMode:模型对象,UBound:模型中组成特征的数据数量
系统通过遍历实例的特征及组成特征的草图,包括线段、角度、曲线方程等信息获取标记参数集,将参数信息储存到数据中,读取模型信息所使用的部分函数如表1所示。
表1 参数信息读取应用函数类别Tab.1 Parameter information read by application function category
将提取到的参数在系统中清晰、完整地表达,是实现参数知识元构建的重要步骤,系统将读取的实例数据集进行统一方式的表达,形成结构化的参数矩阵,使用R表示当前实例的参数信息集合,记为
(2)
式中Mn——模型中的子装配体名称
Kn——子装配体模型基本信息,包括质量、材料等
On——模型中参数标识名称
Fn——参数所属特征
Tn——参数所属类别
Dn——当前参数数值
m——参数属性数目,m∈N
n——模型中子装配体数目,n∈N
利用参数的信息矩阵,建立人机交互式的操作界面,便于用户对参数定性和定量的信息表达,解决设计过程中参数复杂、冗余的问题。
2.2.3参数类别划分
为了便于实例添加过程中对参数知识进行组织、分类,需要对用户标记参数进行特征标识,本文将设计过程中的所涉及参数划分为用户输入参数、驱动参数、规则参数和求解参数。
(1)用户输入参数:决定模型功能、结构的参数,在添加中提供并设置其变量名称,也是用户快速设计时需要填充的参数,在系统中,用户输入参数定义为全局变量,例如:作业幅宽、作物类型等。
(2)驱动参数:能够反映模型变化程度的参数集合,与用户输入参数直接建立联系,根据系统求解的具体数值驱动模型生成,由不同的关联优先级别决定驱动顺序。
(3)规则参数:定义规则选择的变量参数,在对模型设计规则表达上,可能出现因输入参数的取值不同,导致某一关联参数的取值不同,为了解决这一问题,设置了规则参数,用于储存规则表达过程中的变量参数数据。
(4)求解参数:通过对用户输入参数和模型的设计知识建立联系,根据用户输入的值求解模型的功能、结构、行为信息。
2.2.4参数分析
对于复杂农机模型实例,参数之间关联复杂,如果仅使用单层的参数关系描述会造成实例参数表过长,不利于参数之间的规则表达,且对于系统来说,在无法判定参数驱动顺序的情况下,参数关联计算时会出现错误的现象,无法保证模型在参数驱动过程中的稳健性。
针对这一问题,本文采用递阶驱动参数的方法,在实例参数分析阶段,对参数进行层次划分[23],如图7所示,把一个复杂的实例处理为多个简单的单层模型,按照参数层次划分顺序建立参数关联关系,系统通过读取层次等级判定参数驱动的优先顺序,从1到n依次取整数数值,参数等级为1表明该参数的优先级别最高,根据n取值的递增依次降低参数驱动的优先级。
2.2.5驱动模型参数变更
通过访问存储在数据库参数知识元信息,如图8所示,遍历循环参数等级、参数序号,根据参数的定义函数求解驱动数值,定义驱动数组,完成模型的驱动更新,模型驱动参数修改的部分代码为:
myDimension=swModel.Parameter(ParName(i))
myDimension.SystemValue=ParValue(i)/1 000
其中ParName(i)为第i个驱动参数命名,ParValue(i)为第i个驱动参数的数值。
知识元数据库由设计规则和参数知识元信息构成,将实例参数设计过程转换为知识元的表达,采用参数类型分类的方法,从顶层参数构建数据模式,逐步展开,形成参数驱动的层次分类,将设计参数实体添加到相应层次中。
2.3.1设计规则表达
农机模型在设计领域存在着大量的设计规则,这些规则大多以逻辑判断或者是计算公式的方式存在。本文采用产生式规则和设计知识的公式表达方法进行实例在参数化设计过程中的规则设置,产生式表示法的模型一般是:“If条件then结论”,由参数名、参数规则及参数结论3部分组成,表示了在A的情况下B出现的结果[24]。参数的规则设计主要包括对尺寸的计算、装配方案的选择、模型组件的替换规则。
利用SolidWorks的二次开发函数,将设计规则的表达进行封装化设计,装配关系的选择使用SolidWorks中的特征压缩EditSuppress2和解压EditUnsuppress2函数,根据设计规则选择不同类型的装配方案。模型替换方案使用PacKandGo函数,将具有相同装配信息的零部件进行打包替换操作。部分设计规则表示如表2所示。
表2 实例设计部分选择规则Tab.2 Selection rules of example design section
2.3.2参数知识元表达
参数作为模型参数化设计中知识传递的载体,对其进行准确且易于理解的表示是设计过程的关键,利用参数设计中蕴涵的关键概念、属性、结构、功能等信息作为参数驱动的依据,建立参数之间的关联信息。为便于对参数信息的使用、管理,本文将知识元的概念引入到参数信息的描述上。
参数知识元信息可以表达为一个六元组
KU={ID,PBI,PT,PF,PI,PK}
(3)
式中:ID表示参数所属实例的唯一标识;PBI表示参数的基本属性集合,包括参数标记名称、变量定义名称、参数所属类别等,信息属性来源于系统提取的参数信息矩阵;PT表示参数的类型,根据模型知识整理过程中对参数类型的划分,系统完成模型参数集合的整理与分类;PF表示经验、规则和公理的集合,定义参数属性的约束范围和设计规则;PI表示参数驱动优先级别;PK表示参数设计知识的解释,通过对该参数的设计知识描述,引导用户完成参数的填充。
本文定义的知识元之间的逻辑关系主要有如下的关系集:①上下游关系,两个及以上知识元之间具有顺序关系,它们之间的读取顺序由参数驱动的优先级别进行判定。②共同作用关系,两个及以上知识元需要共同作用才能做出决策,其主要用于参数的数值计算,系统根据参数的计算函数判定共同作用的知识元数据来源。③互斥关系,根据设计规则的不同,两个及以上知识元应用场景不同,只能选择其中之一。图9给出了建立参数知识元关系的部分模型。
切割装置是稻麦收获机械主要组成部件,根据切割的方式分为往复式和圆盘式两种,目前使用较多的是往复式切割,它是由偏心轴式曲柄连杆机构驱动,利用动刀片与护刃器上的定刀片进行往复的剪切运动,割断作物。切割装置的设计过程重要工作是对国标件的选型和装配关系的确定,其工作性能受到许多因素影响,如机器前进速度、切割幅宽、作物类型、切割器类型等,用户在设计过程中,根据不同的需求完成正确的选择和结构尺寸的确定,是切割装置设计的关键[25-26]。以往复式切割为设计实例完成系统的操作,实例的设计结构如图10所示。
不同标准的切割器作用于不同的工作环境下,Ⅰ型切割器主要适用于割草机、Ⅱ~Ⅳ型切割器适用于谷物收获机、Ⅴ型适用于小型收获机械、Ⅵ型用于半喂入式联合收获机,Ⅶ型适用于谷物收获机械,通过切割器的各项参数和选择分析进行关联对应,如图11所示,完成设计参数的分析过程。
3.2.1割刀进距
割刀进距是切割器的重要工作参数,它是动刀片左侧运动极限和右侧运动极限之间的机器前进的距离,为了不造成漏割的情况,进距H1计算式为
(4)
式中σ——动刀片刃口倾角
r——动刀片一半宽度,mm
h——动刀片刃口的高度,mm
在求解割刀进距时,对于小麦收割机械H1应为70~120 mm,水稻收割机械取值为50~55 mm。
3.2.2动刀片刃口的剪切负荷
动刀片的刃口剪切负荷是切割器设计和刀片磨损研究的重要参数,在其他条件相同的情况下,刃口的负荷越大,动刀片的耐磨性就越差。采用单位长为1 cm的动刀片刃口所剪切作物的生长面积f的计算公式为
(5)
式中t0——切割器的护指间距,m
α——动刀片刃口倾角,(°)
为满足切割器设计要求,一般f为6~10 cm2。
3.2.3切割器所需功率
切割器功率包括切割功率Ng和空转功率Nk两部分,计算公式为
N=Ng+Nk=vmBL0×10-3+Nk
(6)
式中vm——机器前进速度,m/s
B——机器割幅,cm
L0——切割每平方米茎秆所需的功,小麦为100~200 N·m/m2,牧草为200~300 N·m/m2
3.2.4切割器类型
往复式切割器根据切割行程S、动刀片间距t和定刀片间距(护刃齿间距)t0的不同组合,将切割器的型号分为普通型、双刀距行程型和低割型,其不同型号的切割装置S、t和t0如表3所示。
表3 往复式切割装置的类型
3.2.5动刀片平均速度
动刀片平均速度是切割器设计的关键参数,切割干禾株平均速度取0.8 m/s已经足够,如果禾株比较湿应取较大的值,其选值的关系式为
vp=βvm
(7)
式中β——刀机速比,小麦收获机、割晒机、水稻收获机、联合收获机分别为1.2、1.1、1.6、0.865
以Visual Studio 2019作为开发工具,在Windows操作系统环境下进行农机模型参数设计交互式创建系统的构建,以MySQL为关联数据库对实例模型设计知识进行储存,以谷物收获机械的切割装置参数化设计过程作为实例,完成参数化实例的添加和使用,验证本文提出方法可行性与有效性。
模型预处理后,进入模型信息读取界面。系统对模型的基本信息进行提取,包括模型的质量、体积、格式、尺寸、视图信息等,如图12所示。
模型基本特征信息读取完毕后,进入到模型参数设计步骤,如图13所示,依次对不同类型的设计参数进行知识添加。
(1)设置用户输入参数
进入到“设置用户输入参数”界面(图14),根据整理的设计规则完成参数定义、参数输入值范围及模型结构图示的添加。
(2)设置模型驱动参数
进入“设置模型驱动参数”界面,如图15所示,通过数据库的连接将读取参数信息显示在DataGridView的控件中,在选中的参数信息中完成该参数的定义变量、关联参数、驱动等级、知识描述等。
参数知识信息填充完成后,系统对知识进行分类、融合,完成参数知识元的构建,如图16所示,保存在实例参数信息库。
(3)设置模型设计规则
以切割器的类型选择为例,根据不同切割类型确定切割器的切割行程、动刀片间距和定刀片间距,填入如图17所示的系统交互界面中。
(4)设置模型求解参数
将切割器的求解参数、求解规则、知识解释信息输入到控件框中,如图18所示,即完成切割器参数化模型产品的实例添加。
通过对切割装置的相关设计知识的分析、聚类,建立参数化设计模型,图19为模型实例选择界面,用户可根据界面的模型信息、特征信息、知识内容、结构内容及模型预览选择所需的模型。
选中切割器模型后,进入到实例设计重用界面,如图20所示,在设置实例参数区域,设计人员可根据推送的知识元信息完成切割器的参数输入,点击求解控件,系统根据参数之间的知识元关系完成推理计算,其结果显示在参数求解区域。
用户可在功能区域完成模型的驱动、导出及预览功能。系统通过对用户输入的参数值以及系统中对参数关联信息、装配信息的计算选择,调用SolidWorks驱动相应零部件进行参数变更,实现该模型的重构,最终输出到用户设置导出的储存位置,并将本次设计信息保存到实例信息库。
(1)构建了一套模型参数化设计交互式创建系统,该系统能通过标记参数的方法获取模型参数化设计过程中所涉及到的变量参数,并封装参数的信息获取、参数驱动变更等操作指令,同时,通过人机交互式操作平台来实现模型的参数化建模,保证了系统的独立性,降低了模型参数化开发的专业性,提高了农机产品的研发效率。
(2)根据参数的属性类别将模型设计参数划分为用户输入参数、驱动参数、规则参数和求解参数;运用参数驱动递阶模型的分析方法,对各类参数的设计规则进行整理,增强了知识表达的灵活性与适应性。
(3)采用参数知识元描述的方法将农机三维模型的参数属性特征、关联信息、范围限定、知识描述等信息进行定性、定量表达,使得实例添加过程中对知识整理、分类、表达更加简单、规范。以切割器实例库的构建为例,从实例的添加和生成两个方面对系统整个操作过程进行演示,完成了模型实例的设计重用。