999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Unity 3D的采煤機虛擬培訓系統設計

2022-05-06 07:39:16高志廣
中國新技術新產品 2022年3期
關鍵詞:功能模塊采煤機動畫

石 洋 高志廣 郭 爽

(三一重型裝備有限公司,遼寧 沈陽 110027)

0 引言

虛擬現實技術是物聯網的關鍵技術之一,將虛擬現實技術引入采煤機培訓系統,可以直觀地展示產品的參數規格、功能特性等信息。同時,采煤機長期處于地下惡劣的工況環境中,一旦發生停機故障就會嚴重損害企業利益。因此,在采煤機無故障運行時,積極展開有針對性地數字化虛擬培訓尤為重要。

運用Unity 3D技術對采煤機虛擬培訓系統進行開發,通過設置密碼管理、設備基本信息、結構展示、工作原理、維修保養、平臺拓展等模塊,可以為使用者搭建一個實時交互的虛擬環境,模擬采煤機在運行過程中的狀態,從而完成全面了解采煤機以及對企業員工進行崗前培訓的工作,使員工快速掌握采煤機的相關知識。該文介紹了基于Unity 3D的采煤機虛擬培訓系統的設計流程、結構和功能,分析了該系統的優點,對開展有針對性的虛擬培訓具有重要意義。

1 系統總體方案

采煤機虛擬培訓系統以Unity 3D引擎作為系統開發平臺,建模工具采用Creo6.0,在Maya中進行分級重組之后,導出FBX格式,然后導入Unity 3D中,完成培訓系統場景設計。Unity 3D是由Unity Technologies 開發的跨平臺引擎,該軟件具有可視化編程、支持Open GL、支持Direct11以及集成了Phys X3.3物理系統等特點,因此在虛擬現實仿真領域具有廣泛的應用實例。

1.1 系統總體框架

采煤機虛擬培訓系統采用三層軟件架構體系,由顯示模塊、操作模塊以及功能模塊組成,系統架構如圖1所示:1)顯示模塊。搭建采煤機作業環境,在Unity 3D平臺中對采煤機的工作部件進行展示和管理。2) 操作模塊。操作模塊實現該培訓系統的密碼設置、GUI界面顯示以及人機交互等功能。3) 功能模塊。功能模塊通過編寫C++腳本來展示采煤機的工作原理以及維修保養要點,還可以對采煤機的工作過程、液壓原理以及重要部件的拆卸與安裝進行動畫仿真。

圖1 系統架構圖

1.2 系統開發流程

采煤機虛擬培訓系統的硬件環境為云桌面,處理器為Intel(R) Xeon Gold 6254 CPU @ 3.10GHz,RAM 32G。可以通過鍵盤、手柄等硬件對采煤機虛擬培訓系統的功能模塊進行操控。該系統的開發流程圖如圖2所示。

圖2 系統開發流程圖

2 軟件系統設計

為了實現該系統維修保養的逼真程度和重要部件拆卸與安裝的功能,需要搭建采煤機的三維模型和虛擬作業環境。

2.1 三維建模與場景搭建

為了重現采煤機的作業現場,根據采煤機外形尺寸并通過Creo6.0軟件搭建采煤機的模型,考慮到后續要用Maya軟件及Unity 3D開發平臺對該模型進行操作,為提高Maya軟件及Unity 3D開發平臺的工作效率,因此需要簡化建模,減少不必要的零件組裝(例如銘牌等部件)。同時,將機械支撐部分建模成整體,便于后續處理。經過簡化建模后的采煤機包括左截割部組件、右截割部組件、行走部、過橋組件、機身組件、長滑靴組件、短滑靴組件、銷軸組件、拖纜組件、水系統和液壓系統等部分。其中,電氣系統未建模,而是用EPLAN導出電氣系統原理圖,以二維圖的形式展示后續Unity 3D開發平臺中的工作原理界面。采煤機建模完成后需要搭建作業場景,如圖3所示。將采煤機三維模型導入Maya中進行渲染、分級重組以及格式轉換,將導出后的FBX格式的文件再導入Unity 3D中,在Unity 3D中進行場景搭建,搭建完的場景基本可以還原采煤機的真實工作環境。

圖3 場景模型

2.2 人機交互設計

Unity 3D支持多種編譯腳本,該系統基于C#語言編寫系統腳本,IDE采用Microsoft Visual Studio 2019。該系統設置了用戶登錄密碼驗證、重要部件結構展示、工作原理仿真、重要部件的拆卸與安裝虛擬動畫展示以及維修保養要點知識等主要界面。這些功能模塊均采用人機交互模式,可人工操縱鼠標對某一項功能進行逐步操作,從而提升使用者的直觀感受。

使用鼠標控制采煤機模型,可以對采煤機模型進行移動、旋轉、縮放和多角度觀察,還可以對采煤機的重要部件的結構、工作原理、重要部件拆卸與安裝以及維修保養方法等內容進行展示、操作,系統地學習采煤機的結構與原理。

用鼠標左鍵按住模型對其進行拖動控制、鼠標滑輪縮放模型、鼠標中鍵按住旋轉模型的部分腳本如下。

if (MoveCam.instance.isRight) {

//獲取目標點坐標。棄用

//x += MoveCam.instance.getTargetPos().x * xSpeed * 0.002f;

//y -=MoveCam.instance.getTargetPos().y * ySpeed * 0.002f;

x += getTargetPos().x * xSpeed * 0.002f;

y -= getTargetPos().y * ySpeed * 0.002f;

} else {

x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;

y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;

}

x = ClampAngle(x, xMinLimit, xMaxLimit);

y = ClampAngle(y, yMinLimit, yMaxLimit);

//print(Input.GetAxis("Mouse X"));

//print( Input.GetAxis("Mouse Y"));

//print(x);

//print(y);

}

//if( Input.GetMouseButton(1))

//{

//string str = EventSystem.currentToString().Substring(EventSystem.current.ToString().IndexOf(":"), 32);

//string str2 = str.Substring(str.IndexOf("(") + 1, str.IndexOf(")")- str.IndexOf("(") - 1);

// float xx = float.Parse(str2.Split(',')[0]);

// float yy = float.Parse(str2.Split(',')[1]);

// //distanceY += Input.GetAxis("Mouse Y") * ySpeed *0.002f;

// distanceY += yy * ySpeed * 0.0002f;

// //distanceY = Mathf.Clamp(distanceY, minDistanceY,maxDistanceY);

// //print(Input.GetAxis("Mouse X"));

// //print( Input.GetAxis("Mouse Y"));

// //print(x);

// //print(y);

// }

/*if((Input.mousePosition.x > 0)&&

(Input.mousePosition.x < Screen.width * leftCam.rect.width)&&

(Input.mousePosition.y > Screen.height * leftCam.rect.y)&&

(Screen.height > Input.mousePosition.y))

{*/

//if((Input.mousePosition.x > 0)&&

// (Input.mousePosition.x < Screen.width * leftCam.rect.width)&&

// (Input.mousePosition.y > Screen.height * leftCam.rect.y)&&

// (Screen.height > Input.mousePosition.y))

//{

if (!IsRaycastUI02()) {

distance += Input.GetAxis("Mouse ScrollWheel") * mSpeed;

distance = Mathf.Clamp(distance, minDistance, maxDistance);

}

//}

Quaternion rotation = Quaternion.Euler(y, x, 0.0f);

Vector3 disVector = new Vector3( 0.0f, 0.0f, -distance );

Vector3 position = rotation * disVector+target.position;

//adjust the camera

if( needDamping )

{

transform.rotation = Quaternion.Lerp(transform.rotation,rotation, Time.deltaTime*damping);

transform.position = Vector3.Lerp(transform.position, position,Time.deltaTime*damping);

}

else

{

transform.rotation = rotation;

transform.position = position;

}

2.3 功能模塊設計

功能模塊主要包括工作原理仿真和維修保養要點2個部分。其中,工作原理仿真模塊重點展現采煤機重要部件的結構、液壓系統、電氣系統和水系統的工作原理。液壓系統、水系統采用真實的管路布置圖,可直觀展現系統工作時的液體流動線路以及驅動零部件的原理,電氣系統則無具體布置圖,僅通過二維原理圖展示電氣原理。維修保養要點模塊展示重要部件結構、拆卸與安裝動畫過程以及維修保養等相關信息。結構展示和拆卸與安裝動畫均可逐級向下拆解,直至不可分解的焊接件,可以直觀地展現采煤機的結構,并還原真實的拆卸與安裝過程。

將經Creo6.0建模后的整機模型導入Maya軟件后,對重要部件進行分類分組管理,不僅避免了過多零件給Unity 3D的層級視圖管理帶來的困難,而且還加快了查找零件的速度,提升了開發效率。將分類分組后的模型導入采煤機虛擬培訓系統,展示為左截割部、右截割部、左滾筒、右滾筒、長滑靴、短滑靴、行走部、液壓系統、水系統以及電氣系統等部分。截割部等重要部件可以繼續向下一組成部分逐級分解,直至分解為組成部分。每個重要部件均配有原理展示動畫和功能說明。左截割部的齒輪動力傳動如圖4所示(動力傳輸方向為電機——一軸組件——二軸組件——三軸組件——四軸組件——五軸組件——行星組件,動力傳輸部件用粗線顯示)。

圖4 齒輪動力傳動圖

水系統采用虛擬液流的流動展示水系統的工作原理。外噴霧水路的液流流動圖如圖5所示(外噴霧水路流向為進水口——冷卻器——殼體內部水道——殼體底部水道——噴嘴)。

圖5 外噴霧水路

2.3.2 維修保養模塊

維修保養模塊重點展現重要部件的拆卸與安裝以及保養要點。在模擬拆卸與安裝的過程中,根據采煤機設計的特點,用動畫形式展示拆卸與安裝過程,可以通過人機交互的操作來控制。Unity 3D的Tween功能包括多種動畫類型。在腳本中設置零部件運動過程中的開始位置坐標和結束位置坐標,可以展現該零件的運動軌跡。通過編寫腳本也可使零件的運動軌跡消失,零部件的拆卸與安裝過程就是通過該功能實現的,在編寫腳本的過程中,需要不斷調整采煤機模型的內部參數,使模擬效果更加絲滑、真實。

針對行走部的維修保養,導向滑靴和行走輪的拆卸過程如下:拆下行走箱蓋板螺栓,并拆下行走箱蓋板露出軸頭蓋;采用頂絲將軸頭蓋頂出后拆除行走部螺栓和墊圈;利用殼體螺紋和螺釘拆除行走殼體組焊件后取出油封,最后拆除導向滑靴組焊件和銷軌輪。具體拆卸過程如圖6所示。

圖6 導向滑靴和行走輪拆卸過程圖

3 系統整體試驗

采用鼠標和鍵盤對采煤機虛擬培訓系統進行操作控制。使用鍵盤輸入密碼登錄該系統的操作界面。使用鼠標選擇相應功能按鈕觸發對應功能。

為了驗證該系統是否能滿足采煤機服務人員的培訓要求,邀請100名服務人員對該系統進行測試。通過與100名服務人員的共同測試與交流表明,該系統功能模塊完整,系統響應迅速,動畫過渡絲滑,人機交互性較強。系統測試結果見表1。

表1 系統測試結果

4 結語

該文設計了一種基于Unity 3D的采煤機虛擬培訓系統,以三維模型為載體,采用交互式動畫展示采煤機的重要部件架構。該系統搭載采煤機真實控制面板,用實景化的方式展示了拆卸與安裝過程以及維修保養要點。同時,該系統以三維布管模型為載體,還原真實系統的運行狀態,展示采煤機整機運動及系統的工作原理。服務人員通過學習該系統可以完整、系統地了解采煤機,從而達到提升服務人員故障維修水平的目的。

猜你喜歡
功能模塊采煤機動畫
煤礦用隔爆型采煤機電機FMECA分析
防爆電機(2022年1期)2022-02-16 01:14:06
做個動畫給你看
動畫發展史
我的動畫夢
文苑(2019年22期)2019-12-07 05:28:56
基于ASP.NET標準的采購管理系統研究
軟件導刊(2016年9期)2016-11-07 21:35:42
我是動畫迷
學生天地(2016年9期)2016-05-17 05:45:06
輸電線路附著物測算系統測算功能模塊的研究
M市石油裝備公服平臺網站主要功能模塊設計與實現
石油知識(2016年2期)2016-02-28 16:20:16
功能模塊的設計與應用研究
MGTY300/700-1.1D采煤機制動系統分析改進
河南科技(2014年18期)2014-02-27 14:14:58
主站蜘蛛池模板: 国产精品美人久久久久久AV| 99精品这里只有精品高清视频| av在线手机播放| 91探花国产综合在线精品| 一级黄色网站在线免费看| 天堂av综合网| 熟妇人妻无乱码中文字幕真矢织江| 在线免费观看a视频| 国产黄网站在线观看| 国产在线精品美女观看| 欧美a级在线| 亚洲成人动漫在线观看| 亚洲a级在线观看| 欧美天堂在线| 欧美激情视频二区| 亚洲无卡视频| 免费国产福利| a毛片在线| 亚洲天堂网视频| 日本午夜三级| 国产精品免费p区| 国产成人亚洲综合A∨在线播放| 伊在人亚洲香蕉精品播放| 日本高清免费不卡视频| 日韩少妇激情一区二区| 亚洲第一成网站| 高清无码手机在线观看| 久久国产乱子| 97se亚洲综合在线天天| 色视频国产| 久久中文电影| 亚洲欧美在线综合图区| av一区二区无码在线| 亚洲综合国产一区二区三区| 亚洲欧美日韩天堂| www亚洲精品| 在线精品亚洲国产| 夜夜拍夜夜爽| 国产一级毛片高清完整视频版| 麻豆精品在线播放| 在线观看国产精品第一区免费| 国产aⅴ无码专区亚洲av综合网| 午夜人性色福利无码视频在线观看| 青青青国产精品国产精品美女| 最新国产在线| 福利小视频在线播放| 国内精品久久人妻无码大片高| 无码专区国产精品第一页| 园内精品自拍视频在线播放| 久久久久久高潮白浆| 亚洲AV无码精品无码久久蜜桃| 日本午夜精品一本在线观看| 久久中文电影| 波多野结衣国产精品| 日韩高清成人| 国产精品免费电影| 免费A级毛片无码免费视频| 亚洲色图综合在线| 亚洲人成色在线观看| 亚洲熟女中文字幕男人总站| 国产最爽的乱婬视频国语对白| AV熟女乱| 国产最爽的乱婬视频国语对白 | 亚洲手机在线| 欧美亚洲一二三区| 日韩精品无码一级毛片免费| 国产AV无码专区亚洲精品网站| 精品久久人人爽人人玩人人妻| 欧美一级一级做性视频| 直接黄91麻豆网站| 最新日韩AV网址在线观看| 久久伊人色| 2021最新国产精品网站| 亚洲三级a| 欧美成人午夜在线全部免费| 欧美国产日产一区二区| 午夜不卡视频| 在线观看无码a∨| 色135综合网| 97se综合| 亚洲AV无码乱码在线观看代蜜桃 | 国产香蕉在线视频|