机械装备虚拟现实设计及实例分析 课件 第5章 装备运动仿真关键技术_第1页
机械装备虚拟现实设计及实例分析 课件 第5章 装备运动仿真关键技术_第2页
机械装备虚拟现实设计及实例分析 课件 第5章 装备运动仿真关键技术_第3页
机械装备虚拟现实设计及实例分析 课件 第5章 装备运动仿真关键技术_第4页
机械装备虚拟现实设计及实例分析 课件 第5章 装备运动仿真关键技术_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章装备运动仿真关键技术战略性新兴领域教材建设团队-重型高端装备制造目录CONTENTS5.1 运动仿真总体思路5.2 父子关系5.3 液压支架运动仿真5.4 采煤机运动仿真5.5 刮板输送机运动仿真5.1运动仿真总体思路战略性新兴领域教材建设团队-重型高端装备制造1虚拟现实环境中默认不具备物理意义上的运动约束,要想实现运动仿真首先就要对装备模型进行姿态解析。根据其工作运动原理,分析并揭示其运动过程中的不同部件之间角度、长度等一系列参数变化的规律。以此运动解析为基础,再编写控制脚本。父子关系构建姿态解析编写脚本目录CONTENTS5.1 运动仿真总体思路5.2父子关系5.2.1 父子关系的功能5.2.2 父子关系的构建方法5.2.3 父子关系的脱离5.3 液压支架运动仿真5.4 采煤机运动仿真5.5 刮板输送机运动仿真5.2父子关系战略性新兴领域教材建设团队-重型高端装备制造1 Unity3d中、父子关系是层级(Hierarehy)视图中的基本组织结构。它是指一个对象附属于另一个对象,而且一个父物体可以附带多个子物体。

父子关系在Unity3d中的作用主要体现在变换继承、层级组织、局部坐标系、批量操作等方面。合理利用父子关系可以使得机械装备的虚拟仿真更加结构化、易于管理和高效。5.2.1父子关系的功能5.2.1父子关系的功能战略性新兴领域教材建设团队-重型高端装备制造1(1)继承性

在父子关系中,子对象会继承父对象的变换(Transform)属性,包括移动、旋转和缩放。5.2父子关系5.2.1父子关系的功能战略性新兴领域教材建设团队-重型高端装备制造1(2)局部独立性

子对象的移动和旋转仅仅是相对于其父对象的局部坐标系。(3)层级性。

可以对多个物体进行批量化管理和操作。5.2父子关系战略性新兴领域教材建设团队-重型高端装备制造1Transform.Position(全局)和Transform.localPosition(局部)全局坐标系全局坐标系是Unity场景的绝对坐标系统,所有对象都基于这个坐标系统进行放置。在全局坐标系中,(0,0,0)点是整个场景的中心点,也叫做“世界原点”。全局坐标系中的轴始终是固定的,X轴向右,Y轴向上,Z轴向前(默认情况下)。如果你获取物体的transform.Position,你获得的是该物体相对于全局坐标系的绝对位置局部坐标系局部坐标系是相对于某个对象自身的坐标系统。每个物体在Unity中都有自己的局部坐标系。局部坐标系的(0,0,0)点是物体的中心点,或者说是物体的“本地原点”。局部坐标系的轴是相对物体的方向,它会随着物体的旋转而改变方向。如果你操作物体的transform.localPosition,是在更改它在局部坐标系中的位置。5.2.1父子关系的功能5.2父子关系5.2.2父子关系的构建战略性新兴领域教材建设团队-重型高端装备制造1A.transform.SetParent(B)

//将B设置为A的父物体(1)编辑器构建:在Hierarchy层级视图中,鼠标左键长按物体A,拖动至B松开鼠标,则使B成为A的父物体。(2)代码实现:声明变量,并在Start函数中调用方法实现父子关系的初次绑定。5.2父子关系5.2.2父子关系的构建战略性新兴领域教材建设团队-重型高端装备制造1(1)编辑器构建:在Hierarchy层级视图中,鼠标左键长按物体A,拖动至B松开鼠标,则使B成为A的父物体。(2)代码实现:声明变量,并在Start函数中调用方法实现父子关系的初次绑定。5.2父子关系5.2.3父子关系的脱离战略性新兴领域教材建设团队-重型高端装备制造1(1)编辑器脱离:在Hierarchy层级视图中,鼠标左键长按物体B层级下的物体A,长按拖动其脱离物体B的子层级,实现父子关系的断开。(2)代码实现:声明变量,调用特定方法实现父子关系的脱离。A.transform.SetParent(null)

//将A的父物体设为空B.DetachChildren();//解除B的所有子物体5.2父子关系5.2.3父子关系的脱离战略性新兴领域教材建设团队-重型高端装备制造1(1)编辑器脱离:在Hierarchy层级视图中,鼠标左键长按物体B层级下的物体A,长按拖动其脱离物体B的子层级,实现父子关系的断开。(2)代码实现:声明变量,调用特定方法实现父子关系的脱离。5.2父子关系目录CONTENTS5.1 运动仿真总体思路5.2父子关系5.3 液压支架运动仿真5.3.1 液压支架父子关系构建5.3.2 液压支架姿态解析5.3.3 液压支架脚本逻辑5.4 采煤机运动仿真5.5 刮板输送机运动仿真5.3液压支架运动仿真战略性新兴领域教材建设团队-重型高端装备制造1虚拟现实环境中默认不具备物理意义上的运动约束,要想实现运动仿真首先就要对装备模型进行姿态解析。根据其工作运动原理,分析并揭示其运动过程中的不同部件之间角度、长度等一系列参数变化的规律。以此运动解析为基础,再编写控制脚本。父子关系构建姿态解析编写脚本战略性新兴领域教材建设团队-重型高端装备制造15.3.1液压支架父子关系构建5.3液压支架运动仿真后连杆前连杆掩护梁护帮板底座顶梁伸缩梁前立柱后立柱战略性新兴领域教材建设团队-重型高端装备制造15.3液压支架运动仿真5.3.1液压支架父子关系构建底座部分父子关系连杆部分父子关系立柱部分父子关系战略性新兴领域教材建设团队-重型高端装备制造15.3液压支架运动仿真5.3.1液压支架父子关系构建实现方式:①通过从Hierarchy窗口直接长按物体拖动到另一物体上实现;②通过脚本编写C#代码,调用Unity引擎中的构建父子关系的特定方法实现创建脚本各部件Transform的声明//声明底座publicTransformdizuo;//声明前连杆一脉publicTransformxiaozhou_qianliangan;publicTransformqianliangan;//声明后连杆一脉publicTransformxiaozhou_houliangan;publicTransformhouliangan;publicTransformxiaozhou_yanhuliang;publicTransformYanHuLiang;publicTransformyanhuliang_CeHu;publicTransformxiaozhou_qianlianganshang;publicTransformxiaozhou_dingliang;publicTransformDingLiang;publicTransformxiaozhou_houlizhushang;publicTransformxiaozhou_qianlizhushang;……5.3.1液压支架父子关系构建战略性新兴领域教材建设团队-重型高端装备制造15.3液压支架运动仿真publicTransformdizuo;//定义底座transform组件变量publicTransformxiaozhou—houlianganxia;//定义后连杆销轴transform组件变量publicTransformxiaozhou—qianlianganxia;//定义前连杆销轴transform组件变量Xiaozhou-qianlianganxia=dizuo.transform.GetChild(0).transform;//前连杆销轴作为液压支架底座的第一个子物体Xiaozhou-houlianganxia=dizuo.transform.GetChild(1).transform;//后连杆销轴作为液压支架底座的第二个子物体构建父子关系的语句战略性新兴领域教材建设团队-重型高端装备制造1液压支架的姿态解析主要为液压支架四连杆机构的解析、四连杆机构与顶梁的协同解析、四连杆机构和顶梁与前后立柱之间的协同解析。5.3.2液压支架的姿态解析5.3液压支架运动仿真符号意义θ后连杆倾角δ顶梁倾角Φ前后连杆连线与水平面夹角β前连杆倾角γ掩护梁倾角η前立柱与底座夹角ε后立柱与底座夹角战略性新兴领域教材建设团队-重型高端装备制造15.3.2液压支架的姿态解析

已知L1、L2、L3、L4、L5、θ和φ等结构参数,设求β和γ

5.3液压支架运动仿真5.3.3液压支架脚本逻辑战略性新兴领域教材建设团队-重型高端装备制造15.3液压支架运动仿真(1)局部坐标系与全局坐标系的建立

5.3.3液压支架脚本逻辑战略性新兴领域教材建设团队-重型高端装备制造15.3液压支架运动仿真(2)液压支架各动作实现建立液压支架的状态State推溜(0)、收护帮板(1)、降柱(2)、移架(3)、升柱(4)、伸护帮板(5)。运用switch…case…语句来实现几个不同状态情况下随着采煤机位置的变化而自动切换各自的运行状态。m、n和q分别为收护帮工艺、移架工艺和推溜工艺的参数。5.3.3液压支架脚本逻辑战略性新兴领域教材建设团队-重型高端装备制造15.3液压支架运动仿真(3)液压支架速度求解

5.3.3液压支架脚本逻辑战略性新兴领域教材建设团队-重型高端装备制造15.3液压支架运动仿真(3)液压支架速度求解Unity可以对每秒刷新的帧数进行设置,在Edit—ProjectSetting—Quality的“VSyncCount”选项改为“Don’tSync”,然后添加修改帧数代码:Application.targetFrameRate=targetFrameRate;//targetFrameRate=10表示程序一秒执行10帧,对应的Update函数执行10次。假设升柱过程中,顶梁上升200mm,根据前面位姿解算结果,对应的后立柱上升201.834mm,计算可得,升柱过程时间为14.46s,所以每帧增量为201.834/(14.46×10)=1.39mm。后立柱倾角由86.8度变到86.6度,然后通过if语句循环实现油缸伸长:if(DiZuoHouLiZhuShenChang<201.834f){

DiZuoHouLiZhuShenChang+=1.39f;}5.3.3液压支架脚本逻辑战略性新兴领域教材建设团队-重型高端装备制造15.3液压支架运动仿真(5)移架与推溜过程的父子关系变换由于顶梁作为掩护梁的子物体,会随着掩护梁的转动而转动,因此应该对顶梁在掩护梁转动方向的反方向进行相应的角度补偿,保证顶梁姿态正确。顶梁倾角由顶梁倾角变量独自驱动,并在掩护梁动作过程中消除掩护梁角度变化影响,由如下代码实现:YanHuDingLiangXiaoZhou.localRotation=newQuaternion(0,0,Mathf.Sin((DingLiangRotAngle-YanHuLiangQing

JiaoAngle)*Mathf.PI/360),Mathf.Cos((DingLiangRotAngle-YanHuLiangQing

JiaoAngle)*Mathf.PI/360));在推溜完毕后,必须将推移油缸杆和推移油缸体父与子关系暂时分离,用以下代码实现:TuiYiYouGangTi.transform.DetachChildren();在移架完毕后,再次将推移杆的父物体设置为推移油缸体,并再次跟随父物体一起运动:TuiYiYouGangGan.transform.parent=TuiYiYouGangTi;(4)顶梁抵消掩护梁转动角度5.3.3液压支架脚本逻辑战略性新兴领域教材建设团队-重型高端装备制造15.3液压支架运动仿真(6)实际工况下的液压支架姿态声明Transform组件声明Float类型计算变量(7)完整的代码逻辑定义采煤机的俯仰角、横滚角和偏航角为综采工作面的俯仰角、横滚角和偏航角。这三个角度的相互变化显示液压支架实际工作过程中的变化,进而也显示综采工作面地形条件发生的变化,用以下代码实现:transform.eulerAngles=newVector3(RollAngle,YawAngle,PitchAngle);调用动作方法,执行判断逻辑声明变量区Start函数FixedUpdate函数变量初始化赋值、父子关系构建动作方法声明区编写动作方法执行逻辑目录CONTENTS5.1 运动仿真总体思路5.2父子关系5.3 液压支架运动仿真5.4

采煤机运动仿真5.4.1 采煤机父子关系构建5.4.2 采煤机姿态解析5.4.3 采煤机脚本逻辑5.5 刮板输送机运动仿真战略性新兴领域教材建设团队-重型高端装备制造15.4.1采煤机父子关系构建5.4采煤机运动仿真publicTransformJiShen;//定义采煤机机身变量YouJiShen=CaiMeiJi.transform.GetChild(0).transform;//右机身是采煤机的第一个子物体战略性新兴领域教材建设团队-重型高端装备制造15.4.2采煤机姿态解析采煤机姿态示意图5.4采煤机运动仿真

战略性新兴领域教材建设团队-重型高端装备制造15.4.3采煤机脚本逻辑5.4采煤机运动仿真采煤机主要动作有机身的变速移动,摇臂的旋转,调高油缸的伸长收缩与旋转,滚筒的旋转。if(Youlong<699f){YouYaoBiLianDong(YouRotAngle);Youlong+=Youinc;}publicvoidYouYaoBiLianDong(floatYouRotAngle){YouYouGangAngle=Mathf.Acos((1693f*1693f+1630f*1630f-985f*985f)/(2f*1693f*1630f))-Mathf.Acos(((1693f-Youlong)*(1693f-Youlong)+1630f*1630f–985f*985f)/(2f*(1693f-Youlong)*1630f));//右调高油缸的转动角度youyaobixiaozhou.localRotation=newQuaternion(0,0,Mathf.Sin(-0.5f*YouRotAngle),Mathf.Cos(-0.5f*YouRotAngle));//右摇臂销轴的转动角度youtuiyiyougangxiaozhou.localRotation=newQuaternion(0,0,Mathf.Sin(0.5f*(-YouYouGangAngle)),Mathf.Cos(0.5f*(-YouYouGangAngle)));//右调高油缸销轴的转动角度youtuigan.localPosition=newVector3(-13f+Youlong/100f,0f,0f);//控制右调高油缸推杆伸缩量}采煤机摇臂动作函数声明采煤机摇臂动作函数调用目录CONTENTS5.1 运动仿真总体思路5.2父子关系5.3 液压支架运动仿真5.4采煤机运动仿真5.5

刮板输送机运动仿真5.4.1 刮板机父子关系构建5.4.2 刮板机姿态解析5.4.3 刮板机脚本逻辑5.5.1刮板机父子关系构建战略性新兴领域教材建设团队-重型高端装备制造15.5刮板输送机运动仿真publicTransformJiWei;//定义刮板机机尾变量JiWeiXiaoZhou1=CaiMeiJi.transform.GetChild(0).transform;//机尾销轴1是刮板机的第一个子物体战略性新兴领域教材建设团队-重型高端装备制造15.5.2刮板机姿态解析5.5刮板输送机运动仿真

战略性新兴领域教材建设团队-重型高端装备制造15.5.3刮板机脚本逻辑5.5刮板输送机运动仿真对场景中的中部槽编号,并给每一节中部槽添加销轴。刮板输送机弯曲过程中,各节中部槽绕销轴有微小转动,为每个销轴定义变量数组,通过对销轴数组变量的操作,实现刮板输送机的弯曲。在Gbj.cs脚本中对销轴变量进行赋值,编写QianDuan()、HouDuan()函数,控制刮板输送机的前9节中部槽及9节以后的中部槽弯曲。虚拟刮板输送机弯曲段形成:声明函数QianDuan()用于控制刮板输送机前9节中部槽推溜,形成第一个弯曲段。弯曲过程如下:液压支架1推溜,推动中部槽1前进1/9个采煤机截深,与之相连的中部槽2前销轴与中部槽1后销轴销轴坐标一致,同时,中部槽2绕父物体旋转;液压支架2推溜时,中部槽1继续向前推溜1/9个采煤机截深,中部槽2与中部槽3的连接处销轴坐标一致,同时,中部槽3绕父物体旋转;以此类推,直到9个中部槽形成“S”弯曲段。战略性新兴领域教材建设团队-重型高端装备制造15.5.3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论