亚洲免费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)用
        青青草免费手机视频在线观看| 久久久久一| 丝袜美腿一区二区在线观看 | 亚洲高清有码在线观看| 国产自拍精品在线视频| 亚洲综合欧美色五月俺也去| 风间由美性色一区二区三区| 国产精品亚洲片夜色在线| 亚洲一区二区三区码精品色| 成人av片在线观看免费| 久久水蜜桃亚洲av无码精品麻豆| 欧美日韩区1区2区3区| 国产一区二区三区不卡在线播放 | 能看不卡视频网站在线| 欧美激情肉欲高潮视频| 久久婷婷香蕉热狠狠综合| 韩日无码不卡| 激情五月天色婷婷久久| 无遮挡18禁啪啪羞羞漫画| 丰满少妇被猛烈进入无码| 视频一区视频二区亚洲免费观看| 亚洲国产精品成人av在线不卡| 偷偷色噜狠狠狠狠的777米奇| 日韩精品久久久一区| 精品蜜桃在线观看一区二区三区| 欧美日韩在线视频| 久久久久久久人妻无码中文字幕爆| 国产成人亚洲合集青青草原精品| 亚洲av熟女传媒国产一区二区| 国产婷婷色一区二区三区在线| 亚洲天堂在线播放| 国产精品99久久不卡二区| 少妇高潮太爽了在线看| 国产精品天天在线午夜更新| 欧美亚洲尤物久久综合精品| 日本一级二级三级不卡| 特黄特色的大片观看免费视频| 久久青青草原亚洲AV无码麻豆| 在线女同免费观看网站| 亚洲精品天天影视综合网| 日本高清www午色夜高清视频|