亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于QNX的多線程技術(shù)在船舶嵌入式操縱訓(xùn)練系統(tǒng)中的應(yīng)用

        2017-10-17 11:12:09王立偉劉常波胡坤張建華李建輝
        現(xiàn)代電子技術(shù) 2017年20期
        關(guān)鍵詞:程序設(shè)計

        王立偉 劉常波 胡坤 張建華 李建輝

        摘 要: 為了解決船舶嵌入式操縱訓(xùn)練系統(tǒng)軟件設(shè)計中出現(xiàn)的數(shù)據(jù)顯示滯后、界面卡頓和系統(tǒng)死機問題,引入基于QNX操作系統(tǒng)的多線程技術(shù)進(jìn)行系統(tǒng)軟件程序改進(jìn)設(shè)計。通過仿真實驗對系統(tǒng)功能和實時性能進(jìn)行了檢驗,結(jié)果表明:系統(tǒng)軟件可以模擬船舶運動,實現(xiàn)訓(xùn)練功能;多線程程序改進(jìn)設(shè)計有效解決了數(shù)據(jù)顯示滯后、界面卡頓和死機問題,系統(tǒng)能夠完成對模型的實時解算和狀態(tài)參數(shù)的實時顯示,數(shù)據(jù)更新時間在2 ms內(nèi),滿足實時性要求。

        關(guān)鍵詞: QNX; 多線程技術(shù); 嵌入式訓(xùn)練系統(tǒng); 程序設(shè)計

        中圖分類號: TN967.7?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2017)20?0091?04

        Abstract: In order to resolve the problems of data display delay, interface buffering, and system crash during software design of the embedded training system for ship maneuvering, the QNX OS?based multithreading technology is imported for design improvement of system software program. The simulation experiment was carried out to detect the function and real?time performance of the system. The results show that the system software can simulate ship motion and realize the training function, the design improvement of multithreading program effectively resolves the problems of data display delay, interface buffering and system crash, the system can accomplish real?time resolution of the model and real?time display of status parameters, and the data update interval (no more than 2 ms) can meet the real?time requirement.

        Keywords: QNX; multithreading technology; embedded training system; program design

        0 引 言

        船舶操縱系統(tǒng)是借助操縱裝置改變或保持船舶的速度、姿態(tài)以及方向的系統(tǒng),在船舶生命力及航行安全中占有極為重要的地位[1]。嵌入式操縱訓(xùn)練系統(tǒng)通過在原有操縱系統(tǒng)中加入嵌入式訓(xùn)練模塊,將模擬訓(xùn)練與實裝訓(xùn)練結(jié)合起來,有效地解決了傳統(tǒng)訓(xùn)練方式不能同時兼顧訓(xùn)練真實性和訓(xùn)練實用性的問題,具有逼真、高效和低費用的特點,已成為各國關(guān)注的焦點[2]。

        在船舶嵌入式操縱訓(xùn)練系統(tǒng)軟件設(shè)計中,由于模型解算計算量大、系統(tǒng)資源有限,系統(tǒng)軟件經(jīng)常會在某些特定條件下(如航速過大或轉(zhuǎn)舵角度過大時)出現(xiàn)數(shù)據(jù)顯示滯后、卡頓甚至系統(tǒng)死機現(xiàn)象。為了充分利用系統(tǒng)有限的資源,提高實時性能,實現(xiàn)訓(xùn)練功能,本文對某船舶嵌入式操縱訓(xùn)練系統(tǒng)進(jìn)行了多線程程序改進(jìn)設(shè)計。

        1 QNX操作系統(tǒng)與多線程技術(shù)

        QNX實時操作系統(tǒng)由加拿大QNX公司設(shè)計開發(fā),特點是多任務(wù)、多用戶、實時性強、擴(kuò)展性好、可嵌入,目前已廣泛應(yīng)用于自動化、醫(yī)療機械、軍事、通信、航空航天領(lǐng)域[3]。獨特的中斷處理方式,快速的上下文切換和基于優(yōu)先級驅(qū)動的搶占調(diào)度方式,保證了其強大的實時性能。同時,QNX還具有良好的可移植性和自保護(hù)機制,符合 POSIX 標(biāo)準(zhǔn), 這些都使得其在嵌入式實時領(lǐng)域得到了越來越廣泛的應(yīng)用[4]。

        多線程技術(shù)(Multithreading Technology)是一種讓多個線程并發(fā)執(zhí)行的技術(shù),這種并發(fā)執(zhí)行可從硬件或軟件上來實現(xiàn)。它可以有效地提高資源利用率,使程序設(shè)計變得簡單,程序響應(yīng)更快[5]。QNX是一種支持多任務(wù)、多用戶的分布式實時操作系統(tǒng),支持多線程技術(shù),符合POSIX線程標(biāo)準(zhǔn)[6]。QNX系統(tǒng)基于優(yōu)先級的進(jìn)程調(diào)度策略和快速上下文切換等特點,使得其在多線程應(yīng)用方面具有得天獨厚的優(yōu)勢,它已經(jīng)在數(shù)據(jù)采集、實時監(jiān)控和測試等對實時性要求十分苛刻的領(lǐng)域得到了成功應(yīng)用[7]。

        2 船舶嵌入式操縱訓(xùn)練系統(tǒng)多線程軟件設(shè)計

        2.1 QNX多線程庫函數(shù)

        與其他系統(tǒng)不同,QNX操作系統(tǒng)并沒有提供單獨的線程庫,而是在C語言函數(shù)庫中包含了與線程相關(guān)的API函數(shù),在程序編寫時,通過添加頭文件來實現(xiàn)線程的創(chuàng)建、取消和終止等功能[8]。常用的線程操作函數(shù)如表1所示。

        2.2 QNX線程的同步與互斥機制

        線程間的同步是指相互合作的線程在某個確定點上協(xié)調(diào)工作,只有多個線程均到達(dá)此點,才進(jìn)行下一步的工作。線程間的互斥是指對共享資源的約束訪問,同一時刻只允許某個線程訪問臨界資源 [9]。為了阻止線程間的競爭,QNX操作系統(tǒng)提供了多種同步和互斥機制,確保了某個時刻只有單個線程可以訪問共享內(nèi)存[10],表2為QNX系統(tǒng)同步互斥機制及相關(guān)實現(xiàn)函數(shù)。

        2.3 船舶嵌入式操縱訓(xùn)練系統(tǒng)多線程程序設(shè)計

        本文設(shè)計的船舶嵌入式操縱訓(xùn)練系統(tǒng)基于QNX系統(tǒng)開發(fā),使用PhAB開發(fā)工具進(jìn)行系統(tǒng)圖形界面設(shè)計,利用QNX Momentics IDE軟件進(jìn)行系統(tǒng)主程序設(shè)計,操縱訓(xùn)練系統(tǒng)的基本結(jié)構(gòu)如圖1所示,可以實現(xiàn)操控數(shù)據(jù)的采集、運動模型的解算以及模擬訓(xùn)練管理等功能,繁多的任務(wù)要求使得系統(tǒng)的實時性問題凸顯。在各類任務(wù)中,仿真模型的解算占用資源多、耗時明顯,若不采用措施對計算機資源進(jìn)行合理配置,則不能在規(guī)定的時間內(nèi)完成仿真模型解算,滿足不了系統(tǒng)實時性要求。

        為了解決系統(tǒng)的實時性問題,引入QNX的多線程技術(shù),將各個任務(wù)劃分到多個不同線程中。在仿真系統(tǒng)中,多個線程并發(fā)執(zhí)行,可使系統(tǒng)同一時間內(nèi)完成的任務(wù)更多,提高了系統(tǒng)的響應(yīng)速度和執(zhí)行效率。QNX系統(tǒng)提供了單進(jìn)程多線程和多進(jìn)程多線程兩種體系,可以根據(jù)不同的需要選擇相適應(yīng)的程序結(jié)構(gòu)。

        根據(jù)船舶嵌入式操縱訓(xùn)練系統(tǒng)的功能需要,本文采用了單進(jìn)程多線程結(jié)構(gòu)對系統(tǒng)軟件進(jìn)行了優(yōu)化設(shè)計,將系統(tǒng)任務(wù)分散到不同的線程來完成,主要包括人機交互線程、界面顯示線程、仿真模型線程、監(jiān)控線程和訓(xùn)練管理線程,圖2為多線程軟件實現(xiàn)流程。嵌入式訓(xùn)練系統(tǒng)軟件在單進(jìn)程多線程結(jié)構(gòu)設(shè)計下以獨立進(jìn)程的方式運行,系統(tǒng)調(diào)用進(jìn)程后,由進(jìn)程管理模塊為相應(yīng)的進(jìn)程分配地址空間,進(jìn)而調(diào)用所有的任務(wù)線程。進(jìn)程中的主線程創(chuàng)建其余各任務(wù)線程,并根據(jù)優(yōu)先級的大小選擇線程的執(zhí)行順序。多線程程序編寫實例如下所示:

        3 仿真實驗驗證

        為了檢驗系統(tǒng)功能,本文進(jìn)行了仿真實驗驗證,包括操縱實驗和系統(tǒng)實時性檢測。

        3.1 操縱實驗

        操縱實驗主要用于驗證嵌入式操縱訓(xùn)練系統(tǒng)中實驗的運動模型程序、舵機模型程序、自動控制程序及模型解算程序是否能正常運行,系統(tǒng)能否為受訓(xùn)者提供一個符合船舶運動規(guī)律的訓(xùn)練環(huán)境。實驗方法為,將系統(tǒng)轉(zhuǎn)換到訓(xùn)練模式,通過模擬操作面板上的相應(yīng)按鈕設(shè)置舵角和航向值,由訓(xùn)練機根據(jù)舵角值及其他各類參數(shù)完成模型的解算,解算出的狀態(tài)參數(shù)由監(jiān)控界面進(jìn)行實時顯示并保存,最后使用Matlab軟件進(jìn)行數(shù)據(jù)繪圖分析。操縱實驗包括以下內(nèi)容:

        3.1.1 對方向舵的響應(yīng)

        在航速[UC]=10 kn,方向舵[δr]=20°時,系統(tǒng)的航向和回轉(zhuǎn)軌跡線如圖3所示。由圖中可以看出,在操作方向舵時,航向隨操舵時間的增加而不斷的變化,船舶作回轉(zhuǎn)運動。

        3.1.2 對航向自動控制的響應(yīng)

        設(shè)定初始航向為0°,指令航向為30°,航速[UC]=10 kn,檢驗系統(tǒng)對航向的自動控制功能,此時系統(tǒng)方向舵舵角和航向的響應(yīng)曲線如圖4所示。

        由圖4可知,方向舵舵角經(jīng)歷了一個隨時間逐步增加的過程,與實際舵機的工作規(guī)律一致,同時航向PID控制器能通過對方向舵的控制實現(xiàn)航向的自動控制。

        3.2 系統(tǒng)實時性檢測

        系統(tǒng)實時性檢測主要用于檢驗監(jiān)控界面是否能實時顯示船舶運動狀態(tài),系統(tǒng)能否實時完成模型狀態(tài)參數(shù)解算,系統(tǒng)數(shù)據(jù)能否及時更新等。實驗方法為,將嵌入式訓(xùn)練系統(tǒng)軟件程序?qū)胙b有QNX 6.3.2系統(tǒng)的VP9嵌入式單板機中,記錄系統(tǒng)更新數(shù)據(jù)的時間點,記錄并分析系統(tǒng)更新數(shù)據(jù)所花費的時間,同時觀察系統(tǒng)監(jiān)控界面是否會出現(xiàn)卡頓現(xiàn)象。圖5為6 000 ms內(nèi)的系統(tǒng)實時性測試數(shù)據(jù),分析可知系統(tǒng)的數(shù)據(jù)更新時間在2 ms內(nèi),滿足了實時要求。同時,在實驗過程中系統(tǒng)監(jiān)控界面能實時顯示更新各狀態(tài)參數(shù),未出現(xiàn)界面卡頓現(xiàn)象。

        4 結(jié) 語

        本文研究了多線程技術(shù)在某船舶嵌入式操縱訓(xùn)練系統(tǒng)軟件設(shè)計中的應(yīng)用,通過仿真實驗,對系統(tǒng)的功能及實時性能進(jìn)行了驗證。仿真結(jié)果表明,所設(shè)計的船舶嵌入式操縱訓(xùn)練系統(tǒng)軟件能通過設(shè)置舵角值以及進(jìn)行模型解算來模擬船舶運動。同時能夠?qū)崿F(xiàn)對航向的自動控制,符合船舶的實際運動規(guī)律,可以實現(xiàn)訓(xùn)練功能?;赒NX系統(tǒng)的多線程程序改進(jìn)設(shè)計,有效解決了原系統(tǒng)中數(shù)據(jù)顯示滯后、卡頓及死機現(xiàn)象,通過對資源的合理配置,系統(tǒng)數(shù)據(jù)更新的時間在2 ms內(nèi),能夠完成對模型的實時解算和實時顯示,即使在較大的轉(zhuǎn)舵角度和高航速等程序計算量很大的情況下,系統(tǒng)也未出現(xiàn)死機和畫面卡頓現(xiàn)象,系統(tǒng)程序運行有效、可靠,滿足了船舶嵌入式操作訓(xùn)練系統(tǒng)的實時性要求。

        參考文獻(xiàn)

        [1] 梁霄,李巍.船舶操縱性與耐波性[M].大連:大連海事大學(xué)出版社,2012:4?10.

        [2] 王立偉,胡大斌,肖劍波,等.船舶機動控制嵌入式訓(xùn)練系統(tǒng)方案設(shè)計研究[J].艦船科學(xué)技術(shù),2015,37(8):188?189.

        [3] 蔣正林,楊斌.基于QNX的雙足機器人視覺姿態(tài)平衡研究[J].成都信息工程學(xué)院學(xué)報,2014,29(2):141?142.

        [4] 王立偉,胡大斌,肖劍波.基于QNX的嵌入式操控訓(xùn)練系統(tǒng)軟件設(shè)計[J].現(xiàn)代電子技術(shù),2014,37(12):15?18.

        [5] 陳杰.基于多線程的電能質(zhì)量擾動識別系統(tǒng)設(shè)計[D].哈爾濱:哈爾濱理工大學(xué),2014:11?12.

        [6] QNX Software System Ltd. Processes and threads [EB/OL]. [2016?09?19]. http://www.qnx.com/developers/docs/6.4.0/neutrino/getting_started/s1_procs.html.

        [7] 王瑩.深海探測裝備的監(jiān)控界面開發(fā)[D].杭州:杭州電子科技大學(xué),2015:11?12.

        [8] 程品.四足仿生機器人控制系統(tǒng)的研究與設(shè)計[D].武漢:華中科技大學(xué),2014:20?22.

        [9] 李慧明.多線程技術(shù)在實時測量系統(tǒng)中的應(yīng)用[J].電腦編程技巧與維護(hù),2016,1(1):12?13.

        [10] 李存.QNX Neutrino實時操作系統(tǒng)性能分析[J].微型電腦應(yīng)用,2014,30(3):36?37.

        猜你喜歡
        程序設(shè)計
        基于SolidWorks和VBA的電機階梯軸建模程序設(shè)計
        防爆電機(2022年4期)2022-08-17 05:59:24
        高職Java程序設(shè)計課程體系建設(shè)思考
        計算機教育(2020年5期)2020-07-24 08:53:00
        基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
        計算機教育(2020年5期)2020-07-24 08:52:56
        從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
        電子制作(2019年9期)2019-05-30 09:42:04
        基于LabVIEW的車載充電機控制程序設(shè)計
        電子測試(2018年13期)2018-09-26 03:29:16
        淺談基于C語言的計算機軟件程序設(shè)計
        電子制作(2017年24期)2017-02-02 07:14:40
        高職高專院校C語言程序設(shè)計教學(xué)改革探索
        OBE理念下基于Greenfoot的Java程序設(shè)計課程教學(xué)改革
        模塊化程序設(shè)計在一體化檢定平臺中的應(yīng)用
        PLC梯形圖程序設(shè)計技巧及應(yīng)用
        亚洲专区一区二区在线观看| 国产人妻丰满熟妇嗷嗷叫| 99久久婷婷国产一区| 国产精品一区二区三区自拍| 中文字幕亚洲精品无码| 亚洲老妈激情一区二区三区 | 四虎影视成人永久免费观看视频| 中文字字幕在线精品乱码| 亚洲人成网站在线观看播放| 亚洲精品123区在线观看| 国产性感丝袜美女av| 亚洲国产国语对白在线观看| 亚洲综合色区一区二区三区| 亚洲一区二区三区av无码| 久久久精品人妻一区二区三区| 97视频在线观看免费| 18禁国产美女白浆在线| 日韩人妻美乳中文字幕在线| 国语对白福利在线观看| 成人影院yy111111在线| 日韩电影一区二区三区| 久热re在线视频精品免费| 丰满人妻无套内射视频| 91麻豆精品国产91久久麻豆| 少妇被粗大的猛进出69影院| 国产激情内射在线影院| 日本a在线看| 亚洲国产精品日韩专区av| 少妇熟女天堂网av天堂| 欧美巨鞭大战丰满少妇 | 精品熟女日韩中文十区| 久久亚洲伊人| 青青草视频在线播放81| 最新日本人妻中文字幕| 无码人妻丰满熟妇区五十路 | 日韩在线免费| 精品人妻av区乱码| 黄色国产一区二区99| 把女的下面扒开添视频| 色婷婷七月| 国产av91在线播放|