首页/文章/ 详情

ANSA二次开发-Designer基本介绍

3小时前浏览3

很多使用ANSA的朋友,后期都会或多或少的对二次开发感兴趣,这分享一篇仿真秀的文章《从零开始学ANSA二次开发:如何利用Designer搭建窗口》算是初级入门吧。



一、ANSA二次开发的准备工作

利用Pycharm作为IDE,让Python这门语言顺利地在电脑上顺利运行,进行ANSA的二次开发,你需要经过4个步骤。
1、下载Pycharm,安装并且激活,戳如下链接即可查看哦。
   
ANSA二次开发利器-Pycharm-的下载安装教程  
 

   
2、下载最新版python,并在Pycharm中引用进行编译环境配置。戳如下链接即可查看哦。
 
     
ANSA二次开发利器-Pycharm-的编译环境配置    
   

     
3、下载最新版Anaconda,利用其强大的各种各样的Python包,为自己编写代码准备充足而强大的工具箱。要准确引用这些包,也需要在Pycharm中进行环境配置。(其实Anoconda也有Python的解释器的,如果决定下载Anaconda,倒是不用下载Python了),感兴趣的朋友可查看Pycharm如何引用Anoconda的库

4、进行基于ANSA二次开发的环境配置。需要用到ANSA自带的补全包(pydev_ansa,pydev_meta),实现在Pycharm中快速调用ANSA包,并对代码进行自动补全。感兴趣的朋友可以查看在PyCharm搭建开发环境-自动补全。

此次分享内容为:ANSA中如何个性化定制自己的窗口,我们要讲到ANSA自带的窗口定制功能【Designer】,本文内容部分翻译自原英文文档,图片来自软件截图。

二、Designer的概述

什么是【Designer】呢?它是一种可以使用图形用户界面(GUI)轻松生成窗口的工具。对于设计人员来说最大优势是可以自动生成代码,从而减少了脚本的准备时间。以下各段将重点介绍【Designer】的界面(不特别强调背景中使用的BCGUI功能)。

三、Designer的界面

通过单击Tools > Designer,可以通过【Script Editor】访问【Designer】。它的初始启动界面包含以下部分。


  • 工具箱(Tool Box):这是托管所有用于创建小部件,布局或项目的功能的窗口。

  • 结构化项目(Constructed items):已创建的项目的树状图列表;

  • 通用参数(Common Parameters)每个BCGUI项目都共有的参数,都列表于此窗口;

  • 参数(Parameters)每个结构化项目的特殊参数,都列表于此窗口;

  • 函数调用(CallBack Functions)所有创建的函数都保存在这个窗口;

  • 源代码(Source Code)所有自动创建的源代码都显示在这里;

  • 帮助(Help)所有选中的函数的的使用说明都罗列于此。
接下来,我们来详细说说这些个模块。

四、工具箱(Tool Box)窗口

工具箱是在BCGUI的【Designer】中执行的所有操作的起点。它在单独的选项卡中包含创建主窗口(Window)、按钮(Buttons)、容器(Containers)、视图(views)、小部件(widgets)和输入项(input items)的所有必需功能。初始打开【Designer】时,只有“Window”选项卡处于激活状态,因为第一个操作是创建窗口(作为所有小部件的父对象)。
操作方法:展开“Window”树,然后按“Apply Settings”按钮创建名称为“ Top Window”的主窗口。



然后即可创建出一个窗口。
想要在上述窗口继续创建对象,需要展开【Tool Box】中各个分类,进行一些基础的或者必要的设置,或者直接默认,再按【Apply settings】即可创建相关的对象。如下,我们们示例了如何在该窗口下创建一个按钮(Button)和一个勾选框(Check Box)。
注意,父类对象影响着子类对象的顺序。如上所示,直接加入到主窗口的对象都是竖着排列的(默认)。如果想要横着排列,或者手动指定竖着排列,就需要提前定义一个竖排或者横排的分布(HBox or VBox),或者创建一个BoxLayout,在其中指定内部部件的分布方向。如下,我们展示了一个横向排列的例子。
在上述例子中,我们是在top window中创建了BoxLayout,然后在BoxLayout中创建了一个按钮和一个勾选框。其中将BoxLayout定义为横向排列,借此来控制内部两个部件的排列顺序和方向。

五、结构化项目(Constructed Items)窗口

所有创建的对象都罗列在结构化项目窗口中。通过这个窗口中的树状图能很容易的识别不同对象之间的父子关系。
在结构化项目窗口中可以通过拖放操作改变对象所放置的位置。如下图所示,通过鼠标左键选中BCCheckBox_1项,拖动该对象到BCPushButton_1之前,实现两个对象的位置对调。
通过在结构化项目中选中 特定对象,比如对应的窗口中的对象会高亮。相反地,通过按住Ctrl键 鼠标左键选中窗口中的组建,那么结构化项目树中对应的对象也会高亮。
另外,通过右键选中结构化项目中的任何对象,都可以通过【Delete items】来删除该组建。

六、通用参数(Common Parameters)窗口

该窗口列出了每个单个对象所共同的所有选项。参数名和参数值显示在两个单独的列中。如下图所示。
为了更改默认某参数选项,请展开某参数并在允许新值的位置键入新值。最后,按“Apply Settings”按钮确认更改。在下图中,示例了如何为按钮“ BCPushButton_1”添加提示信息。从“结构化项目”窗口或屏幕中选择按钮,然后在“ AddToolTip”参数的“ Values”列下键入工具提示文本。确认后,将光标放在按钮上可以查看创建的工具提示。

七、参数(Parameters)窗口

“参数”窗口列出了可以应用于所选对象的特殊功能。从屏幕或“构造化项目”窗口中选择对象后,“参数”窗口的标题和实际参数都会相应更改。下图显示了选择按钮时的“参数”窗口。参数的名称和输入参数显示在两个单独的列中。
每个参数的名称都有描述其用法。与其他任何参数列表一样,相应的选项具有默认值,但用户可以更改它们。例如,为了更改按钮的名称,就可以通过展开“ ButtonSetText”选项,然后为“Text”选项键入新值。最后,按“应用设置”按钮确认更改。

八、函数调用(CallBack Functions)

“参数” 窗口中所有名称以“ Function”结尾的函数均用于设置对象的调用函数。为了找到与调用函数有关的所有函数,请激活过滤器,然后在“参数”字段中键入“ function”,如下所示。
我们为这个按钮过滤了两个不同的回调函数。用户可以根据自己的需要选择任何选项。按下“Applysettings”按钮时,回调类型及其名称将自动列在“回调”窗口下。窗口标题将指示该父类对象类型:
所有回调函数的最后一个参数可以是任何类型,并且对应于回调函数运行所需的用户数据。

九、帮助区域(Help area)

每个参数对应一个BCGUI函数。通过从“公共参数”或“参数”窗口中选择一个参数,可以在“帮助”区域显示相应的BCGUI函数的帮助文本。
设置回调的函数的帮助文本还包含回调的语法。因此,该信息还将告知用相关输入参数及其返回值。

十、源代码区域(Sourve Code )

“源代码”窗口是执行操作后BCGUI Designer自动构造代码的区域。每次按下“Apply Settings”按钮时,或者使用手动移动更新构造化项目时,都会执行操作。生成的代码由一个主要函数和任意数量的回调函数组成。
下图显示了执行前面所有操作所自动构建的源代码。
源代码区域不可编辑代码,并且仅在执行操作或删除对象时才自动更新更改。可以点击菜单栏中的“Clear Source Code”符号,清除源代码区域的代码(不会破坏已经创建的窗口)。下次执行任何动作时,将再次生成源代码。

十一、编辑源代码

源代码(包括设计器工具构造的主函数和回调函数)只是所有脚本的一小部分。其余代码必须由用户通过脚本编辑器手动添加。可以通过“File” > “Save”将源代码另存为任何其他脚本,然后可以由脚本编辑器【Script
 Editor】重新打开源代码以进行进一步的编辑。或者,可以通过“Script” > “Set Code to Script Editor”将其直接发送到编辑器。
显示在Script Editor中的脚本如下。
我们来运行下以上代码。就能生成我们自己选择创建的窗口,以及窗口中相对应的组建。
总结:本文讲述了如何利用Designer进行定制化界面开发,并详细介绍了该窗口的各个功能区域及使用方法。大家可以利用Designer的界面开发功能,初步构建自己的窗口,然后利用Script Editor对局部内容进行修改和扩展。

网络整理,禁止商用,仅限内部分享


来源:机电君
二次开发通用ANSApython控制META
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-04-24
最近编辑:3小时前
ErNan.Chen🍃
硕士 | CAE工程师 即物而穷其理
获赞 34粉丝 59文章 77课程 0
点赞
收藏
作者推荐

基于Edem⁃Recurdyn联合仿真的火车皮厢底冻黏浮煤清扫机构性能优化分析

以HY-0型清扫机清扫机构底面清扫滚筒为研 究对象,利用Edem离散元软件及Recurdyn进行联合仿真,建立冻煤颗粒模型和清扫机构运动学模型对清扫过程进行模拟仿真。 首先综合考虑温度、含水量煤粒度等因素对冻煤黏结参数的影响进而得到冻黏浮煤参数;再将滚筒的三维模型格式导入到Recurdyn软件中,设置其约束并根据清扫参数设置其运动参数。 仿真采用单因素到多因素的研究方法分析清扫滚筒的清扫性能受清扫转速、牵引速度和清扫深度的影响,得到拟合方程并通过Matlab目标值优化得到清扫性能最优解下的各参数值。1 冻黏浮煤清扫滚筒仿真参数设置1. 1 冻黏颗粒模型的建立根据清扫机构采用铣削式清扫,针对车厢底冻黏浮煤清扫的主要执行部件为底部清扫滚筒,其清扫过程如图1所示,结构组成包括滚筒体、螺旋叶片和刀型截齿。图1 冻煤清扫示意图对冻黏浮煤进行模型建立的过程主要是将不规则 的具有黏性的冻黏煤颗粒,根据其自身的物理化学性质,将其简化成具有相同性能的黏结颗粒。 Edem软件能够利用离散单元算法对形状复杂的冻煤材料进行简化,将其理想化为相互独立、相互接触和相互作用的颗粒群体。颗粒单元具有几何和物理两种类型的基本特征。这些特征受到多种因素的影响,主要包括煤粒的含水量、外界温度、下部煤受到的压力以及煤颗粒大小等, 对其进行分析如下:1. 1. 1 含水量煤是一种固液气并存的分散系统,在低温条件下,随着含水量的增加,煤颗粒之间会形成连续的水膜,使煤的冻黏强度增加。 一般情况下,湿煤在含水量为16%时黏附最严重,含有杂质时煤的冻黏量可达15%左右。 根据试验得出冻黏浮煤冻黏强度随含水量的变化曲线,如图2所示。图2 冻黏强度随含水率的变化规律1. 1. 2 温度温度是导致车厢冻黏的重要因素,冻黏现象也只会在低温条件下才会产生。 当气温高于0℃时车厢中煤粒周围的水分子是以液态形式存在;当气温低于0℃,煤颗粒周围黏附界面间的水分开始凝结,产生冻黏现象,且与车厢直接接触的煤层会与车厢冻黏。随着温度降低,冻黏现象会逐渐增多;在温度到达一定限度时,冻黏现象基本完成,车厢内部煤粒状态趋于稳定。其变化规律如图3所示。图3 冻黏强度随温度变化规律1.1.3 压力压力作为煤冻黏条件的次要因素,对煤的冻黏强度影响较大,试验得出,通常压力会使煤的冻黏强度增大,在预压力情况下法向冻黏强度是无压力下的6.2倍,切向冻黏强度是无压力下的 5.9倍。案例中的冻黏过程中,压力来源主要是上层煤炭对下层煤炭因自重产生的压力,并且压力方向具有随机性。因此,压力对冻黏的影响作用较小。1.1.4 煤粒度不同粒度组成的煤样黏附力不同,颗粒越小黏附力越大,颗粒越大黏附力越小,且不同大小的颗粒黏附力相差较大。随着煤粒度的增加,煤炭冻黏强度与运输设备材料的冻黏强度均逐渐降低。由图4可知,煤粒度小颗粒间隙小,其冻黏界面连续致密,颗粒间的吸附作用强,导致冻黏强度增大,在冻黏现象产生时,颗粒间空隙小容易形成连续致密的煤泥冰界面,颗粒间的接触面积较大,原因在于煤粒度小,其冻黏界面连续致密,颗粒间的吸附作用强,导致冻黏强度大。而煤粒度大的颗粒间会存在空隙缺 陷,不易形成连续的界面,颗粒间的接触面积较小。结合上述微观角度分析冻黏机制,煤粒度较小的煤颗粒容易形成物理、化学吸附作用,进而导致煤粒度小的煤炭冻黏强度大于煤粒度大的煤炭。图4 不同粒度煤颗粒间的空隙示意图根据以上参数及相关研究的试验结果,离散元模型建立方法在Edem软件中首先对颗粒大小进行设置,将煤颗粒简化成特定形状、特定尺寸的颗粒。煤粒特性参数如表1所示。表1 煤粒特性参数表2 颗粒间约束通常情况下车厢内部冻黏总高度6-15cm,计算得出颗粒生成预设置总数约为20000个。1.2 车厢模型建立颗粒参数设置完成后在软件中建立车厢的物理模型,以C系列敞车为例,最大尺寸为10m×1.8m×2.6m,由于离散元软件运算复杂且耗时较长,所以 在不影响仿真真实性的前提下对车厢模型在长度和 高度方向上进行简化,选择建立box,尺寸设置为1000mm×1800mm×2000mm。添加车厢材料,敞车车厢材质一般为耐候钢,根据材料特性设置参数如表3所示。表3 材料特性参数1.3 Bonding模型参数设置为模拟实际工程中的冻煤黏结情况,在Edem版本中的Phsics添加Bonding模型使颗粒与颗 粒之间具有黏结力。Bonding模型用到的是Hertz-Mindlin黏结接触模型。当需要用有限尺度的黏合剂 黏结颗粒模型时,可以应用此接触模型阻止切向和法向的相对运动;当达到最大 法向和切向应力时,这种结合就被破坏了,此后颗粒作为硬球对彼此产生作用。 这种模型适用于煤层等结构,煤颗粒间法向、切向冻黏模型都是软件自带的。想研究模型的网上找找一大把,都是利用现有软件建立的,对于我们软件使用者意义不大,我们只要知道自己使用的模型是对就好。表4 Bonding键参数1.4 清扫滚筒模型的建立采用三维建模软件建立清扫滚筒模型,包括滚筒主体、螺旋叶片和刀型截齿,简化滚筒内部结构。根据相关理论研究,对滚筒进行受力分析得 到螺旋叶片最优螺旋升角为25°,螺旋叶片采用两侧 对称布置的形式,能够对物料进行集中收拢,方便后续排料;刀型截齿增加滚筒的破碎能力,布置在叶片内侧 的刀座上,布置间距为450mm,沿螺旋叶片内侧布置。 其结构参数如表5所示。表5 滚筒结构参数图6所示为滚筒在旋转时与煤炭颗粒接触的力学模型。确定颗粒受到滚筒叶片的切向力和摩擦力自外向内持续运动。图6 清扫滚筒模型2 清扫机构力学模型构建2.1 清扫滚筒刀具三向力模型刀具在清扫过程中承受的清扫阻力可以分解为沿 刀具轨迹切线方向的切向力Fτ 、沿刀具刀尖与清扫滚 筒刀尖点速度瞬心连线方向的径向力Fn和与清扫滚 筒轴线平行的侧向力Fz,如图7所示。图7 刀具清扫过程清扫任一瞬时切向力、径向力和侧向力示意图2.2 清扫滚筒单刀某时刻受力分析冻黏浮煤清扫过程为旋转铣削,刀具的清扫厚度在不断变化,所受阻力呈动态变化。滚筒的转角和厚度在一个清扫循环中随时间变化而改变。以清扫滚筒中心点为原点建立坐标系,原点为O,原点到刀具刀头的半径为R,滚筒旋转角速度为ω,刀头线速度为vt ,关系式为vt =ωR;滚筒牵引速度为v,转角为φ,清扫深度为H,清扫厚度为h,清扫进距为fp ,关系式为fp = 2πv/ω。以刀尖点线速度切向τ和法向n建立坐标系, 沿刀具轨迹切线方向的切向力为Fτ ,径向力为Fn ,将上述力进行合成得到清扫滚筒纵向垂直平面内清扫阻力合力为Fτn ,清扫滚筒重力为G,刀具刀头速度瞬心。为O′,刀头距离速度瞬心的距离为ρ,瞬心O′到清扫滚筒轴线的距离为r,关系式为r=v/ω,刀头合速度与清扫线速度的夹角为ψ,图8中Rx 、Ry 分别为清扫滚筒轴上的水平和竖直方向上的支撑反力,驱动力矩为 MR 。清扫阻力合力可分解为Fx 和Fy 。根据上述清扫厚度计算公式,利用平衡关系可以得到刀具在清扫过程中某一时刻各力之间的关系式,如式所示。图8 刀具清扫过程中某一时刻的受力分析3 清扫参数对清扫阻力的影响3.1 清扫阻力单因素仿真为研究清扫机构在清扫过程中所受阻力的影响, 采用联合仿真的方法对其过程进行模拟,具体步骤如下:首先建立清扫机构三维模型并添加相应的材料参数,随后导入到Recurdyn中创建刚性体并添加运动副及运动参数方程;其次将Edem中的耦合文件添加到Recurdyn中,完成耦合后,将模型的零件生成可联合 仿真的wall文件导入到Edem中,如图9所示,最后对不同运动参数进行单因素变量仿真。图9 清扫过程联合仿真模型利用Edem和Recurdyn的后处理功能,可以分别得到煤炭颗粒的运动情况和清扫滚筒单刀受力情况, 针对不同的仿真组进行输出得到相应的仿真数据。滚筒转速是冻黏浮煤清扫机构的重要性能参数,滚筒转速主要影响的是清扫滚筒最外圈线速度,对清扫性能有重要影响。根据其他相关铣削清扫工具的转速参数,转速通常在40-220r/min,因此以滚筒转速 为第一研究对象,控制其他因素恒定,将滚筒转速仿真 组的参数从60r/min开始,间隔20r/min,共设置 5组。牵引速度作为清扫阻力的影响因素之一,其数值 决定了清扫耗时的长短和清扫滚筒在水平方向上的运动情况,对其进行单因素仿真试验,相关清扫设备沿清 扫方向的移动速度通常在0.04-0.1m/s。因此,为研究牵引速度对单刀清扫阻力的影响规律,设置仿真组,滚筒转速根据上述仿真结果设置为80r/min,牵引速 度以0.04m/s为起始,间隔0.01m/s,共5组。清扫深度对单刀清扫阻力的影响规律,根据清扫机构清扫滚筒的结构参数,清扫深度范围选取60-140mm,每组仿真深度间隔20mm,共5组,滚筒转速 为80r/min、牵引速度为0.05m/s。具体参数如表6 所示。表6 仿真组参数设置清扫过程联合仿真结束后,通过联合仿真软件的分析处理功能得到清扫滚筒刀具的受力图和不同转速下单刀具的切向力峰值,将数据导出并绘制曲线,图10为某一转速下单刀清扫循环切向力图。由图10可以看出,切向力从切入过程中开始到切出冻黏浮煤层 后结束。图10 清扫过程单刀切向力变化图在冻黏浮煤清扫过程中,单把刀具的三向力包括切向力、径向力和侧向力,也就是清扫冻黏浮煤阻力在切向、径向和侧向三个方向上的分力,它们决定了清扫阻力的大小。根据仿真结果,相对应地输出了单刀在进行冻煤破碎时的三向力曲线。根据仿真结果发现,刀具在清扫过程中所收到的侧向力极小,其峰值为0-50N,大部分接近于0。其原因在于刀具所受到的侧向力两侧对称。因此,认为清扫阻力主要受切向力和径向力影响,输出其曲线如图11所示。图11 单刀清扫切向力、径向力峰值平均值随不同因素变化曲线通过Recurdyn和Edem的联合仿真建立仿真模型,以单因素变量对清扫滚筒刀具清扫切向力进行研究,得到了单因素对清扫刀具在清扫过程中所受阻力的影响规律。随着清扫转速的升高,单刀切向力在一 定范围内波动;随着牵引速度的提高,单刀切向力在0.05m/s达到最低随后一直上升;随清扫深度的增加,单刀切向力逐渐增大。根据刀具三向受力情况,确定了此清扫过程中,决定清扫阻力的主要力为切向力和径向力,且径向力变化趋势与切向力相同,因此确定切向力为清扫阻力的主要因素。滚筒转速、牵引速度和清扫深度对刀具所受到的 切向力和径向力变化规律趋势相同且数值相近,与理论计算得到的切向力与径向力峰值的比值相同,说明切向力和径向力决定了清扫机构清扫阻力的大小。因此减小切向力大小以降低清扫机构清扫过程中清扫阻力,提高清扫性能。3.2 清扫滚筒的性能优化分析根据对单因素运动参数研究,得到了滚筒转速n、牵引速度v、清扫深度H分别对清扫刀具阻力的影响规律,并得到了清扫阻力最小时的三种参数的取值范围,现利用响应面法对这三种影响因素进行正交仿真试验,得出三因素对清扫滚筒清扫比能耗的综合影响,并利用Matlab多项式拟合的方法得出三因素的匹配模型,得到最优清扫效率下各参数的最优取值。根据公式推导出清扫过程清扫滚筒的整体清扫比能耗,它是评价清扫滚筒清扫性能的重要指标,代表了清扫滚筒破碎单位体积冻黏浮煤所消耗的能量,花费的能量越少,清扫效率越高,清扫滚筒螺旋叶片和刀具的损耗越小,其计算式为利用Recurdyn后处理功能导出清扫滚筒平均转矩,计算冻黏浮煤所破碎的体积,最后对17组仿真数据进行计算得到各自的清扫比能耗,如表7所示。表7 清扫比能耗仿真试验对清扫比能耗仿真数据进行分析,得到结果,利用Matlab对数据进行2阶拟合,得到清扫比能耗与运动参数的函数关系式为拟合后匹配得到数学模型,对其可靠性进行分析,以清扫比能耗的置信度和方差为评价指标,判断拟合是否可行。方差分析如表8所示。模型F值为30.3%意味 着模型显著,只有0.01%的可能性才会出现如此大的F值。对其P值和失拟项分析后,P值小于0.05表示模型项显著,由于噪声,有49.71%的可能性拟合不足F值,是不显著的。因此,模型符合要求,得到的拟合的数学模型能够合理地描述清扫比能耗与三个运动参数之间的影响变化规律,模型准确度较高。表8 清扫比能耗方差分析对结果进行拟合如表9所示。由表9可知,预测 R2为0.8107,与调整R2为0.9428合理一致;信噪比最好大于4,实际为16.952,表示信号充足,模型精度较高。表9 拟合统计由图12可以看出,残差各点合理的分布在拟合直线附近,说明残差值小,数学模型较合理准确。图12 回归拟合的残差分布根据各因素对清扫比能耗的影响规律,导出单因素对清扫比能耗的影响规律,如图13所示。图13(a) 所示为滚筒转速对清扫比能耗的影响,当牵引速度为0.05m/s,清扫深度为100mm时,可以看出随着滚筒 转速的增加,清扫比能耗先缓慢降低后快速升高。 图13(b)所示为牵引速度对清扫比能耗的影响,当清扫转速为80r/min,清扫深度为100mm,可以看出随着牵引速度的增加,清扫比能耗在逐渐降低。图13 (c)所示为清扫深度对清扫比能耗的影响,滚筒转速为80r/min,牵引速度为0.05m/s时,随着清扫深度的增加,清扫比能耗逐渐降低。说明清扫滚筒的牵引速度和清扫深度的增加有助于减少能耗,成反比关系。图13 单因素对清扫比能耗的影响规律得到目标值的二次拟合多项式后,对此类无约束优化问题采用多目标粒子群算法寻求拟合函数保证清扫能力的情况下能耗最低的性能参数匹配方案。根据单因素的仿真结果范围设置变量的上下界,迭代次数共50次,迭代结果如图14所示。图14 粒子群算法优化结果由图14可知,方程在迭代12次后稳定,最终得到清扫转速为78r/min、牵引速度为0.05m/s、清扫深度为100mm时,清扫滚筒比能耗最低,数值为 0.22kWh/m^3,在此参数下清扫机构性能达到最优。网络整理,仅限内部分享,禁止商用公 众号:机电君来源:机电君

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈