關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 三自由度直升機的嵌入式控制系統

        三自由度直升機的嵌入式控制系統

        作者: 時間:2010-02-09 來源:網絡 收藏

          編碼器碼盤上的圓周等分條紋數為600,被測軸旋轉一周,編碼器的A、B兩相分別發出600個脈沖,A、B兩相的脈沖當量即對應的角度P=360°/600。由于對B脈沖一個周期進行了2次計數,則FA1計數的每一個脈沖對應的角度為P/2。編碼器的旋轉角度即三的俯仰角angle00=(FA1-30 000)×P/2。
          同理,對三橫側時編碼器輸出的3個信號進行測量,算出橫側的角度。
          (3)PWM輸出
          通過PID控制算出的電壓,經由EasyARM1138開發板Timer2產生PWM方波信號,以此來輸出控制2個直流無刷電機的電壓輸入。
          設置Timer2模塊中TimerA和TimerB的初值為6 000,其輸出的電壓范圍為0 V~3.3 V。PID控制算出的電壓V00與TimerA和TimerB裝載的匹配值對應成線性變化,比例系數為K=0.3。匹配值 MP1=V00×K×6 000(0≤V00×K≤1)。匹配值隨著PID控制算出的電壓變化而變化,然后根據PWM占空比輸出對應的電壓控制三的2個電機。
        2.2.2 控制律生成方法
          控制律生成方法分為系統建模和PID控制兩部分。系統建模的過程具體可以參見固高公司的產品手冊[4]。
          2個電機的輸出電壓采用增量式數字PID控制算法,用C語言編程實現:
         


          V01是電機1當前的電壓,V00是電機1上一次采樣時的電壓,Ee[i]是三次采樣俯仰角的角度誤差值;
          V11是電機2當前的電壓,V10是電機2上一次采樣時的電壓,Ep[i]是三次采樣橫側角的角度誤差值。
        3 系統測試及結果
          為了對系統的運行結果進行測試,特采用數字示波器(Tektronix TDS220)和萬用表對飛行搖桿給出的俯仰角和橫側角的指令信號,以及三自由度直升機的旋轉編碼器的輸出的實際俯仰角和橫側角信號進行測試和分析。測試工具還需要EasyARM1138調試開發軟件IAR Embedded Workbench for ARM 5.11及相應的內嵌USB接口的下載仿真器。
          搖桿信號與三自由度直升機信號分別接到控制盒的兩端,這時將程序加載到EasyARM1138開發板中,對進行整體調試。
        3.1 三自由度直升機的啟動與穩定運行
          打開三自由度直升機電機的電源,保持搖桿的平衡狀態及運行程序,三自由度直升機的俯仰軸會平穩地向上轉動,俯仰角穩定地由-30°變化到0°。當俯仰角穩定下來后,俯仰軸基本上不發生旋轉,這時的俯仰角軸旋轉編碼器的測量信號理想值應該是一條平穩的直線,沒有任何脈沖產生。但實際上可能會存在小幅振動,對應信號圖形為少數的脈沖信號。
          圖4中每格的時間長度為1 s。由圖4可知,在10 s的時間長度內,俯仰角旋轉編碼器輸出了少量脈沖信號,每個脈沖對應角度變化為0.3°(上下波動)。
          在理解此圖的基礎上,對圖5所示的圖形也就不難理解了。圖5中給出的是俯仰角由-30°變化到0°時旋轉編碼器的輸出波形。

          可以看出,俯仰角為-30°和0°時,旋轉編碼器的輸出都近似為直線,或只有很少的脈沖。而在從-30°變化到0°的變化過程中,旋轉編碼器的輸出表現為密集的脈沖信號,而且剛開始的時候脈沖比較密,后面稍微稀疏。對應為俯仰角的變化過程,開始時角度變化速度比較快,后面稍慢。
          對于該過程,采用EasyARM1138串口通信把旋轉編碼器的角度數據讀入電腦,然后通過Matlab繪制得到如圖6所示的數據變化曲線。

        3.2 三自由度直升機的增穩
          當三自由度直升機穩定運行后,若有外部擾動,例如陣風等沖擊信號作用在三自由度直升機的旋轉軸上,則在控制器的作用下,系統應該能自動抵御該擾動,擾動消除后,系統恢復到原來位置。
          圖7給出了三自由度直升機的俯仰軸受到沖擊擾動時的俯仰角旋轉編碼器輸出信號波形。由圖7可以看出,擾動作用剛發生瞬時,旋轉編碼器開始輸出密集的脈沖,表明此時俯仰軸在做持續運動。而擾動發生以前和擾動過去一定時間后,旋轉編碼器的輸出為少量的脈沖信號,表明俯仰軸基本上處于平衡狀態。

          在該過程中,采用EasyARM1138串口通信把旋轉編碼器的角度數據讀入電腦,然后通過Matlab繪制得數據變化曲線如圖8。
        3.3 討論
          (1)系統的連調過程只給出了系統的輔助操縱過程的輸出通道效果。因為所用的Tektronix TDS220數字示波器在測試雙通道信號時,2個通道信號的波形存在時間偏差,所以無法同時給出理想的輸入信號與輸出信號的對比波形。
          (2)對于系統的另外兩個工作模式,“全自動駕駛”的效果與圖8類似,而“改平”功能的效果與圖6相似,在此不多敘述。

          (3)由于三自由度直升機的旋轉編碼器為增量式的旋轉編碼器,只能反映角度的變化量,因此,看到的穩態情況下編碼器輸出脈沖數都近似為零。而當前角度的計算方法是:初始角度+角度變化量。系統對俯仰角和橫側角的穩定,實際上是對相對初始角度變化量的穩定。
          本文討論了三自由度直升機設計的全部開發過程。經過測試,各項功能滿足設計要求。因此整體控制系統的設計思路可行,設計結果合理、可靠。其方法可以推廣應用于實現小型無人直升機的飛行控制系統,可以為研制真實的數字式飛行控制系統提供技術儲備,可以應用于其他運動測控系統的設計。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吐鲁番市| 米林县| 四会市| 英山县| 新乡县| 西吉县| 洞头县| 巫山县| 宁强县| 天祝| 洛川县| 沙坪坝区| 水城县| 筠连县| 江陵县| 桃源县| 揭阳市| 齐河县| 南京市| 伊宁县| 湛江市| 和静县| 广德县| 偏关县| 金湖县| 岳普湖县| 辽源市| 宝丰县| 噶尔县| 阜康市| 杨浦区| 镇原县| 灌南县| 德安县| 兴山县| 确山县| 平南县| 湖南省| 凌云县| 监利县| 凤城市|