新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于VC++的模擬舵機系統設計

        基于VC++的模擬舵機系統設計

        作者: 時間:2012-07-31 來源:網絡 收藏

        摘要:在無人機半物理仿真實驗中,為了節約實驗成本,提出用系統代替真實的方法。基于++設計了系統。在半物理仿真系統中連入舵機,并用該系統模擬副翼、升降舵、油門的舵機。通過實驗驗證了該模擬舵機系統的有效性。實驗結果表明,該模擬舵機系統具有實時性好,可模擬多種舵機的特點。
        關鍵詞:模擬舵機;多媒體定時器;PCL-836;PCL-812;PCL-726

        0 引言
        無人機飛行控制仿真主要包括數字仿真和半物理仿真。半物理仿真將系統部分實物引入仿真回路,盡可能真實模擬現場情況,比數字仿真更能有效驗證飛行控制系統的可靠性,尤其在其在初期試飛調參以及后期控制策略改進階段應用廣泛。
        做無人機的半物理仿真時,需要使用真實舵機,而舵機價格比較昂貴,且多次實驗時存在損壞的風險,無形中增加了實驗成本。本文根據舵機在飛行控制系統中的作用及特點,基于++設計模擬舵機;該模擬舵機由綜合記錄計算機和若干板卡構成,運行于綜合記錄計算機中;代替實現真實舵機的功能,節約了實驗成本。

        1 模擬舵機硬件設計
        模擬舵機系統,首先要能模擬舵機在半物理仿真中的功能;其次要不影響半物理仿真接入真實舵機。這個是通過PCLD-785B(繼電器輸出板)來選擇的,當DO不輸出任何值時,Ci和NCi是導通的,當DO輸出時,Ci和NOi導通(i=0,1,2,…,9)。
        系統硬件設計如圖1所示,為了簡潔,省去PCL-880接線板。

        本文引用地址:http://www.104case.com/article/186037.htm

        b.JPG


        圖1中的PCLD-782B是光電隔離板,為了隔離PCLD-785B帶來的噪聲和提高電壓(飛控盒輸出電壓是3.3 V,提高到TTL電平)。而PCL-836(頻率采集卡)和PCL-726(D/A輸出卡),PCL-812(A/D采集卡)和位于綜合記錄計算機內,在++中的操作方法如圖2所示。

        c.JPG



        2 舵機函數關系的輸入
        為了仿真多種舵機的需要,舵機函數關系應該可調;同時系統要滿足自動獲取接在圖1仿真舵機上舵機的舵機函數。系統用PCL-836發出PWM波,PCL-726采集反饋電壓。程序界面如圖3所示。

        a.JPG


        圖中k,b為V=kT+b中的系數,V代表反饋電壓,T代表脈寬(單位:ms)。

        3 模擬舵機軟件設計
        3.1 PWM波采集方法
        對PWM的采集是程序的難點,這里使用PCL-836的事件計數功能來實現對PWM的測量。PCL-836共有6路計數器,其中CLK5用來產生時鐘信號。在PWM的下降沿時去讀計數器的值,然后根據時鐘的頻率算出PWM高電平的時間。檢測PWM下降沿的常見的方法是使用中斷和查詢。在PWM每次下降沿時觸發中斷,在中斷程序里去讀計數器的值。但是PCL-836只支持一個外接中斷,并且是上升沿觸發中斷,而整個仿真需要4個舵機,在目前的硬件條件下并不能直接實現,需要一定的輔助電路,如非門等。其次用查詢的方法,用一個線程來讀DI,在下降沿時去讀計數器的值。但這樣CPU的占用很高,影響系統的整體性能。所以不使用查詢和中斷的方法。為了能夠檢測PWM下降沿,并考慮現實性,決定用1 ms定時器來實現。如果上次讀到高定平,而這次讀到低電平,就認為是下降沿。雖然有不定的延遲,但是延遲小于1 ms,同時可以得到正確的值,而且系統占用要遠遠低于查詢方法。
        3.2 使用多媒體定時器采集PWM波
        微軟提供了精確定時器的底層API,支持能夠提供高精度的定時器服務,利用多媒體定時器可以精確地讀出系統的當前時間,并在很精確的時間間隔內處理事件,可以到1 ms的精度。多媒體定時器的回調函數的程序流程圖如圖4所示。

        d.JPG


        用多媒體定時器采集PWM的方法帶來的不定延遲,加上Windows系統的實時性差帶來的延遲,使得模擬舵機系統實時性變差。但是飛控盒發出的PWM波幾乎是同時發出,即上升沿在時間上是一致的。所以可以用中斷加查詢的方法來檢測,用一路PWM做中斷源,每次中斷的時候去查詢,最終檢測到下降沿。
        3.3 中斷加查詢采集PWM波
        PCL-836支持一路外部中斷,上升沿觸發。首先使用DRV_EnableEvent函數使能中斷,開始中斷線程,在中斷線程里用DRV_CheckEvent函數檢測中斷。中斷線程流程圖如圖5所示。

        e.JPG


        使用中斷加查詢的方法采集PWM,實時性比較好,系統占用高于定時器方法,但是低于查詢方法。

        4 仿真分析
        在半物理仿真系統中連人該模擬舵機,系統模擬副翼、升降舵、油門三個舵機。使用該系統采集飛控盒發出的PWM,并反饋電壓給模型機。經仿真采集到各舵機的PWM曲線如圖6~圖8,可知該系統實現具有實時性好,可模擬多種舵機的特點。

        f.JPG

        g.JPG



        5 結語
        本文基于VC++設計的模擬舵機系統,實現了無人機飛行控制半物理仿真中真實舵機的功能,一定程度上降低了實驗成本。該系統功能全面,設計靈活,可實現多種類型舵機,是一種行之有效的仿真方法。

        pwm相關文章:pwm是什么


        塵埃粒子計數器相關文章:塵埃粒子計數器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 丰宁| 嘉荫县| 马山县| 余姚市| 凤翔县| 中江县| 德州市| 边坝县| 浦江县| 全州县| 苏尼特左旗| 沾益县| 宁德市| 佛冈县| 南投市| 梅河口市| 纳雍县| 都兰县| 青河县| 榆社县| 滦南县| 凉山| 辽阳市| 北川| 贵南县| 平果县| 固镇县| 项城市| 凤台县| 乐安县| 得荣县| 东乡族自治县| 元氏县| 慈利县| 翁牛特旗| 郎溪县| 论坛| 永仁县| 乐清市| 昌宁县| 山阴县|