雷英棟
【摘要】本文介紹了SQLite數據庫的體系機構和技術特點,結合虛擬現實環境實時動力學仿真平臺對模型進行動力學仿真所需信息的要求,建立綜合傳動裝置模型數據庫。通過調用SQLite的API函數,實現實時動力學仿真平臺與SQLite模型數據庫的鏈接。使用準備查詢的方式,實現平臺對模型數據庫信息的讀取和調用,為虛擬環境下模型的自動裝配和實時動力學仿真奠定基礎。
【關鍵詞】SQLite;綜合傳動裝置;模型數據庫;實時動力學仿真
中圖分類號: TP311.13 文獻標識碼: A 文章編號: 2095-2457(2018)30-0209-002
DOI:10.19694/j.cnki.issn2095-2457.2018.30.092
Development of a Real-time Dynamics Simulation Platform Model Database based on SQLite
LEI Ying-dong
(Jiaxing Vocational Technical College,Jiaxing Zhejiang 314036,China)
【Abstract】This paper introduces the system structure and technical characteristics of SQLite database,and establishes the comprehensive transmission model database by combining with the requirement of the real-time dynamic simulation platform of virtual reality environment for the model dynamic simulation.The real time dynamic simulation platform is connected to the SQLite model database by calling the API function of SQLite.The platform can read and invoke the information of the model database by means of the prepared query,which lays a foundation for the automatic assembly and real-time dynamic simulation of the model in the virtual environment.
【Key words】SQLite;Comprehensive transmission;Model database;Real-time dynamic simulation
0 前言
傳統的對車輛綜合傳動裝置的動力學研究,針對的主要是子系統或者零部件的動力學模型的建立和求解,不涉及虛擬裝配的內容,更不具備實時性和交互性等特點。基于虛擬裝配的實時動力學仿真,除了考慮逼真的場景模型,還需要對綜合傳動裝置進行準確的動力學建模,該模型需要包含如零件幾何信息、基本物理屬性信息等多種信息,以滿足動力學模型的準確性,從而能夠實現綜合傳動裝置在實時動力學仿真平臺下進行實時動力學仿真。
1 SQLite數據庫介紹
SQLite是由D.Richard Hipp采用C語言編寫的一款開源的、輕量級的、跨平臺的、嵌入式的關系型數據庫。它支持大部分SQL92標準(比如視圖、事務、觸發器、BLOB數據類型等),支持弱類型數據存儲。它的開發在省去了專用于關系型數據庫管理系統的日常費用的同時,同樣可以為應用軟件提供方便的數據管理。
SQLite擁有一個簡潔的、模塊化的體系結構,并引進了一些獨特的方法進行關系型數據庫的管理。它由3個子系統中的8個獨立的模塊組成,如圖1所示。這個模塊將查詢過程劃分為幾個獨立的任務。在體系結構棧的頂部編譯查詢語句,在中部執行,在底部處理存儲并與操作系統交互。
SQLite具有如下特點:(1)源代碼開放,移植擴展性好。(2)功能完善,自由共享。(3)簡單易用,可靠性好。(4)字段創建無數據類型的限制。
2 實時動力學仿真平臺
實時動力學仿真平臺是基于MFC、Vortex、OSG開發的,針對綜合傳動裝置模型,在虛擬環境下能夠進行實時動力學仿真分析的一個平臺。該平臺實現的功能如下:綜合傳動裝置的虛擬裝配,建立準確真實的綜合傳動裝置動力學模型,對綜合傳動裝置進行實時交互的動力學仿真。同時該平臺應具有良好的開放性,方便后續對不同型號綜合傳動裝置模型的添加。
實時動力學仿真平臺總體架構如圖2所示:
在該平臺下,為了完成對綜合傳動裝置的虛擬裝配以及準確真實的實時動力學仿真,需要建立包含多種信息,如零件幾何信息、拓撲信息、層次結構信息、裝配約束信息、基本物理屬性信息、工程設計信息等的實時動力學仿真模型。這些信息通過Pro/E軟件的二次開發,集成SQLite數據庫來完成存儲和信息的傳遞。
3 實時動力學仿真平臺模型數據庫開發
充分運用SQLite數據庫的功能,開發適用于實時動力學仿真平臺的模型數據庫。通過C-API與實時動力學仿真平臺相連接,實現仿真平臺訪問數據庫,獲取零件幾何信息、基本物理屬性信息和裝配約束信息等,完成綜合傳動裝置的虛擬裝配,保證動力學模型的真實性。
3.1 模型數據庫體系結構
模型數據庫采用標準的三層體系結構,由數據層、中間邏輯實現層(事務層)和應用層(表示層)組成,如圖3所示。
圖3 模型信息數據庫體系結構
數據層:存儲從Pro/E系統中讀取到的信息,包括零件幾何信息,基本物理屬性信息和裝配約束信息等。邏輯實現層:位于三層結構的事務層,是整個系統的核心,響應客戶端應用程序的請求并進行相應處理,從數據層獲取數據再傳送給應用程序進行后續的設計或分析。應用層:提供給用戶對模型數據庫進行操作的交互界面,實時動力學仿真平臺對數據層數據的讀取和調用。
3.2 模型數據庫信息描述
根據多屬性零件的信息結構及綜合傳動裝置的系統分類,在模型信息庫中建立型號信息表、模塊信息表、子裝配體信息表、零件信息表、約束類型信息表、零件基本物理屬性信息表、零件幾何及工程設計信息表和轉動慣量信息表。下面以變速機構模塊為例進行說明。數據表之間的相互關系通過主鍵和外鍵的建立來表示,如圖4所示。
3.3 數據表中信息的獲取
為了能夠獲取數據表中的信息,需要在VC環境下調用API連接數據庫,并對數據信息進行查詢篩選,以獲得進行實時動力學仿真所需的零件各類信息。SQLite提供了三種獲取表中數據的方法,分別是:①執行查詢,回調方式獲得表中數據。②獲取表(下轉第215頁)(上接第210頁)查詢,獲得表中數據。③準備查詢,獲得表中數據。本文采用準備查詢獲得表中數據,實現信息的傳遞。具體實現過程如下
首先,使用sqlite3_open()函數,打開數據庫,創建一個連接對象;其次,使用sqlite3_prepare_v2()函數,準備一個statement,接收SQL語句,并將其編譯為虛擬數據庫引擎(VDBE)可讀的字節碼;接著,使用sqlite3_step()函數,接收語句句柄并直接與VDBE通信,生成執行SQL語句的一個有一個步驟的字節碼指令,直到游標到達結果集末尾;完成執行后,使用sqlite3_finalize()函數,釋放資源;最后,由sqlite3_close()函數關閉數據庫連接。
4 結語
本文結合實時動力學仿真平臺,分析了實時動力學仿真對模型信息的要求。同時,介紹了SQLite數據庫的體系機構和技術特點,在此基礎上建立了綜合傳動裝置模型數據庫,在模型數據庫中建立了型號信息表、模塊信息表、子裝配體信息表、零件信息表、約束類型信息表、零件基本物理屬性信息表、零件幾何及工程設計信息表和轉動慣量信息表。
通過調用SQLite的C-API函數,實現了實時動力學仿真平臺與SQLite模型數據庫的連接,并且使用準備查詢的方式,實現平臺對模型數據庫信息的讀取和調用,為實現虛擬環境下模型的自動裝配和實時動力學仿真奠定了基礎,為實時動力學仿真提供了新思路。
【參考文獻】
[1]胡偉.SQLite在嵌入式系統上的實現研究[J].計算機與數字工程,2009(2),158-163.
[2](美)Grant Allen,Mike Owens.SQLite權威指南(第二版)[M]北京:電子工業出版社,2012,21-137http://www.sqlite.org,SQLite官方主頁.
[3]王濤,李宏才.基于車輛傳動系統虛擬裝配平臺的虛擬試驗研究[J].機械設計與制造,2013(3):77-80.
[4]陳曉東,曹奇英.嵌入式數據庫Sqlite的遠程可視化維護管理工具的設計與實現[J].計算機應用與軟件,2011(8).
[5]韓善鋒,曹鳳海,易昌華.SQLite數據庫在嵌入式程序開發中的應用[J].物探裝備,2011,21(3):170-173.
[6]史建成,劉檢華,寧汝新,等.虛擬裝配系統中的模型數據管理與優化[J].計算機集成制造系統, 2010,16(11):2416-2422.
[7]李慎龍.基于液力變矩器的參數化設計及其虛擬裝配技術研究[D].北京:北京理工大學,2006.
[8]路旋.嵌入式數據庫管理系統SQLite的設計與實現[D]. 西安電子科技大學,2009.
[9]魏春雨,周曉軍,魏燕定,等.基于Vortex的6自由度平臺洗出運動仿真[J].浙江大學學報(工學版),2012,46(7):1390-1396.