迴路硬體模擬技術在直升機控制系統中的應用論文

  直升機控制器的效能指標滿足要在一定時間內將前進和上升軸移動到任意一個指定位置,時間一般應控制在10秒以內。此外,直升機控制器的軟體必須支援其它一些操作模式。

        今天小編要與大家分享的是:迴路硬體模擬技術在直升機控制系統中的應用相關論文。具體內容如下,歡迎參考閱讀:
 

迴路硬體模擬技術在直升機控制系統中的應用
 

  軟、硬體的並行開發方法可以加快設計程序,但在系統整合時常常出現很多問題,而硬體迴路模擬能有效解決這些問題,採用該技術可以在開發週期初完成嵌入式軟體模擬。本文以HIL技術在實驗性動態直升機系統用嵌入式控制軟體中的應用為例闡述該技術的應用特點和方法。align=RIGHT VSPACE=12 HSPACE=12 ALT="圖1:直升機前檢視和側檢視。">

  設計工程師一直在努力縮短新產品開發週期,而軟硬體並行開發就是一種比較好的方法。通常這種方法需要多個獨立的軟硬體開發小組參與,這些小組的工作相互間獨立、並行地進行。當原型硬體和嵌入式程式碼的主要部分實現後,就可以在系統整合階段將硬體與軟體合併起來並開始測試工作。

  在系統整合時經常會發生嚴重的問題,有些問題甚至會導致軟體或硬體的重新設計。在問題成堆發生、成本持續升高或計劃拖延太久的情況下,有可能中斷設計專案,有時甚至不得不取消專案。因此,人們需要找到更好的方法來解決這些問題。

  迴路硬體hardware-in-the-loop,HIL模擬被證明是一種有效的解決方法。該技術能確保在開發週期早期就完成嵌入式軟體的測試。到系統整合階段開始時,嵌入式軟體測試就要比傳統方法做得更徹底更全面。這樣可以及早地發現問題,因此降低了解決問題的成本。

  本文所要討論的就是採用了HIL模擬的一個嵌入式軟體開發專案。該專案的目標是開發和測試實驗性動態“直升機”系統用的嵌入式控制軟體。有了HIL模擬後,人們無需使用除嵌入式處理器及其I/O介面外的任何硬體就能完成該控制器軟體的設計和測試。

  隨後的實際系統硬體與執行新軟體的嵌入式控制器的連線首次便獲得成功。在硬體、軟體整合階段唯一要做的額外工作是對一些控制器引數的少量調整,這是由於實際系統硬體與其模擬模型之間畢竟存在差異。
 

  直升機系統

  本專案需要開發適合Quanser 3自由度3DOF直升機的控制器軟體。這是一個桌面電磁系統,內含由兩個獨立電子馬達控制的3個旋轉軸,每個軸驅動一個推進器。圖1是直升機系統及其運動軸的框圖。align=RIGHT VSPACE=12 HSPACE=12 ALT="圖2:直升機控制系統。">

  假設傾斜軸的傾角接近零度,在對兩個馬達施加相同的高電壓後直升機會垂直向上攀升。對兩個馬達施加不同的電壓會使直升機繞傾斜軸旋轉。為了使直升機向前移動,首先需要將直升機傾斜到一個非零角度,然後對兩個馬達同時施加適當的電壓來產生向前的推力。

  如圖2所示,系統採用的控制計算機具有3個位置編碼器輸入訊號、兩個馬達電壓輸出訊號,以及用於模式選擇與操縱桿控制的使用者輸入訊號。控制計算機通過專門設計的介面卡接收位置編碼器輸入訊號,同時產生模擬輸出電壓,並通過數模轉換器DAC驅動那兩個馬達。為了提供足夠大的馬達工作電流,DAC的輸出需要連線到隨後的功率放大器進行放大。

  位置編碼器會隨時監測每個軸的運動,這些編碼器通過光學原理感知旋轉運動併產生數字化的角度位置數值。位置編碼器將以每360°4096個步距,或0.08789°的量化步距解析度對這些數值進行量化。每個編碼器的輸出訊號由兩個TTL電平組成,即Phase A和Phase B,當對應軸反轉時輸出訊號就在這兩個高低電平之間來回切換。根據這兩個訊號之間的相位差可以判斷每個軸的運動方向,如圖3所示。脈衝頻率正比於每個軸的旋轉速率。

  直升機控制器的效能指標滿足要在一定時間內將前進和上升軸移動到任意一個指定位置,時間一般應控制在10秒以內。此外,直升機控制器的軟體必須支援其它一些操作模式。

       全套控制器操作模式包括:

  關閉模式:align=RIGHT VSPACE=12 HSPACE=12 ALT="圖3:位置編碼器輸出訊號。">

  控制器軟體以關閉模式啟動,此時兩個馬達上的電壓為零。一旦系統離開這個模式,就只能從空Null模式再次進入該模式。當從空模式進入關閉模式時,需要控制上升軸緩慢地下降到桌面正上方,然後將馬達電壓設定為零。

  空模式:

  當從關閉模式轉變到該模式時,首選要給馬達上電,並控制所有軸到零位置。如果從其它模式轉變到空模式,那麼只需要將所有軸控制到零位置。零位置是指傾斜軸和前進軸在系統啟動位置,而推進元件被抬舉到上升方向的水平位置,如圖1所示。

  隨機模式:

  在10秒時間間隔內為前進和上升軸位移命令產生預定義範圍內的一個新隨機值,然後由控制器軟體將直升機移動到相應的位置。

  自動駕駛模式:

  在這種模式下,由操縱桿產生控制器所需的上升和水平行進命令。通過操縱桿的前後動作控制上升位置,通過左右動作來控制水平位置。控制器通過移動直升機來跟隨命令所指定位置。

  手動模式:

  在手動模式下,操縱桿直接產生馬達驅動用的電壓和與電壓差。操縱桿前後動作控制兩個馬達電壓的和,左右運動控制兩個馬達電壓的差。在這種模式下系統特別難以控制,如果任何軸的運動超過了某個位置限制,控制器就會自動切換到空模式。通常,在進入該模式後的幾秒鐘內可能產生違反限制的問題。

  在確定系統功能和效能要求後,可以進行控制器軟體的開發和測試。而模擬技術的應用可以加快直升機控制器軟體的開發和測試速度。
 

  專案規範

  為了對嵌入式軟體進行HIL模擬測試,需要使用嵌入式處理器及其附屬I/O器件。對於許多嵌入式系統來說,這只是整個系統的一小部分,可以在早期開發階段實現組合。可以建立一個直升機硬體及其與外部環境互動的模擬,並通過控制器的I/O介面把這個模擬與嵌入式控制器連線起來。嵌入式控制器和直升機模擬就如同實際系統一樣工作。

  在複雜的嵌入式產品開發早期,經常需要模擬一個完整系統在預期環境中的執行。這種利用動態系統模擬工具,如Simulink開發的模擬系統通常不是實時的,但可以作為HIL模擬的基礎。某些時候需要對這些模擬系統中包含的模型進行簡化和優化,使之適合實時模擬使用。不過在本專案中不需要修改這些模型。

  複雜系統模擬需要用到許多高階的數學演算法,但可以採用專門的軟體工具來簡化任務:Simulink是MATLAB的一個附件,它可以用來提供以框圖為主的圖形環境下的動態系統模擬。用Simulink進行模擬的方法是先把“調色盤”上的模組拖到繪畫區域,然後用代表訊號流向的直線把這些模組連線起來。圖4就是直升機專案中採用的位置編碼模型的Simulink框圖,該模型把以弧度表示的角度位置作為其輸入訊號,併產生Phase A和Phase B訊號作為其輸出。另外,它還輸出指示訊號,用來指示相應軸到達零位置的時刻。直升機位置編碼器不會產生指示訊號輸出,因此不使用該Simulink模型的輸出。

  Stateflow是Simulink的一個附件,用以實現有限狀態機模型。在這個直升機專案中,Stateflow模型用來實現直升機模式選擇邏輯。

  Real-Time Workshop根據Simulink框圖產生C程式碼,其它工具需要使用這些程式碼來達成編譯與執行目標。在本專案中,其它工具包括Real-Time Windows Target和xPC Target。

  Real-Time Windows Target允許模擬的編譯與執行作為PC機Windows系統中的一個實時程序,能與Windows作業系統同時執行。在本專案中,Real-Time Windows Target執行的是HIL系統模擬,所用主機正是開發和控制直升機軟體的計算機。align=RIGHT VSPACE=12 HSPACE=12 ALT="圖5:直升機和控制器模型。">

  xPC Target允許在PC機上執行模擬,此時PC機的功能如同專門的實時控制器。xPC Target還提供實時的多工核心供只有有限硬體資源的嵌入式處理器使用。xPC Target在本專案中用來在一臺獨立PC上產生和執行直升機控制器用的實時程式碼,此時該PC機就用作“嵌入式”控制器。
 

  模擬開發

  控制器軟體開發的第一步是實現對整個直升機控制器系統的模擬,圖5給出了模擬的頂層框圖。其中兩個較大的方框分別表示直升機系統本身和數字控制器,兩個較小的帶有“操縱桿”和“模式命令”標籤的方框向控制器提供使用者輸入訊號。圖5中的“直升機”框圖包含有直升機動態行為的Simulink模型,如圖6所示。從圖6可以看到,該模型採用了轉移函式、求和函式和積分器等多個Simulink模組。帶“有限運動”標籤的模組包含有一個受限於向下靠近桌面方向的上升軸運動模型。當被模擬的直升機碰到桌面時,所有3個運動軸的速度都被置為零,因此非常接近實際直升機的行為。從靠近右邊的3個量化器可以看出位置編碼器的量化效果。

  “有限運動”模組代表一個子系統。子系統模組允許在模擬開發期間通過分層圖集hierarchical sets of diagrams來控制複雜性。子系統間可以進行任意多層的巢狀,類似於函式的巢狀呼叫。

  圖5“控制器”子系統的詳細內容見圖7。對3個軸角度測量值的量化結果成為控制器的3個基本輸入訊號,控制器輸出的是兩個馬達的驅動電壓。圖7中的主要模組有:驅動直升機到指定位置的“自動駕駛”模組,在不同操作模式下產生前進和上升位移命令的“命令發生器”模組,實現用於選擇不同直升機操作模式的有限狀態機的“模式控制”模組。

  “模式控制”模組內所含的狀態流程框圖如圖8所示。該框圖包含了系統啟動時對操縱桿進行校正的邏輯、使用者控制下的模式改變、當違反位置限值時自動切換到空模式,以及系統關閉的控制。

  圖5所示的“控制器”模組內部提供了嵌入式軟體的完整實現方法。常見的方法是將嵌入式軟體開發當作一個獨立過程,該過程將模擬作為可執行的軟體要求描述來使用。然而,更有效的方法是將模擬中的控制器實現作為“原始碼”,供嵌入式軟體使用。

  在本專案中,可以把圖5的“控制器”模組挎貝到新的Simulink專案中,並向框圖中新增相應的I/O器件模組。然後,再呼叫Real-Time Workshop建立C程式碼,經過編譯後下載到"嵌入式”PC控制器。到此就完成了嵌入式軟體的開發工作。
 

  迴路硬體

  有了直升機和控制器的非實時性Simulink模擬基礎後可以著手HIL模擬開發了。首先需要建立一個新的Simulink專案,再把圖5中帶“直升機”標籤的模組挎貝進來。這種模擬建立了直升機動態模型,幷包括了相應的I/O器件介面。Real-Time Windows Target支援多種I/O器件。HIL模擬所需的I/O要求包括兩個ADC輸入用於接收控制器發出的馬達命令電壓和6個TTL數字輸出為3個模擬位置編碼器分別提供Phase A和Phase B訊號。

  本專案中將執行Windows的臺式PC作為主機系統,因此需要使用滿足上述條件並且具有PCMCIA介面形式的I/O器件。National Instruments公司的DAQCard-1200能夠滿足這些要求,並提供一根帶狀電纜用於連線計算機內的介面卡和獨立的聯結器模組。

  直升機模擬以固定的幀速率執行,其模擬Phase A和Phase B訊號的TTL輸出則一個模擬幀更新一次。由於位置編碼器訊號的脈衝速率正比於運動軸的角速度,因此模擬幀速率可以限制能準確再現的最大角速度。

  如果採用這種方法對位置編碼器訊號進行建模,那麼當Phase A和Phase B訊號隔幀交替時就能產生最高的模擬角速度。這時根據等式1就能得出模擬更新間隔h秒條件下最大的角速度值wmax度/秒:

  等式1

  從直升機行為的數字模擬結果可以明顯看出,傾斜軸具有最大的峰值角速度,但很少出現超過100°/秒的情況。理想情況下h應不小於一定值,這樣HIL模擬就不會佔用計算機太大的計算資源。綜合考慮這些要求,h的最佳值應是500us,此時更新速度是每秒2000幀,最大的模擬角速度是175.8°/秒,該速度已經遠遠超過最大的角速度期望值。

  每秒2000幀的直升機模擬更新速度已經大大超出對直升機進行動態精確建模的速度要求,因此沒有必要再用高階積分演算法來獲取更精確的結果。相對簡單的二階積分演算法可以獲得較好的精度,此次模擬選用的就是Simulink“ode-2”梯形積分演算法。與採用更加複雜的高階積分演算法相比,這種演算法能使模擬具有更高的效率。

  為了在目標PC上下載並執行嵌入式軟體,需要用序列電纜連線主機與目標計算機,並從軟盤啟動目標系統核心。根據控制器的Simulink框圖,接下來就可以下載執行嵌入式控制器用的軟體。在將目標系統的I/O器件與DAQCard-1200的相應端子連線起來後,可以在主機的Real-Time Windows Target中執行直升機的Simulink模擬。最後根據Simulink框圖將命令傳送給嵌入式控制器,從而啟動控制器工作,完成模擬直升機的“飛行”。

  在HIL模擬工作模式下可以詳細檢查嵌入式軟體的各個方面,從而可以發現並解決設計與實現中的很多問題。所有這些檢測工作期間無需變動任何實際的硬體。在這輪HIL模擬測試結束後,我們就可以得到經過全面測試的嵌入式應用軟體,接下來與實際硬體的快速整合成功的可能性就非常大。
 

  系統整合

  在嵌入式軟體完成HIL測試前我們有意避免嵌入式軟體與實際直升機硬體一起執行,主要原因是為了體現HIL模擬的意義,以及減少硬體損壞的風險。在完成HIL測試後,可以把電纜從DAQCard-1200上拔下來並連線到直升機硬體上,接著給系統上電並把直升機控制到“空模式”位置,然後使之進入隨機模式,此時直升機會每隔10秒飛到隨機產生的前進和上升位置。雖然在響應命令時的擺動和過沖要比HIL模擬時大一些,不過就這第一次試驗來說還是相當成功的。

  為了能在所有操作模式下都能取得令人滿意的系統性能,有必要對控制器增益進行一些調整。HIL模擬並不能完全匹配實際系統的行為,這是因為直升機模擬實際上在某些方面作了簡化處理,在模擬中使用的系統集合屬性並不完全符合實際系統屬性。

  進行模擬開發時通常都會作出一定程度的簡化處理,事實上人們不可能對影響實際系統行為的所有因素實現完美的建模。最簡單的方法是儘量減少模擬與實際系統間的差異,並適當調整嵌入式軟體所需的引數。

  HIL模擬為本專案的開發過程提供了極大的便利,整個嵌入式應用在首次與系統硬體結合執行前就得到了真實環境下的全面測試,因此有效地避免了硬體損壞的風險,而且更容易識別和解決與嵌入式軟體有關的問題。整合過程也顯得相當簡捷,只是對少許引數作了重新調整。如果將未經測試的大型嵌入式軟體直接與硬體連線執行,那麼相對來說這樣的任務就要艱鉅得多,通常還會出現一些與整合本身有關的問題。

  本專案充分體現了HIL模擬在開發複雜嵌入式系統軟體中的價值。HIL模擬技術能夠在開發早期階段對嵌入式軟體作出全面測試,因此降低了將未經測試軟體運行於昂貴的原型硬體上所具有的風險。與傳統開發方法相比,正確利用HIL模擬技術能夠在更短的時間內開發出更高質量的產品。